techsbcn-storybook 0.1.6 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/components/fields/ButtonComponent/ButtonComponent.d.ts +14 -0
  2. package/dist/components/fields/TextFieldComponent/TextFieldComponent.d.ts +32 -0
  3. package/dist/components/forms/ChangePasswordForm.d.ts +20 -0
  4. package/dist/components/forms/LoginForm.d.ts +20 -0
  5. package/dist/components/forms/ResetPasswordForm.d.ts +17 -0
  6. package/dist/components/wrappers/PublicFormWrapper/PublicFormWrapper.d.ts +7 -0
  7. package/dist/index.d.ts +6 -2
  8. package/dist/stories/button/Button.stories.d.ts +4 -4
  9. package/dist/techsbcn-storybook.cjs.development.js +356 -16
  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 +350 -15
  14. package/dist/techsbcn-storybook.esm.js.map +1 -1
  15. package/package.json +84 -27
  16. package/src/components/fields/ButtonComponent/ButtonComponent.scss +31 -0
  17. package/src/components/fields/ButtonComponent/ButtonComponent.tsx +32 -0
  18. package/src/components/fields/TextFieldComponent/TextFieldComponent.scss +37 -0
  19. package/src/components/fields/TextFieldComponent/TextFieldComponent.tsx +94 -0
  20. package/src/components/forms/ChangePasswordForm.tsx +126 -0
  21. package/src/components/forms/LoginForm.tsx +101 -0
  22. package/src/components/forms/ResetPasswordForm.tsx +65 -0
  23. package/src/components/wrappers/PublicFormWrapper/PublicFormWrapper.scss +7 -0
  24. package/src/components/wrappers/PublicFormWrapper/PublicFormWrapper.tsx +25 -0
  25. package/src/index.tsx +6 -2
  26. package/src/stories/button/Button.stories.tsx +20 -19
  27. package/src/stories/thing/Thing.stories.tsx +1 -1
  28. package/src/stories/thing/Thing.tsx +1 -1
  29. package/src/styles/Globals.scss +46 -0
  30. package/dist/stories/button/Button.d.ts +0 -7
  31. package/src/stories/button/Button.scss +0 -11
  32. package/src/stories/button/Button.tsx +0 -12
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import './ButtonComponent.scss';
3
+ export interface ButtonComponentProps {
4
+ className?: string;
5
+ label?: string;
6
+ startIcon?: React.ReactNode;
7
+ endIcon?: React.ReactNode;
8
+ onClick?: () => void;
9
+ loading?: boolean;
10
+ form?: string;
11
+ type?: 'button' | 'submit' | 'reset';
12
+ disabled?: boolean;
13
+ }
14
+ export declare const ButtonComponent: React.FC<ButtonComponentProps>;
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import './TextFieldComponent.scss';
3
+ export declare type InputType = 'text' | 'radio' | 'checkbox' | 'textarea' | 'submit' | 'date' | 'hidden' | 'number' | 'range' | 'password' | 'time' | 'file';
4
+ interface TextFieldComponentProps {
5
+ id?: string;
6
+ label?: string;
7
+ name?: string;
8
+ value?: string | number;
9
+ className?: string;
10
+ type?: InputType;
11
+ placeholder?: string;
12
+ required?: boolean;
13
+ disabled?: boolean;
14
+ minNumber?: number;
15
+ maxNumber?: number;
16
+ error?: boolean;
17
+ startIcon?: React.ReactNode;
18
+ endIcon?: React.ReactNode;
19
+ fullWidth?: boolean;
20
+ helperText?: string;
21
+ textFieldRef?: any;
22
+ inputRef?: React.Ref<any>;
23
+ autoComplete?: string;
24
+ multiline?: boolean;
25
+ rows?: number;
26
+ maxLength?: number;
27
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
28
+ onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
29
+ step?: number | string;
30
+ }
31
+ export declare const TextFieldComponent: React.FC<TextFieldComponentProps>;
32
+ export {};
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ interface ChangePasswordFormProps {
3
+ onClick: (data: any) => void;
4
+ loading: boolean;
5
+ topComponent?: React.ReactNode;
6
+ bottomComponent?: React.ReactNode;
7
+ requiredText: {
8
+ requiredTextPassword: string;
9
+ requiredTextSamePassword: string;
10
+ };
11
+ valuesText: {
12
+ buttonText: string;
13
+ text1: string;
14
+ placeholder1?: string;
15
+ text2: string;
16
+ placeholder2?: string;
17
+ };
18
+ }
19
+ export declare const ChangePasswordForm: React.FC<ChangePasswordFormProps>;
20
+ export {};
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ interface LoginFormProps {
3
+ onClick: (data: any) => void;
4
+ topComponent?: React.ReactNode;
5
+ bottomComponent?: React.ReactNode;
6
+ loading: boolean;
7
+ requiredText: {
8
+ requiredTextMail: string;
9
+ requiredTextPassword: string;
10
+ };
11
+ valuesText: {
12
+ buttonText: string;
13
+ text1: string;
14
+ placeholder1?: string;
15
+ text2: string;
16
+ placeholder2?: string;
17
+ };
18
+ }
19
+ export declare const LoginForm: React.FC<LoginFormProps>;
20
+ export {};
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ interface resetPasswordFormProps {
3
+ onClick: (data: any) => void;
4
+ loading: boolean;
5
+ topComponent?: React.ReactNode;
6
+ bottomComponent?: React.ReactNode;
7
+ requiredText: {
8
+ requiredTextMail: string;
9
+ };
10
+ valuesText: {
11
+ buttonText: string;
12
+ text: string;
13
+ placeholder?: string;
14
+ };
15
+ }
16
+ export declare const ResetPasswordForm: React.FC<resetPasswordFormProps>;
17
+ export {};
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import './PublicFormWrapper.scss';
3
+ interface PublicFormWrapperProps {
4
+ className?: string;
5
+ }
6
+ export declare const PublicFormWrapper: React.FC<PublicFormWrapperProps>;
7
+ export {};
package/dist/index.d.ts CHANGED
@@ -1,2 +1,6 @@
1
- export * from './stories/button/Button';
2
- export * from './stories/thing/Thing';
1
+ export * from './components/wrappers/PublicFormWrapper/PublicFormWrapper';
2
+ export * from './components/fields/ButtonComponent/ButtonComponent';
3
+ export * from './components/fields/TextFieldComponent/TextFieldComponent';
4
+ export * from './components/forms/LoginForm';
5
+ export * from './components/forms/ChangePasswordForm';
6
+ export * from './components/forms/ResetPasswordForm';
@@ -1,7 +1,7 @@
1
1
  import { Meta, Story } from '@storybook/react';
2
- import { ButtonProps } from './Button';
3
2
  declare const meta: Meta;
4
3
  export default meta;
5
- export declare const Default: Story<ButtonProps>;
6
- export declare const Primary: Story<ButtonProps>;
7
- export declare const Secondary: Story<ButtonProps>;
4
+ export declare const Default: Story<import("@storybook/react").Args>;
5
+ export declare const LoginButton: Story<import("@storybook/react").Args>;
6
+ export declare const ModalCancel: Story<import("@storybook/react").Args>;
7
+ export declare const Loading: Story<import("@storybook/react").Args>;
@@ -4,7 +4,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
6
 
7
- var React = _interopDefault(require('react'));
7
+ var React = require('react');
8
+ var React__default = _interopDefault(React);
9
+ var material = require('@mui/material');
10
+ var _ = require('@mui/material/');
11
+ var yup = require('yup');
12
+ var reactHookForm = require('react-hook-form');
13
+ var yup$1 = require('@hookform/resolvers/yup');
14
+ var iconsMaterial = require('@mui/icons-material');
8
15
 
9
16
  function styleInject(css, ref) {
10
17
  if ( ref === void 0 ) ref = {};
@@ -33,27 +40,360 @@ function styleInject(css, ref) {
33
40
  }
34
41
  }
35
42
 
36
- var css_248z = ".btn.primary {\n background-color: blue;\n color: white;\n}\n.btn.secondary {\n background-color: red;\n color: black;\n}";
43
+ var css_248z = ".public-form-wrapper .wrapper-box {\n background: white;\n border-radius: 5px;\n box-shadow: rgba(0, 0, 0, 0.2) 0px 11px 15px -7px, rgba(0, 0, 0, 0.14) 0px 24px 38px 3px, rgba(0, 0, 0, 0.12) 0px 9px 46px 8px;\n}";
37
44
  styleInject(css_248z);
38
45
 
39
- var Button = function Button(_ref) {
40
- var label = _ref.label,
41
- primary = _ref.primary;
42
- return React.createElement("button", {
43
- className: "btn " + (primary ? 'primary' : 'secondary')
44
- }, label);
46
+ var PublicFormWrapper = function PublicFormWrapper(props) {
47
+ return React__default.createElement(material.Box, {
48
+ height: "100%",
49
+ className: "public-form-wrapper " + (props.className ? props.className : ''),
50
+ display: "flex",
51
+ justifyContent: "center",
52
+ alignItems: "center"
53
+ }, React__default.createElement(material.Container, {
54
+ maxWidth: "xs"
55
+ }, React__default.createElement(material.Box, {
56
+ className: "wrapper-box",
57
+ p: 1
58
+ }, props.children)));
45
59
  };
46
60
 
47
- var css_248z$1 = ".thing {\n background-color: black;\n color: white;\n}";
61
+ var css_248z$1 = ".MuiButton-root {\n width: auto;\n padding: 0.8rem 1rem !important;\n text-transform: inherit !important;\n line-height: inherit !important;\n font-size: calc(12pt + (14 - 12) * calc(100vw - 300px)/1300) !important;\n box-shadow: none !important;\n}\n.MuiButton-root.btn-login {\n width: 100%;\n}\n.MuiButton-root.btn-modal-cancel {\n background-color: #666666 !important;\n}\n.MuiButton-root:hover {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12) !important;\n}\n.MuiButton-root .MuiCircularProgress-root {\n color: white !important;\n}\n.MuiButton-root .MuiButton-label {\n font-size: calc(12pt + (14 - 12) * calc(100vw - 300px)/1300) !important;\n}\n.MuiButton-root .MuiButton-label .MuiCircularProgress-root {\n color: white !important;\n}";
48
62
  styleInject(css_248z$1);
49
63
 
50
- var Thing = function Thing(_ref) {
51
- var children = _ref.children;
52
- return React.createElement("div", {
53
- className: "thing"
54
- }, children || "the snozzberries taste like snozzberries");
64
+ var ButtonComponent = function ButtonComponent(props) {
65
+ return React__default.createElement(_.Button, {
66
+ type: props.type && props.type,
67
+ variant: "contained",
68
+ form: props.form && props.form,
69
+ className: "main-background-color " + (props.className ? props.className : ''),
70
+ startIcon: !props.loading && props.startIcon,
71
+ endIcon: !props.loading && props.endIcon,
72
+ onClick: props.onClick,
73
+ disabled: !props.loading && props.disabled
74
+ }, props.loading ? React__default.createElement(_.CircularProgress, {
75
+ size: 25
76
+ }) : props.label);
55
77
  };
56
78
 
57
- exports.Button = Button;
58
- exports.Thing = Thing;
79
+ var css_248z$2 = ".text-field-component .MuiFormLabel-root + .MuiInputBase-formControl {\n margin-top: 22px !important;\n}\n.text-field-component .MuiInputBase-root {\n color: grey !important;\n border: 1px solid grey;\n padding: 0.43rem 0.87rem;\n background-color: white !important;\n border-radius: 3px !important;\n}\n.text-field-component .MuiInputBase-root.Mui-error {\n border: 1px solid #F24726 !important;\n}\n.text-field-component .MuiInputBase-root:not(.Mui-disabled):hover {\n border: 1px solid grey;\n}\n.text-field-component .MuiInputBase-root.Mui-focused {\n border: 1px solid grey;\n}\n.text-field-component .MuiInputBase-root .MuiInputBase-input {\n color: #666666 !important;\n background-color: white !important;\n}\n.text-field-component .MuiInputBase-root .MuiInputBase-input::placeholder {\n text-overflow: ellipsis !important;\n color: #666666 !important;\n opacity: 1;\n}\n.text-field-component .MuiInputBase-root .Mui-disabled {\n -webkit-text-fill-color: #666666 !important;\n}\n.text-field-component .MuiFormHelperText-root {\n padding: 0 !important;\n font-size: 0.85rem !important;\n}";
80
+ styleInject(css_248z$2);
81
+
82
+ var TextFieldComponent = function TextFieldComponent(props) {
83
+ return React__default.createElement(_.Box, {
84
+ className: "text-field-component",
85
+ width: "100%"
86
+ }, React__default.createElement(_.TextField, {
87
+ error: props.error,
88
+ id: props.id,
89
+ label: props.label,
90
+ defaultValue: props.value,
91
+ className: props.className,
92
+ required: props.required,
93
+ disabled: props.disabled,
94
+ type: props.type,
95
+ placeholder: props.placeholder,
96
+ autoComplete: props.autoComplete,
97
+ variant: "standard",
98
+ ref: props.inputRef,
99
+ InputProps: {
100
+ disableUnderline: true,
101
+ startAdornment: props.startIcon,
102
+ endAdornment: props.endIcon,
103
+ inputProps: {
104
+ max: props.maxNumber,
105
+ min: props.minNumber,
106
+ step: props.step
107
+ }
108
+ },
109
+ InputLabelProps: {
110
+ shrink: true
111
+ },
112
+ helperText: props.helperText,
113
+ fullWidth: props.fullWidth,
114
+ multiline: props.multiline,
115
+ rows: props.rows,
116
+ onChange: props.onChange,
117
+ onKeyUp: props.onKeyUp,
118
+ inputProps: {
119
+ maxLength: props.maxLength,
120
+ step: props.step,
121
+ max: props.maxNumber,
122
+ min: props.minNumber
123
+ }
124
+ }));
125
+ };
126
+ TextFieldComponent.defaultProps = {
127
+ fullWidth: true,
128
+ type: 'text'
129
+ };
130
+
131
+ var LoginForm = function LoginForm(props) {
132
+ var LoginSchema = yup.object().shape({
133
+ email: yup.string().required(props.requiredText.requiredTextMail),
134
+ password: yup.string().required(props.requiredText.requiredTextPassword)
135
+ });
136
+
137
+ var _useState = React.useState(false),
138
+ showPassword = _useState[0],
139
+ setShownPassword = _useState[1];
140
+
141
+ var handleClickShowPassword = function handleClickShowPassword() {
142
+ setShownPassword(!showPassword);
143
+ };
144
+
145
+ var _useForm = reactHookForm.useForm({
146
+ resolver: yup$1.yupResolver(LoginSchema)
147
+ }),
148
+ control = _useForm.control,
149
+ handleSubmit = _useForm.handleSubmit,
150
+ errors = _useForm.formState.errors;
151
+
152
+ return React__default.createElement(material.Box, {
153
+ m: 2
154
+ }, props.topComponent && React__default.createElement(material.Box, {
155
+ m: 2
156
+ }, props.topComponent), React__default.createElement(material.Box, {
157
+ my: 2
158
+ }, React__default.createElement(material.Grid, {
159
+ container: true,
160
+ direction: "column",
161
+ spacing: 1
162
+ }, React__default.createElement(material.Grid, {
163
+ item: true
164
+ }, React__default.createElement(reactHookForm.Controller, {
165
+ control: control,
166
+ name: 'email',
167
+ render: function render(_ref) {
168
+ var _errors$email;
169
+
170
+ var _ref$field = _ref.field,
171
+ _onChange = _ref$field.onChange,
172
+ name = _ref$field.name,
173
+ ref = _ref$field.ref;
174
+ return React__default.createElement(TextFieldComponent, {
175
+ label: props.valuesText.text1,
176
+ placeholder: props.valuesText.placeholder1,
177
+ autoComplete: "email",
178
+ error: !!errors.email,
179
+ helperText: (_errors$email = errors.email) == null ? void 0 : _errors$email.message,
180
+ name: name,
181
+ inputRef: ref,
182
+ onChange: function onChange(e) {
183
+ _onChange(e);
184
+ }
185
+ });
186
+ }
187
+ })), React__default.createElement(material.Grid, {
188
+ item: true
189
+ }, React__default.createElement(reactHookForm.Controller, {
190
+ control: control,
191
+ name: 'password',
192
+ render: function render(_ref2) {
193
+ var _errors$password;
194
+
195
+ var _ref2$field = _ref2.field,
196
+ _onChange2 = _ref2$field.onChange,
197
+ name = _ref2$field.name,
198
+ ref = _ref2$field.ref;
199
+ return React__default.createElement(TextFieldComponent, {
200
+ label: props.valuesText.text2,
201
+ placeholder: props.valuesText.placeholder2,
202
+ type: showPassword ? 'text' : 'password',
203
+ error: !!errors.password,
204
+ helperText: (_errors$password = errors.password) == null ? void 0 : _errors$password.message,
205
+ name: name,
206
+ inputRef: ref,
207
+ onChange: function onChange(e) {
208
+ _onChange2(e);
209
+ },
210
+ endIcon: React__default.createElement(material.IconButton, {
211
+ "aria-label": "toggle password visibility",
212
+ onClick: handleClickShowPassword,
213
+ size: "small"
214
+ }, showPassword ? React__default.createElement(iconsMaterial.Visibility, null) : React__default.createElement(iconsMaterial.VisibilityOff, null))
215
+ });
216
+ }
217
+ })))), React__default.createElement(material.Box, {
218
+ mb: 5
219
+ }, React__default.createElement(ButtonComponent, {
220
+ label: props.valuesText.buttonText,
221
+ loading: props.loading,
222
+ className: "btn-login",
223
+ onClick: handleSubmit(props.onClick)
224
+ })), props.bottomComponent && React__default.createElement(material.Box, {
225
+ m: 2
226
+ }, props.bottomComponent));
227
+ };
228
+
229
+ var ChangePasswordForm = function ChangePasswordForm(props) {
230
+ var validationSchema = yup.object().shape({
231
+ password: yup.string().required(props.requiredText.requiredTextPassword),
232
+ passwordConfirmation: yup.string().when('password', function (password, schema) {
233
+ if (password) return schema.required(props.requiredText.requiredTextPassword);
234
+ }).oneOf([yup.ref('password'), null], props.requiredText.requiredTextSamePassword)
235
+ });
236
+
237
+ var _useForm = reactHookForm.useForm({
238
+ resolver: yup$1.yupResolver(validationSchema)
239
+ }),
240
+ handleSubmit = _useForm.handleSubmit,
241
+ control = _useForm.control,
242
+ errors = _useForm.formState.errors;
243
+
244
+ var _useState = React.useState(false),
245
+ showPassword = _useState[0],
246
+ setShownPassword = _useState[1];
247
+
248
+ var handleClickShowPassword = function handleClickShowPassword() {
249
+ setShownPassword(!showPassword);
250
+ };
251
+
252
+ var handleMouseDownPassword = function handleMouseDownPassword(event) {
253
+ event.preventDefault();
254
+ };
255
+
256
+ return React__default.createElement(_.Box, null, props.topComponent && React__default.createElement(_.Box, {
257
+ m: 2
258
+ }, props.topComponent), React__default.createElement(_.Box, {
259
+ m: 2
260
+ }, React__default.createElement(_.Grid, {
261
+ container: true,
262
+ direction: "column",
263
+ spacing: 1
264
+ }, React__default.createElement(_.Grid, {
265
+ item: true
266
+ }, React__default.createElement(reactHookForm.Controller, {
267
+ control: control,
268
+ name: 'password',
269
+ render: function render(_ref) {
270
+ var _errors$password;
271
+
272
+ var _ref$field = _ref.field,
273
+ _onChange = _ref$field.onChange,
274
+ name = _ref$field.name,
275
+ ref = _ref$field.ref;
276
+ return React__default.createElement(TextFieldComponent, {
277
+ label: props.valuesText.text1,
278
+ type: showPassword ? 'text' : 'password',
279
+ error: !!errors.password,
280
+ placeholder: props.valuesText.placeholder1,
281
+ helperText: (_errors$password = errors.password) == null ? void 0 : _errors$password.message,
282
+ name: name,
283
+ inputRef: ref,
284
+ onChange: function onChange(e) {
285
+ _onChange(e);
286
+ },
287
+ endIcon: React__default.createElement(_.IconButton, {
288
+ "aria-label": "toggle password visibility",
289
+ onClick: handleClickShowPassword,
290
+ onMouseDown: handleMouseDownPassword,
291
+ size: "small"
292
+ }, showPassword ? React__default.createElement(iconsMaterial.Visibility, null) : React__default.createElement(iconsMaterial.VisibilityOff, null))
293
+ });
294
+ }
295
+ })), React__default.createElement(_.Grid, {
296
+ item: true
297
+ }, React__default.createElement(reactHookForm.Controller, {
298
+ control: control,
299
+ name: 'passwordConfirmation',
300
+ render: function render(_ref2) {
301
+ var _errors$passwordConfi;
302
+
303
+ var _ref2$field = _ref2.field,
304
+ _onChange2 = _ref2$field.onChange,
305
+ name = _ref2$field.name,
306
+ ref = _ref2$field.ref;
307
+ return React__default.createElement(TextFieldComponent, {
308
+ label: props.valuesText.text2,
309
+ placeholder: props.valuesText.placeholder2,
310
+ type: showPassword ? 'text' : 'password',
311
+ error: !!errors.passwordConfirmation,
312
+ helperText: (_errors$passwordConfi = errors.passwordConfirmation) == null ? void 0 : _errors$passwordConfi.message,
313
+ name: name,
314
+ inputRef: ref,
315
+ onChange: function onChange(e) {
316
+ _onChange2(e);
317
+ },
318
+ endIcon: React__default.createElement(_.IconButton, {
319
+ "aria-label": "toggle password visibility",
320
+ onClick: handleClickShowPassword,
321
+ onMouseDown: handleMouseDownPassword,
322
+ size: "small"
323
+ }, showPassword ? React__default.createElement(iconsMaterial.Visibility, null) : React__default.createElement(iconsMaterial.VisibilityOff, null))
324
+ });
325
+ }
326
+ })))), React__default.createElement(_.Box, {
327
+ m: 2
328
+ }, React__default.createElement(ButtonComponent, {
329
+ label: props.valuesText.buttonText,
330
+ className: "btn-login",
331
+ onClick: handleSubmit(props.onClick),
332
+ loading: props.loading
333
+ })), props.bottomComponent && React__default.createElement(_.Box, {
334
+ m: 2
335
+ }, props.bottomComponent));
336
+ };
337
+
338
+ var ResetPasswordForm = function ResetPasswordForm(props) {
339
+ var ResetSchema = yup.object().shape({
340
+ email: yup.string().required(props.requiredText.requiredTextMail)
341
+ });
342
+
343
+ var _useForm = reactHookForm.useForm({
344
+ resolver: yup$1.yupResolver(ResetSchema)
345
+ }),
346
+ control = _useForm.control,
347
+ handleSubmit = _useForm.handleSubmit,
348
+ errors = _useForm.formState.errors;
349
+
350
+ return React__default.createElement(material.Box, {
351
+ m: 2
352
+ }, props.topComponent && React__default.createElement(material.Box, {
353
+ m: 2
354
+ }, props.topComponent), React__default.createElement(material.Box, {
355
+ mx: 2,
356
+ my: 2
357
+ }, React__default.createElement(reactHookForm.Controller, {
358
+ control: control,
359
+ name: 'email',
360
+ render: function render(_ref) {
361
+ var _errors$email;
362
+
363
+ var _ref$field = _ref.field,
364
+ _onChange = _ref$field.onChange,
365
+ name = _ref$field.name,
366
+ ref = _ref$field.ref;
367
+ return React__default.createElement(TextFieldComponent, {
368
+ label: props.valuesText.text,
369
+ placeholder: props.valuesText.placeholder,
370
+ autoComplete: "email",
371
+ error: !!errors.email,
372
+ helperText: (_errors$email = errors.email) == null ? void 0 : _errors$email.message,
373
+ name: name,
374
+ inputRef: ref,
375
+ onChange: function onChange(e) {
376
+ _onChange(e);
377
+ }
378
+ });
379
+ }
380
+ })), React__default.createElement(material.Box, {
381
+ mx: 2,
382
+ mb: 5
383
+ }, React__default.createElement(ButtonComponent, {
384
+ label: props.valuesText.buttonText,
385
+ className: "btn-login",
386
+ onClick: handleSubmit(props.onClick),
387
+ loading: props.loading
388
+ })), props.bottomComponent && React__default.createElement(material.Box, {
389
+ m: 2
390
+ }, props.bottomComponent));
391
+ };
392
+
393
+ exports.ButtonComponent = ButtonComponent;
394
+ exports.ChangePasswordForm = ChangePasswordForm;
395
+ exports.LoginForm = LoginForm;
396
+ exports.PublicFormWrapper = PublicFormWrapper;
397
+ exports.ResetPasswordForm = ResetPasswordForm;
398
+ exports.TextFieldComponent = TextFieldComponent;
59
399
  //# sourceMappingURL=techsbcn-storybook.cjs.development.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"techsbcn-storybook.cjs.development.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/stories/button/Button.tsx","../src/stories/thing/Thing.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React, { FC, HTMLAttributes } from 'react';\r\n\r\nimport './Button.scss'\r\n\r\nexport interface ButtonProps extends HTMLAttributes<HTMLDivElement> { \r\n label?: string;\r\n primary?: boolean;\r\n}\r\n\r\nexport const Button: FC<ButtonProps> = ({ label, primary }) => {\r\n return <button className={`btn ${primary ? 'primary' : 'secondary'}`}>{label}</button>\r\n};\r\n","import React, { FC, HTMLAttributes, ReactChild } from 'react';\r\n\r\nimport './Thing.scss'\r\n\r\nexport interface ThingProps extends HTMLAttributes<HTMLDivElement> {\r\n children?: ReactChild;\r\n}\r\n\r\nexport const Thing: FC<ThingProps> = ({ children }) => {\r\n return <div className=\"thing\">{children || `the snozzberries taste like snozzberries`}</div>;\r\n};\r\n"],"names":["Button","label","primary","React","className","Thing","children"],"mappings":";;;;;;;;AAAA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACjC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AAC1B;AACA,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,GAAG;AACH;;;;;IChBaA,MAAM,GAAoB,SAA1BA,MAA0B;MAAGC,aAAAA;MAAOC,eAAAA;AAC/C,SAAOC,mBAAA,SAAA;AAAQC,IAAAA,SAAS,YAASF,OAAO,GAAG,SAAH,GAAe,WAA/B;GAAjB,EAAgED,KAAhE,CAAP;AACD,CAFM;;;;;ICDMI,KAAK,GAAmB,SAAxBA,KAAwB;MAAGC,gBAAAA;AACtC,SAAOH,mBAAA,MAAA;AAAKC,IAAAA,SAAS,EAAC;GAAf,EAAwBE,QAAQ,8CAAhC,CAAP;AACD,CAFM;;;;;"}
1
+ {"version":3,"file":"techsbcn-storybook.cjs.development.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/components/wrappers/PublicFormWrapper/PublicFormWrapper.tsx","../src/components/fields/ButtonComponent/ButtonComponent.tsx","../src/components/fields/TextFieldComponent/TextFieldComponent.tsx","../src/components/forms/LoginForm.tsx","../src/components/forms/ChangePasswordForm.tsx","../src/components/forms/ResetPasswordForm.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React from 'react';\r\nimport { Box, Container } from '@mui/material';\r\nimport './PublicFormWrapper.scss';\r\n\r\ninterface PublicFormWrapperProps {\r\n className?: string;\r\n}\r\n\r\nexport const PublicFormWrapper: React.FC<PublicFormWrapperProps> = (props) => {\r\n return (\r\n <Box\r\n height=\"100%\"\r\n className={`public-form-wrapper ${props.className ? props.className : ''}`}\r\n display=\"flex\"\r\n justifyContent=\"center\"\r\n alignItems=\"center\"\r\n >\r\n <Container maxWidth=\"xs\">\r\n <Box className=\"wrapper-box\" p={1}>\r\n {props.children}\r\n </Box>\r\n </Container>\r\n </Box>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Button, CircularProgress } from '@mui/material/';\r\nimport './ButtonComponent.scss';\r\n\r\nexport interface ButtonComponentProps {\r\n className?: string;\r\n label?: string;\r\n startIcon?: React.ReactNode;\r\n endIcon?: React.ReactNode;\r\n onClick?: () => void;\r\n loading?: boolean;\r\n form?: string;\r\n type?: 'button' | 'submit' | 'reset';\r\n disabled?: boolean;\r\n}\r\n\r\nexport const ButtonComponent: React.FC<ButtonComponentProps> = (props) => {\r\n return (\r\n <Button\r\n type={props.type && props.type}\r\n variant=\"contained\"\r\n form={props.form && props.form}\r\n className={`main-background-color ${props.className ? props.className : ''}`}\r\n startIcon={!props.loading && props.startIcon}\r\n endIcon={!props.loading && props.endIcon}\r\n onClick={props.onClick}\r\n disabled={!props.loading && props.disabled}\r\n >\r\n {props.loading ? <CircularProgress size={25} /> : props.label}\r\n </Button>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { TextField, Box } from '@mui/material/';\r\nimport './TextFieldComponent.scss';\r\n\r\nexport type InputType =\r\n | 'text'\r\n | 'radio'\r\n | 'checkbox'\r\n | 'textarea'\r\n | 'submit'\r\n | 'date'\r\n | 'hidden'\r\n | 'number'\r\n | 'range'\r\n | 'password'\r\n | 'time'\r\n | 'file';\r\n\r\ninterface TextFieldComponentProps {\r\n id?: string;\r\n label?: string;\r\n name?: string;\r\n value?: string | number;\r\n className?: string;\r\n type?: InputType;\r\n placeholder?: string;\r\n required?: boolean;\r\n disabled?: boolean;\r\n minNumber?: number;\r\n maxNumber?: number;\r\n error?: boolean;\r\n startIcon?: React.ReactNode;\r\n endIcon?: React.ReactNode;\r\n fullWidth?: boolean;\r\n helperText?: string;\r\n textFieldRef?: any;\r\n inputRef?: React.Ref<any>;\r\n autoComplete?: string;\r\n multiline?: boolean;\r\n rows?: number;\r\n maxLength?: number;\r\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n step?: number | string;\r\n}\r\n\r\nexport const TextFieldComponent: React.FC<TextFieldComponentProps> = (props) => {\r\n return (\r\n <Box className=\"text-field-component\" width=\"100%\">\r\n <TextField\r\n error={props.error}\r\n id={props.id}\r\n label={props.label}\r\n defaultValue={props.value}\r\n className={props.className}\r\n required={props.required}\r\n disabled={props.disabled}\r\n type={props.type}\r\n placeholder={props.placeholder}\r\n autoComplete={props.autoComplete}\r\n variant=\"standard\"\r\n ref={props.inputRef}\r\n InputProps={{\r\n disableUnderline: true,\r\n startAdornment: props.startIcon,\r\n endAdornment: props.endIcon,\r\n inputProps: {\r\n max: props.maxNumber,\r\n min: props.minNumber,\r\n step: props.step,\r\n },\r\n }}\r\n InputLabelProps={{ shrink: true }}\r\n helperText={props.helperText}\r\n fullWidth={props.fullWidth}\r\n multiline={props.multiline}\r\n rows={props.rows}\r\n onChange={props.onChange}\r\n onKeyUp={props.onKeyUp}\r\n inputProps={{\r\n maxLength: props.maxLength,\r\n step: props.step,\r\n max: props.maxNumber,\r\n min: props.minNumber,\r\n }}\r\n />\r\n </Box>\r\n );\r\n};\r\n\r\nTextFieldComponent.defaultProps = {\r\n fullWidth: true,\r\n type: 'text',\r\n};\r\n","import React, { useState } from 'react';\r\nimport { Box, Grid, IconButton } from '@mui/material';\r\nimport * as yup from 'yup';\r\nimport { useForm, Controller } from 'react-hook-form';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { Visibility, VisibilityOff } from '@mui/icons-material';\r\nimport { TextFieldComponent } from '../fields/TextFieldComponent/TextFieldComponent';\r\nimport { ButtonComponent } from '../fields/ButtonComponent/ButtonComponent';\r\n\r\ninterface LoginFormProps {\r\n onClick: (data: any) => void;\r\n topComponent?: React.ReactNode;\r\n bottomComponent?: React.ReactNode;\r\n loading: boolean;\r\n requiredText: { requiredTextMail: string; requiredTextPassword: string };\r\n valuesText: { buttonText: string; text1: string; placeholder1?: string; text2: string; placeholder2?: string };\r\n}\r\n\r\nexport const LoginForm: React.FC<LoginFormProps> = (props) => {\r\n const LoginSchema = yup.object().shape({\r\n email: yup.string().required(props.requiredText.requiredTextMail),\r\n password: yup.string().required(props.requiredText.requiredTextPassword),\r\n });\r\n\r\n const [showPassword, setShownPassword] = useState(false);\r\n const handleClickShowPassword = () => {\r\n setShownPassword(!showPassword);\r\n };\r\n\r\n const {\r\n control,\r\n handleSubmit,\r\n formState: { errors },\r\n } = useForm({\r\n resolver: yupResolver(LoginSchema),\r\n });\r\n\r\n return (\r\n <Box m={2}>\r\n {props.topComponent && <Box m={2}>{props.topComponent}</Box>}\r\n <Box my={2}>\r\n <Grid container direction=\"column\" spacing={1}>\r\n <Grid item>\r\n <Controller\r\n control={control}\r\n name={'email'}\r\n render={({ field: { onChange, name, ref } }) => (\r\n <TextFieldComponent\r\n label={props.valuesText.text1}\r\n placeholder={props.valuesText.placeholder1}\r\n autoComplete=\"email\"\r\n error={!!errors.email}\r\n helperText={errors.email?.message}\r\n name={name}\r\n inputRef={ref}\r\n onChange={(e) => {\r\n onChange(e);\r\n }}\r\n />\r\n )}\r\n />\r\n </Grid>\r\n <Grid item>\r\n <Controller\r\n control={control}\r\n name={'password'}\r\n render={({ field: { onChange, name, ref } }) => (\r\n <TextFieldComponent\r\n label={props.valuesText.text2}\r\n placeholder={props.valuesText.placeholder2}\r\n type={showPassword ? 'text' : 'password'}\r\n error={!!errors.password}\r\n helperText={errors.password?.message}\r\n name={name}\r\n inputRef={ref}\r\n onChange={(e) => {\r\n onChange(e);\r\n }}\r\n endIcon={\r\n <IconButton aria-label=\"toggle password visibility\" onClick={handleClickShowPassword} size=\"small\">\r\n {showPassword ? <Visibility /> : <VisibilityOff />}\r\n </IconButton>\r\n }\r\n />\r\n )}\r\n />\r\n </Grid>\r\n </Grid>\r\n </Box>\r\n <Box mb={5}>\r\n <ButtonComponent\r\n label={props.valuesText.buttonText}\r\n loading={props.loading}\r\n className=\"btn-login\"\r\n onClick={handleSubmit(props.onClick)}\r\n />\r\n </Box>\r\n {props.bottomComponent && <Box m={2}>{props.bottomComponent}</Box>}\r\n </Box>\r\n );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { Box, Grid, IconButton } from '@mui/material/';\r\nimport { Visibility, VisibilityOff } from '@mui/icons-material';\r\nimport { useForm, Controller } from 'react-hook-form';\r\nimport * as yup from 'yup';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { TextFieldComponent } from '../fields/TextFieldComponent/TextFieldComponent';\r\nimport { ButtonComponent } from '../fields/ButtonComponent/ButtonComponent';\r\n\r\ninterface ChangePasswordFormProps {\r\n onClick: (data: any) => void;\r\n loading: boolean;\r\n topComponent?: React.ReactNode;\r\n bottomComponent?: React.ReactNode;\r\n requiredText: { requiredTextPassword: string; requiredTextSamePassword: string };\r\n valuesText: { buttonText: string; text1: string; placeholder1?: string; text2: string; placeholder2?: string };\r\n}\r\n\r\nexport const ChangePasswordForm: React.FC<ChangePasswordFormProps> = (props) => {\r\n const validationSchema = yup.object().shape({\r\n password: yup.string().required(props.requiredText.requiredTextPassword),\r\n passwordConfirmation: yup\r\n .string()\r\n .when('password', (password: any, schema: any) => {\r\n if (password) return schema.required(props.requiredText.requiredTextPassword);\r\n })\r\n .oneOf([yup.ref('password'), null], props.requiredText.requiredTextSamePassword),\r\n });\r\n\r\n const {\r\n handleSubmit,\r\n control,\r\n formState: { errors },\r\n } = useForm({\r\n resolver: yupResolver(validationSchema),\r\n });\r\n\r\n const [showPassword, setShownPassword] = useState(false);\r\n\r\n const handleClickShowPassword = () => {\r\n setShownPassword(!showPassword);\r\n };\r\n\r\n const handleMouseDownPassword = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n event.preventDefault();\r\n };\r\n\r\n return (\r\n <Box>\r\n {props.topComponent && <Box m={2}>{props.topComponent}</Box>}\r\n <Box m={2}>\r\n <Grid container direction=\"column\" spacing={1}>\r\n <Grid item>\r\n <Controller\r\n control={control}\r\n name={'password'}\r\n render={({ field: { onChange, name, ref } }) => (\r\n <TextFieldComponent\r\n label={props.valuesText.text1}\r\n type={showPassword ? 'text' : 'password'}\r\n error={!!errors.password}\r\n placeholder={props.valuesText.placeholder1}\r\n helperText={errors.password?.message}\r\n name={name}\r\n inputRef={ref}\r\n onChange={(e) => {\r\n onChange(e);\r\n }}\r\n endIcon={\r\n <IconButton\r\n aria-label=\"toggle password visibility\"\r\n onClick={handleClickShowPassword}\r\n onMouseDown={handleMouseDownPassword}\r\n size=\"small\"\r\n >\r\n {showPassword ? <Visibility /> : <VisibilityOff />}\r\n </IconButton>\r\n }\r\n />\r\n )}\r\n />\r\n </Grid>\r\n <Grid item>\r\n <Controller\r\n control={control}\r\n name={'passwordConfirmation'}\r\n render={({ field: { onChange, name, ref } }) => (\r\n <TextFieldComponent\r\n label={props.valuesText.text2}\r\n placeholder={props.valuesText.placeholder2}\r\n type={showPassword ? 'text' : 'password'}\r\n error={!!errors.passwordConfirmation}\r\n helperText={errors.passwordConfirmation?.message}\r\n name={name}\r\n inputRef={ref}\r\n onChange={(e) => {\r\n onChange(e);\r\n }}\r\n endIcon={\r\n <IconButton\r\n aria-label=\"toggle password visibility\"\r\n onClick={handleClickShowPassword}\r\n onMouseDown={handleMouseDownPassword}\r\n size=\"small\"\r\n >\r\n {showPassword ? <Visibility /> : <VisibilityOff />}\r\n </IconButton>\r\n }\r\n />\r\n )}\r\n />\r\n </Grid>\r\n </Grid>\r\n </Box>\r\n <Box m={2}>\r\n <ButtonComponent\r\n label={props.valuesText.buttonText}\r\n className=\"btn-login\"\r\n onClick={handleSubmit(props.onClick)}\r\n loading={props.loading}\r\n />\r\n </Box>\r\n {props.bottomComponent && <Box m={2}>{props.bottomComponent}</Box>}\r\n </Box>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Box } from '@mui/material';\r\nimport * as yup from 'yup';\r\nimport { useForm, Controller } from 'react-hook-form';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { TextFieldComponent } from '../fields/TextFieldComponent/TextFieldComponent';\r\nimport { ButtonComponent } from '../fields/ButtonComponent/ButtonComponent';\r\n\r\ninterface resetPasswordFormProps {\r\n onClick: (data: any) => void;\r\n loading: boolean;\r\n topComponent?: React.ReactNode;\r\n bottomComponent?: React.ReactNode;\r\n requiredText: { requiredTextMail: string };\r\n valuesText: { buttonText: string; text: string; placeholder?: string };\r\n}\r\n\r\nexport const ResetPasswordForm: React.FC<resetPasswordFormProps> = (props) => {\r\n const ResetSchema = yup.object().shape({\r\n email: yup.string().required(props.requiredText.requiredTextMail),\r\n });\r\n\r\n const {\r\n control,\r\n handleSubmit,\r\n formState: { errors },\r\n } = useForm({\r\n resolver: yupResolver(ResetSchema),\r\n });\r\n\r\n return (\r\n <Box m={2}>\r\n {props.topComponent && <Box m={2}>{props.topComponent}</Box>}\r\n <Box mx={2} my={2}>\r\n <Controller\r\n control={control}\r\n name={'email'}\r\n render={({ field: { onChange, name, ref } }) => (\r\n <TextFieldComponent\r\n label={props.valuesText.text}\r\n placeholder={props.valuesText.placeholder}\r\n autoComplete=\"email\"\r\n error={!!errors.email}\r\n helperText={errors.email?.message}\r\n name={name}\r\n inputRef={ref}\r\n onChange={(e) => {\r\n onChange(e);\r\n }}\r\n />\r\n )}\r\n />\r\n </Box>\r\n <Box mx={2} mb={5}>\r\n <ButtonComponent\r\n label={props.valuesText.buttonText}\r\n className=\"btn-login\"\r\n onClick={handleSubmit(props.onClick)}\r\n loading={props.loading}\r\n />\r\n </Box>\r\n {props.bottomComponent && <Box m={2}>{props.bottomComponent}</Box>}\r\n </Box>\r\n );\r\n};\r\n"],"names":["PublicFormWrapper","props","React","Box","height","className","display","justifyContent","alignItems","Container","maxWidth","p","children","ButtonComponent","Button","type","variant","form","startIcon","loading","endIcon","onClick","disabled","CircularProgress","size","label","TextFieldComponent","width","TextField","error","id","defaultValue","value","required","placeholder","autoComplete","ref","inputRef","InputProps","disableUnderline","startAdornment","endAdornment","inputProps","max","maxNumber","min","minNumber","step","InputLabelProps","shrink","helperText","fullWidth","multiline","rows","onChange","onKeyUp","maxLength","defaultProps","LoginForm","LoginSchema","yup","shape","email","requiredText","requiredTextMail","password","requiredTextPassword","useState","showPassword","setShownPassword","handleClickShowPassword","useForm","resolver","yupResolver","control","handleSubmit","errors","formState","m","topComponent","my","Grid","container","direction","spacing","item","Controller","name","render","field","valuesText","text1","placeholder1","message","e","text2","placeholder2","IconButton","Visibility","VisibilityOff","mb","buttonText","bottomComponent","ChangePasswordForm","validationSchema","passwordConfirmation","when","schema","oneOf","requiredTextSamePassword","handleMouseDownPassword","event","preventDefault","onMouseDown","ResetPasswordForm","ResetSchema","mx","text"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=(e=require("react"))&&"object"==typeof e&&"default"in e?e.default:e;function n(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}n(".btn.primary {\n background-color: blue;\n color: white;\n}\n.btn.secondary {\n background-color: red;\n color: black;\n}"),n(".thing {\n background-color: black;\n color: white;\n}"),exports.Button=function(e){return t.createElement("button",{className:"btn "+(e.primary?"primary":"secondary")},e.label)},exports.Thing=function(e){return t.createElement("div",{className:"thing"},e.children||"the snozzberries taste like snozzberries")};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,o=require("@mui/material"),r=require("@mui/material/"),a=require("yup"),l=require("react-hook-form"),i=require("@hookform/resolvers/yup"),m=require("@mui/icons-material");function s(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}s(".public-form-wrapper .wrapper-box {\n background: white;\n border-radius: 5px;\n box-shadow: rgba(0, 0, 0, 0.2) 0px 11px 15px -7px, rgba(0, 0, 0, 0.14) 0px 24px 38px 3px, rgba(0, 0, 0, 0.12) 0px 9px 46px 8px;\n}"),s(".MuiButton-root {\n width: auto;\n padding: 0.8rem 1rem !important;\n text-transform: inherit !important;\n line-height: inherit !important;\n font-size: calc(12pt + (14 - 12) * calc(100vw - 300px)/1300) !important;\n box-shadow: none !important;\n}\n.MuiButton-root.btn-login {\n width: 100%;\n}\n.MuiButton-root.btn-modal-cancel {\n background-color: #666666 !important;\n}\n.MuiButton-root:hover {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12) !important;\n}\n.MuiButton-root .MuiCircularProgress-root {\n color: white !important;\n}\n.MuiButton-root .MuiButton-label {\n font-size: calc(12pt + (14 - 12) * calc(100vw - 300px)/1300) !important;\n}\n.MuiButton-root .MuiButton-label .MuiCircularProgress-root {\n color: white !important;\n}");var p=function(e){return n.createElement(r.Button,{type:e.type&&e.type,variant:"contained",form:e.form&&e.form,className:"main-background-color "+(e.className?e.className:""),startIcon:!e.loading&&e.startIcon,endIcon:!e.loading&&e.endIcon,onClick:e.onClick,disabled:!e.loading&&e.disabled},e.loading?n.createElement(r.CircularProgress,{size:25}):e.label)};s(".text-field-component .MuiFormLabel-root + .MuiInputBase-formControl {\n margin-top: 22px !important;\n}\n.text-field-component .MuiInputBase-root {\n color: grey !important;\n border: 1px solid grey;\n padding: 0.43rem 0.87rem;\n background-color: white !important;\n border-radius: 3px !important;\n}\n.text-field-component .MuiInputBase-root.Mui-error {\n border: 1px solid #F24726 !important;\n}\n.text-field-component .MuiInputBase-root:not(.Mui-disabled):hover {\n border: 1px solid grey;\n}\n.text-field-component .MuiInputBase-root.Mui-focused {\n border: 1px solid grey;\n}\n.text-field-component .MuiInputBase-root .MuiInputBase-input {\n color: #666666 !important;\n background-color: white !important;\n}\n.text-field-component .MuiInputBase-root .MuiInputBase-input::placeholder {\n text-overflow: ellipsis !important;\n color: #666666 !important;\n opacity: 1;\n}\n.text-field-component .MuiInputBase-root .Mui-disabled {\n -webkit-text-fill-color: #666666 !important;\n}\n.text-field-component .MuiFormHelperText-root {\n padding: 0 !important;\n font-size: 0.85rem !important;\n}");var u=function(e){return n.createElement(r.Box,{className:"text-field-component",width:"100%"},n.createElement(r.TextField,{error:e.error,id:e.id,label:e.label,defaultValue:e.value,className:e.className,required:e.required,disabled:e.disabled,type:e.type,placeholder:e.placeholder,autoComplete:e.autoComplete,variant:"standard",ref:e.inputRef,InputProps:{disableUnderline:!0,startAdornment:e.startIcon,endAdornment:e.endIcon,inputProps:{max:e.maxNumber,min:e.minNumber,step:e.step}},InputLabelProps:{shrink:!0},helperText:e.helperText,fullWidth:e.fullWidth,multiline:e.multiline,rows:e.rows,onChange:e.onChange,onKeyUp:e.onKeyUp,inputProps:{maxLength:e.maxLength,step:e.step,max:e.maxNumber,min:e.minNumber}}))};u.defaultProps={fullWidth:!0,type:"text"},exports.ButtonComponent=p,exports.ChangePasswordForm=function(e){var o=a.object().shape({password:a.string().required(e.requiredText.requiredTextPassword),passwordConfirmation:a.string().when("password",(function(t,n){if(t)return n.required(e.requiredText.requiredTextPassword)})).oneOf([a.ref("password"),null],e.requiredText.requiredTextSamePassword)}),s=l.useForm({resolver:i.yupResolver(o)}),c=s.handleSubmit,d=s.control,x=s.formState.errors,f=t.useState(!1),b=f[0],h=f[1],g=function(){h(!b)},C=function(e){e.preventDefault()};return n.createElement(r.Box,null,e.topComponent&&n.createElement(r.Box,{m:2},e.topComponent),n.createElement(r.Box,{m:2},n.createElement(r.Grid,{container:!0,direction:"column",spacing:1},n.createElement(r.Grid,{item:!0},n.createElement(l.Controller,{control:d,name:"password",render:function(t){var o,a=t.field,l=a.onChange;return n.createElement(u,{label:e.valuesText.text1,type:b?"text":"password",error:!!x.password,placeholder:e.valuesText.placeholder1,helperText:null==(o=x.password)?void 0:o.message,name:a.name,inputRef:a.ref,onChange:function(e){l(e)},endIcon:n.createElement(r.IconButton,{"aria-label":"toggle password visibility",onClick:g,onMouseDown:C,size:"small"},n.createElement(b?m.Visibility:m.VisibilityOff,null))})}})),n.createElement(r.Grid,{item:!0},n.createElement(l.Controller,{control:d,name:"passwordConfirmation",render:function(t){var o,a=t.field,l=a.onChange;return n.createElement(u,{label:e.valuesText.text2,placeholder:e.valuesText.placeholder2,type:b?"text":"password",error:!!x.passwordConfirmation,helperText:null==(o=x.passwordConfirmation)?void 0:o.message,name:a.name,inputRef:a.ref,onChange:function(e){l(e)},endIcon:n.createElement(r.IconButton,{"aria-label":"toggle password visibility",onClick:g,onMouseDown:C,size:"small"},n.createElement(b?m.Visibility:m.VisibilityOff,null))})}})))),n.createElement(r.Box,{m:2},n.createElement(p,{label:e.valuesText.buttonText,className:"btn-login",onClick:c(e.onClick),loading:e.loading})),e.bottomComponent&&n.createElement(r.Box,{m:2},e.bottomComponent))},exports.LoginForm=function(e){var r=a.object().shape({email:a.string().required(e.requiredText.requiredTextMail),password:a.string().required(e.requiredText.requiredTextPassword)}),s=t.useState(!1),c=s[0],d=s[1],x=function(){d(!c)},f=l.useForm({resolver:i.yupResolver(r)}),b=f.control,h=f.handleSubmit,g=f.formState.errors;return n.createElement(o.Box,{m:2},e.topComponent&&n.createElement(o.Box,{m:2},e.topComponent),n.createElement(o.Box,{my:2},n.createElement(o.Grid,{container:!0,direction:"column",spacing:1},n.createElement(o.Grid,{item:!0},n.createElement(l.Controller,{control:b,name:"email",render:function(t){var o,r=t.field,a=r.onChange;return n.createElement(u,{label:e.valuesText.text1,placeholder:e.valuesText.placeholder1,autoComplete:"email",error:!!g.email,helperText:null==(o=g.email)?void 0:o.message,name:r.name,inputRef:r.ref,onChange:function(e){a(e)}})}})),n.createElement(o.Grid,{item:!0},n.createElement(l.Controller,{control:b,name:"password",render:function(t){var r,a=t.field,l=a.onChange;return n.createElement(u,{label:e.valuesText.text2,placeholder:e.valuesText.placeholder2,type:c?"text":"password",error:!!g.password,helperText:null==(r=g.password)?void 0:r.message,name:a.name,inputRef:a.ref,onChange:function(e){l(e)},endIcon:n.createElement(o.IconButton,{"aria-label":"toggle password visibility",onClick:x,size:"small"},n.createElement(c?m.Visibility:m.VisibilityOff,null))})}})))),n.createElement(o.Box,{mb:5},n.createElement(p,{label:e.valuesText.buttonText,loading:e.loading,className:"btn-login",onClick:h(e.onClick)})),e.bottomComponent&&n.createElement(o.Box,{m:2},e.bottomComponent))},exports.PublicFormWrapper=function(e){return n.createElement(o.Box,{height:"100%",className:"public-form-wrapper "+(e.className?e.className:""),display:"flex",justifyContent:"center",alignItems:"center"},n.createElement(o.Container,{maxWidth:"xs"},n.createElement(o.Box,{className:"wrapper-box",p:1},e.children)))},exports.ResetPasswordForm=function(e){var t=a.object().shape({email:a.string().required(e.requiredText.requiredTextMail)}),r=l.useForm({resolver:i.yupResolver(t)}),m=r.control,s=r.handleSubmit,c=r.formState.errors;return n.createElement(o.Box,{m:2},e.topComponent&&n.createElement(o.Box,{m:2},e.topComponent),n.createElement(o.Box,{mx:2,my:2},n.createElement(l.Controller,{control:m,name:"email",render:function(t){var o,r=t.field,a=r.onChange;return n.createElement(u,{label:e.valuesText.text,placeholder:e.valuesText.placeholder,autoComplete:"email",error:!!c.email,helperText:null==(o=c.email)?void 0:o.message,name:r.name,inputRef:r.ref,onChange:function(e){a(e)}})}})),n.createElement(o.Box,{mx:2,mb:5},n.createElement(p,{label:e.valuesText.buttonText,className:"btn-login",onClick:s(e.onClick),loading:e.loading})),e.bottomComponent&&n.createElement(o.Box,{m:2},e.bottomComponent))},exports.TextFieldComponent=u;
2
2
  //# sourceMappingURL=techsbcn-storybook.cjs.production.min.js.map