@paro.io/expert-shared-components 1.6.1 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/lib/components/ClientReferencesSection/DeleteButton.js +11 -11
  2. package/lib/components/ClientReferencesSection/ParoError.js +10 -10
  3. package/lib/components/ClientReferencesSection/TagsSection.js +2 -2
  4. package/lib/components/ClientReferencesSection/styles/BrandedTypography.js +2 -2
  5. package/lib/components/ClientReferencesSection/styles/Buttons.js +15 -15
  6. package/lib/components/ClientReferencesSection/styles/Name.js +5 -5
  7. package/lib/components/ClientReferencesSection/styles/NullContentConditionalColor.js +4 -4
  8. package/lib/components/ClientReferencesSection/styles/SectionBody.js +11 -11
  9. package/lib/components/ClientReferencesSection/styles/SectionTitle.js +6 -6
  10. package/lib/components/ClientReferencesSection/styles/Tags.js +2 -2
  11. package/lib/components/DocumentCenter/ClientDocumentsTable.d.ts +2 -1
  12. package/lib/components/DocumentCenter/ClientDocumentsTable.js +5 -5
  13. package/lib/components/DocumentCenter/DocumentCenter.d.ts +2 -1
  14. package/lib/components/DocumentCenter/DocumentCenter.js +3 -3
  15. package/lib/components/DocumentCenter/DocumentTable.d.ts +15 -15
  16. package/lib/components/DocumentCenter/DocumentTable.js +350 -350
  17. package/lib/components/DocumentCenter/DocumentUploadRow.d.ts +2 -1
  18. package/lib/components/DocumentCenter/DocumentUploadRow.js +27 -6
  19. package/lib/components/DocumentCenter/ParoDocumentsTable.js +2 -2
  20. package/lib/components/DocumentCenter/UploadFilesButton.d.ts +6 -6
  21. package/lib/components/DocumentCenter/UploadFilesButton.js +29 -29
  22. package/lib/components/ExpertProfileHeader/ActionButtonSection.js +6 -6
  23. package/lib/components/ExpertProfileHeader/ProfileSection.js +7 -7
  24. package/lib/components/OrganizationChart/OrganizationChart.js +7 -7
  25. package/lib/components/Reviews/Pagination.js +6 -6
  26. package/lib/components/ReviewsTab/RatingHeader.js +6 -6
  27. package/lib/components/ReviewsTab/expert-shared-components.code-workspace +20 -20
  28. package/lib/components/ReviewsTab/reviewRequestModal.js +5 -5
  29. package/lib/components/shared/Error.d.ts +6 -6
  30. package/lib/components/shared/Error.js +40 -40
  31. package/lib/components/shared/Image.js +13 -13
  32. package/lib/components/shared/ProfileTextField.d.ts +18 -18
  33. package/lib/components/shared/ProfileTextField.js +16 -16
  34. package/lib/components/shared/StyledActionButtons.d.ts +7 -7
  35. package/lib/components/shared/StyledActionButtons.js +15 -15
  36. package/lib/components/shared/ToastNotification.d.ts +10 -10
  37. package/lib/components/shared/ToastNotification.js +63 -63
  38. package/lib/components/shared/UploadClient.d.ts +14 -0
  39. package/lib/components/shared/UploadClient.js +115 -0
  40. package/lib/components/shared/utils.d.ts +1 -1
  41. package/lib/components/shared/utils.js +5 -2
  42. package/package.json +59 -59
@@ -1,10 +1,10 @@
1
- import React from 'react';
2
- interface ToastModalProps {
3
- color: 'success' | 'info' | 'warning' | 'danger';
4
- icon: string;
5
- message: string;
6
- duration?: number;
7
- position?: 'top-right' | 'bottom-right' | 'top-left' | 'bottom-left';
8
- }
9
- declare const ToastModal: React.FC<ToastModalProps>;
10
- export default ToastModal;
1
+ import React from 'react';
2
+ interface ToastModalProps {
3
+ color: 'success' | 'info' | 'warning' | 'danger';
4
+ icon: string;
5
+ message: string;
6
+ duration?: number;
7
+ position?: 'top-right' | 'bottom-right' | 'top-left' | 'bottom-left';
8
+ }
9
+ declare const ToastModal: React.FC<ToastModalProps>;
10
+ export default ToastModal;
@@ -1,63 +1,63 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const react_1 = __importStar(require("react"));
27
- const core_1 = require("@material-ui/core");
28
- const base_ui_1 = require("@paro.io/base-ui");
29
- const ToastModal = ({ color, icon, message, duration = 6000, // Default duration is 6 seconds
30
- position = 'bottom-right', }) => {
31
- const [open, setOpen] = (0, react_1.useState)(false);
32
- // Automatically open the modal on mount
33
- (0, react_1.useEffect)(() => {
34
- setOpen(true);
35
- // Automatically close the modal after the specified duration
36
- const timer = setTimeout(() => {
37
- setOpen(false);
38
- }, duration);
39
- // Cleanup the timeout if the component unmounts or if the duration changes
40
- return () => clearTimeout(timer);
41
- }, [duration]);
42
- console.log("triggered");
43
- return (react_1.default.createElement(core_1.Dialog, { open: open, onClose: () => setOpen(false), "aria-labelledby": "toast-modal-title", maxWidth: "xs", fullWidth: true, PaperProps: {
44
- style: {
45
- backgroundColor: '#323232', // Dark background to resemble toast style
46
- color: '#fff', // White text
47
- borderRadius: '8px',
48
- display: 'flex',
49
- justifyContent: 'center',
50
- alignItems: 'center',
51
- zIndex: 9999, // Ensure it’s on top of the MUI Dialog
52
- position: 'absolute', // Absolute positioning to control location
53
- top: position.includes('top') ? '10%' : 'auto',
54
- bottom: position.includes('bottom') ? '10%' : 'auto',
55
- right: position.includes('right') ? '10%' : 'auto',
56
- left: position.includes('left') ? '10%' : 'auto',
57
- },
58
- } },
59
- react_1.default.createElement(core_1.DialogContent, { style: { textAlign: 'center' } },
60
- react_1.default.createElement(base_ui_1.Alert, { color: color, icon: icon, label: message, className: color === 'warning' ? 'bg-warning' : 'bg-success' }),
61
- ",")));
62
- };
63
- exports.default = ToastModal;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const react_1 = __importStar(require("react"));
27
+ const core_1 = require("@material-ui/core");
28
+ const base_ui_1 = require("@paro.io/base-ui");
29
+ const ToastModal = ({ color, icon, message, duration = 6000, // Default duration is 6 seconds
30
+ position = 'bottom-right', }) => {
31
+ const [open, setOpen] = (0, react_1.useState)(false);
32
+ // Automatically open the modal on mount
33
+ (0, react_1.useEffect)(() => {
34
+ setOpen(true);
35
+ // Automatically close the modal after the specified duration
36
+ const timer = setTimeout(() => {
37
+ setOpen(false);
38
+ }, duration);
39
+ // Cleanup the timeout if the component unmounts or if the duration changes
40
+ return () => clearTimeout(timer);
41
+ }, [duration]);
42
+ console.log("triggered");
43
+ return (react_1.default.createElement(core_1.Dialog, { open: open, onClose: () => setOpen(false), "aria-labelledby": "toast-modal-title", maxWidth: "xs", fullWidth: true, PaperProps: {
44
+ style: {
45
+ backgroundColor: '#323232', // Dark background to resemble toast style
46
+ color: '#fff', // White text
47
+ borderRadius: '8px',
48
+ display: 'flex',
49
+ justifyContent: 'center',
50
+ alignItems: 'center',
51
+ zIndex: 9999, // Ensure it’s on top of the MUI Dialog
52
+ position: 'absolute', // Absolute positioning to control location
53
+ top: position.includes('top') ? '10%' : 'auto',
54
+ bottom: position.includes('bottom') ? '10%' : 'auto',
55
+ right: position.includes('right') ? '10%' : 'auto',
56
+ left: position.includes('left') ? '10%' : 'auto',
57
+ },
58
+ } },
59
+ react_1.default.createElement(core_1.DialogContent, { style: { textAlign: 'center' } },
60
+ react_1.default.createElement(base_ui_1.Alert, { color: color, icon: icon, label: message, className: color === 'warning' ? 'bg-warning' : 'bg-success' }),
61
+ ",")));
62
+ };
63
+ exports.default = ToastModal;
@@ -0,0 +1,14 @@
1
+ export default class UploadClient {
2
+ state: {
3
+ fileSelected: any;
4
+ uploadId: string;
5
+ fileName: string;
6
+ documentUploadUrl: string;
7
+ projectId: number;
8
+ };
9
+ constructor(props: any);
10
+ generateS3Key(projectId: number, fileName: string): string;
11
+ triggerMultipartUpload(): Promise<string | undefined>;
12
+ uploadMultiPartFile(): Promise<string | undefined>;
13
+ completeUpload(partsArray: any): Promise<string | undefined>;
14
+ }
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ class UploadClient {
13
+ constructor(props) {
14
+ this.state = {
15
+ fileSelected: props.fileSelected,
16
+ uploadId: '',
17
+ fileName: props.fileName,
18
+ documentUploadUrl: props.documentUploadUrl,
19
+ projectId: props.projectId,
20
+ };
21
+ }
22
+ generateS3Key(projectId, fileName) {
23
+ const sanitizedFileName = fileName.replace(/[^a-zA-Z0-9.-]/g, '_');
24
+ let uniqueKey = `project-${projectId}/${sanitizedFileName}`;
25
+ return uniqueKey;
26
+ }
27
+ ;
28
+ triggerMultipartUpload() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ try {
31
+ const fileName = this.generateS3Key(this.state.projectId, this.state.fileName);
32
+ console.log('File Name', fileName);
33
+ this.state = Object.assign(Object.assign({}, this.state), { fileName: fileName });
34
+ const params = {
35
+ fileName: this.state.fileName,
36
+ fileType: this.state.fileSelected.type,
37
+ method: 'start-upload',
38
+ };
39
+ const response = yield fetch(`${this.state.documentUploadUrl}`, {
40
+ method: 'POST',
41
+ headers: {
42
+ 'Content-Type': 'application/json',
43
+ },
44
+ body: JSON.stringify(params),
45
+ });
46
+ let { responseData } = yield response.json();
47
+ this.state = Object.assign(Object.assign({}, this.state), { uploadId: responseData === null || responseData === void 0 ? void 0 : responseData.UploadId });
48
+ return this.uploadMultiPartFile();
49
+ }
50
+ catch (error) {
51
+ console.log(`Error Starting Multipart Upload ${error}`);
52
+ }
53
+ });
54
+ }
55
+ uploadMultiPartFile() {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ try {
58
+ const CHUNK_SIZE = 5 * 1024 * 1024;
59
+ const fileSize = this.state.fileSelected.size;
60
+ const CHUNKS_COUNT = Math.floor(fileSize / CHUNK_SIZE) + 1;
61
+ let promisesArray = [];
62
+ let start, end, blob;
63
+ for (let index = 1; index < CHUNKS_COUNT + 1; index++) {
64
+ start = (index - 1) * CHUNK_SIZE;
65
+ end = (index) * CHUNK_SIZE;
66
+ blob = (index < CHUNKS_COUNT) ? this.state.fileSelected.slice(start, end) : this.state.fileSelected.slice(start);
67
+ // Get presigned URL for each part from backend lambda
68
+ let presignedUrlResponse = yield fetch(`${this.state.documentUploadUrl}`, {
69
+ method: 'POST',
70
+ body: JSON.stringify({ fileName: this.state.fileName, uploadId: this.state.uploadId, partNumber: index, method: 'get-presigned-url' }),
71
+ });
72
+ const { responseData } = yield presignedUrlResponse.json();
73
+ // Add each upload part to promise array using presigned URL
74
+ let uploadResponse = fetch(responseData, {
75
+ method: 'PUT',
76
+ body: blob,
77
+ });
78
+ promisesArray.push(uploadResponse);
79
+ }
80
+ let resolvedPromises = yield Promise.all(promisesArray);
81
+ let uploadPartsArray = [];
82
+ resolvedPromises.map((response, index) => {
83
+ uploadPartsArray.push({
84
+ ETag: response.headers.get('ETag'),
85
+ PartNumber: index + 1,
86
+ });
87
+ });
88
+ return yield this.completeUpload(uploadPartsArray);
89
+ }
90
+ catch (error) {
91
+ console.log(`Error Uploading Multipart File ${error}`);
92
+ }
93
+ });
94
+ }
95
+ completeUpload(partsArray) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ try {
98
+ let response = yield fetch(`${this.state.documentUploadUrl}`, {
99
+ method: 'POST',
100
+ headers: {
101
+ 'Content-Type': 'application/json',
102
+ },
103
+ body: JSON.stringify({ fileName: this.state.fileName, uploadId: this.state.uploadId, parts: partsArray, method: 'complete-upload' }),
104
+ });
105
+ const { responseData } = yield response.json();
106
+ console.log('Upload Complete', responseData);
107
+ return `Upload Complete ${JSON.stringify(responseData)}`;
108
+ }
109
+ catch (error) {
110
+ console.log(`Error Completing Multipart Upload ${error}`);
111
+ }
112
+ });
113
+ }
114
+ }
115
+ exports.default = UploadClient;
@@ -6,7 +6,7 @@ export declare const getPreviousMonthStartDate: (previous: boolean) => string;
6
6
  export declare const stateAbbreviationMap: {
7
7
  [key: string]: string;
8
8
  };
9
- export declare const getFileMimeType: (filename: string) => "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-powerpoint" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/octet-stream";
9
+ export declare const getFileMimeType: (filename: string) => "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-powerpoint" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "text/csv" | "application/octet-stream";
10
10
  export declare const handleDownloadPdf: ({ fileData, downloadFilename, }: {
11
11
  fileData: any;
12
12
  downloadFilename: string;
@@ -126,6 +126,8 @@ const getFileMimeType = (filename) => {
126
126
  return 'application/vnd.ms-excel';
127
127
  case 'xlsx':
128
128
  return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
129
+ case 'csv':
130
+ return 'text/csv';
129
131
  default:
130
132
  return 'application/octet-stream';
131
133
  }
@@ -231,7 +233,8 @@ exports.ACCEPTED_FILE_TYPES = [
231
233
  'application/vnd.ms-powerpoint',
232
234
  'application/vnd.openxmlformats-officedocument.presentationml.presentation',
233
235
  'application/vnd.ms-excel',
234
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
236
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
237
+ 'text/csv'
235
238
  ];
236
239
  exports.MAX_FILE_SIZE = 5242880; // 5MB
237
240
  const showToast = (type, message) => {
@@ -249,7 +252,7 @@ const validateFileUpload = (file, isClientTab) => {
249
252
  return false;
250
253
  }
251
254
  if (!exports.ACCEPTED_FILE_TYPES.includes(file.type)) {
252
- (0, exports.showToast)('warning', 'Invalid file type. Please upload a valid file (PDF, DOC, DOCX, PPT, XLS, XLSX).');
255
+ (0, exports.showToast)('warning', 'Invalid file type. Please upload a valid file (PDF, DOC, DOCX, PPT, XLS, XLSX, CSV).');
253
256
  return false;
254
257
  }
255
258
  if (file.size > exports.MAX_FILE_SIZE && !isClientTab) {
package/package.json CHANGED
@@ -1,59 +1,59 @@
1
- {
2
- "name": "@paro.io/expert-shared-components",
3
- "version": "1.6.1",
4
- "description": "",
5
- "main": "lib/index.js",
6
- "scripts": {
7
- "build": "tsc",
8
- "prepare": "yarn build",
9
- "test": "yarn test:build",
10
- "test:build": "yarn build",
11
- "clean": "yarn -rf lib",
12
- "predeploy": "tsc && cp package.json README.md ./lib",
13
- "link-local": "yarn link && cd node_modules/react && yarn link && cd ../react-dom && yarn link",
14
- "unlink-local": "yarn unlink && cd node_modules/react && yarn unlink && cd ../react-dom && yarn unlink"
15
- },
16
- "repository": "https://github.com/paroadmin/expert-shared-components.git",
17
- "keywords": ["react", "components", "shared"],
18
- "author": "apande@paro.io",
19
- "license": "MIT",
20
- "dependencies": {
21
- "@fortawesome/fontawesome-svg-core": "^6.6.0",
22
- "@fortawesome/free-solid-svg-icons": "^6.6.0",
23
- "@fortawesome/react-fontawesome": "^0.2.2",
24
- "@hookform/resolvers": "3.3.4",
25
- "@material-ui/core": "^4.11.0",
26
- "@material-ui/icons": "^4.11.3",
27
- "@material-ui/lab": "^4.0.0-alpha.61",
28
- "@paro.io/base-icons": "^1.0.4",
29
- "@paro.io/base-ui": "^1.8.3",
30
- "@types/react-input-mask": "^3.0.5",
31
- "dayjs": "^1.10.7",
32
- "lodash": "^4.17.21",
33
- "react": "^18.2.0",
34
- "react-copy-to-clipboard": "^5.0.4",
35
- "react-datepicker": "^4.6.0",
36
- "react-dom": "^17.0.2",
37
- "react-hook-form": "7.51.1",
38
- "react-hot-toast": "^2.4.1",
39
- "react-input-mask": "^3.0.0-alpha.2",
40
- "styled-components": "^5.3.3",
41
- "yup": "^0.32.11"
42
- },
43
- "devDependencies": {
44
- "@types/lodash": "^4.14.170",
45
- "@types/react": "^18.2.73",
46
- "@types/react-copy-to-clipboard": "^5.0.2",
47
- "@types/react-datepicker": "^4.19.6",
48
- "@types/react-dom": "^18.2.22",
49
- "@types/styled-components": "^5.1.22",
50
- "@types/yup": "^0.29.13",
51
- "typescript": "^5.3.3"
52
- },
53
- "files": [
54
- "lib/**/*"
55
- ],
56
- "directories": {
57
- "lib": "lib"
58
- }
59
- }
1
+ {
2
+ "name": "@paro.io/expert-shared-components",
3
+ "version": "1.6.3",
4
+ "description": "",
5
+ "main": "lib/index.js",
6
+ "scripts": {
7
+ "build": "tsc",
8
+ "prepare": "yarn build",
9
+ "test": "yarn test:build",
10
+ "test:build": "yarn build",
11
+ "clean": "yarn -rf lib",
12
+ "predeploy": "tsc && cp package.json README.md ./lib",
13
+ "link-local": "yarn link && cd node_modules/react && yarn link && cd ../react-dom && yarn link",
14
+ "unlink-local": "yarn unlink && cd node_modules/react && yarn unlink && cd ../react-dom && yarn unlink"
15
+ },
16
+ "repository": "https://github.com/paroadmin/expert-shared-components.git",
17
+ "keywords": ["react", "components", "shared"],
18
+ "author": "apande@paro.io",
19
+ "license": "MIT",
20
+ "dependencies": {
21
+ "@fortawesome/fontawesome-svg-core": "^6.6.0",
22
+ "@fortawesome/free-solid-svg-icons": "^6.6.0",
23
+ "@fortawesome/react-fontawesome": "^0.2.2",
24
+ "@hookform/resolvers": "3.3.4",
25
+ "@material-ui/core": "^4.11.0",
26
+ "@material-ui/icons": "^4.11.3",
27
+ "@material-ui/lab": "^4.0.0-alpha.61",
28
+ "@paro.io/base-icons": "^1.0.4",
29
+ "@paro.io/base-ui": "^1.8.3",
30
+ "@types/react-input-mask": "^3.0.5",
31
+ "dayjs": "^1.10.7",
32
+ "lodash": "^4.17.21",
33
+ "react": "^18.2.0",
34
+ "react-copy-to-clipboard": "^5.0.4",
35
+ "react-datepicker": "^4.6.0",
36
+ "react-dom": "^17.0.2",
37
+ "react-hook-form": "7.51.1",
38
+ "react-hot-toast": "^2.4.1",
39
+ "react-input-mask": "^3.0.0-alpha.2",
40
+ "styled-components": "^5.3.3",
41
+ "yup": "^0.32.11"
42
+ },
43
+ "devDependencies": {
44
+ "@types/lodash": "^4.14.170",
45
+ "@types/react": "^18.2.73",
46
+ "@types/react-copy-to-clipboard": "^5.0.2",
47
+ "@types/react-datepicker": "^4.19.6",
48
+ "@types/react-dom": "^18.2.22",
49
+ "@types/styled-components": "^5.1.22",
50
+ "@types/yup": "^0.29.13",
51
+ "typescript": "^5.3.3"
52
+ },
53
+ "files": [
54
+ "lib/**/*"
55
+ ],
56
+ "directories": {
57
+ "lib": "lib"
58
+ }
59
+ }