datocms-react-ui 2.0.13 → 2.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/cjs/SplitView/SplitViewPane/index.js +14 -0
  2. package/dist/cjs/SplitView/SplitViewPane/index.js.map +1 -0
  3. package/dist/cjs/SplitView/SplitViewPane/styles.module.css.json +1 -0
  4. package/dist/cjs/SplitView/SplitViewSash/index.js +76 -0
  5. package/dist/cjs/SplitView/SplitViewSash/index.js.map +1 -0
  6. package/dist/cjs/SplitView/SplitViewSash/styles.module.css.json +1 -0
  7. package/dist/cjs/SplitView/index.js +206 -0
  8. package/dist/cjs/SplitView/index.js.map +1 -0
  9. package/dist/cjs/SplitView/styles.module.css.json +1 -0
  10. package/dist/cjs/SplitView/types.js +3 -0
  11. package/dist/cjs/SplitView/types.js.map +1 -0
  12. package/dist/cjs/VerticalSplit/index.js +337 -0
  13. package/dist/cjs/VerticalSplit/index.js.map +1 -0
  14. package/dist/cjs/VerticalSplit/styles.module.css.json +1 -0
  15. package/dist/cjs/icons.js +19 -1
  16. package/dist/cjs/icons.js.map +1 -1
  17. package/dist/cjs/index.js +5 -3
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/esm/SplitView/SplitViewPane/index.d.ts +7 -0
  20. package/dist/esm/SplitView/SplitViewPane/index.js +7 -0
  21. package/dist/esm/SplitView/SplitViewPane/index.js.map +1 -0
  22. package/dist/esm/SplitView/SplitViewPane/styles.module.css.json +1 -0
  23. package/dist/esm/SplitView/SplitViewSash/index.d.ts +17 -0
  24. package/dist/esm/SplitView/SplitViewSash/index.js +46 -0
  25. package/dist/esm/SplitView/SplitViewSash/index.js.map +1 -0
  26. package/dist/esm/SplitView/SplitViewSash/styles.module.css.json +1 -0
  27. package/dist/esm/SplitView/index.d.ts +16 -0
  28. package/dist/esm/SplitView/index.js +176 -0
  29. package/dist/esm/SplitView/index.js.map +1 -0
  30. package/dist/esm/SplitView/styles.module.css.json +1 -0
  31. package/dist/esm/SplitView/types.d.ts +8 -0
  32. package/dist/esm/SplitView/types.js +2 -0
  33. package/dist/esm/SplitView/types.js.map +1 -0
  34. package/dist/esm/VerticalSplit/index.d.ts +238 -0
  35. package/dist/esm/VerticalSplit/index.js +307 -0
  36. package/dist/esm/VerticalSplit/index.js.map +1 -0
  37. package/dist/esm/VerticalSplit/styles.module.css.json +1 -0
  38. package/dist/esm/icons.d.ts +3 -0
  39. package/dist/esm/icons.js +15 -0
  40. package/dist/esm/icons.js.map +1 -1
  41. package/dist/esm/index.d.ts +5 -3
  42. package/dist/esm/index.js +5 -3
  43. package/dist/esm/index.js.map +1 -1
  44. package/dist/types/SplitView/SplitViewPane/index.d.ts +7 -0
  45. package/dist/types/SplitView/SplitViewSash/index.d.ts +17 -0
  46. package/dist/types/SplitView/index.d.ts +16 -0
  47. package/dist/types/SplitView/types.d.ts +8 -0
  48. package/dist/types/VerticalSplit/index.d.ts +238 -0
  49. package/dist/types/icons.d.ts +3 -0
  50. package/dist/types/index.d.ts +5 -3
  51. package/package.json +3 -3
  52. package/src/SplitView/SplitViewPane/index.tsx +19 -0
  53. package/src/SplitView/SplitViewPane/styles.module.css +6 -0
  54. package/src/SplitView/SplitViewPane/styles.module.css.json +1 -0
  55. package/src/SplitView/SplitViewSash/index.tsx +99 -0
  56. package/src/SplitView/SplitViewSash/styles.module.css +68 -0
  57. package/src/SplitView/SplitViewSash/styles.module.css.json +1 -0
  58. package/src/SplitView/index.tsx +256 -0
  59. package/src/SplitView/styles.module.css +22 -0
  60. package/src/SplitView/styles.module.css.json +1 -0
  61. package/src/SplitView/types.ts +9 -0
  62. package/src/VerticalSplit/index.tsx +401 -0
  63. package/src/VerticalSplit/styles.module.css +103 -0
  64. package/src/VerticalSplit/styles.module.css.json +1 -0
  65. package/src/global.css +29 -25
  66. package/src/icons.tsx +60 -0
  67. package/src/index.ts +5 -3
  68. package/styles.css +1 -1
  69. package/types.json +2723 -1850
@@ -0,0 +1,176 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
+ if (ar || !(i in from)) {
15
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
+ ar[i] = from[i];
17
+ }
18
+ }
19
+ return to.concat(ar || Array.prototype.slice.call(from));
20
+ };
21
+ import classNames from 'classnames';
22
+ import React, { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
23
+ import { SplitViewPane } from './SplitViewPane';
24
+ import { SplitViewSash } from './SplitViewSash';
25
+ import s from './styles.module.css.json';
26
+ export var SplitView = function (_a) {
27
+ var children = _a.children, propSizes = _a.sizes, _b = _a.allowResize, allowResize = _b === void 0 ? true : _b, _c = _a.split, split = _c === void 0 ? 'vertical' : _c, _d = _a.resizerSize, resizerSize = _d === void 0 ? 10 : _d, _e = _a.performanceMode, performanceMode = _e === void 0 ? false : _e, _f = _a.onChange, onChange = _f === void 0 ? function () { return null; } : _f, _g = _a.onDragStart, onDragStart = _g === void 0 ? function () { return null; } : _g, _h = _a.onDragEnd, onDragEnd = _h === void 0 ? function () { return null; } : _h, sashAction = _a.sashAction;
28
+ var axis = useRef({ x: 0, y: 0 });
29
+ var wrapper = useRef(null);
30
+ var cacheSizes = useRef({ sizes: [], sashPosSizes: [] });
31
+ var _j = useState(undefined), wrapperRect = _j[0], setWrapperRect = _j[1];
32
+ var _k = useState(false), isDragging = _k[0], setDragging = _k[1];
33
+ useEffect(function () {
34
+ var resizeObserver = new ResizeObserver(function () {
35
+ if (wrapper === null || wrapper === void 0 ? void 0 : wrapper.current) {
36
+ setWrapperRect(wrapper.current.getBoundingClientRect());
37
+ }
38
+ });
39
+ resizeObserver.observe(wrapper.current);
40
+ return function () {
41
+ resizeObserver.disconnect();
42
+ };
43
+ }, []);
44
+ var _l = useMemo(function () { return ({
45
+ sizeName: split === 'vertical' ? 'width' : 'height',
46
+ splitPos: split === 'vertical' ? 'left' : 'top',
47
+ splitAxis: split === 'vertical' ? 'x' : 'y',
48
+ }); }, [split]), sizeName = _l.sizeName, splitPos = _l.splitPos, splitAxis = _l.splitAxis;
49
+ var wrapSize = wrapperRect ? wrapperRect[sizeName] : 0;
50
+ // Get limit sizes via children
51
+ var paneLimitSizes = useMemo(function () {
52
+ return children.map(function (childNode) {
53
+ var limits = [0, Infinity];
54
+ if (childNode.type === SplitViewPane) {
55
+ var _a = childNode.props, minSize = _a.minSize, maxSize = _a.maxSize;
56
+ limits[0] = assertSize(minSize, wrapSize, 0);
57
+ limits[1] = assertSize(maxSize, wrapSize);
58
+ }
59
+ return limits;
60
+ });
61
+ }, [children, wrapSize]);
62
+ var sizes = useMemo(function () {
63
+ var count = 0;
64
+ var curSum = 0;
65
+ var res = children.map(function (_child, index) {
66
+ var size = clampSize(assertSize(propSizes[index], wrapSize), paneLimitSizes[index]);
67
+ if (size === Infinity) {
68
+ count = count + 1;
69
+ }
70
+ else {
71
+ curSum = curSum + size;
72
+ }
73
+ return size;
74
+ });
75
+ // resize or illegal size input,recalculate pane sizes
76
+ if (curSum > wrapSize || (!count && curSum < wrapSize)) {
77
+ var cacheNum_1 = (curSum - wrapSize) / curSum;
78
+ return res.map(function (size) {
79
+ return size === Infinity ? 0 : size - size * cacheNum_1;
80
+ });
81
+ }
82
+ if (count > 0) {
83
+ var average_1 = (wrapSize - curSum) / count;
84
+ return res.map(function (size) {
85
+ return size === Infinity ? average_1 : size;
86
+ });
87
+ }
88
+ return res;
89
+ }, [
90
+ JSON.stringify(propSizes),
91
+ JSON.stringify(paneLimitSizes),
92
+ children.length,
93
+ wrapSize,
94
+ ]);
95
+ var sashPosSizes = useMemo(function () { return sizes.reduce(function (a, b) { return __spreadArray(__spreadArray([], a, true), [a[a.length - 1] + b], false); }, [0]); }, [JSON.stringify(sizes)]);
96
+ var handleMouseDown = useCallback(function (x, y) {
97
+ var _a, _b;
98
+ (_b = (_a = document === null || document === void 0 ? void 0 : document.body) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.add(s['SplitView--disable-select']);
99
+ axis.current = { x: x, y: y };
100
+ cacheSizes.current = { sizes: sizes, sashPosSizes: sashPosSizes };
101
+ setDragging(true);
102
+ onDragStart();
103
+ }, [onDragStart, sizes, sashPosSizes]);
104
+ var handleMouseUp = useCallback(function () {
105
+ var _a, _b;
106
+ (_b = (_a = document === null || document === void 0 ? void 0 : document.body) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.remove(s['SplitView--disable-select']);
107
+ setDragging(false);
108
+ onDragEnd();
109
+ }, [onDragEnd]);
110
+ var handleMouseMove = useCallback(function (x, y, i) {
111
+ var curAxis = { x: x, y: y };
112
+ var distanceX = curAxis[splitAxis] - axis.current[splitAxis];
113
+ var leftBorder = -Math.min(sizes[i] - paneLimitSizes[i][0], paneLimitSizes[i + 1][1] - sizes[i + 1]);
114
+ var rightBorder = Math.min(sizes[i + 1] - paneLimitSizes[i + 1][0], paneLimitSizes[i][1] - sizes[i]);
115
+ if (distanceX < leftBorder) {
116
+ distanceX = leftBorder;
117
+ }
118
+ if (distanceX > rightBorder) {
119
+ distanceX = rightBorder;
120
+ }
121
+ var nextSizes = __spreadArray([], sizes, true);
122
+ nextSizes[i] += distanceX;
123
+ nextSizes[i + 1] -= distanceX;
124
+ onChange(nextSizes);
125
+ }, [paneLimitSizes, onChange]);
126
+ var paneFollow = !(performanceMode && isDragging);
127
+ var paneSizes = paneFollow ? sizes : cacheSizes.current.sizes;
128
+ var panePoses = paneFollow ? sashPosSizes : cacheSizes.current.sashPosSizes;
129
+ return (React.createElement("div", { className: classNames(s.SplitView, split === 'vertical' && s['SplitView--vertical'], split === 'horizontal' && s['SplitView--horizontal'], isDragging && s['SplitView--dragging']), ref: wrapper },
130
+ children.map(function (childNode, childIndex) {
131
+ var _a;
132
+ var isPane = childNode.type === SplitViewPane;
133
+ var paneProps = isPane ? childNode.props : {};
134
+ return (React.createElement(SplitViewPane
135
+ // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
136
+ , {
137
+ // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
138
+ key: childIndex, style: __assign(__assign({}, paneProps.style), (_a = {}, _a[sizeName] = paneSizes[childIndex], _a[splitPos] = panePoses[childIndex], _a)) }, isPane ? paneProps.children : childNode));
139
+ }),
140
+ sashPosSizes.slice(1, -1).map(function (posSize, index) {
141
+ var _a;
142
+ return (React.createElement(SplitViewSash
143
+ // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
144
+ , {
145
+ // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
146
+ key: index, allowResize: allowResize, split: split, style: (_a = {},
147
+ _a[sizeName] = resizerSize,
148
+ _a[splitPos] = posSize - resizerSize / 2,
149
+ _a), onMouseDown: handleMouseDown, onMouseMove: function (x, y) { return handleMouseMove(x, y, index); }, onMouseUp: handleMouseUp, action: sashAction }));
150
+ })));
151
+ };
152
+ /**
153
+ * Convert size to absolute number or Infinity
154
+ * SplitPane allows sizes in string and number, but the state sizes only support number,
155
+ * so convert string and number to number in here
156
+ * 'auto' -> divide the remaining space equally
157
+ * 'xxxpx' -> xxx
158
+ * 'xxx%' -> wrapper.size * xxx/100
159
+ * xxx -> xxx
160
+ */
161
+ function assertSize(size, sum, defaultValue) {
162
+ if (defaultValue === void 0) { defaultValue = Infinity; }
163
+ if (typeof size === 'undefined')
164
+ return defaultValue;
165
+ if (typeof size === 'number')
166
+ return size;
167
+ if (size.endsWith('%'))
168
+ return sum * (+size.replace('%', '') / 100);
169
+ if (size.endsWith('px'))
170
+ return +size.replace('px', '');
171
+ return defaultValue;
172
+ }
173
+ function clampSize(size, minMax) {
174
+ return Math.max(minMax[0], Math.min(minMax[1], size));
175
+ }
176
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/SplitView/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ { "SplitView": "_SplitView_1oi17_1", "SplitView--dragging": "_SplitView--dragging_1oi17_8", "SplitView--vertical": "_SplitView--vertical_1oi17_8", "SplitView--horizontal": "_SplitView--horizontal_1oi17_12", "SplitView--disable-select": "_SplitView--disable-select_1oi17_16", "SplitViewPane": "_SplitViewPane_1oi17_20" }
@@ -0,0 +1,8 @@
1
+ export declare type IAxis = {
2
+ x: number;
3
+ y: number;
4
+ };
5
+ export declare type ICacheSizes = {
6
+ sizes: (string | number)[];
7
+ sashPosSizes: (string | number)[];
8
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/SplitView/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,238 @@
1
+ import React from 'react';
2
+ export declare type VerticalSplitProps = {
3
+ mode?: 'overlay' | 'split';
4
+ minSize?: number | string;
5
+ maxSize?: number | string;
6
+ size?: number | string;
7
+ primaryPane: 'left' | 'right';
8
+ isSecondaryCollapsed?: boolean;
9
+ allowResize?: boolean;
10
+ children: [React.ReactNode, React.ReactNode];
11
+ onDragFinished?: (newSize: number) => void;
12
+ onSecondaryToggle?: (secondaryExpanded: boolean) => void;
13
+ };
14
+ /**
15
+ * @example Resizable, left primary panel
16
+ *
17
+ * ```js
18
+ * <Canvas ctx={ctx}>
19
+ * <div style={{ height: 500, position: 'relative' }}>
20
+ * <VerticalSplit primaryPane="left" size="25%" minSize={220}>
21
+ * <div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
22
+ * <Toolbar>
23
+ * <ToolbarStack stackSize="l">
24
+ * <ToolbarTitle>Primary</ToolbarTitle>
25
+ * </ToolbarStack>
26
+ * </Toolbar>
27
+ * <div
28
+ * style={{
29
+ * flex: '1',
30
+ * display: 'flex',
31
+ * justifyContent: 'center',
32
+ * alignItems: 'center',
33
+ * height: '150px',
34
+ * }}
35
+ * >
36
+ * Main content
37
+ * </div>
38
+ * </div>
39
+ * <div style={{ display: 'flex', flexDirection: 'column', height: '100%', borderLeft: '1px solid var(--border-color)' }}>
40
+ * <Toolbar>
41
+ * <ToolbarStack stackSize="l">
42
+ * <ToolbarTitle>Secondary</ToolbarTitle>
43
+ * </ToolbarStack>
44
+ * </Toolbar>
45
+ * <div
46
+ * style={{
47
+ * flex: '1',
48
+ * display: 'flex',
49
+ * justifyContent: 'center',
50
+ * alignItems: 'center',
51
+ * height: '150px',
52
+ * }}
53
+ * >
54
+ * Sidebar
55
+ * </div>
56
+ * </div>
57
+ * </VerticalSplit>
58
+ * </div>
59
+ * </Canvas>;
60
+ * ```
61
+ *
62
+ * @example Resizable, right primary panel
63
+ *
64
+ * ```js
65
+ * <Canvas ctx={ctx}>
66
+ * <div style={{ height: 500, position: 'relative' }}>
67
+ * <VerticalSplit primaryPane="right" size="25%" minSize={220}>
68
+ * <div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
69
+ * <Toolbar>
70
+ * <ToolbarStack stackSize="l">
71
+ * <ToolbarTitle>Secondary</ToolbarTitle>
72
+ * </ToolbarStack>
73
+ * </Toolbar>
74
+ * <div
75
+ * style={{
76
+ * flex: '1',
77
+ * display: 'flex',
78
+ * justifyContent: 'center',
79
+ * alignItems: 'center',
80
+ * height: '150px',
81
+ * }}
82
+ * >
83
+ * Sidebar
84
+ * </div>
85
+ * </div>
86
+ * <div style={{ display: 'flex', flexDirection: 'column', height: '100%', borderLeft: '1px solid var(--border-color)' }}>
87
+ * <Toolbar>
88
+ * <ToolbarStack stackSize="l">
89
+ * <ToolbarTitle>Primary</ToolbarTitle>
90
+ * </ToolbarStack>
91
+ * </Toolbar>
92
+ * <div
93
+ * style={{
94
+ * flex: '1',
95
+ * display: 'flex',
96
+ * justifyContent: 'center',
97
+ * alignItems: 'center',
98
+ * height: '150px',
99
+ * }}
100
+ * >
101
+ * Main content
102
+ * </div>
103
+ * </div>
104
+ * </VerticalSplit>
105
+ * </div>
106
+ * </Canvas>;
107
+ * ```
108
+ *
109
+ * @example Collapsible
110
+ *
111
+ * ```js
112
+ * <Canvas ctx={ctx}>
113
+ * <div style={{ height: 500, position: 'relative' }}>
114
+ * <StateManager initial={true}>
115
+ * {(isCollapsed, setCollapsed) => (
116
+ * <VerticalSplit
117
+ * primaryPane="left"
118
+ * size="25%"
119
+ * minSize={220}
120
+ * isSecondaryCollapsed={isCollapsed}
121
+ * onSecondaryToggle={setCollapsed}
122
+ * >
123
+ * <div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
124
+ * <Toolbar>
125
+ * <ToolbarStack stackSize="l">
126
+ * <ToolbarTitle>Primary</ToolbarTitle>
127
+ * </ToolbarStack>
128
+ * </Toolbar>
129
+ * <div
130
+ * style={{
131
+ * flex: '1',
132
+ * display: 'flex',
133
+ * justifyContent: 'center',
134
+ * alignItems: 'center',
135
+ * height: '150px',
136
+ * }}
137
+ * >
138
+ * Main content
139
+ * </div>
140
+ * </div>
141
+ * <div
142
+ * style={{
143
+ * display: 'flex',
144
+ * flexDirection: 'column',
145
+ * height: '100%',
146
+ * borderLeft: '1px solid var(--border-color)',
147
+ * }}
148
+ * >
149
+ * <Toolbar>
150
+ * <ToolbarStack stackSize="l">
151
+ * <ToolbarTitle>Secondary</ToolbarTitle>
152
+ * </ToolbarStack>
153
+ * </Toolbar>
154
+ * <div
155
+ * style={{
156
+ * flex: '1',
157
+ * display: 'flex',
158
+ * justifyContent: 'center',
159
+ * alignItems: 'center',
160
+ * height: '150px',
161
+ * }}
162
+ * >
163
+ * Sidebar
164
+ * </div>
165
+ * </div>
166
+ * </VerticalSplit>
167
+ * )}
168
+ * </StateManager>
169
+ * </div>
170
+ * </Canvas>;
171
+ * ```
172
+ *
173
+ * @example Overlay mode
174
+ *
175
+ * ```js
176
+ * <Canvas ctx={ctx}>
177
+ * <div style={{ height: 500, position: 'relative' }}>
178
+ * <StateManager initial={true}>
179
+ * {(isCollapsed, setCollapsed) => (
180
+ * <VerticalSplit
181
+ * mode="overlay"
182
+ * primaryPane="left"
183
+ * size="25%"
184
+ * minSize={220}
185
+ * isSecondaryCollapsed={isCollapsed}
186
+ * onSecondaryToggle={setCollapsed}
187
+ * >
188
+ * <div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
189
+ * <Toolbar>
190
+ * <ToolbarStack stackSize="l">
191
+ * <ToolbarTitle>Primary</ToolbarTitle>
192
+ * </ToolbarStack>
193
+ * </Toolbar>
194
+ * <div
195
+ * style={{
196
+ * flex: '1',
197
+ * display: 'flex',
198
+ * justifyContent: 'center',
199
+ * alignItems: 'center',
200
+ * height: '150px',
201
+ * }}
202
+ * >
203
+ * Main content
204
+ * </div>
205
+ * </div>
206
+ * <div
207
+ * style={{
208
+ * display: 'flex',
209
+ * flexDirection: 'column',
210
+ * height: '100%',
211
+ * borderLeft: '1px solid var(--border-color)',
212
+ * }}
213
+ * >
214
+ * <Toolbar>
215
+ * <ToolbarStack stackSize="l">
216
+ * <ToolbarTitle>Secondary</ToolbarTitle>
217
+ * </ToolbarStack>
218
+ * </Toolbar>
219
+ * <div
220
+ * style={{
221
+ * flex: '1',
222
+ * display: 'flex',
223
+ * justifyContent: 'center',
224
+ * alignItems: 'center',
225
+ * height: '150px',
226
+ * }}
227
+ * >
228
+ * Sidebar
229
+ * </div>
230
+ * </div>
231
+ * </VerticalSplit>
232
+ * )}
233
+ * </StateManager>
234
+ * </div>
235
+ * </Canvas>;
236
+ * ```
237
+ */
238
+ export declare function VerticalSplit({ mode, minSize, maxSize, size, primaryPane, children, allowResize, onDragFinished, onSecondaryToggle, isSecondaryCollapsed, }: VerticalSplitProps): JSX.Element;