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 */}
- {/* */}
- {/*
+
+
+
+
+
+
+
+
+
+ {/**/}
+ {/*{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 (
-
-
+
-
+ src={urlFor(homePage.headerContent.content[0].headerMenuRef.logoImageSrc ?? "").url() ?? ""}/>
+
-
-
-
- {/**/}
- {/* {menu.logoImageSrc && }*/}
- {/**/}
-
-
-
- {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.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 (
{
diff --git a/src/components/templates/my-digital-resume/resume-portfolio-section/ResumePortfolioSection.tsx b/src/components/templates/my-digital-resume/resume-portfolio-section/ResumePortfolioSection.tsx
index 9e95255e..1b2d500a 100644
--- a/src/components/templates/my-digital-resume/resume-portfolio-section/ResumePortfolioSection.tsx
+++ b/src/components/templates/my-digital-resume/resume-portfolio-section/ResumePortfolioSection.tsx
@@ -1,12 +1,8 @@
import React, {FunctionComponent} from 'react'
-import {Button, ButtonGroup, Chip, Grid, IconButton, Modal, Typography, useMediaQuery, useTheme} from '@mui/material'
+import {Grid, Typography, useMediaQuery, useTheme} from '@mui/material'
import {ResumePortfolioItem, ResumePortfolioSectionType} from "../../../BlockContentTypes";
import useThwCommonStyles from "../../../../common/sanityIo/ThwCommonStyles";
-import {urlFor} from "../../../block-content-ui/static-pages/cmsStaticPagesClient";
-import {Close} from "@mui/icons-material";
-import dateUtils from "../../../../utils/dateUtils";
import ResumePortfolioEntry from "./ResumePortfolioEntry";
-import PortfolioItemModal from "./PortfolioItemModal";
interface IProps {
sectionData: ResumePortfolioSectionType
@@ -51,7 +47,7 @@ const ResumePortfolioSection: FunctionComponent = (props: IProps) => {
{
props.sectionData.portfolioEntries?.map((portfolioItem: ResumePortfolioItem, index2: number) => {
- return
+ return
})
}
diff --git a/src/components/templates/my-digital-resume/resume-skills-section/ResumeSkillReferences.tsx b/src/components/templates/my-digital-resume/resume-skills-section/ResumeSkillReferences.tsx
index 240d931f..a816c5aa 100644
--- a/src/components/templates/my-digital-resume/resume-skills-section/ResumeSkillReferences.tsx
+++ b/src/components/templates/my-digital-resume/resume-skills-section/ResumeSkillReferences.tsx
@@ -1,60 +1,86 @@
-import React, {FunctionComponent} from 'react'
-
-import makeStyles from "@mui/styles/makeStyles";
-import {Theme} from "@mui/material/styles";
+import React, {FunctionComponent, useContext} from 'react'
import {Grid, Typography} from "@mui/material";
-import {ResumeSkill} from "../../../BlockContentTypes";
+import {ResumePortfolioItem, ResumeSkill} from "../../../BlockContentTypes";
import cmsClient from "../../../block-content-ui/cmsClient";
import ResumeExperienceItem from "../resume-experience-section/ResumeExperienceItem";
-import {ResumePortfolioItem} from "../../../BlockContentTypes";
import ResumePortfolioEntry from "../resume-portfolio-section/ResumePortfolioEntry";
-import PortfolioItemModal from "../resume-portfolio-section/PortfolioItemModal";
-
-export const useStyles = makeStyles((theme: Theme) => ({
- root: {
- },
-}))
+import ResumeSkillSetItem from "./ResumeSkillSetItem";
+import PageContext from "../../../page-context/PageContext";
interface IProps {
skill?: ResumeSkill
}
-const ResumeSkillReferences: FunctionComponent = (props:IProps) => {
- const classes = useStyles()
-
+const ResumeSkillReferences: FunctionComponent = (props: IProps) => {
const [referenceResults, setReferenceResults] = React.useState<[]>()
+ const pageContext = useContext(PageContext)
+
const searchCMS = async () => {
- console.log("about to search full text")
+ // console.log("about to search full text")
if (props.skill) {
- const cmsResponse = await cmsClient.skillReferenceSearch(props.skill)
- console.log("results", cmsResponse)
+ const cmsResponse = await cmsClient.skillReferenceSearch(props.skill, pageContext.page?._id ?? "")
+
setReferenceResults(cmsResponse)
}
}
- React.useEffect(()=>{
+ React.useEffect(() => {
// find the rerences of this skill
searchCMS().then()
-
}, [])
-
- const [currentItem, setCurrentItem] = React.useState()
- const [isOpen, setIsOpen] = React.useState(false)
+
return (
{
- referenceResults?.map((searchResult:any)=>{
- switch (searchResult?._type) {
- case "ResumeExperience":
- return
- case "ResumePortfolioItem":
- return
- case "ResumeSkillSection":
- return <>>
- default:
- return {searchResult._type}
- }
+ referenceResults?.map((searchResult: any, index) => {
+
+
+ switch (searchResult?._type) {
+ case "ResumeExperience":
+ return
+
+ {My Job Experience}
+
+
+
+ case "ResumePortfolioItem":
+ return
+ My Portfolio item
+
+
+ case "ResumeSkillSection":
+ return <>>
+ case "ResumeSkillset":
+ return
+
+ {My Related
+ Skills}
+
+
+
+ // case "PortfolioItem":
+ // return <>{searchResult.title}>
+ default:
+ return {searchResult._type}
+ }
})
}
diff --git a/src/components/templates/my-digital-resume/resume-skills-section/ResumeSkillsSection.tsx b/src/components/templates/my-digital-resume/resume-skills-section/ResumeSkillsSection.tsx
index e949eaa1..a200748f 100644
--- a/src/components/templates/my-digital-resume/resume-skills-section/ResumeSkillsSection.tsx
+++ b/src/components/templates/my-digital-resume/resume-skills-section/ResumeSkillsSection.tsx
@@ -41,7 +41,7 @@ const ResumeSkillsSection: FunctionComponent = (props: IProps) => {
{
props.sectionData?.skillsets?.map((skillset: ResumeSkillSet, index2: number) => {
- return
+ return
})
}
diff --git a/src/components/templates/transform-hw/pages/BusinessCardSubmitEmail.tsx b/src/components/templates/transform-hw/pages/BusinessCardSubmitEmail.tsx
index bf638e30..a947fe16 100644
--- a/src/components/templates/transform-hw/pages/BusinessCardSubmitEmail.tsx
+++ b/src/components/templates/transform-hw/pages/BusinessCardSubmitEmail.tsx
@@ -1,4 +1,4 @@
-import React, {ChangeEvent, FunctionComponent, useState} from 'react'
+import React, {ChangeEvent, FunctionComponent, useContext, useState} from 'react'
import {Theme} from "@mui/material/styles";
import makeStyles from '@mui/styles/makeStyles';
import {Grid, TextField, Typography, useTheme} from '@mui/material'
@@ -7,6 +7,9 @@ import {ButtonGroupMemberEnum} from "../../../loading-button/ButtonGroupMemberEn
import isEmail from "validator/lib/isEmail";
import leadClient from "./under-construction-page/leadClient";
import useCustomStyles from "../../mackenzies-mind/pages/Styles";
+import ResumeDocumentPDF from "../../../pdf-renderer/ResumeDocumentPDF";
+import {PDFDownloadLink} from "@react-pdf/renderer";
+import PageContext from "../../../page-context/PageContext";
const useStyles = makeStyles((theme: Theme) => ({
endAdornedInput: {
@@ -46,6 +49,7 @@ const BusinessCardSubmitEmail: FunctionComponent = (props: Su
const theme = useTheme()
const classes = useCustomStyles({})
const myClasses = useStyles()
+ const page = useContext(PageContext)
const [email, setEmail] = useState("")
const [isLoading, setIsLoading] = React.useState(false)
@@ -138,7 +142,11 @@ const BusinessCardSubmitEmail: FunctionComponent = (props: Su
{getHelperText()}
- )
+
+
+ }>Download PDF
+
+ )
}
export default BusinessCardSubmitEmail
\ No newline at end of file
diff --git a/src/components/templates/web-dev-site/WebDevAboutUsSection.tsx b/src/components/templates/web-dev-site/WebDevAboutUsSection.tsx
index d66bd897..2e29c8b1 100644
--- a/src/components/templates/web-dev-site/WebDevAboutUsSection.tsx
+++ b/src/components/templates/web-dev-site/WebDevAboutUsSection.tsx
@@ -7,10 +7,6 @@ import WebDevSiteTheme from "../../../theme/WebDevSiteTheme";
import {COLORS} from "../../../theme/common/ColorPalette";
import {urlFor} from "../../block-content-ui/static-pages/cmsStaticPagesClient";
-
-
-
-
export const useStyles = makeStyles((theme: Theme) => ({
root: {
minHeight: '521px',
@@ -32,8 +28,6 @@ const WebDevAboutUsSection: FunctionComponent = (props) => {
const theme = useTheme()
return (
-
-
= (props) => {
-
-
);
}
diff --git a/src/components/templates/web-dev-site/WebDevHowItWorksSection.tsx b/src/components/templates/web-dev-site/WebDevHowItWorksSection.tsx
index 7af8ab5f..ec0faa2f 100644
--- a/src/components/templates/web-dev-site/WebDevHowItWorksSection.tsx
+++ b/src/components/templates/web-dev-site/WebDevHowItWorksSection.tsx
@@ -32,8 +32,6 @@ const WebDevHowItWorksSection: FunctionComponent = (props) => {
const classes = useStyles()
return (
-
-
@@ -54,7 +52,7 @@ const WebDevHowItWorksSection: FunctionComponent = (props) => {
{props.sectionData?.contentTexts?.map((segment: string, index: number) => (
- {segment}
+ {segment}
))}
@@ -64,8 +62,6 @@ const WebDevHowItWorksSection: FunctionComponent = (props) => {
-
-
);
}
diff --git a/src/components/templates/web-dev-site/WebDevHowItWorksStep.tsx b/src/components/templates/web-dev-site/WebDevHowItWorksStep.tsx
index ac3bd9c2..2cce694e 100644
--- a/src/components/templates/web-dev-site/WebDevHowItWorksStep.tsx
+++ b/src/components/templates/web-dev-site/WebDevHowItWorksStep.tsx
@@ -37,7 +37,7 @@ const WebDevHowItWorksStep: FunctionComponent = (props: IProps) => {
{props.step.learnMoreText && props.step?.learnMoreText.length > 0 &&
- firebaseAnalyticsClient.ctaClick(props.step.slug?.current ?? "", props.step.learnMoreText, pageContext.analyticsId,)
+ firebaseAnalyticsClient.ctaClick(props.step.slug?.current ?? "", props.step.learnMoreText ?? "", pageContext.analyticsId,)
} color='primary' href={props.step.learnMoreLink}
variant='outlined'> = (props: IProps) => {
}
return (
-
-
@@ -73,8 +71,7 @@ const WebDevHowItWorksStep: FunctionComponent = (props: IProps) => {
-
-
+
);
}
diff --git a/src/components/templates/web-dev-site/WebDevPortfolioSection.tsx b/src/components/templates/web-dev-site/WebDevPortfolioSection.tsx
index 1fef2ce2..64a48d2d 100644
--- a/src/components/templates/web-dev-site/WebDevPortfolioSection.tsx
+++ b/src/components/templates/web-dev-site/WebDevPortfolioSection.tsx
@@ -1,5 +1,5 @@
import React, {FunctionComponent, useContext} from 'react'
-import {StyledEngineProvider, Theme, ThemeProvider} from "@mui/material/styles";
+import {Theme} from "@mui/material/styles";
import makeStyles from '@mui/styles/makeStyles';
import {Button, ButtonGroup, Chip, Grid, IconButton, Modal, Typography, useMediaQuery, useTheme} from '@mui/material'
import {ResumePortfolioItem, ResumePortfolioSectionType} from "../../BlockContentTypes";
diff --git a/src/components/templates/web-dev-site/WebDevPricingPlan.tsx b/src/components/templates/web-dev-site/WebDevPricingPlan.tsx
new file mode 100644
index 00000000..cee2097e
--- /dev/null
+++ b/src/components/templates/web-dev-site/WebDevPricingPlan.tsx
@@ -0,0 +1,87 @@
+import React, {FunctionComponent, useContext} from 'react'
+import { Theme, ThemeProvider, StyledEngineProvider } from "@mui/material/styles";
+import makeStyles from '@mui/styles/makeStyles';
+import {Button, Grid, Typography} from '@mui/material'
+import {v4 as uuidv4} from 'uuid'
+import WebDevSiteTheme from "../../../theme/WebDevSiteTheme";
+import PageContext from "../../page-context/PageContext";
+import {HowItWorksStepNoRefType, PricingPlanNoRefType} from "../../BlockContentTypes";
+import firebaseAnalyticsClient from "../../../common/firebase/FirebaseAnalyticsClient";
+
+
+
+
+export const useStyles = makeStyles((theme: Theme) => ({
+ root: {
+ padding: theme.spacing(4)
+ },
+}))
+
+interface IProps {
+ step: PricingPlanNoRefType
+ hideLearnMoreButton?: boolean
+ hideCtaButton?: boolean
+ source?: string
+ showAmenities?: boolean
+ index?: number
+}
+
+const COLOR_ROTATION = ["#cd3647", "#343656", "#333784"]
+
+const WebDevPricingPlan: FunctionComponent = (props: IProps) => {
+ const pageContext = useContext(PageContext)
+ const classes = useStyles()
+
+ const LearnMoreButton = () => {
+ return
+ {props.step.learnMoreText && props.step?.learnMoreText.length > 0 &&
+
+ firebaseAnalyticsClient.ctaClick(props.step.slug?.current ?? "", props.step.learnMoreText ?? "", pageContext.analyticsId,)
+
+ } color='primary' href={props.step.learnMoreLink}
+ variant='outlined'>{props.step.learnMoreText}}
+
+ }
+
+ 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 &&
- firebaseAnalyticsClient.ctaClick(props.service.slug?.current ?? "", props.service.learnMoreText, pageContext.analyticsId,)
+ firebaseAnalyticsClient.ctaClick(props.service.slug?.current ?? "", props.service.learnMoreText ?? "", pageContext.analyticsId,)
} color='primary' href={props.service.learnMoreLink}
variant='contained'> = (props: IProps) => {
// const mdDown = mediaContext.mdDown
return (
-
-
@@ -122,8 +120,7 @@ const WebDevServiceItem: FunctionComponent = (props: IProps) => {
{/*{props.showAmenities &&*/}
{/* }*/}
-
-
+
);
}
diff --git a/src/components/templates/web-dev-site/WebDevServicesSection.tsx b/src/components/templates/web-dev-site/WebDevServicesSection.tsx
index 00e61525..57651e83 100644
--- a/src/components/templates/web-dev-site/WebDevServicesSection.tsx
+++ b/src/components/templates/web-dev-site/WebDevServicesSection.tsx
@@ -31,8 +31,6 @@ const WebDevServicesSection: FunctionComponent = (props) => {
const classes = useStyles()
return (
-
-
@@ -58,14 +56,13 @@ const WebDevServicesSection: FunctionComponent = (props) => {
))}
- {props.sectionData?.servicesList?.map((service: ThwServiceItemNoRefType, index: number) => {
+ {props.sectionData?.servicesList?.map((service, index: number) => {
return
})}
-
-
+
);
}
diff --git a/src/components/templates/web-dev-site/WebDevStatsCounterSection.tsx b/src/components/templates/web-dev-site/WebDevStatsCounterSection.tsx
index c7ec1753..8f01251b 100644
--- a/src/components/templates/web-dev-site/WebDevStatsCounterSection.tsx
+++ b/src/components/templates/web-dev-site/WebDevStatsCounterSection.tsx
@@ -1,10 +1,9 @@
import React, {FunctionComponent} from 'react'
-import { Theme, ThemeProvider, StyledEngineProvider } from '@mui/material/styles';
+import {Theme} from '@mui/material/styles';
import makeStyles from '@mui/styles/makeStyles';
import {Grid, Typography} from '@mui/material'
import {WebDevStatsCounterSectionType} from "../../BlockContentTypes";
import {COLORS} from "../../../theme/common/ColorPalette";
-import WebDevSiteTheme from "../../../theme/WebDevSiteTheme";
interface IProps {
@@ -16,7 +15,7 @@ export const useStyles = makeStyles((theme: Theme) => ({
backgroundColor: COLORS.AQUA,
minHeight: '100px',
position: "relative",
- padding: theme.spacing(3,8)
+ padding: theme.spacing(3, 8)
},
contentSection: {
marginTop: '16px',
@@ -30,27 +29,26 @@ export const useStyles = makeStyles((theme: Theme) => ({
}))
const WebDevStatsCounterSection: FunctionComponent = (props) => {
- const classes = useStyles(WebDevSiteTheme)
+ const classes = useStyles()
return (
-
-
-
-
- {
- props.sectionData?.stats?.map((particularStat, index:number)=>
- {particularStat.statValue}
- {particularStat.statContent}
- )
- }
-
-
-
-
+
+
+ {
+ props.sectionData?.stats?.map((particularStat, index: number) =>
+ {particularStat.statValue}
+ {particularStat.statContent}
+ )
+ }
+
+
);
}
diff --git a/src/components/templates/web-dev-site/WebDevTestimonialsSection.tsx b/src/components/templates/web-dev-site/WebDevTestimonialsSection.tsx
index 2d33204e..7656dff5 100644
--- a/src/components/templates/web-dev-site/WebDevTestimonialsSection.tsx
+++ b/src/components/templates/web-dev-site/WebDevTestimonialsSection.tsx
@@ -1,15 +1,10 @@
import React, {FunctionComponent} from 'react'
-import {StyledEngineProvider, Theme, ThemeProvider} from "@mui/material/styles";
import {Grid, Typography, useTheme} from '@mui/material'
import {WebDevTestimonialsSectionType, WebDevTestimonialsType} from "../../BlockContentTypes";
import {urlFor} from "../../block-content-ui/static-pages/cmsStaticPagesClient";
-import WebDevSiteTheme from "../../../theme/WebDevSiteTheme";
import {COLORS} from "../../../theme/common/ColorPalette";
-
-
-
interface IProps {
sectionData: WebDevTestimonialsSectionType
}
@@ -18,8 +13,7 @@ const WebDevTestimonialsSection: FunctionComponent = (props: IProps) =>
const theme = useTheme()
return (
-
- = (props: IProps) =>
-
-
);
}
diff --git a/src/fonts/raleway/OFL.txt b/src/fonts/raleway/OFL.txt
new file mode 100644
index 00000000..a6b73db2
--- /dev/null
+++ b/src/fonts/raleway/OFL.txt
@@ -0,0 +1,93 @@
+Copyright 2010 The Raleway Project Authors (impallari@gmail.com), with Reserved Font Name "Raleway".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/src/fonts/raleway/README.txt b/src/fonts/raleway/README.txt
new file mode 100644
index 00000000..91c5afab
--- /dev/null
+++ b/src/fonts/raleway/README.txt
@@ -0,0 +1,81 @@
+Raleway Variable Font
+=====================
+
+This download contains Raleway as both variable fonts and static fonts.
+
+Raleway is a variable font with this axis:
+ wght
+
+This means all the styles are contained in these files:
+ Raleway-VariableFont_wght.ttf
+ Raleway-Italic-VariableFont_wght.ttf
+
+If your app fully supports variable fonts, you can now pick intermediate styles
+that arenβt available as static fonts. Not all apps support variable fonts, and
+in those cases you can use the static font files for Raleway:
+ static/Raleway-Thin.ttf
+ static/Raleway-ExtraLight.ttf
+ static/Raleway-Light.ttf
+ static/Raleway-Regular.ttf
+ static/Raleway-Medium.ttf
+ static/Raleway-SemiBold.ttf
+ static/Raleway-Bold.ttf
+ static/Raleway-ExtraBold.ttf
+ static/Raleway-Black.ttf
+ static/Raleway-ThinItalic.ttf
+ static/Raleway-ExtraLightItalic.ttf
+ static/Raleway-LightItalic.ttf
+ static/Raleway-Italic.ttf
+ static/Raleway-MediumItalic.ttf
+ static/Raleway-SemiBoldItalic.ttf
+ static/Raleway-BoldItalic.ttf
+ static/Raleway-ExtraBoldItalic.ttf
+ static/Raleway-BlackItalic.ttf
+
+Get started
+-----------
+
+1. Install the font files you want to use
+
+2. Use your app's font picker to view the font family and all the
+available styles
+
+Learn more about variable fonts
+-------------------------------
+
+ https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
+ https://variablefonts.typenetwork.com
+ https://medium.com/variable-fonts
+
+In desktop apps
+
+ https://theblog.adobe.com/can-variable-fonts-illustrator-cc
+ https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
+
+Online
+
+ https://developers.google.com/fonts/docs/getting_started
+ https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
+ https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
+
+Installing fonts
+
+ MacOS: https://support.apple.com/en-us/HT201749
+ Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
+ Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
+
+Android Apps
+
+ https://developers.google.com/fonts/docs/android
+ https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
+
+License
+-------
+Please read the full license text (OFL.txt) to understand the permissions,
+restrictions and requirements for usage, redistribution, and modification.
+
+You can use them in your products & projects β print or digital,
+commercial or otherwise.
+
+This isn't legal advice, please consider consulting a lawyer and see the full
+license for all details.
diff --git a/src/fonts/raleway/Raleway-Italic-VariableFont_wght.ttf b/src/fonts/raleway/Raleway-Italic-VariableFont_wght.ttf
new file mode 100644
index 00000000..52ee9971
Binary files /dev/null and b/src/fonts/raleway/Raleway-Italic-VariableFont_wght.ttf differ
diff --git a/src/fonts/raleway/Raleway-VariableFont_wght.ttf b/src/fonts/raleway/Raleway-VariableFont_wght.ttf
new file mode 100644
index 00000000..109884dc
Binary files /dev/null and b/src/fonts/raleway/Raleway-VariableFont_wght.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-Black.ttf b/src/fonts/raleway/static/Raleway-Black.ttf
new file mode 100644
index 00000000..3d2bcc23
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-Black.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-BlackItalic.ttf b/src/fonts/raleway/static/Raleway-BlackItalic.ttf
new file mode 100644
index 00000000..76d31cd3
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-BlackItalic.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-Bold.ttf b/src/fonts/raleway/static/Raleway-Bold.ttf
new file mode 100644
index 00000000..16db3eba
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-Bold.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-BoldItalic.ttf b/src/fonts/raleway/static/Raleway-BoldItalic.ttf
new file mode 100644
index 00000000..5a429a42
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-BoldItalic.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-ExtraBold.ttf b/src/fonts/raleway/static/Raleway-ExtraBold.ttf
new file mode 100644
index 00000000..42dd80b2
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-ExtraBold.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-ExtraBoldItalic.ttf b/src/fonts/raleway/static/Raleway-ExtraBoldItalic.ttf
new file mode 100644
index 00000000..c3093335
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-ExtraBoldItalic.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-ExtraLight.ttf b/src/fonts/raleway/static/Raleway-ExtraLight.ttf
new file mode 100644
index 00000000..5b78f5e3
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-ExtraLight.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-ExtraLightItalic.ttf b/src/fonts/raleway/static/Raleway-ExtraLightItalic.ttf
new file mode 100644
index 00000000..95231ff1
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-ExtraLightItalic.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-Italic.ttf b/src/fonts/raleway/static/Raleway-Italic.ttf
new file mode 100644
index 00000000..fa7ca30c
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-Italic.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-Light.ttf b/src/fonts/raleway/static/Raleway-Light.ttf
new file mode 100644
index 00000000..50c2d6fb
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-Light.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-LightItalic.ttf b/src/fonts/raleway/static/Raleway-LightItalic.ttf
new file mode 100644
index 00000000..2c6dae76
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-LightItalic.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-Medium.ttf b/src/fonts/raleway/static/Raleway-Medium.ttf
new file mode 100644
index 00000000..015d8108
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-Medium.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-MediumItalic.ttf b/src/fonts/raleway/static/Raleway-MediumItalic.ttf
new file mode 100644
index 00000000..2b8b88c3
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-MediumItalic.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-Regular.ttf b/src/fonts/raleway/static/Raleway-Regular.ttf
new file mode 100644
index 00000000..9a70667f
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-Regular.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-SemiBold.ttf b/src/fonts/raleway/static/Raleway-SemiBold.ttf
new file mode 100644
index 00000000..85d41ed2
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-SemiBold.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-SemiBoldItalic.ttf b/src/fonts/raleway/static/Raleway-SemiBoldItalic.ttf
new file mode 100644
index 00000000..da1dcc26
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-SemiBoldItalic.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-Thin.ttf b/src/fonts/raleway/static/Raleway-Thin.ttf
new file mode 100644
index 00000000..9a8cc73e
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-Thin.ttf differ
diff --git a/src/fonts/raleway/static/Raleway-ThinItalic.ttf b/src/fonts/raleway/static/Raleway-ThinItalic.ttf
new file mode 100644
index 00000000..49deb0bd
Binary files /dev/null and b/src/fonts/raleway/static/Raleway-ThinItalic.ttf differ
diff --git a/src/stories/data/WebDevAboutUsSectionData.ts b/src/stories/data/WebDevAboutUsSectionData.ts
new file mode 100644
index 00000000..52216143
--- /dev/null
+++ b/src/stories/data/WebDevAboutUsSectionData.ts
@@ -0,0 +1,27 @@
+import {
+ AnimatedAboutUsSectionType,
+ HeroAnimatedContentSectionType,
+ ResumeBioSectionType, WebDevAboutUsSectionType
+} from "../../components/BlockContentTypes";
+import HeroAnimatedContentSection from "../../components/animated/HeroAnimatedContentSection";
+
+const webDevAboutUsSectionType:WebDevAboutUsSectionType = {
+ "ctaButtonLink":undefined,
+ "contentText": [
+ "Your Business needs a solid digital presence to stand up to the rest of the competition. This digital presence needs to be easy to use, modern, and allow your clients or customers the ability to have access to your business directly from their tablet, laptop, or other mobile device. ",
+ "We help your business grow with components built or customized for your business and your customers. "
+ ],
+ "ctaButtonText": "Learn More",
+ "contentTitle": "We're on a mission to help your business grow faster than ever!",
+ "welcomeMessage": "About Us",
+ "name": "About Us Section",
+ "imageSrc": {
+ "_type": "image",
+ "asset": {
+ "_ref": "image-fd0c271e5e23e196f2508c415964e08374500e30-6416x4277-jpg",
+ "_type": "reference"
+ }
+ },
+}
+
+export default webDevAboutUsSectionType
\ No newline at end of file
diff --git a/src/stories/data/WebDevHowItWorksSectionData.ts b/src/stories/data/WebDevHowItWorksSectionData.ts
new file mode 100644
index 00000000..a75bede5
--- /dev/null
+++ b/src/stories/data/WebDevHowItWorksSectionData.ts
@@ -0,0 +1,109 @@
+import {
+ AnimatedAboutUsSectionType,
+ HeroAnimatedContentSectionType, HowItWorksSectionType, PortfolioSectionType,
+ ResumeBioSectionType, ResumePortfolioSectionType, WebDevAboutUsSectionType, WebDevTestimonialsSectionType
+} from "../../components/BlockContentTypes";
+import HeroAnimatedContentSection from "../../components/animated/HeroAnimatedContentSection";
+
+const webDevHowItWorksSectionData:HowItWorksSectionType = {
+ "_type": "WebDevHowItWorksSection",
+ "name": "How it works",
+ "contentTexts":[ "The development process is an exercise in organization of content. You are very active in the development of your project from providing content to providing prompt feedback on design. Following the steps below will take us through a roughly 2 month process to get your project finished and looking great."],
+ "contentPreTitle": "The Process",
+ "steps": [
+ {
+ "_type": "WebDevHowItWorksStep",
+ "contentText": "15 min meeting where we talk about some basics of your project and a formal layout of the process we normally take to get projects like yours completed.",
+ "learnMoreText": "Book a Meet & Greet",
+ "name": "Meet & Greet",
+ "title": "Virtual Meet & Greet",
+ "slug": {
+ "current": "meet-n-greet-step",
+ "_type": "slug"
+ },
+ "isEnabled": true
+ },
+ {
+ "_type": "WebDevHowItWorksStep",
+ "contentText": "I need a more details to come up with an estimate in cost and time of your project. Fill in this form to give me some insight into your project and I will review this form for the consultation.",
+ "learnMoreText": "Quote Form",
+ "name": "Fill out Quote Form",
+ "title": "Fill out Quote Form",
+ "slug": {
+ "current": "fill-in-quote-step",
+ "_type": "slug"
+ }
+ },
+ {
+ "_type": "WebDevHowItWorksStep",
+ "contentText": "This conversation that will mainly be about the responses you gave in your quote form will allow me to obtain the details I need to come up with a quote in terms of time and funds for your specific project. ",
+ "learnMoreText": "Get a Quote",
+ "name": "Consultation",
+ "title": "30 min Consultation",
+ "slug": {
+ "current": "get-a-quote",
+ "_type": "slug"
+ }
+ },
+ {
+ "contentText": "After you receive your quote and you decide that you want to go with us we will will sign a contract outlining what is expected and cost in time and money. This marks the official start of your project!",
+ "learnMoreText": "Start a new Project",
+ "name": "Contract Us",
+ "title": "Contract Us",
+ "slug": {
+ "_type": "slug",
+ "current": "start-a-new-project"
+ },
+ "_type": "WebDevHowItWorksStep"
+ },
+ {
+ "learnMoreText": "Consultation form",
+ "name": "Design",
+ "title": "Design",
+ "slug": {
+ "current": "step-4-design",
+ "_type": "slug"
+ },
+ "_type": "WebDevHowItWorksStep",
+ "contentText": "Using the knowledge from the consultation I will have come up with a few ideas for what the project will look and feel like. These ideas are in the form of stock templates and mockups that we will discuss in detail and allow you to make edits. It is important to be thorough with this step so that development can be as fast as possible."
+ },
+ {
+ "contentText": "Development means I am working hard to make everything from our mockups into something that a client of yours can view and interact with on the internet. There will be weekly review meetings where you get to approve the final completed section as your clients will see it. After we have all the major sections completed there will be an overall project review. ",
+ "learnMoreText": "The Developer...",
+ "name": "Development",
+ "title": "Development",
+ "slug": {
+ "current": "development-step",
+ "_type": "slug"
+ },
+ "_type": "WebDevHowItWorksStep"
+ },
+ {
+ "_type": "WebDevHowItWorksStep",
+ "contentText": "Your application will be tested as we go along by me. It will also be a version that you will have access to where you can test and give feedback at anytime along the way. But this step is devoted to testing the entire project and it's functionality.",
+ "name": "Testing",
+ "title": "Testing"
+ },
+ {
+ "learnMoreText": "Sample Projects",
+ "name": "Deployment",
+ "title": "Deployment",
+ "slug": {
+ "_type": "slug",
+ "current": "deployment"
+ },
+ "_type": "WebDevHowItWorksStep",
+ "contentText": "Time to deploy your project to the world!"
+ },
+ {
+ "_type": "WebDevHowItWorksStep",
+ "contentText": "Allow me to update your project monthly and keep it running smoothly. I'll fix any minor bugs we find and give further estimates on more complex bug fixes. This also covers content management for those that are less tech savvy.",
+ "learnMoreText": "Our Plans",
+ "name": "Maintenance",
+ "title": "Maintenance"
+ }
+ ],
+ "contentTitle": "How it works"
+}
+
+export default webDevHowItWorksSectionData
\ No newline at end of file
diff --git a/src/stories/data/WebDevPortfolioSectionData.ts b/src/stories/data/WebDevPortfolioSectionData.ts
new file mode 100644
index 00000000..373287e4
--- /dev/null
+++ b/src/stories/data/WebDevPortfolioSectionData.ts
@@ -0,0 +1,199 @@
+import {
+ AnimatedAboutUsSectionType,
+ HeroAnimatedContentSectionType, PortfolioSectionType,
+ ResumeBioSectionType, ResumePortfolioSectionType, WebDevAboutUsSectionType, WebDevTestimonialsSectionType
+} from "../../components/BlockContentTypes";
+import HeroAnimatedContentSection from "../../components/animated/HeroAnimatedContentSection";
+
+const webDevPortfolioSectionData:ResumePortfolioSectionType = {
+ "introduction": "Take a look at some of our work. There are examples coming soon highlighting each service.",
+ "preTitle": "Works",
+ "title": "Our Works",
+ "name": "Our Works",
+ "portfolioEntries": [
+ {
+ "inceptionDate": "2022-11-19",
+ "linkToProd": "https://transformhw.org",
+ "coverImage": {
+ "asset": {
+ "_ref": "image-c316b0a296782f8bc4e663d9a0c3dea08b3748d9-1280x1445-jpg",
+ "_type": "reference"
+ },
+ "_type": "image"
+ },
+ "detailDescription": "A website for a Healing and Wellness site that allows for payments and booking. There are some basic SEO and Analytics under the hood.",
+ "slug": {
+ "current": "healing-and-wellness-site",
+ "_type": "slug"
+ },
+ "skillsHighlighted": [
+ {
+ "_type": "ResumeSkill",
+ "name": "Web Development",
+ "_id": "c426d52b-986b-44bc-bac7-59600447c91f",
+ "title": "Web Development",
+ "_updatedAt": "2022-12-15T11:31:26Z",
+ "_createdAt": "2022-12-15T11:31:26Z",
+ "_rev": "K0rtrsNuqDEgCtVQGty8qw"
+ },
+ {
+ "_type": "ResumeSkill",
+ "name": "Appointments",
+ "_id": "a72e3560-19b0-4aaa-ad00-26520ea1855f",
+ "title": "Appointments",
+ "_updatedAt": "2022-12-15T11:31:47Z",
+ "_createdAt": "2022-12-15T11:31:47Z",
+ "_rev": "K0rtrsNuqDEgCtVQGtyJZ0"
+ },
+ {
+ "title": "Payments",
+ "_updatedAt": "2022-12-15T11:32:04Z",
+ "_createdAt": "2022-12-15T11:32:04Z",
+ "_rev": "3re4XGUaXqpLG8nUTEtMhv",
+ "_type": "ResumeSkill",
+ "name": "Payments",
+ "_id": "c96a0f8a-18b7-404f-9aef-997783743a4f"
+ }
+ ],
+ "detailTitle": "Healing & Wellness Site",
+ "title": "Healing & Wellness Site",
+ "name": "Healing and Wellness Site",
+ },
+ {
+ "name": "Digital Resume",
+ "detailTitle": "Software Engineer Digital Resume",
+ "title": "Software Engineer Digital Resume",
+ "linkToProd": "https://terrellsingleton.com",
+ "slug": {
+ "current": "software-engineer-digital-resume",
+ "_type": "slug"
+ },
+ "inceptionDate": "2022-12-01",
+ "imageGallery": [
+ {
+ "_key": "c5889167a7d7",
+ "asset": {
+ "_ref": "image-964dfd8fd267656082717931c11dad2b99087ec2-1284x2778-png",
+ "_type": "reference"
+ },
+ "_type": "image"
+ },
+ {
+ "_type": "image",
+ "_key": "cb055f4bf9e1",
+ "asset": {
+ "_ref": "image-330f7ecae19feac20556c74896af5ace052644dd-1284x2778-png",
+ "_type": "reference"
+ }
+ },
+ {
+ "_type": "image",
+ "_key": "ac55856f61b0",
+ "asset": {
+ "_ref": "image-9d2e88049ef667a3d8f5b061f8b7a0096deaf71e-1284x2778-png",
+ "_type": "reference"
+ }
+ }
+ ],
+ "skillsHighlighted": [
+ {
+ "_createdAt": "2022-12-15T11:31:26Z",
+ "_rev": "K0rtrsNuqDEgCtVQGty8qw",
+ "_type": "ResumeSkill",
+ "name": "Web Development",
+ "_id": "c426d52b-986b-44bc-bac7-59600447c91f",
+ "title": "Web Development",
+ "_updatedAt": "2022-12-15T11:31:26Z"
+ },
+ {
+ "_type": "ResumeSkill",
+ "name": "Appointments",
+ "_id": "a72e3560-19b0-4aaa-ad00-26520ea1855f",
+ "title": "Appointments",
+ "_updatedAt": "2022-12-15T11:31:47Z",
+ "_createdAt": "2022-12-15T11:31:47Z",
+ "_rev": "K0rtrsNuqDEgCtVQGtyJZ0"
+ },
+ {
+ "_createdAt": "2022-12-15T11:32:04Z",
+ "_rev": "3re4XGUaXqpLG8nUTEtMhv",
+ "_type": "ResumeSkill",
+ "name": "Payments",
+ "_id": "c96a0f8a-18b7-404f-9aef-997783743a4f",
+ "title": "Payments",
+ "_updatedAt": "2022-12-15T11:32:04Z"
+ }
+ ],
+ "detailDescription": "A digital resume for a talented Software Engineer that happens to be the CEO of the company. There is appointment booking and payment built into the site using Square. ",
+ "coverImage": {
+ "_type": "image",
+ "asset": {
+ "_ref": "image-119b02cc6b27f21c012ed2eb2e39e2e73c06ca2a-1002x1938-png",
+ "_type": "reference"
+ }
+ },
+ },
+ {
+ "title": "Local Bar Website",
+ "detailTitle": "The Drinkery",
+ "coverImage": {
+ "_type": "image",
+ "asset": {
+ "_ref": "image-4e3cd7013e2b7c002fae2f6b77f8dcce8641bbda-1520x1472-png",
+ "_type": "reference"
+ }
+ },
+ "name": "The Drinkery",
+ "skillsHighlighted": [
+ {
+ "_id": "59fe1d75-a35c-4a6c-8ecd-cf872791821b",
+ "title": "React.js",
+ "_updatedAt": "2022-11-30T18:51:44Z",
+ "_createdAt": "2022-11-30T18:51:44Z",
+ "_rev": "lhoXF04OR35CGYtnFgQAUI",
+ "_type": "ResumeSkill",
+ "name": "React.js"
+ },
+ {
+ "_createdAt": "2022-11-30T21:36:36Z",
+ "_rev": "lhoXF04OR35CGYtnFhKta7",
+ "_type": "ResumeSkill",
+ "name": "Create React App",
+ "_id": "86c7022f-fbbe-4ebd-ab82-368685ab26ac",
+ "title": "Create React App(CRA)",
+ "_updatedAt": "2022-11-30T21:36:36Z"
+ },
+ {
+ "_createdAt": "2022-11-30T19:05:00Z",
+ "_rev": "lhoXF04OR35CGYtnFgoshO",
+ "_type": "ResumeSkill",
+ "name": "GCP",
+ "_id": "7b467c08-7dfe-4c33-b1f5-bd925522c87e",
+ "title": "Google Cloud Platform(GCP)",
+ "_updatedAt": "2022-11-30T20:08:15Z"
+ },
+ {
+ "_createdAt": "2022-11-30T18:47:16Z",
+ "_rev": "lhoXF04OR35CGYtnFgMcCi",
+ "_type": "ResumeSkill",
+ "name": "Javascript",
+ "_id": "963f8182-5b33-4b56-9d92-112a02ebcf01",
+ "title": "Javascript",
+ "_updatedAt": "2022-11-30T18:47:16Z"
+ },
+ {
+ "_id": "390a755a-c417-49eb-93aa-e77a19838261",
+ "title": "Material-ui",
+ "_updatedAt": "2022-11-30T18:57:33Z",
+ "_createdAt": "2022-11-30T18:57:33Z",
+ "_rev": "lhoXF04OR35CGYtnFgRram",
+ "_type": "ResumeSkill",
+ "name": "Material-ui"
+ }
+ ],
+ "detailDescription": "The website for a local dive bar in Baltimore, MD. "
+ }
+ ],
+}
+
+export default webDevPortfolioSectionData
\ No newline at end of file
diff --git a/src/stories/data/WebDevPricingSectionData.ts b/src/stories/data/WebDevPricingSectionData.ts
new file mode 100644
index 00000000..ccc2d25f
--- /dev/null
+++ b/src/stories/data/WebDevPricingSectionData.ts
@@ -0,0 +1,75 @@
+import {
+ AnimatedAboutUsSectionType,
+ HeroAnimatedContentSectionType, HowItWorksSectionType, PortfolioSectionType, PricingSectionType,
+ ResumeBioSectionType, ResumePortfolioSectionType, WebDevAboutUsSectionType, WebDevTestimonialsSectionType
+} from "../../components/BlockContentTypes";
+import HeroAnimatedContentSection from "../../components/animated/HeroAnimatedContentSection";
+
+const WebDevPricingSectionData:PricingSectionType = {
+ "plans": [
+ {
+ "cost": "$80/month",
+ "learnMoreText": "Inquire",
+ "title": "Basic",
+ // "content": "6 hours of Development time for fixing minor bugs. ",
+ "contentTexts": [
+ "4 hours of development time\n",
+ "minor bug fixes",
+ "48 hr response time"
+ ],
+ "slug": {
+ "current": "basic-pricing-plan",
+ "_type": "slug"
+ },
+ "isEnabled": true,
+ // "_type": "WebDevPricingPlan",
+ // "_key": "1a15c4a89d2a",
+ "name": "Basic"
+ },
+ {
+ "title": "Silver",
+ "contentTexts": [
+ "6 hrs of development time",
+ "minor bug fixes",
+ "48 hr response time",
+ ""
+ ],
+ // "_type": "WebDevPricingPlan",
+ // "_key": "e860ab304d28",
+ "cost": "$110/month",
+ "learnMoreText": "Inquire",
+ "learnMoreLink": "Inquire",
+ "slug": {
+ "current": "silver-pricing-plan",
+ "_type": "slug"
+ },
+ "name": "Silver"
+ },
+ {
+ "cost": "$180/month",
+ "learnMoreText": "Inquire",
+ // "_key": "1b1fccfed8e8",
+ // "_type": "WebDevPricingPlan",
+ "title": "Gold",
+ "slug": {
+ "current": "gold-pricing-plan",
+ "_type": "slug"
+ },
+ "isEnabled": true,
+ "name": "Gold",
+ "contentTexts": [
+ "10 hrs of development time",
+ "features and bug fixes",
+ "24 hour response time"
+ ]
+ }
+ ],
+ "contentTitle": "Plans",
+ "contentTexts": [
+ "These plans can only be booked as add-ons to a web development project. For a complete list of pricing please go to the quote page. "
+ ],
+ "name": "thn pricing",
+ "contentPreTitle": "Maintenance",
+}
+
+export default WebDevPricingSectionData
\ No newline at end of file
diff --git a/src/stories/data/WebDevServicesSectionData.ts b/src/stories/data/WebDevServicesSectionData.ts
new file mode 100644
index 00000000..853a7d2e
--- /dev/null
+++ b/src/stories/data/WebDevServicesSectionData.ts
@@ -0,0 +1,70 @@
+import {
+ AnimatedAboutUsSectionType,
+ HeroAnimatedContentSectionType, PortfolioSectionType,
+ ResumeBioSectionType, WebDevAboutUsSectionType, WebDevStatsCounterSectionType
+} from "../../components/BlockContentTypes";
+import HeroAnimatedContentSection from "../../components/animated/HeroAnimatedContentSection";
+
+const webDevStatsSectionType:PortfolioSectionType = {
+ "servicesList": [
+ {
+ "contentText": "An application may or may not have a frontend User Interface and is usually connected to some type of database or datastore. Your application can use many of the latest technologies to display video or audio, play games, or notify customers via email or text of important reminders. I will guide you through every step of the process from application design to delivery. ",
+ "slug": {
+ "_type": "slug",
+ "current": "application-development"
+ },
+ "imageSrc": {
+ "_type": "image",
+ "asset": {
+ "_ref": "image-acd934d26df79ba2a7edfd119c2e7a52eea405c4-650x650-png",
+ "_type": "reference"
+ }
+ },
+ "contentTitle": "Application Development",
+ "name": "Application Development",
+ "learnMoreText": "Learn More",
+ },
+ {
+ "learnMoreText": "Learn More",
+ "contentText": "This is a custom site built web application with your specific requirements in mind. Your site can allow for booking, payment, customer analytics, admin content management and other custom features. Best of all your site will be best viewed with mobile in mind first. I will guide you through every step of the process from site design to delivery. ",
+ "name": "Web Development",
+ "imageSrc": {
+ "asset": {
+ "_ref": "image-bc72a5f5eddfe2f678b3707d338ea872ec1f5578-650x650-png",
+ "_type": "reference"
+ },
+ "_type": "image"
+ },
+ "slug": {
+ "_type": "slug",
+ "current": "web-development"
+ },
+ "contentTitle": "Web Development"
+ },
+ {
+ "learnMoreText": "Learn More",
+ "contentText": "Let me help you find tech solutions to your business problems. \n\nDo you need Point of Sale for your business? \nDo you want to remind or notify your customers? \nDo you want to improve your web presence? \nAre you considering a website or an application built? \nSocial Media Accounts and domain specific email address Setup.\nWhat should you do and not do with your business social media account?\nNot sure if you need a custom application or if there is already a solution built for you? ",
+ "contentTitle": "Tech Consulting",
+ "imageSrc": {
+ "_type": "image",
+ "asset": {
+ "_ref": "image-07e8d8e6546732a01d3eb895897f8e77599d2f8d-650x650-png",
+ "_type": "reference"
+ }
+ },
+ "slug": {
+ "current": "technology-consulting",
+ "_type": "slug"
+ },
+ "name": "Technology Consulting",
+ }
+ ],
+ "contentPreTitle": "Services",
+ "contentTexts": [
+ "You can learn about our services below. "
+ ],
+ "name": "Services web dev",
+ "contentTitle": "Our Services"
+}
+
+export default webDevStatsSectionType
\ No newline at end of file
diff --git a/src/stories/data/WebDevStatsSectionData.ts b/src/stories/data/WebDevStatsSectionData.ts
new file mode 100644
index 00000000..10e11b2c
--- /dev/null
+++ b/src/stories/data/WebDevStatsSectionData.ts
@@ -0,0 +1,39 @@
+import {
+ AnimatedAboutUsSectionType,
+ HeroAnimatedContentSectionType,
+ ResumeBioSectionType, WebDevAboutUsSectionType, WebDevStatsCounterSectionType
+} from "../../components/BlockContentTypes";
+import HeroAnimatedContentSection from "../../components/animated/HeroAnimatedContentSection";
+
+const webDevStatsSectionType:WebDevStatsCounterSectionType = {
+ title:"Web Dev section",
+ "stats": [
+ {
+ "statContent": "Success in getting customer",
+ "statValue": "99%",
+ "isEnabled": true,
+ "_type": "WebDevStatistic"
+ },
+ {
+ "_type": "WebDevStatistic",
+ "statContent": "Lines of code using Typescript, React, Node.js, ...",
+ "statValue": "25k",
+ "isEnabled": true
+ },
+ {
+ "statContent": "Clients love The Handsomest Nerd",
+ "statValue": "5",
+ "isEnabled": true,
+ "_type": "WebDevStatistic",
+ },
+ {
+ "statContent": "Reviewers Satisfaction Rating",
+ "statValue": "4.9",
+ "isEnabled": true,
+ "_type": "WebDevStatistic"
+ }
+ ],
+ "name": "Stats Counter",
+}
+
+export default webDevStatsSectionType
\ No newline at end of file
diff --git a/src/stories/data/WebDevTestimonialsSectionData.ts b/src/stories/data/WebDevTestimonialsSectionData.ts
new file mode 100644
index 00000000..beb522c8
--- /dev/null
+++ b/src/stories/data/WebDevTestimonialsSectionData.ts
@@ -0,0 +1,40 @@
+import {
+ AnimatedAboutUsSectionType,
+ HeroAnimatedContentSectionType,
+ ResumeBioSectionType, ResumePortfolioSectionType, WebDevAboutUsSectionType, WebDevTestimonialsSectionType
+} from "../../components/BlockContentTypes";
+import HeroAnimatedContentSection from "../../components/animated/HeroAnimatedContentSection";
+
+const WebDevTestimonialsSectionData:WebDevTestimonialsSectionType = {
+ "backgroundImage": {
+ "_type": "image",
+ "asset": {
+ "_ref": "image-944220a5c4f9e9cbbb6acffdf25a8c6e5966250d-7008x4672-jpg",
+ "_type": "reference"
+ }
+ },
+ "introduction": "Look at what our customers have to say about us. ",
+ "feedbackEntries": [
+ {
+ "customerTitle": "Founder",
+ "quoteSummary": "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer",
+ "companyName": "Furniti",
+ "quote": "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently",
+ "name": "The site is interactive and easier",
+ "customerName": "Jhon William"
+ },
+ {
+ "name": "The site is interactive and easier2",
+ "quoteSummary": "remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset ",
+ "quote": "It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. ",
+ "companyName": "Furniti",
+ "customerName": "Samantha William",
+ "customerTitle": "Founder"
+ }
+ ],
+ "name": "Testimonials",
+ "preTitle": "Testimonials",
+ "title": "Testimonials",
+}
+
+export default WebDevTestimonialsSectionData
\ No newline at end of file
diff --git a/src/stories/digital-resume/ResumeBio.stories.tsx b/src/stories/digital-resume/ResumeBio.stories.tsx
index c2832204..e0afb242 100644
--- a/src/stories/digital-resume/ResumeBio.stories.tsx
+++ b/src/stories/digital-resume/ResumeBio.stories.tsx
@@ -8,6 +8,7 @@ import CustomizedThemeProvider from "../../components/customized-theme-provider/
import DigitalResumeThemeData from "../data/DigitalResumeThemeData";
import calculatedHomePageResumeData from "../data/CalculatedHomePageData";
import getThemeFromSanity from "../../components/customized-theme-provider/getThemeFromSanity";
+import homePageData from "../data/HomePageData";
const meta: Meta = {
title:"Resume/Section/Resume Bio Section",
@@ -24,14 +25,24 @@ type Story = StoryObj;
* to learn how to use render functions.
*/
-const buttonText = "Button Text"
export const ResumeBioSectionComplete: Story = {
args :{
sectionData: ResumeBioSectionData,
- homePage: homePageResumeData
+ homePage: homePageResumeData,
},
- render: ({sectionData, homePage}) =>
+ render: ({sectionData, isHideEmail, isHideButtons, homePage}) =>
-
+
,
};
+
+export const ResumeBioSectionSearchResult: Story = {
+ args :{
+ sectionData: ResumeBioSectionData,
+ homePage: homePageResumeData,
+ },
+ render: ({sectionData, isHideEmail, isHideButtons, homePage}) =>
+
+
+ ,
+};
\ No newline at end of file
diff --git a/src/stories/web-dev-company/WebDevAboutUsSection.stories.tsx b/src/stories/web-dev-company/WebDevAboutUsSection.stories.tsx
new file mode 100644
index 00000000..da3a228d
--- /dev/null
+++ b/src/stories/web-dev-company/WebDevAboutUsSection.stories.tsx
@@ -0,0 +1,32 @@
+import type {Meta, StoryObj} from '@storybook/react';
+import React from "react";
+import {ThemeProvider} from "@mui/material/styles";
+import getThemeFromSanity from "../../components/customized-theme-provider/getThemeFromSanity";
+import WebDevThemeData from "../data/WebDevThemeData";
+import WebDevAboutUsSection from "../../components/templates/web-dev-site/WebDevAboutUsSection";
+import WebDevAboutUsSectionData from "../data/WebDevAboutUsSectionData";
+
+
+const meta: Meta = {
+ title:"Web Development/Section/Web Dev About Us Section",
+ component: WebDevAboutUsSection,
+};
+
+export default meta;
+type Story = StoryObj;
+
+
+/*
+ *π Render functions are a framework specific feature to allow you control on how the component renders.
+ * See https://storybook.js.org/docs/react/api/csf
+ * to learn how to use render functions.
+ */
+
+export const Primary: Story = {
+ args:{
+ sectionData: WebDevAboutUsSectionData,
+ },
+ render: ({sectionData}) =>
+
+ ,
+};
diff --git a/src/stories/web-dev-company/WebDevHeroSection.stories.tsx b/src/stories/web-dev-company/WebDevHeroSection.stories.tsx
index 3d69cfe1..d32ab0b3 100644
--- a/src/stories/web-dev-company/WebDevHeroSection.stories.tsx
+++ b/src/stories/web-dev-company/WebDevHeroSection.stories.tsx
@@ -17,7 +17,7 @@ import AnimatedHeroSectionData from "../data/AnimatedHeroSectionData";
const meta: Meta = {
- title:"Web Development/Web Dev Hero Section",
+ title:"Web Development/Section/Web Dev Hero Section",
component: WebDevHeroContentSection,
};
diff --git a/src/stories/web-dev-company/WebDevHowItWorksSection.stories.tsx b/src/stories/web-dev-company/WebDevHowItWorksSection.stories.tsx
new file mode 100644
index 00000000..19645455
--- /dev/null
+++ b/src/stories/web-dev-company/WebDevHowItWorksSection.stories.tsx
@@ -0,0 +1,38 @@
+import type {Meta, StoryObj} from '@storybook/react';
+import React from "react";
+import {ThemeProvider} from "@mui/material/styles";
+import getThemeFromSanity from "../../components/customized-theme-provider/getThemeFromSanity";
+import WebDevThemeData from "../data/WebDevThemeData";
+import WebDevAboutUsSection from "../../components/templates/web-dev-site/WebDevAboutUsSection";
+import WebDevAboutUsSectionData from "../data/WebDevAboutUsSectionData";
+import WebDevTestimonialsSection from "../../components/templates/web-dev-site/WebDevTestimonialsSection";
+import WebDevTestimonialsSectionData from "../data/WebDevTestimonialsSectionData";
+import WebDevPortfolioSection from "../../components/templates/web-dev-site/WebDevPortfolioSection";
+import WebDevPortfolioSectionData from "../data/WebDevPortfolioSectionData";
+import WebDevHowItWorksSection from "../../components/templates/web-dev-site/WebDevHowItWorksSection";
+import WebDevHowItWorksSectionData from "../data/WebDevHowItWorksSectionData";
+
+
+const meta: Meta = {
+ title:"Web Development/Section/Web Dev How it Works Section",
+ component: WebDevHowItWorksSection,
+};
+
+export default meta;
+type Story = StoryObj;
+
+
+/*
+ *π Render functions are a framework specific feature to allow you control on how the component renders.
+ * See https://storybook.js.org/docs/react/api/csf
+ * to learn how to use render functions.
+ */
+
+export const Primary: Story = {
+ args:{
+ sectionData: WebDevHowItWorksSectionData,
+ },
+ render: ({sectionData}) =>
+
+ ,
+};
diff --git a/src/stories/web-dev-company/WebDevOurWorksSection.stories.tsx b/src/stories/web-dev-company/WebDevOurWorksSection.stories.tsx
new file mode 100644
index 00000000..e3553896
--- /dev/null
+++ b/src/stories/web-dev-company/WebDevOurWorksSection.stories.tsx
@@ -0,0 +1,36 @@
+import type {Meta, StoryObj} from '@storybook/react';
+import React from "react";
+import {ThemeProvider} from "@mui/material/styles";
+import getThemeFromSanity from "../../components/customized-theme-provider/getThemeFromSanity";
+import WebDevThemeData from "../data/WebDevThemeData";
+import WebDevAboutUsSection from "../../components/templates/web-dev-site/WebDevAboutUsSection";
+import WebDevAboutUsSectionData from "../data/WebDevAboutUsSectionData";
+import WebDevTestimonialsSection from "../../components/templates/web-dev-site/WebDevTestimonialsSection";
+import WebDevTestimonialsSectionData from "../data/WebDevTestimonialsSectionData";
+import WebDevPortfolioSection from "../../components/templates/web-dev-site/WebDevPortfolioSection";
+import WebDevPortfolioSectionData from "../data/WebDevPortfolioSectionData";
+
+
+const meta: Meta = {
+ title:"Web Development/Section/Web Dev Portfolio Section",
+ component: WebDevPortfolioSection,
+};
+
+export default meta;
+type Story = StoryObj;
+
+
+/*
+ *π Render functions are a framework specific feature to allow you control on how the component renders.
+ * See https://storybook.js.org/docs/react/api/csf
+ * to learn how to use render functions.
+ */
+
+export const Primary: Story = {
+ args:{
+ sectionData: WebDevPortfolioSectionData,
+ },
+ render: ({sectionData}) =>
+
+ ,
+};
diff --git a/src/stories/web-dev-company/WebDevPricingSection.stories.tsx b/src/stories/web-dev-company/WebDevPricingSection.stories.tsx
new file mode 100644
index 00000000..ce2643a5
--- /dev/null
+++ b/src/stories/web-dev-company/WebDevPricingSection.stories.tsx
@@ -0,0 +1,40 @@
+import type {Meta, StoryObj} from '@storybook/react';
+import React from "react";
+import {ThemeProvider} from "@mui/material/styles";
+import getThemeFromSanity from "../../components/customized-theme-provider/getThemeFromSanity";
+import WebDevThemeData from "../data/WebDevThemeData";
+import WebDevAboutUsSection from "../../components/templates/web-dev-site/WebDevAboutUsSection";
+import WebDevAboutUsSectionData from "../data/WebDevAboutUsSectionData";
+import WebDevTestimonialsSection from "../../components/templates/web-dev-site/WebDevTestimonialsSection";
+import WebDevTestimonialsSectionData from "../data/WebDevTestimonialsSectionData";
+import WebDevPortfolioSection from "../../components/templates/web-dev-site/WebDevPortfolioSection";
+import WebDevPortfolioSectionData from "../data/WebDevPortfolioSectionData";
+import WebDevHowItWorksSection from "../../components/templates/web-dev-site/WebDevHowItWorksSection";
+import WebDevHowItWorksSectionData from "../data/WebDevHowItWorksSectionData";
+import WebDevPricingSection from "../../components/templates/web-dev-site/WebDevPricingSection";
+import WebDevPricingSectionData from "../data/WebDevPricingSectionData";
+
+
+const meta: Meta = {
+ title:"Web Development/Section/Web Dev Pricing Section",
+ component: WebDevPricingSection,
+};
+
+export default meta;
+type Story = StoryObj;
+
+
+/*
+ *π Render functions are a framework specific feature to allow you control on how the component renders.
+ * See https://storybook.js.org/docs/react/api/csf
+ * to learn how to use render functions.
+ */
+
+export const Primary: Story = {
+ args:{
+ sectionData: WebDevPricingSectionData,
+ },
+ render: ({sectionData}) =>
+
+ ,
+};
diff --git a/src/stories/web-dev-company/WebDevServicesSection.stories.tsx b/src/stories/web-dev-company/WebDevServicesSection.stories.tsx
new file mode 100644
index 00000000..64c857a6
--- /dev/null
+++ b/src/stories/web-dev-company/WebDevServicesSection.stories.tsx
@@ -0,0 +1,32 @@
+import type {Meta, StoryObj} from '@storybook/react';
+import React from "react";
+import {ThemeProvider} from "@mui/material/styles";
+import getThemeFromSanity from "../../components/customized-theme-provider/getThemeFromSanity";
+import WebDevThemeData from "../data/WebDevThemeData";
+import WebDevServicesSection from "../../components/templates/web-dev-site/WebDevServicesSection";
+import WebDevServicesSectionData from "../data/WebDevServicesSectionData";
+
+
+const meta: Meta = {
+ title: "Web Development/Section/Web Dev Services Section",
+ component: WebDevServicesSection,
+};
+
+export default meta;
+type Story = StoryObj;
+
+
+/*
+ *π Render functions are a framework specific feature to allow you control on how the component renders.
+ * See https://storybook.js.org/docs/react/api/csf
+ * to learn how to use render functions.
+ */
+
+export const Primary: Story = {
+ args: {
+ sectionData: WebDevServicesSectionData,
+ },
+ render: ({sectionData}) =>
+
+ ,
+};
diff --git a/src/stories/web-dev-company/WebDevStatsSection.stories.tsx b/src/stories/web-dev-company/WebDevStatsSection.stories.tsx
new file mode 100644
index 00000000..051168f6
--- /dev/null
+++ b/src/stories/web-dev-company/WebDevStatsSection.stories.tsx
@@ -0,0 +1,34 @@
+import type {Meta, StoryObj} from '@storybook/react';
+import React from "react";
+import {ThemeProvider} from "@mui/material/styles";
+import getThemeFromSanity from "../../components/customized-theme-provider/getThemeFromSanity";
+import WebDevThemeData from "../data/WebDevThemeData";
+import WebDevAboutUsSection from "../../components/templates/web-dev-site/WebDevAboutUsSection";
+import WebDevAboutUsSectionData from "../data/WebDevAboutUsSectionData";
+import WebDevStatsCounterSection from "../../components/templates/web-dev-site/WebDevStatsCounterSection";
+import WebDevStatsSectionData from "../data/WebDevStatsSectionData";
+
+
+const meta: Meta = {
+ title:"Web Development/Section/Web Dev Stats Section",
+ component: WebDevStatsCounterSection,
+};
+
+export default meta;
+type Story = StoryObj;
+
+
+/*
+ *π Render functions are a framework specific feature to allow you control on how the component renders.
+ * See https://storybook.js.org/docs/react/api/csf
+ * to learn how to use render functions.
+ */
+
+export const Primary: Story = {
+ args:{
+ sectionData: WebDevStatsSectionData,
+ },
+ render: ({sectionData}) =>
+
+ ,
+};
diff --git a/src/stories/web-dev-company/WebDevTestimonialsSection.stories.tsx b/src/stories/web-dev-company/WebDevTestimonialsSection.stories.tsx
new file mode 100644
index 00000000..a036efdc
--- /dev/null
+++ b/src/stories/web-dev-company/WebDevTestimonialsSection.stories.tsx
@@ -0,0 +1,32 @@
+import type {Meta, StoryObj} from '@storybook/react';
+import React from "react";
+import {ThemeProvider} from "@mui/material/styles";
+import getThemeFromSanity from "../../components/customized-theme-provider/getThemeFromSanity";
+import WebDevThemeData from "../data/WebDevThemeData";
+import WebDevTestimonialsSection from "../../components/templates/web-dev-site/WebDevTestimonialsSection";
+import WebDevTestimonialsSectionData from "../data/WebDevTestimonialsSectionData";
+
+
+const meta: Meta = {
+ title:"Web Development/Section/Web Dev Testimonials Section",
+ component: WebDevTestimonialsSection,
+};
+
+export default meta;
+type Story = StoryObj;
+
+
+/*
+ *π Render functions are a framework specific feature to allow you control on how the component renders.
+ * See https://storybook.js.org/docs/react/api/csf
+ * to learn how to use render functions.
+ */
+
+export const Primary: Story = {
+ args:{
+ sectionData: WebDevTestimonialsSectionData,
+ },
+ render: ({sectionData}) =>
+
+ ,
+};
diff --git a/src/utils/dateUtils.ts b/src/utils/dateUtils.ts
index 3b05acd1..853e681d 100644
--- a/src/utils/dateUtils.ts
+++ b/src/utils/dateUtils.ts
@@ -8,4 +8,68 @@ const MonthYear = (date?: Date | string | undefined) =>{
return new Date(date).toLocaleDateString('en-us', { month:"short", year:"numeric"})
}
-export default {YearMonth, MonthYear}
\ No newline at end of file
+const getLengthOfTime = (date1: Date, date2: Date) =>{
+ /*
+ * calcDate() : Calculates the difference between two dates
+ * @date1 : "First Date in the format MM-DD-YYYY"
+ * @date2 : "Second Date in the format MM-DD-YYYY"
+ * return : Array
+ */
+ //new date instance
+ const dt_date1 = new Date(date1);
+ const dt_date2 = new Date(date2);
+
+ //Get the Timestamp
+ const date1_time_stamp = dt_date1.getTime();
+ const date2_time_stamp = dt_date2.getTime();
+
+ let calc;
+
+ //Check which timestamp is greater
+ if (date1_time_stamp > date2_time_stamp) {
+ calc = new Date(date1_time_stamp - date2_time_stamp);
+ } else {
+ calc = new Date(date2_time_stamp - date1_time_stamp);
+ }
+ //Retrieve the date, month and year
+ const calcFormatTmp = calc.getDate() + '-' + (calc.getMonth() + 1) + '-' + calc.getFullYear();
+ //Convert to an array and store
+ const calcFormat = calcFormatTmp.split("-");
+ //Subtract each member of our array from the default date
+ const days_passed = Number(Math.abs(parseInt(calcFormat[0])) - 1);
+ let months_passed = Number(Math.abs(parseInt(calcFormat[1])) - 1);
+ let years_passed = Number(Math.abs(parseInt(calcFormat[2])) - 1970);
+
+ if(days_passed > 15){
+ months_passed+=1;
+ if(months_passed >= 13) {
+ years_passed += 1;
+ months_passed -= 1;
+ }
+ }
+
+ //Set up custom text
+ const yrsTxt = ["year", "years"];
+ const mnthsTxt = ["month", "months"];
+ // const daysTxt = ["day", "days"];
+
+ //Convert to days and sum together
+ const total_days = (years_passed * 365) + (months_passed * 30.417) + days_passed;
+
+ //display result with custom text
+ const result = ((years_passed === 1) ? years_passed + ' ' + yrsTxt[0] + ' ' : (years_passed > 1) ?
+ years_passed + ' ' + yrsTxt[1] + ' ' : '') +
+ ((months_passed === 1) ? months_passed + ' ' + mnthsTxt[0] : (months_passed > 1) ?
+ months_passed + ' ' + mnthsTxt[1] + ' ' : '')
+ // ((days_passed == 1) ? days_passed + ' ' + daysTxt[0] : (days_passed > 1) ?
+ // days_passed + ' ' + daysTxt[1] : '')
+ ;
+
+ //return the result
+ return {
+ "total_days": Math.round(total_days),
+ "result": result.trim()
+ }
+}
+
+export default {YearMonth, MonthYear, getLengthOfTime}
\ No newline at end of file
diff --git a/storybook-static/black-coffee.png b/storybook-static/black-coffee.png
deleted file mode 100644
index 38601628..00000000
Binary files a/storybook-static/black-coffee.png and /dev/null differ
diff --git a/storybook-static/blue-lemon.png b/storybook-static/blue-lemon.png
deleted file mode 100644
index c61c9c29..00000000
Binary files a/storybook-static/blue-lemon.png and /dev/null differ
diff --git a/storybook-static/delicious-cherry.png b/storybook-static/delicious-cherry.png
deleted file mode 100644
index 6f177c58..00000000
Binary files a/storybook-static/delicious-cherry.png and /dev/null differ
diff --git a/storybook-static/favicon.ico b/storybook-static/favicon.ico
deleted file mode 100644
index 6cfadf26..00000000
Binary files a/storybook-static/favicon.ico and /dev/null differ
diff --git a/storybook-static/good-present.png b/storybook-static/good-present.png
deleted file mode 100644
index 71da26df..00000000
Binary files a/storybook-static/good-present.png and /dev/null differ
diff --git a/storybook-static/ice-cream.png b/storybook-static/ice-cream.png
deleted file mode 100644
index badfe1ab..00000000
Binary files a/storybook-static/ice-cream.png and /dev/null differ
diff --git a/storybook-static/logo192.png b/storybook-static/logo192.png
deleted file mode 100644
index fc44b0a3..00000000
Binary files a/storybook-static/logo192.png and /dev/null differ
diff --git a/storybook-static/logo512.png b/storybook-static/logo512.png
deleted file mode 100644
index a4e47a65..00000000
Binary files a/storybook-static/logo512.png and /dev/null differ
diff --git a/storybook-static/manifest.json b/storybook-static/manifest.json
deleted file mode 100644
index aacf61a1..00000000
--- a/storybook-static/manifest.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "short_name": "Transformative Healing & Wellness",
- "name": "Transformative Healing & Wellness",
- "icons": [
- {
- "src": "favicon.ico",
- "sizes": "64x64 32x32 24x24 16x16",
- "type": "image/x-icon"
- }
- ],
- "start_url": "../transformative-healing-and-wellness/coming-soon",
- "display": "standalone",
- "theme_color": "#000000",
- "background_color": "#ffffff"
-}
diff --git a/storybook-static/project.json b/storybook-static/project.json
deleted file mode 100644
index 1835e5c7..00000000
--- a/storybook-static/project.json
+++ /dev/null
@@ -1 +0,0 @@
-{"generatedAt":1695833145758,"builder":{"name":"webpack4"},"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"metaFramework":{"name":"CRA","packageName":"react-scripts","version":"5.0.1"},"packageManager":{"type":"npm","version":"8.19.3"},"storybookVersion":"6.5.12","language":"typescript","storybookPackages":{"@storybook/addon-docs":{"version":"6.5.12"},"@storybook/addon-actions":{"version":"6.5.12"},"@storybook/node-logger":{"version":"6.5.12"},"@storybook/react":{"version":"6.5.12"}},"framework":{"name":"react"},"addons":{"@storybook/addon-links":{"version":"6.5.12"},"@storybook/addon-essentials":{"version":"6.5.12"},"@storybook/preset-create-react-app":{"version":"3.2.0"},"storybook-addon-material-ui":{"version":"0.9.0-alpha.24"}}}
diff --git a/storybook-static/robots.txt b/storybook-static/robots.txt
deleted file mode 100644
index 4059d5b5..00000000
--- a/storybook-static/robots.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-# https://www.robotstxt.org/robotstxt.html
-User-agent: *
-Disallow:
-
-Sitemap: https://transformHW.org/sitemap.txt
diff --git a/storybook-static/sanity.svg b/storybook-static/sanity.svg
deleted file mode 100644
index cfb99f63..00000000
--- a/storybook-static/sanity.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/storybook-static/sitemap.txt b/storybook-static/sitemap.txt
deleted file mode 100644
index d83bdb0d..00000000
--- a/storybook-static/sitemap.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-https://transformhw.org/transformative-healing-and-wellness/coming-soon
-https://transformhw.org/
\ No newline at end of file
diff --git a/storybook-static/sweet-fruit.png b/storybook-static/sweet-fruit.png
deleted file mode 100644
index 174ec212..00000000
Binary files a/storybook-static/sweet-fruit.png and /dev/null differ