techsbcn-storybook 0.7.6 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/fields/SelectFieldComponent/SelectAsyncField.d.ts +1 -0
- package/dist/components/forms/ChangePasswordForm.d.ts +2 -2
- package/dist/components/forms/LoginForm.d.ts +2 -2
- package/dist/components/forms/ResetPasswordForm.d.ts +1 -1
- package/dist/components/tables/SearchComponent/SearchComponent.d.ts +1 -0
- package/dist/components/wrappers/MainWrapperComponent/MainWrapperComponent.d.ts +1 -1
- package/dist/components/wrappers/TabsComponent/TabsComponent.d.ts +17 -0
- package/dist/index.d.ts +1 -0
- package/dist/techsbcn-storybook.cjs.development.js +79 -20
- package/dist/techsbcn-storybook.cjs.development.js.map +1 -1
- package/dist/techsbcn-storybook.cjs.production.min.js +1 -1
- package/dist/techsbcn-storybook.cjs.production.min.js.map +1 -1
- package/dist/techsbcn-storybook.esm.js +80 -22
- package/dist/techsbcn-storybook.esm.js.map +1 -1
- package/package.json +2 -1
- package/src/components/fields/SelectFieldComponent/SelectAsyncField.tsx +6 -0
- package/src/components/forms/ChangePasswordForm.tsx +4 -4
- package/src/components/forms/LoginForm.tsx +4 -4
- package/src/components/forms/ResetPasswordForm.tsx +2 -2
- package/src/components/layouts/Standard/AppHeader/AppHeader.scss +2 -2
- package/src/components/navigation/components/UserInfo.tsx +1 -1
- package/src/components/tables/SearchComponent/SearchComponent.tsx +11 -5
- package/src/components/wrappers/MainWrapperComponent/MainWrapperComponent.scss +2 -5
- package/src/components/wrappers/MainWrapperComponent/MainWrapperComponent.tsx +13 -9
- package/src/components/wrappers/TabsComponent/TabsComponent.scss +22 -0
- package/src/components/wrappers/TabsComponent/TabsComponent.tsx +49 -0
- package/src/index.tsx +1 -0
- package/src/stories/Fields/Fields.stories.tsx +9 -0
- package/src/stories/Forms/Forms.stories.tsx +5 -5
- package/src/stories/MainWrapper/MainWrapper.stories.tsx +69 -0
- package/src/styles/Globals.scss +3 -0
|
@@ -10,6 +10,7 @@ interface SelectAsyncFieldProps {
|
|
|
10
10
|
disabled?: boolean;
|
|
11
11
|
onChange?: (value: number, name: string) => void;
|
|
12
12
|
onChangeValue?: (value: number) => void;
|
|
13
|
+
onChangeOption?: (value: number, label: string) => void;
|
|
13
14
|
searchPromise: (filters: SearchFilters) => Promise<any>;
|
|
14
15
|
invalid?: boolean;
|
|
15
16
|
isClearable?: boolean;
|
|
@@ -10,9 +10,9 @@ interface ChangePasswordFormProps {
|
|
|
10
10
|
};
|
|
11
11
|
valuesText: {
|
|
12
12
|
buttonText: string;
|
|
13
|
-
|
|
13
|
+
labelPassword: string;
|
|
14
14
|
placeholderPassword?: string;
|
|
15
|
-
|
|
15
|
+
labelSamePassword: string;
|
|
16
16
|
placeholderSamePassword?: string;
|
|
17
17
|
};
|
|
18
18
|
}
|
|
@@ -4,7 +4,7 @@ import './MainWrapperComponent.scss';
|
|
|
4
4
|
interface MainWrapperComponentProps {
|
|
5
5
|
loading?: boolean;
|
|
6
6
|
loadingChildren?: boolean;
|
|
7
|
-
headerProps
|
|
7
|
+
headerProps?: SearchComponentProps;
|
|
8
8
|
divider?: boolean;
|
|
9
9
|
}
|
|
10
10
|
export declare const MainWrapperComponent: React.FC<MainWrapperComponentProps>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './TabsComponent.scss';
|
|
3
|
+
interface TabsComponentProps {
|
|
4
|
+
tabActive: number;
|
|
5
|
+
tabs: TabLabel[];
|
|
6
|
+
tabsComponent: TabComponent[];
|
|
7
|
+
}
|
|
8
|
+
interface TabLabel {
|
|
9
|
+
label: string;
|
|
10
|
+
value: number;
|
|
11
|
+
}
|
|
12
|
+
interface TabComponent {
|
|
13
|
+
component: React.ReactNode;
|
|
14
|
+
value: number;
|
|
15
|
+
}
|
|
16
|
+
export declare const TabsComponent: React.FC<TabsComponentProps>;
|
|
17
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -16,3 +16,4 @@ export * from './components/forms/LoginForm';
|
|
|
16
16
|
export * from './components/forms/ChangePasswordForm';
|
|
17
17
|
export * from './components/forms/ResetPasswordForm';
|
|
18
18
|
export * from './components/modals/ModalComponent';
|
|
19
|
+
export * from './components/wrappers/TabsComponent/TabsComponent';
|
|
@@ -16,6 +16,7 @@ var reactSelectAsyncPaginate = require('react-select-async-paginate');
|
|
|
16
16
|
var yup = require('yup');
|
|
17
17
|
var reactHookForm = require('react-hook-form');
|
|
18
18
|
var yup$1 = require('@hookform/resolvers/yup');
|
|
19
|
+
var lab = require('@mui/lab');
|
|
19
20
|
|
|
20
21
|
function styleInject(css, ref) {
|
|
21
22
|
if ( ref === void 0 ) ref = {};
|
|
@@ -130,17 +131,17 @@ var SearchComponent = function SearchComponent(props) {
|
|
|
130
131
|
className: "search-component " + props.className
|
|
131
132
|
}, React__default.createElement(material.Grid, {
|
|
132
133
|
container: true,
|
|
133
|
-
spacing: 2,
|
|
134
134
|
alignItems: "center"
|
|
135
135
|
}, React__default.createElement(material.Grid, {
|
|
136
136
|
item: true,
|
|
137
|
-
xs:
|
|
137
|
+
xs: props.actions ? 6 : 12,
|
|
138
|
+
md: 4
|
|
138
139
|
}, React__default.createElement(material.Box, {
|
|
139
|
-
|
|
140
|
-
className:
|
|
140
|
+
px: 1,
|
|
141
|
+
className: (props.enableAfter ? 'main-background-color-after' : '') + " title"
|
|
141
142
|
}, props.title)), props.actions && React__default.createElement(material.Grid, {
|
|
142
143
|
item: true,
|
|
143
|
-
xs:
|
|
144
|
+
xs: props.title ? 6 : 12,
|
|
144
145
|
sx: {
|
|
145
146
|
display: {
|
|
146
147
|
xs: 'block',
|
|
@@ -198,6 +199,12 @@ var SearchComponent = function SearchComponent(props) {
|
|
|
198
199
|
alignItems: "center"
|
|
199
200
|
}, React__default.createElement(material.Box, {
|
|
200
201
|
ml: "auto",
|
|
202
|
+
sx: (props.searchBar || props.filters) && {
|
|
203
|
+
mt: {
|
|
204
|
+
xs: 2,
|
|
205
|
+
md: 0
|
|
206
|
+
}
|
|
207
|
+
},
|
|
201
208
|
display: "flex",
|
|
202
209
|
width: "100%"
|
|
203
210
|
}, props.searchBar, props.filters && React__default.createElement(material.Box, {
|
|
@@ -232,7 +239,7 @@ var SearchComponent = function SearchComponent(props) {
|
|
|
232
239
|
})))));
|
|
233
240
|
};
|
|
234
241
|
|
|
235
|
-
var css_248z$2 = ".main-wrapper-component {\n background-color: white;\n box-shadow: 0 1px 20px 0 rgba(69, 90, 100, 0.08);\n}\n.main-wrapper-component .
|
|
242
|
+
var css_248z$2 = ".main-wrapper-component {\n background-color: white;\n box-shadow: 0 1px 20px 0 rgba(69, 90, 100, 0.08);\n}\n.main-wrapper-component .main-background-color-after {\n position: relative;\n}\n.main-wrapper-component .main-background-color-after:after {\n content: \"\";\n position: absolute;\n left: -17px;\n top: -4px;\n width: 4px;\n height: 30px;\n}\n.main-wrapper-component .wrapper-actions .btn-action {\n cursor: pointer;\n}\n.main-wrapper-component .wrapper-actions .btn-action .MuiButton-root {\n width: max-content;\n}\n.main-wrapper-component .wrapper-actions .btn-action svg {\n font-size: 40px;\n}";
|
|
236
243
|
styleInject(css_248z$2);
|
|
237
244
|
|
|
238
245
|
var MainWrapperComponent = function MainWrapperComponent(props) {
|
|
@@ -241,18 +248,28 @@ var MainWrapperComponent = function MainWrapperComponent(props) {
|
|
|
241
248
|
py: 2
|
|
242
249
|
}, props.loading ? React__default.createElement(_.Box, {
|
|
243
250
|
display: "flex",
|
|
244
|
-
|
|
251
|
+
justifyContent: "center",
|
|
245
252
|
px: 2
|
|
246
|
-
}, React__default.createElement(_.CircularProgress,
|
|
247
|
-
|
|
253
|
+
}, React__default.createElement(_.CircularProgress, {
|
|
254
|
+
className: "circular-progress-main-color"
|
|
255
|
+
})) : React__default.createElement(React__default.Fragment, null, props.headerProps && React__default.createElement(_.Box, {
|
|
256
|
+
mb: props.divider ? 1 : 0,
|
|
248
257
|
px: 2
|
|
249
|
-
}, React__default.createElement(SearchComponent, Object.assign({}, props.headerProps
|
|
258
|
+
}, React__default.createElement(SearchComponent, Object.assign({}, props.headerProps, {
|
|
259
|
+
enableAfter: true
|
|
260
|
+
}))), props.divider && React__default.createElement(_.Divider, null), props.children && !props.loadingChildren ? React__default.createElement(_.Box, {
|
|
261
|
+
pt: props.headerProps ? 2 : 0,
|
|
250
262
|
px: 2
|
|
251
|
-
},
|
|
263
|
+
}, React__default.createElement(_.Box, {
|
|
264
|
+
className: "" + (props.headerProps ? '' : 'main-background-color-after')
|
|
265
|
+
}, props.children)) : props.loadingChildren ? React__default.createElement(_.Box, {
|
|
252
266
|
display: "flex",
|
|
253
|
-
|
|
267
|
+
justifyContent: "center",
|
|
268
|
+
pt: props.headerProps ? 2 : 0,
|
|
254
269
|
px: 2
|
|
255
|
-
}, React__default.createElement(_.CircularProgress,
|
|
270
|
+
}, React__default.createElement(_.CircularProgress, {
|
|
271
|
+
className: "circular-progress-main-color"
|
|
272
|
+
})) : React__default.createElement(React__default.Fragment, null)));
|
|
256
273
|
};
|
|
257
274
|
|
|
258
275
|
var css_248z$3 = ".table-component .paper-container {\n box-shadow: none;\n background-color: transparent !important;\n}\n.table-component .paper-container .checkbox-cell .MuiCheckbox-root {\n padding: 0 !important;\n}\n.table-component .paper-container .checkbox-cell .MuiCheckbox-root:hover {\n background-color: transparent !important;\n}\n.table-component .paper-container .checkbox-cell .Mui-checked {\n color: rgba(0, 0, 0, 0.54) !important;\n}\n.table-component .paper-container .checkbox-cell .MuiCheckbox-indeterminate {\n color: #212529 !important;\n}\n.table-component .paper-container .table-container {\n max-height: 68vh;\n border-bottom: 1px solid black;\n}\n.table-component .paper-container .table-container .table-column:first-child {\n border-radius: 5px 0 0 5px;\n}\n.table-component .paper-container .table-container .table-column:last-child {\n border-right: none !important;\n border-radius: 0 5px 5px 0;\n}\n.table-component .paper-container .table-container .table-column {\n font-weight: bold;\n font-size: 1rem !important;\n padding: 10px !important;\n border-top: 1px solid #e0e0e0;\n border-right: 1px solid #e0e0e0;\n border-bottom: 2px solid #e0e0e0;\n}\n.table-component .paper-container .table-container .table-column .table-header-cell {\n color: black;\n padding: 0px 10px 0px 10px !important;\n}\n.table-component .paper-container .table-container .table-rows.row-click {\n cursor: pointer;\n}\n.table-component .paper-container .table-container .table-rows.row-click:hover {\n background-color: rgba(0, 0, 0, 0.04);\n}\n.table-component .paper-container .table-container .table-rows .MuiTableCell-root {\n padding: 6px !important;\n overflow: hidden;\n}\n.table-component .paper-container .table-container .table-rows .img-table {\n width: 100%;\n height: 110px;\n}\n.table-component .paper-container .table-container .table-rows .img-table img {\n object-fit: contain;\n}\n.table-component .paper-container .table-container .table-rows .actions {\n float: right;\n}\n.table-component .paper-container .table-container .table-rows .btn-action {\n color: rgba(0, 0, 0, 0.54);\n display: inline-block;\n text-decoration: none;\n font-size: 1.6em !important;\n padding: 0px 7px;\n cursor: pointer;\n}\n.table-component .paper-container .MuiTable-root.loading {\n opacity: 0.5;\n}\n.table-component .paper-container .MuiTable-root.loading .MuiCircularProgress-root {\n width: 80px !important;\n height: 80px !important;\n position: absolute;\n left: 0;\n right: 0;\n top: 5px;\n margin: auto;\n color: grey;\n}\n.table-component .paper-container .MuiTablePagination-root {\n overflow: unset;\n}\n.table-component .paper-container .MuiTablePagination-root .MuiToolbar-root {\n justify-content: center !important;\n flex-wrap: wrap;\n padding: 0px !important;\n}\n.table-component .paper-container .MuiTablePagination-root .MuiTablePagination-spacer {\n flex: 0 !important;\n}\n.table-component .paper-container .MuiTablePagination-root .pagination .MuiPaginationItem-page {\n border-radius: 0px;\n margin: 1px;\n color: white !important;\n background-color: #3f4d67;\n}\n.table-component .paper-container .MuiTablePagination-root .pagination .MuiPaginationItem-page.Mui-selected {\n background-color: #3299C7;\n}\n.table-component .paper-container .MuiTablePagination-root .pagination li button {\n padding: 14px;\n}\n.table-component .paper-container .MuiTablePagination-root .pagination li:nth-child(2) .MuiPaginationItem-page {\n border-radius: 5px 0 0 5px !important;\n}\n.table-component .paper-container .MuiTablePagination-root .pagination li:nth-last-child(2) .MuiPaginationItem-page {\n border-radius: 0 5px 5px 0 !important;\n}\n@media (max-width: 992px) {\n .table-component .paper-container .table-container {\n max-height: 60vh;\n border-top: 1px solid #cccccc;\n }\n .table-component .paper-container .table-container .MuiTable-root {\n border-collapse: collapse !important;\n }\n .table-component .paper-container .table-container .MuiTableHead-root {\n display: none !important;\n }\n .table-component .paper-container .table-container .table-rows {\n border-bottom: 2px solid #cccccc;\n }\n .table-component .paper-container .table-container .table-rows .MuiTableCell-root {\n width: 100%;\n border-bottom: none !important;\n }\n .table-component .paper-container .table-container .table-rows .MuiTableCell-root .label-cell {\n font-size: 1rem;\n vertical-align: top;\n width: 50%;\n height: auto;\n }\n .table-component .paper-container .table-container .table-rows .MuiTableCell-root .label-cell + div {\n display: inline-block;\n }\n .table-component .paper-container .table-container .table-rows .table-cell {\n display: inline-block !important;\n }\n .table-component .paper-container .table-container .table-rows .format-value {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n width: 50%;\n max-width: 300px;\n }\n}";
|
|
@@ -776,7 +793,7 @@ var UserInfo = function UserInfo(props) {
|
|
|
776
793
|
}, React__default.createElement(material.Box, {
|
|
777
794
|
display: "flex",
|
|
778
795
|
alignItems: "center"
|
|
779
|
-
}, props.photoURL ? React__default.createElement(material.Avatar, {
|
|
796
|
+
}, props.photoURL && props.photoURL !== undefined ? React__default.createElement(material.Avatar, {
|
|
780
797
|
className: "avatar-user",
|
|
781
798
|
src: props.photoURL
|
|
782
799
|
}) : React__default.createElement(material.Avatar, {
|
|
@@ -893,7 +910,7 @@ var DrawerSidebar = function DrawerSidebar(props) {
|
|
|
893
910
|
}, props.footerComponents))));
|
|
894
911
|
};
|
|
895
912
|
|
|
896
|
-
var css_248z$9 = ".app-bar {\n background-color: white !important;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n color: black !important;\n}\n.app-bar .header-logo {\n max-height:
|
|
913
|
+
var css_248z$9 = ".app-bar {\n background-color: white !important;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n color: black !important;\n}\n.app-bar .header-logo {\n max-height: 59px;\n height: 100%;\n min-height: 56px;\n width: 100%;\n}\n.app-bar img {\n max-height: 59px;\n height: 100%;\n min-height: 56px;\n width: 100%;\n}";
|
|
897
914
|
styleInject(css_248z$9);
|
|
898
915
|
|
|
899
916
|
var AppHeader = function AppHeader(props) {
|
|
@@ -1907,6 +1924,11 @@ var SelectAsyncField = function SelectAsyncField(props) {
|
|
|
1907
1924
|
props.onChangeValue && props.onChangeValue(option && option.length > 0 ? option.map(function (o) {
|
|
1908
1925
|
return o.value;
|
|
1909
1926
|
}) : option ? option.value : option);
|
|
1927
|
+
props.onChangeOption && props.onChangeOption(option && option.length > 0 ? option.map(function (o) {
|
|
1928
|
+
return o.value;
|
|
1929
|
+
}) : option ? option.value : option, option && option.length > 0 ? option.map(function (o) {
|
|
1930
|
+
return o.label;
|
|
1931
|
+
}) : option ? option.label : option);
|
|
1910
1932
|
},
|
|
1911
1933
|
selectRef: props.inputRef,
|
|
1912
1934
|
isDisabled: props.disabled,
|
|
@@ -1964,7 +1986,7 @@ var LoginForm = function LoginForm(props) {
|
|
|
1964
1986
|
name = _ref$field.name,
|
|
1965
1987
|
ref = _ref$field.ref;
|
|
1966
1988
|
return React__default.createElement(TextFieldComponent, {
|
|
1967
|
-
label: props.valuesText.
|
|
1989
|
+
label: props.valuesText.labelLogin,
|
|
1968
1990
|
placeholder: props.valuesText.placeholderLogin,
|
|
1969
1991
|
autoComplete: "login",
|
|
1970
1992
|
error: !!errors.login,
|
|
@@ -1989,7 +2011,7 @@ var LoginForm = function LoginForm(props) {
|
|
|
1989
2011
|
name = _ref2$field.name,
|
|
1990
2012
|
ref = _ref2$field.ref;
|
|
1991
2013
|
return React__default.createElement(TextFieldComponent, {
|
|
1992
|
-
label: props.valuesText.
|
|
2014
|
+
label: props.valuesText.labelPassword,
|
|
1993
2015
|
placeholder: props.valuesText.placeholderPassword,
|
|
1994
2016
|
type: showPassword ? 'text' : 'password',
|
|
1995
2017
|
error: !!errors.password,
|
|
@@ -2066,7 +2088,7 @@ var ChangePasswordForm = function ChangePasswordForm(props) {
|
|
|
2066
2088
|
name = _ref$field.name,
|
|
2067
2089
|
ref = _ref$field.ref;
|
|
2068
2090
|
return React__default.createElement(TextFieldComponent, {
|
|
2069
|
-
label: props.valuesText.
|
|
2091
|
+
label: props.valuesText.labelPassword,
|
|
2070
2092
|
type: showPassword ? 'text' : 'password',
|
|
2071
2093
|
error: !!errors.password,
|
|
2072
2094
|
placeholder: props.valuesText.placeholderPassword,
|
|
@@ -2097,7 +2119,7 @@ var ChangePasswordForm = function ChangePasswordForm(props) {
|
|
|
2097
2119
|
name = _ref2$field.name,
|
|
2098
2120
|
ref = _ref2$field.ref;
|
|
2099
2121
|
return React__default.createElement(TextFieldComponent, {
|
|
2100
|
-
label: props.valuesText.
|
|
2122
|
+
label: props.valuesText.labelSamePassword,
|
|
2101
2123
|
placeholder: props.valuesText.placeholderSamePassword,
|
|
2102
2124
|
type: showPassword ? 'text' : 'password',
|
|
2103
2125
|
error: !!errors.passwordConfirmation,
|
|
@@ -2157,7 +2179,7 @@ var ResetPasswordForm = function ResetPasswordForm(props) {
|
|
|
2157
2179
|
name = _ref$field.name,
|
|
2158
2180
|
ref = _ref$field.ref;
|
|
2159
2181
|
return React__default.createElement(TextFieldComponent, {
|
|
2160
|
-
label: props.valuesText.
|
|
2182
|
+
label: props.valuesText.label,
|
|
2161
2183
|
placeholder: props.valuesText.placeholder,
|
|
2162
2184
|
autoComplete: "email",
|
|
2163
2185
|
error: !!errors.email,
|
|
@@ -2233,6 +2255,42 @@ ModalComponent.defaultProps = {
|
|
|
2233
2255
|
dividers: true
|
|
2234
2256
|
};
|
|
2235
2257
|
|
|
2258
|
+
var css_248z$d = ".tabs-component .Mui-selected {\n color: white !important;\n border: none !important;\n background-color: #3299C7;\n}\n.tabs-component .MuiTabs-indicator {\n display: none;\n}\n.tabs-component .MuiTab-root {\n margin: 2px 2px 0px;\n border: 1px solid #00000038;\n border-bottom: none;\n border-radius: 5% 5% 0% 0%;\n color: rgba(0, 0, 0, 0.54);\n}\n.tabs-component .MuiTabPanel-root {\n border: 1px solid #00000038;\n margin: 0px 2px 0px;\n border-radius: 0% 5px 5px 5px;\n}";
|
|
2259
|
+
styleInject(css_248z$d);
|
|
2260
|
+
|
|
2261
|
+
var TabsComponent = function TabsComponent(props) {
|
|
2262
|
+
var _React$useState = React__default.useState(props.tabActive.toString()),
|
|
2263
|
+
value = _React$useState[0],
|
|
2264
|
+
setValue = _React$useState[1];
|
|
2265
|
+
|
|
2266
|
+
var handleChange = function handleChange(_event, newValue) {
|
|
2267
|
+
setValue(newValue);
|
|
2268
|
+
};
|
|
2269
|
+
|
|
2270
|
+
return React__default.createElement(MainWrapperComponent, null, React__default.createElement(material.Box, {
|
|
2271
|
+
className: "tabs-component"
|
|
2272
|
+
}, React__default.createElement(lab.TabContext, {
|
|
2273
|
+
value: value
|
|
2274
|
+
}, React__default.createElement(lab.TabList, {
|
|
2275
|
+
onChange: handleChange
|
|
2276
|
+
}, props.tabs.sort(function (a, b) {
|
|
2277
|
+
return a.value - b.value;
|
|
2278
|
+
}).map(function (tabLabel) {
|
|
2279
|
+
return React__default.createElement(material.Tab, {
|
|
2280
|
+
key: tabLabel.value,
|
|
2281
|
+
label: tabLabel.label,
|
|
2282
|
+
value: tabLabel.value.toString()
|
|
2283
|
+
});
|
|
2284
|
+
})), props.tabsComponent.sort(function (a, b) {
|
|
2285
|
+
return a.value - b.value;
|
|
2286
|
+
}).map(function (tabComponent) {
|
|
2287
|
+
return React__default.createElement(lab.TabPanel, {
|
|
2288
|
+
key: tabComponent.value,
|
|
2289
|
+
value: tabComponent.value.toString()
|
|
2290
|
+
}, tabComponent.component);
|
|
2291
|
+
}))));
|
|
2292
|
+
};
|
|
2293
|
+
|
|
2236
2294
|
exports.AppHeader = AppHeader;
|
|
2237
2295
|
exports.AppSidebar = AppSidebar;
|
|
2238
2296
|
exports.ButtonComponent = ButtonComponent;
|
|
@@ -2248,6 +2306,7 @@ exports.SearchComponent = SearchComponent;
|
|
|
2248
2306
|
exports.SelectAsyncField = SelectAsyncField;
|
|
2249
2307
|
exports.SelectField = SelectField;
|
|
2250
2308
|
exports.TableComponent = TableComponent;
|
|
2309
|
+
exports.TabsComponent = TabsComponent;
|
|
2251
2310
|
exports.TextFieldComponent = TextFieldComponent;
|
|
2252
2311
|
exports.UserInfo = UserInfo;
|
|
2253
2312
|
exports.VerticalNav = VerticalNav;
|