diff --git a/.gitignore b/.gitignore index 1e1394d6..2a8bed19 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,6 @@ yarn-error.log* yarn* yarn.* -*.log \ No newline at end of file +*.log +build +storybook-static \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 6acac044..09a459d5 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,9 @@ + + \ No newline at end of file diff --git a/functions.iml b/functions.iml new file mode 100644 index 00000000..82ba1762 --- /dev/null +++ b/functions.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/functions/package.json b/functions/package.json index ec65072f..9597579b 100644 --- a/functions/package.json +++ b/functions/package.json @@ -1,6 +1,6 @@ { "name": "functions", - "version": "0.6.0", + "version": "0.7.0", "scripts": { "lint": "eslint --ext .js,.ts .", "build": "tsc", @@ -8,10 +8,10 @@ "serve": "npm run build && firebase emulators:start --only functions", "shell": "npm run build && firebase functions:shell", "start": "npm run shell", - "deploy": "npm run build && firebase deploy", + "deploy": "npm run build && npm run html && firebase deploy", "logs": "firebase functions:log", "html": "cp ../build/index.html ./lib", - "fonts": "mv ../build/fonts ./lib/functions/src" + "cp-storybook": "cp -Rf ../storybook-static ../build/sb" }, "engines": { "node": "14" @@ -22,7 +22,6 @@ "@sanity/image-url": "^1.0.2", "@sanity/types": "^2.34.0", "@sendgrid/mail": "^7.7.0", - "@shopify/shopify-api": "^8.0.2", "axios": "^1.6.2", "dotenv": "^16.3.1", "es6-promise": "^4.2.8", diff --git a/functions/src/groqQueries.ts b/functions/src/groqQueries.ts index a6cbc002..00b71a6b 100644 --- a/functions/src/groqQueries.ts +++ b/functions/src/groqQueries.ts @@ -58,6 +58,7 @@ const SERVICE = const HOMEPAGE = `_type, + _id, title, isUnderConstruction, releaseDate, @@ -128,12 +129,10 @@ const HOMEPAGE = `_type, }, "serviceAmenities": serviceAmenities[]->, "prosList": prosList[]->, - "skillsets": skillsets[]{ + "skillsets": skillsets[]->{ ..., "skills": skills[]->{ - _id, - name, - title, + ... }, }, "experiences": experiences[]->{ diff --git a/package-lock.json b/package-lock.json index 590ab2fd..11706316 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,20 +1,22 @@ { "name": "the-handsomestnerd-internal", - "version": "0.4.0", + "version": "0.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "the-handsomestnerd-internal", - "version": "0.4.0", + "version": "0.7.0", "license": "GPL-3.0-or-later", "dependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@mui/icons-material": "^5.14.18", "@mui/material": "^5.14.18", "@mui/styles": "^5.14.18", "@react-google-maps/api": "^2.19.2", + "@react-pdf/renderer": "^3.1.14", "@storybook/addon-mdx-gfm": "^7.4.6", "@storybook/react-webpack5": "^7.4.6", "@tanstack/react-query": "^4.36.1", @@ -900,9 +902,16 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, "engines": { "node": ">=6.9.0" }, @@ -2159,6 +2168,17 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", @@ -6426,6 +6446,188 @@ "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.19.2.tgz", "integrity": "sha512-x9ibmsP0ZVqzyCo1Pitbw+4b6iEXRw/r1TCy3vOUR3eKrzWLnHYZMR325BkZW2r8fnuWE/V3Fp4QZOP9qYORCw==" }, + "node_modules/@react-pdf/fns": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@react-pdf/fns/-/fns-2.0.1.tgz", + "integrity": "sha512-/vgecczzFYBQFkgUupH+sxXhLWQtBwdwCgweyh25XOlR4NZuaMD/UVUDl4loFHhRQqDMQq37lkTcchh7zzW6ug==", + "dependencies": { + "@babel/runtime": "^7.20.13" + } + }, + "node_modules/@react-pdf/font": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@react-pdf/font/-/font-2.3.7.tgz", + "integrity": "sha512-NoCieWea6c1mCpDBoyjPbUEC1qXa+S/M7+8vYPZ71aTMgX7co3gQc2e6YKwrSQeQP+BsBq3LSVhjI2ETXfcytw==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@react-pdf/types": "^2.3.4", + "cross-fetch": "^3.1.5", + "fontkit": "^2.0.2", + "is-url": "^1.2.4" + } + }, + "node_modules/@react-pdf/image": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@react-pdf/image/-/image-2.2.2.tgz", + "integrity": "sha512-990JvRZuhsnHyAGd7gvmhfr+4/5PAHLH9IgDstaEDLEq2eFAIQFuNM7k3D6kjKgV1mM7Jqif3CWqrcHBF3jrJw==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@react-pdf/png-js": "^2.2.0", + "cross-fetch": "^3.1.5" + } + }, + "node_modules/@react-pdf/layout": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@react-pdf/layout/-/layout-3.6.3.tgz", + "integrity": "sha512-w6ACZ9o18Q5wbzsY9a4KW2Gqn6Drt3AN/kb/I6SBz/L7PAJ9rPQBIDq/s5qZJ+/WwWy33rcC8WC1givtDhjCHQ==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@react-pdf/fns": "2.0.1", + "@react-pdf/image": "^2.2.2", + "@react-pdf/pdfkit": "^3.0.2", + "@react-pdf/primitives": "^3.0.0", + "@react-pdf/stylesheet": "^4.1.8", + "@react-pdf/textkit": "^4.2.0", + "@react-pdf/types": "^2.3.4", + "@react-pdf/yoga": "^4.1.2", + "cross-fetch": "^3.1.5", + "emoji-regex": "^10.2.1", + "queue": "^6.0.1" + } + }, + "node_modules/@react-pdf/layout/node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==" + }, + "node_modules/@react-pdf/pdfkit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@react-pdf/pdfkit/-/pdfkit-3.0.2.tgz", + "integrity": "sha512-+m5rwNCwyEH6lmnZWpsQJvdqb6YaCCR0nMWrc/KKDwznuPMrGmGWyNxqCja+bQPORcHZyl6Cd/iFL0glyB3QGw==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@react-pdf/png-js": "^2.2.0", + "browserify-zlib": "^0.2.0", + "crypto-js": "^4.0.0", + "fontkit": "^2.0.2", + "vite-compatible-readable-stream": "^3.6.1" + } + }, + "node_modules/@react-pdf/pdfkit/node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/@react-pdf/png-js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@react-pdf/png-js/-/png-js-2.2.0.tgz", + "integrity": "sha512-csZU5lfNW73tq7s7zB/1rWXGro+Z9cQhxtsXwxS418TSszHUiM6PwddouiKJxdGhbVLjRIcuuFVa0aR5cDOC6w==", + "dependencies": { + "browserify-zlib": "^0.2.0" + } + }, + "node_modules/@react-pdf/png-js/node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/@react-pdf/primitives": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@react-pdf/primitives/-/primitives-3.0.1.tgz", + "integrity": "sha512-0HGcknrLNwyhxe+SZCBL29JY4M85mXKdvTZE9uhjNbADGgTc8wVnkc5+e4S/lDvugbVISXyuIhZnYwtK9eDnyQ==" + }, + "node_modules/@react-pdf/render": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@react-pdf/render/-/render-3.2.7.tgz", + "integrity": "sha512-fAgbbAAkVL0hpcf1vUJLHxuPjPBqZuq8nors7fCwvoatBBwOWP9fza7IDPeFKN7+ZOnfmIZzes8Kc/DNHzJohw==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@react-pdf/fns": "2.0.1", + "@react-pdf/primitives": "^3.0.0", + "@react-pdf/textkit": "^4.2.0", + "@react-pdf/types": "^2.3.4", + "abs-svg-path": "^0.1.1", + "color-string": "^1.5.3", + "normalize-svg-path": "^1.1.0", + "parse-svg-path": "^0.1.2", + "svg-arc-to-cubic-bezier": "^3.2.0" + } + }, + "node_modules/@react-pdf/renderer": { + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/@react-pdf/renderer/-/renderer-3.1.14.tgz", + "integrity": "sha512-Qk29uTamH6q+drK/YmiFbuQQ+yutesfIe+wyrsXFoUJUutIiDIaibO6zByMkhWb3M6CMt6NvG3NLHio1OF8U6Q==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@react-pdf/font": "^2.3.7", + "@react-pdf/layout": "^3.6.3", + "@react-pdf/pdfkit": "^3.0.2", + "@react-pdf/primitives": "^3.0.0", + "@react-pdf/render": "^3.2.7", + "@react-pdf/types": "^2.3.4", + "events": "^3.3.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "queue": "^6.0.1", + "scheduler": "^0.17.0" + }, + "peerDependencies": { + "react": "^16.8.6 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-pdf/renderer/node_modules/scheduler": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.17.0.tgz", + "integrity": "sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/@react-pdf/stylesheet": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@react-pdf/stylesheet/-/stylesheet-4.1.8.tgz", + "integrity": "sha512-/EuB9RBsH3YYRj8mwzImaul619MvX3rsHNF4h8LnlwDOuBehPA3L/fHrikfPqtJvHqK2ty3GXnkw0HG5SQpMzw==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@react-pdf/fns": "2.0.1", + "@react-pdf/types": "^2.3.4", + "color-string": "^1.5.3", + "hsl-to-hex": "^1.0.0", + "media-engine": "^1.0.3", + "postcss-value-parser": "^4.1.0" + } + }, + "node_modules/@react-pdf/textkit": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@react-pdf/textkit/-/textkit-4.2.0.tgz", + "integrity": "sha512-R90pEOW6NdhUx4p99iROvKmwB06IRYdXMhh0QcmUeoPOLe64ZdMfs3LZliNUWgI5fCmq71J+nv868i/EakFPDg==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@react-pdf/fns": "2.0.1", + "hyphen": "^1.6.4", + "unicode-properties": "^1.4.1" + } + }, + "node_modules/@react-pdf/types": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@react-pdf/types/-/types-2.3.4.tgz", + "integrity": "sha512-vGGz21BTE05EktBbotbd7fjC0Yi8A/lOSIpzd7L7aF1XY+vyIHlQVb35DWCipM1p/6XN4cr9etGAmm1e4Mtmjw==" + }, + "node_modules/@react-pdf/yoga": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@react-pdf/yoga/-/yoga-4.1.2.tgz", + "integrity": "sha512-OlMZkFrJDj4GyKZ70thiObwwPVZ52B7mlPyfzwa+sgwsioqHXg9nMWOO+7SQFNUbbOGagMUu0bCuTv+iXYZuaQ==", + "dependencies": { + "@babel/runtime": "^7.20.13" + } + }, "node_modules/@remix-run/router": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.2.tgz", @@ -12068,6 +12270,15 @@ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==" }, + "node_modules/@swc/helpers": { + "version": "0.4.36", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.36.tgz", + "integrity": "sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==", + "dependencies": { + "legacy-swc-helpers": "npm:@swc/helpers@=0.4.14", + "tslib": "^2.4.0" + } + }, "node_modules/@swc/types": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", @@ -13732,6 +13943,11 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, + "node_modules/abs-svg-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", + "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==" + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -14825,6 +15041,14 @@ "node": ">=8" } }, + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "dependencies": { + "base64-js": "^1.1.2" + } + }, "node_modules/browser-assert": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", @@ -15478,6 +15702,15 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", @@ -15738,6 +15971,52 @@ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/cross-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/cross-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/cross-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -15751,6 +16030,11 @@ "node": ">= 8" } }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -16549,6 +16833,11 @@ "node": ">=0.8.0" } }, + "node_modules/dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -18619,6 +18908,30 @@ } } }, + "node_modules/fontkit": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.2.tgz", + "integrity": "sha512-jc4k5Yr8iov8QfS6u8w2CnHWVmbOGtdBtOXMze5Y+QD966Rx6PEVWXSEGwXlsDlKtu1G12cJjcsybnqhSk/+LA==", + "dependencies": { + "@swc/helpers": "^0.4.2", + "brotli": "^1.3.2", + "clone": "^2.1.2", + "dfa": "^1.2.0", + "fast-deep-equal": "^3.1.3", + "restructure": "^3.0.0", + "tiny-inflate": "^1.0.3", + "unicode-properties": "^1.4.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/fontkit/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -19405,6 +19718,19 @@ "wbuf": "^1.1.0" } }, + "node_modules/hsl-to-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-to-hex/-/hsl-to-hex-1.0.0.tgz", + "integrity": "sha512-K6GVpucS5wFf44X0h2bLVRDsycgJmf9FF2elg+CrqD8GcFU8c6vYhgXn8NjUkFCwj+xDFb70qgLbTUm6sxwPmA==", + "dependencies": { + "hsl-to-rgb-for-reals": "^1.1.0" + } + }, + "node_modules/hsl-to-rgb-for-reals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/hsl-to-rgb-for-reals/-/hsl-to-rgb-for-reals-1.1.1.tgz", + "integrity": "sha512-LgOWAkrN0rFaQpfdWBQlv/VhkOxb5AsBjk6NQVx4yEzWS923T07X0M1Y0VNko2H52HeSpZrZNNMJ0aFqsdVzQg==" + }, "node_modules/html-element": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/html-element/-/html-element-2.3.1.tgz", @@ -19674,6 +20000,11 @@ "html-element": "^2.0.0" } }, + "node_modules/hyphen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/hyphen/-/hyphen-1.9.1.tgz", + "integrity": "sha512-fIPVvM6BUW+878xne+wwIcBjMxeKpoADmxNTjKMocUQWiGOvwyEfZEG95IeL/t4Su6nbfbXeYDUnz62pxzLPmw==" + }, "node_modules/hyphenate-style-name": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", @@ -20449,6 +20780,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, "node_modules/is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -22513,6 +22849,15 @@ "node": ">=12" } }, + "node_modules/legacy-swc-helpers": { + "name": "@swc/helpers", + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", + "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/less-loader": { "version": "11.1.3", "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.3.tgz", @@ -23104,6 +23449,11 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" }, + "node_modules/media-engine": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/media-engine/-/media-engine-1.0.3.tgz", + "integrity": "sha512-aa5tG6sDoK+k70B9iEX1NeyfT8ObCKhNDs6lJVpwF6r8vhUfuKMslIcirq6HIUYuuUYLefcEQOn9bSBOvawtwg==" + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -24284,6 +24634,14 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-svg-path": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", + "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", + "dependencies": { + "svg-arc-to-cubic-bezier": "^3.0.0" + } + }, "node_modules/normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -24712,6 +25070,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-svg-path": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", + "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" + }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -26532,6 +26895,14 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dependencies": { + "inherits": "~2.0.3" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -27731,6 +28102,11 @@ "node": ">=8" } }, + "node_modules/restructure": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.0.tgz", + "integrity": "sha512-Xj8/MEIhhfj9X2rmD9iJ4Gga9EFqVlpMj3vfLnV2r/Mh5jRMryNV+6lWh9GdJtDBcBSPIqzRdfBQ3wDtNFv/uw==" + }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -28274,6 +28650,19 @@ } ] }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, "node_modules/simple-update-notifier": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", @@ -28926,6 +29315,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svg-arc-to-cubic-bezier": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", + "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" + }, "node_modules/svg-parser": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", @@ -29464,6 +29858,11 @@ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, "node_modules/tiny-invariant": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", @@ -29910,6 +30309,15 @@ "node": ">=4" } }, + "node_modules/unicode-properties": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", + "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, "node_modules/unicode-property-aliases-ecmascript": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", @@ -29918,6 +30326,20 @@ "node": ">=4" } }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" + }, "node_modules/unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", @@ -30421,6 +30843,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vite-compatible-readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/vite-compatible-readable-stream/-/vite-compatible-readable-stream-3.6.1.tgz", + "integrity": "sha512-t20zYkrSf868+j/p31cRIGN28Phrjm3nRSLR2fyc2tiWi4cZGVdv68yNlwnIINTkMTmPoMiSlc0OadaO7DXZaQ==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -32036,9 +32471,15 @@ } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==" + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -32844,6 +33285,11 @@ "resolve": "^1.14.2" } }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==" + }, "babel-plugin-polyfill-corejs2": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", @@ -35765,6 +36211,193 @@ "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.19.2.tgz", "integrity": "sha512-x9ibmsP0ZVqzyCo1Pitbw+4b6iEXRw/r1TCy3vOUR3eKrzWLnHYZMR325BkZW2r8fnuWE/V3Fp4QZOP9qYORCw==" }, + "@react-pdf/fns": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@react-pdf/fns/-/fns-2.0.1.tgz", + "integrity": "sha512-/vgecczzFYBQFkgUupH+sxXhLWQtBwdwCgweyh25XOlR4NZuaMD/UVUDl4loFHhRQqDMQq37lkTcchh7zzW6ug==", + "requires": { + "@babel/runtime": "^7.20.13" + } + }, + "@react-pdf/font": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@react-pdf/font/-/font-2.3.7.tgz", + "integrity": "sha512-NoCieWea6c1mCpDBoyjPbUEC1qXa+S/M7+8vYPZ71aTMgX7co3gQc2e6YKwrSQeQP+BsBq3LSVhjI2ETXfcytw==", + "requires": { + "@babel/runtime": "^7.20.13", + "@react-pdf/types": "^2.3.4", + "cross-fetch": "^3.1.5", + "fontkit": "^2.0.2", + "is-url": "^1.2.4" + } + }, + "@react-pdf/image": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@react-pdf/image/-/image-2.2.2.tgz", + "integrity": "sha512-990JvRZuhsnHyAGd7gvmhfr+4/5PAHLH9IgDstaEDLEq2eFAIQFuNM7k3D6kjKgV1mM7Jqif3CWqrcHBF3jrJw==", + "requires": { + "@babel/runtime": "^7.20.13", + "@react-pdf/png-js": "^2.2.0", + "cross-fetch": "^3.1.5" + } + }, + "@react-pdf/layout": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@react-pdf/layout/-/layout-3.6.3.tgz", + "integrity": "sha512-w6ACZ9o18Q5wbzsY9a4KW2Gqn6Drt3AN/kb/I6SBz/L7PAJ9rPQBIDq/s5qZJ+/WwWy33rcC8WC1givtDhjCHQ==", + "requires": { + "@babel/runtime": "^7.20.13", + "@react-pdf/fns": "2.0.1", + "@react-pdf/image": "^2.2.2", + "@react-pdf/pdfkit": "^3.0.2", + "@react-pdf/primitives": "^3.0.0", + "@react-pdf/stylesheet": "^4.1.8", + "@react-pdf/textkit": "^4.2.0", + "@react-pdf/types": "^2.3.4", + "@react-pdf/yoga": "^4.1.2", + "cross-fetch": "^3.1.5", + "emoji-regex": "^10.2.1", + "queue": "^6.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==" + } + } + }, + "@react-pdf/pdfkit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@react-pdf/pdfkit/-/pdfkit-3.0.2.tgz", + "integrity": "sha512-+m5rwNCwyEH6lmnZWpsQJvdqb6YaCCR0nMWrc/KKDwznuPMrGmGWyNxqCja+bQPORcHZyl6Cd/iFL0glyB3QGw==", + "requires": { + "@babel/runtime": "^7.20.13", + "@react-pdf/png-js": "^2.2.0", + "browserify-zlib": "^0.2.0", + "crypto-js": "^4.0.0", + "fontkit": "^2.0.2", + "vite-compatible-readable-stream": "^3.6.1" + }, + "dependencies": { + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + } + } + }, + "@react-pdf/png-js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@react-pdf/png-js/-/png-js-2.2.0.tgz", + "integrity": "sha512-csZU5lfNW73tq7s7zB/1rWXGro+Z9cQhxtsXwxS418TSszHUiM6PwddouiKJxdGhbVLjRIcuuFVa0aR5cDOC6w==", + "requires": { + "browserify-zlib": "^0.2.0" + }, + "dependencies": { + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + } + } + }, + "@react-pdf/primitives": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@react-pdf/primitives/-/primitives-3.0.1.tgz", + "integrity": "sha512-0HGcknrLNwyhxe+SZCBL29JY4M85mXKdvTZE9uhjNbADGgTc8wVnkc5+e4S/lDvugbVISXyuIhZnYwtK9eDnyQ==" + }, + "@react-pdf/render": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@react-pdf/render/-/render-3.2.7.tgz", + "integrity": "sha512-fAgbbAAkVL0hpcf1vUJLHxuPjPBqZuq8nors7fCwvoatBBwOWP9fza7IDPeFKN7+ZOnfmIZzes8Kc/DNHzJohw==", + "requires": { + "@babel/runtime": "^7.20.13", + "@react-pdf/fns": "2.0.1", + "@react-pdf/primitives": "^3.0.0", + "@react-pdf/textkit": "^4.2.0", + "@react-pdf/types": "^2.3.4", + "abs-svg-path": "^0.1.1", + "color-string": "^1.5.3", + "normalize-svg-path": "^1.1.0", + "parse-svg-path": "^0.1.2", + "svg-arc-to-cubic-bezier": "^3.2.0" + } + }, + "@react-pdf/renderer": { + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/@react-pdf/renderer/-/renderer-3.1.14.tgz", + "integrity": "sha512-Qk29uTamH6q+drK/YmiFbuQQ+yutesfIe+wyrsXFoUJUutIiDIaibO6zByMkhWb3M6CMt6NvG3NLHio1OF8U6Q==", + "requires": { + "@babel/runtime": "^7.20.13", + "@react-pdf/font": "^2.3.7", + "@react-pdf/layout": "^3.6.3", + "@react-pdf/pdfkit": "^3.0.2", + "@react-pdf/primitives": "^3.0.0", + "@react-pdf/render": "^3.2.7", + "@react-pdf/types": "^2.3.4", + "events": "^3.3.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "queue": "^6.0.1", + "scheduler": "^0.17.0" + }, + "dependencies": { + "scheduler": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.17.0.tgz", + "integrity": "sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + } + } + }, + "@react-pdf/stylesheet": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@react-pdf/stylesheet/-/stylesheet-4.1.8.tgz", + "integrity": "sha512-/EuB9RBsH3YYRj8mwzImaul619MvX3rsHNF4h8LnlwDOuBehPA3L/fHrikfPqtJvHqK2ty3GXnkw0HG5SQpMzw==", + "requires": { + "@babel/runtime": "^7.20.13", + "@react-pdf/fns": "2.0.1", + "@react-pdf/types": "^2.3.4", + "color-string": "^1.5.3", + "hsl-to-hex": "^1.0.0", + "media-engine": "^1.0.3", + "postcss-value-parser": "^4.1.0" + } + }, + "@react-pdf/textkit": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@react-pdf/textkit/-/textkit-4.2.0.tgz", + "integrity": "sha512-R90pEOW6NdhUx4p99iROvKmwB06IRYdXMhh0QcmUeoPOLe64ZdMfs3LZliNUWgI5fCmq71J+nv868i/EakFPDg==", + "requires": { + "@babel/runtime": "^7.20.13", + "@react-pdf/fns": "2.0.1", + "hyphen": "^1.6.4", + "unicode-properties": "^1.4.1" + } + }, + "@react-pdf/types": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@react-pdf/types/-/types-2.3.4.tgz", + "integrity": "sha512-vGGz21BTE05EktBbotbd7fjC0Yi8A/lOSIpzd7L7aF1XY+vyIHlQVb35DWCipM1p/6XN4cr9etGAmm1e4Mtmjw==" + }, + "@react-pdf/yoga": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@react-pdf/yoga/-/yoga-4.1.2.tgz", + "integrity": "sha512-OlMZkFrJDj4GyKZ70thiObwwPVZ52B7mlPyfzwa+sgwsioqHXg9nMWOO+7SQFNUbbOGagMUu0bCuTv+iXYZuaQ==", + "requires": { + "@babel/runtime": "^7.20.13" + } + }, "@remix-run/router": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.2.tgz", @@ -39648,6 +40281,15 @@ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==" }, + "@swc/helpers": { + "version": "0.4.36", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.36.tgz", + "integrity": "sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==", + "requires": { + "legacy-swc-helpers": "npm:@swc/helpers@=0.4.14", + "tslib": "^2.4.0" + } + }, "@swc/types": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", @@ -40955,6 +41597,11 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, + "abs-svg-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", + "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==" + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -41796,6 +42443,14 @@ "fill-range": "^7.0.1" } }, + "brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "requires": { + "base64-js": "^1.1.2" + } + }, "browser-assert": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", @@ -42247,6 +42902,15 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", @@ -42441,6 +43105,43 @@ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, + "cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "requires": { + "node-fetch": "^2.6.12" + }, + "dependencies": { + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -42451,6 +43152,11 @@ "which": "^2.0.1" } }, + "crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -43003,6 +43709,11 @@ "minimist": "^1.2.6" } }, + "dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" + }, "didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -44513,6 +45224,29 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" }, + "fontkit": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.2.tgz", + "integrity": "sha512-jc4k5Yr8iov8QfS6u8w2CnHWVmbOGtdBtOXMze5Y+QD966Rx6PEVWXSEGwXlsDlKtu1G12cJjcsybnqhSk/+LA==", + "requires": { + "@swc/helpers": "^0.4.2", + "brotli": "^1.3.2", + "clone": "^2.1.2", + "dfa": "^1.2.0", + "fast-deep-equal": "^3.1.3", + "restructure": "^3.0.0", + "tiny-inflate": "^1.0.3", + "unicode-properties": "^1.4.0", + "unicode-trie": "^2.0.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" + } + } + }, "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -45086,6 +45820,19 @@ "wbuf": "^1.1.0" } }, + "hsl-to-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-to-hex/-/hsl-to-hex-1.0.0.tgz", + "integrity": "sha512-K6GVpucS5wFf44X0h2bLVRDsycgJmf9FF2elg+CrqD8GcFU8c6vYhgXn8NjUkFCwj+xDFb70qgLbTUm6sxwPmA==", + "requires": { + "hsl-to-rgb-for-reals": "^1.1.0" + } + }, + "hsl-to-rgb-for-reals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/hsl-to-rgb-for-reals/-/hsl-to-rgb-for-reals-1.1.1.tgz", + "integrity": "sha512-LgOWAkrN0rFaQpfdWBQlv/VhkOxb5AsBjk6NQVx4yEzWS923T07X0M1Y0VNko2H52HeSpZrZNNMJ0aFqsdVzQg==" + }, "html-element": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/html-element/-/html-element-2.3.1.tgz", @@ -45271,6 +46018,11 @@ "html-element": "^2.0.0" } }, + "hyphen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/hyphen/-/hyphen-1.9.1.tgz", + "integrity": "sha512-fIPVvM6BUW+878xne+wwIcBjMxeKpoADmxNTjKMocUQWiGOvwyEfZEG95IeL/t4Su6nbfbXeYDUnz62pxzLPmw==" + }, "hyphenate-style-name": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", @@ -45786,6 +46538,11 @@ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, "is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -47432,6 +48189,14 @@ } } }, + "legacy-swc-helpers": { + "version": "npm:@swc/helpers@0.4.14", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", + "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "requires": { + "tslib": "^2.4.0" + } + }, "less-loader": { "version": "11.1.3", "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.3.tgz", @@ -47873,6 +48638,11 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" }, + "media-engine": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/media-engine/-/media-engine-1.0.3.tgz", + "integrity": "sha512-aa5tG6sDoK+k70B9iEX1NeyfT8ObCKhNDs6lJVpwF6r8vhUfuKMslIcirq6HIUYuuUYLefcEQOn9bSBOvawtwg==" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -48639,6 +49409,14 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" }, + "normalize-svg-path": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", + "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", + "requires": { + "svg-arc-to-cubic-bezier": "^3.0.0" + } + }, "normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -48940,6 +49718,11 @@ "lines-and-columns": "^1.1.6" } }, + "parse-svg-path": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", + "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" + }, "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -50081,6 +50864,14 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, + "queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "requires": { + "inherits": "~2.0.3" + } + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -50925,6 +51716,11 @@ "signal-exit": "^3.0.2" } }, + "restructure": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.0.tgz", + "integrity": "sha512-Xj8/MEIhhfj9X2rmD9iJ4Gga9EFqVlpMj3vfLnV2r/Mh5jRMryNV+6lWh9GdJtDBcBSPIqzRdfBQ3wDtNFv/uw==" + }, "retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -51309,6 +52105,21 @@ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "dev": true }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, "simple-update-notifier": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", @@ -51815,6 +52626,11 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, + "svg-arc-to-cubic-bezier": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", + "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" + }, "svg-parser": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", @@ -52231,6 +53047,11 @@ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, + "tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, "tiny-invariant": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", @@ -52530,11 +53351,36 @@ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==" }, + "unicode-properties": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", + "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", + "requires": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, "unicode-property-aliases-ecmascript": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==" }, + "unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + }, + "dependencies": { + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" + } + } + }, "unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", @@ -52881,6 +53727,16 @@ "unist-util-stringify-position": "^3.0.0" } }, + "vite-compatible-readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/vite-compatible-readable-stream/-/vite-compatible-readable-stream-3.6.1.tgz", + "integrity": "sha512-t20zYkrSf868+j/p31cRIGN28Phrjm3nRSLR2fyc2tiWi4cZGVdv68yNlwnIINTkMTmPoMiSlc0OadaO7DXZaQ==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", diff --git a/package.json b/package.json index d95ec8fa..53648b1b 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,17 @@ { "name": "chowworks-website", - "version": "0.6.0", + "version": "0.7.0", "license": "GPL-3.0-or-later", "private": true, "dependencies": { + "@babel/plugin-transform-private-property-in-object": "^7.23.4", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@mui/icons-material": "^5.14.18", "@mui/material": "^5.14.18", "@mui/styles": "^5.14.18", "@react-google-maps/api": "^2.19.2", + "@react-pdf/renderer": "^3.1.14", "@storybook/addon-mdx-gfm": "^7.4.6", "@storybook/react-webpack5": "^7.4.6", "@tanstack/react-query": "^4.36.1", @@ -58,8 +60,8 @@ "test": "react-scripts test", "eject": "react-scripts eject", "firebaseDeploy": "firebase deploy --only hosting", - "storybook": "storybook dev -p 6006 -s public", - "build-storybook": "storybook build -s public" + "storybook": "sb dev", + "build-storybook": "sb build" }, "eslintConfig": { "extends": [ diff --git a/sanityIo.iml b/sanityIo.iml index 5e952420..d545a644 100644 --- a/sanityIo.iml +++ b/sanityIo.iml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/sanityIo/package-lock.json b/sanityIo/package-lock.json index 7e10afd1..15e00ff1 100644 --- a/sanityIo/package-lock.json +++ b/sanityIo/package-lock.json @@ -1,12 +1,12 @@ { "name": "the-handsomest-nerd-sanity", - "version": "0.4.0", + "version": "0.6.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "the-handsomest-nerd-sanity", - "version": "0.4.0", + "version": "0.6.1", "license": "GPL-3.0-or-later", "dependencies": { "@sanity/block-content-to-react": "^3.0.0", diff --git a/sanityIo/package.json b/sanityIo/package.json index 34941a79..d8a529d5 100644 --- a/sanityIo/package.json +++ b/sanityIo/package.json @@ -1,7 +1,7 @@ { - "name": "chow-works-sanity", + "name": "the-handsomest-nerd-sanity", "private": true, - "version": "0.6.0", + "version": "0.7.0", "description": "Sanity CMS for React Website Builder", "main": "package.json", "author": "theHandsomestNerd ", diff --git a/sanityIo/sanity.config.js b/sanityIo/sanity.config.js index 2009464d..81ee2c2e 100644 --- a/sanityIo/sanity.config.js +++ b/sanityIo/sanity.config.js @@ -7,7 +7,7 @@ export default defineConfig({ title: "Chow Works Website", projectId: "rhjxlvuj", dataset: "development", - plugins: [deskTool(), visionTool()], + plugins: [deskTool({}), visionTool()], schema: { types: schemas, }, diff --git a/sanityIo/schemas/HeadlineCTASection.js b/sanityIo/schemas/HeadlineCTASection.js index a1d4b5fb..6ef12cd7 100644 --- a/sanityIo/schemas/HeadlineCTASection.js +++ b/sanityIo/schemas/HeadlineCTASection.js @@ -48,6 +48,11 @@ export default { name: 'insetRight', title: 'Right Inset', type: 'string' + }, + { + name: 'isHideBorder', + title: 'Hide Border for this Section ', + type: 'boolean' } ], preview: { diff --git a/sanityIo/schemas/contentContainer.js b/sanityIo/schemas/contentContainer.js index 082698fc..c03fc3c7 100644 --- a/sanityIo/schemas/contentContainer.js +++ b/sanityIo/schemas/contentContainer.js @@ -40,6 +40,7 @@ export default { {name: 'WebDevHeroContentSection', title: "Web Dev Hero Image + Content section",type: 'reference', to: [{type: 'WebDevHeroContentSection'}]}, {name: 'WebDevStatsCounterSection', title: "Web Dev Stats Counter section",type: 'reference', to: [{type: 'WebDevStatsCounterSection'}]}, {name: 'WebDevAboutUsSection', title: "Web Dev About Us section",type: 'reference', to: [{type: 'WebDevAboutUsSection'}]}, + {name: 'WebDevPricingSection', title: "Web Dev pricing section",type: 'reference', to: [{type: 'WebDevPricingSection'}]}, {name: 'ServicesSection', title: "Services section",type: 'reference', to: [{type: 'ServicesSection'}]}, {name: 'PortfolioSection', title: "Portfolio section",type: 'reference', to: [{type: 'PortfolioSection'}]}, {name: 'Testimonials Section', title: 'Testimonials Section', type: 'reference', to: [{type: 'TestimonialsSection'}]}, diff --git a/sanityIo/schemas/mui/MuiTheme.js b/sanityIo/schemas/mui/MuiTheme.js index 62a2e5e4..1219607d 100644 --- a/sanityIo/schemas/mui/MuiTheme.js +++ b/sanityIo/schemas/mui/MuiTheme.js @@ -22,6 +22,11 @@ export default { title: 'App Bar Height', type: 'number', }, + { + name: 'borderRadius', + title: 'Border Radius', + type: 'number', + }, { name: 'breakpoints', title: 'BreakPoints', diff --git a/sanityIo/schemas/resume/resume-bio/ResumeBioSection.js b/sanityIo/schemas/resume/resume-bio/ResumeBioSection.js deleted file mode 100644 index de029fea..00000000 --- a/sanityIo/schemas/resume/resume-bio/ResumeBioSection.js +++ /dev/null @@ -1,76 +0,0 @@ -export default { - name: 'ResumeBioSection', - title: 'Resume Bio Section', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'title', - title: 'Title of Section', - type: 'string', - }, - { - name: 'introduction', - title: 'Introduction', - type: 'text', - }, - { - name: 'careerTitle', - title: 'Career Title', - type: 'string', - }, - { - name: 'yearsOfExperience', - title: 'Years of Experience', - type: 'number', - }, - { - name: 'skillWordCloud', - title: 'Skill Word Cloud', - type: "array", - of: [ - {type: "reference", - to: - [{type: "ResumePortfolioItem"}], - } - ] - }, - { - name: 'contactMeButtonTitle', - title: 'Contact Me Button Text', - type: 'string', - }, - { - name: 'resumeFileDownloadText', - title: 'Resume File Download Text', - type: 'string', - }, - { - name: 'resumeFile', - title: 'Upload Resume', - type: 'ResumeFile', - }, - { - name: 'cvFileDownloadText', - title: 'CV File Download Text', - type: 'string', - }, - { - name: 'cvFile', - title: 'Upload CV', - type: 'ResumeFile', - }, - { - name: 'mainImage', - title: 'Main image', - type: 'image', - options: { - hotspot: true, - }, - }, - ] -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-bio/ResumeFile.js b/sanityIo/schemas/resume/resume-bio/ResumeFile.js deleted file mode 100644 index 63e95a3f..00000000 --- a/sanityIo/schemas/resume/resume-bio/ResumeFile.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - name: 'ResumeFile', - title: 'Resume File', - type: 'file', - fields: [ - ] -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-contact-us/ResumeContactUsSection.js b/sanityIo/schemas/resume/resume-contact-us/ResumeContactUsSection.js deleted file mode 100644 index e77297b6..00000000 --- a/sanityIo/schemas/resume/resume-contact-us/ResumeContactUsSection.js +++ /dev/null @@ -1,37 +0,0 @@ - -export default { - name: 'ResumeContactUsSection', - title: "Resume Contact Us Section", - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'title', - title: 'Title of Section', - type: 'string', - }, - { - name: 'introduction', - title: 'Introduction', - type: 'text', - }, - { - name: 'formSubmitButtonText', - title: 'Form Submit Button Text', - type: 'string' - }, - ], - preview: { - select: { - title: 'name', - media: 'bgImageSrc', - }, - }, -} - - - diff --git a/sanityIo/schemas/resume/resume-education/ResumeEducation.js b/sanityIo/schemas/resume/resume-education/ResumeEducation.js deleted file mode 100644 index 222c76b6..00000000 --- a/sanityIo/schemas/resume/resume-education/ResumeEducation.js +++ /dev/null @@ -1,52 +0,0 @@ -export default { - name: 'ResumeEducation', - title: 'Resume Education', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'institutionName', - title: 'Instition Name', - type: 'string', - }, - { - name: 'qualification', - title: 'Qualification', - type: 'string', - }, - { - name: 'dateStart', - title: 'Start Date', - type: 'date', - }, - { - name: 'dateEnd', - title: 'End Date', - type: 'date', - }, - { - name: 'locationCity', - title: 'Location City', - type: 'string', - }, - { - name: 'locationState', - title: 'Location State', - type: 'string', - }, - { - name: 'description', - title: 'Job Description or Requirements', - type: 'text', - }, - ], - preview: { - select: { - title: 'name', - }, - }, -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-education/ResumeEducationSection.js b/sanityIo/schemas/resume/resume-education/ResumeEducationSection.js deleted file mode 100644 index 0cee590a..00000000 --- a/sanityIo/schemas/resume/resume-education/ResumeEducationSection.js +++ /dev/null @@ -1,33 +0,0 @@ -export default { - name: 'ResumeEducationSection', - title: 'Resume Education Section', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'title', - title: 'Title of Section', - type: 'string', - }, - { - name: 'introduction', - title: 'Introduction', - type: 'text', - }, - { - name: 'educationExperiences', - title: 'Education Experiences', - type: "array", - of: [ - {type: "reference", - to: - [{type: "ResumeEducation"}], - } - ] - }, - ] -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-experience/ResumeExperience.js b/sanityIo/schemas/resume/resume-experience/ResumeExperience.js deleted file mode 100644 index d9e40470..00000000 --- a/sanityIo/schemas/resume/resume-experience/ResumeExperience.js +++ /dev/null @@ -1,66 +0,0 @@ -export default { - name: 'ResumeExperience', - title: 'Resume Experience', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'companyName', - title: 'Company Name', - type: 'string', - }, - { - name: 'title', - title: 'Job Title', - type: 'string', - }, - { - name: 'locationCity', - title: 'Location City', - type: 'string', - }, - { - name: 'locationState', - title: 'Location State', - type: 'string', - }, - { - name: 'companySubtitle', - title: 'Company Subtitle', - type: 'string', - }, - { - name: 'dateStart', - title: 'Start Date', - type: 'date', - }, - { - name: 'dateEnd', - title: 'End Date', - type: 'date', - }, - { - name: 'description', - title: 'Job Description or Requirements', - type: 'text', - }, - { - name: 'skillsUsed', - title: 'Skills Used in this position', - type: "array", - of: [{ - type: "reference", - to: [{type: "ResumeSkill"}] - }] - }, - ], - preview: { - select: { - title: 'name', - }, - }, -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-experience/ResumeExperienceSection.js b/sanityIo/schemas/resume/resume-experience/ResumeExperienceSection.js deleted file mode 100644 index ab13f0bb..00000000 --- a/sanityIo/schemas/resume/resume-experience/ResumeExperienceSection.js +++ /dev/null @@ -1,33 +0,0 @@ -export default { - name: 'ResumeExperienceSection', - title: 'Resume Experience Section', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'title', - title: 'Title of Section', - type: 'string', - }, - { - name: 'introduction', - title: 'Introduction', - type: 'text', - }, - { - name: 'experiences', - title: 'Experiences', - type: "array", - of: [ - {type: "reference", - to: - [{type: "ResumeExperience"}], - } - ] - }, - ] -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-feedback/ResumeFeedback.js b/sanityIo/schemas/resume/resume-feedback/ResumeFeedback.js deleted file mode 100644 index 5aebec2f..00000000 --- a/sanityIo/schemas/resume/resume-feedback/ResumeFeedback.js +++ /dev/null @@ -1,45 +0,0 @@ -export default { - name: 'ResumeFeedback', - title: 'Resume Feedback', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'customerName', - title: 'Customer Name', - type: 'string', - }, - { - name: 'customerTitle', - title: 'Customer Title', - type: 'string', - }, - { - name: 'companyName', - title: 'Company Name', - type: 'string', - }, - { - name: 'quote', - title: 'Customer Quote', - type: 'text', - }, - { - name: 'imageSrc', - title: 'Image', - type: 'image', - options: { - hotspot: true, - }, - }, - ], - preview: { - select: { - title: 'name', - }, - }, -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-feedback/ResumeFeedbackSection.js b/sanityIo/schemas/resume/resume-feedback/ResumeFeedbackSection.js deleted file mode 100644 index 67d131ce..00000000 --- a/sanityIo/schemas/resume/resume-feedback/ResumeFeedbackSection.js +++ /dev/null @@ -1,33 +0,0 @@ -export default { - name: 'ResumeFeedbackSection', - title: 'Resume Feedback Section', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'title', - title: 'Title of Section', - type: 'string', - }, - { - name: 'introduction', - title: 'Introduction', - type: 'text', - }, - { - name: 'feedbackEntries', - title: 'Feedback', - type: "array", - of: [ - {type: "reference", - to: - [{type: "ResumeFeedback"}], - } - ] - }, - ] -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-portfolio/ResumePortfolioItem.js b/sanityIo/schemas/resume/resume-portfolio/ResumePortfolioItem.js deleted file mode 100644 index c23d6b35..00000000 --- a/sanityIo/schemas/resume/resume-portfolio/ResumePortfolioItem.js +++ /dev/null @@ -1,73 +0,0 @@ - -export default { - name: 'ResumePortfolioItem', - title: 'Resume Portfolio Item', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'title', - title: 'Title', - type: 'string', - }, - { - name: 'coverImage', - title: 'Cover Image', - type: 'image', - options: { - hotspot: true, - }, - }, - { - name: 'inceptionDate', - title: 'Inception Date', - type: 'date', - }, - { - name: 'slug', - title: 'Slug', - type: 'slug', - options: { - source: 'title', - maxLength: 96, - }, - }, - { - name: 'skillsHighlighted', - title: 'Skill Used', - type: 'array', - of: [{type: 'reference', to: {type: 'ResumeSkill'}}], - options: { layout: 'tags' } - }, - { - name: 'detailTitle', - title: 'Detail Title', - type: 'string' - }, - { - name: 'detailDescription', - title: 'Detail Description', - type: 'text', - }, - { - name: 'linkToProd', - title: 'Prod link', - type: 'url', - }, - { - name: 'linkToDev', - title: 'Dev Link', - type: 'string', - }, - { - name: 'imageGallery', - title: 'Image Gallery', - type: 'array', - of:[{type: 'image'}] - }, - ] -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-portfolio/ResumePortfolioSection.js b/sanityIo/schemas/resume/resume-portfolio/ResumePortfolioSection.js deleted file mode 100644 index 746fcc3c..00000000 --- a/sanityIo/schemas/resume/resume-portfolio/ResumePortfolioSection.js +++ /dev/null @@ -1,33 +0,0 @@ -export default { - name: 'ResumePortfolioSection', - title: 'Resume Portfolio Section', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'title', - title: 'Title of Section', - type: 'string', - }, - { - name: 'introduction', - title: 'Introduction', - type: 'text', - }, - { - name: 'portfolioEntries', - title: 'Portfolio Entries', - type: "array", - of: [ - {type: "reference", - to: - [{type: "ResumePortfolioItem"}], - } - ] - }, - ] -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-skills/ResumeSkill.js b/sanityIo/schemas/resume/resume-skills/ResumeSkill.js deleted file mode 100644 index 8b76921c..00000000 --- a/sanityIo/schemas/resume/resume-skills/ResumeSkill.js +++ /dev/null @@ -1,17 +0,0 @@ -export default { - name: 'ResumeSkill', - title: 'Resume Skill', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'title', - title: 'Title of Skillset', - type: 'string', - } - ] -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-skills/ResumeSkillSet.js b/sanityIo/schemas/resume/resume-skills/ResumeSkillSet.js deleted file mode 100644 index a9795612..00000000 --- a/sanityIo/schemas/resume/resume-skills/ResumeSkillSet.js +++ /dev/null @@ -1,26 +0,0 @@ -export default { - name: 'ResumeSkillset', - title: 'Resume Skillset', - type: 'object', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'title', - title: 'Title of Skillset', - type: 'string', - }, - { - name: 'skills', - title: 'Skills', - type: "array", - of: [{ - type: "reference", - to: [{type: "ResumeSkill"}] - }] - }, - ] -} \ No newline at end of file diff --git a/sanityIo/schemas/resume/resume-skills/ResumeSkillsSection.js b/sanityIo/schemas/resume/resume-skills/ResumeSkillsSection.js deleted file mode 100644 index 75e08e38..00000000 --- a/sanityIo/schemas/resume/resume-skills/ResumeSkillsSection.js +++ /dev/null @@ -1,29 +0,0 @@ -export default { - name: 'ResumeSkillSection', - title: 'Resume Skills Section', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'title', - title: 'Title of Section', - type: 'string', - }, - { - name: 'introduction', - title: 'Introduction', - type: 'text', - }, - { - name: 'skillsets', - title: 'Skillsets', - type: "array", - of: [{type: "ResumeSkillset"}, - ] - }, - ] -} \ No newline at end of file diff --git a/sanityIo/schemas/schema.js b/sanityIo/schemas/schema.js index b546d04e..afebddc3 100644 --- a/sanityIo/schemas/schema.js +++ b/sanityIo/schemas/schema.js @@ -69,12 +69,9 @@ import MuiBreakpoints from "./mui/MuiBreakpoints"; import MuiTheme from "./mui/MuiTheme"; import MuiTypography from "./mui/MuiTypography"; import MuiColorPalatte from "./mui/MuiColorPalatte"; -import WebDevHowItWorksSection from "./web-dev/WebDevHowItWorksSection"; -import WebDevHowItWorksStep from "./web-dev/WebDevHowItWorksStep"; import TestimonialsSection from "./testimonials/TestimonialsSection"; import PortfolioSection from "./portfolio/PortfolioSection"; import Testimonials from "./testimonials/Testimonials"; -import portfolioItem from "./sections/portfolioItem"; import category from "./category"; import ServicesSection from "./services/ServicesSection"; import ServiceItem from "./services/ServiceItem"; @@ -93,6 +90,10 @@ import AnimatedPortfolioSection from "./sections/animated/AnimatedPortfolioSecti import HeadlineCTASection from "./HeadlineCTASection"; import MapSection from "./sections/MapSection"; import PortfolioItem from "./portfolio/PortfolioItem"; +import WebDevHowItWorksSection from "./sections/web-dev/WebDevHowItWorksSection"; +import WebDevHowItWorksStep from "./sections/web-dev/WebDevHowItWorksStep"; +import WebDevPricingSection from "./sections/web-dev/WebDevPricingSection"; +import WebDevPricingPlan from "./sections/web-dev/WebDevPricingPlan"; // Then we give our schema to the builder and provide the result to Sanity export default [ @@ -190,5 +191,7 @@ export default [ AnimatedPortfolioSection, HeroSlideContent, HeadlineCTASection, - MapSection + MapSection, + WebDevPricingSection, + WebDevPricingPlan ] diff --git a/sanityIo/schemas/ab/abEvergreenPage.js b/sanityIo/schemas/sections/ab/abEvergreenPage.js similarity index 100% rename from sanityIo/schemas/ab/abEvergreenPage.js rename to sanityIo/schemas/sections/ab/abEvergreenPage.js diff --git a/sanityIo/schemas/ab/abForm.js b/sanityIo/schemas/sections/ab/abForm.js similarity index 100% rename from sanityIo/schemas/ab/abForm.js rename to sanityIo/schemas/sections/ab/abForm.js diff --git a/sanityIo/schemas/ab/abHomePage.js b/sanityIo/schemas/sections/ab/abHomePage.js similarity index 100% rename from sanityIo/schemas/ab/abHomePage.js rename to sanityIo/schemas/sections/ab/abHomePage.js diff --git a/sanityIo/schemas/ab/abLeadType.js b/sanityIo/schemas/sections/ab/abLeadType.js similarity index 100% rename from sanityIo/schemas/ab/abLeadType.js rename to sanityIo/schemas/sections/ab/abLeadType.js diff --git a/sanityIo/schemas/ab/communityPage.js b/sanityIo/schemas/sections/ab/communityPage.js similarity index 100% rename from sanityIo/schemas/ab/communityPage.js rename to sanityIo/schemas/sections/ab/communityPage.js diff --git a/sanityIo/schemas/ab/gradient.js b/sanityIo/schemas/sections/ab/gradient.js similarity index 100% rename from sanityIo/schemas/ab/gradient.js rename to sanityIo/schemas/sections/ab/gradient.js diff --git a/sanityIo/schemas/ab/heroImageWithText.js b/sanityIo/schemas/sections/ab/heroImageWithText.js similarity index 100% rename from sanityIo/schemas/ab/heroImageWithText.js rename to sanityIo/schemas/sections/ab/heroImageWithText.js diff --git a/sanityIo/schemas/ab/landingPage.js b/sanityIo/schemas/sections/ab/landingPage.js similarity index 100% rename from sanityIo/schemas/ab/landingPage.js rename to sanityIo/schemas/sections/ab/landingPage.js diff --git a/sanityIo/schemas/ab/ourServicesSection.js b/sanityIo/schemas/sections/ab/ourServicesSection.js similarity index 100% rename from sanityIo/schemas/ab/ourServicesSection.js rename to sanityIo/schemas/sections/ab/ourServicesSection.js diff --git a/sanityIo/schemas/ab/ourStoryPage.js b/sanityIo/schemas/sections/ab/ourStoryPage.js similarity index 100% rename from sanityIo/schemas/ab/ourStoryPage.js rename to sanityIo/schemas/sections/ab/ourStoryPage.js diff --git a/sanityIo/schemas/ab/solutions.js b/sanityIo/schemas/sections/ab/solutions.js similarity index 100% rename from sanityIo/schemas/ab/solutions.js rename to sanityIo/schemas/sections/ab/solutions.js diff --git a/sanityIo/schemas/ab/weWorkWith.js b/sanityIo/schemas/sections/ab/weWorkWith.js similarity index 100% rename from sanityIo/schemas/ab/weWorkWith.js rename to sanityIo/schemas/sections/ab/weWorkWith.js diff --git a/sanityIo/schemas/derm-sections/modern-services/ModernService.js b/sanityIo/schemas/sections/derm-sections/modern-services/ModernService.js similarity index 100% rename from sanityIo/schemas/derm-sections/modern-services/ModernService.js rename to sanityIo/schemas/sections/derm-sections/modern-services/ModernService.js diff --git a/sanityIo/schemas/derm-sections/modern-services/ModernServicesSection.js b/sanityIo/schemas/sections/derm-sections/modern-services/ModernServicesSection.js similarity index 100% rename from sanityIo/schemas/derm-sections/modern-services/ModernServicesSection.js rename to sanityIo/schemas/sections/derm-sections/modern-services/ModernServicesSection.js diff --git a/sanityIo/schemas/derm-sections/poi/PointOfInterest.js b/sanityIo/schemas/sections/derm-sections/poi/PointOfInterest.js similarity index 100% rename from sanityIo/schemas/derm-sections/poi/PointOfInterest.js rename to sanityIo/schemas/sections/derm-sections/poi/PointOfInterest.js diff --git a/sanityIo/schemas/derm-sections/poi/PointOfInterestSection.js b/sanityIo/schemas/sections/derm-sections/poi/PointOfInterestSection.js similarity index 100% rename from sanityIo/schemas/derm-sections/poi/PointOfInterestSection.js rename to sanityIo/schemas/sections/derm-sections/poi/PointOfInterestSection.js diff --git a/sanityIo/schemas/sections/resume/resume-bio/ResumeBioSection.js b/sanityIo/schemas/sections/resume/resume-bio/ResumeBioSection.js index c553f7b4..1415da17 100644 --- a/sanityIo/schemas/sections/resume/resume-bio/ResumeBioSection.js +++ b/sanityIo/schemas/sections/resume/resume-bio/ResumeBioSection.js @@ -13,6 +13,12 @@ export default { title: 'Title of Section', type: 'string', }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, { name: 'introduction', title: 'Introduction', diff --git a/sanityIo/schemas/sections/resume/resume-contact-us/ResumeContactUsSection.js b/sanityIo/schemas/sections/resume/resume-contact-us/ResumeContactUsSection.js index b57ec248..e6fb2b82 100644 --- a/sanityIo/schemas/sections/resume/resume-contact-us/ResumeContactUsSection.js +++ b/sanityIo/schemas/sections/resume/resume-contact-us/ResumeContactUsSection.js @@ -30,6 +30,13 @@ export default { title: 'Form Submit Button Text', type: 'string' }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, + ], preview: { select: { diff --git a/sanityIo/schemas/sections/resume/resume-education/ResumeEducation.js b/sanityIo/schemas/sections/resume/resume-education/ResumeEducation.js index 222c76b6..6e3a81af 100644 --- a/sanityIo/schemas/sections/resume/resume-education/ResumeEducation.js +++ b/sanityIo/schemas/sections/resume/resume-education/ResumeEducation.js @@ -43,6 +43,13 @@ export default { title: 'Job Description or Requirements', type: 'text', }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, + ], preview: { select: { diff --git a/sanityIo/schemas/sections/resume/resume-education/ResumeEducationSection.js b/sanityIo/schemas/sections/resume/resume-education/ResumeEducationSection.js index 35029ce5..a9de6e38 100644 --- a/sanityIo/schemas/sections/resume/resume-education/ResumeEducationSection.js +++ b/sanityIo/schemas/sections/resume/resume-education/ResumeEducationSection.js @@ -35,5 +35,12 @@ export default { } ] }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, + ] } \ No newline at end of file diff --git a/sanityIo/schemas/sections/resume/resume-experience/ResumeExperience.js b/sanityIo/schemas/sections/resume/resume-experience/ResumeExperience.js index d9e40470..e8502752 100644 --- a/sanityIo/schemas/sections/resume/resume-experience/ResumeExperience.js +++ b/sanityIo/schemas/sections/resume/resume-experience/ResumeExperience.js @@ -57,6 +57,13 @@ export default { to: [{type: "ResumeSkill"}] }] }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, + ], preview: { select: { diff --git a/sanityIo/schemas/sections/resume/resume-experience/ResumeExperienceSection.js b/sanityIo/schemas/sections/resume/resume-experience/ResumeExperienceSection.js index 31584456..ff7cd340 100644 --- a/sanityIo/schemas/sections/resume/resume-experience/ResumeExperienceSection.js +++ b/sanityIo/schemas/sections/resume/resume-experience/ResumeExperienceSection.js @@ -35,5 +35,12 @@ export default { type: 'reference', to:[{type: 'MuiTheme'}] }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, + ] } \ No newline at end of file diff --git a/sanityIo/schemas/sections/resume/resume-feedback/ResumeFeedback.js b/sanityIo/schemas/sections/resume/resume-feedback/ResumeFeedback.js index 5aebec2f..ea6761ed 100644 --- a/sanityIo/schemas/sections/resume/resume-feedback/ResumeFeedback.js +++ b/sanityIo/schemas/sections/resume/resume-feedback/ResumeFeedback.js @@ -36,6 +36,13 @@ export default { hotspot: true, }, }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, + ], preview: { select: { diff --git a/sanityIo/schemas/sections/resume/resume-feedback/ResumeFeedbackSection.js b/sanityIo/schemas/sections/resume/resume-feedback/ResumeFeedbackSection.js index a5d9e2ab..4f66d184 100644 --- a/sanityIo/schemas/sections/resume/resume-feedback/ResumeFeedbackSection.js +++ b/sanityIo/schemas/sections/resume/resume-feedback/ResumeFeedbackSection.js @@ -35,5 +35,12 @@ export default { } ] }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, + ] } \ No newline at end of file diff --git a/sanityIo/schemas/sections/resume/resume-portfolio/ResumePortfolioItem.js b/sanityIo/schemas/sections/resume/resume-portfolio/ResumePortfolioItem.js index c23d6b35..cf8067ed 100644 --- a/sanityIo/schemas/sections/resume/resume-portfolio/ResumePortfolioItem.js +++ b/sanityIo/schemas/sections/resume/resume-portfolio/ResumePortfolioItem.js @@ -69,5 +69,12 @@ export default { type: 'array', of:[{type: 'image'}] }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, + ] } \ No newline at end of file diff --git a/sanityIo/schemas/sections/resume/resume-portfolio/ResumePortfolioSection.js b/sanityIo/schemas/sections/resume/resume-portfolio/ResumePortfolioSection.js index 767f1f72..22703336 100644 --- a/sanityIo/schemas/sections/resume/resume-portfolio/ResumePortfolioSection.js +++ b/sanityIo/schemas/sections/resume/resume-portfolio/ResumePortfolioSection.js @@ -35,5 +35,12 @@ export default { } ] }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, + ] } \ No newline at end of file diff --git a/sanityIo/schemas/sections/resume/resume-skills/ResumeSkill.js b/sanityIo/schemas/sections/resume/resume-skills/ResumeSkill.js index 8b76921c..dbe488f6 100644 --- a/sanityIo/schemas/sections/resume/resume-skills/ResumeSkill.js +++ b/sanityIo/schemas/sections/resume/resume-skills/ResumeSkill.js @@ -12,6 +12,13 @@ export default { name: 'title', title: 'Title of Skillset', type: 'string', - } + }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, + ] } \ No newline at end of file diff --git a/sanityIo/schemas/sections/resume/resume-skills/ResumeSkillSet.js b/sanityIo/schemas/sections/resume/resume-skills/ResumeSkillSet.js index a9795612..05cf0f90 100644 --- a/sanityIo/schemas/sections/resume/resume-skills/ResumeSkillSet.js +++ b/sanityIo/schemas/sections/resume/resume-skills/ResumeSkillSet.js @@ -1,7 +1,7 @@ export default { name: 'ResumeSkillset', title: 'Resume Skillset', - type: 'object', + type: 'document', fields: [ { name: 'name', @@ -22,5 +22,12 @@ export default { to: [{type: "ResumeSkill"}] }] }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, + ] } \ No newline at end of file diff --git a/sanityIo/schemas/sections/resume/resume-skills/ResumeSkillsSection.js b/sanityIo/schemas/sections/resume/resume-skills/ResumeSkillsSection.js index d48a370e..19402337 100644 --- a/sanityIo/schemas/sections/resume/resume-skills/ResumeSkillsSection.js +++ b/sanityIo/schemas/sections/resume/resume-skills/ResumeSkillsSection.js @@ -28,8 +28,14 @@ export default { name: 'skillsets', title: 'Skillsets', type: "array", - of: [{type: "ResumeSkillset"}, + of: [{type: "reference", to:{type:"ResumeSkillset"}}, ] }, + { + name: 'searchableOnPages', + title: 'Make Searchable on pages', + type: 'array', + of:[{type: "reference", to: {type:"homePage"}}] + }, ] } \ No newline at end of file diff --git a/sanityIo/schemas/sections/web-dev/WebDevHowItWorksSection.js b/sanityIo/schemas/sections/web-dev/WebDevHowItWorksSection.js index 1e3725ce..ba1b8b75 100644 --- a/sanityIo/schemas/sections/web-dev/WebDevHowItWorksSection.js +++ b/sanityIo/schemas/sections/web-dev/WebDevHowItWorksSection.js @@ -26,9 +26,10 @@ export default { type: 'string', }, { - name: 'content', - title: 'Content', - type: 'text', + name: 'contentTexts', + title: 'Content Text', + type: 'array', + of:[{type: 'text'}] }, { name: 'steps', diff --git a/sanityIo/schemas/web-dev/WebDevHowItWorksStep.js b/sanityIo/schemas/sections/web-dev/WebDevPricingPlan.js similarity index 74% rename from sanityIo/schemas/web-dev/WebDevHowItWorksStep.js rename to sanityIo/schemas/sections/web-dev/WebDevPricingPlan.js index 7a72b236..8651dd80 100644 --- a/sanityIo/schemas/web-dev/WebDevHowItWorksStep.js +++ b/sanityIo/schemas/sections/web-dev/WebDevPricingPlan.js @@ -1,6 +1,6 @@ export default { - name: 'WebDevHowItWorksStep', - title: 'Web Dev How It works Step', + name: 'WebDevPricingPlan', + title: 'Web Dev Pricing Plan', type: 'object', fields: [ { @@ -19,9 +19,15 @@ export default { type: 'string', }, { - name: 'contentText', - title: 'Content', - type: 'text', + name: 'contentTexts', + title: 'Content Text', + type: 'array', + of:[{type: 'text'}] + }, + { + name: 'cost', + title: 'Cost', + type: 'string', }, { name: 'learnMoreText', @@ -42,14 +48,6 @@ export default { maxLength: 96, }, }, - { - name: 'imageSrc', - title: 'Image', - type: 'image', - options: { - hotspot: true, - }, - }, ], preview: { select: { diff --git a/sanityIo/schemas/web-dev/WebDevHowItWorksSection.js b/sanityIo/schemas/sections/web-dev/WebDevPricingSection.js similarity index 69% rename from sanityIo/schemas/web-dev/WebDevHowItWorksSection.js rename to sanityIo/schemas/sections/web-dev/WebDevPricingSection.js index 1e3725ce..cc42520a 100644 --- a/sanityIo/schemas/web-dev/WebDevHowItWorksSection.js +++ b/sanityIo/schemas/sections/web-dev/WebDevPricingSection.js @@ -1,7 +1,7 @@ export default { - name: 'WebDevHowItWorksSection', - title: "Web Dev How it works Section", + name: 'WebDevPricingSection', + title: "Web Dev Pricing Section", type: 'document', fields: [ { @@ -26,15 +26,16 @@ export default { type: 'string', }, { - name: 'content', - title: 'Content', - type: 'text', + name: 'contentTexts', + title: 'Content Text', + type: 'array', + of:[{type: 'text'}] }, { - name: 'steps', - title: 'Steps', + name: 'plans', + title: 'Pricing Plans', type: 'array', - of:[{type: 'WebDevHowItWorksStep'}] + of:[{type: 'WebDevPricingPlan'}] }, ], preview: { diff --git a/sanityIo/schemas/web-dev/DevelopmentFooterSection.js b/sanityIo/schemas/web-dev/DevelopmentFooterSection.js deleted file mode 100644 index 16bbda70..00000000 --- a/sanityIo/schemas/web-dev/DevelopmentFooterSection.js +++ /dev/null @@ -1,26 +0,0 @@ -export default { - name: 'DevelopmentFooterSection', - title: 'Dev Footer Section', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'footerMenuRef', - title: 'Footer Menu', - type: 'reference', - to: [{type:'menuContainer'}] - }, - ], - preview: { - select: { - title: 'name', - }, - }, -} - - - diff --git a/sanityIo/schemas/web-dev/FooterSection.js b/sanityIo/schemas/web-dev/FooterSection.js deleted file mode 100644 index 3755a39a..00000000 --- a/sanityIo/schemas/web-dev/FooterSection.js +++ /dev/null @@ -1,26 +0,0 @@ -export default { - name: 'FooterSection', - title: 'Footer Section', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'footerMenuRef', - title: 'Footer Menu', - type: 'reference', - to: [{type:'menuContainer'}] - }, - ], - preview: { - select: { - title: 'name', - }, - }, -} - - - diff --git a/sanityIo/schemas/web-dev/WebDevAboutUs.js b/sanityIo/schemas/web-dev/WebDevAboutUs.js deleted file mode 100644 index ddd28986..00000000 --- a/sanityIo/schemas/web-dev/WebDevAboutUs.js +++ /dev/null @@ -1,62 +0,0 @@ - -export default { - name: 'WebDevAboutUsSection', - title: "Web Dev About Us", - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'theme', - title: 'Theme', - type: 'reference', - to:[{type: 'MuiTheme'}] - }, - { - name: 'imageSrc', - title: 'Image', - type: 'image', - options: { - hotspot: true, - }, - }, - { - name: 'welcomeMessage', - title: 'Welcome Message', - type: 'string', - }, - { - name: 'contentTitle', - title: 'Content Title', - type: 'string', - }, - { - name: 'contentText', - title: 'Content Text', - type: 'array', - of:[{type: 'text'}] - }, - { - name: 'ctaButtonText', - title: 'CTA Button Text', - type: 'string' - }, - { - name: 'ctaButtonLink', - title: 'CTA Button Link', - type: 'string' - } - ], - preview: { - select: { - title: 'name', - media: 'imageSrc', - }, - }, -} - - - diff --git a/sanityIo/schemas/web-dev/WebDevHeroContentSection.js b/sanityIo/schemas/web-dev/WebDevHeroContentSection.js deleted file mode 100644 index bcc08adb..00000000 --- a/sanityIo/schemas/web-dev/WebDevHeroContentSection.js +++ /dev/null @@ -1,60 +0,0 @@ -export default { - name: 'WebDevHeroContentSection', - title: 'Web Dev Hero Image + Content section', - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'theme', - title: 'Theme', - type: 'reference', - to:[{type: 'MuiTheme'}] - }, - { - name: 'title', - title: 'Title', - type: 'string', - }, - { - name: 'heroImageBackground', - title: 'Hero Image Background', - type: 'image', - options: { - hotspot: true, - }, - }, - { - name: 'contentTitle', - title: 'Content Title', - type: 'string', - }, - { - name: 'contentText', - title: 'Content Text', - type: 'text', - }, - { - name: 'ctaButtonTitle', - title: 'CTA Button Title', - type: 'string' - }, - { - name: 'ctaButtonLink', - title: 'CTA Button Link', - type: 'string' - } - ], - preview: { - select: { - title: 'name', - media: 'heroImageBackground', - }, - }, -} - - - diff --git a/sanityIo/schemas/web-dev/WebDevStatistic.js b/sanityIo/schemas/web-dev/WebDevStatistic.js deleted file mode 100644 index b3a09dac..00000000 --- a/sanityIo/schemas/web-dev/WebDevStatistic.js +++ /dev/null @@ -1,35 +0,0 @@ -export default { - name: 'WebDevStatistic', - title: 'Web Dev Statistic', - type: 'object', - fields: [ - { - name: 'isEnabled', - title: 'Is Enabled', - type: 'boolean', - }, - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'statValue', - title: 'Value', - type: 'string', - }, - { - name: 'statContent', - title: 'Content Title', - type: 'string', - }, - ], - preview: { - select: { - title: 'name', - }, - }, -} - - - diff --git a/sanityIo/schemas/web-dev/WebDevStatsCounterSection.js b/sanityIo/schemas/web-dev/WebDevStatsCounterSection.js deleted file mode 100644 index 51e50777..00000000 --- a/sanityIo/schemas/web-dev/WebDevStatsCounterSection.js +++ /dev/null @@ -1,33 +0,0 @@ - -export default { - name: 'WebDevStatsCounterSection', - title: "Web Dev Stats Counter", - type: 'document', - fields: [ - { - name: 'name', - title: 'Name', - type: 'string', - }, - { - name: 'theme', - title: 'Theme', - type: 'reference', - to:[{type: 'MuiTheme'}] - }, - { - name: 'stats', - title: 'Stats', - type: 'array', - of:[{type: 'WebDevStatistic'}] - }, - ], - preview: { - select: { - title: 'name', - }, - }, -} - - - diff --git a/src/common/sanityIo/Types.ts b/src/common/sanityIo/Types.ts index 6eca7261..4f71d930 100644 --- a/src/common/sanityIo/Types.ts +++ b/src/common/sanityIo/Types.ts @@ -1,7 +1,6 @@ import {SanityImageSource} from "@sanity/asset-utils"; import {SanityImageAsset, ThwServiceItemNoRefType} from "../../components/BlockContentTypes"; import {Slug} from "@sanity/types"; -import BusinessContact from "../../../sanityIo/schemas/businessContact"; export type SanitySlug = Slug @@ -53,6 +52,7 @@ export type SanityBusinessContact = { export type SanityTransformHwHomePage = { _type?: string title?: string + _id?:string description?: string bookAppointmentLink?: string bookAppointmentQrCode?: SanityImageSource @@ -97,6 +97,8 @@ export type SanityMuiTheme = { title?: string slug?: SanitySlug appBarHeight?: number + borderRadius?: number + shape?: {borderRadius: number} breakpoints?: SanityMuiBreakpoints colorPalette?: SanityMuiColorPalette typography?: SanityMuiTypography diff --git a/src/common/sanityIo/groqQueries.ts b/src/common/sanityIo/groqQueries.ts index 76b45d6f..86f59597 100644 --- a/src/common/sanityIo/groqQueries.ts +++ b/src/common/sanityIo/groqQueries.ts @@ -42,7 +42,8 @@ const SERVICE = ` -const HOMEPAGE = `_type, +const HOMEPAGE = `_type, + _id, title, isUnderConstruction, releaseDate, @@ -113,12 +114,10 @@ const HOMEPAGE = `_type, }, "prosList": prosList[]->, "serviceAmenities": serviceAmenities[]->, - "skillsets": skillsets[]{ + "skillsets": skillsets[]->{ ..., "skills": skills[]->{ - _id, - name, - title, + ... }, }, "experiences": experiences[]->{ diff --git a/src/components/BlockContentLayoutContainer.tsx b/src/components/BlockContentLayoutContainer.tsx index 742a92af..1786c897 100644 --- a/src/components/BlockContentLayoutContainer.tsx +++ b/src/components/BlockContentLayoutContainer.tsx @@ -4,10 +4,15 @@ import {Card, Grid, Link, useTheme} from '@mui/material' import sanityClient from '../sanityClient' import {blockSerializers} from '../common/sanityIo/BlockContentRenderer' import { - AnimatedAboutUsSectionType, AnimatedPortfolioSectionType, AnimatedServicesSectionType, HeadlineCTASectionType, + AnimatedAboutUsSectionType, + AnimatedPortfolioSectionType, + AnimatedServicesSectionType, + HeadlineCTASectionType, HeroAnimatedContentSectionType, - HowItWorksSectionType, MapSectionType, + HowItWorksSectionType, + MapSectionType, PortfolioSectionType, + PricingSectionType, ResumeBioSectionType, ResumeContactUsSectionType, ResumeEducationSectionType, @@ -58,6 +63,7 @@ import AnimatedServicesSection from './animated/AnimatedServicesSection' import AnimatedPortfolioSection from "./animated/AnimatedPortfolioSection"; import HeadlineCTASection from "./animated/HeadlineCTASection"; import MapSection from "./animated/MapSection"; +import WebDevPricingSection from "./templates/web-dev-site/WebDevPricingSection"; export type BlockContentLayoutContainerProps = { content?: any, @@ -66,7 +72,7 @@ export type BlockContentLayoutContainerProps = { const BlockContentLayoutContainer: FunctionComponent = (props) => { const classes = useThwCommonStyles() - const theme= useTheme() + const theme = useTheme() return ( @@ -459,7 +465,7 @@ const BlockContentLayoutContainer: FunctionComponent - case 'MapSection': + case 'MapSection': const mapSection: MapSectionType = columnLayoutContainer return @@ -469,6 +475,16 @@ const BlockContentLayoutContainer: FunctionComponent + case 'WebDevPricingSection': + const pricingSection: PricingSectionType = columnLayoutContainer + + return + <> + + + default: return // return Undefined section {columnLayoutContainer._type} diff --git a/src/components/BlockContentTypes.ts b/src/components/BlockContentTypes.ts index aa01b6b7..905cd9ee 100644 --- a/src/components/BlockContentTypes.ts +++ b/src/components/BlockContentTypes.ts @@ -511,7 +511,7 @@ export type WebDevHeroContentSectionType = { export type WebDevStatsCounterSectionType = { name: string title: string - stats: { statValue: string, statContent: string }[] + stats: { statValue: string, statContent: string, isEnabled: boolean, "_type": "WebDevStatistic" }[] } @@ -522,37 +522,39 @@ export type WebDevAboutUsSectionType = { contentTitle: string contentText: string[] ctaButtonText: string - ctaButtonLink: string + ctaButtonLink?: string } export type ServiceItemNoRefType = { - name: string + name?: string imageSrc?: SanityImageAsset - imageSrcAltText: string - contentTitle: string - contentText: string - ctaButtonText: string - ctaButtonLink: string - learnMoreLink: string - learnMoreText: string - educationPageTitle: string - educationPageSlimHeroImage: SanityImageAsset - extendedDescriptions: string[] - benefitsOfServiceTitle: string - benefitsOfServiceContents: string[] - benefitsOfServiceBullets: string[] - serviceAmenities: ServiceAmenityType[] - slug: SanitySlug + imageSrcAltText?: string + contentTitle?: string + contentText?: string + ctaButtonText?: string + ctaButtonLink?: string + learnMoreLink?: string + learnMoreText?: string + educationPageTitle?: string + educationPageSlimHeroImage?: SanityImageAsset + extendedDescriptions?: string[] + benefitsOfServiceTitle?: string + benefitsOfServiceContents?: string[] + benefitsOfServiceBullets?: string[] + serviceAmenities?: ServiceAmenityType[] + slug?: SanitySlug } export type PortfolioSectionType = { - name: string - contentTitle: string - contentPreTitle: string - contentText: string - contentTexts: string[] - servicesList: ServiceItemNoRefType[] + name?: string + introduction?: string + contentTitle?: string + contentPreTitle?: string + contentText?: string + contentTexts?: string[] + portfolioEntries?: ResumePortfolioItem[] + servicesList?: ServiceItemNoRefType[] } export type WebDevTestimonialsType = { @@ -577,23 +579,45 @@ export type WebDevTestimonialsSectionType = { export type HowItWorksStepNoRefType = { - title: string - slug: SanitySlug - content: string - imageSrc: SanityImageAsset - isEnabled: boolean - contentText: string - contentTexts: string[] - learnMoreLink: string - learnMoreText: string + _type?: "WebDevHowItWorksStep", + title?: string + name?: string + slug?: SanitySlug + content?: string + imageSrc?: SanityImageAsset + isEnabled?: boolean + contentText?: string + contentTexts?: string[] + learnMoreLink?: string + learnMoreText?: string +} +export type PricingPlanNoRefType = { + // _type?: "WebDevHowItWorksStep", + title?: string + name?: string + slug?: SanitySlug + cost?: string + isEnabled?: boolean + contentTexts?: string[] + learnMoreLink?: string + learnMoreText?: string } export type HowItWorksSectionType = { + _type: "WebDevHowItWorksSection" name: string contentTitle: string contentPreTitle: string contentTexts: string[] steps: HowItWorksStepNoRefType[] } +export type PricingSectionType = { + // _type: "WebDevHowItWorksSection" + name: string + contentTitle: string + contentPreTitle: string + contentTexts: string[] + plans: PricingPlanNoRefType[] +} export type DevelopmentHeaderSectionType = { name: string @@ -635,6 +659,7 @@ export type SanityDocumentFields = { export type HeadlineCTASectionType = { name: string + isHideBorder?:boolean contentText: string ctaButtonText: string ctaButtonLink: string diff --git a/src/components/BusinessCard.tsx b/src/components/BusinessCard.tsx index 02a8762f..0538648b 100644 --- a/src/components/BusinessCard.tsx +++ b/src/components/BusinessCard.tsx @@ -1,11 +1,12 @@ import React, {FunctionComponent, useContext, useState} from 'react' -import {Theme, ThemeProvider} from "@mui/material/styles"; +import {Theme} from "@mui/material/styles"; import makeStyles from '@mui/styles/makeStyles'; import { Avatar, Button, Divider, Drawer, + Fab, Grid, List, ListItem, @@ -73,6 +74,8 @@ const BusinessCard: FunctionComponent = ({anchor, homePage}) => { const theme = useTheme() + const smDown = useMediaQuery(theme.breakpoints.down('sm')) + // const pageContext = useContext(PageContext) const [userBio, setUserBio] = React.useState() @@ -105,259 +108,264 @@ const BusinessCard: FunctionComponent = ({anchor, homePage}) => { // }, [qrCodeContext.qr_code_value]) const list = (anchor: MainMenuAnchorType) => ( - - - + + + - - - + bottom: -45, + height: "max-content", + padding: theme.spacing(2, 3) + }}> + - - - - + + + + + - - {userBio?.name} - - - {userBio?.careerTitle} - + + {userBio?.name} - - - - - Phone: - - - - {homePage.businessContact?.phone} - - + + {userBio?.careerTitle} - - - - + + + + - Email: + Phone: - - {homePage.businessContact?.email} - - {/*{homePage.email}*/} + {homePage.businessContact?.phone} + - - - - - - Website - - - - - - - - - - - + + + + + + + Email: + + + + + {homePage.businessContact?.email} + + {/*{homePage.email}*/} + + + + + + + Website + + + + + + + + + + - - - - - - Virtual Meeting - - - - - - - - - - - + + + + + + + Virtual Meeting + + + + + + + + + + - - - - - - - - - - {/**/} - {/*{menu?.subMenus?.map((subMenu: any, index: number) => {*/} - {/* switch (subMenu._type) {*/} - {/* case 'menuGroup':*/} - {/* const menuGroup: SanityMenuGroup = subMenu*/} - {/* return */} - {/* case 'menuItem':*/} - {/* default:*/} - {/* const menuItem: SanityMenuItem = subMenu*/} - {/* return */} - {/* */} - {/* */} - - {/* */} - {/* */} - {/* */} - {/* }*/} - - {/*})}*/} - + {/* height: "100%",*/} + {/* margin: 0*/} + {/* }} fullWidth>*/} + {/* */} + {/* */} + + {/* */} + {/* */} + {/* */} + {/* }*/} + + {/*})}*/} + ); return ( - - + - - - - {list(anchor)} - - - + + + + + {/**/} + {/* {menu.logoImageSrc && }*/} + {/**/} + + + + {list(anchor)} + + + ); } diff --git a/src/components/animated/HeadlineCTASection.tsx b/src/components/animated/HeadlineCTASection.tsx index f25d3045..b846f7c2 100644 --- a/src/components/animated/HeadlineCTASection.tsx +++ b/src/components/animated/HeadlineCTASection.tsx @@ -12,7 +12,7 @@ export const useStyles = makeStyles((theme: Theme) => ({ }, })) -interface IProps { sectionData: HeadlineCTASectionType } +interface IProps { sectionData: HeadlineCTASectionType, } const HeadlineCTASection: FunctionComponent = (props:IProps) => { const theme = useTheme() @@ -29,20 +29,20 @@ const HeadlineCTASection: FunctionComponent = (props:IProps) => { backgroundImage: `url(${urlFor(props.sectionData.backgroundImgSrc).url()})`, backgroundSize: "40%, 40%", // backgroundRepeat: "no-repeat", - borderRadius: mdDown?0:1, - border:mdDown?'none':`1px solid ${theme.palette.primary.main}`, + // borderRadius: mdDown?0:1, + border:mdDown || props.sectionData.isHideBorder ?'none':`1px solid ${theme.palette.primary.main}`, marginLeft: mdDown?0:props.sectionData.insetLeft, marginRight: mdDown?0:props.sectionData.insetRight, marginTop: mdDown?0:props.sectionData.insetTop, marginBottom: mdDown?0:props.sectionData.insetBottom, }}> - + {props.sectionData.contentText} - + - + + }> + {props.sectionData.resumeFileDownloadText} {/*{props.sectionData.cvFile && props.sectionData.cvFile.url.length > 0 && = (props: IProps) => { {/* CV}*/} - + } + {/**/} + {/* <>{setIsPDFResumeOpen(false)}}>*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/**/} ); } diff --git a/src/components/templates/my-digital-resume/resume-experience-section/ResumeExperienceItem.tsx b/src/components/templates/my-digital-resume/resume-experience-section/ResumeExperienceItem.tsx index 84072abd..2a2c8b24 100644 --- a/src/components/templates/my-digital-resume/resume-experience-section/ResumeExperienceItem.tsx +++ b/src/components/templates/my-digital-resume/resume-experience-section/ResumeExperienceItem.tsx @@ -45,21 +45,25 @@ const ResumeExperienceItem: FunctionComponent = (props:IProps) => { {dateUtils.YearMonth(new Date(props.experience.dateStart as string))} + variant='body1' fontWeight={'bold'}>{dateUtils.YearMonth(new Date(props.experience.dateStart as string))} {/**/} {/**/} - β€” {/**/} {/**/} - {dateUtils.YearMonth(new Date(props.experience.dateEnd as string))} + + {dateUtils.getLengthOfTime(new Date(props.experience.dateStart ??""), new Date(props.experience.dateEnd ?? '')).result} + {props.experience.description} diff --git a/src/components/templates/my-digital-resume/resume-experience-section/ResumeExperienceSection.tsx b/src/components/templates/my-digital-resume/resume-experience-section/ResumeExperienceSection.tsx index 31d642a2..899b0c52 100644 --- a/src/components/templates/my-digital-resume/resume-experience-section/ResumeExperienceSection.tsx +++ b/src/components/templates/my-digital-resume/resume-experience-section/ResumeExperienceSection.tsx @@ -34,7 +34,7 @@ const ResumeExperienceSection: FunctionComponent = (props: IProps) => { { props.sectionData.experiences?.map((experience: ResumeExperience, index2: number) => { - return + return }) } diff --git a/src/components/templates/my-digital-resume/resume-portfolio-section/ResumePortfolioEntry.tsx b/src/components/templates/my-digital-resume/resume-portfolio-section/ResumePortfolioEntry.tsx index 34a02770..24b4d30e 100644 --- a/src/components/templates/my-digital-resume/resume-portfolio-section/ResumePortfolioEntry.tsx +++ b/src/components/templates/my-digital-resume/resume-portfolio-section/ResumePortfolioEntry.tsx @@ -29,7 +29,7 @@ const ResumePortfolioEntry: FunctionComponent = (props:IProps) => { return ( } + + } + + return ( + + + + + {props.step.cost} + + {props.step.title} + + + + {props.step.contentTexts?.map((textContent: string) => { + return + + {textContent} + + + })} + + + {!props.hideLearnMoreButton && } + + + + + ); +} + +export default WebDevPricingPlan \ No newline at end of file diff --git a/src/components/templates/web-dev-site/WebDevPricingSection.tsx b/src/components/templates/web-dev-site/WebDevPricingSection.tsx new file mode 100644 index 00000000..bb0cbdba --- /dev/null +++ b/src/components/templates/web-dev-site/WebDevPricingSection.tsx @@ -0,0 +1,74 @@ +import React, {FunctionComponent} from 'react' +import { Theme, ThemeProvider, StyledEngineProvider } from '@mui/material/styles'; +import makeStyles from '@mui/styles/makeStyles'; +import {Grid, Typography} from '@mui/material' +import { + HowItWorksSectionType, + HowItWorksStepNoRefType, + PricingPlanNoRefType, + PricingSectionType +} from "../../BlockContentTypes"; +import WebDevSiteTheme from "../../../theme/WebDevSiteTheme"; +import {COLORS} from "../../../theme/common/ColorPalette"; +import WebDevHowItWorksStep from "./WebDevHowItWorksStep"; +import WebDevPricingPlan from "./WebDevPricingPlan"; + + + + + +export const useStyles = makeStyles((theme: Theme) => ({ + root: { + padding: theme.spacing(4,0,8,0), + minHeight: 'max-content', + backgroundColor: '#131313' + }, + contentBottom: { + border: `1px solid ${theme.palette.secondary.main}`, + padding: '20px' + } +})) + + +interface IProps { + sectionData: PricingSectionType +} + +const WebDevPricingSection: FunctionComponent = (props) => { + const classes = useStyles() + + return ( + + + + + {props.sectionData?.contentPreTitle} + + + + {props.sectionData?.contentTitle} + + + + + {props.sectionData?.contentTexts?.map((segment: string, index: number) => ( + + {segment} + ))} + + + {props.sectionData?.plans?.map((plan: PricingPlanNoRefType, index: number) => { + return + })} + + + + ); +} + +export default WebDevPricingSection \ No newline at end of file diff --git a/src/components/templates/web-dev-site/WebDevServiceItem.tsx b/src/components/templates/web-dev-site/WebDevServiceItem.tsx index 8cabcf6e..08e299c3 100644 --- a/src/components/templates/web-dev-site/WebDevServiceItem.tsx +++ b/src/components/templates/web-dev-site/WebDevServiceItem.tsx @@ -38,7 +38,7 @@ const WebDevServiceItem: FunctionComponent = (props: IProps) => { {props.service.learnMoreText && props.service?.learnMoreText.length > 0 &&