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.
Files changed (31) hide show
  1. package/dist/components/fields/SelectFieldComponent/SelectAsyncField.d.ts +1 -0
  2. package/dist/components/forms/ChangePasswordForm.d.ts +2 -2
  3. package/dist/components/forms/LoginForm.d.ts +2 -2
  4. package/dist/components/forms/ResetPasswordForm.d.ts +1 -1
  5. package/dist/components/tables/SearchComponent/SearchComponent.d.ts +1 -0
  6. package/dist/components/wrappers/MainWrapperComponent/MainWrapperComponent.d.ts +1 -1
  7. package/dist/components/wrappers/TabsComponent/TabsComponent.d.ts +17 -0
  8. package/dist/index.d.ts +1 -0
  9. package/dist/techsbcn-storybook.cjs.development.js +79 -20
  10. package/dist/techsbcn-storybook.cjs.development.js.map +1 -1
  11. package/dist/techsbcn-storybook.cjs.production.min.js +1 -1
  12. package/dist/techsbcn-storybook.cjs.production.min.js.map +1 -1
  13. package/dist/techsbcn-storybook.esm.js +80 -22
  14. package/dist/techsbcn-storybook.esm.js.map +1 -1
  15. package/package.json +2 -1
  16. package/src/components/fields/SelectFieldComponent/SelectAsyncField.tsx +6 -0
  17. package/src/components/forms/ChangePasswordForm.tsx +4 -4
  18. package/src/components/forms/LoginForm.tsx +4 -4
  19. package/src/components/forms/ResetPasswordForm.tsx +2 -2
  20. package/src/components/layouts/Standard/AppHeader/AppHeader.scss +2 -2
  21. package/src/components/navigation/components/UserInfo.tsx +1 -1
  22. package/src/components/tables/SearchComponent/SearchComponent.tsx +11 -5
  23. package/src/components/wrappers/MainWrapperComponent/MainWrapperComponent.scss +2 -5
  24. package/src/components/wrappers/MainWrapperComponent/MainWrapperComponent.tsx +13 -9
  25. package/src/components/wrappers/TabsComponent/TabsComponent.scss +22 -0
  26. package/src/components/wrappers/TabsComponent/TabsComponent.tsx +49 -0
  27. package/src/index.tsx +1 -0
  28. package/src/stories/Fields/Fields.stories.tsx +9 -0
  29. package/src/stories/Forms/Forms.stories.tsx +5 -5
  30. package/src/stories/MainWrapper/MainWrapper.stories.tsx +69 -0
  31. 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
- textPassword: string;
13
+ labelPassword: string;
14
14
  placeholderPassword?: string;
15
- textSamePassword: string;
15
+ labelSamePassword: string;
16
16
  placeholderSamePassword?: string;
17
17
  };
18
18
  }
@@ -10,9 +10,9 @@ interface LoginFormProps {
10
10
  };
11
11
  valuesText: {
12
12
  buttonText: string;
13
- textLogin: string;
13
+ labelLogin: string;
14
14
  placeholderLogin?: string;
15
- textPassword: string;
15
+ labelPassword: string;
16
16
  placeholderPassword?: string;
17
17
  };
18
18
  }
@@ -9,7 +9,7 @@ interface resetPasswordFormProps {
9
9
  };
10
10
  valuesText: {
11
11
  buttonText: string;
12
- text: string;
12
+ label: string;
13
13
  placeholder?: string;
14
14
  };
15
15
  }
@@ -11,6 +11,7 @@ export interface SearchComponentProps {
11
11
  singleFilter?: any;
12
12
  doubleFilter?: DoubleFilter;
13
13
  }[];
14
+ enableAfter?: boolean;
14
15
  }
15
16
  interface DoubleFilter {
16
17
  label?: string;
@@ -4,7 +4,7 @@ import './MainWrapperComponent.scss';
4
4
  interface MainWrapperComponentProps {
5
5
  loading?: boolean;
6
6
  loadingChildren?: boolean;
7
- headerProps: SearchComponentProps;
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: 4
137
+ xs: props.actions ? 6 : 12,
138
+ md: 4
138
139
  }, React__default.createElement(material.Box, {
139
- pl: 1,
140
- className: "main-background-color-after title"
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: 8,
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 .title.main-background-color-after {\n color: #000;\n font-size: calc(21px + (23 - 21) * calc(100vw - 300px)/1300) !important;\n font-weight: 400;\n position: relative;\n}\n.main-wrapper-component .title.main-background-color-after:after {\n content: \"\";\n position: absolute;\n left: -17px;\n top: 0;\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}";
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
- alignItems: "center",
251
+ justifyContent: "center",
245
252
  px: 2
246
- }, React__default.createElement(_.CircularProgress, null)) : React__default.createElement(React__default.Fragment, null, React__default.createElement(_.Box, {
247
- mb: 1,
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))), props.divider && React__default.createElement(_.Divider, null), props.children && !props.loadingChildren ? React__default.createElement(_.Box, {
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
- }, props.children) : props.loadingChildren ? React__default.createElement(_.Box, {
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
- alignItems: "center",
267
+ justifyContent: "center",
268
+ pt: props.headerProps ? 2 : 0,
254
269
  px: 2
255
- }, React__default.createElement(_.CircularProgress, null)) : React__default.createElement(React__default.Fragment, null)));
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: 64px;\n height: 100%;\n min-height: 56px;\n width: 100%;\n}\n.app-bar img {\n max-height: 64px;\n height: 100%;\n min-height: 56px;\n width: 100%;\n}";
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.textLogin,
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.textPassword,
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.textPassword,
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.textSamePassword,
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.text,
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;