| { | { | ||||
| "name": "frontend", | "name": "frontend", | ||||
| "version": "1.1.18", | |||||
| "version": "1.2.1", | |||||
| "lockfileVersion": 2, | "lockfileVersion": 2, | ||||
| "requires": true, | "requires": true, | ||||
| "packages": { | "packages": { | ||||
| "": { | "": { | ||||
| "name": "frontend", | "name": "frontend", | ||||
| "version": "1.1.18", | |||||
| "version": "1.2.1", | |||||
| "dependencies": { | "dependencies": { | ||||
| "@faceless-ui/slider": "^1.1.14", | "@faceless-ui/slider": "^1.1.14", | ||||
| "@faceless-ui/window-info": "^2.1.1", | "@faceless-ui/window-info": "^2.1.1", | ||||
| "react-helmet-async": "^1.3.0", | "react-helmet-async": "^1.3.0", | ||||
| "react-intersection-observer": "^9.4.1", | "react-intersection-observer": "^9.4.1", | ||||
| "react-mailchimp-subscribe": "^2.1.3", | "react-mailchimp-subscribe": "^2.1.3", | ||||
| "react-markdown": "^8.0.0", | |||||
| "react-markdown": "^8.0.5", | |||||
| "react-router-dom": "^6.2.1", | "react-router-dom": "^6.2.1", | ||||
| "react-scripts": "5.0.0", | "react-scripts": "5.0.0", | ||||
| "react-useanimations": "^2.10.0", | "react-useanimations": "^2.10.0", | ||||
| "rehype-highlight": "^6.0.0", | |||||
| "styled-components": "^5.3.5", | "styled-components": "^5.3.5", | ||||
| "tailwind.macro": "^0.5.10", | "tailwind.macro": "^0.5.10", | ||||
| "web-vitals": "^2.1.3", | "web-vitals": "^2.1.3", | ||||
| "reusify": "^1.0.4" | "reusify": "^1.0.4" | ||||
| } | } | ||||
| }, | }, | ||||
| "node_modules/fault": { | |||||
| "version": "2.0.1", | |||||
| "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", | |||||
| "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", | |||||
| "dependencies": { | |||||
| "format": "^0.2.0" | |||||
| }, | |||||
| "funding": { | |||||
| "type": "github", | |||||
| "url": "https://github.com/sponsors/wooorm" | |||||
| } | |||||
| }, | |||||
| "node_modules/faye-websocket": { | "node_modules/faye-websocket": { | ||||
| "version": "0.11.4", | "version": "0.11.4", | ||||
| "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", | "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", | ||||
| "node": ">= 6" | "node": ">= 6" | ||||
| } | } | ||||
| }, | }, | ||||
| "node_modules/format": { | |||||
| "version": "0.2.2", | |||||
| "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", | |||||
| "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", | |||||
| "engines": { | |||||
| "node": ">=0.4.x" | |||||
| } | |||||
| }, | |||||
| "node_modules/formik": { | "node_modules/formik": { | ||||
| "version": "2.2.9", | "version": "2.2.9", | ||||
| "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", | "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", | ||||
| "url": "https://github.com/sponsors/ljharb" | "url": "https://github.com/sponsors/ljharb" | ||||
| } | } | ||||
| }, | }, | ||||
| "node_modules/hast-util-is-element": { | |||||
| "version": "2.1.3", | |||||
| "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz", | |||||
| "integrity": "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==", | |||||
| "dependencies": { | |||||
| "@types/hast": "^2.0.0", | |||||
| "@types/unist": "^2.0.0" | |||||
| }, | |||||
| "funding": { | |||||
| "type": "opencollective", | |||||
| "url": "https://opencollective.com/unified" | |||||
| } | |||||
| }, | |||||
| "node_modules/hast-util-to-text": { | |||||
| "version": "3.1.2", | |||||
| "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz", | |||||
| "integrity": "sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==", | |||||
| "dependencies": { | |||||
| "@types/hast": "^2.0.0", | |||||
| "@types/unist": "^2.0.0", | |||||
| "hast-util-is-element": "^2.0.0", | |||||
| "unist-util-find-after": "^4.0.0" | |||||
| }, | |||||
| "funding": { | |||||
| "type": "opencollective", | |||||
| "url": "https://opencollective.com/unified" | |||||
| } | |||||
| }, | |||||
| "node_modules/hast-util-whitespace": { | "node_modules/hast-util-whitespace": { | ||||
| "version": "2.0.0", | "version": "2.0.0", | ||||
| "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", | "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", | ||||
| "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", | "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", | ||||
| "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" | "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" | ||||
| }, | }, | ||||
| "node_modules/highlight.js": { | |||||
| "version": "11.7.0", | |||||
| "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.7.0.tgz", | |||||
| "integrity": "sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==", | |||||
| "engines": { | |||||
| "node": ">=12.0.0" | |||||
| } | |||||
| }, | |||||
| "node_modules/history": { | "node_modules/history": { | ||||
| "version": "5.2.0", | "version": "5.2.0", | ||||
| "resolved": "https://registry.npmjs.org/history/-/history-5.2.0.tgz", | "resolved": "https://registry.npmjs.org/history/-/history-5.2.0.tgz", | ||||
| "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", | ||||
| "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" | ||||
| }, | }, | ||||
| "node_modules/lowlight": { | |||||
| "version": "2.8.1", | |||||
| "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-2.8.1.tgz", | |||||
| "integrity": "sha512-HCaGL61RKc1MYzEYn3rFoGkK0yslzCVDFJEanR19rc2L0mb8i58XM55jSRbzp9jcQrFzschPlwooC0vuNitk8Q==", | |||||
| "dependencies": { | |||||
| "@types/hast": "^2.0.0", | |||||
| "fault": "^2.0.0", | |||||
| "highlight.js": "~11.7.0" | |||||
| }, | |||||
| "funding": { | |||||
| "type": "github", | |||||
| "url": "https://github.com/sponsors/wooorm" | |||||
| } | |||||
| }, | |||||
| "node_modules/lru-cache": { | "node_modules/lru-cache": { | ||||
| "version": "6.0.0", | "version": "6.0.0", | ||||
| "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", | ||||
| } | } | ||||
| }, | }, | ||||
| "node_modules/react-markdown": { | "node_modules/react-markdown": { | ||||
| "version": "8.0.0", | |||||
| "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.0.tgz", | |||||
| "integrity": "sha512-qbrWpLny6Ef2xHqnYqtot948LXP+4FtC+MWIuaN1kvSnowM+r1qEeEHpSaU0TDBOisQuj+Qe6eFY15cNL3gLAw==", | |||||
| "version": "8.0.5", | |||||
| "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.5.tgz", | |||||
| "integrity": "sha512-jGJolWWmOWAvzf+xMdB9zwStViODyyFQhNB/bwCerbBKmrTmgmA599CGiOlP58OId1IMoIRsA8UdI1Lod4zb5A==", | |||||
| "dependencies": { | "dependencies": { | ||||
| "@types/hast": "^2.0.0", | "@types/hast": "^2.0.0", | ||||
| "@types/prop-types": "^15.0.0", | |||||
| "@types/unist": "^2.0.0", | "@types/unist": "^2.0.0", | ||||
| "comma-separated-tokens": "^2.0.0", | "comma-separated-tokens": "^2.0.0", | ||||
| "hast-util-whitespace": "^2.0.0", | "hast-util-whitespace": "^2.0.0", | ||||
| "prop-types": "^15.0.0", | "prop-types": "^15.0.0", | ||||
| "property-information": "^6.0.0", | "property-information": "^6.0.0", | ||||
| "react-is": "^17.0.0", | |||||
| "react-is": "^18.0.0", | |||||
| "remark-parse": "^10.0.0", | "remark-parse": "^10.0.0", | ||||
| "remark-rehype": "^10.0.0", | "remark-rehype": "^10.0.0", | ||||
| "space-separated-tokens": "^2.0.0", | "space-separated-tokens": "^2.0.0", | ||||
| "style-to-object": "^0.3.0", | |||||
| "style-to-object": "^0.4.0", | |||||
| "unified": "^10.0.0", | "unified": "^10.0.0", | ||||
| "unist-util-visit": "^4.0.0", | "unist-util-visit": "^4.0.0", | ||||
| "vfile": "^5.0.0" | "vfile": "^5.0.0" | ||||
| } | } | ||||
| }, | }, | ||||
| "node_modules/react-markdown/node_modules/react-is": { | "node_modules/react-markdown/node_modules/react-is": { | ||||
| "version": "17.0.2", | |||||
| "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", | |||||
| "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" | |||||
| "version": "18.2.0", | |||||
| "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", | |||||
| "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" | |||||
| }, | }, | ||||
| "node_modules/react-refresh": { | "node_modules/react-refresh": { | ||||
| "version": "0.11.0", | "version": "0.11.0", | ||||
| "jsesc": "bin/jsesc" | "jsesc": "bin/jsesc" | ||||
| } | } | ||||
| }, | }, | ||||
| "node_modules/rehype-highlight": { | |||||
| "version": "6.0.0", | |||||
| "resolved": "https://registry.npmjs.org/rehype-highlight/-/rehype-highlight-6.0.0.tgz", | |||||
| "integrity": "sha512-q7UtlFicLhetp7K48ZgZiJgchYscMma7XjzX7t23bqEJF8m6/s+viXQEe4oHjrATTIZpX7RG8CKD7BlNZoh9gw==", | |||||
| "dependencies": { | |||||
| "@types/hast": "^2.0.0", | |||||
| "hast-util-to-text": "^3.0.0", | |||||
| "lowlight": "^2.0.0", | |||||
| "unified": "^10.0.0", | |||||
| "unist-util-visit": "^4.0.0" | |||||
| }, | |||||
| "funding": { | |||||
| "type": "opencollective", | |||||
| "url": "https://opencollective.com/unified" | |||||
| } | |||||
| }, | |||||
| "node_modules/relateurl": { | "node_modules/relateurl": { | ||||
| "version": "0.2.7", | "version": "0.2.7", | ||||
| "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", | "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", | ||||
| } | } | ||||
| }, | }, | ||||
| "node_modules/style-to-object": { | "node_modules/style-to-object": { | ||||
| "version": "0.3.0", | |||||
| "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", | |||||
| "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", | |||||
| "version": "0.4.1", | |||||
| "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz", | |||||
| "integrity": "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==", | |||||
| "dependencies": { | "dependencies": { | ||||
| "inline-style-parser": "0.1.1" | "inline-style-parser": "0.1.1" | ||||
| } | } | ||||
| "url": "https://opencollective.com/unified" | "url": "https://opencollective.com/unified" | ||||
| } | } | ||||
| }, | }, | ||||
| "node_modules/unist-util-find-after": { | |||||
| "version": "4.0.1", | |||||
| "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz", | |||||
| "integrity": "sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==", | |||||
| "dependencies": { | |||||
| "@types/unist": "^2.0.0", | |||||
| "unist-util-is": "^5.0.0" | |||||
| }, | |||||
| "funding": { | |||||
| "type": "opencollective", | |||||
| "url": "https://opencollective.com/unified" | |||||
| } | |||||
| }, | |||||
| "node_modules/unist-util-generated": { | "node_modules/unist-util-generated": { | ||||
| "version": "2.0.0", | "version": "2.0.0", | ||||
| "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", | "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", | ||||
| "reusify": "^1.0.4" | "reusify": "^1.0.4" | ||||
| } | } | ||||
| }, | }, | ||||
| "fault": { | |||||
| "version": "2.0.1", | |||||
| "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", | |||||
| "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", | |||||
| "requires": { | |||||
| "format": "^0.2.0" | |||||
| } | |||||
| }, | |||||
| "faye-websocket": { | "faye-websocket": { | ||||
| "version": "0.11.4", | "version": "0.11.4", | ||||
| "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", | "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", | ||||
| "mime-types": "^2.1.12" | "mime-types": "^2.1.12" | ||||
| } | } | ||||
| }, | }, | ||||
| "format": { | |||||
| "version": "0.2.2", | |||||
| "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", | |||||
| "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==" | |||||
| }, | |||||
| "formik": { | "formik": { | ||||
| "version": "2.2.9", | "version": "2.2.9", | ||||
| "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", | "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", | ||||
| "has-symbols": "^1.0.2" | "has-symbols": "^1.0.2" | ||||
| } | } | ||||
| }, | }, | ||||
| "hast-util-is-element": { | |||||
| "version": "2.1.3", | |||||
| "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz", | |||||
| "integrity": "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==", | |||||
| "requires": { | |||||
| "@types/hast": "^2.0.0", | |||||
| "@types/unist": "^2.0.0" | |||||
| } | |||||
| }, | |||||
| "hast-util-to-text": { | |||||
| "version": "3.1.2", | |||||
| "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz", | |||||
| "integrity": "sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==", | |||||
| "requires": { | |||||
| "@types/hast": "^2.0.0", | |||||
| "@types/unist": "^2.0.0", | |||||
| "hast-util-is-element": "^2.0.0", | |||||
| "unist-util-find-after": "^4.0.0" | |||||
| } | |||||
| }, | |||||
| "hast-util-whitespace": { | "hast-util-whitespace": { | ||||
| "version": "2.0.0", | "version": "2.0.0", | ||||
| "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", | "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", | ||||
| "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", | "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", | ||||
| "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" | "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" | ||||
| }, | }, | ||||
| "highlight.js": { | |||||
| "version": "11.7.0", | |||||
| "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.7.0.tgz", | |||||
| "integrity": "sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==" | |||||
| }, | |||||
| "history": { | "history": { | ||||
| "version": "5.2.0", | "version": "5.2.0", | ||||
| "resolved": "https://registry.npmjs.org/history/-/history-5.2.0.tgz", | "resolved": "https://registry.npmjs.org/history/-/history-5.2.0.tgz", | ||||
| } | } | ||||
| } | } | ||||
| }, | }, | ||||
| "lowlight": { | |||||
| "version": "2.8.1", | |||||
| "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-2.8.1.tgz", | |||||
| "integrity": "sha512-HCaGL61RKc1MYzEYn3rFoGkK0yslzCVDFJEanR19rc2L0mb8i58XM55jSRbzp9jcQrFzschPlwooC0vuNitk8Q==", | |||||
| "requires": { | |||||
| "@types/hast": "^2.0.0", | |||||
| "fault": "^2.0.0", | |||||
| "highlight.js": "~11.7.0" | |||||
| } | |||||
| }, | |||||
| "lru-cache": { | "lru-cache": { | ||||
| "version": "6.0.0", | "version": "6.0.0", | ||||
| "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", | ||||
| } | } | ||||
| }, | }, | ||||
| "react-markdown": { | "react-markdown": { | ||||
| "version": "8.0.0", | |||||
| "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.0.tgz", | |||||
| "integrity": "sha512-qbrWpLny6Ef2xHqnYqtot948LXP+4FtC+MWIuaN1kvSnowM+r1qEeEHpSaU0TDBOisQuj+Qe6eFY15cNL3gLAw==", | |||||
| "version": "8.0.5", | |||||
| "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.5.tgz", | |||||
| "integrity": "sha512-jGJolWWmOWAvzf+xMdB9zwStViODyyFQhNB/bwCerbBKmrTmgmA599CGiOlP58OId1IMoIRsA8UdI1Lod4zb5A==", | |||||
| "requires": { | "requires": { | ||||
| "@types/hast": "^2.0.0", | "@types/hast": "^2.0.0", | ||||
| "@types/prop-types": "^15.0.0", | |||||
| "@types/unist": "^2.0.0", | "@types/unist": "^2.0.0", | ||||
| "comma-separated-tokens": "^2.0.0", | "comma-separated-tokens": "^2.0.0", | ||||
| "hast-util-whitespace": "^2.0.0", | "hast-util-whitespace": "^2.0.0", | ||||
| "prop-types": "^15.0.0", | "prop-types": "^15.0.0", | ||||
| "property-information": "^6.0.0", | "property-information": "^6.0.0", | ||||
| "react-is": "^17.0.0", | |||||
| "react-is": "^18.0.0", | |||||
| "remark-parse": "^10.0.0", | "remark-parse": "^10.0.0", | ||||
| "remark-rehype": "^10.0.0", | "remark-rehype": "^10.0.0", | ||||
| "space-separated-tokens": "^2.0.0", | "space-separated-tokens": "^2.0.0", | ||||
| "style-to-object": "^0.3.0", | |||||
| "style-to-object": "^0.4.0", | |||||
| "unified": "^10.0.0", | "unified": "^10.0.0", | ||||
| "unist-util-visit": "^4.0.0", | "unist-util-visit": "^4.0.0", | ||||
| "vfile": "^5.0.0" | "vfile": "^5.0.0" | ||||
| }, | }, | ||||
| "dependencies": { | "dependencies": { | ||||
| "react-is": { | "react-is": { | ||||
| "version": "17.0.2", | |||||
| "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", | |||||
| "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" | |||||
| "version": "18.2.0", | |||||
| "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", | |||||
| "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" | |||||
| } | } | ||||
| } | } | ||||
| }, | }, | ||||
| } | } | ||||
| } | } | ||||
| }, | }, | ||||
| "rehype-highlight": { | |||||
| "version": "6.0.0", | |||||
| "resolved": "https://registry.npmjs.org/rehype-highlight/-/rehype-highlight-6.0.0.tgz", | |||||
| "integrity": "sha512-q7UtlFicLhetp7K48ZgZiJgchYscMma7XjzX7t23bqEJF8m6/s+viXQEe4oHjrATTIZpX7RG8CKD7BlNZoh9gw==", | |||||
| "requires": { | |||||
| "@types/hast": "^2.0.0", | |||||
| "hast-util-to-text": "^3.0.0", | |||||
| "lowlight": "^2.0.0", | |||||
| "unified": "^10.0.0", | |||||
| "unist-util-visit": "^4.0.0" | |||||
| } | |||||
| }, | |||||
| "relateurl": { | "relateurl": { | ||||
| "version": "0.2.7", | "version": "0.2.7", | ||||
| "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", | "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", | ||||
| "requires": {} | "requires": {} | ||||
| }, | }, | ||||
| "style-to-object": { | "style-to-object": { | ||||
| "version": "0.3.0", | |||||
| "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", | |||||
| "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", | |||||
| "version": "0.4.1", | |||||
| "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz", | |||||
| "integrity": "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==", | |||||
| "requires": { | "requires": { | ||||
| "inline-style-parser": "0.1.1" | "inline-style-parser": "0.1.1" | ||||
| } | } | ||||
| "@types/unist": "^2.0.0" | "@types/unist": "^2.0.0" | ||||
| } | } | ||||
| }, | }, | ||||
| "unist-util-find-after": { | |||||
| "version": "4.0.1", | |||||
| "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz", | |||||
| "integrity": "sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==", | |||||
| "requires": { | |||||
| "@types/unist": "^2.0.0", | |||||
| "unist-util-is": "^5.0.0" | |||||
| } | |||||
| }, | |||||
| "unist-util-generated": { | "unist-util-generated": { | ||||
| "version": "2.0.0", | "version": "2.0.0", | ||||
| "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", | "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", |
| "react-helmet-async": "^1.3.0", | "react-helmet-async": "^1.3.0", | ||||
| "react-intersection-observer": "^9.4.1", | "react-intersection-observer": "^9.4.1", | ||||
| "react-mailchimp-subscribe": "^2.1.3", | "react-mailchimp-subscribe": "^2.1.3", | ||||
| "react-markdown": "^8.0.0", | |||||
| "react-markdown": "^8.0.5", | |||||
| "react-router-dom": "^6.2.1", | "react-router-dom": "^6.2.1", | ||||
| "react-scripts": "5.0.0", | "react-scripts": "5.0.0", | ||||
| "react-useanimations": "^2.10.0", | "react-useanimations": "^2.10.0", | ||||
| "rehype-highlight": "^6.0.0", | |||||
| "styled-components": "^5.3.5", | "styled-components": "^5.3.5", | ||||
| "tailwind.macro": "^0.5.10", | "tailwind.macro": "^0.5.10", | ||||
| "web-vitals": "^2.1.3", | "web-vitals": "^2.1.3", |
| const DiligentMinds = lazy(() => import('./pages/DiligentMinds')); | const DiligentMinds = lazy(() => import('./pages/DiligentMinds')); | ||||
| const EventsTimeline = lazy(() => import('./pages/EventsTimeline')); | const EventsTimeline = lazy(() => import('./pages/EventsTimeline')); | ||||
| const About = lazy(() => import('./pages/About')); | const About = lazy(() => import('./pages/About')); | ||||
| const Blog = lazy(() => import('./pages/Blog')); | |||||
| const BlogPost = lazy(() => import('./components/BlogPost')); | const BlogPost = lazy(() => import('./components/BlogPost')); | ||||
| const ProcessPage = lazy(() => import('./pages/ProcessPage')); | const ProcessPage = lazy(() => import('./pages/ProcessPage')); | ||||
| const ContactPage = lazy(() => import('./pages/ContactPage')); | const ContactPage = lazy(() => import('./pages/ContactPage')); | ||||
| const PrivacyPolicy = lazy(() => import('./pages/PrivacyPolicy')); | const PrivacyPolicy = lazy(() => import('./pages/PrivacyPolicy')); | ||||
| const WorkWithUs = lazy(() => import('./pages/WorkWithUs')); | const WorkWithUs = lazy(() => import('./pages/WorkWithUs')); | ||||
| import NavigationNew from './components/shared/NavigationNew'; | import NavigationNew from './components/shared/NavigationNew'; | ||||
| import ArticlePage from './pages/ArticlePage'; | |||||
| // Navigation Links | // Navigation Links | ||||
| const links = routes.filter(item => item.nav === true); | const links = routes.filter(item => item.nav === true); | ||||
| <Route exact path="/diligentminds" element={<DiligentMinds />}/> | <Route exact path="/diligentminds" element={<DiligentMinds />}/> | ||||
| <Route exact path="/eventstimeline" element={<EventsTimeline />}/> | <Route exact path="/eventstimeline" element={<EventsTimeline />}/> | ||||
| <Route exact path="/about" element={<About />}/> | <Route exact path="/about" element={<About />}/> | ||||
| <Route exact path="/blog" element={<Blog />}/> | |||||
| <Route exact path="/articles/:slug" element={<ArticlePage />} /> | |||||
| <Route exact path="/contact" element={<ContactPage />}/> | <Route exact path="/contact" element={<ContactPage />}/> | ||||
| <Route exact path="/casestudybi" element={<CaseStudyBI />}/> | <Route exact path="/casestudybi" element={<CaseStudyBI />}/> | ||||
| <Route exact path="/casestudystrata" element={<CaseStudyStrata />}/> | <Route exact path="/casestudystrata" element={<CaseStudyStrata />}/> |
| <svg width="15" height="20" viewBox="0 0 15 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |||||
| <path d="M14.7333 17.959C14.7333 19.6146 12.8366 20.5532 11.5203 19.5491L1.08484 11.589C0.035417 10.7885 0.0355058 9.20887 1.08502 8.40849L11.5205 0.450163C12.8368 -0.55374 14.7333 0.38498 14.7333 2.04048L14.7333 17.959Z" fill="url(#paint0_linear_1067_34641)"/> | |||||
| <defs> | |||||
| <linearGradient id="paint0_linear_1067_34641" x1="14.7333" y1="10" x2="-1.00006" y2="10" gradientUnits="userSpaceOnUse"> | |||||
| <stop stop-color="#CB87D1"/> | |||||
| <stop offset="1" stop-color="#8F8EC3"/> | |||||
| </linearGradient> | |||||
| </defs> | |||||
| </svg> |
| import React from 'react' | |||||
| import { strapiApiBuilder } from './../utils/strapiApiBuilder'; | |||||
| import useFetchCollections from './../hooks/useFetchCollections'; | |||||
| import { formatDate } from './../utils/formatDate'; | |||||
| const api_url = process.env.REACT_APP_API_URL; | |||||
| const strapiPopulate = [ | |||||
| 'AuthorImage', | |||||
| 'ArticleImage', | |||||
| 'article_category', | |||||
| ]; | |||||
| const LatestArticles = () => { | |||||
| const strapi = strapiApiBuilder('articles', strapiPopulate, '?sort[0]=date&pagination[pageSize]=3'); | |||||
| const [{ data, isLoading, isError }, doFetch] = useFetchCollections(strapi); | |||||
| return ( | |||||
| <div className='col-span-1 md:col-span-2 flex flex-col gap-4'> | |||||
| <h4 className='text-n-subhead font-semibold text-dark-gray mb-8'>Latest Blog Posts</h4> | |||||
| {data && data.map((element,index) => ( | |||||
| <a | |||||
| key={index} | |||||
| className={'card box flex flex-col items-center justify-between gap-[24px]'} | |||||
| href={`/articles/${element.attributes.Slug}`} | |||||
| > | |||||
| <div className="flex flex-col gap-[4px]"> | |||||
| <div className="flex gap-2"> | |||||
| <img | |||||
| className="max-h-[36px] object-fit rounded-full" | |||||
| src={api_url + element.attributes.AuthorImage.data.attributes.url} | |||||
| alt={api_url + element.attributes.AuthorImage.data.attributes.alternativeText} | |||||
| /> | |||||
| <div className="flex flex-col items-start"> | |||||
| <p className="paragraph">{element.attributes.Author}</p> | |||||
| <p className="text-small-subhead text-gray-400 leading-normal"> | |||||
| {element.attributes.AuthorTitle} | |||||
| </p> | |||||
| </div> | |||||
| </div> | |||||
| <div className='text-left flex flex-col gap-[8px]'> | |||||
| <h2 className="n-paragraph-title text-dark-gray leading-normal">{element.attributes.ArticleTitle}</h2> | |||||
| </div> | |||||
| </div> | |||||
| <img | |||||
| src={api_url + element.attributes.ArticleImage.data.attributes.url} | |||||
| alt={api_url + element.attributes.ArticleImage.data.attributes.alternativeText} | |||||
| /> | |||||
| </a> | |||||
| ))} | |||||
| </div> | |||||
| ) | |||||
| } | |||||
| export default LatestArticles; |
| import React from 'react' | |||||
| import PropTypes from 'prop-types' | |||||
| const OneArticlesGrid = ({children}) => { | |||||
| return ( | |||||
| <div className='grid grid-cols-1 md:grid-cols-6 gap-8'> | |||||
| {children} | |||||
| </div> | |||||
| ) | |||||
| } | |||||
| OneArticlesGrid.propTypes = {} | |||||
| export default OneArticlesGrid |
| import React, { useEffect, useState } from 'react'; | |||||
| import { useNavigate } from 'react-router-dom'; | |||||
| import { formatDate } from './../../utils/formatDate'; | |||||
| import CategoryNugget from './CategoryNugget'; | |||||
| const api_url = process.env.REACT_APP_API_URL; | |||||
| const temp = { | |||||
| ArticleTitle: 'BI Healthcare Monitoring System', | |||||
| ArticleLeadingParagraph: | |||||
| 'Our philosophy is based on the idea of innovation. We work tirelessly to provide useful solutions.', | |||||
| }; | |||||
| const ArticleCard = ({ data }) => { | |||||
| //console.log(data); | |||||
| return ( | |||||
| // <div className={"card box" + (isLarge ? ' col-span-2' : '')}> | |||||
| <a | |||||
| className={'card box my-2 flex flex-col md:flex-row items-center justify-between gap-[72px]'} | |||||
| href={`/articles/${data.Slug}`} | |||||
| > | |||||
| <div className="flex flex-col gap-[18px]"> | |||||
| <div className="flex gap-4"> | |||||
| <img | |||||
| className="max-h-[45px] object-fit rounded-full" | |||||
| src={api_url + data.AuthorImage.data.attributes.url} | |||||
| alt={api_url + data.AuthorImage.data.attributes.alternativeText} | |||||
| /> | |||||
| <div className="flex flex-col items-start"> | |||||
| <p className="paragraph">{data.Author}</p> | |||||
| <p className="text-small-subhead text-gray-400 leading-normal"> | |||||
| {data.AuthorTitle} | |||||
| </p> | |||||
| </div> | |||||
| </div> | |||||
| <div className='text-left flex flex-col gap-[8px]'> | |||||
| <h2 className="n-h3-heading text-dark-gray">{temp.ArticleTitle}</h2> | |||||
| <p className="n-paragraph">{temp.ArticleLeadingParagraph}</p> | |||||
| </div> | |||||
| <div className="flex gap-4 items-center"> | |||||
| <p className="text-small-subhead text-gray-400 leading-normal"> | |||||
| {formatDate(data.Date)} | |||||
| </p> | |||||
| {data.article_category.data && ( | |||||
| <CategoryNugget data={data.article_category.data.attributes.Name} /> | |||||
| )} | |||||
| </div> | |||||
| </div> | |||||
| <img | |||||
| src={api_url + data.ArticleImage.data.attributes.url} | |||||
| alt={api_url + data.ArticleImage.data.attributes.alternativeText} | |||||
| /> | |||||
| {/* <img src={api_url + data.img} alt={api_url + data.alt} className={'mb-12 mx-auto self-center'}></img> */} | |||||
| </a> | |||||
| ); | |||||
| }; | |||||
| export default ArticleCard; |
| import React from 'react' | |||||
| import PropTypes from 'prop-types' | |||||
| const ArticlesGrid = ({children}) => { | |||||
| return ( | |||||
| <div className='flex flex-col md:mx-32'> | |||||
| {children} | |||||
| </div> | |||||
| ) | |||||
| } | |||||
| ArticlesGrid.propTypes = {} | |||||
| export default ArticlesGrid |
| import React, { useEffect, useState } from 'react'; | |||||
| import { strapiApiBuilder } from './../../utils/strapiApiBuilder'; | |||||
| import useFetchCollections from './../../hooks/useFetchCollections'; | |||||
| import Wrapper from '../../layout/Wrapper'; | |||||
| import Animation_Diligent from '../../assets/animation_diligent.webm'; | |||||
| import ArticlesGrid from './ArticlesGrid'; | |||||
| import ArticleCard from './ArticleCard'; | |||||
| const api_url = process.env.REACT_APP_API_URL; | |||||
| const strapiPopulate = [ | |||||
| 'AuthorImage', | |||||
| 'ArticleImage', | |||||
| 'article_category', | |||||
| ]; | |||||
| const BlogArticlesDataWrapper = () => { | |||||
| const strapi = strapiApiBuilder('articles', strapiPopulate, ''); | |||||
| const [{ data, isLoading, isError }, doFetch] = useFetchCollections(strapi); | |||||
| if (isLoading) { | |||||
| return ( | |||||
| <div className="z-50 w-full h-screen bg-white dark:bg-dg-primary-1700 overflow-hidden dark:text-white flex items-center justify-center text-3xl font-semibold"> | |||||
| <video id="animation" width="540" height="540" autoPlay muted loop> | |||||
| <source src={Animation_Diligent} type="video/webm" /> | |||||
| Loading... | |||||
| </video> | |||||
| </div> | |||||
| ); | |||||
| } else { | |||||
| return <>{data && <Wrapper> | |||||
| <ArticlesGrid> | |||||
| {data.map((element,index) => ( | |||||
| <div key={index}> | |||||
| <ArticleCard data={element.attributes} /> | |||||
| </div> | |||||
| ) | |||||
| )} | |||||
| </ArticlesGrid> | |||||
| </Wrapper>}</>; | |||||
| } | |||||
| }; | |||||
| export default BlogArticlesDataWrapper; |
| import React from 'react' | |||||
| const CategoryNugget = ({data}) => { | |||||
| return ( | |||||
| <div className='rounded-full border-[1px] border-dg-secondary text-dg-secondary text-p px-[18px]'>{data}</div> | |||||
| ) | |||||
| } | |||||
| export default CategoryNugget; |
| import axios from "axios"; | |||||
| import React, { useEffect, useReducer, useState } from "react"; | |||||
| const dataFetchReducer = (state, action) => { | |||||
| switch (action.type) { | |||||
| case 'FETCH_INIT': | |||||
| return { | |||||
| ...state, | |||||
| isLoading: true, | |||||
| isError: false | |||||
| }; | |||||
| case 'FETCH_SUCCESS': | |||||
| return { | |||||
| ...state, | |||||
| isLoading: false, | |||||
| isError: false, | |||||
| data: action.payload, | |||||
| }; | |||||
| case 'FETCH_FAILURE': | |||||
| return { | |||||
| ...state, | |||||
| isLoading: false, | |||||
| isError: true, | |||||
| }; | |||||
| default: | |||||
| throw new Error(); | |||||
| } | |||||
| }; | |||||
| const useFetchCollections = (initialUrl, initialData) => { | |||||
| const [url, setUrl] = useState(initialUrl); | |||||
| const [state, dispatch] = useReducer(dataFetchReducer, { | |||||
| isLoading: false, | |||||
| isError: false, | |||||
| data: initialData, | |||||
| }); | |||||
| //getData | |||||
| useEffect(() => { | |||||
| const fetchData = async () => { | |||||
| dispatch({ type: 'FETCH_INIT' }); | |||||
| try { | |||||
| const result = await axios(url); | |||||
| dispatch({ type: 'FETCH_SUCCESS', payload: result.data.data }); | |||||
| } catch (error) { | |||||
| dispatch({ type: 'FETCH_FAILURE' }); | |||||
| } | |||||
| }; | |||||
| fetchData(); | |||||
| }, [url]); | |||||
| useEffect(() => { | |||||
| let didCancel = false; | |||||
| const fetchData = async () => { | |||||
| dispatch({ type: 'FETCH_INIT' }); | |||||
| try { | |||||
| const result = await axios(url); | |||||
| if (!didCancel) { | |||||
| dispatch({ type: 'FETCH_SUCCESS', payload: result.data.data }); | |||||
| } | |||||
| } catch (error) { | |||||
| if (!didCancel) { | |||||
| dispatch({ type: 'FETCH_FAILURE' }); | |||||
| } | |||||
| } | |||||
| }; | |||||
| fetchData(); | |||||
| return () => { | |||||
| didCancel = true; | |||||
| }; | |||||
| }, [url]); | |||||
| return [state, setUrl]; | |||||
| }; | |||||
| export default useFetchCollections |
| @tailwind base; | @tailwind base; | ||||
| @import url('https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); | |||||
| @import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); | |||||
| @tailwind components; | @tailwind components; | ||||
| @tailwind utilities; | @tailwind utilities; |
| ]; | ]; | ||||
| export default function About() { | export default function About() { | ||||
| const strapi = strapiApiBuilder('aboutpage', strapiPopulate); | |||||
| const strapi = strapiApiBuilder('aboutpage', strapiPopulate, ''); | |||||
| const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | ||||
| import React, { Children, Fragment, useEffect } from 'react'; | |||||
| import CustomLink from '../components/root/CustomLink'; | |||||
| import ActionCard from '../components/shared/ActionCard'; | |||||
| import ReactMarkdown from 'react-markdown'; | |||||
| import useDataApi from '../hooks/useDataApi'; | |||||
| import Animation_Diligent from '../assets/animation_diligent.webm'; | |||||
| import Wrapper from '../layout/Wrapper'; | |||||
| import PageLayout from '../layout/PageLayout'; | |||||
| import rehypeHighlight from 'rehype-highlight'; | |||||
| import '../App.css'; | |||||
| import useAnalytics from './../hooks/useAnalytics'; | |||||
| import { strapiApiBuilder } from './../utils/strapiApiBuilder'; | |||||
| import ReactHelmet from './../components/shared/ReactHelmet'; | |||||
| import { useLocation } from 'react-router-dom'; | |||||
| import useFetchCollections from './../hooks/useFetchCollections'; | |||||
| import OneArticlesGrid from '../components/OneArticleGrid'; | |||||
| import LatestArticles from './../components/LatestArticles'; | |||||
| import { ReactComponent as BackArrowSVG } from '../assets/icons/back-triangle.svg'; | |||||
| const api_url = process.env.REACT_APP_API_URL; | |||||
| const strapiPopulate = []; | |||||
| export default function ArticlePage() { | |||||
| const slug = useLocation(); | |||||
| const helperString = slug.pathname.split('/').pop(); | |||||
| const strapi = strapiApiBuilder( | |||||
| `articles?filters[Slug][$eq]=${helperString}`, | |||||
| strapiPopulate, | |||||
| '', | |||||
| ); | |||||
| const [{ data, isLoading, isError }, doFetch] = useFetchCollections(strapi); | |||||
| //console.log(data); | |||||
| useAnalytics(''); | |||||
| useEffect(() => { | |||||
| document.title = ''; | |||||
| }, []); | |||||
| if (isLoading) { | |||||
| return ( | |||||
| <div className="z-50 w-full h-screen bg-white dark:bg-dg-primary-1700 overflow-hidden dark:text-white flex items-center justify-center text-3xl font-semibold"> | |||||
| <video id="animation" width="540" height="540" autoPlay muted loop> | |||||
| <source src={Animation_Diligent} type="video/webm" /> | |||||
| Loading... | |||||
| </video> | |||||
| </div> | |||||
| ); | |||||
| } else { | |||||
| return ( | |||||
| <PageLayout> | |||||
| {data && ( | |||||
| <div className="mt-[48px] md:mt-[180px]"> | |||||
| <Wrapper> | |||||
| <div className="flex flex-col gap-12"> | |||||
| <a href={'/blog'} className="flex gap-4 items-center"> | |||||
| <BackArrowSVG /> | |||||
| <p className='n-paragraph'>Back to Blog Page</p> | |||||
| </a> | |||||
| <OneArticlesGrid> | |||||
| <div className="col-span-1 md:col-span-4"> | |||||
| <ReactMarkdown rehypePlugins={[rehypeHighlight]} className="article"> | |||||
| {data[0].attributes.Body} | |||||
| </ReactMarkdown> | |||||
| </div> | |||||
| <LatestArticles /> | |||||
| </OneArticlesGrid> | |||||
| </div> | |||||
| </Wrapper> | |||||
| </div> | |||||
| )} | |||||
| </PageLayout> | |||||
| ); | |||||
| } | |||||
| } |
| import SocialNetworks from '../components/shared/SocialNetworks'; | |||||
| import Contact from '../components/shared/Contact'; | |||||
| import BlogSection from '../components/BlogSection'; | |||||
| import React, { Children, Fragment, useEffect } from 'react'; | |||||
| import CustomLink from '../components/root/CustomLink'; | |||||
| import ActionCard from '../components/shared/ActionCard'; | |||||
| import useDataApi from '../hooks/useDataApi'; | |||||
| import Animation_Diligent from '../assets/animation_diligent.webm'; | |||||
| import Wrapper from '../layout/Wrapper'; | |||||
| import PageLayout from '../layout/PageLayout'; | import PageLayout from '../layout/PageLayout'; | ||||
| import PageTitleOneFont from '../components/shared/PageTitleOneFont'; | |||||
| import GradientWrapper from '../components/shared/GradientWrapper'; | |||||
| import '../App.css'; | |||||
| import useAnalytics from './../hooks/useAnalytics'; | |||||
| import { strapiApiBuilder } from './../utils/strapiApiBuilder'; | |||||
| import ReactHelmet from './../components/shared/ReactHelmet'; | |||||
| import WorkClientForm from './../components/WorkClientForm'; | |||||
| import { useState } from 'react'; | |||||
| import PageTitle from './../components/shared/PageTitle'; | |||||
| import BlogArticlesDataWrapper from '../components/shared/BlogArticlesDataWrapper'; | |||||
| const api_url = process.env.REACT_APP_API_URL; | |||||
| const strapiPopulate = [ | |||||
| 'Heading', | |||||
| 'SEO', | |||||
| 'SEO.metaSocial', | |||||
| 'SEO.metaImage', | |||||
| 'SEO.metaSocial.image', | |||||
| ]; | |||||
| export default function Blog() { | |||||
| const [formSuccess, setFormSuccess] = useState(false); | |||||
| const strapi = strapiApiBuilder('blogpage', strapiPopulate, ''); | |||||
| const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | |||||
| useAnalytics('Blog'); | |||||
| useEffect(() => { | |||||
| document.title = 'Blog'; | |||||
| }, []); | |||||
| export default function Blog({forwardedRef}) { | |||||
| return ( | |||||
| <PageLayout> | |||||
| <div className="bg-white dark:bg-dg-primary-1700 w-full pt-32"> | |||||
| <BlogSection bgColor="bg-white dark:bg-dg-primary-1700" padding="py-16" /> | |||||
| {/* Social Networks Section */} | |||||
| <section | |||||
| id="posts" | |||||
| className="bg-baby-blue dark:bg-dg-primary-1600 flex flex-col items-center justify-center px-4" | |||||
| > | |||||
| <SocialNetworks bgColor="bg-white" /> | |||||
| </section> | |||||
| {/* Contact Section */} | |||||
| <section id="contact" className="h-fit bg-white dark:bg-dg-primary-1700 px-4 " ref={forwardedRef}> | |||||
| <Contact defaultIndex={0} /> | |||||
| </section> | |||||
| </div> | |||||
| </PageLayout> | |||||
| ); | |||||
| } | |||||
| if (isLoading) { | |||||
| return ( | |||||
| <div className="z-50 w-full h-screen bg-white dark:bg-dg-primary-1700 overflow-hidden dark:text-white flex items-center justify-center text-3xl font-semibold"> | |||||
| <video id="animation" width="540" height="540" autoPlay muted loop> | |||||
| <source src={Animation_Diligent} type="video/webm" /> | |||||
| Loading... | |||||
| </video> | |||||
| </div> | |||||
| ); | |||||
| } else { | |||||
| return ( | |||||
| <PageLayout> | |||||
| {data && data.SEO ? <ReactHelmet seo={data.SEO} /> : null} | |||||
| <div className="mt-[48px] md:mt-[180px]"> | |||||
| <Wrapper padding={' py-[48px]'}> | |||||
| {data ? ( | |||||
| <Fragment> | |||||
| <PageTitle | |||||
| heading={data.Heading.title} | |||||
| subheading={data.Heading.subtitle} | |||||
| left | |||||
| /> | |||||
| </Fragment> | |||||
| ) : null} | |||||
| </Wrapper> | |||||
| <BlogArticlesDataWrapper /> | |||||
| </div> | |||||
| </PageLayout> | |||||
| ); | |||||
| } | |||||
| }; |
| export default function Careers({ forwardedRef }) { | export default function Careers({ forwardedRef }) { | ||||
| const [clickedPosition, setClickedPosition] = useState(''); | const [clickedPosition, setClickedPosition] = useState(''); | ||||
| const strapi = strapiApiBuilder('n-careerspage', strapiPopulate); | |||||
| const strapi = strapiApiBuilder('n-careerspage', strapiPopulate, ''); | |||||
| const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | ||||
| function ContactPage({tab, position}) { | function ContactPage({tab, position}) { | ||||
| const strapi = strapiApiBuilder('w-home-page', strapiPopulate); | |||||
| const strapi = strapiApiBuilder('w-home-page', strapiPopulate, ''); | |||||
| const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | ||||
| export default function Home({ forwardedRef }) { | export default function Home({ forwardedRef }) { | ||||
| const strapi = strapiApiBuilder('w-home-page', strapiPopulate); | |||||
| const strapi = strapiApiBuilder('w-home-page', strapiPopulate, ''); | |||||
| const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | ||||
| const ProcessPage = () => { | const ProcessPage = () => { | ||||
| const [isMobile, setIsMobile] = useState(false); | const [isMobile, setIsMobile] = useState(false); | ||||
| const strapi = strapiApiBuilder('processpage', strapiPopulate); | |||||
| const strapi = strapiApiBuilder('processpage', strapiPopulate, ''); | |||||
| const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | ||||
| const WorkWithUs = () => { | const WorkWithUs = () => { | ||||
| const [formSuccess, setFormSuccess] = useState(false); | const [formSuccess, setFormSuccess] = useState(false); | ||||
| const strapi = strapiApiBuilder('work-with-us-page', strapiPopulate); | |||||
| const strapi = strapiApiBuilder('work-with-us-page', strapiPopulate, ''); | |||||
| const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); | ||||
| import EventsTimeline from "./pages/EventsTimeline"; | import EventsTimeline from "./pages/EventsTimeline"; | ||||
| import DiligentLife from "./pages/DiligentLife"; | import DiligentLife from "./pages/DiligentLife"; | ||||
| import DiligentMinds from "./pages/DiligentMinds"; | import DiligentMinds from "./pages/DiligentMinds"; | ||||
| import Blog from './pages/Blog'; | |||||
| const routes = [ | const routes = [ | ||||
| { | { | ||||
| path: '/', | path: '/', | ||||
| // }, | // }, | ||||
| ], | ], | ||||
| }, | }, | ||||
| { | |||||
| path: '/blog', | |||||
| component: <Blog />, | |||||
| title: 'Blog', | |||||
| exact: true, | |||||
| nav:true, | |||||
| }, | |||||
| { | { | ||||
| path: '/about', | path: '/about', | ||||
| component: <About/>, | component: <About/>, |
| @layer components { | @layer components { | ||||
| .card { | .card { | ||||
| @apply px-12 py-12 bg-white dark:bg-dg-primary-1700 text-dark-gray dark:text-white shadow-md dark:border-dg-primary-1500 dark:border-solid dark:border text-center rounded-xl cursor-pointer z-10 transition-all hover:scale-105 hover:transition-all; | |||||
| @apply block px-12 py-12 bg-white dark:bg-dg-primary-1700 text-dark-gray dark:text-white shadow-md dark:border-dg-primary-1500 dark:border-solid dark:border text-center rounded-xl cursor-pointer z-10 transition-all hover:scale-105 hover:transition-all; | |||||
| } | } | ||||
| .card_post { | .card_post { |
| @import './buttons.css'; | @import './buttons.css'; | ||||
| @import './text.css'; | @import './text.css'; | ||||
| @import './cards.css'; | |||||
| @import './cards.css'; | |||||
| @import './reactMarkdown.css'; |
| @tailwind base; | |||||
| @tailwind components; | |||||
| @tailwind utilities; | |||||
| @layer components { | |||||
| .article h1 { | |||||
| @apply font-secondary font-bold text-dark-gray dark:text-white text-n-head-mobile md:text-n-head; | |||||
| } | |||||
| } |
| export const formatDate = dateString => { | |||||
| var datePart = dateString.match(/\d+/g), | |||||
| year = datePart[0].substring(2), // get only two digits | |||||
| month = datePart[1], | |||||
| day = datePart[2]; | |||||
| return day + '.' + month + '.' + year; | |||||
| }; |
| const api_url = process.env.REACT_APP_API_URL; | const api_url = process.env.REACT_APP_API_URL; | ||||
| export const strapiApiBuilder = (page, stringArray) => { | |||||
| export const strapiApiBuilder = (page, stringArray, filter) => { | |||||
| const api = `${api_url}/api/${page}`; | const api = `${api_url}/api/${page}`; | ||||
| let query = ''; | let query = ''; | ||||
| stringArray.map((field, index) => { | stringArray.map((field, index) => { | ||||
| query += `&populate[${index}]=${field}`; | query += `&populate[${index}]=${field}`; | ||||
| } | } | ||||
| }); | }); | ||||
| return api + query; | |||||
| return api + query + filter; | |||||
| }; | }; |
| lineHeight: '18px', | lineHeight: '18px', | ||||
| }, | }, | ||||
| ], | ], | ||||
| 'small-subhead' : ['12px', { | |||||
| letterSpacing: '0px', | |||||
| lineHeight: '28px', | |||||
| }], | |||||
| }, | }, |
| "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.3.tgz" | "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.3.tgz" | ||||
| "version" "2.4.3" | "version" "2.4.3" | ||||
| "@types/prop-types@*": | |||||
| "@types/prop-types@*", "@types/prop-types@^15.0.0": | |||||
| "integrity" "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" | "integrity" "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" | ||||
| "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" | "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" | ||||
| "version" "15.7.5" | "version" "15.7.5" | ||||
| dependencies: | dependencies: | ||||
| "reusify" "^1.0.4" | "reusify" "^1.0.4" | ||||
| "fault@^2.0.0": | |||||
| "integrity" "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==" | |||||
| "resolved" "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz" | |||||
| "version" "2.0.1" | |||||
| dependencies: | |||||
| "format" "^0.2.0" | |||||
| "faye-websocket@^0.11.3": | "faye-websocket@^0.11.3": | ||||
| "integrity" "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==" | "integrity" "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==" | ||||
| "resolved" "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" | "resolved" "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" | ||||
| "combined-stream" "^1.0.8" | "combined-stream" "^1.0.8" | ||||
| "mime-types" "^2.1.12" | "mime-types" "^2.1.12" | ||||
| "format@^0.2.0": | |||||
| "integrity" "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==" | |||||
| "resolved" "https://registry.npmjs.org/format/-/format-0.2.2.tgz" | |||||
| "version" "0.2.2" | |||||
| "formik@^2.2.9": | "formik@^2.2.9": | ||||
| "integrity" "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==" | "integrity" "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==" | ||||
| "resolved" "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz" | "resolved" "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz" | ||||
| dependencies: | dependencies: | ||||
| "function-bind" "^1.1.1" | "function-bind" "^1.1.1" | ||||
| "hast-util-is-element@^2.0.0": | |||||
| "integrity" "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==" | |||||
| "resolved" "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz" | |||||
| "version" "2.1.3" | |||||
| dependencies: | |||||
| "@types/hast" "^2.0.0" | |||||
| "@types/unist" "^2.0.0" | |||||
| "hast-util-to-text@^3.0.0": | |||||
| "integrity" "sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==" | |||||
| "resolved" "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz" | |||||
| "version" "3.1.2" | |||||
| dependencies: | |||||
| "@types/hast" "^2.0.0" | |||||
| "@types/unist" "^2.0.0" | |||||
| "hast-util-is-element" "^2.0.0" | |||||
| "unist-util-find-after" "^4.0.0" | |||||
| "hast-util-whitespace@^2.0.0": | "hast-util-whitespace@^2.0.0": | ||||
| "integrity" "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==" | "integrity" "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==" | ||||
| "resolved" "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz" | "resolved" "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz" | ||||
| "resolved" "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz" | "resolved" "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz" | ||||
| "version" "1.0.8" | "version" "1.0.8" | ||||
| "highlight.js@~11.7.0": | |||||
| "integrity" "sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==" | |||||
| "resolved" "https://registry.npmjs.org/highlight.js/-/highlight.js-11.7.0.tgz" | |||||
| "version" "11.7.0" | |||||
| "history@^5.2.0": | "history@^5.2.0": | ||||
| "integrity" "sha512-uPSF6lAJb3nSePJ43hN3eKj1dTWpN9gMod0ZssbFTIsen+WehTmEadgL+kg78xLJFdRfrrC//SavDzmRVdE+Ig==" | "integrity" "sha512-uPSF6lAJb3nSePJ43hN3eKj1dTWpN9gMod0ZssbFTIsen+WehTmEadgL+kg78xLJFdRfrrC//SavDzmRVdE+Ig==" | ||||
| "resolved" "https://registry.npmjs.org/history/-/history-5.2.0.tgz" | "resolved" "https://registry.npmjs.org/history/-/history-5.2.0.tgz" | ||||
| dependencies: | dependencies: | ||||
| "tslib" "^2.0.3" | "tslib" "^2.0.3" | ||||
| "lowlight@^2.0.0": | |||||
| "integrity" "sha512-HCaGL61RKc1MYzEYn3rFoGkK0yslzCVDFJEanR19rc2L0mb8i58XM55jSRbzp9jcQrFzschPlwooC0vuNitk8Q==" | |||||
| "resolved" "https://registry.npmjs.org/lowlight/-/lowlight-2.8.1.tgz" | |||||
| "version" "2.8.1" | |||||
| dependencies: | |||||
| "@types/hast" "^2.0.0" | |||||
| "fault" "^2.0.0" | |||||
| "highlight.js" "~11.7.0" | |||||
| "lru-cache@^6.0.0": | "lru-cache@^6.0.0": | ||||
| "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" | "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" | ||||
| "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" | "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" | ||||
| "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" | "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" | ||||
| "version" "16.13.1" | "version" "16.13.1" | ||||
| "react-is@^17.0.0": | |||||
| "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" | |||||
| "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" | |||||
| "version" "17.0.2" | |||||
| "react-is@^17.0.1": | "react-is@^17.0.1": | ||||
| "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" | "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" | ||||
| "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" | "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" | ||||
| "version" "17.0.2" | "version" "17.0.2" | ||||
| "react-is@^18.0.0": | |||||
| "integrity" "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" | |||||
| "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" | |||||
| "version" "18.2.0" | |||||
| "react-mailchimp-subscribe@^2.1.3": | "react-mailchimp-subscribe@^2.1.3": | ||||
| "integrity" "sha512-ZRuPZMnX/9pHQLnAQavsgB5xIF+gNqjNCCq1vvTs23cn+93W2oOp17qjg3LpDBEt1HJi6IHXMwpKXn0taY8FHw==" | "integrity" "sha512-ZRuPZMnX/9pHQLnAQavsgB5xIF+gNqjNCCq1vvTs23cn+93W2oOp17qjg3LpDBEt1HJi6IHXMwpKXn0taY8FHw==" | ||||
| "resolved" "https://registry.npmjs.org/react-mailchimp-subscribe/-/react-mailchimp-subscribe-2.1.3.tgz" | "resolved" "https://registry.npmjs.org/react-mailchimp-subscribe/-/react-mailchimp-subscribe-2.1.3.tgz" | ||||
| "prop-types" "^15.5.10" | "prop-types" "^15.5.10" | ||||
| "to-querystring" "^1.0.4" | "to-querystring" "^1.0.4" | ||||
| "react-markdown@^8.0.0": | |||||
| "integrity" "sha512-qbrWpLny6Ef2xHqnYqtot948LXP+4FtC+MWIuaN1kvSnowM+r1qEeEHpSaU0TDBOisQuj+Qe6eFY15cNL3gLAw==" | |||||
| "resolved" "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.0.tgz" | |||||
| "version" "8.0.0" | |||||
| "react-markdown@^8.0.5": | |||||
| "integrity" "sha512-jGJolWWmOWAvzf+xMdB9zwStViODyyFQhNB/bwCerbBKmrTmgmA599CGiOlP58OId1IMoIRsA8UdI1Lod4zb5A==" | |||||
| "resolved" "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.5.tgz" | |||||
| "version" "8.0.5" | |||||
| dependencies: | dependencies: | ||||
| "@types/hast" "^2.0.0" | "@types/hast" "^2.0.0" | ||||
| "@types/prop-types" "^15.0.0" | |||||
| "@types/unist" "^2.0.0" | "@types/unist" "^2.0.0" | ||||
| "comma-separated-tokens" "^2.0.0" | "comma-separated-tokens" "^2.0.0" | ||||
| "hast-util-whitespace" "^2.0.0" | "hast-util-whitespace" "^2.0.0" | ||||
| "prop-types" "^15.0.0" | "prop-types" "^15.0.0" | ||||
| "property-information" "^6.0.0" | "property-information" "^6.0.0" | ||||
| "react-is" "^17.0.0" | |||||
| "react-is" "^18.0.0" | |||||
| "remark-parse" "^10.0.0" | "remark-parse" "^10.0.0" | ||||
| "remark-rehype" "^10.0.0" | "remark-rehype" "^10.0.0" | ||||
| "space-separated-tokens" "^2.0.0" | "space-separated-tokens" "^2.0.0" | ||||
| "style-to-object" "^0.3.0" | |||||
| "style-to-object" "^0.4.0" | |||||
| "unified" "^10.0.0" | "unified" "^10.0.0" | ||||
| "unist-util-visit" "^4.0.0" | "unist-util-visit" "^4.0.0" | ||||
| "vfile" "^5.0.0" | "vfile" "^5.0.0" | ||||
| dependencies: | dependencies: | ||||
| "jsesc" "~0.5.0" | "jsesc" "~0.5.0" | ||||
| "rehype-highlight@^6.0.0": | |||||
| "integrity" "sha512-q7UtlFicLhetp7K48ZgZiJgchYscMma7XjzX7t23bqEJF8m6/s+viXQEe4oHjrATTIZpX7RG8CKD7BlNZoh9gw==" | |||||
| "resolved" "https://registry.npmjs.org/rehype-highlight/-/rehype-highlight-6.0.0.tgz" | |||||
| "version" "6.0.0" | |||||
| dependencies: | |||||
| "@types/hast" "^2.0.0" | |||||
| "hast-util-to-text" "^3.0.0" | |||||
| "lowlight" "^2.0.0" | |||||
| "unified" "^10.0.0" | |||||
| "unist-util-visit" "^4.0.0" | |||||
| "relateurl@^0.2.7": | "relateurl@^0.2.7": | ||||
| "integrity" "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" | "integrity" "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" | ||||
| "resolved" "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" | "resolved" "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" | ||||
| "resolved" "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz" | "resolved" "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz" | ||||
| "version" "3.3.1" | "version" "3.3.1" | ||||
| "style-to-object@^0.3.0": | |||||
| "integrity" "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==" | |||||
| "resolved" "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz" | |||||
| "version" "0.3.0" | |||||
| "style-to-object@^0.4.0": | |||||
| "integrity" "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==" | |||||
| "resolved" "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz" | |||||
| "version" "0.4.1" | |||||
| dependencies: | dependencies: | ||||
| "inline-style-parser" "0.1.1" | "inline-style-parser" "0.1.1" | ||||
| dependencies: | dependencies: | ||||
| "@types/unist" "^2.0.0" | "@types/unist" "^2.0.0" | ||||
| "unist-util-find-after@^4.0.0": | |||||
| "integrity" "sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==" | |||||
| "resolved" "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz" | |||||
| "version" "4.0.1" | |||||
| dependencies: | |||||
| "@types/unist" "^2.0.0" | |||||
| "unist-util-is" "^5.0.0" | |||||
| "unist-util-generated@^2.0.0": | "unist-util-generated@^2.0.0": | ||||
| "integrity" "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==" | "integrity" "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==" | ||||
| "resolved" "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz" | "resolved" "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz" |