@ntbjs/react-components 1.1.0-beta.1 → 1.1.0-beta.3
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/{AssetGallery-9bf4cd82.js → AssetGallery-3696cf3c.js} +11 -6
- package/{AssetPreviewTopBar-a172fc5c.js → AssetPreviewTopBar-777c726a.js} +5 -18
- package/AutocompleteSelect-46dbe1eb.js +358 -0
- package/Button-01371eb4.js +264 -0
- package/CompactStarRating-f9997240.js +242 -0
- package/{CompactTextInput-24126cf9.js → CompactTextInput-15118df5.js} +10 -25
- package/ContextMenu-a68d4f28.js +32 -0
- package/InputGroup-66dd343c.js +28 -0
- package/MultiSelect-1568f6e9.js +357 -0
- package/{Popover-d3e2f6c0.js → Popover-616682bf.js} +39 -9
- package/Tab-06b7a58d.js +30 -0
- package/Tabs-cfbf45fe.js +99 -0
- package/TextArea-8a0bd754.js +213 -0
- package/{TextInput-a7c32f5f.js → TextInput-e4c6d536.js} +42 -22
- package/{Tooltip-f95a39f4.js → Tooltip-860530ff.js} +1 -1
- package/close-ebf2f3cf.js +41 -0
- package/data/Popover/index.js +1 -1
- package/data/Tab/index.js +10 -0
- package/data/Tabs/index.js +12 -0
- package/data/index.js +6 -2
- package/edit-note-c47d292e.js +41 -0
- package/expand-more-94585605.js +41 -0
- package/icons/arrow-drop-down.svg +4 -0
- package/icons/delete-context-menu.svg +4 -0
- package/icons/design-services.svg +4 -0
- package/icons/expand-more.svg +4 -0
- package/icons/star-filled.svg +3 -0
- package/icons/star.svg +3 -0
- package/icons/triangle-right.svg +4 -0
- package/inputs/AutocompleteSelect/index.js +18 -0
- package/inputs/Button/index.js +7 -1
- package/inputs/CompactStarRating/index.js +11 -0
- package/inputs/CompactTextInput/index.js +6 -3
- package/inputs/MultiSelect/index.js +15 -0
- package/inputs/TextArea/index.js +2 -1
- package/inputs/TextInput/index.js +2 -1
- package/inputs/index.js +22 -6
- package/layout/InputGroup/index.js +10 -0
- package/layout/index.js +2 -0
- package/package.json +3 -1
- package/react-select-creatable.esm-efe1e1ae.js +7616 -0
- package/widgets/AssetGallery/index.js +21 -8
- package/widgets/AssetPreview/AssetPreviewTopBar/index.js +2 -1
- package/widgets/ContextMenu/index.js +10 -0
- package/widgets/index.js +23 -9
- package/Button-0d728b52.js +0 -156
- package/TextArea-52cf4c0a.js +0 -173
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var defaultTheme = require('./defaultTheme-870f7df1.js');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var styled = require('styled-components');
|
|
6
|
+
var close = require('./close-ebf2f3cf.js');
|
|
7
|
+
var Select = require('react-select');
|
|
8
|
+
var reactSelectCreatable_esm = require('./react-select-creatable.esm-efe1e1ae.js');
|
|
9
|
+
var reactSelectAsyncPaginate = require('react-select-async-paginate');
|
|
10
|
+
|
|
11
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
|
+
|
|
13
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
14
|
+
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
15
|
+
var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
|
|
16
|
+
|
|
17
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26;
|
|
18
|
+
var AsyncCreatableSelectPaginate = reactSelectAsyncPaginate.withAsyncPaginate(reactSelectCreatable_esm.CreatableSelect$1);
|
|
19
|
+
var showMoreHeight = 114;
|
|
20
|
+
var sharedStyle = styled.css(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n font-family: ", ";\n font-size: 12px;\n font-weight: 400;\n position: relative;\n"])), function (props) {
|
|
21
|
+
return props.theme.primaryFontFamily;
|
|
22
|
+
});
|
|
23
|
+
var MultiSelect$1 = styled__default['default'](Select__default['default']).attrs(defaultTheme.applyDefaultTheme)(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n ", "\n"])), sharedStyle);
|
|
24
|
+
var CreatableMultiSelect = styled__default['default'](reactSelectCreatable_esm.CreatableSelect$1).attrs(defaultTheme.applyDefaultTheme)(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n ", "\n"])), sharedStyle);
|
|
25
|
+
var AsyncCreatableMultiSelect = styled__default['default'](AsyncCreatableSelectPaginate).attrs(defaultTheme.applyDefaultTheme)(_templateObject4 || (_templateObject4 = defaultTheme._taggedTemplateLiteral(["\n ", "\n"])), sharedStyle);
|
|
26
|
+
var AsyncMultiSelect = styled__default['default'](reactSelectAsyncPaginate.AsyncPaginate).attrs(defaultTheme.applyDefaultTheme)(_templateObject5 || (_templateObject5 = defaultTheme._taggedTemplateLiteral(["\n ", "\n"])), sharedStyle);
|
|
27
|
+
var MultiSelectWrapper = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject6 || (_templateObject6 = defaultTheme._taggedTemplateLiteral(["\n position: relative;\n"])));
|
|
28
|
+
var Control = styled__default['default'](Select.components.Control).attrs(defaultTheme.applyDefaultTheme)(_templateObject7 || (_templateObject7 = defaultTheme._taggedTemplateLiteral(["\n && {\n align-items: flex-start;\n background: transparent;\n border: none;\n box-shadow: none;\n }\n\n :hover {\n cursor: ", ";\n }\n"])), function (props) {
|
|
29
|
+
return !props.isDisabled && props.focused || props.readOnly ? 'default' : 'pointer';
|
|
30
|
+
});
|
|
31
|
+
var ValueContainer = styled__default['default'](Select.components.ValueContainer)(_templateObject8 || (_templateObject8 = defaultTheme._taggedTemplateLiteral(["\n && {\n align-items: flex-start;\n gap: 8px;\n padding: 0;\n\n max-height: ", " !important;\n\n ", "\n }\n"])), function (props) {
|
|
32
|
+
return props.showMore ? props.error || props.warning ? '100%' : showMoreHeight + 16 + 'px' : '100%';
|
|
33
|
+
}, function (props) {
|
|
34
|
+
return (props.error || props.warning) && styled.css(_templateObject9 || (_templateObject9 = defaultTheme._taggedTemplateLiteral(["\n border: 1px solid;\n border-radius: 3px;\n padding: 4px;\n\n border-color: ", ";\n "])), function (props) {
|
|
35
|
+
return props.error ? props.theme.getColor('red-500') : props.warning ? props.theme.getColor('orange-500') : 'inherit';
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
var MultiValueWrapper = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject10 || (_templateObject10 = defaultTheme._taggedTemplateLiteral(["\n && {\n border-radius: 3px;\n margin: 0;\n }\n"])));
|
|
39
|
+
var MultiValue = styled__default['default'](Select.components.MultiValue).attrs(defaultTheme.applyDefaultTheme)(_templateObject11 || (_templateObject11 = defaultTheme._taggedTemplateLiteral(["\n && {\n border-radius: 3px;\n margin: 0;\n\n ", "\n\n ", "\n\n > div {\n align-items: center;\n display: flex;\n font-size: 12px;\n min-height: 26px;\n\n :first-child {\n padding: ", ";\n }\n\n :last-child:not(:only-child) {\n padding: 0 8px 0 5px;\n height: 100%;\n width: fit-content;\n }\n\n :last-child:not(:only-child):hover {\n background-color: ", ";\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n cursor: pointer;\n }\n\n svg {\n stroke: white;\n stroke-width: 2px;\n width: 8px;\n }\n\n :hover {\n cursor: pointer;\n }\n }\n"])), function (props) {
|
|
40
|
+
return props.theme.themeProp('background-color', props.theme.getColor('gray-600'), props.theme.getColor('gray-800'));
|
|
41
|
+
}, function (props) {
|
|
42
|
+
return props.theme.themeProp('color', props.theme.getColor('gray-100'), props.theme.getColor('gray-100'));
|
|
43
|
+
}, function (props) {
|
|
44
|
+
return props.isDisabled || props.readOnly ? '0 8px' : '0 3px 0 8px';
|
|
45
|
+
}, function (props) {
|
|
46
|
+
return props.theme.getColor('red-500');
|
|
47
|
+
});
|
|
48
|
+
var MultiValueRemove = styled__default['default'](Select.components.MultiValueRemove).attrs(defaultTheme.applyDefaultTheme)(_templateObject12 || (_templateObject12 = defaultTheme._taggedTemplateLiteral([""])));
|
|
49
|
+
var Input = styled__default['default'](Select.components.Input).attrs(defaultTheme.applyDefaultTheme)(_templateObject13 || (_templateObject13 = defaultTheme._taggedTemplateLiteral(["\n align-self: center;\n font-size: ", ";\n min-width: 150px;\n\n ", "\n\n ", "\n }\n"])), function (props) {
|
|
50
|
+
return props.$focused ? '14px' : '12px';
|
|
51
|
+
}, function (props) {
|
|
52
|
+
return props.theme.themeProp('color', props.theme.getColor('gray-100'), props.theme.getColor('gray-900'));
|
|
53
|
+
}, function (props) {
|
|
54
|
+
return !props.$focused && styled.css(_templateObject14 || (_templateObject14 = defaultTheme._taggedTemplateLiteral(["\n ", "\n\n :before {\n height: 100%;\n white-space: nowrap;\n width: fit-content;\n content: '", "';\n }\n "])), function (props) {
|
|
55
|
+
return props.theme.themeProp('color', props.theme.getColor('gray-400'), props.theme.getColor('gray-500'));
|
|
56
|
+
}, function (props) {
|
|
57
|
+
return props.edittext;
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
var DropdownMenu = styled__default['default'](Select.components.Menu).attrs(defaultTheme.applyDefaultTheme)(_templateObject15 || (_templateObject15 = defaultTheme._taggedTemplateLiteral(["\n font-size: 14px;\n\n ", "\n\n ", "\n"])), function (props) {
|
|
61
|
+
return props.theme.themeProp('background-color', props.theme.getColor('gray-600'), props.theme.getColor('white'));
|
|
62
|
+
}, function (props) {
|
|
63
|
+
return props.theme.themeProp('color', props.theme.getColor('gray-100'), props.theme.getColor('gray-900'));
|
|
64
|
+
});
|
|
65
|
+
var sharedOptionStyle = styled.css(_templateObject16 || (_templateObject16 = defaultTheme._taggedTemplateLiteral(["\n ", "\n\n ", "\n\n ", "\n\n :hover {\n cursor: pointer;\n }\n"])), function (props) {
|
|
66
|
+
return props.isFocused && styled.css(_templateObject17 || (_templateObject17 = defaultTheme._taggedTemplateLiteral(["\n ", "\n "])), props.theme.themeProp('background-color', props.theme.getColor('gray-500'), props.theme.getColor('gray-200')));
|
|
67
|
+
}, function (props) {
|
|
68
|
+
return props.isSelected && styled.css(_templateObject18 || (_templateObject18 = defaultTheme._taggedTemplateLiteral(["\n ", "\n\n ", "\n "])), props.theme.themeProp('background-color', 'transparent', 'transparent'), props.theme.themeProp('color', props.theme.getColor('gray-100'), props.theme.getColor('gray-900')));
|
|
69
|
+
}, function (props) {
|
|
70
|
+
return props.isFocused && props.isSelected && styled.css(_templateObject19 || (_templateObject19 = defaultTheme._taggedTemplateLiteral(["\n ", "\n "])), props.theme.themeProp('background-color', props.theme.getColor('gray-500'), props.theme.getColor('gray-200')));
|
|
71
|
+
});
|
|
72
|
+
var Option = styled__default['default'](Select.components.Option).attrs(defaultTheme.applyDefaultTheme)(_templateObject20 || (_templateObject20 = defaultTheme._taggedTemplateLiteral(["\n ", "\n"])), sharedOptionStyle);
|
|
73
|
+
var SelectedOption$1 = styled__default['default'](Select.components.Option).attrs(defaultTheme.applyDefaultTheme)(_templateObject21 || (_templateObject21 = defaultTheme._taggedTemplateLiteral(["\n ", "\n\n display: flex !important;\n justify-content: space-between;\n"])), sharedOptionStyle);
|
|
74
|
+
var DropdownOptionDeleteIcon = styled__default['default'](close.SvgClose).attrs(defaultTheme.applyDefaultTheme)(_templateObject22 || (_templateObject22 = defaultTheme._taggedTemplateLiteral(["\n stroke-width: 1px;\n width: 8px;\n\n ", "\n"])), function (props) {
|
|
75
|
+
return props.theme.themeProp('stroke', props.theme.getColor('gray-100'), props.theme.getColor('gray-900'));
|
|
76
|
+
});
|
|
77
|
+
var ShowMoreWrapper = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject23 || (_templateObject23 = defaultTheme._taggedTemplateLiteral(["\n align-items: end;\n display: flex;\n flex-direction: column;\n height: 100%;\n left: 0;\n position: absolute;\n max-height: ", "px;\n top: 0;\n width: 100%;\n\n ", "\n\n :hover {\n cursor: pointer;\n text-decoration: underline;\n }\n"])), showMoreHeight + 16, function (props) {
|
|
78
|
+
return props.theme.themeProp('color', props.theme.getColor('gray-100'), props.theme.getColor('emerald-500'));
|
|
79
|
+
});
|
|
80
|
+
var ShowMoreOverlay = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject24 || (_templateObject24 = defaultTheme._taggedTemplateLiteral(["\n align-items: end;\n display: block;\n height: 100%;\n max-height: ", "px;\n left: 0;\n top: 0;\n width: 100%;\n\n ", "\n"])), showMoreHeight, function (props) {
|
|
81
|
+
return props.theme.themeProp('background', 'transparent linear-gradient(180deg, #12121200 0%, #12121230 40%, #12121279 70%, #121212 95%, #121212 100%) 0% 0% no-repeat padding-box', 'transparent linear-gradient(180deg, #fefefe00 0%, #fefefe30 40%, #fefefe79 70%, #fefefe 95%, #fefefe 100%) 0% 0% no-repeat padding-box');
|
|
82
|
+
});
|
|
83
|
+
var ShowMoreText = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject25 || (_templateObject25 = defaultTheme._taggedTemplateLiteral(["\n font-size: 0.875rem;\n width: 100%;\n ", "\n"])), function (props) {
|
|
84
|
+
return props.theme.themeProp('background-color', '#121212', '#fefefe');
|
|
85
|
+
});
|
|
86
|
+
var ErrorMessage = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject26 || (_templateObject26 = defaultTheme._taggedTemplateLiteral(["\n color: ", ";\n font-size: 0.75rem;\n margin-top: 8px;\n padding: 0 12px;\n"])), function (props) {
|
|
87
|
+
return props.error ? props.theme.getColor('red-500') : props.warning ? props.theme.getColor('orange-500') : 'inherit';
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
var MultiSelect = React__default['default'].forwardRef(function MultiSelect(_ref, forwardedRef) {
|
|
91
|
+
var selectedOptions = _ref.selectedOptions,
|
|
92
|
+
availableOptions = _ref.availableOptions,
|
|
93
|
+
loadOptions = _ref.loadOptions,
|
|
94
|
+
loadingMessageFunc = _ref.loadingMessageFunc,
|
|
95
|
+
onUpdateCallback = _ref.onUpdateCallback,
|
|
96
|
+
editText = _ref.editText,
|
|
97
|
+
createNewOptionMessageFunc = _ref.createNewOptionMessageFunc,
|
|
98
|
+
noOptionsMessageFunc = _ref.noOptionsMessageFunc,
|
|
99
|
+
onMultiValueClick = _ref.onMultiValueClick,
|
|
100
|
+
showMore = _ref.showMore,
|
|
101
|
+
showMoreText = _ref.showMoreText,
|
|
102
|
+
displayTotalOnShowMore = _ref.displayTotalOnShowMore,
|
|
103
|
+
creatable = _ref.creatable,
|
|
104
|
+
readOnly = _ref.readOnly,
|
|
105
|
+
disabled = _ref.disabled,
|
|
106
|
+
error = _ref.error,
|
|
107
|
+
warning = _ref.warning,
|
|
108
|
+
props = defaultTheme._objectWithoutProperties(_ref, ["selectedOptions", "availableOptions", "loadOptions", "loadingMessageFunc", "onUpdateCallback", "editText", "createNewOptionMessageFunc", "noOptionsMessageFunc", "onMultiValueClick", "showMore", "showMoreText", "displayTotalOnShowMore", "creatable", "readOnly", "disabled", "error", "warning"]);
|
|
109
|
+
|
|
110
|
+
var _useState = React.useState(selectedOptions),
|
|
111
|
+
_useState2 = defaultTheme._slicedToArray(_useState, 2),
|
|
112
|
+
selected = _useState2[0],
|
|
113
|
+
setSelected = _useState2[1];
|
|
114
|
+
|
|
115
|
+
var _useState3 = React.useState(false),
|
|
116
|
+
_useState4 = defaultTheme._slicedToArray(_useState3, 2),
|
|
117
|
+
focused = _useState4[0],
|
|
118
|
+
setFocused = _useState4[1];
|
|
119
|
+
|
|
120
|
+
var _useState5 = React.useState(error || warning ? false : showMore),
|
|
121
|
+
_useState6 = defaultTheme._slicedToArray(_useState5, 2),
|
|
122
|
+
displayShowMore = _useState6[0],
|
|
123
|
+
setDisplayShowMore = _useState6[1];
|
|
124
|
+
|
|
125
|
+
var _useState7 = React.useState(0),
|
|
126
|
+
_useState8 = defaultTheme._slicedToArray(_useState7, 2),
|
|
127
|
+
cacheUnique = _useState8[0],
|
|
128
|
+
setCacheUnique = _useState8[1];
|
|
129
|
+
|
|
130
|
+
var handleShowMoreClick = function handleShowMoreClick() {
|
|
131
|
+
setDisplayShowMore(false);
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
var Control$1 = React.useMemo(function () {
|
|
135
|
+
var ControlWrapper = function ControlWrapper(innerProps) {
|
|
136
|
+
return React__default['default'].createElement(Control, defaultTheme._extends({
|
|
137
|
+
className: "multi-select-control",
|
|
138
|
+
readOnly: readOnly
|
|
139
|
+
}, innerProps));
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
ControlWrapper.displayName = 'ControlWrapper';
|
|
143
|
+
return ControlWrapper;
|
|
144
|
+
}, []);
|
|
145
|
+
var ValueContainer$1 = React.useMemo(function () {
|
|
146
|
+
var ValueContainerWrapper = function ValueContainerWrapper(innerProps) {
|
|
147
|
+
return React__default['default'].createElement(ValueContainer, defaultTheme._extends({
|
|
148
|
+
showMore: displayShowMore,
|
|
149
|
+
error: error,
|
|
150
|
+
warning: warning,
|
|
151
|
+
className: "multi-select-values-container"
|
|
152
|
+
}, innerProps));
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
ValueContainerWrapper.displayName = 'ValueContainerWrapper';
|
|
156
|
+
return ValueContainerWrapper;
|
|
157
|
+
}, [displayShowMore, error, warning]);
|
|
158
|
+
|
|
159
|
+
var MultiValue$1 = function MultiValue$1(innerProps) {
|
|
160
|
+
return React__default['default'].createElement(MultiValueWrapper, {
|
|
161
|
+
className: "multi-value-wrapper",
|
|
162
|
+
onMouseDown: function onMouseDown(e) {
|
|
163
|
+
e.stopPropagation();
|
|
164
|
+
|
|
165
|
+
if (onMultiValueClick && innerProps.data && !(e.target.role === 'button' || e.target instanceof SVGElement)) {
|
|
166
|
+
onMultiValueClick(innerProps.data);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}, React__default['default'].createElement(MultiValue, defaultTheme._extends({
|
|
170
|
+
className: "multi-value",
|
|
171
|
+
readOnly: readOnly
|
|
172
|
+
}, innerProps)));
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
var Input$1 = React.useMemo(function () {
|
|
176
|
+
var InputWrapper = function InputWrapper(innerProps) {
|
|
177
|
+
return React__default['default'].createElement(Input, defaultTheme._extends({
|
|
178
|
+
className: "multi-select-input",
|
|
179
|
+
$focused: focused,
|
|
180
|
+
edittext: editText
|
|
181
|
+
}, innerProps, {
|
|
182
|
+
isDisabled: readOnly || disabled
|
|
183
|
+
}));
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
InputWrapper.displayName = 'InputWrapper';
|
|
187
|
+
return InputWrapper;
|
|
188
|
+
}, [focused]);
|
|
189
|
+
var innerComponents = {
|
|
190
|
+
DropdownIndicator: null,
|
|
191
|
+
Control: Control$1,
|
|
192
|
+
MultiValue: MultiValue$1,
|
|
193
|
+
MultiValueRemove: function MultiValueRemove(innerProps) {
|
|
194
|
+
return readOnly || disabled ? false : _MultiValueRemove(innerProps);
|
|
195
|
+
},
|
|
196
|
+
ValueContainer: ValueContainer$1,
|
|
197
|
+
Input: Input$1,
|
|
198
|
+
Menu: Menu,
|
|
199
|
+
Option: function Option(innerProps) {
|
|
200
|
+
return innerProps.isSelected ? SelectedOption(innerProps) : _Option(innerProps);
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
var sharedSelectProps = {
|
|
204
|
+
ref: forwardedRef,
|
|
205
|
+
value: selected,
|
|
206
|
+
options: loadOptions ? undefined : availableOptions,
|
|
207
|
+
loadOptions: loadOptions,
|
|
208
|
+
loadingMessage: loadingMessageFunc,
|
|
209
|
+
editText: editText,
|
|
210
|
+
formatCreateLabel: createNewOptionMessageFunc,
|
|
211
|
+
showMore: displayShowMore,
|
|
212
|
+
readOnly: readOnly,
|
|
213
|
+
isDisabled: disabled,
|
|
214
|
+
components: innerComponents,
|
|
215
|
+
focused: focused,
|
|
216
|
+
isMulti: true,
|
|
217
|
+
isClearable: false,
|
|
218
|
+
placeholder: null,
|
|
219
|
+
closeMenuOnSelect: false,
|
|
220
|
+
hideSelectedOptions: false,
|
|
221
|
+
cacheUniqs: loadOptions ? [cacheUnique] : undefined,
|
|
222
|
+
onFocus: function onFocus() {
|
|
223
|
+
return setFocused(true);
|
|
224
|
+
},
|
|
225
|
+
onBlur: function onBlur() {
|
|
226
|
+
return setFocused(false);
|
|
227
|
+
},
|
|
228
|
+
noOptionsMessage: function noOptionsMessage(input) {
|
|
229
|
+
return noOptionsMessageFunc(input.inputValue);
|
|
230
|
+
},
|
|
231
|
+
onChange: function onChange(selectedOptions, actionMeta) {
|
|
232
|
+
switch (actionMeta.action) {
|
|
233
|
+
case 'create-option':
|
|
234
|
+
if (onUpdateCallback) {
|
|
235
|
+
onUpdateCallback(actionMeta.action, actionMeta.option);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
if (loadOptions) {
|
|
239
|
+
setCacheUnique(cacheUnique + 1);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
setSelected(selectedOptions);
|
|
243
|
+
break;
|
|
244
|
+
|
|
245
|
+
case 'select-option':
|
|
246
|
+
if (onUpdateCallback) {
|
|
247
|
+
onUpdateCallback(actionMeta.action, actionMeta.option);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
setSelected(selectedOptions);
|
|
251
|
+
break;
|
|
252
|
+
|
|
253
|
+
case 'remove-value':
|
|
254
|
+
if (onUpdateCallback) {
|
|
255
|
+
onUpdateCallback(actionMeta.action, actionMeta.removedValue);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
setSelected(selectedOptions);
|
|
259
|
+
break;
|
|
260
|
+
|
|
261
|
+
case 'pop-value':
|
|
262
|
+
if (onUpdateCallback) {
|
|
263
|
+
onUpdateCallback(actionMeta.action, actionMeta.removedValue);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
setSelected(selectedOptions);
|
|
267
|
+
break;
|
|
268
|
+
|
|
269
|
+
case 'deselect-option':
|
|
270
|
+
if (onUpdateCallback) {
|
|
271
|
+
onUpdateCallback(actionMeta.action, actionMeta.option);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
setSelected(selectedOptions);
|
|
275
|
+
break;
|
|
276
|
+
|
|
277
|
+
case 'clear':
|
|
278
|
+
break;
|
|
279
|
+
|
|
280
|
+
default:
|
|
281
|
+
if (onUpdateCallback) {
|
|
282
|
+
onUpdateCallback(actionMeta.action, actionMeta.option);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
setSelected(selectedOptions);
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
};
|
|
290
|
+
return React__default['default'].createElement(MultiSelectWrapper, {
|
|
291
|
+
error: error,
|
|
292
|
+
warning: warning
|
|
293
|
+
}, loadOptions ? creatable ? React__default['default'].createElement(AsyncCreatableMultiSelect, defaultTheme._extends({}, sharedSelectProps, props)) : React__default['default'].createElement(AsyncMultiSelect, defaultTheme._extends({}, sharedSelectProps, props)) : creatable ? React__default['default'].createElement(CreatableMultiSelect, defaultTheme._extends({}, sharedSelectProps, props)) : React__default['default'].createElement(MultiSelect$1, defaultTheme._extends({}, sharedSelectProps, props)), displayShowMore && !(error || warning) && React__default['default'].createElement(ShowMoreWrapper, {
|
|
294
|
+
onClick: handleShowMoreClick
|
|
295
|
+
}, React__default['default'].createElement(ShowMoreOverlay, null), React__default['default'].createElement(ShowMoreText, null, showMoreText, " ", displayTotalOnShowMore && '(' + selected.length + ')')), (typeof error === 'string' || typeof warning === 'string') && React__default['default'].createElement(ErrorMessage, {
|
|
296
|
+
error: error,
|
|
297
|
+
warning: warning
|
|
298
|
+
}, error ? error : warning));
|
|
299
|
+
});
|
|
300
|
+
MultiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
301
|
+
availableOptions: defaultTheme.PropTypes.arrayOf(defaultTheme.PropTypes.object),
|
|
302
|
+
selectedOptions: defaultTheme.PropTypes.arrayOf(defaultTheme.PropTypes.object),
|
|
303
|
+
loadOptions: defaultTheme.PropTypes.func,
|
|
304
|
+
loadingMessageFunc: defaultTheme.PropTypes.func,
|
|
305
|
+
onUpdateCallback: defaultTheme.PropTypes.func,
|
|
306
|
+
editText: defaultTheme.PropTypes.string.isRequired,
|
|
307
|
+
creatable: defaultTheme.PropTypes.bool,
|
|
308
|
+
createNewOptionMessageFunc: defaultTheme.PropTypes.func,
|
|
309
|
+
noOptionsMessageFunc: defaultTheme.PropTypes.func,
|
|
310
|
+
onMultiValueClick: defaultTheme.PropTypes.func,
|
|
311
|
+
showMore: defaultTheme.PropTypes.bool,
|
|
312
|
+
showMoreText: defaultTheme.PropTypes.string,
|
|
313
|
+
displayTotalOnShowMore: defaultTheme.PropTypes.bool,
|
|
314
|
+
readOnly: defaultTheme.PropTypes.bool,
|
|
315
|
+
disabled: defaultTheme.PropTypes.bool,
|
|
316
|
+
error: defaultTheme.PropTypes.oneOfType([defaultTheme.PropTypes.bool, defaultTheme.PropTypes.string]),
|
|
317
|
+
warning: defaultTheme.PropTypes.oneOfType([defaultTheme.PropTypes.bool, defaultTheme.PropTypes.string])
|
|
318
|
+
} : {};
|
|
319
|
+
MultiSelect.defaultProps = {
|
|
320
|
+
noOptionsMessageFunc: function noOptionsMessageFunc(inputValue) {
|
|
321
|
+
if (inputValue) {
|
|
322
|
+
return "No matches for \"".concat(inputValue, "\"");
|
|
323
|
+
} else {
|
|
324
|
+
return 'No available options';
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
showMore: false,
|
|
328
|
+
displayTotalOnShowMore: true,
|
|
329
|
+
readOnly: false,
|
|
330
|
+
disabled: false,
|
|
331
|
+
creatable: false,
|
|
332
|
+
error: false,
|
|
333
|
+
warning: false,
|
|
334
|
+
showMoreText: 'Show more'
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
var _MultiValueRemove = function _MultiValueRemove(innerProps) {
|
|
338
|
+
return React__default['default'].createElement(MultiValueRemove, innerProps, React__default['default'].createElement(close.SvgClose, {
|
|
339
|
+
className: "multi-value-remove-icon"
|
|
340
|
+
}));
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
var Menu = function Menu(innerProps) {
|
|
344
|
+
return React__default['default'].createElement(DropdownMenu, innerProps);
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
var _Option = function _Option(innerProps) {
|
|
348
|
+
return React__default['default'].createElement(Option, defaultTheme._extends({
|
|
349
|
+
className: "multi-select-dropdown-item"
|
|
350
|
+
}, innerProps));
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
var SelectedOption = function SelectedOption(innerProps) {
|
|
354
|
+
return React__default['default'].createElement(SelectedOption$1, innerProps, innerProps.label, React__default['default'].createElement(DropdownOptionDeleteIcon, null));
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
exports.MultiSelect = MultiSelect;
|
|
@@ -19,15 +19,23 @@ defaultTheme.styleInject(css_248z$1);
|
|
|
19
19
|
var css_248z = ".tippy-box[data-animation=shift-away-subtle][data-state=hidden]{opacity:0}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=top]{transform:translateY(5px)}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=bottom]{transform:translateY(-5px)}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=left]{transform:translateX(5px)}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=right]{transform:translateX(-5px)}";
|
|
20
20
|
defaultTheme.styleInject(css_248z);
|
|
21
21
|
|
|
22
|
-
var _templateObject;
|
|
23
|
-
var Popover$1 = styled__default['default'](TippyTooltip__default['default']).attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n font-family: ", ";\n font-size: 1rem;\n font-weight: 400;\n color: inherit;\n border-radius: 0;\n ", "\n ", "\n
|
|
22
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
23
|
+
var Popover$1 = styled__default['default'](TippyTooltip__default['default']).attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n font-family: ", ";\n font-size: 1rem;\n font-weight: 400;\n color: inherit;\n border-radius: 0;\n line-height: inherit;\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n .tippy-content {\n padding: 0;\n }\n\n .tippy-arrow {\n ", "\n }\n\n && > .tippy-arrow::before {\n position: absolute;\n border-color: transparent;\n border-style: solid;\n }\n\n & > .tippy-arrow::after {\n content: '';\n position: absolute;\n border-color: transparent;\n border-style: solid;\n }\n\n &[data-placement^='top'] {\n & > .tippy-arrow:before {\n bottom: -16px;\n left: -5px;\n border-width: 15px 13px 0;\n ", "\n }\n\n & > .tippy-arrow:after {\n bottom: -15px;\n left: -5px;\n border-width: 15px 13px 0;\n border-top-color: initial;\n transform-origin: center top;\n }\n }\n\n &[data-placement^='right'] {\n & > .tippy-arrow:before {\n bottom: -5px;\n left: -16px;\n border-width: 13px 15px 13px 0;\n ", "\n }\n\n & > .tippy-arrow:after {\n bottom: -5px;\n left: -15px;\n border-width: 13px 15px 13px 0;\n border-right-color: initial;\n transform-origin: center top;\n }\n }\n\n &[data-placement^='bottom'] {\n & > .tippy-arrow:before {\n top: -16px;\n left: -5px;\n border-width: 0 13px 15px 13px;\n ", "\n }\n\n & > .tippy-arrow:after {\n top: -15px;\n left: -5px;\n border-width: 0 13px 15px 13px;\n border-bottom-color: initial;\n transform-origin: center top;\n }\n }\n\n &[data-placement^='left'] {\n & > .tippy-arrow::before {\n bottom: -5px;\n right: -16px;\n border-width: 13px 0 13px 15px;\n ", "\n }\n\n & > .tippy-arrow::after {\n bottom: -5px;\n right: -15px;\n border-width: 13px 0 13px 15px;\n border-left-color: initial;\n transform-origin: center top;\n }\n }\n"])), function (props) {
|
|
24
24
|
return props.theme.primaryFontFamily;
|
|
25
25
|
}, function (props) {
|
|
26
26
|
return props.theme.themeProp('background', props.theme.getColor('gray-700'), props.theme.getColor('white'));
|
|
27
27
|
}, function (props) {
|
|
28
|
-
return props.theme.themeProp('box-shadow', "0px 1px 6px -3px ".concat(polished.rgba(props.theme.getColor('black'), 0.7)), "0 1px 6px -4px
|
|
28
|
+
return props.theme.themeProp('box-shadow', "0px 1px 6px -3px ".concat(polished.rgba(props.theme.getColor('black'), 0.7)), "0 1px 6px -4px ".concat(props.theme.getColor('black')));
|
|
29
29
|
}, function (props) {
|
|
30
30
|
return props.theme.themeProp('border', "1px solid ".concat(props.theme.getColor('gray-800')), "1px solid ".concat(props.theme.getColor('gray-300')));
|
|
31
|
+
}, function (props) {
|
|
32
|
+
return props.contextMenu && styled.css(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n border-radius: 4px;\n\n ", "\n\n ", "\n "])), function (props) {
|
|
33
|
+
return props.theme.themeProp('border', 'none', 'none');
|
|
34
|
+
}, function (props) {
|
|
35
|
+
return props.theme.themeProp('box-shadow', "none", "0 1px 6px ".concat(polished.rgba(props.theme.getColor('gray-900'), 0.3)));
|
|
36
|
+
});
|
|
37
|
+
}, function (props) {
|
|
38
|
+
return props.contextMenuSublevel && styled.css(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n &[data-placement^='right-start'],\n &[data-placement^='left-start'] {\n margin-top: -4px;\n }\n\n &[data-placement^='left'] {\n margin-right: -6px;\n }\n\n &[data-placement^='right'] {\n margin-left: -6px;\n }\n "])));
|
|
31
39
|
}, function (props) {
|
|
32
40
|
return props.theme.themeProp('color', props.theme.getColor('gray-700'), props.theme.getColor('white'));
|
|
33
41
|
}, function (props) {
|
|
@@ -49,8 +57,10 @@ var Popover = React__default['default'].forwardRef(function Popover(_ref, ref) {
|
|
|
49
57
|
offset = _ref.offset,
|
|
50
58
|
arrow = _ref.arrow,
|
|
51
59
|
visible = _ref.visible,
|
|
60
|
+
contextMenu = _ref.contextMenu,
|
|
61
|
+
contextMenuSublevel = _ref.contextMenuSublevel,
|
|
52
62
|
children = _ref.children,
|
|
53
|
-
props = defaultTheme._objectWithoutProperties(_ref, ["content", "interactive", "placement", "duration", "trigger", "offset", "arrow", "visible", "children"]);
|
|
63
|
+
props = defaultTheme._objectWithoutProperties(_ref, ["content", "interactive", "placement", "duration", "trigger", "offset", "arrow", "visible", "contextMenu", "contextMenuSublevel", "children"]);
|
|
54
64
|
|
|
55
65
|
var errorOffset = React.useMemo(function () {
|
|
56
66
|
return arrow ? 15 : 0;
|
|
@@ -58,17 +68,33 @@ var Popover = React__default['default'].forwardRef(function Popover(_ref, ref) {
|
|
|
58
68
|
var isControlled = React.useMemo(function () {
|
|
59
69
|
return lodash.isBoolean(visible);
|
|
60
70
|
}, [visible]);
|
|
71
|
+
|
|
72
|
+
var handleContextMenuItemClick = function handleContextMenuItemClick() {
|
|
73
|
+
document.querySelectorAll('.context-menu-item:not(.opens-sublevel)').forEach(function (item) {
|
|
74
|
+
return item.addEventListener('click', function () {
|
|
75
|
+
document.querySelectorAll('[data-tippy-root]').forEach(function (node) {
|
|
76
|
+
if (node._tippy) {
|
|
77
|
+
node._tippy.hide();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
|
|
61
84
|
return React__default['default'].createElement(Popover$1, defaultTheme._extends({
|
|
62
85
|
ref: ref,
|
|
63
86
|
content: content,
|
|
64
87
|
interactive: interactive,
|
|
65
|
-
placement: placement,
|
|
88
|
+
placement: contextMenuSublevel ? 'right-start' : placement,
|
|
66
89
|
duration: duration,
|
|
67
90
|
animation: 'shift-away-subtle',
|
|
68
|
-
trigger: isControlled ? undefined : trigger,
|
|
91
|
+
trigger: isControlled ? undefined : contextMenuSublevel ? 'mouseenter click focus' : trigger,
|
|
69
92
|
offset: [offset[0], offset[1] + errorOffset],
|
|
70
|
-
arrow: arrow,
|
|
71
|
-
visible: visible
|
|
93
|
+
arrow: contextMenu ? false : arrow,
|
|
94
|
+
visible: visible,
|
|
95
|
+
contextMenu: contextMenu,
|
|
96
|
+
contextMenuSublevel: contextMenuSublevel,
|
|
97
|
+
onShown: contextMenu ? handleContextMenuItemClick : undefined
|
|
72
98
|
}, props), children);
|
|
73
99
|
});
|
|
74
100
|
Popover.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
@@ -80,6 +106,8 @@ Popover.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
80
106
|
offset: defaultTheme.PropTypes.arrayOf(defaultTheme.PropTypes.number),
|
|
81
107
|
arrow: defaultTheme.PropTypes.bool,
|
|
82
108
|
visible: defaultTheme.PropTypes.bool,
|
|
109
|
+
contextMenu: defaultTheme.PropTypes.bool,
|
|
110
|
+
contextMenuSublevel: defaultTheme.PropTypes.bool,
|
|
83
111
|
children: defaultTheme.PropTypes.node.isRequired
|
|
84
112
|
} : {};
|
|
85
113
|
Popover.defaultProps = {
|
|
@@ -91,7 +119,9 @@ Popover.defaultProps = {
|
|
|
91
119
|
maxWidth: 'none',
|
|
92
120
|
trigger: 'click focus',
|
|
93
121
|
arrow: true,
|
|
94
|
-
visible: undefined
|
|
122
|
+
visible: undefined,
|
|
123
|
+
contextMenu: false,
|
|
124
|
+
contextMenuSublevel: false
|
|
95
125
|
};
|
|
96
126
|
|
|
97
127
|
exports.Popover = Popover;
|
package/Tab-06b7a58d.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var defaultTheme = require('./defaultTheme-870f7df1.js');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var styled = require('styled-components');
|
|
6
|
+
|
|
7
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
|
+
|
|
9
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
10
|
+
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
11
|
+
|
|
12
|
+
var _templateObject;
|
|
13
|
+
var Tab$1 = styled__default['default'].p.attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n font-family: ", ";\n font-size: 1rem;\n font-weight: 500;\n border-bottom: 1px solid;\n min-height: 35px;\n\n"])), function (props) {
|
|
14
|
+
return props.theme.primaryFontFamily;
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
var Tab = React__default['default'].forwardRef(function Tab(_ref, forwardedRef) {
|
|
18
|
+
var children = _ref.children,
|
|
19
|
+
props = defaultTheme._objectWithoutProperties(_ref, ["children"]);
|
|
20
|
+
|
|
21
|
+
return React__default['default'].createElement(Tab$1, defaultTheme._extends({
|
|
22
|
+
ref: forwardedRef
|
|
23
|
+
}, props), children);
|
|
24
|
+
});
|
|
25
|
+
Tab.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
26
|
+
children: defaultTheme.PropTypes.element
|
|
27
|
+
} : {};
|
|
28
|
+
Tab.defaultProps = {};
|
|
29
|
+
|
|
30
|
+
exports.Tab = Tab;
|
package/Tabs-cfbf45fe.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var defaultTheme = require('./defaultTheme-870f7df1.js');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var styled = require('styled-components');
|
|
6
|
+
var Tab = require('./Tab-06b7a58d.js');
|
|
7
|
+
var lodash = require('lodash');
|
|
8
|
+
|
|
9
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
|
+
|
|
11
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
12
|
+
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
13
|
+
|
|
14
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
15
|
+
var Tabs$1 = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral([""])));
|
|
16
|
+
var TabHeaders = styled__default['default'].ul.attrs(defaultTheme.applyDefaultTheme)(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n display: flex;\n overflow-x: auto;\n overflow-y: hidden;\n white-space: nowrap;\n gap: 24px;\n margin: 0;\n padding: 0;\n\n"])));
|
|
17
|
+
var TabHeader = styled__default['default'].li.attrs(defaultTheme.applyDefaultTheme)(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n font-family: ", ";\n text-transform: uppercase;\n font-weight: 600;\n font-size: 0.875rem;\n display: flex;\n padding-bottom: 8px;\n letter-spacing: 0.6px;\n cursor: pointer;\n border-bottom: 1px solid;\n border-color: transparent;\n margin-bottom: 1px;\n ", ";\n &&:hover:not(:focus) {\n ", ";\n"])), function (props) {
|
|
18
|
+
return props.theme.secondaryFontFamily;
|
|
19
|
+
}, function (props) {
|
|
20
|
+
return props.active && styled.css(_templateObject4 || (_templateObject4 = defaultTheme._taggedTemplateLiteral(["\n ", "\n "])), function (props) {
|
|
21
|
+
return props.theme.themeProp('border-color', props.theme.getColor('gray-400'), props.theme.getColor('gray-700'));
|
|
22
|
+
});
|
|
23
|
+
}, function (props) {
|
|
24
|
+
return props.theme.themeProp('border-color', function () {
|
|
25
|
+
if (props.active) {
|
|
26
|
+
return props.theme.getColor('gray-400');
|
|
27
|
+
} else {
|
|
28
|
+
return props.theme.getColor('gray-400');
|
|
29
|
+
}
|
|
30
|
+
}, function () {
|
|
31
|
+
if (props.active) {
|
|
32
|
+
return props.theme.getColor('gray-700');
|
|
33
|
+
} else {
|
|
34
|
+
return props.theme.getColor('gray-700');
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
var TabContent = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject5 || (_templateObject5 = defaultTheme._taggedTemplateLiteral(["\n padding-top: 16px;\n border-top: 1px solid;\n margin-top: -2px;\n ", ";\n"])), function (props) {
|
|
39
|
+
return props.theme.themeProp('border-color', props.theme.getColor('gray-600'), '#F0F2F5');
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
var Tabs = React__default['default'].forwardRef(function Tabs(_ref, forwardedRef) {
|
|
43
|
+
var children = _ref.children,
|
|
44
|
+
props = defaultTheme._objectWithoutProperties(_ref, ["children"]);
|
|
45
|
+
|
|
46
|
+
var _useState = React.useState(0),
|
|
47
|
+
_useState2 = defaultTheme._slicedToArray(_useState, 2),
|
|
48
|
+
activeTab = _useState2[0],
|
|
49
|
+
setActiveTab = _useState2[1];
|
|
50
|
+
|
|
51
|
+
var tabs = React.useMemo(function () {
|
|
52
|
+
var tabs = [];
|
|
53
|
+
|
|
54
|
+
function extractChildren(children) {
|
|
55
|
+
React.Children.forEach(children, function (child, index) {
|
|
56
|
+
if (child.type === React.Fragment) {
|
|
57
|
+
extractChildren(child.props.children);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (child.type === Tab.Tab && !lodash.isEmpty(child.props.trigger)) {
|
|
61
|
+
tabs.push({
|
|
62
|
+
key: index,
|
|
63
|
+
trigger: child.props.trigger,
|
|
64
|
+
content: child.props.children
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
extractChildren(children);
|
|
71
|
+
return tabs;
|
|
72
|
+
}, [children]);
|
|
73
|
+
return React__default['default'].createElement(Tabs$1, defaultTheme._extends({
|
|
74
|
+
ref: forwardedRef
|
|
75
|
+
}, props, {
|
|
76
|
+
role: "tablist"
|
|
77
|
+
}), React__default['default'].createElement(TabHeaders, null, tabs.map(function (tab) {
|
|
78
|
+
return React__default['default'].createElement(TabHeader, {
|
|
79
|
+
key: tab.key,
|
|
80
|
+
active: tab.key === activeTab,
|
|
81
|
+
onClick: function onClick() {
|
|
82
|
+
return setActiveTab(tab.key);
|
|
83
|
+
},
|
|
84
|
+
role: "tab"
|
|
85
|
+
}, tab.trigger);
|
|
86
|
+
})), React__default['default'].createElement(TabContent, null, tabs.map(function (tab) {
|
|
87
|
+
return React__default['default'].createElement("div", {
|
|
88
|
+
key: tab.key,
|
|
89
|
+
role: "tabpanel",
|
|
90
|
+
hidden: tab.key !== activeTab
|
|
91
|
+
}, tab.content);
|
|
92
|
+
})));
|
|
93
|
+
});
|
|
94
|
+
Tabs.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
95
|
+
children: defaultTheme.PropTypes.element
|
|
96
|
+
} : {};
|
|
97
|
+
Tabs.defaultProps = {};
|
|
98
|
+
|
|
99
|
+
exports.Tabs = Tabs;
|