diff --git a/public/node_modules/.cache/.eslintcache b/public/node_modules/.cache/.eslintcache
index 6347a6a8..072c1eae 100644
--- a/public/node_modules/.cache/.eslintcache
+++ b/public/node_modules/.cache/.eslintcache
@@ -1 +1 @@
-[{"/home/violet/documents/development/portfolio/public/src/index.js":"1","/home/violet/documents/development/portfolio/public/src/components/Nav.js":"2","/home/violet/documents/development/portfolio/public/src/components/Splash.js":"3","/home/violet/documents/development/portfolio/public/src/components/Footer.js":"4","/home/violet/documents/development/portfolio/public/src/components/ProjectCard.js":"5","/home/violet/documents/development/portfolio/public/src/components/FeaturedContent.js":"6","/home/violet/documents/development/portfolio/public/src/Home.js":"7","/home/violet/documents/development/portfolio/public/src/Projects.js":"8"},{"size":480,"mtime":1734502982677,"results":"9","hashOfConfig":"10"},{"size":385,"mtime":1734500649483,"results":"11","hashOfConfig":"10"},{"size":380,"mtime":1734500848520,"results":"12","hashOfConfig":"10"},{"size":307,"mtime":1734501032507,"results":"13","hashOfConfig":"10"},{"size":578,"mtime":1734501012213,"results":"14","hashOfConfig":"10"},{"size":526,"mtime":1734501517880,"results":"15","hashOfConfig":"10"},{"size":1076,"mtime":1734502471693,"results":"16","hashOfConfig":"10"},{"size":180,"mtime":1734503072633,"results":"17","hashOfConfig":"10"},{"filePath":"18","messages":"19","suppressedMessages":"20","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"inq9rm",{"filePath":"21","messages":"22","suppressedMessages":"23","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"24","messages":"25","suppressedMessages":"26","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"27","messages":"28","suppressedMessages":"29","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"30","messages":"31","suppressedMessages":"32","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"33","messages":"34","suppressedMessages":"35","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"36","messages":"37","suppressedMessages":"38","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"39","messages":"40","suppressedMessages":"41","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/violet/documents/development/portfolio/public/src/index.js",[],[],"/home/violet/documents/development/portfolio/public/src/components/Nav.js",[],[],"/home/violet/documents/development/portfolio/public/src/components/Splash.js",[],[],"/home/violet/documents/development/portfolio/public/src/components/Footer.js",[],[],"/home/violet/documents/development/portfolio/public/src/components/ProjectCard.js",[],[],"/home/violet/documents/development/portfolio/public/src/components/FeaturedContent.js",[],[],"/home/violet/documents/development/portfolio/public/src/Home.js",[],[],"/home/violet/documents/development/portfolio/public/src/Projects.js",[],[]]
\ No newline at end of file
+[{"/home/violet/documents/development/portfolio/public/src/index.js":"1","/home/violet/documents/development/portfolio/public/src/components/Splash.js":"2","/home/violet/documents/development/portfolio/public/src/components/Footer.js":"3","/home/violet/documents/development/portfolio/public/src/components/ProjectCard.js":"4","/home/violet/documents/development/portfolio/public/src/components/FeaturedContent.js":"5","/home/violet/documents/development/portfolio/public/src/Home.js":"6","/home/violet/documents/development/portfolio/public/src/Projects.js":"7","/home/violet/documents/development/portfolio/public/src/Contact.js":"8","/home/violet/documents/development/portfolio/public/src/About.js":"9","/home/violet/documents/development/portfolio/public/src/Resume.js":"10","/home/violet/documents/development/portfolio/public/src/Blog.js":"11","/home/violet/documents/development/portfolio/public/src/components/Navigation.js":"12","/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js":"13"},{"size":852,"mtime":1734542360810,"results":"14","hashOfConfig":"15"},{"size":467,"mtime":1734542842933,"results":"16","hashOfConfig":"15"},{"size":307,"mtime":1734540866736,"results":"17","hashOfConfig":"15"},{"size":753,"mtime":1734542690860,"results":"18","hashOfConfig":"15"},{"size":714,"mtime":1734542778046,"results":"19","hashOfConfig":"15"},{"size":921,"mtime":1734548965550,"results":"20","hashOfConfig":"15"},{"size":803,"mtime":1734544554186,"results":"21","hashOfConfig":"15"},{"size":200,"mtime":1734542245903,"results":"22","hashOfConfig":"15"},{"size":198,"mtime":1734542221136,"results":"23","hashOfConfig":"15"},{"size":199,"mtime":1734542276016,"results":"24","hashOfConfig":"15"},{"size":197,"mtime":1734542237203,"results":"25","hashOfConfig":"15"},{"size":1247,"mtime":1734542588690,"results":"26","hashOfConfig":"15"},{"size":803,"mtime":1734547297496,"results":"27","hashOfConfig":"15"},{"filePath":"28","messages":"29","suppressedMessages":"30","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"inq9rm",{"filePath":"31","messages":"32","suppressedMessages":"33","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"34","messages":"35","suppressedMessages":"36","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"37","messages":"38","suppressedMessages":"39","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"40","messages":"41","suppressedMessages":"42","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"43","messages":"44","suppressedMessages":"45","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"46","messages":"47","suppressedMessages":"48","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"49","messages":"50","suppressedMessages":"51","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"52","messages":"53","suppressedMessages":"54","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"55","messages":"56","suppressedMessages":"57","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"58","messages":"59","suppressedMessages":"60","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"61","messages":"62","suppressedMessages":"63","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"64","messages":"65","suppressedMessages":"66","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/violet/documents/development/portfolio/public/src/index.js",[],[],"/home/violet/documents/development/portfolio/public/src/components/Splash.js",[],[],"/home/violet/documents/development/portfolio/public/src/components/Footer.js",[],[],"/home/violet/documents/development/portfolio/public/src/components/ProjectCard.js",[],[],"/home/violet/documents/development/portfolio/public/src/components/FeaturedContent.js",[],[],"/home/violet/documents/development/portfolio/public/src/Home.js",[],[],"/home/violet/documents/development/portfolio/public/src/Projects.js",[],[],"/home/violet/documents/development/portfolio/public/src/Contact.js",[],[],"/home/violet/documents/development/portfolio/public/src/About.js",[],[],"/home/violet/documents/development/portfolio/public/src/Resume.js",[],[],"/home/violet/documents/development/portfolio/public/src/Blog.js",[],[],"/home/violet/documents/development/portfolio/public/src/components/Navigation.js",[],[],"/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js",[],[]]
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/05d8d927dc8e84bd0f0cc17bddd3c905d0f7b2db84c3dca6cad5c54a8a751067.json b/public/node_modules/.cache/babel-loader/05d8d927dc8e84bd0f0cc17bddd3c905d0f7b2db84c3dca6cad5c54a8a751067.json
new file mode 100644
index 00000000..c35509d3
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/05d8d927dc8e84bd0f0cc17bddd3c905d0f7b2db84c3dca6cad5c54a8a751067.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport ProjectDisplay from './components/ProjectDisplay';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n const data = [{\n frontend: \"flutter\",\n backend: \"go\",\n id: \"one-ai\",\n name: 'One AI',\n description: \"TODO\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: data.map(item => /*#__PURE__*/_jsxDEV(ProjectDisplay, {\n id: item.id,\n name: item.name,\n description: item.description,\n url: item.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","ProjectDisplay","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","data","frontend","backend","id","name","description","url","children","fileName","_jsxFileName","lineNumber","columnNumber","map","item","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport ProjectDisplay from './components/ProjectDisplay';\n\nexport default function Projects() {\n const data = [\n { frontend: \"flutter\", backend: \"go\", id: \"one-ai\", name: 'One AI', description: \"TODO\", url: \"https://github.com/quaxlyqueen/one-ai\"},\n ];\n\n return (\n <>\n \n
\n {data.map(item => (\n
\n ))}\n
\n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,cAAc,MAAM,6BAA6B;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzD,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,MAAMC,IAAI,GAAG,CACX;IAAEC,QAAQ,EAAE,SAAS;IAAEC,OAAO,EAAE,IAAI;IAAEC,EAAE,EAAE,QAAQ;IAAEC,IAAI,EAAE,QAAQ;IAAEC,WAAW,EAAE,MAAM;IAAEC,GAAG,EAAE;EAAuC,CAAC,CACvI;EAED,oBACEV,OAAA,CAAAE,SAAA;IAAAS,QAAA,gBACEX,OAAA,CAACJ,UAAU;MAAAgB,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACZf,OAAA;MAAAW,QAAA,EACGP,IAAI,CAACY,GAAG,CAACC,IAAI,iBACZjB,OAAA,CAACF,cAAc;QAACS,EAAE,EAAEU,IAAI,CAACV,EAAG;QAACC,IAAI,EAAES,IAAI,CAACT,IAAK;QAACC,WAAW,EAAEQ,IAAI,CAACR,WAAY;QAACC,GAAG,EAAEO,IAAI,CAACP;MAAI;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAC9F;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACC,CAAC,eACRf,OAAA,CAACH,MAAM;MAAAe,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACG,EAAA,GAhBuBf,QAAQ;AAAA,IAAAe,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/168e9bf81761e1db370cf6645389bad97500324c3f118284bc14b93bca651141.json b/public/node_modules/.cache/babel-loader/168e9bf81761e1db370cf6645389bad97500324c3f118284bc14b93bca651141.json
new file mode 100644
index 00000000..4fad071e
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/168e9bf81761e1db370cf6645389bad97500324c3f118284bc14b93bca651141.json
@@ -0,0 +1 @@
+{"ast":null,"code":"\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","map":{"version":3,"names":["module","exports","url","options","String","__esModule","default","test","slice","hash","needQuotes","concat","replace"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/css-loader/dist/runtime/getUrl.js"],"sourcesContent":["\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};"],"mappings":"AAAA,YAAY;;AAEZA,MAAM,CAACC,OAAO,GAAG,UAAUC,GAAG,EAAEC,OAAO,EAAE;EACvC,IAAI,CAACA,OAAO,EAAE;IACZA,OAAO,GAAG,CAAC,CAAC;EACd;EACA,IAAI,CAACD,GAAG,EAAE;IACR,OAAOA,GAAG;EACZ;EACAA,GAAG,GAAGE,MAAM,CAACF,GAAG,CAACG,UAAU,GAAGH,GAAG,CAACI,OAAO,GAAGJ,GAAG,CAAC;;EAEhD;EACA,IAAI,cAAc,CAACK,IAAI,CAACL,GAAG,CAAC,EAAE;IAC5BA,GAAG,GAAGA,GAAG,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EACxB;EACA,IAAIL,OAAO,CAACM,IAAI,EAAE;IAChBP,GAAG,IAAIC,OAAO,CAACM,IAAI;EACrB;;EAEA;EACA;EACA,IAAI,mBAAmB,CAACF,IAAI,CAACL,GAAG,CAAC,IAAIC,OAAO,CAACO,UAAU,EAAE;IACvD,OAAO,IAAI,CAACC,MAAM,CAACT,GAAG,CAACU,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAACA,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC;EAC1E;EACA,OAAOV,GAAG;AACZ,CAAC","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/1a58989b27ddbc37f48b4f49216c96fb83ce2aa29207223b8cc39331a8fe645e.json b/public/node_modules/.cache/babel-loader/1a58989b27ddbc37f48b4f49216c96fb83ce2aa29207223b8cc39331a8fe645e.json
new file mode 100644
index 00000000..3815127c
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/1a58989b27ddbc37f48b4f49216c96fb83ce2aa29207223b8cc39331a8fe645e.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay({\n frontend,\n backend,\n id,\n name,\n description,\n url\n}) {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: `panel ${frontend} ${backend}`,\n id: id,\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"label\",\n children: name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h4\", {\n className: \"label-text\",\n children: description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n target: \"_blank\",\n href: url,\n children: \"View Code on GitHub\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 59\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = ProjectDisplay;\nvar _c;\n$RefreshReg$(_c, \"ProjectDisplay\");","map":{"version":3,"names":["ProjectDisplay","frontend","backend","id","name","description","url","_jsxDEV","_Fragment","children","className","fileName","_jsxFileName","lineNumber","columnNumber","type","target","href","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js"],"sourcesContent":["/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay( {frontend, backend, id, name, description, url} ) {\n return (\n <>\n \n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,cAAcA,CAAE;EAACC,QAAQ;EAAEC,OAAO;EAAEC,EAAE;EAAEC,IAAI;EAAEC,WAAW;EAAEC;AAAG,CAAC,EAAG;EACxF,oBACEC,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAKG,SAAS,EAAE,SAAST,QAAQ,IAAIC,OAAO,EAAG;MAACC,EAAE,EAAEA,EAAG;MAAAM,QAAA,gBACrDF,OAAA;QAAIG,SAAS,EAAC,OAAO;QAAAD,QAAA,EAAEL;MAAI;QAAAO,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eACjCP,OAAA;QAAIG,SAAS,EAAC,YAAY;QAAAD,QAAA,EAAEJ;MAAW;QAAAM,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eAC7CP,OAAA;QAAQQ,IAAI,EAAC,QAAQ;QAACL,SAAS,EAAC,iBAAiB;QAAAD,QAAA,eAACF,OAAA;UAAGS,MAAM,EAAC,QAAQ;UAACC,IAAI,EAAEX,GAAI;UAAAG,QAAA,EAAC;QAAmB;UAAAE,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAG;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAC7G;EAAC,gBACN,CAAC;AAEP;AAACI,EAAA,GAVuBlB,cAAc;AAAA,IAAAkB,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/1ae3b9675ed76dcb4c5f2d7d15f256b6a17379236cd403e752a8586d0cf67188.json b/public/node_modules/.cache/babel-loader/1ae3b9675ed76dcb4c5f2d7d15f256b6a17379236cd403e752a8586d0cf67188.json
new file mode 100644
index 00000000..0fe07ea0
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/1ae3b9675ed76dcb4c5f2d7d15f256b6a17379236cd403e752a8586d0cf67188.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useEffect, useRef } from 'react';\n\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded before being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\nfunction useCommittedRef(value) {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n}\nexport default useCommittedRef;","map":{"version":3,"names":["useEffect","useRef","useCommittedRef","value","ref","current"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useCommittedRef.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded before being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\nfunction useCommittedRef(value) {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n}\nexport default useCommittedRef;"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAACC,KAAK,EAAE;EAC9B,MAAMC,GAAG,GAAGH,MAAM,CAACE,KAAK,CAAC;EACzBH,SAAS,CAAC,MAAM;IACdI,GAAG,CAACC,OAAO,GAAGF,KAAK;EACrB,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EACX,OAAOC,GAAG;AACZ;AACA,eAAeF,eAAe","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/1c57603a2c767bfde13765fb040f055feb4c3c341205ae4b5fe0256950ef4799.json b/public/node_modules/.cache/babel-loader/1c57603a2c767bfde13765fb040f055feb4c3c341205ae4b5fe0256950ef4799.json
new file mode 100644
index 00000000..8ebd357e
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/1c57603a2c767bfde13765fb040f055feb4c3c341205ae4b5fe0256950ef4799.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useCallback, useState } from 'react';\n\n/**\n * Updates state, partial updates are merged into existing state values\n */\n\n/**\n * Mimics a React class component's state model, of having a single unified\n * `state` object and an updater that merges updates into the existing state, as\n * opposed to replacing it.\n *\n * ```js\n * const [state, setState] = useMergeState({ name: 'Betsy', age: 24 })\n *\n * setState({ name: 'Johan' }) // { name: 'Johan', age: 24 }\n *\n * setState(state => ({ age: state.age + 10 })) // { name: 'Johan', age: 34 }\n * ```\n *\n * @param initialState The initial state object\n */\nexport default function useMergeState(initialState) {\n const [state, setState] = useState(initialState);\n const updater = useCallback(update => {\n if (update === null) return;\n if (typeof update === 'function') {\n setState(state => {\n const nextState = update(state);\n return nextState == null ? state : Object.assign({}, state, nextState);\n });\n } else {\n setState(state => Object.assign({}, state, update));\n }\n }, [setState]);\n return [state, updater];\n}","map":{"version":3,"names":["useCallback","useState","useMergeState","initialState","state","setState","updater","update","nextState","Object","assign"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useMergeState.js"],"sourcesContent":["import { useCallback, useState } from 'react';\n\n/**\n * Updates state, partial updates are merged into existing state values\n */\n\n/**\n * Mimics a React class component's state model, of having a single unified\n * `state` object and an updater that merges updates into the existing state, as\n * opposed to replacing it.\n *\n * ```js\n * const [state, setState] = useMergeState({ name: 'Betsy', age: 24 })\n *\n * setState({ name: 'Johan' }) // { name: 'Johan', age: 24 }\n *\n * setState(state => ({ age: state.age + 10 })) // { name: 'Johan', age: 34 }\n * ```\n *\n * @param initialState The initial state object\n */\nexport default function useMergeState(initialState) {\n const [state, setState] = useState(initialState);\n const updater = useCallback(update => {\n if (update === null) return;\n if (typeof update === 'function') {\n setState(state => {\n const nextState = update(state);\n return nextState == null ? state : Object.assign({}, state, nextState);\n });\n } else {\n setState(state => Object.assign({}, state, update));\n }\n }, [setState]);\n return [state, updater];\n}"],"mappings":"AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;;AAE7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,aAAaA,CAACC,YAAY,EAAE;EAClD,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGJ,QAAQ,CAACE,YAAY,CAAC;EAChD,MAAMG,OAAO,GAAGN,WAAW,CAACO,MAAM,IAAI;IACpC,IAAIA,MAAM,KAAK,IAAI,EAAE;IACrB,IAAI,OAAOA,MAAM,KAAK,UAAU,EAAE;MAChCF,QAAQ,CAACD,KAAK,IAAI;QAChB,MAAMI,SAAS,GAAGD,MAAM,CAACH,KAAK,CAAC;QAC/B,OAAOI,SAAS,IAAI,IAAI,GAAGJ,KAAK,GAAGK,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEN,KAAK,EAAEI,SAAS,CAAC;MACxE,CAAC,CAAC;IACJ,CAAC,MAAM;MACLH,QAAQ,CAACD,KAAK,IAAIK,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEN,KAAK,EAAEG,MAAM,CAAC,CAAC;IACrD;EACF,CAAC,EAAE,CAACF,QAAQ,CAAC,CAAC;EACd,OAAO,CAACD,KAAK,EAAEE,OAAO,CAAC;AACzB","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/1cd308e2c6d8c32ff8f65ac78bd07fa5cd7687a68508633994cf6632af160719.json b/public/node_modules/.cache/babel-loader/1cd308e2c6d8c32ff8f65ac78bd07fa5cd7687a68508633994cf6632af160719.json
new file mode 100644
index 00000000..e1eae7e5
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/1cd308e2c6d8c32ff8f65ac78bd07fa5cd7687a68508633994cf6632af160719.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Home.js\";\nimport Navigation from './components/Navigation';\nimport Splash from './components/Splash';\nimport ProjectCard from './components/ProjectCard';\nimport Footer from './components/Footer';\nimport FeaturedContent from './components/FeaturedContent';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Home() {\n const projectCards = [/*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"./assets/img/dnd.png\",\n title: \"D&D\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/dnd\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this), /*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"./assets/img/graph.png\",\n title: \"Graph Visualizer\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/2420-graph-visualizer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this)];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Splash, {\n primaryText: \"Hi, I'm Josh Ashton!\",\n secondaryText: \"Junior full stack developer.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"row custom-container cards\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"light-text\",\n children: \"Featured Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(FeaturedContent, {\n content: projectCards\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Home;\nvar _c;\n$RefreshReg$(_c, \"Home\");","map":{"version":3,"names":["Navigation","Splash","ProjectCard","Footer","FeaturedContent","jsxDEV","_jsxDEV","Fragment","_Fragment","Home","projectCards","img","title","description","url","fileName","_jsxFileName","lineNumber","columnNumber","children","primaryText","secondaryText","className","content","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Home.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Splash from './components/Splash';\nimport ProjectCard from './components/ProjectCard';\nimport Footer from './components/Footer';\nimport FeaturedContent from './components/FeaturedContent';\n\nexport default function Home() {\n const projectCards = [\n ,\n ,\n ];\n return (\n <>\n \n \n \n
Featured Projects \n \n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,WAAW,MAAM,0BAA0B;AAClD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,eAAe,MAAM,8BAA8B;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAE3D,eAAe,SAASC,IAAIA,CAAA,EAAG;EAC7B,MAAMC,YAAY,GAAG,cACnBJ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,sBAAsB;IAACC,KAAK,EAAC,KAAK;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAoC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,eACjHZ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,wBAAwB;IAACC,KAAK,EAAC,kBAAkB;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAsD;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,CACnJ;EACD,oBACEZ,OAAA,CAAAE,SAAA;IAAAW,QAAA,gBACEb,OAAA,CAACN,UAAU;MAAAe,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACdZ,OAAA,CAACL,MAAM;MAACmB,WAAW,EAAC,sBAAsB;MAACC,aAAa,EAAC;IAA8B;MAAAN,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAC,CAAC,eACzFZ,OAAA;MAAKgB,SAAS,EAAC,4BAA4B;MAAAH,QAAA,gBACzCb,OAAA;QAAIgB,SAAS,EAAC,YAAY;QAAAH,QAAA,EAAC;MAAiB;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eACjDZ,OAAA,CAACF,eAAe;QAACmB,OAAO,EAAEb;MAAa;QAAAK,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACvC,CAAC,eACNZ,OAAA,CAACH,MAAM;MAAAY,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACM,EAAA,GAhBuBf,IAAI;AAAA,IAAAe,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/21697943ebd2cb6012986e8d0f54ae94efcc1a7c8ebf127564e40893ab1fbf94.json b/public/node_modules/.cache/babel-loader/21697943ebd2cb6012986e8d0f54ae94efcc1a7c8ebf127564e40893ab1fbf94.json
new file mode 100644
index 00000000..562fc4ce
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/21697943ebd2cb6012986e8d0f54ae94efcc1a7c8ebf127564e40893ab1fbf94.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/Navigation.js\";\nimport Nav from 'react-bootstrap/Nav';\nimport Button from 'react-bootstrap/Button';\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Navigation() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"nav\", {\n className: \"navbar navbar-expand-lg navbar-light bg-light\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"navbar-brand\",\n href: \"/\",\n children: \"Josh Ashton\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n \"data-bs-toggle\": \"collapse\",\n \"data-bs-target\": \"#navbarNav\",\n \"aria-controls\": \"navbarNav\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"navbar-toggler-icon\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarNav\",\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n className: \"navbar-nav nav-fill w-100\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/projects\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/about\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"About\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 51\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/contact\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 53\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/resume\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Resume\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 52\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/blog\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 50\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = Navigation;\nvar _c;\n$RefreshReg$(_c, \"Navigation\");","map":{"version":3,"names":["Nav","Button","jsxDEV","_jsxDEV","Fragment","_Fragment","Navigation","children","className","href","fileName","_jsxFileName","lineNumber","columnNumber","type","id","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/Navigation.js"],"sourcesContent":["import Nav from 'react-bootstrap/Nav';\nimport Button from 'react-bootstrap/Button';\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Navigation() {\n return (\n <>\n \n Josh Ashton \n \n \n \n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,qBAAqB;AACrC,OAAOC,MAAM,MAAM,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AALA,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAMA,eAAe,SAASC,UAAUA,CAAA,EAAG;EACnC,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,eACEJ,OAAA;MAAKK,SAAS,EAAC,+CAA+C;MAAAD,QAAA,gBAC5DJ,OAAA;QAAGK,SAAS,EAAC,cAAc;QAACC,IAAI,EAAC,GAAG;QAAAF,QAAA,EAAC;MAAW;QAAAG,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAG,CAAC,eACpDV,OAAA;QAAQK,SAAS,EAAC,gBAAgB;QAACM,IAAI,EAAC,QAAQ;QAAC,kBAAe,UAAU;QAAC,kBAAe,YAAY;QAAC,iBAAc,WAAW;QAAC,iBAAc,OAAO;QAAC,cAAW,mBAAmB;QAAAP,QAAA,eACnLJ,OAAA;UAAMK,SAAS,EAAC;QAAqB;UAAAE,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAO;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACvC,CAAC,eACTV,OAAA;QAAKK,SAAS,EAAC,0BAA0B;QAACO,EAAE,EAAC,WAAW;QAAAR,QAAA,eACtDJ,OAAA;UAAIK,SAAS,EAAC,2BAA2B;UAAAD,QAAA,gBACvCJ,OAAA;YAAGK,SAAS,EAAC,UAAU;YAACC,IAAI,EAAC,WAAW;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAQ;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eAC9DV,OAAA;YAAGK,SAAS,EAAC,UAAU;YAACC,IAAI,EAAC,QAAQ;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAK;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACxDV,OAAA;YAAGK,SAAS,EAAC,UAAU;YAACC,IAAI,EAAC,UAAU;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAO;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eAC5DV,OAAA;YAAGK,SAAS,EAAC,UAAU;YAACC,IAAI,EAAC,SAAS;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAM;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eAC1DV,OAAA;YAAGK,SAAS,EAAC,UAAU;YAACC,IAAI,EAAC,OAAO;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAI;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACpD;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACF,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH;EAAC,gBACN,CAAC;AAEP;AAACG,EAAA,GApBuBV,UAAU;AAAA,IAAAU,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/24c01d996e718672552207aae6c31800bb10127497c4000f7ff0236a2e17e557.json b/public/node_modules/.cache/babel-loader/24c01d996e718672552207aae6c31800bb10127497c4000f7ff0236a2e17e557.json
new file mode 100644
index 00000000..c62af806
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/24c01d996e718672552207aae6c31800bb10127497c4000f7ff0236a2e17e557.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/Nav.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Nav() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"nav\", {\n className: \"navbar\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/\",\n children: \"Josh Ashton\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/projects\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/about\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"About\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/contact\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/resume\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Resume\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/blog\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = Nav;\nvar _c;\n$RefreshReg$(_c, \"Nav\");","map":{"version":3,"names":["Nav","_jsxDEV","_Fragment","children","className","href","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/Nav.js"],"sourcesContent":["/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Nav() {\n return (\n <>\n \n Josh Ashton \n \n \n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,GAAGA,CAAA,EAAG;EAC5B,oBACEC,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAKG,SAAS,EAAC,QAAQ;MAAAD,QAAA,gBACrBF,OAAA;QAAGI,IAAI,EAAC,GAAG;QAAAF,QAAA,EAAC;MAAW;QAAAG,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAG,CAAC,eAC3BR,OAAA;QAAAE,QAAA,eACEF,OAAA;UAAAE,QAAA,gBACEF,OAAA;YAAGI,IAAI,EAAC,WAAW;YAAAF,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAQ;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACzCR,OAAA;YAAGI,IAAI,EAAC,QAAQ;YAAAF,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAK;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACnCR,OAAA;YAAGI,IAAI,EAAC,UAAU;YAAAF,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAO;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACvCR,OAAA;YAAGI,IAAI,EAAC,SAAS;YAAAF,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAM;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACrCR,OAAA;YAAGI,IAAI,EAAC,OAAO;YAAAF,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAI;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC/B;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACF,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH;EAAC,gBACN,CAAC;AAEP;AAACC,EAAA,GAjBuBV,GAAG;AAAA,IAAAU,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/2bd3e32d27d6e737ade710107790f16c13b8170d104861b6200ab29924eddfd4.json b/public/node_modules/.cache/babel-loader/2bd3e32d27d6e737ade710107790f16c13b8170d104861b6200ab29924eddfd4.json
new file mode 100644
index 00000000..1330351c
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/2bd3e32d27d6e737ade710107790f16c13b8170d104861b6200ab29924eddfd4.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay({\n frontend,\n backend,\n id,\n name,\n description,\n url\n}) {\n const clazz = \"panel \" + {\n frontend\n } + \" \" + {\n backend\n };\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"panel {frontend} {backend}\",\n id: id,\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"label\",\n children: name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h4\", {\n className: \"label-text\",\n children: description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: url,\n children: \"View Code on GitHub\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 59\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = ProjectDisplay;\nvar _c;\n$RefreshReg$(_c, \"ProjectDisplay\");","map":{"version":3,"names":["ProjectDisplay","frontend","backend","id","name","description","url","clazz","_jsxDEV","_Fragment","children","className","fileName","_jsxFileName","lineNumber","columnNumber","type","href","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js"],"sourcesContent":["/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay( {frontend, backend, id, name, description, url} ) {\n const clazz = \"panel \" + {frontend} + \" \" + {backend};\n return (\n <>\n \n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,cAAcA,CAAE;EAACC,QAAQ;EAAEC,OAAO;EAAEC,EAAE;EAAEC,IAAI;EAAEC,WAAW;EAAEC;AAAG,CAAC,EAAG;EACxF,MAAMC,KAAK,GAAG,QAAQ,GAAG;IAACN;EAAQ,CAAC,GAAG,GAAG,GAAG;IAACC;EAAO,CAAC;EACrD,oBACEM,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAKG,SAAS,EAAC,4BAA4B;MAACR,EAAE,EAAEA,EAAG;MAAAO,QAAA,gBACjDF,OAAA;QAAIG,SAAS,EAAC,OAAO;QAAAD,QAAA,EAAEN;MAAI;QAAAQ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eACjCP,OAAA;QAAIG,SAAS,EAAC,YAAY;QAAAD,QAAA,EAAEL;MAAW;QAAAO,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eAC7CP,OAAA;QAAQQ,IAAI,EAAC,QAAQ;QAACL,SAAS,EAAC,iBAAiB;QAAAD,QAAA,eAACF,OAAA;UAAGS,IAAI,EAAEX,GAAI;UAAAI,QAAA,EAAC;QAAmB;UAAAE,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAG;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAC7F;EAAC,gBACN,CAAC;AAEP;AAACG,EAAA,GAXuBlB,cAAc;AAAA,IAAAkB,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/2d2516817399bf75994e0af6c40cf228a09be1165fb82ef2b77e6b2036258d28.json b/public/node_modules/.cache/babel-loader/2d2516817399bf75994e0af6c40cf228a09be1165fb82ef2b77e6b2036258d28.json
new file mode 100644
index 00000000..30a442bd
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/2d2516817399bf75994e0af6c40cf228a09be1165fb82ef2b77e6b2036258d28.json
@@ -0,0 +1 @@
+{"ast":null,"code":"/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\n\"production\" !== process.env.NODE_ENV && function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.$$typeof === REACT_CLIENT_REFERENCE$2 ? null : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type) switch (\"number\" === typeof type.tag && console.error(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"), type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type || (type = innerType.displayName || innerType.name || \"\", type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\");\n return type;\n case REACT_MEMO_TYPE:\n return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || \"Memo\";\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 = \"function\" === typeof Symbol && Symbol.toStringTag && value[Symbol.toStringTag] || value.constructor.name || \"Object\";\n JSCompiler_temp_const.call(JSCompiler_inline_result, \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\", JSCompiler_inline_result$jscomp$0);\n return testStringCoercion(value);\n }\n }\n function disabledLog() {}\n function disableLogs() {\n if (0 === disabledDepth) {\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd;\n var props = {\n configurable: !0,\n enumerable: !0,\n value: disabledLog,\n writable: !0\n };\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n }\n disabledDepth++;\n }\n function reenableLogs() {\n disabledDepth--;\n if (0 === disabledDepth) {\n var props = {\n configurable: !0,\n enumerable: !0,\n writable: !0\n };\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n }\n 0 > disabledDepth && console.error(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\");\n }\n function describeBuiltInComponentFrame(name) {\n if (void 0 === prefix) try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || \"\";\n suffix = -1 < x.stack.indexOf(\"\\n at\") ? \" ()\" : -1 < x.stack.indexOf(\"@\") ? \"@unknown:0:0\" : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n }\n function describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n var frame = componentFrameCache.get(fn);\n if (void 0 !== frame) return frame;\n reentry = !0;\n frame = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n var previousDispatcher = null;\n previousDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = null;\n disableLogs();\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$0) {\n control = x$0;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$1) {\n control = x$1;\n }\n (Fake = fn()) && \"function\" === typeof Fake.catch && Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack) return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName = \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot, \"name\");\n namePropDescriptor && namePropDescriptor.configurable && Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, \"name\", {\n value: \"DetermineComponentFrameRoot\"\n });\n try {\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (sampleStack = _RunInRootFrame$Deter = 0; _RunInRootFrame$Deter < sampleLines.length && !sampleLines[_RunInRootFrame$Deter].includes(\"DetermineComponentFrameRoot\");) _RunInRootFrame$Deter++;\n for (; sampleStack < controlLines.length && !controlLines[sampleStack].includes(\"DetermineComponentFrameRoot\");) sampleStack++;\n if (_RunInRootFrame$Deter === sampleLines.length || sampleStack === controlLines.length) for (_RunInRootFrame$Deter = sampleLines.length - 1, sampleStack = controlLines.length - 1; 1 <= _RunInRootFrame$Deter && 0 <= sampleStack && sampleLines[_RunInRootFrame$Deter] !== controlLines[sampleStack];) sampleStack--;\n for (; 1 <= _RunInRootFrame$Deter && 0 <= sampleStack; _RunInRootFrame$Deter--, sampleStack--) if (sampleLines[_RunInRootFrame$Deter] !== controlLines[sampleStack]) {\n if (1 !== _RunInRootFrame$Deter || 1 !== sampleStack) {\n do if (_RunInRootFrame$Deter--, sampleStack--, 0 > sampleStack || sampleLines[_RunInRootFrame$Deter] !== controlLines[sampleStack]) {\n var _frame = \"\\n\" + sampleLines[_RunInRootFrame$Deter].replace(\" at new \", \" at \");\n fn.displayName && _frame.includes(\"\") && (_frame = _frame.replace(\"\", fn.displayName));\n \"function\" === typeof fn && componentFrameCache.set(fn, _frame);\n return _frame;\n } while (1 <= _RunInRootFrame$Deter && 0 <= sampleStack);\n }\n break;\n }\n }\n } finally {\n reentry = !1, ReactSharedInternals.H = previousDispatcher, reenableLogs(), Error.prepareStackTrace = frame;\n }\n sampleLines = (sampleLines = fn ? fn.displayName || fn.name : \"\") ? describeBuiltInComponentFrame(sampleLines) : \"\";\n \"function\" === typeof fn && componentFrameCache.set(fn, sampleLines);\n return sampleLines;\n }\n function describeUnknownElementTypeFrameInDEV(type) {\n if (null == type) return \"\";\n if (\"function\" === typeof type) {\n var prototype = type.prototype;\n return describeNativeComponentFrame(type, !(!prototype || !prototype.isReactComponent));\n }\n if (\"string\" === typeof type) return describeBuiltInComponentFrame(type);\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame(\"Suspense\");\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n }\n if (\"object\" === typeof type) switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return type = describeNativeComponentFrame(type.render, !1), type;\n case REACT_MEMO_TYPE:\n return describeUnknownElementTypeFrameInDEV(type.type);\n case REACT_LAZY_TYPE:\n prototype = type._payload;\n type = type._init;\n try {\n return describeUnknownElementTypeFrameInDEV(type(prototype));\n } catch (x) {}\n }\n return \"\";\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function hasValidRef(config) {\n if (hasOwnProperty.call(config, \"ref\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"ref\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.ref;\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown || (specialPropKeyWarningShown = !0, console.error(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\", displayName));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] || (didWarnAboutElementRef[componentName] = !0, console.error(\"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, _ref, self, source, owner, props) {\n _ref = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== _ref ? _ref : null) ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n }) : Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n value: null\n });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(type, config, maybeKey, isStaticChildren, source, self) {\n if (\"string\" === typeof type || \"function\" === typeof type || type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_OFFSCREEN_TYPE || \"object\" === typeof type && null !== type && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_CONSUMER_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_CLIENT_REFERENCE$1 || void 0 !== type.getModuleId)) {\n var children = config.children;\n if (void 0 !== children) if (isStaticChildren) {\n if (isArrayImpl(children)) {\n for (isStaticChildren = 0; isStaticChildren < children.length; isStaticChildren++) validateChildKeys(children[isStaticChildren], type);\n Object.freeze && Object.freeze(children);\n } else console.error(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");\n } else validateChildKeys(children, type);\n } else {\n children = \"\";\n if (void 0 === type || \"object\" === typeof type && null !== type && 0 === Object.keys(type).length) children += \" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\";\n null === type ? isStaticChildren = \"null\" : isArrayImpl(type) ? isStaticChildren = \"array\" : void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE ? (isStaticChildren = \"<\" + (getComponentNameFromType(type.type) || \"Unknown\") + \" />\", children = \" Did you accidentally export a JSX literal instead of a component?\") : isStaticChildren = typeof type;\n console.error(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\", isStaticChildren, children);\n }\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren = 0 < keys.length ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\" : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] || (keys = 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\", console.error('A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />', isStaticChildren, children, keys, children), didWarnAboutKeySpread[children + isStaticChildren] = !0);\n }\n children = null;\n void 0 !== maybeKey && (checkKeyStringCoercion(maybeKey), children = \"\" + maybeKey);\n hasValidKey(config) && (checkKeyStringCoercion(config.key), children = \"\" + config.key);\n hasValidRef(config);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config) \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children && (config = \"function\" === typeof type ? type.displayName || type.name || \"Unknown\" : type, children && defineKeyPropWarningGetter(maybeKey, config));\n return ReactElement(type, children, null, self, source, getOwner(), maybeKey);\n }\n function validateChildKeys(node, parentType) {\n if (\"object\" === typeof node && node && node.$$typeof !== REACT_CLIENT_REFERENCE) if (isArrayImpl(node)) for (var i = 0; i < node.length; i++) {\n var child = node[i];\n isValidElement(child) && validateExplicitKey(child, parentType);\n } else if (isValidElement(node)) node._store && (node._store.validated = 1);else if (null === node || \"object\" !== typeof node ? i = null : (i = MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL] || node[\"@@iterator\"], i = \"function\" === typeof i ? i : null), \"function\" === typeof i && i !== node.entries && (i = i.call(node), i !== node)) for (; !(node = i.next()).done;) isValidElement(node.value) && validateExplicitKey(node.value, parentType);\n }\n function isValidElement(object) {\n return \"object\" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n function validateExplicitKey(element, parentType) {\n if (element._store && !element._store.validated && null == element.key && (element._store.validated = 1, parentType = getCurrentComponentErrorInfo(parentType), !ownerHasKeyUseWarning[parentType])) {\n ownerHasKeyUseWarning[parentType] = !0;\n var childOwner = \"\";\n element && null != element._owner && element._owner !== getOwner() && (childOwner = null, \"number\" === typeof element._owner.tag ? childOwner = getComponentNameFromType(element._owner.type) : \"string\" === typeof element._owner.name && (childOwner = element._owner.name), childOwner = \" It was passed a child from \" + childOwner + \".\");\n var prevGetCurrentStack = ReactSharedInternals.getCurrentStack;\n ReactSharedInternals.getCurrentStack = function () {\n var stack = describeUnknownElementTypeFrameInDEV(element.type);\n prevGetCurrentStack && (stack += prevGetCurrentStack() || \"\");\n return stack;\n };\n console.error('Each child in a list should have a unique \"key\" prop.%s%s See https://react.dev/link/warning-keys for more information.', parentType, childOwner);\n ReactSharedInternals.getCurrentStack = prevGetCurrentStack;\n }\n }\n function getCurrentComponentErrorInfo(parentType) {\n var info = \"\",\n owner = getOwner();\n owner && (owner = getComponentNameFromType(owner.type)) && (info = \"\\n\\nCheck the render method of `\" + owner + \"`.\");\n info || (parentType = getComponentNameFromType(parentType)) && (info = \"\\n\\nCheck the top-level render call using <\" + parentType + \">.\");\n return info;\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n REACT_CLIENT_REFERENCE$2 = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n assign = Object.assign,\n REACT_CLIENT_REFERENCE$1 = Symbol.for(\"react.client.reference\"),\n isArrayImpl = Array.isArray,\n disabledDepth = 0,\n prevLog,\n prevInfo,\n prevWarn,\n prevError,\n prevGroup,\n prevGroupCollapsed,\n prevGroupEnd;\n disabledLog.__reactDisabledLog = !0;\n var prefix,\n suffix,\n reentry = !1;\n var componentFrameCache = new (\"function\" === typeof WeakMap ? WeakMap : Map)();\n var REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var didWarnAboutKeySpread = {},\n ownerHasKeyUseWarning = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n return jsxDEVImpl(type, config, maybeKey, !1, source, self);\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n return jsxDEVImpl(type, config, maybeKey, !0, source, self);\n };\n}();","map":{"version":3,"names":["process","env","NODE_ENV","getComponentNameFromType","type","$$typeof","REACT_CLIENT_REFERENCE$2","displayName","name","REACT_FRAGMENT_TYPE","REACT_PORTAL_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","tag","console","error","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","_context","REACT_FORWARD_REF_TYPE","innerType","render","REACT_MEMO_TYPE","REACT_LAZY_TYPE","_payload","_init","x","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","e","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","Symbol","toStringTag","constructor","call","disabledLog","disableLogs","disabledDepth","prevLog","log","prevInfo","info","prevWarn","warn","prevError","prevGroup","group","prevGroupCollapsed","groupCollapsed","prevGroupEnd","groupEnd","props","configurable","enumerable","writable","Object","defineProperties","reenableLogs","assign","describeBuiltInComponentFrame","prefix","Error","match","stack","trim","suffix","indexOf","describeNativeComponentFrame","fn","construct","reentry","frame","componentFrameCache","get","prepareStackTrace","previousDispatcher","ReactSharedInternals","H","RunInRootFrame","DetermineComponentFrameRoot","Fake","defineProperty","prototype","set","Reflect","control","x$0","x$1","catch","sample","namePropDescriptor","getOwnPropertyDescriptor","_RunInRootFrame$Deter","sampleStack","controlStack","sampleLines","split","controlLines","length","includes","_frame","replace","describeUnknownElementTypeFrameInDEV","isReactComponent","getOwner","dispatcher","A","hasValidRef","config","hasOwnProperty","getter","isReactWarning","ref","hasValidKey","key","defineKeyPropWarningGetter","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","_ref","self","source","owner","REACT_ELEMENT_TYPE","_owner","_store","freeze","jsxDEVImpl","maybeKey","isStaticChildren","REACT_OFFSCREEN_TYPE","REACT_CLIENT_REFERENCE$1","getModuleId","children","isArrayImpl","validateChildKeys","keys","filter","k","join","didWarnAboutKeySpread","propName","node","parentType","REACT_CLIENT_REFERENCE","i","child","isValidElement","validateExplicitKey","validated","MAYBE_ITERATOR_SYMBOL","entries","next","done","object","element","getCurrentComponentErrorInfo","ownerHasKeyUseWarning","childOwner","prevGetCurrentStack","getCurrentStack","React","require","for","iterator","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","Array","isArray","__reactDisabledLog","WeakMap","Map","exports","Fragment","jsx","jsxs"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react/cjs/react-jsx-runtime.development.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE$2\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function disabledLog() {}\n function disableLogs() {\n if (0 === disabledDepth) {\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd;\n var props = {\n configurable: !0,\n enumerable: !0,\n value: disabledLog,\n writable: !0\n };\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n }\n disabledDepth++;\n }\n function reenableLogs() {\n disabledDepth--;\n if (0 === disabledDepth) {\n var props = { configurable: !0, enumerable: !0, writable: !0 };\n Object.defineProperties(console, {\n log: assign({}, props, { value: prevLog }),\n info: assign({}, props, { value: prevInfo }),\n warn: assign({}, props, { value: prevWarn }),\n error: assign({}, props, { value: prevError }),\n group: assign({}, props, { value: prevGroup }),\n groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),\n groupEnd: assign({}, props, { value: prevGroupEnd })\n });\n }\n 0 > disabledDepth &&\n console.error(\n \"disabledDepth fell below zero. This is a bug in React. Please file an issue.\"\n );\n }\n function describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" ()\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n }\n function describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n var frame = componentFrameCache.get(fn);\n if (void 0 !== frame) return frame;\n reentry = !0;\n frame = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n var previousDispatcher = null;\n previousDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = null;\n disableLogs();\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$0) {\n control = x$0;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$1) {\n control = x$1;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n try {\n var _RunInRootFrame$Deter =\n RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n sampleStack = _RunInRootFrame$Deter = 0;\n _RunInRootFrame$Deter < sampleLines.length &&\n !sampleLines[_RunInRootFrame$Deter].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n _RunInRootFrame$Deter++;\n for (\n ;\n sampleStack < controlLines.length &&\n !controlLines[sampleStack].includes(\"DetermineComponentFrameRoot\");\n\n )\n sampleStack++;\n if (\n _RunInRootFrame$Deter === sampleLines.length ||\n sampleStack === controlLines.length\n )\n for (\n _RunInRootFrame$Deter = sampleLines.length - 1,\n sampleStack = controlLines.length - 1;\n 1 <= _RunInRootFrame$Deter &&\n 0 <= sampleStack &&\n sampleLines[_RunInRootFrame$Deter] !== controlLines[sampleStack];\n\n )\n sampleStack--;\n for (\n ;\n 1 <= _RunInRootFrame$Deter && 0 <= sampleStack;\n _RunInRootFrame$Deter--, sampleStack--\n )\n if (\n sampleLines[_RunInRootFrame$Deter] !== controlLines[sampleStack]\n ) {\n if (1 !== _RunInRootFrame$Deter || 1 !== sampleStack) {\n do\n if (\n (_RunInRootFrame$Deter--,\n sampleStack--,\n 0 > sampleStack ||\n sampleLines[_RunInRootFrame$Deter] !==\n controlLines[sampleStack])\n ) {\n var _frame =\n \"\\n\" +\n sampleLines[_RunInRootFrame$Deter].replace(\n \" at new \",\n \" at \"\n );\n fn.displayName &&\n _frame.includes(\"\") &&\n (_frame = _frame.replace(\"\", fn.displayName));\n \"function\" === typeof fn &&\n componentFrameCache.set(fn, _frame);\n return _frame;\n }\n while (1 <= _RunInRootFrame$Deter && 0 <= sampleStack);\n }\n break;\n }\n }\n } finally {\n (reentry = !1),\n (ReactSharedInternals.H = previousDispatcher),\n reenableLogs(),\n (Error.prepareStackTrace = frame);\n }\n sampleLines = (sampleLines = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(sampleLines)\n : \"\";\n \"function\" === typeof fn && componentFrameCache.set(fn, sampleLines);\n return sampleLines;\n }\n function describeUnknownElementTypeFrameInDEV(type) {\n if (null == type) return \"\";\n if (\"function\" === typeof type) {\n var prototype = type.prototype;\n return describeNativeComponentFrame(\n type,\n !(!prototype || !prototype.isReactComponent)\n );\n }\n if (\"string\" === typeof type) return describeBuiltInComponentFrame(type);\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame(\"Suspense\");\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return (type = describeNativeComponentFrame(type.render, !1)), type;\n case REACT_MEMO_TYPE:\n return describeUnknownElementTypeFrameInDEV(type.type);\n case REACT_LAZY_TYPE:\n prototype = type._payload;\n type = type._init;\n try {\n return describeUnknownElementTypeFrameInDEV(type(prototype));\n } catch (x) {}\n }\n return \"\";\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function hasValidRef(config) {\n if (hasOwnProperty.call(config, \"ref\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"ref\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.ref;\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, _ref, self, source, owner, props) {\n _ref = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== _ref ? _ref : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self\n ) {\n if (\n \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n type === REACT_OFFSCREEN_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE$1 ||\n void 0 !== type.getModuleId))\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren], type);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children, type);\n } else {\n children = \"\";\n if (\n void 0 === type ||\n (\"object\" === typeof type &&\n null !== type &&\n 0 === Object.keys(type).length)\n )\n children +=\n \" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\";\n null === type\n ? (isStaticChildren = \"null\")\n : isArrayImpl(type)\n ? (isStaticChildren = \"array\")\n : void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE\n ? ((isStaticChildren =\n \"<\" +\n (getComponentNameFromType(type.type) || \"Unknown\") +\n \" />\"),\n (children =\n \" Did you accidentally export a JSX literal instead of a component?\"))\n : (isStaticChildren = typeof type);\n console.error(\n \"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",\n isStaticChildren,\n children\n );\n }\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n hasValidRef(config);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n ((config =\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type),\n children && defineKeyPropWarningGetter(maybeKey, config));\n return ReactElement(\n type,\n children,\n null,\n self,\n source,\n getOwner(),\n maybeKey\n );\n }\n function validateChildKeys(node, parentType) {\n if (\n \"object\" === typeof node &&\n node &&\n node.$$typeof !== REACT_CLIENT_REFERENCE\n )\n if (isArrayImpl(node))\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n isValidElement(child) && validateExplicitKey(child, parentType);\n }\n else if (isValidElement(node))\n node._store && (node._store.validated = 1);\n else if (\n (null === node || \"object\" !== typeof node\n ? (i = null)\n : ((i =\n (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||\n node[\"@@iterator\"]),\n (i = \"function\" === typeof i ? i : null)),\n \"function\" === typeof i &&\n i !== node.entries &&\n ((i = i.call(node)), i !== node))\n )\n for (; !(node = i.next()).done; )\n isValidElement(node.value) &&\n validateExplicitKey(node.value, parentType);\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function validateExplicitKey(element, parentType) {\n if (\n element._store &&\n !element._store.validated &&\n null == element.key &&\n ((element._store.validated = 1),\n (parentType = getCurrentComponentErrorInfo(parentType)),\n !ownerHasKeyUseWarning[parentType])\n ) {\n ownerHasKeyUseWarning[parentType] = !0;\n var childOwner = \"\";\n element &&\n null != element._owner &&\n element._owner !== getOwner() &&\n ((childOwner = null),\n \"number\" === typeof element._owner.tag\n ? (childOwner = getComponentNameFromType(element._owner.type))\n : \"string\" === typeof element._owner.name &&\n (childOwner = element._owner.name),\n (childOwner = \" It was passed a child from \" + childOwner + \".\"));\n var prevGetCurrentStack = ReactSharedInternals.getCurrentStack;\n ReactSharedInternals.getCurrentStack = function () {\n var stack = describeUnknownElementTypeFrameInDEV(element.type);\n prevGetCurrentStack && (stack += prevGetCurrentStack() || \"\");\n return stack;\n };\n console.error(\n 'Each child in a list should have a unique \"key\" prop.%s%s See https://react.dev/link/warning-keys for more information.',\n parentType,\n childOwner\n );\n ReactSharedInternals.getCurrentStack = prevGetCurrentStack;\n }\n }\n function getCurrentComponentErrorInfo(parentType) {\n var info = \"\",\n owner = getOwner();\n owner &&\n (owner = getComponentNameFromType(owner.type)) &&\n (info = \"\\n\\nCheck the render method of `\" + owner + \"`.\");\n info ||\n ((parentType = getComponentNameFromType(parentType)) &&\n (info =\n \"\\n\\nCheck the top-level render call using <\" + parentType + \">.\"));\n return info;\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n REACT_CLIENT_REFERENCE$2 = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n assign = Object.assign,\n REACT_CLIENT_REFERENCE$1 = Symbol.for(\"react.client.reference\"),\n isArrayImpl = Array.isArray,\n disabledDepth = 0,\n prevLog,\n prevInfo,\n prevWarn,\n prevError,\n prevGroup,\n prevGroupCollapsed,\n prevGroupEnd;\n disabledLog.__reactDisabledLog = !0;\n var prefix,\n suffix,\n reentry = !1;\n var componentFrameCache = new (\n \"function\" === typeof WeakMap ? WeakMap : Map\n )();\n var REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var didWarnAboutKeySpread = {},\n ownerHasKeyUseWarning = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n return jsxDEVImpl(type, config, maybeKey, !1, source, self);\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n return jsxDEVImpl(type, config, maybeKey, !0, source, self);\n };\n })();\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/2e96fb9142dd1c72845a344cd63ebde89aa0b131eac43da0dce5f45e0a9623fd.json b/public/node_modules/.cache/babel-loader/2e96fb9142dd1c72845a344cd63ebde89aa0b131eac43da0dce5f45e0a9623fd.json
new file mode 100644
index 00000000..3791dd6a
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/2e96fb9142dd1c72845a344cd63ebde89aa0b131eac43da0dce5f45e0a9623fd.json
@@ -0,0 +1 @@
+{"ast":null,"code":"export { default as useUncontrolled, useUncontrolledProp } from './hook';\nexport { default as uncontrollable } from './uncontrollable';","map":{"version":3,"names":["default","useUncontrolled","useUncontrolledProp","uncontrollable"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/uncontrollable/lib/esm/index.js"],"sourcesContent":["export { default as useUncontrolled, useUncontrolledProp } from './hook';\nexport { default as uncontrollable } from './uncontrollable';"],"mappings":"AAAA,SAASA,OAAO,IAAIC,eAAe,EAAEC,mBAAmB,QAAQ,QAAQ;AACxE,SAASF,OAAO,IAAIG,cAAc,QAAQ,kBAAkB","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/2f81dfe6612f0c204e4686d7c8c0b327a274c2cef0b692a3d5231f9c76815018.json b/public/node_modules/.cache/babel-loader/2f81dfe6612f0c204e4686d7c8c0b327a274c2cef0b692a3d5231f9c76815018.json
new file mode 100644
index 00000000..533df1e7
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/2f81dfe6612f0c204e4686d7c8c0b327a274c2cef0b692a3d5231f9c76815018.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/ProjectCard.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a ProjectCard.\n *\n * @param String img \"Path to an image.\"\n * @param String title \"Title of the card.\"\n * @param String description \"A short description for the card.\"\n * @param String url \"URL to a project.\"\n *\n * TODO: Need to add classes and styling.\n */\nexport default function ProjectCard({\n img,\n title,\n description,\n url\n}) {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card\",\n children: [/*#__PURE__*/_jsxDEV(\"img\", {\n className: \"card-img-top\",\n src: img,\n alt: \"TODO: Image caption.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-body\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"card-title dark-text\",\n children: title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"dark-text\",\n children: description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn btn-primary\",\n target: \"_blank\",\n href: url,\n children: \"View Code on GitHub\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = ProjectCard;\nvar _c;\n$RefreshReg$(_c, \"ProjectCard\");","map":{"version":3,"names":["ProjectCard","img","title","description","url","_jsxDEV","_Fragment","children","className","src","alt","fileName","_jsxFileName","lineNumber","columnNumber","target","href","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/ProjectCard.js"],"sourcesContent":["/*\n * Create a ProjectCard.\n *\n * @param String img \"Path to an image.\"\n * @param String title \"Title of the card.\"\n * @param String description \"A short description for the card.\"\n * @param String url \"URL to a project.\"\n *\n * TODO: Need to add classes and styling.\n */\nexport default function ProjectCard( {img, title, description, url} ) {\n return (\n <>\n \n
\n
\n
\n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,WAAWA,CAAE;EAACC,GAAG;EAAEC,KAAK;EAAEC,WAAW;EAAEC;AAAG,CAAC,EAAG;EACpE,oBACEC,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAKG,SAAS,EAAC,MAAM;MAAAD,QAAA,gBACnBF,OAAA;QAAKG,SAAS,EAAC,cAAc;QAACC,GAAG,EAAER,GAAI;QAACS,GAAG,EAAC;MAAsB;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAC,CAAC,eACpET,OAAA;QAAKG,SAAS,EAAC,WAAW;QAAAD,QAAA,gBACxBF,OAAA;UAAIG,SAAS,EAAC,sBAAsB;UAAAD,QAAA,EAAEL;QAAK;UAAAS,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAK,CAAC,eACjDT,OAAA;UAAGG,SAAS,EAAC,WAAW;UAAAD,QAAA,EAAEJ;QAAW;UAAAQ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAI,CAAC,eAC1CT,OAAA;UAAGG,SAAS,EAAG,iBAAiB;UAACO,MAAM,EAAC,QAAQ;UAACC,IAAI,EAAEZ,GAAI;UAAAG,QAAA,EAAC;QAAmB;UAAAI,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAG,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAChF,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH;EAAC,gBACN,CAAC;AAEP;AAACG,EAAA,GAbuBjB,WAAW;AAAA,IAAAiB,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/314a5a5682093383f9921acac23a4b626f564867f1062934d3088543699e903e.json b/public/node_modules/.cache/babel-loader/314a5a5682093383f9921acac23a4b626f564867f1062934d3088543699e903e.json
new file mode 100644
index 00000000..b429072c
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/314a5a5682093383f9921acac23a4b626f564867f1062934d3088543699e903e.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Resume.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Resume() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Resume;\nvar _c;\n$RefreshReg$(_c, \"Resume\");","map":{"version":3,"names":["Navigation","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Resume","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Resume.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\n\nexport default function Resume() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,MAAMA,CAAA,EAAG;EAC/B,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,UAAU;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACdR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,MAAM;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/333247a504dd92b8bdf9eac6a58bd18db79f4a6573c4242f79c93e97dbdf00ee.json b/public/node_modules/.cache/babel-loader/333247a504dd92b8bdf9eac6a58bd18db79f4a6573c4242f79c93e97dbdf00ee.json
new file mode 100644
index 00000000..2de86be4
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/333247a504dd92b8bdf9eac6a58bd18db79f4a6573c4242f79c93e97dbdf00ee.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useEffect } from 'react';\nimport useCommittedRef from './useCommittedRef';\n\n/**\n * Creates a `setInterval` that is properly cleaned up when a component unmounted\n *\n * ```tsx\n * function Timer() {\n * const [timer, setTimer] = useState(0)\n * useInterval(() => setTimer(i => i + 1), 1000)\n *\n * return {timer} seconds past \n * }\n * ```\n *\n * @param fn an function run on each interval\n * @param ms The milliseconds duration of the interval\n */\n\n/**\n * Creates a pausable `setInterval` that is properly cleaned up when a component unmounted\n *\n * ```tsx\n * const [paused, setPaused] = useState(false)\n * const [timer, setTimer] = useState(0)\n *\n * useInterval(() => setTimer(i => i + 1), 1000, paused)\n *\n * return (\n * \n * {timer} seconds past\n *\n * setPaused(p => !p)}>{paused ? 'Play' : 'Pause' } \n * \n * )\n * ```\n *\n * @param fn an function run on each interval\n * @param ms The milliseconds duration of the interval\n * @param paused Whether or not the interval is currently running\n */\n\n/**\n * Creates a pausable `setInterval` that _fires_ immediately and is\n * properly cleaned up when a component unmounted\n *\n * ```tsx\n * const [timer, setTimer] = useState(-1)\n * useInterval(() => setTimer(i => i + 1), 1000, false, true)\n *\n * // will update to 0 on the first effect\n * return {timer} seconds past \n * ```\n *\n * @param fn an function run on each interval\n * @param ms The milliseconds duration of the interval\n * @param paused Whether or not the interval is currently running\n * @param runImmediately Whether to run the function immediately on mount or unpause\n * rather than waiting for the first interval to elapse\n *\n\n */\n\nfunction useInterval(fn, ms, paused = false, runImmediately = false) {\n let handle;\n const fnRef = useCommittedRef(fn);\n // this ref is necessary b/c useEffect will sometimes miss a paused toggle\n // orphaning a setTimeout chain in the aether, so relying on it's refresh logic is not reliable.\n const pausedRef = useCommittedRef(paused);\n const tick = () => {\n if (pausedRef.current) return;\n fnRef.current();\n schedule(); // eslint-disable-line no-use-before-define\n };\n const schedule = () => {\n clearTimeout(handle);\n handle = setTimeout(tick, ms);\n };\n useEffect(() => {\n if (runImmediately) {\n tick();\n } else {\n schedule();\n }\n return () => clearTimeout(handle);\n }, [paused, runImmediately]);\n}\nexport default useInterval;","map":{"version":3,"names":["useEffect","useCommittedRef","useInterval","fn","ms","paused","runImmediately","handle","fnRef","pausedRef","tick","current","schedule","clearTimeout","setTimeout"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useInterval.js"],"sourcesContent":["import { useEffect } from 'react';\nimport useCommittedRef from './useCommittedRef';\n\n/**\n * Creates a `setInterval` that is properly cleaned up when a component unmounted\n *\n * ```tsx\n * function Timer() {\n * const [timer, setTimer] = useState(0)\n * useInterval(() => setTimer(i => i + 1), 1000)\n *\n * return {timer} seconds past \n * }\n * ```\n *\n * @param fn an function run on each interval\n * @param ms The milliseconds duration of the interval\n */\n\n/**\n * Creates a pausable `setInterval` that is properly cleaned up when a component unmounted\n *\n * ```tsx\n * const [paused, setPaused] = useState(false)\n * const [timer, setTimer] = useState(0)\n *\n * useInterval(() => setTimer(i => i + 1), 1000, paused)\n *\n * return (\n * \n * {timer} seconds past\n *\n * setPaused(p => !p)}>{paused ? 'Play' : 'Pause' } \n * \n * )\n * ```\n *\n * @param fn an function run on each interval\n * @param ms The milliseconds duration of the interval\n * @param paused Whether or not the interval is currently running\n */\n\n/**\n * Creates a pausable `setInterval` that _fires_ immediately and is\n * properly cleaned up when a component unmounted\n *\n * ```tsx\n * const [timer, setTimer] = useState(-1)\n * useInterval(() => setTimer(i => i + 1), 1000, false, true)\n *\n * // will update to 0 on the first effect\n * return {timer} seconds past \n * ```\n *\n * @param fn an function run on each interval\n * @param ms The milliseconds duration of the interval\n * @param paused Whether or not the interval is currently running\n * @param runImmediately Whether to run the function immediately on mount or unpause\n * rather than waiting for the first interval to elapse\n *\n\n */\n\nfunction useInterval(fn, ms, paused = false, runImmediately = false) {\n let handle;\n const fnRef = useCommittedRef(fn);\n // this ref is necessary b/c useEffect will sometimes miss a paused toggle\n // orphaning a setTimeout chain in the aether, so relying on it's refresh logic is not reliable.\n const pausedRef = useCommittedRef(paused);\n const tick = () => {\n if (pausedRef.current) return;\n fnRef.current();\n schedule(); // eslint-disable-line no-use-before-define\n };\n\n const schedule = () => {\n clearTimeout(handle);\n handle = setTimeout(tick, ms);\n };\n useEffect(() => {\n if (runImmediately) {\n tick();\n } else {\n schedule();\n }\n return () => clearTimeout(handle);\n }, [paused, runImmediately]);\n}\nexport default useInterval;"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,OAAOC,eAAe,MAAM,mBAAmB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASC,WAAWA,CAACC,EAAE,EAAEC,EAAE,EAAEC,MAAM,GAAG,KAAK,EAAEC,cAAc,GAAG,KAAK,EAAE;EACnE,IAAIC,MAAM;EACV,MAAMC,KAAK,GAAGP,eAAe,CAACE,EAAE,CAAC;EACjC;EACA;EACA,MAAMM,SAAS,GAAGR,eAAe,CAACI,MAAM,CAAC;EACzC,MAAMK,IAAI,GAAGA,CAAA,KAAM;IACjB,IAAID,SAAS,CAACE,OAAO,EAAE;IACvBH,KAAK,CAACG,OAAO,CAAC,CAAC;IACfC,QAAQ,CAAC,CAAC,CAAC,CAAC;EACd,CAAC;EAED,MAAMA,QAAQ,GAAGA,CAAA,KAAM;IACrBC,YAAY,CAACN,MAAM,CAAC;IACpBA,MAAM,GAAGO,UAAU,CAACJ,IAAI,EAAEN,EAAE,CAAC;EAC/B,CAAC;EACDJ,SAAS,CAAC,MAAM;IACd,IAAIM,cAAc,EAAE;MAClBI,IAAI,CAAC,CAAC;IACR,CAAC,MAAM;MACLE,QAAQ,CAAC,CAAC;IACZ;IACA,OAAO,MAAMC,YAAY,CAACN,MAAM,CAAC;EACnC,CAAC,EAAE,CAACF,MAAM,EAAEC,cAAc,CAAC,CAAC;AAC9B;AACA,eAAeJ,WAAW","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/335f2cd50f6ebe63351bcfd9cb42e1701f52972a024e74e051fe9f653142497f.json b/public/node_modules/.cache/babel-loader/335f2cd50f6ebe63351bcfd9cb42e1701f52972a024e74e051fe9f653142497f.json
new file mode 100644
index 00000000..dc8c6a37
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/335f2cd50f6ebe63351bcfd9cb42e1701f52972a024e74e051fe9f653142497f.json
@@ -0,0 +1 @@
+{"ast":null,"code":"/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n function classNames() {\n var classes = '';\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (arg) {\n classes = appendClass(classes, parseValue(arg));\n }\n }\n return classes;\n }\n function parseValue(arg) {\n if (typeof arg === 'string' || typeof arg === 'number') {\n return arg;\n }\n if (typeof arg !== 'object') {\n return '';\n }\n if (Array.isArray(arg)) {\n return classNames.apply(null, arg);\n }\n if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n return arg.toString();\n }\n var classes = '';\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes = appendClass(classes, key);\n }\n }\n return classes;\n }\n function appendClass(value, newClass) {\n if (!newClass) {\n return value;\n }\n if (value) {\n return value + ' ' + newClass;\n }\n return value + newClass;\n }\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","map":{"version":3,"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","appendClass","parseValue","Array","isArray","apply","toString","Object","prototype","includes","key","call","value","newClass","module","exports","default","define","amd","window"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/classnames/index.js"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAEC,aAAY;EACZ,YAAY;;EAEZ,IAAIA,MAAM,GAAG,CAAC,CAAC,CAACC,cAAc;EAE9B,SAASC,UAAUA,CAAA,EAAI;IACtB,IAAIC,OAAO,GAAG,EAAE;IAEhB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,SAAS,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;MAC1C,IAAIG,GAAG,GAAGF,SAAS,CAACD,CAAC,CAAC;MACtB,IAAIG,GAAG,EAAE;QACRJ,OAAO,GAAGK,WAAW,CAACL,OAAO,EAAEM,UAAU,CAACF,GAAG,CAAC,CAAC;MAChD;IACD;IAEA,OAAOJ,OAAO;EACf;EAEA,SAASM,UAAUA,CAAEF,GAAG,EAAE;IACzB,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;MACvD,OAAOA,GAAG;IACX;IAEA,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;MAC5B,OAAO,EAAE;IACV;IAEA,IAAIG,KAAK,CAACC,OAAO,CAACJ,GAAG,CAAC,EAAE;MACvB,OAAOL,UAAU,CAACU,KAAK,CAAC,IAAI,EAAEL,GAAG,CAAC;IACnC;IAEA,IAAIA,GAAG,CAACM,QAAQ,KAAKC,MAAM,CAACC,SAAS,CAACF,QAAQ,IAAI,CAACN,GAAG,CAACM,QAAQ,CAACA,QAAQ,CAAC,CAAC,CAACG,QAAQ,CAAC,eAAe,CAAC,EAAE;MACrG,OAAOT,GAAG,CAACM,QAAQ,CAAC,CAAC;IACtB;IAEA,IAAIV,OAAO,GAAG,EAAE;IAEhB,KAAK,IAAIc,GAAG,IAAIV,GAAG,EAAE;MACpB,IAAIP,MAAM,CAACkB,IAAI,CAACX,GAAG,EAAEU,GAAG,CAAC,IAAIV,GAAG,CAACU,GAAG,CAAC,EAAE;QACtCd,OAAO,GAAGK,WAAW,CAACL,OAAO,EAAEc,GAAG,CAAC;MACpC;IACD;IAEA,OAAOd,OAAO;EACf;EAEA,SAASK,WAAWA,CAAEW,KAAK,EAAEC,QAAQ,EAAE;IACtC,IAAI,CAACA,QAAQ,EAAE;MACd,OAAOD,KAAK;IACb;IAEA,IAAIA,KAAK,EAAE;MACV,OAAOA,KAAK,GAAG,GAAG,GAAGC,QAAQ;IAC9B;IAEA,OAAOD,KAAK,GAAGC,QAAQ;EACxB;EAEA,IAAI,OAAOC,MAAM,KAAK,WAAW,IAAIA,MAAM,CAACC,OAAO,EAAE;IACpDpB,UAAU,CAACqB,OAAO,GAAGrB,UAAU;IAC/BmB,MAAM,CAACC,OAAO,GAAGpB,UAAU;EAC5B,CAAC,MAAM,IAAI,OAAOsB,MAAM,KAAK,UAAU,IAAI,OAAOA,MAAM,CAACC,GAAG,KAAK,QAAQ,IAAID,MAAM,CAACC,GAAG,EAAE;IACxF;IACAD,MAAM,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY;MACpC,OAAOtB,UAAU;IAClB,CAAC,CAAC;EACH,CAAC,MAAM;IACNwB,MAAM,CAACxB,UAAU,GAAGA,UAAU;EAC/B;AACD,CAAC,EAAC,CAAC","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/380cece44497b5a63b445f8fe1ec4facdac3d94e834fa71fc1ae39e801103c91.json b/public/node_modules/.cache/babel-loader/380cece44497b5a63b445f8fe1ec4facdac3d94e834fa71fc1ae39e801103c91.json
new file mode 100644
index 00000000..9a308934
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/380cece44497b5a63b445f8fe1ec4facdac3d94e834fa71fc1ae39e801103c91.json
@@ -0,0 +1 @@
+{"ast":null,"code":"/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(prevProps, prevState);\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n if (typeof Component.getDerivedStateFromProps !== 'function' && typeof prototype.getSnapshotBeforeUpdate !== 'function') {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n var componentName = Component.displayName || Component.name;\n var newApiName = typeof Component.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n throw Error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + componentName + ' uses ' + newApiName + ' but also contains the following legacy lifecycles:' + (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') + (foundWillReceivePropsName !== null ? '\\n ' + foundWillReceivePropsName : '') + (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') + '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://fb.me/react-async-component-lifecycle-hooks');\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error('Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype');\n }\n prototype.componentWillUpdate = componentWillUpdate;\n var componentDidUpdate = prototype.componentDidUpdate;\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(prevProps, prevState, maybeSnapshot) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag ? this.__reactInternalSnapshot : maybeSnapshot;\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n return Component;\n}\nexport { polyfill };","map":{"version":3,"names":["componentWillMount","state","constructor","getDerivedStateFromProps","props","undefined","setState","componentWillReceiveProps","nextProps","updater","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","__suppressDeprecationWarning","polyfill","Component","prototype","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","name","newApiName","componentDidUpdate","componentDidUpdatePolyfill","maybeSnapshot","snapshot","call"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/3a09cd4d522148d631414d18a778715ee59a82643b4b78bf8b40b65962a6d4d5.json b/public/node_modules/.cache/babel-loader/3a09cd4d522148d631414d18a778715ee59a82643b4b78bf8b40b65962a6d4d5.json
new file mode 100644
index 00000000..ad224b35
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/3a09cd4d522148d631414d18a778715ee59a82643b4b78bf8b40b65962a6d4d5.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useState } from 'react';\n\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef()\n *\n * useEffect(() => {\n * if (!element) return\n *\n * const calendar = new FullCalendar.Calendar(element)\n *\n * return () => {\n * calendar.destroy()\n * }\n * }, [element])\n *\n * return
\n * ```\n *\n * @category refs\n */\nexport default function useCallbackRef() {\n return useState(null);\n}","map":{"version":3,"names":["useState","useCallbackRef"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useCallbackRef.js"],"sourcesContent":["import { useState } from 'react';\n\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef()\n *\n * useEffect(() => {\n * if (!element) return\n *\n * const calendar = new FullCalendar.Calendar(element)\n *\n * return () => {\n * calendar.destroy()\n * }\n * }, [element])\n *\n * return
\n * ```\n *\n * @category refs\n */\nexport default function useCallbackRef() {\n return useState(null);\n}"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,OAAO;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAAA,EAAG;EACvC,OAAOD,QAAQ,CAAC,IAAI,CAAC;AACvB","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/3d2205d906ec7ac108c04dda0d41f8d6220100600bad560553908444da166e2f.json b/public/node_modules/.cache/babel-loader/3d2205d906ec7ac108c04dda0d41f8d6220100600bad560553908444da166e2f.json
new file mode 100644
index 00000000..07beefeb
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/3d2205d906ec7ac108c04dda0d41f8d6220100600bad560553908444da166e2f.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import invariant from 'invariant';\nvar noop = function noop() {};\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","map":{"version":3,"names":["invariant","noop","readOnlyPropType","handler","name","props","propName","undefined","Error","defaultKey","uncontrolledPropTypes","controlledValues","displayName","propTypes","Object","keys","forEach","prop","process","env","NODE_ENV","trim","length","isProp","key","charAt","toUpperCase","substr","canAcceptRef","component","prototype","isReactComponent"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/uncontrollable/lib/esm/utils.js"],"sourcesContent":["import invariant from 'invariant';\n\nvar noop = function noop() {};\n\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\n\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}"],"mappings":"AAAA,OAAOA,SAAS,MAAM,WAAW;AAEjC,IAAIC,IAAI,GAAG,SAASA,IAAIA,CAAA,EAAG,CAAC,CAAC;AAE7B,SAASC,gBAAgBA,CAACC,OAAO,EAAEC,IAAI,EAAE;EACvC,OAAO,UAAUC,KAAK,EAAEC,QAAQ,EAAE;IAChC,IAAID,KAAK,CAACC,QAAQ,CAAC,KAAKC,SAAS,EAAE;MACjC,IAAI,CAACF,KAAK,CAACF,OAAO,CAAC,EAAE;QACnB,OAAO,IAAIK,KAAK,CAAC,uBAAuB,GAAGF,QAAQ,GAAG,aAAa,GAAGF,IAAI,GAAG,IAAI,IAAI,cAAc,GAAGD,OAAO,GAAG,sDAAsD,CAAC,IAAI,sCAAsC,GAAGM,UAAU,CAACH,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,kBAAkB,GAAGH,OAAO,GAAG,IAAI,CAAC,CAAC;MAC5R;IACF;EACF,CAAC;AACH;AAEA,OAAO,SAASO,qBAAqBA,CAACC,gBAAgB,EAAEC,WAAW,EAAE;EACnE,IAAIC,SAAS,GAAG,CAAC,CAAC;EAClBC,MAAM,CAACC,IAAI,CAACJ,gBAAgB,CAAC,CAACK,OAAO,CAAC,UAAUC,IAAI,EAAE;IACpD;IACAJ,SAAS,CAACJ,UAAU,CAACQ,IAAI,CAAC,CAAC,GAAGhB,IAAI;IAElC,IAAIiB,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,IAAIjB,OAAO,GAAGQ,gBAAgB,CAACM,IAAI,CAAC;MACpC,EAAE,OAAOd,OAAO,KAAK,QAAQ,IAAIA,OAAO,CAACkB,IAAI,CAAC,CAAC,CAACC,MAAM,CAAC,GAAGJ,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAAGpB,SAAS,CAAC,KAAK,EAAE,wGAAwG,EAAEY,WAAW,EAAEK,IAAI,CAAC,GAAGjB,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;MAC3Qa,SAAS,CAACI,IAAI,CAAC,GAAGf,gBAAgB,CAACC,OAAO,EAAES,WAAW,CAAC;IAC1D;EACF,CAAC,CAAC;EACF,OAAOC,SAAS;AAClB;AACA,OAAO,SAASU,MAAMA,CAAClB,KAAK,EAAEY,IAAI,EAAE;EAClC,OAAOZ,KAAK,CAACY,IAAI,CAAC,KAAKV,SAAS;AAClC;AACA,OAAO,SAASE,UAAUA,CAACe,GAAG,EAAE;EAC9B,OAAO,SAAS,GAAGA,GAAG,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGF,GAAG,CAACG,MAAM,CAAC,CAAC,CAAC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASC,YAAYA,CAACC,SAAS,EAAE;EACtC,OAAO,CAAC,CAACA,SAAS,KAAK,OAAOA,SAAS,KAAK,UAAU,IAAIA,SAAS,CAACC,SAAS,IAAID,SAAS,CAACC,SAAS,CAACC,gBAAgB,CAAC;AACxH","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/3d38973c1622776ef0fb009d1fbf34f9613c67e4fba84cfe79b791b98f84a2b8.json b/public/node_modules/.cache/babel-loader/3d38973c1622776ef0fb009d1fbf34f9613c67e4fba84cfe79b791b98f84a2b8.json
new file mode 100644
index 00000000..04b27d1f
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/3d38973c1622776ef0fb009d1fbf34f9613c67e4fba84cfe79b791b98f84a2b8.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/index.js\";\nimport React, { StrictMode } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { BrowserRouter, Routes, Route } from \"react-router\";\nimport Home from \"./Home\";\nimport Projects from \"./Projects\";\nimport Contact from \"./Contact\";\nimport About from \"./About\";\nimport Blog from \"./Blog\";\nimport Resume from \"./Resume\";\nimport \"./styles.css\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst root = document.getElementById(\"root\");\nReactDOM.createRoot(root).render(/*#__PURE__*/_jsxDEV(BrowserRouter, {\n children: /*#__PURE__*/_jsxDEV(Routes, {\n children: [/*#__PURE__*/_jsxDEV(Route, {\n path: \"/\",\n element: /*#__PURE__*/_jsxDEV(Home, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/projects\",\n element: /*#__PURE__*/_jsxDEV(Projects, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 40\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/contact\",\n element: /*#__PURE__*/_jsxDEV(Contact, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 39\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/about\",\n element: /*#__PURE__*/_jsxDEV(About, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 37\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/blog\",\n element: /*#__PURE__*/_jsxDEV(Blog, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/resume\",\n element: /*#__PURE__*/_jsxDEV(Resume, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 38\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 5\n }, this)\n}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 3\n}, this));","map":{"version":3,"names":["React","StrictMode","ReactDOM","BrowserRouter","Routes","Route","Home","Projects","Contact","About","Blog","Resume","jsxDEV","_jsxDEV","root","document","getElementById","createRoot","render","children","path","element","fileName","_jsxFileName","lineNumber","columnNumber"],"sources":["/home/violet/documents/development/portfolio/public/src/index.js"],"sourcesContent":["import React, { StrictMode } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { BrowserRouter, Routes, Route } from \"react-router\";\n\nimport Home from \"./Home\";\nimport Projects from \"./Projects\";\nimport Contact from \"./Contact\";\nimport About from \"./About\";\nimport Blog from \"./Blog\";\nimport Resume from \"./Resume\";\nimport \"./styles.css\";\n\nconst root = document.getElementById(\"root\");\n\nReactDOM.createRoot(root).render(\n \n \n } />\n } />\n } />\n } />\n } />\n } />\n \n \n);\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,QAAQ,MAAM,kBAAkB;AACvC,SAASC,aAAa,EAAEC,MAAM,EAAEC,KAAK,QAAQ,cAAc;AAE3D,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,QAAQ,MAAM,YAAY;AACjC,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAO,cAAc;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAEtB,MAAMC,IAAI,GAAGC,QAAQ,CAACC,cAAc,CAAC,MAAM,CAAC;AAE5Cd,QAAQ,CAACe,UAAU,CAACH,IAAI,CAAC,CAACI,MAAM,cAC9BL,OAAA,CAACV,aAAa;EAAAgB,QAAA,eACZN,OAAA,CAACT,MAAM;IAAAe,QAAA,gBACLN,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,GAAG;MAACC,OAAO,eAAER,OAAA,CAACP,IAAI;QAAAgB,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACrCZ,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,WAAW;MAACC,OAAO,eAAER,OAAA,CAACN,QAAQ;QAAAe,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACjDZ,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,UAAU;MAACC,OAAO,eAAER,OAAA,CAACL,OAAO;QAAAc,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eAC/CZ,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,QAAQ;MAACC,OAAO,eAAER,OAAA,CAACJ,KAAK;QAAAa,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eAC3CZ,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,OAAO;MAACC,OAAO,eAAER,OAAA,CAACH,IAAI;QAAAY,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACzCZ,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,SAAS;MAACC,OAAO,eAAER,OAAA,CAACF,MAAM;QAAAW,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA;IAAAH,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACvC;AAAC;EAAAH,QAAA,EAAAC,YAAA;EAAAC,UAAA;EAAAC,YAAA;AAAA,OACI,CACjB,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/3df9c17aa17f1482ec4e9aeb1b6603052af8f9bec83c482ab0070cebe38aeaf9.json b/public/node_modules/.cache/babel-loader/3df9c17aa17f1482ec4e9aeb1b6603052af8f9bec83c482ab0070cebe38aeaf9.json
new file mode 100644
index 00000000..0d0a4068
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/3df9c17aa17f1482ec4e9aeb1b6603052af8f9bec83c482ab0070cebe38aeaf9.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useEffect } from 'react';\nimport useEventCallback from './useEventCallback';\n/**\n * Attaches an event handler outside directly to specified DOM element\n * bypassing the react synthetic event system.\n *\n * @param element The target to listen for events on\n * @param event The DOM event name\n * @param handler An event handler\n * @param capture Whether or not to listen during the capture event phase\n */\nexport default function useEventListener(eventTarget, event, listener, capture = false) {\n const handler = useEventCallback(listener);\n useEffect(() => {\n const target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;\n target.addEventListener(event, handler, capture);\n return () => target.removeEventListener(event, handler, capture);\n }, [eventTarget]);\n}","map":{"version":3,"names":["useEffect","useEventCallback","useEventListener","eventTarget","event","listener","capture","handler","target","addEventListener","removeEventListener"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useEventListener.js"],"sourcesContent":["import { useEffect } from 'react';\nimport useEventCallback from './useEventCallback';\n/**\n * Attaches an event handler outside directly to specified DOM element\n * bypassing the react synthetic event system.\n *\n * @param element The target to listen for events on\n * @param event The DOM event name\n * @param handler An event handler\n * @param capture Whether or not to listen during the capture event phase\n */\nexport default function useEventListener(eventTarget, event, listener, capture = false) {\n const handler = useEventCallback(listener);\n useEffect(() => {\n const target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;\n target.addEventListener(event, handler, capture);\n return () => target.removeEventListener(event, handler, capture);\n }, [eventTarget]);\n}"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,gBAAgBA,CAACC,WAAW,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,OAAO,GAAG,KAAK,EAAE;EACtF,MAAMC,OAAO,GAAGN,gBAAgB,CAACI,QAAQ,CAAC;EAC1CL,SAAS,CAAC,MAAM;IACd,MAAMQ,MAAM,GAAG,OAAOL,WAAW,KAAK,UAAU,GAAGA,WAAW,CAAC,CAAC,GAAGA,WAAW;IAC9EK,MAAM,CAACC,gBAAgB,CAACL,KAAK,EAAEG,OAAO,EAAED,OAAO,CAAC;IAChD,OAAO,MAAME,MAAM,CAACE,mBAAmB,CAACN,KAAK,EAAEG,OAAO,EAAED,OAAO,CAAC;EAClE,CAAC,EAAE,CAACH,WAAW,CAAC,CAAC;AACnB","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/4168ed4fbedf6c3f162257d37628908a601d4360a6d6523bff799e747271d70a.json b/public/node_modules/.cache/babel-loader/4168ed4fbedf6c3f162257d37628908a601d4360a6d6523bff799e747271d70a.json
new file mode 100644
index 00000000..7b7920e0
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/4168ed4fbedf6c3f162257d37628908a601d4360a6d6523bff799e747271d70a.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/Nav.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Nav() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"nav\", {\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/\",\n children: \"Josh Ashton\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/projects\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/about\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"About\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/contact\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/resume\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Resume\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/blog\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = Nav;\nvar _c;\n$RefreshReg$(_c, \"Nav\");","map":{"version":3,"names":["Nav","_jsxDEV","_Fragment","children","href","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/Nav.js"],"sourcesContent":["/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Nav() {\n return (\n <>\n \n Josh Ashton \n \n \n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,GAAGA,CAAA,EAAG;EAC5B,oBACEC,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAAE,QAAA,gBACEF,OAAA;QAAGG,IAAI,EAAC,GAAG;QAAAD,QAAA,EAAC;MAAW;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAG,CAAC,eAC3BP,OAAA;QAAAE,QAAA,eACEF,OAAA;UAAAE,QAAA,gBACEF,OAAA;YAAGG,IAAI,EAAC,WAAW;YAAAD,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAQ;cAAAE,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACzCP,OAAA;YAAGG,IAAI,EAAC,QAAQ;YAAAD,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAK;cAAAE,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACnCP,OAAA;YAAGG,IAAI,EAAC,UAAU;YAAAD,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAO;cAAAE,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACvCP,OAAA;YAAGG,IAAI,EAAC,SAAS;YAAAD,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAM;cAAAE,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACrCP,OAAA;YAAGG,IAAI,EAAC,OAAO;YAAAD,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAI;cAAAE,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC/B;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACF,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH;EAAC,gBACN,CAAC;AAEP;AAACC,EAAA,GAjBuBT,GAAG;AAAA,IAAAS,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/4263b65553118498549108eb67e63125211c4ca89d41c72591640336cfa34ca7.json b/public/node_modules/.cache/babel-loader/4263b65553118498549108eb67e63125211c4ca89d41c72591640336cfa34ca7.json
new file mode 100644
index 00000000..e29de25c
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/4263b65553118498549108eb67e63125211c4ca89d41c72591640336cfa34ca7.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n const projectDisplays = [/*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, this), /*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, this)];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","projectDisplays","ProjectCard","img","title","description","url","fileName","_jsxFileName","lineNumber","columnNumber","children","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\n\nexport default function Projects() {\n const projectDisplays = [\n ,\n ,\n ];\n\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,MAAMC,eAAe,GAAG,cACtBJ,OAAA,CAACK,WAAW;IAACC,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,eACjHb,OAAA,CAACK,WAAW;IAACC,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,CAClH;EAED,oBACEb,OAAA,CAAAE,SAAA;IAAAY,QAAA,gBACEd,OAAA,CAACH,UAAU;MAAAa,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACdb,OAAA,CAACF,MAAM;MAAAY,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACE,EAAA,GAZuBZ,QAAQ;AAAA,IAAAY,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/43f02009acd178a08e342751a5e9543bf0c2334ebf72bb6be93bbf0ded9618fe.json b/public/node_modules/.cache/babel-loader/43f02009acd178a08e342751a5e9543bf0c2334ebf72bb6be93bbf0ded9618fe.json
new file mode 100644
index 00000000..d78fd960
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/43f02009acd178a08e342751a5e9543bf0c2334ebf72bb6be93bbf0ded9618fe.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n const ref = useCommittedRef(fn);\n return useCallback(function (...args) {\n return ref.current && ref.current(...args);\n }, [ref]);\n}","map":{"version":3,"names":["useCallback","useCommittedRef","useEventCallback","fn","ref","args","current"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useEventCallback.js"],"sourcesContent":["import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n const ref = useCommittedRef(fn);\n return useCallback(function (...args) {\n return ref.current && ref.current(...args);\n }, [ref]);\n}"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,eAAe,SAASC,gBAAgBA,CAACC,EAAE,EAAE;EAC3C,MAAMC,GAAG,GAAGH,eAAe,CAACE,EAAE,CAAC;EAC/B,OAAOH,WAAW,CAAC,UAAU,GAAGK,IAAI,EAAE;IACpC,OAAOD,GAAG,CAACE,OAAO,IAAIF,GAAG,CAACE,OAAO,CAAC,GAAGD,IAAI,CAAC;EAC5C,CAAC,EAAE,CAACD,GAAG,CAAC,CAAC;AACX","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/448318307e0b70b7c78fbba205b3da57ff68f97baec8c9f77f56b9867aafbeb8.json b/public/node_modules/.cache/babel-loader/448318307e0b70b7c78fbba205b3da57ff68f97baec8c9f77f56b9867aafbeb8.json
new file mode 100644
index 00000000..d15263f5
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/448318307e0b70b7c78fbba205b3da57ff68f97baec8c9f77f56b9867aafbeb8.json
@@ -0,0 +1 @@
+{"ast":null,"code":"\"use client\";\n\nimport * as React from 'react';\n\n// TODO: check\n\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'NavbarContext';\nexport default context;","map":{"version":3,"names":["React","context","createContext","displayName"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/esm/NavbarContext.js"],"sourcesContent":["\"use client\";\n\nimport * as React from 'react';\n\n// TODO: check\n\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'NavbarContext';\nexport default context;"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;;AAEA,MAAMC,OAAO,GAAG,aAAaD,KAAK,CAACE,aAAa,CAAC,IAAI,CAAC;AACtDD,OAAO,CAACE,WAAW,GAAG,eAAe;AACrC,eAAeF,OAAO","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/44ff8a8328c3dc41d73b1ed0117de4dfc39517b88aa56c93e3d1d45a017eacd7.json b/public/node_modules/.cache/babel-loader/44ff8a8328c3dc41d73b1ed0117de4dfc39517b88aa56c93e3d1d45a017eacd7.json
new file mode 100644
index 00000000..c206367b
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/44ff8a8328c3dc41d73b1ed0117de4dfc39517b88aa56c93e3d1d45a017eacd7.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Contact.js\";\nimport Nav from './components/Nav';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Contact() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Nav, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Contact;\nvar _c;\n$RefreshReg$(_c, \"Contact\");","map":{"version":3,"names":["Nav","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Contact","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Contact.js"],"sourcesContent":["import Nav from './components/Nav';\nimport Footer from './components/Footer';\n\nexport default function Contact() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,kBAAkB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,OAAOA,CAAA,EAAG;EAChC,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,GAAG;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACPR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,OAAO;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/4bba1e9e299d99f4a72e4631aa4ce2511369297da0e6d20358f167ae83137f9f.json b/public/node_modules/.cache/babel-loader/4bba1e9e299d99f4a72e4631aa4ce2511369297da0e6d20358f167ae83137f9f.json
new file mode 100644
index 00000000..72b360c8
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/4bba1e9e299d99f4a72e4631aa4ce2511369297da0e6d20358f167ae83137f9f.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import useEventListener from './useEventListener';\nimport { useCallback } from 'react';\n/**\n * Attaches an event handler outside directly to the `document`,\n * bypassing the react synthetic event system.\n *\n * ```ts\n * useGlobalListener('keydown', (event) => {\n * console.log(event.key)\n * })\n * ```\n *\n * @param event The DOM event name\n * @param handler An event handler\n * @param capture Whether or not to listen during the capture event phase\n */\nexport default function useGlobalListener(event, handler, capture = false) {\n const documentTarget = useCallback(() => document, []);\n return useEventListener(documentTarget, event, handler, capture);\n}","map":{"version":3,"names":["useEventListener","useCallback","useGlobalListener","event","handler","capture","documentTarget","document"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useGlobalListener.js"],"sourcesContent":["import useEventListener from './useEventListener';\nimport { useCallback } from 'react';\n/**\n * Attaches an event handler outside directly to the `document`,\n * bypassing the react synthetic event system.\n *\n * ```ts\n * useGlobalListener('keydown', (event) => {\n * console.log(event.key)\n * })\n * ```\n *\n * @param event The DOM event name\n * @param handler An event handler\n * @param capture Whether or not to listen during the capture event phase\n */\nexport default function useGlobalListener(event, handler, capture = false) {\n const documentTarget = useCallback(() => document, []);\n return useEventListener(documentTarget, event, handler, capture);\n}"],"mappings":"AAAA,OAAOA,gBAAgB,MAAM,oBAAoB;AACjD,SAASC,WAAW,QAAQ,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,iBAAiBA,CAACC,KAAK,EAAEC,OAAO,EAAEC,OAAO,GAAG,KAAK,EAAE;EACzE,MAAMC,cAAc,GAAGL,WAAW,CAAC,MAAMM,QAAQ,EAAE,EAAE,CAAC;EACtD,OAAOP,gBAAgB,CAACM,cAAc,EAAEH,KAAK,EAAEC,OAAO,EAAEC,OAAO,CAAC;AAClE","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/4bc1c5fdc79345cdc1bbc97ac07d56a81111a0bfb43ae10b1599ac82e6dadb89.json b/public/node_modules/.cache/babel-loader/4bc1c5fdc79345cdc1bbc97ac07d56a81111a0bfb43ae10b1599ac82e6dadb89.json
new file mode 100644
index 00000000..1ec14f80
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/4bc1c5fdc79345cdc1bbc97ac07d56a81111a0bfb43ae10b1599ac82e6dadb89.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/Navigation.js\";\nimport Nav from 'react-bootstrap/Nav';\nimport Button from 'react-bootstrap/Button';\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Navigation() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"nav\", {\n className: \"navbar navbar-expand-lg navbar-light bg-light\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"navbar-brand\",\n href: \"/\",\n children: \"Josh Ashton\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n \"data-bs-toggle\": \"collapse\",\n \"data-bs-target\": \"#navbarNav\",\n \"aria-controls\": \"navbarNav\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarNav\",\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n className: \"navbar-nav nav-fill w-100\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/projects\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/about\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"About\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 51\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/contact\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 53\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/resume\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Resume\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 52\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/blog\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 50\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = Navigation;\nvar _c;\n$RefreshReg$(_c, \"Navigation\");","map":{"version":3,"names":["Nav","Button","jsxDEV","_jsxDEV","Fragment","_Fragment","Navigation","children","className","href","fileName","_jsxFileName","lineNumber","columnNumber","type","id","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/Navigation.js"],"sourcesContent":["import Nav from 'react-bootstrap/Nav';\nimport Button from 'react-bootstrap/Button';\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Navigation() {\n return (\n <>\n \n Josh Ashton \n \n \n \n \n >\n );\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/559a8e9ad8479f8b9cc7a4f7e52cbca27bcee24c4677bbc98c46a03d3f2f9328.json b/public/node_modules/.cache/babel-loader/559a8e9ad8479f8b9cc7a4f7e52cbca27bcee24c4677bbc98c46a03d3f2f9328.json
new file mode 100644
index 00000000..b70e41ad
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/559a8e9ad8479f8b9cc7a4f7e52cbca27bcee24c4677bbc98c46a03d3f2f9328.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Blog.js\";\nimport Nav from './components/Nav';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Nav, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Nav","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Blog.js"],"sourcesContent":["import Nav from './components/Nav';\nimport Footer from './components/Footer';\n\nexport default function Projects() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,kBAAkB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,GAAG;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACPR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,QAAQ;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/56ff941c8b02db357645290f43d15a3116a0893c362095eb2a8292cc81be0572.json b/public/node_modules/.cache/babel-loader/56ff941c8b02db357645290f43d15a3116a0893c362095eb2a8292cc81be0572.json
new file mode 100644
index 00000000..3fbc0bfb
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/56ff941c8b02db357645290f43d15a3116a0893c362095eb2a8292cc81be0572.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useReducer } from 'react';\n\n/**\n * Returns a function that triggers a component update. the hook equivalent to\n * `this.forceUpdate()` in a class component. In most cases using a state value directly\n * is preferable but may be required in some advanced usages of refs for interop or\n * when direct DOM manipulation is required.\n *\n * ```ts\n * const forceUpdate = useForceUpdate();\n *\n * const updateOnClick = useCallback(() => {\n * forceUpdate()\n * }, [forceUpdate])\n *\n * return Hi there \n * ```\n */\nexport default function useForceUpdate() {\n // The toggling state value is designed to defeat React optimizations for skipping\n // updates when they are strictly equal to the last state value\n const [, dispatch] = useReducer(revision => revision + 1, 0);\n return dispatch;\n}","map":{"version":3,"names":["useReducer","useForceUpdate","dispatch","revision"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useForceUpdate.js"],"sourcesContent":["import { useReducer } from 'react';\n\n/**\n * Returns a function that triggers a component update. the hook equivalent to\n * `this.forceUpdate()` in a class component. In most cases using a state value directly\n * is preferable but may be required in some advanced usages of refs for interop or\n * when direct DOM manipulation is required.\n *\n * ```ts\n * const forceUpdate = useForceUpdate();\n *\n * const updateOnClick = useCallback(() => {\n * forceUpdate()\n * }, [forceUpdate])\n *\n * return Hi there \n * ```\n */\nexport default function useForceUpdate() {\n // The toggling state value is designed to defeat React optimizations for skipping\n // updates when they are strictly equal to the last state value\n const [, dispatch] = useReducer(revision => revision + 1, 0);\n return dispatch;\n}"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAAA,EAAG;EACvC;EACA;EACA,MAAM,GAAGC,QAAQ,CAAC,GAAGF,UAAU,CAACG,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;EAC5D,OAAOD,QAAQ;AACjB","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/58ac85bf01e588251669b75f30734b85882c27465af5faab68108ac0ddd10434.json b/public/node_modules/.cache/babel-loader/58ac85bf01e588251669b75f30734b85882c27465af5faab68108ac0ddd10434.json
new file mode 100644
index 00000000..168999fd
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/58ac85bf01e588251669b75f30734b85882c27465af5faab68108ac0ddd10434.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/About.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function About() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = About;\nvar _c;\n$RefreshReg$(_c, \"About\");","map":{"version":3,"names":["Navigation","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","About","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/About.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\n\nexport default function About() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,UAAU;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACdR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,KAAK;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/5c345c51fcaa62ccf51200710e267ff9a3807d571a82cbca376f3d41f9c2cd95.json b/public/node_modules/.cache/babel-loader/5c345c51fcaa62ccf51200710e267ff9a3807d571a82cbca376f3d41f9c2cd95.json
new file mode 100644
index 00000000..a02305ec
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/5c345c51fcaa62ccf51200710e267ff9a3807d571a82cbca376f3d41f9c2cd95.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import * as React from 'react';\nconst TabContext = /*#__PURE__*/React.createContext(null);\nexport default TabContext;","map":{"version":3,"names":["React","TabContext","createContext"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/esm/TabContext.js"],"sourcesContent":["import * as React from 'react';\nconst TabContext = /*#__PURE__*/React.createContext(null);\nexport default TabContext;"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,MAAMC,UAAU,GAAG,aAAaD,KAAK,CAACE,aAAa,CAAC,IAAI,CAAC;AACzD,eAAeD,UAAU","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/62b671025538cbe39873f1ff7ef2c3b88c42c8a2074e40f512dd042d0584dda5.json b/public/node_modules/.cache/babel-loader/62b671025538cbe39873f1ff7ef2c3b88c42c8a2074e40f512dd042d0584dda5.json
new file mode 100644
index 00000000..5dcc8e52
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/62b671025538cbe39873f1ff7ef2c3b88c42c8a2074e40f512dd042d0584dda5.json
@@ -0,0 +1 @@
+{"ast":null,"code":"\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","map":{"version":3,"names":["React","useContext","useMemo","jsx","_jsx","DEFAULT_BREAKPOINTS","DEFAULT_MIN_BREAKPOINT","ThemeContext","createContext","prefixes","breakpoints","minBreakpoint","Consumer","Provider","ThemeProvider","dir","children","contextValue","value","useBootstrapPrefix","prefix","defaultPrefix","useBootstrapBreakpoints","useBootstrapMinBreakpoint","useIsRTL","createBootstrapComponent","Component","opts","isClassy","prototype","isReactComponent","forwardRefAs","Wrapped","forwardRef","props","ref","bsPrefix","displayName","name","ThemeConsumer"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/esm/ThemeProvider.js"],"sourcesContent":["\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/692011f7eee661d24da31be6ddc9a0f47d679126c875658552c32dac7ebd9752.json b/public/node_modules/.cache/babel-loader/692011f7eee661d24da31be6ddc9a0f47d679126c875658552c32dac7ebd9752.json
new file mode 100644
index 00000000..48fde930
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/692011f7eee661d24da31be6ddc9a0f47d679126c875658552c32dac7ebd9752.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/Navigation.js\";\nimport Nav from 'react-bootstrap/Nav';\nimport Button from 'react-bootstrap/Button';\n/*\n * Create a nav bar component.\n * \n * Use Bootstrap for styling.\n */\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Navigation() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"nav\", {\n className: \"navbar navbar-expand-lg navbar-light bg-light\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"navbar-brand\",\n href: \"/\",\n children: \"Josh Ashton\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n \"data-bs-toggle\": \"collapse\",\n \"data-bs-target\": \"#navbarNav\",\n \"aria-controls\": \"navbarNav\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"navbar-toggler-icon\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarNav\",\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n className: \"navbar-nav nav-fill w-100\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/projects\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n className: \"nav-item\",\n children: \"Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/about\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n className: \"nav-item\",\n children: \"About\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 51\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/contact\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n className: \"nav-item\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 53\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/resume\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n className: \"nav-item\",\n children: \"Resume\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 52\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/blog\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n className: \"nav-item\",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 50\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = Navigation;\nvar _c;\n$RefreshReg$(_c, \"Navigation\");","map":{"version":3,"names":["Nav","Button","jsxDEV","_jsxDEV","Fragment","_Fragment","Navigation","children","className","href","fileName","_jsxFileName","lineNumber","columnNumber","type","id","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/Navigation.js"],"sourcesContent":["import Nav from 'react-bootstrap/Nav';\nimport Button from 'react-bootstrap/Button';\n/*\n * Create a nav bar component.\n * \n * Use Bootstrap for styling.\n */\nexport default function Navigation() {\n return (\n <>\n \n Josh Ashton \n \n \n \n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,qBAAqB;AACrC,OAAOC,MAAM,MAAM,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AAJA,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAKA,eAAe,SAASC,UAAUA,CAAA,EAAG;EACnC,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,eACEJ,OAAA;MAAKK,SAAS,EAAC,+CAA+C;MAAAD,QAAA,gBAC5DJ,OAAA;QAAGK,SAAS,EAAC,cAAc;QAACC,IAAI,EAAC,GAAG;QAAAF,QAAA,EAAC;MAAW;QAAAG,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAG,CAAC,eACpDV,OAAA;QAAQK,SAAS,EAAC,gBAAgB;QAACM,IAAI,EAAC,QAAQ;QAAC,kBAAe,UAAU;QAAC,kBAAe,YAAY;QAAC,iBAAc,WAAW;QAAC,iBAAc,OAAO;QAAC,cAAW,mBAAmB;QAAAP,QAAA,eACnLJ,OAAA;UAAMK,SAAS,EAAC;QAAqB;UAAAE,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAO;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACvC,CAAC,eACTV,OAAA;QAAKK,SAAS,EAAC,0BAA0B;QAACO,EAAE,EAAC,WAAW;QAAAR,QAAA,eACtDJ,OAAA;UAAIK,SAAS,EAAC,2BAA2B;UAAAD,QAAA,gBACvCJ,OAAA;YAAGK,SAAS,EAAC,UAAU;YAACC,IAAI,EAAC,WAAW;YAAAF,QAAA,eAACJ,OAAA;cAAIK,SAAS,EAAC,UAAU;cAAAD,QAAA,EAAC;YAAQ;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACnFV,OAAA;YAAGK,SAAS,EAAC,UAAU;YAACC,IAAI,EAAC,QAAQ;YAAAF,QAAA,eAACJ,OAAA;cAAIK,SAAS,EAAC,UAAU;cAAAD,QAAA,EAAC;YAAK;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eAC7EV,OAAA;YAAGK,SAAS,EAAC,UAAU;YAACC,IAAI,EAAC,UAAU;YAAAF,QAAA,eAACJ,OAAA;cAAIK,SAAS,EAAC,UAAU;cAAAD,QAAA,EAAC;YAAO;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACjFV,OAAA;YAAGK,SAAS,EAAC,UAAU;YAACC,IAAI,EAAC,SAAS;YAAAF,QAAA,eAACJ,OAAA;cAAIK,SAAS,EAAC,UAAU;cAAAD,QAAA,EAAC;YAAM;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eAC/EV,OAAA;YAAGK,SAAS,EAAC,UAAU;YAACC,IAAI,EAAC,OAAO;YAAAF,QAAA,eAACJ,OAAA;cAAIK,SAAS,EAAC,UAAU;cAAAD,QAAA,EAAC;YAAI;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACzE;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACF,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH;EAAC,gBACN,CAAC;AAEP;AAACG,EAAA,GApBuBV,UAAU;AAAA,IAAAU,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/6cfb02aea4f939dc03ffe8e1f3d5e9c1071aec6aa9f25048f742b9a0e980309e.json b/public/node_modules/.cache/babel-loader/6cfb02aea4f939dc03ffe8e1f3d5e9c1071aec6aa9f25048f742b9a0e980309e.json
new file mode 100644
index 00000000..5e27019f
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/6cfb02aea4f939dc03ffe8e1f3d5e9c1071aec6aa9f25048f742b9a0e980309e.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/Nav.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Nav() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"nav\", {\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/\",\n children: \"Josh Ashton\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/projects\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/about\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"About\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/contact\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"/resume\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Resume\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = Nav;\nvar _c;\n$RefreshReg$(_c, \"Nav\");","map":{"version":3,"names":["Nav","_jsxDEV","_Fragment","children","href","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/Nav.js"],"sourcesContent":["/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Nav() {\n return (\n <>\n \n Josh Ashton \n \n \n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,GAAGA,CAAA,EAAG;EAC5B,oBACEC,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAAE,QAAA,gBACEF,OAAA;QAAGG,IAAI,EAAC,GAAG;QAAAD,QAAA,EAAC;MAAW;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAG,CAAC,eAC3BP,OAAA;QAAAE,QAAA,eACEF,OAAA;UAAAE,QAAA,gBACEF,OAAA;YAAGG,IAAI,EAAC,WAAW;YAAAD,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAQ;cAAAE,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACzCP,OAAA;YAAGG,IAAI,EAAC,QAAQ;YAAAD,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAK;cAAAE,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACnCP,OAAA;YAAGG,IAAI,EAAC,UAAU;YAAAD,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAO;cAAAE,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACvCP,OAAA;YAAGG,IAAI,EAAC,SAAS;YAAAD,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAM;cAAAE,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACnC;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACF,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH;EAAC,gBACN,CAAC;AAEP;AAACC,EAAA,GAhBuBT,GAAG;AAAA,IAAAS,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/7223f0db5c623364abba2391f9b688c446316056a095e17d9c7112d094b9e499.json b/public/node_modules/.cache/babel-loader/7223f0db5c623364abba2391f9b688c446316056a095e17d9c7112d094b9e499.json
new file mode 100644
index 00000000..65e774ad
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/7223f0db5c623364abba2391f9b688c446316056a095e17d9c7112d094b9e499.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Home.js\";\nimport Navigation from './components/Navigation';\nimport Splash from './components/Splash';\nimport ProjectCard from './components/ProjectCard';\nimport Footer from './components/Footer';\nimport FeaturedContent from './components/FeaturedContent';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Home() {\n const projectCards = [\n /*#__PURE__*/\n //ProjectCard(\"img/one-ai.png\", \"One AI\", \"ASDF\", \"https://github.com/quaxlyqueen/one-ai\"),\n _jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this), /*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 5\n }, this), /*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 5\n }, this), /*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this)];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Splash, {\n primaryText: \"Hi, I'm Josh Ashton!\",\n secondaryText: \"Junior full stack developer.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(FeaturedContent, {\n content: projectCards\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Home;\nvar _c;\n$RefreshReg$(_c, \"Home\");","map":{"version":3,"names":["Navigation","Splash","ProjectCard","Footer","FeaturedContent","jsxDEV","_jsxDEV","Fragment","_Fragment","Home","projectCards","img","title","description","url","fileName","_jsxFileName","lineNumber","columnNumber","children","primaryText","secondaryText","content","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Home.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Splash from './components/Splash';\nimport ProjectCard from './components/ProjectCard';\nimport Footer from './components/Footer';\nimport FeaturedContent from './components/FeaturedContent';\n\nexport default function Home() {\n const projectCards = [\n //ProjectCard(\"img/one-ai.png\", \"One AI\", \"ASDF\", \"https://github.com/quaxlyqueen/one-ai\"),\n ,\n ,\n ,\n \n ];\n return (\n <>\n \n \n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,WAAW,MAAM,0BAA0B;AAClD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,eAAe,MAAM,8BAA8B;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAE3D,eAAe,SAASC,IAAIA,CAAA,EAAG;EAC7B,MAAMC,YAAY,GAAG;EAAA;EACnB;EACAJ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,eACjHZ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,eACjHZ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,eACjHZ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,CAClH;EACD,oBACEZ,OAAA,CAAAE,SAAA;IAAAW,QAAA,gBACEb,OAAA,CAACN,UAAU;MAAAe,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACdZ,OAAA,CAACL,MAAM;MAACmB,WAAW,EAAC,sBAAsB;MAACC,aAAa,EAAC;IAA8B;MAAAN,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAC,CAAC,eACzFZ,OAAA,CAACF,eAAe;MAACkB,OAAO,EAAEZ;IAAa;MAAAK,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eAC1CZ,OAAA,CAACH,MAAM;MAAAY,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACK,EAAA,GAhBuBd,IAAI;AAAA,IAAAc,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/744fcea781246a71a5dc6370f3001d413c689b24046752b10f13634d2876f8a8.json b/public/node_modules/.cache/babel-loader/744fcea781246a71a5dc6370f3001d413c689b24046752b10f13634d2876f8a8.json
new file mode 100644
index 00000000..3157faa3
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/744fcea781246a71a5dc6370f3001d413c689b24046752b10f13634d2876f8a8.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport ProjectDisplay from './components/ProjectDisplay';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n const data = [{\n frontend: \"flutter\",\n backend: \"go\",\n id: \"one-ai\",\n name: 'One AI',\n description: \"TODO\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: data.map(item => /*#__PURE__*/_jsxDEV(ProjectDisplay, {\n frontend: item.frontend,\n backend: item.backend,\n id: item.id,\n name: item.name,\n description: item.description,\n url: item.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","ProjectDisplay","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","data","frontend","backend","id","name","description","url","children","fileName","_jsxFileName","lineNumber","columnNumber","map","item","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport ProjectDisplay from './components/ProjectDisplay';\n\nexport default function Projects() {\n const data = [\n { frontend: \"flutter\", backend: \"go\", id: \"one-ai\", name: 'One AI', description: \"TODO\", url: \"https://github.com/quaxlyqueen/one-ai\"},\n ];\n\n return (\n <>\n \n \n {data.map(item => (\n
\n ))}\n
\n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,cAAc,MAAM,6BAA6B;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzD,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,MAAMC,IAAI,GAAG,CACX;IAAEC,QAAQ,EAAE,SAAS;IAAEC,OAAO,EAAE,IAAI;IAAEC,EAAE,EAAE,QAAQ;IAAEC,IAAI,EAAE,QAAQ;IAAEC,WAAW,EAAE,MAAM;IAAEC,GAAG,EAAE;EAAuC,CAAC,CACvI;EAED,oBACEV,OAAA,CAAAE,SAAA;IAAAS,QAAA,gBACEX,OAAA,CAACJ,UAAU;MAAAgB,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACZf,OAAA;MAAAW,QAAA,EACGP,IAAI,CAACY,GAAG,CAACC,IAAI,iBACZjB,OAAA,CAACF,cAAc;QAACO,QAAQ,EAAEY,IAAI,CAACZ,QAAS;QAACC,OAAO,EAAEW,IAAI,CAACX,OAAQ;QAACC,EAAE,EAAEU,IAAI,CAACV,EAAG;QAACC,IAAI,EAAES,IAAI,CAACT,IAAK;QAACC,WAAW,EAAEQ,IAAI,CAACR,WAAY;QAACC,GAAG,EAAEO,IAAI,CAACP;MAAI;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAC9I;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACC,CAAC,eACRf,OAAA,CAACH,MAAM;MAAAe,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACG,EAAA,GAhBuBf,QAAQ;AAAA,IAAAe,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/751869f9ec0b81aac7a3da2b31bdea87f88d6b1b714e963609e5be46fbaf5122.json b/public/node_modules/.cache/babel-loader/751869f9ec0b81aac7a3da2b31bdea87f88d6b1b714e963609e5be46fbaf5122.json
new file mode 100644
index 00000000..326c9347
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/751869f9ec0b81aac7a3da2b31bdea87f88d6b1b714e963609e5be46fbaf5122.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useMemo } from 'react';\nconst toFnRef = ref => !ref || typeof ref === 'function' ? ref : value => {\n ref.current = value;\n};\nexport function mergeRefs(refA, refB) {\n const a = toFnRef(refA);\n const b = toFnRef(refB);\n return value => {\n if (a) a(value);\n if (b) b(value);\n };\n}\n\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return \n * })\n * ```\n *\n * @param refA A Callback or mutable Ref\n * @param refB A Callback or mutable Ref\n * @category refs\n */\nfunction useMergedRefs(refA, refB) {\n return useMemo(() => mergeRefs(refA, refB), [refA, refB]);\n}\nexport default useMergedRefs;","map":{"version":3,"names":["useMemo","toFnRef","ref","value","current","mergeRefs","refA","refB","a","b","useMergedRefs"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useMergedRefs.js"],"sourcesContent":["import { useMemo } from 'react';\nconst toFnRef = ref => !ref || typeof ref === 'function' ? ref : value => {\n ref.current = value;\n};\nexport function mergeRefs(refA, refB) {\n const a = toFnRef(refA);\n const b = toFnRef(refB);\n return value => {\n if (a) a(value);\n if (b) b(value);\n };\n}\n\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return \n * })\n * ```\n *\n * @param refA A Callback or mutable Ref\n * @param refB A Callback or mutable Ref\n * @category refs\n */\nfunction useMergedRefs(refA, refB) {\n return useMemo(() => mergeRefs(refA, refB), [refA, refB]);\n}\nexport default useMergedRefs;"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,MAAMC,OAAO,GAAGC,GAAG,IAAI,CAACA,GAAG,IAAI,OAAOA,GAAG,KAAK,UAAU,GAAGA,GAAG,GAAGC,KAAK,IAAI;EACxED,GAAG,CAACE,OAAO,GAAGD,KAAK;AACrB,CAAC;AACD,OAAO,SAASE,SAASA,CAACC,IAAI,EAAEC,IAAI,EAAE;EACpC,MAAMC,CAAC,GAAGP,OAAO,CAACK,IAAI,CAAC;EACvB,MAAMG,CAAC,GAAGR,OAAO,CAACM,IAAI,CAAC;EACvB,OAAOJ,KAAK,IAAI;IACd,IAAIK,CAAC,EAAEA,CAAC,CAACL,KAAK,CAAC;IACf,IAAIM,CAAC,EAAEA,CAAC,CAACN,KAAK,CAAC;EACjB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,aAAaA,CAACJ,IAAI,EAAEC,IAAI,EAAE;EACjC,OAAOP,OAAO,CAAC,MAAMK,SAAS,CAACC,IAAI,EAAEC,IAAI,CAAC,EAAE,CAACD,IAAI,EAAEC,IAAI,CAAC,CAAC;AAC3D;AACA,eAAeG,aAAa","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/7644fee190e70264af8dac6d9feeaf4e21a20ba757238e224e206b2ae29c3d55.json b/public/node_modules/.cache/babel-loader/7644fee190e70264af8dac6d9feeaf4e21a20ba757238e224e206b2ae29c3d55.json
new file mode 100644
index 00000000..c09cada6
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/7644fee190e70264af8dac6d9feeaf4e21a20ba757238e224e206b2ae29c3d55.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Contact.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Contact() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Contact;\nvar _c;\n$RefreshReg$(_c, \"Contact\");","map":{"version":3,"names":["Navigation","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Contact","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Contact.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\n\nexport default function Contact() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,OAAOA,CAAA,EAAG;EAChC,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,UAAU;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACdR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,OAAO;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/7d6531d3213077d47fad9ef8dd6cc21ef6d1fe4f8cec32bf35d66b68a55a0a31.json b/public/node_modules/.cache/babel-loader/7d6531d3213077d47fad9ef8dd6cc21ef6d1fe4f8cec32bf35d66b68a55a0a31.json
new file mode 100644
index 00000000..454e8917
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/7d6531d3213077d47fad9ef8dd6cc21ef6d1fe4f8cec32bf35d66b68a55a0a31.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/Navigation.js\";\nimport Nav from 'react-bootstrap/Nav';\nimport Button from 'react-bootstrap/Button';\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Navigation() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"nav\", {\n className: \"navbar navbar-expand-lg navbar-light bg-light\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"navbar-brand\",\n href: \"/\",\n children: \"Josh Ashton\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n \"data-bs-toggle\": \"collapse\",\n \"data-bs-target\": \"#navbarNav\",\n \"aria-controls\": \"navbarNav\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"navbar-toggler-icon\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarNav\",\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n className: \"navbar-nav nav-fill w-100\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/projects\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n className: \"nav-item\",\n children: \"Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/about\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n className: \"nav-item\",\n children: \"About\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 51\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/contact\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n className: \"nav-item\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 53\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/resume\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n className: \"nav-item\",\n children: \"Resume\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 52\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"nav-link\",\n href: \"/blog\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n className: \"nav-item\",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 50\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = Navigation;\nvar _c;\n$RefreshReg$(_c, \"Navigation\");","map":{"version":3,"names":["Nav","Button","jsxDEV","_jsxDEV","Fragment","_Fragment","Navigation","children","className","href","fileName","_jsxFileName","lineNumber","columnNumber","type","id","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/Navigation.js"],"sourcesContent":["import Nav from 'react-bootstrap/Nav';\nimport Button from 'react-bootstrap/Button';\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Navigation() {\n return (\n <>\n \n Josh Ashton \n \n \n \n \n \n >\n );\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/7fd03c95fba5412bf6dbb3e19b909423b37ed71ee7b622f46ddca9ecd20a3c71.json b/public/node_modules/.cache/babel-loader/7fd03c95fba5412bf6dbb3e19b909423b37ed71ee7b622f46ddca9ecd20a3c71.json
new file mode 100644
index 00000000..db939889
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/7fd03c95fba5412bf6dbb3e19b909423b37ed71ee7b622f46ddca9ecd20a3c71.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/Splash.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a splash screen.\n *\n * @param String primaryText \"The headline (h1) text.\"\n * @param String secondaryText \"The byline (h2) text.\"\n *\n * TODO: Need to add classes and styling.\n */\nexport default function Splash({\n primaryText,\n secondaryText\n}) {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"custom-container\",\n id: \"splash\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n className: \"light-text\",\n children: primaryText\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"light-text\",\n children: secondaryText\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = Splash;\nvar _c;\n$RefreshReg$(_c, \"Splash\");","map":{"version":3,"names":["Splash","primaryText","secondaryText","_jsxDEV","_Fragment","children","className","id","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/Splash.js"],"sourcesContent":["/*\n * Create a splash screen.\n *\n * @param String primaryText \"The headline (h1) text.\"\n * @param String secondaryText \"The byline (h2) text.\"\n *\n * TODO: Need to add classes and styling.\n */\nexport default function Splash( { primaryText, secondaryText }) {\n return (\n <>\n \n
{primaryText} \n {secondaryText} \n \n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,MAAMA,CAAE;EAAEC,WAAW;EAAEC;AAAc,CAAC,EAAE;EAC9D,oBACEC,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAKG,SAAS,EAAC,kBAAkB;MAACC,EAAE,EAAC,QAAQ;MAAAF,QAAA,gBAC3CF,OAAA;QAAIG,SAAS,EAAC,YAAY;QAAAD,QAAA,EAAEJ;MAAW;QAAAO,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eAC7CR,OAAA;QAAIG,SAAS,EAAC,YAAY;QAAAD,QAAA,EAAEH;MAAa;QAAAM,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAC5C;EAAC,gBACN,CAAC;AAEP;AAACC,EAAA,GATuBZ,MAAM;AAAA,IAAAY,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/818f0aba4b3481590e6eea00b0242a322d7c564dec41314c5c8148a6b428e971.json b/public/node_modules/.cache/babel-loader/818f0aba4b3481590e6eea00b0242a322d7c564dec41314c5c8148a6b428e971.json
new file mode 100644
index 00000000..22e77671
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/818f0aba4b3481590e6eea00b0242a322d7c564dec41314c5c8148a6b428e971.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Blog.js\";\nimport Nav from './components/Nav';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Blog() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Nav, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Blog;\nvar _c;\n$RefreshReg$(_c, \"Blog\");","map":{"version":3,"names":["Nav","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Blog","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Blog.js"],"sourcesContent":["import Nav from './components/Nav';\nimport Footer from './components/Footer';\n\nexport default function Blog() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,kBAAkB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,IAAIA,CAAA,EAAG;EAC7B,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,GAAG;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACPR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,IAAI;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/82c6fc6b88d2ea15f76dcaaf119dd6ac8ac86a94f486a5e9ce69f62fe3990eb8.json b/public/node_modules/.cache/babel-loader/82c6fc6b88d2ea15f76dcaaf119dd6ac8ac86a94f486a5e9ce69f62fe3990eb8.json
new file mode 100644
index 00000000..044e9399
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/82c6fc6b88d2ea15f76dcaaf119dd6ac8ac86a94f486a5e9ce69f62fe3990eb8.json
@@ -0,0 +1 @@
+{"ast":null,"code":"const _excluded = [\"as\", \"disabled\"];\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\nexport function useButtonProps({\n tagName,\n disabled,\n href,\n target,\n rel,\n role,\n onClick,\n tabIndex = 0,\n type\n}) {\n if (!tagName) {\n if (href != null || target != null || rel != null) {\n tagName = 'a';\n } else {\n tagName = 'button';\n }\n }\n const meta = {\n tagName\n };\n if (tagName === 'button') {\n return [{\n type: type || 'button',\n disabled\n }, meta];\n }\n const handleClick = event => {\n if (disabled || tagName === 'a' && isTrivialHref(href)) {\n event.preventDefault();\n }\n if (disabled) {\n event.stopPropagation();\n return;\n }\n onClick == null ? void 0 : onClick(event);\n };\n const handleKeyDown = event => {\n if (event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n };\n if (tagName === 'a') {\n // Ensure there's a href so Enter can trigger anchor button.\n href || (href = '#');\n if (disabled) {\n href = undefined;\n }\n }\n return [{\n role: role != null ? role : 'button',\n // explicitly undefined so that it overrides the props disabled in a spread\n // e.g. \n disabled: undefined,\n tabIndex: disabled ? undefined : tabIndex,\n href,\n target: tagName === 'a' ? target : undefined,\n 'aria-disabled': !disabled ? undefined : disabled,\n rel: tagName === 'a' ? rel : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown\n }, meta];\n}\nconst Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: asProp,\n disabled\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps, {\n tagName: Component\n }] = useButtonProps(Object.assign({\n tagName: asProp,\n disabled\n }, props));\n return /*#__PURE__*/_jsx(Component, Object.assign({}, props, buttonProps, {\n ref: ref\n }));\n});\nButton.displayName = 'Button';\nexport default Button;","map":{"version":3,"names":["_excluded","_objectWithoutPropertiesLoose","r","e","t","n","hasOwnProperty","call","indexOf","React","jsx","_jsx","isTrivialHref","href","trim","useButtonProps","tagName","disabled","target","rel","role","onClick","tabIndex","type","meta","handleClick","event","preventDefault","stopPropagation","handleKeyDown","key","undefined","onKeyDown","Button","forwardRef","_ref","ref","as","asProp","props","buttonProps","Component","Object","assign","displayName"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/esm/Button.js"],"sourcesContent":["const _excluded = [\"as\", \"disabled\"];\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\nexport function useButtonProps({\n tagName,\n disabled,\n href,\n target,\n rel,\n role,\n onClick,\n tabIndex = 0,\n type\n}) {\n if (!tagName) {\n if (href != null || target != null || rel != null) {\n tagName = 'a';\n } else {\n tagName = 'button';\n }\n }\n const meta = {\n tagName\n };\n if (tagName === 'button') {\n return [{\n type: type || 'button',\n disabled\n }, meta];\n }\n const handleClick = event => {\n if (disabled || tagName === 'a' && isTrivialHref(href)) {\n event.preventDefault();\n }\n if (disabled) {\n event.stopPropagation();\n return;\n }\n onClick == null ? void 0 : onClick(event);\n };\n const handleKeyDown = event => {\n if (event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n };\n if (tagName === 'a') {\n // Ensure there's a href so Enter can trigger anchor button.\n href || (href = '#');\n if (disabled) {\n href = undefined;\n }\n }\n return [{\n role: role != null ? role : 'button',\n // explicitly undefined so that it overrides the props disabled in a spread\n // e.g. \n disabled: undefined,\n tabIndex: disabled ? undefined : tabIndex,\n href,\n target: tagName === 'a' ? target : undefined,\n 'aria-disabled': !disabled ? undefined : disabled,\n rel: tagName === 'a' ? rel : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown\n }, meta];\n}\nconst Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: asProp,\n disabled\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps, {\n tagName: Component\n }] = useButtonProps(Object.assign({\n tagName: asProp,\n disabled\n }, props));\n return /*#__PURE__*/_jsx(Component, Object.assign({}, props, buttonProps, {\n ref: ref\n }));\n});\nButton.displayName = 'Button';\nexport default Button;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/870c03f531aad196daa933880f359bfa28058acec1128e48a94930402c60a6d3.json b/public/node_modules/.cache/babel-loader/870c03f531aad196daa933880f359bfa28058acec1128e48a94930402c60a6d3.json
new file mode 100644
index 00000000..b7d0eed8
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/870c03f531aad196daa933880f359bfa28058acec1128e48a94930402c60a6d3.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay({\n frontend,\n backend,\n id,\n name,\n description,\n url\n}) {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"panel {frontend} {backend}\",\n id: id,\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"label\",\n children: name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h4\", {\n className: \"label-text\",\n children: description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: url,\n children: \"View Code on GitHub\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 59\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = ProjectDisplay;\nvar _c;\n$RefreshReg$(_c, \"ProjectDisplay\");","map":{"version":3,"names":["ProjectDisplay","frontend","backend","id","name","description","url","_jsxDEV","_Fragment","children","className","fileName","_jsxFileName","lineNumber","columnNumber","type","href","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js"],"sourcesContent":["/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay( {frontend, backend, id, name, description, url} ) {\n return (\n <>\n \n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,cAAcA,CAAE;EAACC,QAAQ;EAAEC,OAAO;EAAEC,EAAE;EAAEC,IAAI;EAAEC,WAAW;EAAEC;AAAG,CAAC,EAAG;EACxF,oBACEC,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAKG,SAAS,EAAC,4BAA4B;MAACP,EAAE,EAAEA,EAAG;MAAAM,QAAA,gBACjDF,OAAA;QAAIG,SAAS,EAAC,OAAO;QAAAD,QAAA,EAAEL;MAAI;QAAAO,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eACjCP,OAAA;QAAIG,SAAS,EAAC,YAAY;QAAAD,QAAA,EAAEJ;MAAW;QAAAM,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eAC7CP,OAAA;QAAQQ,IAAI,EAAC,QAAQ;QAACL,SAAS,EAAC,iBAAiB;QAAAD,QAAA,eAACF,OAAA;UAAGS,IAAI,EAAEV,GAAI;UAAAG,QAAA,EAAC;QAAmB;UAAAE,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAG;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAC7F;EAAC,gBACN,CAAC;AAEP;AAACG,EAAA,GAVuBjB,cAAc;AAAA,IAAAiB,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/8941e711f56a34d1d7ba66225bc94ffc1e5f0e94b5e587dfda13e57ffe0b03db.json b/public/node_modules/.cache/babel-loader/8941e711f56a34d1d7ba66225bc94ffc1e5f0e94b5e587dfda13e57ffe0b03db.json
new file mode 100644
index 00000000..ac9cedc3
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/8941e711f56a34d1d7ba66225bc94ffc1e5f0e94b5e587dfda13e57ffe0b03db.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/index.js\";\nimport React, { StrictMode } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { BrowserRouter, Routes, Route } from \"react-router\";\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport \"./styles.css\";\nimport Home from \"./Home\";\nimport Projects from \"./Projects\";\nimport Contact from \"./Contact\";\nimport About from \"./About\";\nimport Blog from \"./Blog\";\nimport Resume from \"./Resume\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst root = document.getElementById(\"root\");\nReactDOM.createRoot(root).render(/*#__PURE__*/_jsxDEV(BrowserRouter, {\n children: /*#__PURE__*/_jsxDEV(Routes, {\n children: [/*#__PURE__*/_jsxDEV(Route, {\n path: \"/\",\n element: /*#__PURE__*/_jsxDEV(Home, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/projects\",\n element: /*#__PURE__*/_jsxDEV(Projects, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 40\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/contact\",\n element: /*#__PURE__*/_jsxDEV(Contact, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 39\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/about\",\n element: /*#__PURE__*/_jsxDEV(About, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 37\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/blog\",\n element: /*#__PURE__*/_jsxDEV(Blog, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/resume\",\n element: /*#__PURE__*/_jsxDEV(Resume, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 38\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 5\n }, this)\n}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 3\n}, this));","map":{"version":3,"names":["React","StrictMode","ReactDOM","BrowserRouter","Routes","Route","Home","Projects","Contact","About","Blog","Resume","jsxDEV","_jsxDEV","root","document","getElementById","createRoot","render","children","path","element","fileName","_jsxFileName","lineNumber","columnNumber"],"sources":["/home/violet/documents/development/portfolio/public/src/index.js"],"sourcesContent":["import React, { StrictMode } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { BrowserRouter, Routes, Route } from \"react-router\";\n\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport \"./styles.css\";\n\nimport Home from \"./Home\";\nimport Projects from \"./Projects\";\nimport Contact from \"./Contact\";\nimport About from \"./About\";\nimport Blog from \"./Blog\";\nimport Resume from \"./Resume\";\n\nconst root = document.getElementById(\"root\");\n\nReactDOM.createRoot(root).render(\n \n \n } />\n } />\n } />\n } />\n } />\n } />\n \n \n);\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,QAAQ,MAAM,kBAAkB;AACvC,SAASC,aAAa,EAAEC,MAAM,EAAEC,KAAK,QAAQ,cAAc;AAE3D,OAAO,sCAAsC;AAC7C,OAAO,cAAc;AAErB,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,QAAQ,MAAM,YAAY;AACjC,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,MAAM,MAAM,UAAU;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAE9B,MAAMC,IAAI,GAAGC,QAAQ,CAACC,cAAc,CAAC,MAAM,CAAC;AAE5Cd,QAAQ,CAACe,UAAU,CAACH,IAAI,CAAC,CAACI,MAAM,cAC9BL,OAAA,CAACV,aAAa;EAAAgB,QAAA,eACZN,OAAA,CAACT,MAAM;IAAAe,QAAA,gBACLN,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,GAAG;MAACC,OAAO,eAAER,OAAA,CAACP,IAAI;QAAAgB,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACrCZ,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,WAAW;MAACC,OAAO,eAAER,OAAA,CAACN,QAAQ;QAAAe,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACjDZ,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,UAAU;MAACC,OAAO,eAAER,OAAA,CAACL,OAAO;QAAAc,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eAC/CZ,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,QAAQ;MAACC,OAAO,eAAER,OAAA,CAACJ,KAAK;QAAAa,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eAC3CZ,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,OAAO;MAACC,OAAO,eAAER,OAAA,CAACH,IAAI;QAAAY,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACzCZ,OAAA,CAACR,KAAK;MAACe,IAAI,EAAC,SAAS;MAACC,OAAO,eAAER,OAAA,CAACF,MAAM;QAAAW,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA;IAAAH,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACvC;AAAC;EAAAH,QAAA,EAAAC,YAAA;EAAAC,UAAA;EAAAC,YAAA;AAAA,OACI,CACjB,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/8b09d7af6875d5392cc4b1b6682dd815ed30570e6cafd7f5cfd06a06987aee20.json b/public/node_modules/.cache/babel-loader/8b09d7af6875d5392cc4b1b6682dd815ed30570e6cafd7f5cfd06a06987aee20.json
new file mode 100644
index 00000000..12fed691
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/8b09d7af6875d5392cc4b1b6682dd815ed30570e6cafd7f5cfd06a06987aee20.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport ProjectDisplay from './components/ProjectDisplay';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n const data = [{\n id: \"one-ai\",\n name: 'One AI',\n description: \"TODO\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: data.map(item => /*#__PURE__*/_jsxDEV(ProjectDisplay, {\n id: item.id,\n name: item.name,\n description: item.description,\n url: item.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","ProjectDisplay","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","data","id","name","description","url","children","fileName","_jsxFileName","lineNumber","columnNumber","map","item","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport ProjectDisplay from './components/ProjectDisplay';\n\nexport default function Projects() {\n const data = [\n { id: \"one-ai\", name: 'One AI', description: \"TODO\", url: \"https://github.com/quaxlyqueen/one-ai\"},\n ];\n\n return (\n <>\n \n \n {data.map(item => (\n
\n ))}\n
\n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,cAAc,MAAM,6BAA6B;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzD,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,MAAMC,IAAI,GAAG,CACX;IAAEC,EAAE,EAAE,QAAQ;IAAEC,IAAI,EAAE,QAAQ;IAAEC,WAAW,EAAE,MAAM;IAAEC,GAAG,EAAE;EAAuC,CAAC,CACnG;EAED,oBACER,OAAA,CAAAE,SAAA;IAAAO,QAAA,gBACET,OAAA,CAACJ,UAAU;MAAAc,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACZb,OAAA;MAAAS,QAAA,EACGL,IAAI,CAACU,GAAG,CAACC,IAAI,iBACZf,OAAA,CAACF,cAAc;QAACO,EAAE,EAAEU,IAAI,CAACV,EAAG;QAACC,IAAI,EAAES,IAAI,CAACT,IAAK;QAACC,WAAW,EAAEQ,IAAI,CAACR,WAAY;QAACC,GAAG,EAAEO,IAAI,CAACP;MAAI;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAC9F;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACC,CAAC,eACRb,OAAA,CAACH,MAAM;MAAAa,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACG,EAAA,GAhBuBb,QAAQ;AAAA,IAAAa,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/948815ff6cc535b3fc0129e4bf6c47fe2d1fc83fdfb6de89d14491d9359ac80b.json b/public/node_modules/.cache/babel-loader/948815ff6cc535b3fc0129e4bf6c47fe2d1fc83fdfb6de89d14491d9359ac80b.json
new file mode 100644
index 00000000..197d26f4
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/948815ff6cc535b3fc0129e4bf6c47fe2d1fc83fdfb6de89d14491d9359ac80b.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Contact.js\";\nimport Nav from './components/Nav';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Nav, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Nav","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Contact.js"],"sourcesContent":["import Nav from './components/Nav';\nimport Footer from './components/Footer';\n\nexport default function Projects() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,kBAAkB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,GAAG;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACPR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,QAAQ;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/94893c26da99ce2a61a165df56c0a5dd8d5d772a0c5c4452e06a879197fd8f64.json b/public/node_modules/.cache/babel-loader/94893c26da99ce2a61a165df56c0a5dd8d5d772a0c5c4452e06a879197fd8f64.json
new file mode 100644
index 00000000..a2391bc0
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/94893c26da99ce2a61a165df56c0a5dd8d5d772a0c5c4452e06a879197fd8f64.json
@@ -0,0 +1 @@
+{"ast":null,"code":"\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Button = /*#__PURE__*/React.forwardRef(({\n as,\n bsPrefix,\n variant = 'primary',\n size,\n active = false,\n disabled = false,\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n const [buttonProps, {\n tagName\n }] = useButtonProps({\n tagName: as,\n disabled,\n ...props\n });\n const Component = tagName;\n return /*#__PURE__*/_jsx(Component, {\n ...buttonProps,\n ...props,\n ref: ref,\n disabled: disabled,\n className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && disabled && 'disabled')\n });\n});\nButton.displayName = 'Button';\nexport default Button;","map":{"version":3,"names":["classNames","React","useButtonProps","useBootstrapPrefix","jsx","_jsx","Button","forwardRef","as","bsPrefix","variant","size","active","disabled","className","props","ref","prefix","buttonProps","tagName","Component","href","displayName"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/esm/Button.js"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Button = /*#__PURE__*/React.forwardRef(({\n as,\n bsPrefix,\n variant = 'primary',\n size,\n active = false,\n disabled = false,\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n const [buttonProps, {\n tagName\n }] = useButtonProps({\n tagName: as,\n disabled,\n ...props\n });\n const Component = tagName;\n return /*#__PURE__*/_jsx(Component, {\n ...buttonProps,\n ...props,\n ref: ref,\n disabled: disabled,\n className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && disabled && 'disabled')\n });\n});\nButton.displayName = 'Button';\nexport default Button;"],"mappings":"AAAA,YAAY;;AAEZ,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,cAAc,QAAQ,oBAAoB;AACnD,SAASC,kBAAkB,QAAQ,iBAAiB;AACpD,SAASC,GAAG,IAAIC,IAAI,QAAQ,mBAAmB;AAC/C,MAAMC,MAAM,GAAG,aAAaL,KAAK,CAACM,UAAU,CAAC,CAAC;EAC5CC,EAAE;EACFC,QAAQ;EACRC,OAAO,GAAG,SAAS;EACnBC,IAAI;EACJC,MAAM,GAAG,KAAK;EACdC,QAAQ,GAAG,KAAK;EAChBC,SAAS;EACT,GAAGC;AACL,CAAC,EAAEC,GAAG,KAAK;EACT,MAAMC,MAAM,GAAGd,kBAAkB,CAACM,QAAQ,EAAE,KAAK,CAAC;EAClD,MAAM,CAACS,WAAW,EAAE;IAClBC;EACF,CAAC,CAAC,GAAGjB,cAAc,CAAC;IAClBiB,OAAO,EAAEX,EAAE;IACXK,QAAQ;IACR,GAAGE;EACL,CAAC,CAAC;EACF,MAAMK,SAAS,GAAGD,OAAO;EACzB,OAAO,aAAad,IAAI,CAACe,SAAS,EAAE;IAClC,GAAGF,WAAW;IACd,GAAGH,KAAK;IACRC,GAAG,EAAEA,GAAG;IACRH,QAAQ,EAAEA,QAAQ;IAClBC,SAAS,EAAEd,UAAU,CAACc,SAAS,EAAEG,MAAM,EAAEL,MAAM,IAAI,QAAQ,EAAEF,OAAO,IAAI,GAAGO,MAAM,IAAIP,OAAO,EAAE,EAAEC,IAAI,IAAI,GAAGM,MAAM,IAAIN,IAAI,EAAE,EAAEI,KAAK,CAACM,IAAI,IAAIR,QAAQ,IAAI,UAAU;EACnK,CAAC,CAAC;AACJ,CAAC,CAAC;AACFP,MAAM,CAACgB,WAAW,GAAG,QAAQ;AAC7B,eAAehB,MAAM","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/9540a7cdd6b2b38c147de5022483d0eef882de6d887b58400e02585f0ea64b0d.json b/public/node_modules/.cache/babel-loader/9540a7cdd6b2b38c147de5022483d0eef882de6d887b58400e02585f0ea64b0d.json
new file mode 100644
index 00000000..3a4cc111
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/9540a7cdd6b2b38c147de5022483d0eef882de6d887b58400e02585f0ea64b0d.json
@@ -0,0 +1 @@
+{"ast":null,"code":"\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Anchor from '@restart/ui/Anchor';\nimport { useNavItem } from '@restart/ui/NavItem';\nimport { makeEventKey } from '@restart/ui/SelectableContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavLink = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n as: Component = Anchor,\n active,\n eventKey,\n disabled = false,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'nav-link');\n const [navItemProps, meta] = useNavItem({\n key: makeEventKey(eventKey, props.href),\n active,\n disabled,\n ...props\n });\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ...navItemProps,\n ref: ref,\n disabled: disabled,\n className: classNames(className, bsPrefix, disabled && 'disabled', meta.isActive && 'active')\n });\n});\nNavLink.displayName = 'NavLink';\nexport default NavLink;","map":{"version":3,"names":["classNames","React","Anchor","useNavItem","makeEventKey","useBootstrapPrefix","jsx","_jsx","NavLink","forwardRef","bsPrefix","className","as","Component","active","eventKey","disabled","props","ref","navItemProps","meta","key","href","isActive","displayName"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/esm/NavLink.js"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Anchor from '@restart/ui/Anchor';\nimport { useNavItem } from '@restart/ui/NavItem';\nimport { makeEventKey } from '@restart/ui/SelectableContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavLink = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n as: Component = Anchor,\n active,\n eventKey,\n disabled = false,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'nav-link');\n const [navItemProps, meta] = useNavItem({\n key: makeEventKey(eventKey, props.href),\n active,\n disabled,\n ...props\n });\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ...navItemProps,\n ref: ref,\n disabled: disabled,\n className: classNames(className, bsPrefix, disabled && 'disabled', meta.isActive && 'active')\n });\n});\nNavLink.displayName = 'NavLink';\nexport default NavLink;"],"mappings":"AAAA,YAAY;;AAEZ,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,OAAOC,MAAM,MAAM,oBAAoB;AACvC,SAASC,UAAU,QAAQ,qBAAqB;AAChD,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,kBAAkB,QAAQ,iBAAiB;AACpD,SAASC,GAAG,IAAIC,IAAI,QAAQ,mBAAmB;AAC/C,MAAMC,OAAO,GAAG,aAAaP,KAAK,CAACQ,UAAU,CAAC,CAAC;EAC7CC,QAAQ;EACRC,SAAS;EACTC,EAAE,EAAEC,SAAS,GAAGX,MAAM;EACtBY,MAAM;EACNC,QAAQ;EACRC,QAAQ,GAAG,KAAK;EAChB,GAAGC;AACL,CAAC,EAAEC,GAAG,KAAK;EACTR,QAAQ,GAAGL,kBAAkB,CAACK,QAAQ,EAAE,UAAU,CAAC;EACnD,MAAM,CAACS,YAAY,EAAEC,IAAI,CAAC,GAAGjB,UAAU,CAAC;IACtCkB,GAAG,EAAEjB,YAAY,CAACW,QAAQ,EAAEE,KAAK,CAACK,IAAI,CAAC;IACvCR,MAAM;IACNE,QAAQ;IACR,GAAGC;EACL,CAAC,CAAC;EACF,OAAO,aAAaV,IAAI,CAACM,SAAS,EAAE;IAClC,GAAGI,KAAK;IACR,GAAGE,YAAY;IACfD,GAAG,EAAEA,GAAG;IACRF,QAAQ,EAAEA,QAAQ;IAClBL,SAAS,EAAEX,UAAU,CAACW,SAAS,EAAED,QAAQ,EAAEM,QAAQ,IAAI,UAAU,EAAEI,IAAI,CAACG,QAAQ,IAAI,QAAQ;EAC9F,CAAC,CAAC;AACJ,CAAC,CAAC;AACFf,OAAO,CAACgB,WAAW,GAAG,SAAS;AAC/B,eAAehB,OAAO","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/958a40e674d0f98f3f365654f56594a392e84a0212d1780e31dc35f4eb0dfa27.json b/public/node_modules/.cache/babel-loader/958a40e674d0f98f3f365654f56594a392e84a0212d1780e31dc35f4eb0dfa27.json
new file mode 100644
index 00000000..2500e131
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/958a40e674d0f98f3f365654f56594a392e84a0212d1780e31dc35f4eb0dfa27.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useRef, useEffect } from 'react';\n\n/**\n * Track whether a component is current mounted. Generally less preferable than\n * properlly canceling effects so they don't run after a component is unmounted,\n * but helpful in cases where that isn't feasible, such as a `Promise` resolution.\n *\n * @returns a function that returns the current isMounted state of the component\n *\n * ```ts\n * const [data, setData] = useState(null)\n * const isMounted = useMounted()\n *\n * useEffect(() => {\n * fetchdata().then((newData) => {\n * if (isMounted()) {\n * setData(newData);\n * }\n * })\n * })\n * ```\n */\nexport default function useMounted() {\n const mounted = useRef(true);\n const isMounted = useRef(() => mounted.current);\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n }, []);\n return isMounted.current;\n}","map":{"version":3,"names":["useRef","useEffect","useMounted","mounted","isMounted","current"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useMounted.js"],"sourcesContent":["import { useRef, useEffect } from 'react';\n\n/**\n * Track whether a component is current mounted. Generally less preferable than\n * properlly canceling effects so they don't run after a component is unmounted,\n * but helpful in cases where that isn't feasible, such as a `Promise` resolution.\n *\n * @returns a function that returns the current isMounted state of the component\n *\n * ```ts\n * const [data, setData] = useState(null)\n * const isMounted = useMounted()\n *\n * useEffect(() => {\n * fetchdata().then((newData) => {\n * if (isMounted()) {\n * setData(newData);\n * }\n * })\n * })\n * ```\n */\nexport default function useMounted() {\n const mounted = useRef(true);\n const isMounted = useRef(() => mounted.current);\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n }, []);\n return isMounted.current;\n}"],"mappings":"AAAA,SAASA,MAAM,EAAEC,SAAS,QAAQ,OAAO;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,UAAUA,CAAA,EAAG;EACnC,MAAMC,OAAO,GAAGH,MAAM,CAAC,IAAI,CAAC;EAC5B,MAAMI,SAAS,GAAGJ,MAAM,CAAC,MAAMG,OAAO,CAACE,OAAO,CAAC;EAC/CJ,SAAS,CAAC,MAAM;IACdE,OAAO,CAACE,OAAO,GAAG,IAAI;IACtB,OAAO,MAAM;MACXF,OAAO,CAACE,OAAO,GAAG,KAAK;IACzB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACN,OAAOD,SAAS,CAACC,OAAO;AAC1B","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/9665173ffc3470d36b4d518808b0f1dd7c5bd864237258b83ec9826eeadabe6d.json b/public/node_modules/.cache/babel-loader/9665173ffc3470d36b4d518808b0f1dd7c5bd864237258b83ec9826eeadabe6d.json
new file mode 100644
index 00000000..5482edb4
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/9665173ffc3470d36b4d518808b0f1dd7c5bd864237258b83ec9826eeadabe6d.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n var wasPropRef = useRef(propValue !== undefined);\n var _useState = useState(defaultValue),\n stateValue = _useState[0],\n setState = _useState[1];\n var isProp = propValue !== undefined;\n var wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n return [isProp ? propValue : stateValue, useCallback(function (value) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (handler) handler.apply(void 0, [value].concat(args));\n setState(value);\n }, [handler])];\n}\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n return Object.keys(config).reduce(function (result, fieldName) {\n var _extends2;\n var _ref = result,\n defaultValue = _ref[Utils.defaultKey(fieldName)],\n propsValue = _ref[fieldName],\n rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n var handlerName = config[fieldName];\n var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n value = _useUncontrolledProp[0],\n handler = _useUncontrolledProp[1];\n return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n }, props);\n}","map":{"version":3,"names":["_extends","_objectWithoutPropertiesLoose","_toPropertyKey","arg","key","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","useCallback","useRef","useState","Utils","useUncontrolledProp","propValue","defaultValue","handler","wasPropRef","_useState","stateValue","setState","isProp","wasProp","current","value","_len","arguments","length","args","Array","_key","apply","concat","useUncontrolled","props","config","Object","keys","reduce","result","fieldName","_extends2","_ref","defaultKey","propsValue","rest","map","handlerName","_useUncontrolledProp"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/uncontrollable/lib/esm/hook.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\n\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\n\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n var wasPropRef = useRef(propValue !== undefined);\n\n var _useState = useState(defaultValue),\n stateValue = _useState[0],\n setState = _useState[1];\n\n var isProp = propValue !== undefined;\n var wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n\n return [isProp ? propValue : stateValue, useCallback(function (value) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (handler) handler.apply(void 0, [value].concat(args));\n setState(value);\n }, [handler])];\n}\n\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n return Object.keys(config).reduce(function (result, fieldName) {\n var _extends2;\n\n var _ref = result,\n defaultValue = _ref[Utils.defaultKey(fieldName)],\n propsValue = _ref[fieldName],\n rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n\n var handlerName = config[fieldName];\n\n var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n value = _useUncontrolledProp[0],\n handler = _useUncontrolledProp[1];\n\n return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n }, props);\n}"],"mappings":"AAAA,OAAOA,QAAQ,MAAM,oCAAoC;AACzD,OAAOC,6BAA6B,MAAM,yDAAyD;AAEnG,SAASC,cAAcA,CAACC,GAAG,EAAE;EAAE,IAAIC,GAAG,GAAGC,YAAY,CAACF,GAAG,EAAE,QAAQ,CAAC;EAAE,OAAO,OAAOC,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGE,MAAM,CAACF,GAAG,CAAC;AAAE;AAE1H,SAASC,YAAYA,CAACE,KAAK,EAAEC,IAAI,EAAE;EAAE,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE,OAAOA,KAAK;EAAE,IAAIE,IAAI,GAAGF,KAAK,CAACG,MAAM,CAACC,WAAW,CAAC;EAAE,IAAIF,IAAI,KAAKG,SAAS,EAAE;IAAE,IAAIC,GAAG,GAAGJ,IAAI,CAACK,IAAI,CAACP,KAAK,EAAEC,IAAI,IAAI,SAAS,CAAC;IAAE,IAAI,OAAOK,GAAG,KAAK,QAAQ,EAAE,OAAOA,GAAG;IAAE,MAAM,IAAIE,SAAS,CAAC,8CAA8C,CAAC;EAAE;EAAE,OAAO,CAACP,IAAI,KAAK,QAAQ,GAAGF,MAAM,GAAGU,MAAM,EAAET,KAAK,CAAC;AAAE;AAExX,SAASU,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACrD,OAAO,KAAKC,KAAK,MAAM,SAAS;AAEhC,SAASC,mBAAmBA,CAACC,SAAS,EAAEC,YAAY,EAAEC,OAAO,EAAE;EAC7D,IAAIC,UAAU,GAAGP,MAAM,CAACI,SAAS,KAAKV,SAAS,CAAC;EAEhD,IAAIc,SAAS,GAAGP,QAAQ,CAACI,YAAY,CAAC;IAClCI,UAAU,GAAGD,SAAS,CAAC,CAAC,CAAC;IACzBE,QAAQ,GAAGF,SAAS,CAAC,CAAC,CAAC;EAE3B,IAAIG,MAAM,GAAGP,SAAS,KAAKV,SAAS;EACpC,IAAIkB,OAAO,GAAGL,UAAU,CAACM,OAAO;EAChCN,UAAU,CAACM,OAAO,GAAGF,MAAM;EAC3B;AACF;AACA;AACA;;EAEE,IAAI,CAACA,MAAM,IAAIC,OAAO,IAAIH,UAAU,KAAKJ,YAAY,EAAE;IACrDK,QAAQ,CAACL,YAAY,CAAC;EACxB;EAEA,OAAO,CAACM,MAAM,GAAGP,SAAS,GAAGK,UAAU,EAAEV,WAAW,CAAC,UAAUe,KAAK,EAAE;IACpE,KAAK,IAAIC,IAAI,GAAGC,SAAS,CAACC,MAAM,EAAEC,IAAI,GAAG,IAAIC,KAAK,CAACJ,IAAI,GAAG,CAAC,GAAGA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAEK,IAAI,GAAG,CAAC,EAAEA,IAAI,GAAGL,IAAI,EAAEK,IAAI,EAAE,EAAE;MAC1GF,IAAI,CAACE,IAAI,GAAG,CAAC,CAAC,GAAGJ,SAAS,CAACI,IAAI,CAAC;IAClC;IAEA,IAAId,OAAO,EAAEA,OAAO,CAACe,KAAK,CAAC,KAAK,CAAC,EAAE,CAACP,KAAK,CAAC,CAACQ,MAAM,CAACJ,IAAI,CAAC,CAAC;IACxDR,QAAQ,CAACI,KAAK,CAAC;EACjB,CAAC,EAAE,CAACR,OAAO,CAAC,CAAC,CAAC;AAChB;AAEA,SAASH,mBAAmB;AAC5B,eAAe,SAASoB,eAAeA,CAACC,KAAK,EAAEC,MAAM,EAAE;EACrD,OAAOC,MAAM,CAACC,IAAI,CAACF,MAAM,CAAC,CAACG,MAAM,CAAC,UAAUC,MAAM,EAAEC,SAAS,EAAE;IAC7D,IAAIC,SAAS;IAEb,IAAIC,IAAI,GAAGH,MAAM;MACbxB,YAAY,GAAG2B,IAAI,CAAC9B,KAAK,CAAC+B,UAAU,CAACH,SAAS,CAAC,CAAC;MAChDI,UAAU,GAAGF,IAAI,CAACF,SAAS,CAAC;MAC5BK,IAAI,GAAGpD,6BAA6B,CAACiD,IAAI,EAAE,CAAC9B,KAAK,CAAC+B,UAAU,CAACH,SAAS,CAAC,EAAEA,SAAS,CAAC,CAACM,GAAG,CAACpD,cAAc,CAAC,CAAC;IAE5G,IAAIqD,WAAW,GAAGZ,MAAM,CAACK,SAAS,CAAC;IAEnC,IAAIQ,oBAAoB,GAAGnC,mBAAmB,CAAC+B,UAAU,EAAE7B,YAAY,EAAEmB,KAAK,CAACa,WAAW,CAAC,CAAC;MACxFvB,KAAK,GAAGwB,oBAAoB,CAAC,CAAC,CAAC;MAC/BhC,OAAO,GAAGgC,oBAAoB,CAAC,CAAC,CAAC;IAErC,OAAOxD,QAAQ,CAAC,CAAC,CAAC,EAAEqD,IAAI,GAAGJ,SAAS,GAAG,CAAC,CAAC,EAAEA,SAAS,CAACD,SAAS,CAAC,GAAGhB,KAAK,EAAEiB,SAAS,CAACM,WAAW,CAAC,GAAG/B,OAAO,EAAEyB,SAAS,CAAC,CAAC;EACxH,CAAC,EAAEP,KAAK,CAAC;AACX","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/98379aa9674d42a5db665e7045e965de83dc80a1ef6f3dcaf6ba64c1b61a40ac.json b/public/node_modules/.cache/babel-loader/98379aa9674d42a5db665e7045e965de83dc80a1ef6f3dcaf6ba64c1b61a40ac.json
new file mode 100644
index 00000000..0d011917
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/98379aa9674d42a5db665e7045e965de83dc80a1ef6f3dcaf6ba64c1b61a40ac.json
@@ -0,0 +1 @@
+{"ast":null,"code":"/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\nvar invariant = function (condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\nmodule.exports = invariant;","map":{"version":3,"names":["invariant","condition","format","a","b","c","d","e","f","process","env","NODE_ENV","undefined","Error","error","args","argIndex","replace","name","framesToPop","module","exports"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/invariant/browser.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIA,SAAS,GAAG,SAAAA,CAASC,SAAS,EAAEC,MAAM,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE;EAC5D,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC,IAAIT,MAAM,KAAKU,SAAS,EAAE;MACxB,MAAM,IAAIC,KAAK,CAAC,8CAA8C,CAAC;IACjE;EACF;EAEA,IAAI,CAACZ,SAAS,EAAE;IACd,IAAIa,KAAK;IACT,IAAIZ,MAAM,KAAKU,SAAS,EAAE;MACxBE,KAAK,GAAG,IAAID,KAAK,CACf,oEAAoE,GACpE,6DACF,CAAC;IACH,CAAC,MAAM;MACL,IAAIE,IAAI,GAAG,CAACZ,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;MAC7B,IAAIQ,QAAQ,GAAG,CAAC;MAChBF,KAAK,GAAG,IAAID,KAAK,CACfX,MAAM,CAACe,OAAO,CAAC,KAAK,EAAE,YAAW;QAAE,OAAOF,IAAI,CAACC,QAAQ,EAAE,CAAC;MAAE,CAAC,CAC/D,CAAC;MACDF,KAAK,CAACI,IAAI,GAAG,qBAAqB;IACpC;IAEAJ,KAAK,CAACK,WAAW,GAAG,CAAC,CAAC,CAAC;IACvB,MAAML,KAAK;EACb;AACF,CAAC;AAEDM,MAAM,CAACC,OAAO,GAAGrB,SAAS","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/989cd2172d083c9ad9d53ef704f4edbad2b41596c655f984f8e1b5950af4f269.json b/public/node_modules/.cache/babel-loader/989cd2172d083c9ad9d53ef704f4edbad2b41596c655f984f8e1b5950af4f269.json
new file mode 100644
index 00000000..375586c6
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/989cd2172d083c9ad9d53ef704f4edbad2b41596c655f984f8e1b5950af4f269.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useState, useEffect } from 'react';\n/**\n * Fetch and load an image for programatic use such as in a `` element.\n *\n * @param imageOrUrl The `HtmlImageElement` or image url to load\n * @param crossOrigin The `crossorigin` attribute to set\n *\n * ```ts\n * const { image, error } = useImage('/static/kittens.png')\n * const ref = useRef()\n *\n * useEffect(() => {\n * const ctx = ref.current.getContext('2d')\n *\n * if (image) {\n * ctx.drawImage(image, 0, 0)\n * }\n * }, [ref, image])\n *\n * return (\n * <>\n * {error && \"there was a problem loading the image\"}\n * \n * >\n * ```\n */\nexport default function useImage(imageOrUrl, crossOrigin) {\n const [state, setState] = useState({\n image: null,\n error: null\n });\n useEffect(() => {\n if (!imageOrUrl) return undefined;\n let image;\n if (typeof imageOrUrl === 'string') {\n image = new Image();\n if (crossOrigin) image.crossOrigin = crossOrigin;\n image.src = imageOrUrl;\n } else {\n image = imageOrUrl;\n if (image.complete && image.naturalHeight > 0) {\n setState({\n image,\n error: null\n });\n return;\n }\n }\n function onLoad() {\n setState({\n image,\n error: null\n });\n }\n function onError(error) {\n setState({\n image,\n error\n });\n }\n image.addEventListener('load', onLoad);\n image.addEventListener('error', onError);\n return () => {\n image.removeEventListener('load', onLoad);\n image.removeEventListener('error', onError);\n };\n }, [imageOrUrl, crossOrigin]);\n return state;\n}","map":{"version":3,"names":["useState","useEffect","useImage","imageOrUrl","crossOrigin","state","setState","image","error","undefined","Image","src","complete","naturalHeight","onLoad","onError","addEventListener","removeEventListener"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useImage.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n/**\n * Fetch and load an image for programatic use such as in a `` element.\n *\n * @param imageOrUrl The `HtmlImageElement` or image url to load\n * @param crossOrigin The `crossorigin` attribute to set\n *\n * ```ts\n * const { image, error } = useImage('/static/kittens.png')\n * const ref = useRef()\n *\n * useEffect(() => {\n * const ctx = ref.current.getContext('2d')\n *\n * if (image) {\n * ctx.drawImage(image, 0, 0)\n * }\n * }, [ref, image])\n *\n * return (\n * <>\n * {error && \"there was a problem loading the image\"}\n * \n * >\n * ```\n */\nexport default function useImage(imageOrUrl, crossOrigin) {\n const [state, setState] = useState({\n image: null,\n error: null\n });\n useEffect(() => {\n if (!imageOrUrl) return undefined;\n let image;\n if (typeof imageOrUrl === 'string') {\n image = new Image();\n if (crossOrigin) image.crossOrigin = crossOrigin;\n image.src = imageOrUrl;\n } else {\n image = imageOrUrl;\n if (image.complete && image.naturalHeight > 0) {\n setState({\n image,\n error: null\n });\n return;\n }\n }\n function onLoad() {\n setState({\n image,\n error: null\n });\n }\n function onError(error) {\n setState({\n image,\n error\n });\n }\n image.addEventListener('load', onLoad);\n image.addEventListener('error', onError);\n return () => {\n image.removeEventListener('load', onLoad);\n image.removeEventListener('error', onError);\n };\n }, [imageOrUrl, crossOrigin]);\n return state;\n}"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,QAAQA,CAACC,UAAU,EAAEC,WAAW,EAAE;EACxD,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGN,QAAQ,CAAC;IACjCO,KAAK,EAAE,IAAI;IACXC,KAAK,EAAE;EACT,CAAC,CAAC;EACFP,SAAS,CAAC,MAAM;IACd,IAAI,CAACE,UAAU,EAAE,OAAOM,SAAS;IACjC,IAAIF,KAAK;IACT,IAAI,OAAOJ,UAAU,KAAK,QAAQ,EAAE;MAClCI,KAAK,GAAG,IAAIG,KAAK,CAAC,CAAC;MACnB,IAAIN,WAAW,EAAEG,KAAK,CAACH,WAAW,GAAGA,WAAW;MAChDG,KAAK,CAACI,GAAG,GAAGR,UAAU;IACxB,CAAC,MAAM;MACLI,KAAK,GAAGJ,UAAU;MAClB,IAAII,KAAK,CAACK,QAAQ,IAAIL,KAAK,CAACM,aAAa,GAAG,CAAC,EAAE;QAC7CP,QAAQ,CAAC;UACPC,KAAK;UACLC,KAAK,EAAE;QACT,CAAC,CAAC;QACF;MACF;IACF;IACA,SAASM,MAAMA,CAAA,EAAG;MAChBR,QAAQ,CAAC;QACPC,KAAK;QACLC,KAAK,EAAE;MACT,CAAC,CAAC;IACJ;IACA,SAASO,OAAOA,CAACP,KAAK,EAAE;MACtBF,QAAQ,CAAC;QACPC,KAAK;QACLC;MACF,CAAC,CAAC;IACJ;IACAD,KAAK,CAACS,gBAAgB,CAAC,MAAM,EAAEF,MAAM,CAAC;IACtCP,KAAK,CAACS,gBAAgB,CAAC,OAAO,EAAED,OAAO,CAAC;IACxC,OAAO,MAAM;MACXR,KAAK,CAACU,mBAAmB,CAAC,MAAM,EAAEH,MAAM,CAAC;MACzCP,KAAK,CAACU,mBAAmB,CAAC,OAAO,EAAEF,OAAO,CAAC;IAC7C,CAAC;EACH,CAAC,EAAE,CAACZ,UAAU,EAAEC,WAAW,CAAC,CAAC;EAC7B,OAAOC,KAAK;AACd","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/9b8d18ca68171fc5d2da243e028542f259a77343504d47c8d9ff492b549c7d08.json b/public/node_modules/.cache/babel-loader/9b8d18ca68171fc5d2da243e028542f259a77343504d47c8d9ff492b549c7d08.json
new file mode 100644
index 00000000..9a002381
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/9b8d18ca68171fc5d2da243e028542f259a77343504d47c8d9ff492b549c7d08.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Resume.js\";\nimport Nav from './components/Nav';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Resume() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Nav, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Resume;\nvar _c;\n$RefreshReg$(_c, \"Resume\");","map":{"version":3,"names":["Nav","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Resume","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Resume.js"],"sourcesContent":["import Nav from './components/Nav';\nimport Footer from './components/Footer';\n\nexport default function Resume() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,kBAAkB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,MAAMA,CAAA,EAAG;EAC/B,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,GAAG;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACPR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,MAAM;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/9dedb94eb16b3c8698ba0f05287b4383e4ff4133baa0691b5b05241fbf56bf13.json b/public/node_modules/.cache/babel-loader/9dedb94eb16b3c8698ba0f05287b4383e4ff4133baa0691b5b05241fbf56bf13.json
new file mode 100644
index 00000000..652dd0fb
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/9dedb94eb16b3c8698ba0f05287b4383e4ff4133baa0691b5b05241fbf56bf13.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay({\n frontend,\n backend,\n id,\n name,\n description,\n url\n}) {\n const clazz = \"panel \" + {\n frontend\n } + \" \" + {\n backend\n };\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: clazz,\n id: id,\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"label\",\n children: name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h4\", {\n className: \"label-text\",\n children: description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: url,\n children: \"View Code on GitHub\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 59\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = ProjectDisplay;\nvar _c;\n$RefreshReg$(_c, \"ProjectDisplay\");","map":{"version":3,"names":["ProjectDisplay","frontend","backend","id","name","description","url","clazz","_jsxDEV","_Fragment","children","className","fileName","_jsxFileName","lineNumber","columnNumber","type","href","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js"],"sourcesContent":["/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay( {frontend, backend, id, name, description, url} ) {\n const clazz = \"panel \" + {frontend} + \" \" + {backend};\n return (\n <>\n \n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,cAAcA,CAAE;EAACC,QAAQ;EAAEC,OAAO;EAAEC,EAAE;EAAEC,IAAI;EAAEC,WAAW;EAAEC;AAAG,CAAC,EAAG;EACxF,MAAMC,KAAK,GAAG,QAAQ,GAAG;IAACN;EAAQ,CAAC,GAAG,GAAG,GAAG;IAACC;EAAO,CAAC;EACrD,oBACEM,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAKG,SAAS,EAAEJ,KAAM;MAACJ,EAAE,EAAEA,EAAG;MAAAO,QAAA,gBAC5BF,OAAA;QAAIG,SAAS,EAAC,OAAO;QAAAD,QAAA,EAAEN;MAAI;QAAAQ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eACjCP,OAAA;QAAIG,SAAS,EAAC,YAAY;QAAAD,QAAA,EAAEL;MAAW;QAAAO,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eAC7CP,OAAA;QAAQQ,IAAI,EAAC,QAAQ;QAACL,SAAS,EAAC,iBAAiB;QAAAD,QAAA,eAACF,OAAA;UAAGS,IAAI,EAAEX,GAAI;UAAAI,QAAA,EAAC;QAAmB;UAAAE,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAG;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAC7F;EAAC,gBACN,CAAC;AAEP;AAACG,EAAA,GAXuBlB,cAAc;AAAA,IAAAkB,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/9eed5b6666df0201abe6774d87f5fceed0a3593b91deb99bf7bc7e21f0af9144.json b/public/node_modules/.cache/babel-loader/9eed5b6666df0201abe6774d87f5fceed0a3593b91deb99bf7bc7e21f0af9144.json
new file mode 100644
index 00000000..b2863a89
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/9eed5b6666df0201abe6774d87f5fceed0a3593b91deb99bf7bc7e21f0af9144.json
@@ -0,0 +1 @@
+{"ast":null,"code":"\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport BaseNav from '@restart/ui/Nav';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport CardHeaderContext from './CardHeaderContext';\nimport NavItem from './NavItem';\nimport NavLink from './NavLink';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Nav = /*#__PURE__*/React.forwardRef((uncontrolledProps, ref) => {\n const {\n as = 'div',\n bsPrefix: initialBsPrefix,\n variant,\n fill = false,\n justify = false,\n navbar,\n navbarScroll,\n className,\n activeKey,\n ...props\n } = useUncontrolled(uncontrolledProps, {\n activeKey: 'onSelect'\n });\n const bsPrefix = useBootstrapPrefix(initialBsPrefix, 'nav');\n let navbarBsPrefix;\n let cardHeaderBsPrefix;\n let isNavbar = false;\n const navbarContext = useContext(NavbarContext);\n const cardHeaderContext = useContext(CardHeaderContext);\n if (navbarContext) {\n navbarBsPrefix = navbarContext.bsPrefix;\n isNavbar = navbar == null ? true : navbar;\n } else if (cardHeaderContext) {\n ({\n cardHeaderBsPrefix\n } = cardHeaderContext);\n }\n return /*#__PURE__*/_jsx(BaseNav, {\n as: as,\n ref: ref,\n activeKey: activeKey,\n className: classNames(className, {\n [bsPrefix]: !isNavbar,\n [`${navbarBsPrefix}-nav`]: isNavbar,\n [`${navbarBsPrefix}-nav-scroll`]: isNavbar && navbarScroll,\n [`${cardHeaderBsPrefix}-${variant}`]: !!cardHeaderBsPrefix,\n [`${bsPrefix}-${variant}`]: !!variant,\n [`${bsPrefix}-fill`]: fill,\n [`${bsPrefix}-justified`]: justify\n }),\n ...props\n });\n});\nNav.displayName = 'Nav';\nexport default Object.assign(Nav, {\n Item: NavItem,\n Link: NavLink\n});","map":{"version":3,"names":["classNames","React","useContext","useUncontrolled","BaseNav","useBootstrapPrefix","NavbarContext","CardHeaderContext","NavItem","NavLink","jsx","_jsx","Nav","forwardRef","uncontrolledProps","ref","as","bsPrefix","initialBsPrefix","variant","fill","justify","navbar","navbarScroll","className","activeKey","props","navbarBsPrefix","cardHeaderBsPrefix","isNavbar","navbarContext","cardHeaderContext","displayName","Object","assign","Item","Link"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/esm/Nav.js"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport BaseNav from '@restart/ui/Nav';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport CardHeaderContext from './CardHeaderContext';\nimport NavItem from './NavItem';\nimport NavLink from './NavLink';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Nav = /*#__PURE__*/React.forwardRef((uncontrolledProps, ref) => {\n const {\n as = 'div',\n bsPrefix: initialBsPrefix,\n variant,\n fill = false,\n justify = false,\n navbar,\n navbarScroll,\n className,\n activeKey,\n ...props\n } = useUncontrolled(uncontrolledProps, {\n activeKey: 'onSelect'\n });\n const bsPrefix = useBootstrapPrefix(initialBsPrefix, 'nav');\n let navbarBsPrefix;\n let cardHeaderBsPrefix;\n let isNavbar = false;\n const navbarContext = useContext(NavbarContext);\n const cardHeaderContext = useContext(CardHeaderContext);\n if (navbarContext) {\n navbarBsPrefix = navbarContext.bsPrefix;\n isNavbar = navbar == null ? true : navbar;\n } else if (cardHeaderContext) {\n ({\n cardHeaderBsPrefix\n } = cardHeaderContext);\n }\n return /*#__PURE__*/_jsx(BaseNav, {\n as: as,\n ref: ref,\n activeKey: activeKey,\n className: classNames(className, {\n [bsPrefix]: !isNavbar,\n [`${navbarBsPrefix}-nav`]: isNavbar,\n [`${navbarBsPrefix}-nav-scroll`]: isNavbar && navbarScroll,\n [`${cardHeaderBsPrefix}-${variant}`]: !!cardHeaderBsPrefix,\n [`${bsPrefix}-${variant}`]: !!variant,\n [`${bsPrefix}-fill`]: fill,\n [`${bsPrefix}-justified`]: justify\n }),\n ...props\n });\n});\nNav.displayName = 'Nav';\nexport default Object.assign(Nav, {\n Item: NavItem,\n Link: NavLink\n});"],"mappings":"AAAA,YAAY;;AAEZ,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,QAAQ,OAAO;AAClC,SAASC,eAAe,QAAQ,gBAAgB;AAChD,OAAOC,OAAO,MAAM,iBAAiB;AACrC,SAASC,kBAAkB,QAAQ,iBAAiB;AACpD,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,OAAO,MAAM,WAAW;AAC/B,SAASC,GAAG,IAAIC,IAAI,QAAQ,mBAAmB;AAC/C,MAAMC,GAAG,GAAG,aAAaX,KAAK,CAACY,UAAU,CAAC,CAACC,iBAAiB,EAAEC,GAAG,KAAK;EACpE,MAAM;IACJC,EAAE,GAAG,KAAK;IACVC,QAAQ,EAAEC,eAAe;IACzBC,OAAO;IACPC,IAAI,GAAG,KAAK;IACZC,OAAO,GAAG,KAAK;IACfC,MAAM;IACNC,YAAY;IACZC,SAAS;IACTC,SAAS;IACT,GAAGC;EACL,CAAC,GAAGvB,eAAe,CAACW,iBAAiB,EAAE;IACrCW,SAAS,EAAE;EACb,CAAC,CAAC;EACF,MAAMR,QAAQ,GAAGZ,kBAAkB,CAACa,eAAe,EAAE,KAAK,CAAC;EAC3D,IAAIS,cAAc;EAClB,IAAIC,kBAAkB;EACtB,IAAIC,QAAQ,GAAG,KAAK;EACpB,MAAMC,aAAa,GAAG5B,UAAU,CAACI,aAAa,CAAC;EAC/C,MAAMyB,iBAAiB,GAAG7B,UAAU,CAACK,iBAAiB,CAAC;EACvD,IAAIuB,aAAa,EAAE;IACjBH,cAAc,GAAGG,aAAa,CAACb,QAAQ;IACvCY,QAAQ,GAAGP,MAAM,IAAI,IAAI,GAAG,IAAI,GAAGA,MAAM;EAC3C,CAAC,MAAM,IAAIS,iBAAiB,EAAE;IAC5B,CAAC;MACCH;IACF,CAAC,GAAGG,iBAAiB;EACvB;EACA,OAAO,aAAapB,IAAI,CAACP,OAAO,EAAE;IAChCY,EAAE,EAAEA,EAAE;IACND,GAAG,EAAEA,GAAG;IACRU,SAAS,EAAEA,SAAS;IACpBD,SAAS,EAAExB,UAAU,CAACwB,SAAS,EAAE;MAC/B,CAACP,QAAQ,GAAG,CAACY,QAAQ;MACrB,CAAC,GAAGF,cAAc,MAAM,GAAGE,QAAQ;MACnC,CAAC,GAAGF,cAAc,aAAa,GAAGE,QAAQ,IAAIN,YAAY;MAC1D,CAAC,GAAGK,kBAAkB,IAAIT,OAAO,EAAE,GAAG,CAAC,CAACS,kBAAkB;MAC1D,CAAC,GAAGX,QAAQ,IAAIE,OAAO,EAAE,GAAG,CAAC,CAACA,OAAO;MACrC,CAAC,GAAGF,QAAQ,OAAO,GAAGG,IAAI;MAC1B,CAAC,GAAGH,QAAQ,YAAY,GAAGI;IAC7B,CAAC,CAAC;IACF,GAAGK;EACL,CAAC,CAAC;AACJ,CAAC,CAAC;AACFd,GAAG,CAACoB,WAAW,GAAG,KAAK;AACvB,eAAeC,MAAM,CAACC,MAAM,CAACtB,GAAG,EAAE;EAChCuB,IAAI,EAAE3B,OAAO;EACb4B,IAAI,EAAE3B;AACR,CAAC,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/9f1a95ff46e988b6fecb62b5957e91781482f5fc67a901269a491e2e20827ba2.json b/public/node_modules/.cache/babel-loader/9f1a95ff46e988b6fecb62b5957e91781482f5fc67a901269a491e2e20827ba2.json
new file mode 100644
index 00000000..b1b36ecb
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/9f1a95ff46e988b6fecb62b5957e91781482f5fc67a901269a491e2e20827ba2.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Home.js\";\nimport Navigation from './components/Navigation';\nimport Splash from './components/Splash';\nimport ProjectCard from './components/ProjectCard';\nimport Footer from './components/Footer';\nimport FeaturedContent from './components/FeaturedContent';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Home() {\n const projectCards = [/*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this), /*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this)];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Splash, {\n primaryText: \"Hi, I'm Josh Ashton!\",\n secondaryText: \"Junior full stack developer.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"row custom-container cards\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"light-text\",\n children: \"Featured Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(FeaturedContent, {\n content: projectCards\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Home;\nvar _c;\n$RefreshReg$(_c, \"Home\");","map":{"version":3,"names":["Navigation","Splash","ProjectCard","Footer","FeaturedContent","jsxDEV","_jsxDEV","Fragment","_Fragment","Home","projectCards","img","title","description","url","fileName","_jsxFileName","lineNumber","columnNumber","children","primaryText","secondaryText","className","content","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Home.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Splash from './components/Splash';\nimport ProjectCard from './components/ProjectCard';\nimport Footer from './components/Footer';\nimport FeaturedContent from './components/FeaturedContent';\n\nexport default function Home() {\n const projectCards = [\n ,\n ,\n ];\n return (\n <>\n \n \n \n
Featured Projects \n \n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,WAAW,MAAM,0BAA0B;AAClD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,eAAe,MAAM,8BAA8B;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAE3D,eAAe,SAASC,IAAIA,CAAA,EAAG;EAC7B,MAAMC,YAAY,GAAG,cACnBJ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,eACjHZ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,CAClH;EACD,oBACEZ,OAAA,CAAAE,SAAA;IAAAW,QAAA,gBACEb,OAAA,CAACN,UAAU;MAAAe,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACdZ,OAAA,CAACL,MAAM;MAACmB,WAAW,EAAC,sBAAsB;MAACC,aAAa,EAAC;IAA8B;MAAAN,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAC,CAAC,eACzFZ,OAAA;MAAKgB,SAAS,EAAC,4BAA4B;MAAAH,QAAA,gBACzCb,OAAA;QAAIgB,SAAS,EAAC,YAAY;QAAAH,QAAA,EAAC;MAAiB;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eACjDZ,OAAA,CAACF,eAAe;QAACmB,OAAO,EAAEb;MAAa;QAAAK,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACvC,CAAC,eACNZ,OAAA,CAACH,MAAM;MAAAY,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACM,EAAA,GAhBuBf,IAAI;AAAA,IAAAe,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/abbf846f9283aa9edd91377072d3c669874b52c01875c5eeb55650e4fb5e0170.json b/public/node_modules/.cache/babel-loader/abbf846f9283aa9edd91377072d3c669874b52c01875c5eeb55650e4fb5e0170.json
new file mode 100644
index 00000000..4de368cc
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/abbf846f9283aa9edd91377072d3c669874b52c01875c5eeb55650e4fb5e0170.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useEffect, useRef } from 'react';\n\n/**\n * Store the last of some value. Tracked via a `Ref` only updating it\n * after the component renders.\n *\n * Helpful if you need to compare a prop value to it's previous value during render.\n *\n * ```ts\n * function Component(props) {\n * const lastProps = usePrevious(props)\n *\n * if (lastProps.foo !== props.foo)\n * resetValueFromProps(props.foo)\n * }\n * ```\n *\n * @param value the value to track\n */\nexport default function usePrevious(value) {\n const ref = useRef(null);\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","map":{"version":3,"names":["useEffect","useRef","usePrevious","value","ref","current"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/usePrevious.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\n/**\n * Store the last of some value. Tracked via a `Ref` only updating it\n * after the component renders.\n *\n * Helpful if you need to compare a prop value to it's previous value during render.\n *\n * ```ts\n * function Component(props) {\n * const lastProps = usePrevious(props)\n *\n * if (lastProps.foo !== props.foo)\n * resetValueFromProps(props.foo)\n * }\n * ```\n *\n * @param value the value to track\n */\nexport default function usePrevious(value) {\n const ref = useRef(null);\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,WAAWA,CAACC,KAAK,EAAE;EACzC,MAAMC,GAAG,GAAGH,MAAM,CAAC,IAAI,CAAC;EACxBD,SAAS,CAAC,MAAM;IACdI,GAAG,CAACC,OAAO,GAAGF,KAAK;EACrB,CAAC,CAAC;EACF,OAAOC,GAAG,CAACC,OAAO;AACpB","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/adcb9c9b821ae06f8e24dd1e6fb8457b05eb0b5f9f5bee76d23eea90c68da64f.json b/public/node_modules/.cache/babel-loader/adcb9c9b821ae06f8e24dd1e6fb8457b05eb0b5f9f5bee76d23eea90c68da64f.json
new file mode 100644
index 00000000..247f750e
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/adcb9c9b821ae06f8e24dd1e6fb8457b05eb0b5f9f5bee76d23eea90c68da64f.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n const data = [{\n id: \"one-ai\",\n name: 'One AI',\n description: \"TODO\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: data.map(item => /*#__PURE__*/_jsxDEV(ProjectDisplay, {\n id: item.id,\n name: item.name,\n description: item.description,\n url: item.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","data","id","name","description","url","children","fileName","_jsxFileName","lineNumber","columnNumber","map","item","ProjectDisplay","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\n\nexport default function Projects() {\n const data = [\n { id: \"one-ai\", name: 'One AI', description: \"TODO\", url: \"https://github.com/quaxlyqueen/one-ai\"},\n ];\n\n return (\n <>\n \n \n {data.map(item => (\n
\n ))}\n
\n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,MAAMC,IAAI,GAAG,CACX;IAAEC,EAAE,EAAE,QAAQ;IAAEC,IAAI,EAAE,QAAQ;IAAEC,WAAW,EAAE,MAAM;IAAEC,GAAG,EAAE;EAAuC,CAAC,CACnG;EAED,oBACER,OAAA,CAAAE,SAAA;IAAAO,QAAA,gBACET,OAAA,CAACH,UAAU;MAAAa,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACZb,OAAA;MAAAS,QAAA,EACGL,IAAI,CAACU,GAAG,CAACC,IAAI,iBACZf,OAAA,CAACgB,cAAc;QAACX,EAAE,EAAEU,IAAI,CAACV,EAAG;QAACC,IAAI,EAAES,IAAI,CAACT,IAAK;QAACC,WAAW,EAAEQ,IAAI,CAACR,WAAY;QAACC,GAAG,EAAEO,IAAI,CAACP;MAAI;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAC9F;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACC,CAAC,eACRb,OAAA,CAACF,MAAM;MAAAY,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACI,EAAA,GAhBuBd,QAAQ;AAAA,IAAAc,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/b067e09b7ace15a40ce3416acefb303573f22593bcee2e65248bfcdd1fd25b52.json b/public/node_modules/.cache/babel-loader/b067e09b7ace15a40ce3416acefb303573f22593bcee2e65248bfcdd1fd25b52.json
new file mode 100644
index 00000000..d0087f74
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/b067e09b7ace15a40ce3416acefb303573f22593bcee2e65248bfcdd1fd25b52.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Blog.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Blog() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Blog;\nvar _c;\n$RefreshReg$(_c, \"Blog\");","map":{"version":3,"names":["Navigation","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Blog","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Blog.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\n\nexport default function Blog() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,IAAIA,CAAA,EAAG;EAC7B,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,UAAU;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACdR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,IAAI;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/b075c6acd5e54a12f7ed2b7a7c20de70296f148b2dd945c56c21aa2d9e2f5707.json b/public/node_modules/.cache/babel-loader/b075c6acd5e54a12f7ed2b7a7c20de70296f148b2dd945c56c21aa2d9e2f5707.json
new file mode 100644
index 00000000..3fe1e959
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/b075c6acd5e54a12f7ed2b7a7c20de70296f148b2dd945c56c21aa2d9e2f5707.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\n/**\n * Runs `querySelectorAll` on a given element.\n * \n * @param element the element\n * @param selector the selector\n */\n\nexport default function qsa(element, selector) {\n return toArray(element.querySelectorAll(selector));\n}","map":{"version":3,"names":["toArray","Function","prototype","bind","call","slice","qsa","element","selector","querySelectorAll"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/dom-helpers/esm/querySelectorAll.js"],"sourcesContent":["var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\n/**\n * Runs `querySelectorAll` on a given element.\n * \n * @param element the element\n * @param selector the selector\n */\n\nexport default function qsa(element, selector) {\n return toArray(element.querySelectorAll(selector));\n}"],"mappings":"AAAA,IAAIA,OAAO,GAAGC,QAAQ,CAACC,SAAS,CAACC,IAAI,CAACC,IAAI,CAACH,QAAQ,CAACC,SAAS,CAACE,IAAI,EAAE,EAAE,CAACC,KAAK,CAAC;AAC7E;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,SAASC,GAAGA,CAACC,OAAO,EAAEC,QAAQ,EAAE;EAC7C,OAAOR,OAAO,CAACO,OAAO,CAACE,gBAAgB,CAACD,QAAQ,CAAC,CAAC;AACpD","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/b12ba853abe6166df60106777291a09253abeb01f35c569c9dc86267d5e139c4.json b/public/node_modules/.cache/babel-loader/b12ba853abe6166df60106777291a09253abeb01f35c569c9dc86267d5e139c4.json
new file mode 100644
index 00000000..217e11af
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/b12ba853abe6166df60106777291a09253abeb01f35c569c9dc86267d5e139c4.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/index.js\";\nimport React, { StrictMode } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { BrowserRouter, Routes, Route } from \"react-router\";\nimport Home from \"./Home\";\nimport Projects from \"./Projects\";\nimport Contact from \"./Contact\";\nimport About from \"./About\";\nimport Resume from \"./Resume\";\nimport \"./styles.css\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst root = document.getElementById(\"root\");\nReactDOM.createRoot(root).render(/*#__PURE__*/_jsxDEV(BrowserRouter, {\n children: /*#__PURE__*/_jsxDEV(Routes, {\n children: [/*#__PURE__*/_jsxDEV(Route, {\n path: \"/\",\n element: /*#__PURE__*/_jsxDEV(Home, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/projects\",\n element: /*#__PURE__*/_jsxDEV(Projects, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 40\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/contact\",\n element: /*#__PURE__*/_jsxDEV(Contact, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 39\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/about\",\n element: /*#__PURE__*/_jsxDEV(About, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 37\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/blog\",\n element: /*#__PURE__*/_jsxDEV(Blog, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/resume\",\n element: /*#__PURE__*/_jsxDEV(Resume, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 38\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this)\n}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 3\n}, this));","map":{"version":3,"names":["React","StrictMode","ReactDOM","BrowserRouter","Routes","Route","Home","Projects","Contact","About","Resume","jsxDEV","_jsxDEV","root","document","getElementById","createRoot","render","children","path","element","fileName","_jsxFileName","lineNumber","columnNumber","Blog"],"sources":["/home/violet/documents/development/portfolio/public/src/index.js"],"sourcesContent":["import React, { StrictMode } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { BrowserRouter, Routes, Route } from \"react-router\";\n\nimport Home from \"./Home\";\nimport Projects from \"./Projects\";\nimport Contact from \"./Contact\";\nimport About from \"./About\";\nimport Resume from \"./Resume\";\nimport \"./styles.css\";\n\nconst root = document.getElementById(\"root\");\n\nReactDOM.createRoot(root).render(\n \n \n } />\n } />\n } />\n } />\n } />\n } />\n \n \n);\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,QAAQ,MAAM,kBAAkB;AACvC,SAASC,aAAa,EAAEC,MAAM,EAAEC,KAAK,QAAQ,cAAc;AAE3D,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,QAAQ,MAAM,YAAY;AACjC,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAO,cAAc;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAEtB,MAAMC,IAAI,GAAGC,QAAQ,CAACC,cAAc,CAAC,MAAM,CAAC;AAE5Cb,QAAQ,CAACc,UAAU,CAACH,IAAI,CAAC,CAACI,MAAM,cAC9BL,OAAA,CAACT,aAAa;EAAAe,QAAA,eACZN,OAAA,CAACR,MAAM;IAAAc,QAAA,gBACLN,OAAA,CAACP,KAAK;MAACc,IAAI,EAAC,GAAG;MAACC,OAAO,eAAER,OAAA,CAACN,IAAI;QAAAe,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACrCZ,OAAA,CAACP,KAAK;MAACc,IAAI,EAAC,WAAW;MAACC,OAAO,eAAER,OAAA,CAACL,QAAQ;QAAAc,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACjDZ,OAAA,CAACP,KAAK;MAACc,IAAI,EAAC,UAAU;MAACC,OAAO,eAAER,OAAA,CAACJ,OAAO;QAAAa,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eAC/CZ,OAAA,CAACP,KAAK;MAACc,IAAI,EAAC,QAAQ;MAACC,OAAO,eAAER,OAAA,CAACH,KAAK;QAAAY,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eAC3CZ,OAAA,CAACP,KAAK;MAACc,IAAI,EAAC,OAAO;MAACC,OAAO,eAAER,OAAA,CAACa,IAAI;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACzCZ,OAAA,CAACP,KAAK;MAACc,IAAI,EAAC,SAAS;MAACC,OAAO,eAAER,OAAA,CAACF,MAAM;QAAAW,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA;IAAAH,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACvC;AAAC;EAAAH,QAAA,EAAAC,YAAA;EAAAC,UAAA;EAAAC,YAAA;AAAA,OACI,CACjB,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/b35e85a0e18d5869bdf34b695523f3eacbbe683c123de5a554e5090ac349d370.json b/public/node_modules/.cache/babel-loader/b35e85a0e18d5869bdf34b695523f3eacbbe683c123de5a554e5090ac349d370.json
new file mode 100644
index 00000000..c94dc9ba
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/b35e85a0e18d5869bdf34b695523f3eacbbe683c123de5a554e5090ac349d370.json
@@ -0,0 +1 @@
+{"ast":null,"code":"export const ATTRIBUTE_PREFIX = `data-rr-ui-`;\nexport const PROPERTY_PREFIX = `rrUi`;\nexport function dataAttr(property) {\n return `${ATTRIBUTE_PREFIX}${property}`;\n}\nexport function dataProp(property) {\n return `${PROPERTY_PREFIX}${property}`;\n}","map":{"version":3,"names":["ATTRIBUTE_PREFIX","PROPERTY_PREFIX","dataAttr","property","dataProp"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/esm/DataKey.js"],"sourcesContent":["export const ATTRIBUTE_PREFIX = `data-rr-ui-`;\nexport const PROPERTY_PREFIX = `rrUi`;\nexport function dataAttr(property) {\n return `${ATTRIBUTE_PREFIX}${property}`;\n}\nexport function dataProp(property) {\n return `${PROPERTY_PREFIX}${property}`;\n}"],"mappings":"AAAA,OAAO,MAAMA,gBAAgB,GAAG,aAAa;AAC7C,OAAO,MAAMC,eAAe,GAAG,MAAM;AACrC,OAAO,SAASC,QAAQA,CAACC,QAAQ,EAAE;EACjC,OAAO,GAAGH,gBAAgB,GAAGG,QAAQ,EAAE;AACzC;AACA,OAAO,SAASC,QAAQA,CAACD,QAAQ,EAAE;EACjC,OAAO,GAAGF,eAAe,GAAGE,QAAQ,EAAE;AACxC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/b47a35a5960e0daad1f65e8807f043d0dd329b265f82328c5905fbf0667e4a1f.json b/public/node_modules/.cache/babel-loader/b47a35a5960e0daad1f65e8807f043d0dd329b265f82328c5905fbf0667e4a1f.json
new file mode 100644
index 00000000..23d97678
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/b47a35a5960e0daad1f65e8807f043d0dd329b265f82328c5905fbf0667e4a1f.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useState } from 'react';\nimport useEffect from './useIsomorphicEffect';\nconst targetMap = new WeakMap();\nlet resizeObserver;\nfunction getResizeObserver() {\n // eslint-disable-next-line no-return-assign\n return resizeObserver = resizeObserver || new window.ResizeObserver(entries => {\n entries.forEach(entry => {\n const handler = targetMap.get(entry.target);\n if (handler) handler(entry.contentRect);\n });\n });\n}\n\n/**\n * Efficiently observe size changes on an element. Depends on the `ResizeObserver` api,\n * and polyfills are needed in older browsers.\n *\n * ```ts\n * const [ref, attachRef] = useCallbackRef(null);\n *\n * const rect = useResizeObserver(ref);\n *\n * return (\n * \n * {JSON.stringify(rect)}\n *
\n * )\n * ```\n *\n * @param element The DOM element to observe\n */\nexport default function useResizeObserver(element) {\n const [rect, setRect] = useState(null);\n useEffect(() => {\n if (!element) return;\n getResizeObserver().observe(element);\n setRect(element.getBoundingClientRect());\n targetMap.set(element, rect => {\n setRect(rect);\n });\n return () => {\n targetMap.delete(element);\n };\n }, [element]);\n return rect;\n}","map":{"version":3,"names":["useState","useEffect","targetMap","WeakMap","resizeObserver","getResizeObserver","window","ResizeObserver","entries","forEach","entry","handler","get","target","contentRect","useResizeObserver","element","rect","setRect","observe","getBoundingClientRect","set","delete"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useResizeObserver.js"],"sourcesContent":["import { useState } from 'react';\nimport useEffect from './useIsomorphicEffect';\nconst targetMap = new WeakMap();\nlet resizeObserver;\nfunction getResizeObserver() {\n // eslint-disable-next-line no-return-assign\n return resizeObserver = resizeObserver || new window.ResizeObserver(entries => {\n entries.forEach(entry => {\n const handler = targetMap.get(entry.target);\n if (handler) handler(entry.contentRect);\n });\n });\n}\n\n/**\n * Efficiently observe size changes on an element. Depends on the `ResizeObserver` api,\n * and polyfills are needed in older browsers.\n *\n * ```ts\n * const [ref, attachRef] = useCallbackRef(null);\n *\n * const rect = useResizeObserver(ref);\n *\n * return (\n * \n * {JSON.stringify(rect)}\n *
\n * )\n * ```\n *\n * @param element The DOM element to observe\n */\nexport default function useResizeObserver(element) {\n const [rect, setRect] = useState(null);\n useEffect(() => {\n if (!element) return;\n getResizeObserver().observe(element);\n setRect(element.getBoundingClientRect());\n targetMap.set(element, rect => {\n setRect(rect);\n });\n return () => {\n targetMap.delete(element);\n };\n }, [element]);\n return rect;\n}"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,OAAO;AAChC,OAAOC,SAAS,MAAM,uBAAuB;AAC7C,MAAMC,SAAS,GAAG,IAAIC,OAAO,CAAC,CAAC;AAC/B,IAAIC,cAAc;AAClB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B;EACA,OAAOD,cAAc,GAAGA,cAAc,IAAI,IAAIE,MAAM,CAACC,cAAc,CAACC,OAAO,IAAI;IAC7EA,OAAO,CAACC,OAAO,CAACC,KAAK,IAAI;MACvB,MAAMC,OAAO,GAAGT,SAAS,CAACU,GAAG,CAACF,KAAK,CAACG,MAAM,CAAC;MAC3C,IAAIF,OAAO,EAAEA,OAAO,CAACD,KAAK,CAACI,WAAW,CAAC;IACzC,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,iBAAiBA,CAACC,OAAO,EAAE;EACjD,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGlB,QAAQ,CAAC,IAAI,CAAC;EACtCC,SAAS,CAAC,MAAM;IACd,IAAI,CAACe,OAAO,EAAE;IACdX,iBAAiB,CAAC,CAAC,CAACc,OAAO,CAACH,OAAO,CAAC;IACpCE,OAAO,CAACF,OAAO,CAACI,qBAAqB,CAAC,CAAC,CAAC;IACxClB,SAAS,CAACmB,GAAG,CAACL,OAAO,EAAEC,IAAI,IAAI;MAC7BC,OAAO,CAACD,IAAI,CAAC;IACf,CAAC,CAAC;IACF,OAAO,MAAM;MACXf,SAAS,CAACoB,MAAM,CAACN,OAAO,CAAC;IAC3B,CAAC;EACH,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EACb,OAAOC,IAAI;AACb","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/b5f7fee45ac2e9a9dfdbf97ac51abd5bcb90abf79d202dbbc850d8f4638c2c56.json b/public/node_modules/.cache/babel-loader/b5f7fee45ac2e9a9dfdbf97ac51abd5bcb90abf79d202dbbc850d8f4638c2c56.json
new file mode 100644
index 00000000..6baab8ef
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/b5f7fee45ac2e9a9dfdbf97ac51abd5bcb90abf79d202dbbc850d8f4638c2c56.json
@@ -0,0 +1 @@
+{"ast":null,"code":"'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}","map":{"version":3,"names":["process","env","NODE_ENV","module","exports","require"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react/jsx-runtime.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n"],"mappings":"AAAA,YAAY;;AAEZ,IAAIA,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;EACzCC,MAAM,CAACC,OAAO,GAAGC,OAAO,CAAC,uCAAuC,CAAC;AACnE,CAAC,MAAM;EACLF,MAAM,CAACC,OAAO,GAAGC,OAAO,CAAC,wCAAwC,CAAC;AACpE","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/b8de0ec11c27fc4bbe064c86e3dfed1d01c4a4d23a1ca75ffd296d84606bc0a5.json b/public/node_modules/.cache/babel-loader/b8de0ec11c27fc4bbe064c86e3dfed1d01c4a4d23a1ca75ffd296d84606bc0a5.json
new file mode 100644
index 00000000..5ba57581
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/b8de0ec11c27fc4bbe064c86e3dfed1d01c4a4d23a1ca75ffd296d84606bc0a5.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport ProjectDisplay from './components/ProjectDisplay';\n\n/*\n * The Projects page.\n */\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n /*\n * An array of project data to feed to the ProjectDisplay component.\n */\n const data = [{\n frontend: \"flutter\",\n backend: \"go\",\n id: \"one-ai\",\n name: 'One AI',\n description: \"TODO\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: data.map(item => /*#__PURE__*/_jsxDEV(ProjectDisplay, {\n frontend: item.frontend,\n backend: item.backend,\n id: item.id,\n name: item.name,\n description: item.description,\n url: item.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","ProjectDisplay","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","data","frontend","backend","id","name","description","url","children","fileName","_jsxFileName","lineNumber","columnNumber","map","item","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport ProjectDisplay from './components/ProjectDisplay';\n\n/*\n * The Projects page.\n */\nexport default function Projects() {\n /*\n * An array of project data to feed to the ProjectDisplay component.\n */\n const data = [\n { \n frontend: \"flutter\",\n backend: \"go\",\n id: \"one-ai\",\n name: 'One AI',\n description: \"TODO\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n },\n ];\n\n return (\n <>\n \n \n {data.map(item => (\n
\n ))}\n
\n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,cAAc,MAAM,6BAA6B;;AAExD;AACA;AACA;AAFA,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAGA,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC;AACF;AACA;EACE,MAAMC,IAAI,GAAG,CACX;IACEC,QAAQ,EAAE,SAAS;IACnBC,OAAO,EAAE,IAAI;IACbC,EAAE,EAAE,QAAQ;IACZC,IAAI,EAAE,QAAQ;IACdC,WAAW,EAAE,MAAM;IACnBC,GAAG,EAAE;EACP,CAAC,CACF;EAED,oBACEV,OAAA,CAAAE,SAAA;IAAAS,QAAA,gBACEX,OAAA,CAACJ,UAAU;MAAAgB,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACZf,OAAA;MAAAW,QAAA,EACGP,IAAI,CAACY,GAAG,CAACC,IAAI,iBACZjB,OAAA,CAACF,cAAc;QAACO,QAAQ,EAAEY,IAAI,CAACZ,QAAS;QAACC,OAAO,EAAEW,IAAI,CAACX,OAAQ;QAACC,EAAE,EAAEU,IAAI,CAACV,EAAG;QAACC,IAAI,EAAES,IAAI,CAACT,IAAK;QAACC,WAAW,EAAEQ,IAAI,CAACR,WAAY;QAACC,GAAG,EAAEO,IAAI,CAACP;MAAI;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAC9I;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACC,CAAC,eACRf,OAAA,CAACH,MAAM;MAAAe,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACG,EAAA,GA1BuBf,QAAQ;AAAA,IAAAe,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/bafb543eff898255dff60bc3af3fca0134c489d88fead1aeaaa02478bb5ca5b0.json b/public/node_modules/.cache/babel-loader/bafb543eff898255dff60bc3af3fca0134c489d88fead1aeaaa02478bb5ca5b0.json
new file mode 100644
index 00000000..c6a75ef9
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/bafb543eff898255dff60bc3af3fca0134c489d88fead1aeaaa02478bb5ca5b0.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay({\n frontend,\n backend,\n id,\n name,\n description,\n url\n}) {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: `panel ${frontend} ${backend}`,\n id: id,\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"label\",\n children: name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h4\", {\n className: \"label-text\",\n children: description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: url,\n children: \"View Code on GitHub\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 59\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = ProjectDisplay;\nvar _c;\n$RefreshReg$(_c, \"ProjectDisplay\");","map":{"version":3,"names":["ProjectDisplay","frontend","backend","id","name","description","url","_jsxDEV","_Fragment","children","className","fileName","_jsxFileName","lineNumber","columnNumber","type","href","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js"],"sourcesContent":["/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay( {frontend, backend, id, name, description, url} ) {\n return (\n <>\n \n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,cAAcA,CAAE;EAACC,QAAQ;EAAEC,OAAO;EAAEC,EAAE;EAAEC,IAAI;EAAEC,WAAW;EAAEC;AAAG,CAAC,EAAG;EACxF,oBACEC,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAKG,SAAS,EAAE,SAAST,QAAQ,IAAIC,OAAO,EAAG;MAACC,EAAE,EAAEA,EAAG;MAAAM,QAAA,gBACrDF,OAAA;QAAIG,SAAS,EAAC,OAAO;QAAAD,QAAA,EAAEL;MAAI;QAAAO,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eACjCP,OAAA;QAAIG,SAAS,EAAC,YAAY;QAAAD,QAAA,EAAEJ;MAAW;QAAAM,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eAC7CP,OAAA;QAAQQ,IAAI,EAAC,QAAQ;QAACL,SAAS,EAAC,iBAAiB;QAAAD,QAAA,eAACF,OAAA;UAAGS,IAAI,EAAEV,GAAI;UAAAG,QAAA,EAAC;QAAmB;UAAAE,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAG;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAC7F;EAAC,gBACN,CAAC;AAEP;AAACG,EAAA,GAVuBjB,cAAc;AAAA,IAAAiB,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/bbd7a6f289fe2173fe966a03225d0ef030cb8355c42a06581539228076ee3ff5.json b/public/node_modules/.cache/babel-loader/bbd7a6f289fe2173fe966a03225d0ef030cb8355c42a06581539228076ee3ff5.json
new file mode 100644
index 00000000..7811beb3
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/bbd7a6f289fe2173fe966a03225d0ef030cb8355c42a06581539228076ee3ff5.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/About.js\";\nimport Nav from './components/Nav';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function About() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Nav, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = About;\nvar _c;\n$RefreshReg$(_c, \"About\");","map":{"version":3,"names":["Nav","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","About","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/About.js"],"sourcesContent":["import Nav from './components/Nav';\nimport Footer from './components/Footer';\n\nexport default function About() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,kBAAkB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,GAAG;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACPR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,KAAK;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/bd5b42f64809e336b458f4b5f63b06b44d1b454ace62f30e4feb75807a57b986.json b/public/node_modules/.cache/babel-loader/bd5b42f64809e336b458f4b5f63b06b44d1b454ace62f30e4feb75807a57b986.json
new file mode 100644
index 00000000..42c9b3d8
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/bd5b42f64809e336b458f4b5f63b06b44d1b454ace62f30e4feb75807a57b986.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport ProjectDisplay from './components/ProjectDisplay';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n const data = [{\n id: \"one-ai\",\n name: 'One AI',\n description: \"TODO\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: data.map(item => /*#__PURE__*/_jsxDEV(ProjectDisplay, {\n frontend: item.frontend,\n backend: item.backend,\n id: item.id,\n name: item.name,\n description: item.description,\n url: item.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","ProjectDisplay","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","data","id","name","description","url","children","fileName","_jsxFileName","lineNumber","columnNumber","map","item","frontend","backend","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport ProjectDisplay from './components/ProjectDisplay';\n\nexport default function Projects() {\n const data = [\n { id: \"one-ai\", name: 'One AI', description: \"TODO\", url: \"https://github.com/quaxlyqueen/one-ai\"},\n ];\n\n return (\n <>\n \n \n {data.map(item => (\n
\n ))}\n
\n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,cAAc,MAAM,6BAA6B;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzD,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,MAAMC,IAAI,GAAG,CACX;IAAEC,EAAE,EAAE,QAAQ;IAAEC,IAAI,EAAE,QAAQ;IAAEC,WAAW,EAAE,MAAM;IAAEC,GAAG,EAAE;EAAuC,CAAC,CACnG;EAED,oBACER,OAAA,CAAAE,SAAA;IAAAO,QAAA,gBACET,OAAA,CAACJ,UAAU;MAAAc,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACZb,OAAA;MAAAS,QAAA,EACGL,IAAI,CAACU,GAAG,CAACC,IAAI,iBACZf,OAAA,CAACF,cAAc;QAACkB,QAAQ,EAAED,IAAI,CAACC,QAAS;QAACC,OAAO,EAAEF,IAAI,CAACE,OAAQ;QAACZ,EAAE,EAAEU,IAAI,CAACV,EAAG;QAACC,IAAI,EAAES,IAAI,CAACT,IAAK;QAACC,WAAW,EAAEQ,IAAI,CAACR,WAAY;QAACC,GAAG,EAAEO,IAAI,CAACP;MAAI;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAC9I;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACC,CAAC,eACRb,OAAA,CAACH,MAAM;MAAAa,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACK,EAAA,GAhBuBf,QAAQ;AAAA,IAAAe,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/be2d466b95a022c1f76cdea0787c1dddd51a5cf10776d995e8153995b542edbf.json b/public/node_modules/.cache/babel-loader/be2d466b95a022c1f76cdea0787c1dddd51a5cf10776d995e8153995b542edbf.json
new file mode 100644
index 00000000..025dec4d
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/be2d466b95a022c1f76cdea0787c1dddd51a5cf10776d995e8153995b542edbf.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useEffect, useLayoutEffect } from 'react';\nconst isReactNative = typeof global !== 'undefined' &&\n// @ts-ignore\nglobal.navigator &&\n// @ts-ignore\nglobal.navigator.product === 'ReactNative';\nconst isDOM = typeof document !== 'undefined';\n\n/**\n * Is `useLayoutEffect` in a DOM or React Native environment, otherwise resolves to useEffect\n * Only useful to avoid the console warning.\n *\n * PREFER `useEffect` UNLESS YOU KNOW WHAT YOU ARE DOING.\n *\n * @category effects\n */\nexport default isDOM || isReactNative ? useLayoutEffect : useEffect;","map":{"version":3,"names":["useEffect","useLayoutEffect","isReactNative","global","navigator","product","isDOM","document"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useIsomorphicEffect.js"],"sourcesContent":["import { useEffect, useLayoutEffect } from 'react';\nconst isReactNative = typeof global !== 'undefined' &&\n// @ts-ignore\nglobal.navigator &&\n// @ts-ignore\nglobal.navigator.product === 'ReactNative';\nconst isDOM = typeof document !== 'undefined';\n\n/**\n * Is `useLayoutEffect` in a DOM or React Native environment, otherwise resolves to useEffect\n * Only useful to avoid the console warning.\n *\n * PREFER `useEffect` UNLESS YOU KNOW WHAT YOU ARE DOING.\n *\n * @category effects\n */\nexport default isDOM || isReactNative ? useLayoutEffect : useEffect;"],"mappings":"AAAA,SAASA,SAAS,EAAEC,eAAe,QAAQ,OAAO;AAClD,MAAMC,aAAa,GAAG,OAAOC,MAAM,KAAK,WAAW;AACnD;AACAA,MAAM,CAACC,SAAS;AAChB;AACAD,MAAM,CAACC,SAAS,CAACC,OAAO,KAAK,aAAa;AAC1C,MAAMC,KAAK,GAAG,OAAOC,QAAQ,KAAK,WAAW;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeD,KAAK,IAAIJ,aAAa,GAAGD,eAAe,GAAGD,SAAS","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/bf22a5fbd2be0c1b047dee080ef5a47d93f29b0692ccf0bc4334a3ce0d292dab.json b/public/node_modules/.cache/babel-loader/bf22a5fbd2be0c1b047dee080ef5a47d93f29b0692ccf0bc4334a3ce0d292dab.json
new file mode 100644
index 00000000..08710d02
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/bf22a5fbd2be0c1b047dee080ef5a47d93f29b0692ccf0bc4334a3ce0d292dab.json
@@ -0,0 +1 @@
+{"ast":null,"code":"const _excluded = [\"onKeyDown\"];\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-has-content */\n\nimport * as React from 'react';\nimport { useEventCallback } from '@restart/hooks';\nimport { useButtonProps } from './Button';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\n/**\n * An generic `` component that covers a few A11y cases, ensuring that\n * cases where the `href` is missing or trivial like \"#\" are treated like buttons.\n */\nconst Anchor = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n onKeyDown\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps] = useButtonProps(Object.assign({\n tagName: 'a'\n }, props));\n const handleKeyDown = useEventCallback(e => {\n buttonProps.onKeyDown(e);\n onKeyDown == null ? void 0 : onKeyDown(e);\n });\n if (isTrivialHref(props.href) || props.role === 'button') {\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, buttonProps, {\n onKeyDown: handleKeyDown\n }));\n }\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, {\n onKeyDown: onKeyDown\n }));\n});\nAnchor.displayName = 'Anchor';\nexport default Anchor;","map":{"version":3,"names":["_excluded","_objectWithoutPropertiesLoose","r","e","t","n","hasOwnProperty","call","indexOf","React","useEventCallback","useButtonProps","jsx","_jsx","isTrivialHref","href","trim","Anchor","forwardRef","_ref","ref","onKeyDown","props","buttonProps","Object","assign","tagName","handleKeyDown","role","displayName"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/esm/Anchor.js"],"sourcesContent":["const _excluded = [\"onKeyDown\"];\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-has-content */\n\nimport * as React from 'react';\nimport { useEventCallback } from '@restart/hooks';\nimport { useButtonProps } from './Button';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\n/**\n * An generic ` ` component that covers a few A11y cases, ensuring that\n * cases where the `href` is missing or trivial like \"#\" are treated like buttons.\n */\nconst Anchor = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n onKeyDown\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps] = useButtonProps(Object.assign({\n tagName: 'a'\n }, props));\n const handleKeyDown = useEventCallback(e => {\n buttonProps.onKeyDown(e);\n onKeyDown == null ? void 0 : onKeyDown(e);\n });\n if (isTrivialHref(props.href) || props.role === 'button') {\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, buttonProps, {\n onKeyDown: handleKeyDown\n }));\n }\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, {\n onKeyDown: onKeyDown\n }));\n});\nAnchor.displayName = 'Anchor';\nexport default Anchor;"],"mappings":"AAAA,MAAMA,SAAS,GAAG,CAAC,WAAW,CAAC;AAC/B,SAASC,6BAA6BA,CAACC,CAAC,EAAEC,CAAC,EAAE;EAAE,IAAI,IAAI,IAAID,CAAC,EAAE,OAAO,CAAC,CAAC;EAAE,IAAIE,CAAC,GAAG,CAAC,CAAC;EAAE,KAAK,IAAIC,CAAC,IAAIH,CAAC,EAAE,IAAI,CAAC,CAAC,CAACI,cAAc,CAACC,IAAI,CAACL,CAAC,EAAEG,CAAC,CAAC,EAAE;IAAE,IAAIF,CAAC,CAACK,OAAO,CAACH,CAAC,CAAC,IAAI,CAAC,EAAE;IAAUD,CAAC,CAACC,CAAC,CAAC,GAAGH,CAAC,CAACG,CAAC,CAAC;EAAE;EAAE,OAAOD,CAAC;AAAE;AACpM;AACA;;AAEA,OAAO,KAAKK,KAAK,MAAM,OAAO;AAC9B,SAASC,gBAAgB,QAAQ,gBAAgB;AACjD,SAASC,cAAc,QAAQ,UAAU;AACzC,SAASC,GAAG,IAAIC,IAAI,QAAQ,mBAAmB;AAC/C,OAAO,SAASC,aAAaA,CAACC,IAAI,EAAE;EAClC,OAAO,CAACA,IAAI,IAAIA,IAAI,CAACC,IAAI,CAAC,CAAC,KAAK,GAAG;AACrC;AACA;AACA;AACA;AACA;AACA,MAAMC,MAAM,GAAG,aAAaR,KAAK,CAACS,UAAU,CAAC,CAACC,IAAI,EAAEC,GAAG,KAAK;EAC1D,IAAI;MACAC;IACF,CAAC,GAAGF,IAAI;IACRG,KAAK,GAAGrB,6BAA6B,CAACkB,IAAI,EAAEnB,SAAS,CAAC;EACxD,MAAM,CAACuB,WAAW,CAAC,GAAGZ,cAAc,CAACa,MAAM,CAACC,MAAM,CAAC;IACjDC,OAAO,EAAE;EACX,CAAC,EAAEJ,KAAK,CAAC,CAAC;EACV,MAAMK,aAAa,GAAGjB,gBAAgB,CAACP,CAAC,IAAI;IAC1CoB,WAAW,CAACF,SAAS,CAAClB,CAAC,CAAC;IACxBkB,SAAS,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,SAAS,CAAClB,CAAC,CAAC;EAC3C,CAAC,CAAC;EACF,IAAIW,aAAa,CAACQ,KAAK,CAACP,IAAI,CAAC,IAAIO,KAAK,CAACM,IAAI,KAAK,QAAQ,EAAE;IACxD,OAAO,aAAaf,IAAI,CAAC,GAAG,EAAEW,MAAM,CAACC,MAAM,CAAC;MAC1CL,GAAG,EAAEA;IACP,CAAC,EAAEE,KAAK,EAAEC,WAAW,EAAE;MACrBF,SAAS,EAAEM;IACb,CAAC,CAAC,CAAC;EACL;EACA,OAAO,aAAad,IAAI,CAAC,GAAG,EAAEW,MAAM,CAACC,MAAM,CAAC;IAC1CL,GAAG,EAAEA;EACP,CAAC,EAAEE,KAAK,EAAE;IACRD,SAAS,EAAEA;EACb,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AACFJ,MAAM,CAACY,WAAW,GAAG,QAAQ;AAC7B,eAAeZ,MAAM","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/c16581aa99c352b8b4dbffdab9bfb30d7ed8cef89b3e378448635ed925c289c0.json b/public/node_modules/.cache/babel-loader/c16581aa99c352b8b4dbffdab9bfb30d7ed8cef89b3e378448635ed925c289c0.json
new file mode 100644
index 00000000..1962de09
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/c16581aa99c352b8b4dbffdab9bfb30d7ed8cef89b3e378448635ed925c289c0.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import useMergeState from './useMergeState';\nexport default function useMergeStateFromProps(props, gDSFP, initialState) {\n const [state, setState] = useMergeState(initialState);\n const nextState = gDSFP(props, state);\n if (nextState !== null) setState(nextState);\n return [state, setState];\n}","map":{"version":3,"names":["useMergeState","useMergeStateFromProps","props","gDSFP","initialState","state","setState","nextState"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useMergeStateFromProps.js"],"sourcesContent":["import useMergeState from './useMergeState';\nexport default function useMergeStateFromProps(props, gDSFP, initialState) {\n const [state, setState] = useMergeState(initialState);\n const nextState = gDSFP(props, state);\n if (nextState !== null) setState(nextState);\n return [state, setState];\n}"],"mappings":"AAAA,OAAOA,aAAa,MAAM,iBAAiB;AAC3C,eAAe,SAASC,sBAAsBA,CAACC,KAAK,EAAEC,KAAK,EAAEC,YAAY,EAAE;EACzE,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGN,aAAa,CAACI,YAAY,CAAC;EACrD,MAAMG,SAAS,GAAGJ,KAAK,CAACD,KAAK,EAAEG,KAAK,CAAC;EACrC,IAAIE,SAAS,KAAK,IAAI,EAAED,QAAQ,CAACC,SAAS,CAAC;EAC3C,OAAO,CAACF,KAAK,EAAEC,QAAQ,CAAC;AAC1B","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/c6b5f75309f6aa1d33e62abf5b8051a5c6d3b6189535b9fa0592a5328925052a.json b/public/node_modules/.cache/babel-loader/c6b5f75309f6aa1d33e62abf5b8051a5c6d3b6189535b9fa0592a5328925052a.json
new file mode 100644
index 00000000..b208b60a
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/c6b5f75309f6aa1d33e62abf5b8051a5c6d3b6189535b9fa0592a5328925052a.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Home.js\";\nimport Navigation from './components/Navigation';\nimport Splash from './components/Splash';\nimport ProjectCard from './components/ProjectCard';\nimport Footer from './components/Footer';\nimport FeaturedContent from './components/FeaturedContent';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Home() {\n const projectCards = [\n /*#__PURE__*/\n //ProjectCard(\"img/one-ai.png\", \"One AI\", \"ASDF\", \"https://github.com/quaxlyqueen/one-ai\"),\n _jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this), /*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 5\n }, this), /*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 5\n }, this), /*#__PURE__*/_jsxDEV(ProjectCard, {\n img: \"img/one-ai.png\",\n title: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this)];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Splash, {\n primaryText: \"Hi, I'm Josh Ashton!\",\n secondaryText: \"Junior full stack developer.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"row custom-container cards\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"light-text\",\n children: \"Featured Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(FeaturedContent, {\n content: projectCards\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Home;\nvar _c;\n$RefreshReg$(_c, \"Home\");","map":{"version":3,"names":["Navigation","Splash","ProjectCard","Footer","FeaturedContent","jsxDEV","_jsxDEV","Fragment","_Fragment","Home","projectCards","img","title","description","url","fileName","_jsxFileName","lineNumber","columnNumber","children","primaryText","secondaryText","className","content","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Home.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Splash from './components/Splash';\nimport ProjectCard from './components/ProjectCard';\nimport Footer from './components/Footer';\nimport FeaturedContent from './components/FeaturedContent';\n\nexport default function Home() {\n const projectCards = [\n //ProjectCard(\"img/one-ai.png\", \"One AI\", \"ASDF\", \"https://github.com/quaxlyqueen/one-ai\"),\n ,\n ,\n ,\n \n ];\n return (\n <>\n \n \n \n
Featured Projects \n \n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,WAAW,MAAM,0BAA0B;AAClD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,eAAe,MAAM,8BAA8B;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAE3D,eAAe,SAASC,IAAIA,CAAA,EAAG;EAC7B,MAAMC,YAAY,GAAG;EAAA;EACnB;EACAJ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,eACjHZ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,eACjHZ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,eACjHZ,OAAA,CAACJ,WAAW;IAACS,GAAG,EAAC,gBAAgB;IAACC,KAAK,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,CAClH;EACD,oBACEZ,OAAA,CAAAE,SAAA;IAAAW,QAAA,gBACEb,OAAA,CAACN,UAAU;MAAAe,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACdZ,OAAA,CAACL,MAAM;MAACmB,WAAW,EAAC,sBAAsB;MAACC,aAAa,EAAC;IAA8B;MAAAN,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAC,CAAC,eACzFZ,OAAA;MAAKgB,SAAS,EAAC,4BAA4B;MAAAH,QAAA,gBACzCb,OAAA;QAAIgB,SAAS,EAAC,YAAY;QAAAH,QAAA,EAAC;MAAiB;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eACjDZ,OAAA,CAACF,eAAe;QAACmB,OAAO,EAAEb;MAAa;QAAAK,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACvC,CAAC,eACNZ,OAAA,CAACH,MAAM;MAAAY,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACM,EAAA,GAnBuBf,IAAI;AAAA,IAAAe,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/c842127a4fd7ac8546f93c34deb73ab277014149b82ac65ddf2eadea820f7221.json b/public/node_modules/.cache/babel-loader/c842127a4fd7ac8546f93c34deb73ab277014149b82ac65ddf2eadea820f7221.json
new file mode 100644
index 00000000..4586cd1a
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/c842127a4fd7ac8546f93c34deb73ab277014149b82ac65ddf2eadea820f7221.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Resume.js\";\nimport Nav from './components/Nav';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Nav, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Nav","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Resume.js"],"sourcesContent":["import Nav from './components/Nav';\nimport Footer from './components/Footer';\n\nexport default function Projects() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,kBAAkB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,GAAG;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACPR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,QAAQ;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/c9324657d083ff818be251859c24cf5c1525d5d9e9005f9dd71638e1ad872a4f.json b/public/node_modules/.cache/babel-loader/c9324657d083ff818be251859c24cf5c1525d5d9e9005f9dd71638e1ad872a4f.json
new file mode 100644
index 00000000..40014193
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/c9324657d083ff818be251859c24cf5c1525d5d9e9005f9dd71638e1ad872a4f.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n const projectDisplays = [/*#__PURE__*/_jsxDEV(ProjectDisplay, {\n id: \"one-ai\",\n name: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, this)];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: projectDisplays\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","projectDisplays","ProjectDisplay","id","name","description","url","fileName","_jsxFileName","lineNumber","columnNumber","children","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\n\nexport default function Projects() {\n const projectDisplays = [\n ,\n ];\n\n return (\n <>\n \n {projectDisplays}
\n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,MAAMC,eAAe,GAAG,cACtBJ,OAAA,CAACK,cAAc;IAACC,EAAE,EAAC,QAAQ;IAACC,IAAI,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,CAC3G;EAED,oBACEb,OAAA,CAAAE,SAAA;IAAAY,QAAA,gBACEd,OAAA,CAACH,UAAU;MAAAa,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACZb,OAAA;MAAAc,QAAA,EAAMV;IAAe;MAAAM,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAM,CAAC,eAC9Bb,OAAA,CAACF,MAAM;MAAAY,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACE,EAAA,GAZuBZ,QAAQ;AAAA,IAAAY,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/ca02161611428ba615738003c79bd6069db3f2719f144110717151871091a3fe.json b/public/node_modules/.cache/babel-loader/ca02161611428ba615738003c79bd6069db3f2719f144110717151871091a3fe.json
new file mode 100644
index 00000000..e365f47c
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/ca02161611428ba615738003c79bd6069db3f2719f144110717151871091a3fe.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\n\nexport default function Projects() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,UAAU;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACdR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,QAAQ;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/cc76d527868c5f2d3c9fd59888519b0476ebffd0f2c285046fe24c669f01cf73.json b/public/node_modules/.cache/babel-loader/cc76d527868c5f2d3c9fd59888519b0476ebffd0f2c285046fe24c669f01cf73.json
new file mode 100644
index 00000000..583d09a8
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/cc76d527868c5f2d3c9fd59888519b0476ebffd0f2c285046fe24c669f01cf73.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nvar _jsxFileName = \"/Users/jquense/src/uncontrollable/src/uncontrollable.js\";\nimport React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport invariant from 'invariant';\nimport * as Utils from './utils';\nexport default function uncontrollable(Component, controlledValues, methods) {\n if (methods === void 0) {\n methods = [];\n }\n var displayName = Component.displayName || Component.name || 'Component';\n var canAcceptRef = Utils.canAcceptRef(Component);\n var controlledProps = Object.keys(controlledValues);\n var PROPS_TO_OMIT = controlledProps.map(Utils.defaultKey);\n !(canAcceptRef || !methods.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '[uncontrollable] stateless function components cannot pass through methods ' + 'because they have no associated instances. Check component: ' + displayName + ', ' + 'attempting to pass through methods: ' + methods.join(', ')) : invariant(false) : void 0;\n var UncontrolledComponent = /*#__PURE__*/\n function (_React$Component) {\n _inheritsLoose(UncontrolledComponent, _React$Component);\n function UncontrolledComponent() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.handlers = Object.create(null);\n controlledProps.forEach(function (propName) {\n var handlerName = controlledValues[propName];\n var handleChange = function handleChange(value) {\n if (_this.props[handlerName]) {\n var _this$props;\n _this._notifying = true;\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n (_this$props = _this.props)[handlerName].apply(_this$props, [value].concat(args));\n _this._notifying = false;\n }\n if (!_this.unmounted) _this.setState(function (_ref) {\n var _extends2;\n var values = _ref.values;\n return {\n values: _extends(Object.create(null), values, (_extends2 = {}, _extends2[propName] = value, _extends2))\n };\n });\n };\n _this.handlers[handlerName] = handleChange;\n });\n if (methods.length) _this.attachRef = function (ref) {\n _this.inner = ref;\n };\n var values = Object.create(null);\n controlledProps.forEach(function (key) {\n values[key] = _this.props[Utils.defaultKey(key)];\n });\n _this.state = {\n values: values,\n prevProps: {}\n };\n return _this;\n }\n var _proto = UncontrolledComponent.prototype;\n _proto.shouldComponentUpdate = function shouldComponentUpdate() {\n //let setState trigger the update\n return !this._notifying;\n };\n UncontrolledComponent.getDerivedStateFromProps = function getDerivedStateFromProps(props, _ref2) {\n var values = _ref2.values,\n prevProps = _ref2.prevProps;\n var nextState = {\n values: _extends(Object.create(null), values),\n prevProps: {}\n };\n controlledProps.forEach(function (key) {\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n nextState.prevProps[key] = props[key];\n if (!Utils.isProp(props, key) && Utils.isProp(prevProps, key)) {\n nextState.values[key] = props[Utils.defaultKey(key)];\n }\n });\n return nextState;\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unmounted = true;\n };\n _proto.render = function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n innerRef = _this$props2.innerRef,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"innerRef\"]);\n PROPS_TO_OMIT.forEach(function (prop) {\n delete props[prop];\n });\n var newProps = {};\n controlledProps.forEach(function (propName) {\n var propValue = _this2.props[propName];\n newProps[propName] = propValue !== undefined ? propValue : _this2.state.values[propName];\n });\n return React.createElement(Component, _extends({}, props, newProps, this.handlers, {\n ref: innerRef || this.attachRef\n }));\n };\n return UncontrolledComponent;\n }(React.Component);\n polyfill(UncontrolledComponent);\n UncontrolledComponent.displayName = \"Uncontrolled(\" + displayName + \")\";\n UncontrolledComponent.propTypes = _extends({\n innerRef: function innerRef() {}\n }, Utils.uncontrolledPropTypes(controlledValues, displayName));\n methods.forEach(function (method) {\n UncontrolledComponent.prototype[method] = function $proxiedMethod() {\n var _this$inner;\n return (_this$inner = this.inner)[method].apply(_this$inner, arguments);\n };\n });\n var WrappedComponent = UncontrolledComponent;\n if (React.forwardRef) {\n WrappedComponent = React.forwardRef(function (props, ref) {\n return React.createElement(UncontrolledComponent, _extends({}, props, {\n innerRef: ref,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 128\n },\n __self: this\n }));\n });\n WrappedComponent.propTypes = UncontrolledComponent.propTypes;\n }\n WrappedComponent.ControlledComponent = Component;\n /**\n * useful when wrapping a Component and you want to control\n * everything\n */\n\n WrappedComponent.deferControlTo = function (newComponent, additions, nextMethods) {\n if (additions === void 0) {\n additions = {};\n }\n return uncontrollable(newComponent, _extends({}, controlledValues, additions), nextMethods);\n };\n return WrappedComponent;\n}","map":{"version":3,"names":["_objectWithoutPropertiesLoose","_extends","_inheritsLoose","_jsxFileName","React","polyfill","invariant","Utils","uncontrollable","Component","controlledValues","methods","displayName","name","canAcceptRef","controlledProps","Object","keys","PROPS_TO_OMIT","map","defaultKey","length","process","env","NODE_ENV","join","UncontrolledComponent","_React$Component","_this","_len","arguments","args","Array","_key","call","apply","concat","handlers","create","forEach","propName","handlerName","handleChange","value","props","_this$props","_notifying","_len2","_key2","unmounted","setState","_ref","_extends2","values","attachRef","ref","inner","key","state","prevProps","_proto","prototype","shouldComponentUpdate","getDerivedStateFromProps","_ref2","nextState","isProp","componentWillUnmount","render","_this2","_this$props2","innerRef","prop","newProps","propValue","undefined","createElement","propTypes","uncontrolledPropTypes","method","$proxiedMethod","_this$inner","WrappedComponent","forwardRef","__source","fileName","lineNumber","__self","ControlledComponent","deferControlTo","newComponent","additions","nextMethods"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/uncontrollable/lib/esm/uncontrollable.js"],"sourcesContent":["import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nvar _jsxFileName = \"/Users/jquense/src/uncontrollable/src/uncontrollable.js\";\nimport React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport invariant from 'invariant';\nimport * as Utils from './utils';\nexport default function uncontrollable(Component, controlledValues, methods) {\n if (methods === void 0) {\n methods = [];\n }\n\n var displayName = Component.displayName || Component.name || 'Component';\n var canAcceptRef = Utils.canAcceptRef(Component);\n var controlledProps = Object.keys(controlledValues);\n var PROPS_TO_OMIT = controlledProps.map(Utils.defaultKey);\n !(canAcceptRef || !methods.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '[uncontrollable] stateless function components cannot pass through methods ' + 'because they have no associated instances. Check component: ' + displayName + ', ' + 'attempting to pass through methods: ' + methods.join(', ')) : invariant(false) : void 0;\n\n var UncontrolledComponent =\n /*#__PURE__*/\n function (_React$Component) {\n _inheritsLoose(UncontrolledComponent, _React$Component);\n\n function UncontrolledComponent() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.handlers = Object.create(null);\n controlledProps.forEach(function (propName) {\n var handlerName = controlledValues[propName];\n\n var handleChange = function handleChange(value) {\n if (_this.props[handlerName]) {\n var _this$props;\n\n _this._notifying = true;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (_this$props = _this.props)[handlerName].apply(_this$props, [value].concat(args));\n\n _this._notifying = false;\n }\n\n if (!_this.unmounted) _this.setState(function (_ref) {\n var _extends2;\n\n var values = _ref.values;\n return {\n values: _extends(Object.create(null), values, (_extends2 = {}, _extends2[propName] = value, _extends2))\n };\n });\n };\n\n _this.handlers[handlerName] = handleChange;\n });\n if (methods.length) _this.attachRef = function (ref) {\n _this.inner = ref;\n };\n var values = Object.create(null);\n controlledProps.forEach(function (key) {\n values[key] = _this.props[Utils.defaultKey(key)];\n });\n _this.state = {\n values: values,\n prevProps: {}\n };\n return _this;\n }\n\n var _proto = UncontrolledComponent.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate() {\n //let setState trigger the update\n return !this._notifying;\n };\n\n UncontrolledComponent.getDerivedStateFromProps = function getDerivedStateFromProps(props, _ref2) {\n var values = _ref2.values,\n prevProps = _ref2.prevProps;\n var nextState = {\n values: _extends(Object.create(null), values),\n prevProps: {}\n };\n controlledProps.forEach(function (key) {\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n nextState.prevProps[key] = props[key];\n\n if (!Utils.isProp(props, key) && Utils.isProp(prevProps, key)) {\n nextState.values[key] = props[Utils.defaultKey(key)];\n }\n });\n return nextState;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unmounted = true;\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n innerRef = _this$props2.innerRef,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"innerRef\"]);\n\n PROPS_TO_OMIT.forEach(function (prop) {\n delete props[prop];\n });\n var newProps = {};\n controlledProps.forEach(function (propName) {\n var propValue = _this2.props[propName];\n newProps[propName] = propValue !== undefined ? propValue : _this2.state.values[propName];\n });\n return React.createElement(Component, _extends({}, props, newProps, this.handlers, {\n ref: innerRef || this.attachRef\n }));\n };\n\n return UncontrolledComponent;\n }(React.Component);\n\n polyfill(UncontrolledComponent);\n UncontrolledComponent.displayName = \"Uncontrolled(\" + displayName + \")\";\n UncontrolledComponent.propTypes = _extends({\n innerRef: function innerRef() {}\n }, Utils.uncontrolledPropTypes(controlledValues, displayName));\n methods.forEach(function (method) {\n UncontrolledComponent.prototype[method] = function $proxiedMethod() {\n var _this$inner;\n\n return (_this$inner = this.inner)[method].apply(_this$inner, arguments);\n };\n });\n var WrappedComponent = UncontrolledComponent;\n\n if (React.forwardRef) {\n WrappedComponent = React.forwardRef(function (props, ref) {\n return React.createElement(UncontrolledComponent, _extends({}, props, {\n innerRef: ref,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 128\n },\n __self: this\n }));\n });\n WrappedComponent.propTypes = UncontrolledComponent.propTypes;\n }\n\n WrappedComponent.ControlledComponent = Component;\n /**\n * useful when wrapping a Component and you want to control\n * everything\n */\n\n WrappedComponent.deferControlTo = function (newComponent, additions, nextMethods) {\n if (additions === void 0) {\n additions = {};\n }\n\n return uncontrollable(newComponent, _extends({}, controlledValues, additions), nextMethods);\n };\n\n return WrappedComponent;\n}"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/cd913210c72a6756862c0edfb1322efd9920939eac7626b00d62283bdfab7c2e.json b/public/node_modules/.cache/babel-loader/cd913210c72a6756862c0edfb1322efd9920939eac7626b00d62283bdfab7c2e.json
new file mode 100644
index 00000000..e3f06a40
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/cd913210c72a6756862c0edfb1322efd9920939eac7626b00d62283bdfab7c2e.json
@@ -0,0 +1 @@
+{"ast":null,"code":"\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavItem = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'nav-item');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nNavItem.displayName = 'NavItem';\nexport default NavItem;","map":{"version":3,"names":["React","classNames","useBootstrapPrefix","jsx","_jsx","NavItem","forwardRef","className","bsPrefix","as","Component","props","ref","displayName"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/esm/NavItem.js"],"sourcesContent":["\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavItem = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'nav-item');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nNavItem.displayName = 'NavItem';\nexport default NavItem;"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,kBAAkB,QAAQ,iBAAiB;AACpD,SAASC,GAAG,IAAIC,IAAI,QAAQ,mBAAmB;AAC/C,MAAMC,OAAO,GAAG,aAAaL,KAAK,CAACM,UAAU,CAAC,CAAC;EAC7CC,SAAS;EACTC,QAAQ;EACRC,EAAE,EAAEC,SAAS,GAAG,KAAK;EACrB,GAAGC;AACL,CAAC,EAAEC,GAAG,KAAK;EACTJ,QAAQ,GAAGN,kBAAkB,CAACM,QAAQ,EAAE,UAAU,CAAC;EACnD,OAAO,aAAaJ,IAAI,CAACM,SAAS,EAAE;IAClCE,GAAG,EAAEA,GAAG;IACRL,SAAS,EAAEN,UAAU,CAACM,SAAS,EAAEC,QAAQ,CAAC;IAC1C,GAAGG;EACL,CAAC,CAAC;AACJ,CAAC,CAAC;AACFN,OAAO,CAACQ,WAAW,GAAG,SAAS;AAC/B,eAAeR,OAAO","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/d426b3b29bd7103c6e968d435a4356a0c26a9b9d797adbfece57ee014d2000d5.json b/public/node_modules/.cache/babel-loader/d426b3b29bd7103c6e968d435a4356a0c26a9b9d797adbfece57ee014d2000d5.json
new file mode 100644
index 00000000..a9fd5fd7
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/d426b3b29bd7103c6e968d435a4356a0c26a9b9d797adbfece57ee014d2000d5.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import { useEffect } from 'react';\nimport useCommittedRef from './useCommittedRef';\nfunction useRafInterval(fn, ms, paused = false) {\n let handle;\n let start = new Date().getTime();\n const fnRef = useCommittedRef(fn);\n // this ref is necessary b/c useEffect will sometimes miss a paused toggle\n // orphaning a setTimeout chain in the aether, so relying on it's refresh logic is not reliable.\n const pausedRef = useCommittedRef(paused);\n function loop() {\n const current = new Date().getTime();\n const delta = current - start;\n if (pausedRef.current) return;\n if (delta >= ms && fnRef.current) {\n fnRef.current();\n start = new Date().getTime();\n }\n cancelAnimationFrame(handle);\n handle = requestAnimationFrame(loop);\n }\n useEffect(() => {\n handle = requestAnimationFrame(loop);\n return () => cancelAnimationFrame(handle);\n }, []);\n}\nexport default useRafInterval;","map":{"version":3,"names":["useEffect","useCommittedRef","useRafInterval","fn","ms","paused","handle","start","Date","getTime","fnRef","pausedRef","loop","current","delta","cancelAnimationFrame","requestAnimationFrame"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/useRafInterval.js"],"sourcesContent":["import { useEffect } from 'react';\nimport useCommittedRef from './useCommittedRef';\nfunction useRafInterval(fn, ms, paused = false) {\n let handle;\n let start = new Date().getTime();\n const fnRef = useCommittedRef(fn);\n // this ref is necessary b/c useEffect will sometimes miss a paused toggle\n // orphaning a setTimeout chain in the aether, so relying on it's refresh logic is not reliable.\n const pausedRef = useCommittedRef(paused);\n function loop() {\n const current = new Date().getTime();\n const delta = current - start;\n if (pausedRef.current) return;\n if (delta >= ms && fnRef.current) {\n fnRef.current();\n start = new Date().getTime();\n }\n cancelAnimationFrame(handle);\n handle = requestAnimationFrame(loop);\n }\n useEffect(() => {\n handle = requestAnimationFrame(loop);\n return () => cancelAnimationFrame(handle);\n }, []);\n}\nexport default useRafInterval;"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,SAASC,cAAcA,CAACC,EAAE,EAAEC,EAAE,EAAEC,MAAM,GAAG,KAAK,EAAE;EAC9C,IAAIC,MAAM;EACV,IAAIC,KAAK,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;EAChC,MAAMC,KAAK,GAAGT,eAAe,CAACE,EAAE,CAAC;EACjC;EACA;EACA,MAAMQ,SAAS,GAAGV,eAAe,CAACI,MAAM,CAAC;EACzC,SAASO,IAAIA,CAAA,EAAG;IACd,MAAMC,OAAO,GAAG,IAAIL,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IACpC,MAAMK,KAAK,GAAGD,OAAO,GAAGN,KAAK;IAC7B,IAAII,SAAS,CAACE,OAAO,EAAE;IACvB,IAAIC,KAAK,IAAIV,EAAE,IAAIM,KAAK,CAACG,OAAO,EAAE;MAChCH,KAAK,CAACG,OAAO,CAAC,CAAC;MACfN,KAAK,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IAC9B;IACAM,oBAAoB,CAACT,MAAM,CAAC;IAC5BA,MAAM,GAAGU,qBAAqB,CAACJ,IAAI,CAAC;EACtC;EACAZ,SAAS,CAAC,MAAM;IACdM,MAAM,GAAGU,qBAAqB,CAACJ,IAAI,CAAC;IACpC,OAAO,MAAMG,oBAAoB,CAACT,MAAM,CAAC;EAC3C,CAAC,EAAE,EAAE,CAAC;AACR;AACA,eAAeJ,cAAc","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/da3363b4579334e1d2d6e96c8f3059753a8d4783f1d4e5c17eebb42af1c8ec0a.json b/public/node_modules/.cache/babel-loader/da3363b4579334e1d2d6e96c8f3059753a8d4783f1d4e5c17eebb42af1c8ec0a.json
new file mode 100644
index 00000000..41746690
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/da3363b4579334e1d2d6e96c8f3059753a8d4783f1d4e5c17eebb42af1c8ec0a.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/Navigation.js\";\nimport Nav from 'react-bootstrap/Nav';\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Navigation() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"nav\", {\n className: \"navbar navbar-expand-lg navbar-light bg-light\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"navbar-brand\",\n href: \"/\",\n children: \"Josh Ashton\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarNav\",\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n class: \"navbar-nav nav-fill w-100\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/projects\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 50\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/about\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"About\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 47\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/contact\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 49\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/resume\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Resume\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 48\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/blog\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 46\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = Navigation;\nvar _c;\n$RefreshReg$(_c, \"Navigation\");","map":{"version":3,"names":["Nav","jsxDEV","_jsxDEV","Fragment","_Fragment","Navigation","children","className","href","fileName","_jsxFileName","lineNumber","columnNumber","id","class","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/Navigation.js"],"sourcesContent":["import Nav from 'react-bootstrap/Nav';\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Navigation() {\n return (\n <>\n \n Josh Ashton \n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AALA,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAMA,eAAe,SAASC,UAAUA,CAAA,EAAG;EACnC,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,eACEJ,OAAA;MAAKK,SAAS,EAAC,+CAA+C;MAAAD,QAAA,gBAC5DJ,OAAA;QAAGK,SAAS,EAAC,cAAc;QAACC,IAAI,EAAC,GAAG;QAAAF,QAAA,EAAC;MAAW;QAAAG,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAG,CAAC,eACpDV,OAAA;QAAKK,SAAS,EAAC,0BAA0B;QAACM,EAAE,EAAC,WAAW;QAAAP,QAAA,eACtDJ,OAAA;UAAIY,KAAK,EAAC,2BAA2B;UAAAR,QAAA,gBACnCJ,OAAA;YAAGY,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,WAAW;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAQ;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eAC1DV,OAAA;YAAGY,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,QAAQ;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAK;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACpDV,OAAA;YAAGY,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,UAAU;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAO;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACxDV,OAAA;YAAGY,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,SAAS;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAM;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACtDV,OAAA;YAAGY,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,OAAO;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAI;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAChD;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACF,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH;EAAC,gBACN,CAAC;AAEP;AAACG,EAAA,GAjBuBV,UAAU;AAAA,IAAAU,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/da4917096a353abcab9474258e300d71704a9d967a45dd45cb06d4948a9468f4.json b/public/node_modules/.cache/babel-loader/da4917096a353abcab9474258e300d71704a9d967a45dd45cb06d4948a9468f4.json
new file mode 100644
index 00000000..ab875bd3
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/da4917096a353abcab9474258e300d71704a9d967a45dd45cb06d4948a9468f4.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/FeaturedContent.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Expects an array of Cards to display in a responsive grid.\n *\n * @param ProjectCard[] content \"An array of ProjectCards or other Cards.\"\n * TODO: Need to implement dynamic grid layout.\n * TODO: Need to implement dynamic number of content, based on content size.\n */\nexport default function FeaturedContent({\n content\n}) {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"col\",\n children: content[0]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"col\",\n children: content[1]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"col\",\n children: content[2]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"col\",\n children: content[3]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = FeaturedContent;\nvar _c;\n$RefreshReg$(_c, \"FeaturedContent\");","map":{"version":3,"names":["FeaturedContent","content","_jsxDEV","_Fragment","children","className","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/FeaturedContent.js"],"sourcesContent":["/*\n * Expects an array of Cards to display in a responsive grid.\n *\n * @param ProjectCard[] content \"An array of ProjectCards or other Cards.\"\n * TODO: Need to implement dynamic grid layout.\n * TODO: Need to implement dynamic number of content, based on content size.\n */\nexport default function FeaturedContent( {content} ) {\n return (\n <>\n \n
\n {content[0]}\n
\n
\n {content[1]}\n
\n
\n \n
\n {content[2]}\n
\n
\n {content[3]}\n
\n
\n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,eAAeA,CAAE;EAACC;AAAO,CAAC,EAAG;EACnD,oBACEC,OAAA,CAAAC,SAAA;IAAAC,QAAA,gBACEF,OAAA;MAAKG,SAAS,EAAC,KAAK;MAAAD,QAAA,gBAClBF,OAAA;QAAKG,SAAS,EAAC,KAAK;QAAAD,QAAA,EACjBH,OAAO,CAAC,CAAC;MAAC;QAAAK,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACR,CAAC,eACNP,OAAA;QAAKG,SAAS,EAAC,KAAK;QAAAD,QAAA,EACjBH,OAAO,CAAC,CAAC;MAAC;QAAAK,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACR,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH,CAAC,eACNP,OAAA;MAAKG,SAAS,EAAC,KAAK;MAAAD,QAAA,gBAClBF,OAAA;QAAKG,SAAS,EAAC,KAAK;QAAAD,QAAA,EACjBH,OAAO,CAAC,CAAC;MAAC;QAAAK,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACR,CAAC,eACNP,OAAA;QAAKG,SAAS,EAAC,KAAK;QAAAD,QAAA,EACjBH,OAAO,CAAC,CAAC;MAAC;QAAAK,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACR,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH,CAAC;EAAA,eACN,CAAC;AAEP;AAACC,EAAA,GArBuBV,eAAe;AAAA,IAAAU,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/ddea96030ae77112a4c1d07fe38b64ef4ee2892bc4d02648abb6f93ed724ad7f.json b/public/node_modules/.cache/babel-loader/ddea96030ae77112a4c1d07fe38b64ef4ee2892bc4d02648abb6f93ed724ad7f.json
new file mode 100644
index 00000000..9d7d08c2
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/ddea96030ae77112a4c1d07fe38b64ef4ee2892bc4d02648abb6f93ed724ad7f.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n const projectDisplays = [/*#__PURE__*/_jsxDEV(ProjectDisplay, {\n id: \"one-ai\",\n name: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, this)];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","projectDisplays","ProjectDisplay","id","name","description","url","fileName","_jsxFileName","lineNumber","columnNumber","children","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\n\nexport default function Projects() {\n const projectDisplays = [\n ,\n ];\n\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,MAAMC,eAAe,GAAG,cACtBJ,OAAA,CAACK,cAAc;IAACC,EAAE,EAAC,QAAQ;IAACC,IAAI,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,CAC3G;EAED,oBACEb,OAAA,CAAAE,SAAA;IAAAY,QAAA,gBACEd,OAAA,CAACH,UAAU;MAAAa,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACdb,OAAA,CAACF,MAAM;MAAAY,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACE,EAAA,GAXuBZ,QAAQ;AAAA,IAAAY,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/de3134e22ce267ac1d99434596a22299fdd2a6fbe1f670587245b54cdecb0a31.json b/public/node_modules/.cache/babel-loader/de3134e22ce267ac1d99434596a22299fdd2a6fbe1f670587245b54cdecb0a31.json
new file mode 100644
index 00000000..6fbccbf6
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/de3134e22ce267ac1d99434596a22299fdd2a6fbe1f670587245b54cdecb0a31.json
@@ -0,0 +1 @@
+{"ast":null,"code":"const _excluded = [\"as\", \"onSelect\", \"activeKey\", \"role\", \"onKeyDown\"];\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nimport qsa from 'dom-helpers/querySelectorAll';\nimport * as React from 'react';\nimport { useContext, useEffect, useRef } from 'react';\nimport useForceUpdate from '@restart/hooks/useForceUpdate';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport NavContext from './NavContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport TabContext from './TabContext';\nimport { dataAttr, dataProp } from './DataKey';\nimport NavItem from './NavItem';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\nconst EVENT_KEY_ATTR = dataAttr('event-key');\nconst Nav = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n onSelect,\n activeKey,\n role,\n onKeyDown\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n // A ref and forceUpdate for refocus, b/c we only want to trigger when needed\n // and don't want to reset the set in the effect\n const forceUpdate = useForceUpdate();\n const needsRefocusRef = useRef(false);\n const parentOnSelect = useContext(SelectableContext);\n const tabContext = useContext(TabContext);\n let getControlledId, getControllerId;\n if (tabContext) {\n role = role || 'tablist';\n activeKey = tabContext.activeKey;\n // TODO: do we need to duplicate these?\n getControlledId = tabContext.getControlledId;\n getControllerId = tabContext.getControllerId;\n }\n const listNode = useRef(null);\n const getNextActiveTab = offset => {\n const currentListNode = listNode.current;\n if (!currentListNode) return null;\n const items = qsa(currentListNode, `[${EVENT_KEY_ATTR}]:not([aria-disabled=true])`);\n const activeChild = currentListNode.querySelector('[aria-selected=true]');\n if (!activeChild || activeChild !== document.activeElement) return null;\n const index = items.indexOf(activeChild);\n if (index === -1) return null;\n let nextIndex = index + offset;\n if (nextIndex >= items.length) nextIndex = 0;\n if (nextIndex < 0) nextIndex = items.length - 1;\n return items[nextIndex];\n };\n const handleSelect = (key, event) => {\n if (key == null) return;\n onSelect == null ? void 0 : onSelect(key, event);\n parentOnSelect == null ? void 0 : parentOnSelect(key, event);\n };\n const handleKeyDown = event => {\n onKeyDown == null ? void 0 : onKeyDown(event);\n if (!tabContext) {\n return;\n }\n let nextActiveChild;\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n nextActiveChild = getNextActiveTab(-1);\n break;\n case 'ArrowRight':\n case 'ArrowDown':\n nextActiveChild = getNextActiveTab(1);\n break;\n default:\n return;\n }\n if (!nextActiveChild) return;\n event.preventDefault();\n handleSelect(nextActiveChild.dataset[dataProp('EventKey')] || null, event);\n needsRefocusRef.current = true;\n forceUpdate();\n };\n useEffect(() => {\n if (listNode.current && needsRefocusRef.current) {\n const activeChild = listNode.current.querySelector(`[${EVENT_KEY_ATTR}][aria-selected=true]`);\n activeChild == null ? void 0 : activeChild.focus();\n }\n needsRefocusRef.current = false;\n });\n const mergedRef = useMergedRefs(ref, listNode);\n return /*#__PURE__*/_jsx(SelectableContext.Provider, {\n value: handleSelect,\n children: /*#__PURE__*/_jsx(NavContext.Provider, {\n value: {\n role,\n // used by NavLink to determine it's role\n activeKey: makeEventKey(activeKey),\n getControlledId: getControlledId || noop,\n getControllerId: getControllerId || noop\n },\n children: /*#__PURE__*/_jsx(Component, Object.assign({}, props, {\n onKeyDown: handleKeyDown,\n ref: mergedRef,\n role: role\n }))\n })\n });\n});\nNav.displayName = 'Nav';\nexport default Object.assign(Nav, {\n Item: NavItem\n});","map":{"version":3,"names":["_excluded","_objectWithoutPropertiesLoose","r","e","t","n","hasOwnProperty","call","indexOf","qsa","React","useContext","useEffect","useRef","useForceUpdate","useMergedRefs","NavContext","SelectableContext","makeEventKey","TabContext","dataAttr","dataProp","NavItem","jsx","_jsx","noop","EVENT_KEY_ATTR","Nav","forwardRef","_ref","ref","as","Component","onSelect","activeKey","role","onKeyDown","props","forceUpdate","needsRefocusRef","parentOnSelect","tabContext","getControlledId","getControllerId","listNode","getNextActiveTab","offset","currentListNode","current","items","activeChild","querySelector","document","activeElement","index","nextIndex","length","handleSelect","key","event","handleKeyDown","nextActiveChild","preventDefault","dataset","focus","mergedRef","Provider","value","children","Object","assign","displayName","Item"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/esm/Nav.js"],"sourcesContent":["const _excluded = [\"as\", \"onSelect\", \"activeKey\", \"role\", \"onKeyDown\"];\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }\nimport qsa from 'dom-helpers/querySelectorAll';\nimport * as React from 'react';\nimport { useContext, useEffect, useRef } from 'react';\nimport useForceUpdate from '@restart/hooks/useForceUpdate';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport NavContext from './NavContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport TabContext from './TabContext';\nimport { dataAttr, dataProp } from './DataKey';\nimport NavItem from './NavItem';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\nconst EVENT_KEY_ATTR = dataAttr('event-key');\nconst Nav = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n onSelect,\n activeKey,\n role,\n onKeyDown\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n // A ref and forceUpdate for refocus, b/c we only want to trigger when needed\n // and don't want to reset the set in the effect\n const forceUpdate = useForceUpdate();\n const needsRefocusRef = useRef(false);\n const parentOnSelect = useContext(SelectableContext);\n const tabContext = useContext(TabContext);\n let getControlledId, getControllerId;\n if (tabContext) {\n role = role || 'tablist';\n activeKey = tabContext.activeKey;\n // TODO: do we need to duplicate these?\n getControlledId = tabContext.getControlledId;\n getControllerId = tabContext.getControllerId;\n }\n const listNode = useRef(null);\n const getNextActiveTab = offset => {\n const currentListNode = listNode.current;\n if (!currentListNode) return null;\n const items = qsa(currentListNode, `[${EVENT_KEY_ATTR}]:not([aria-disabled=true])`);\n const activeChild = currentListNode.querySelector('[aria-selected=true]');\n if (!activeChild || activeChild !== document.activeElement) return null;\n const index = items.indexOf(activeChild);\n if (index === -1) return null;\n let nextIndex = index + offset;\n if (nextIndex >= items.length) nextIndex = 0;\n if (nextIndex < 0) nextIndex = items.length - 1;\n return items[nextIndex];\n };\n const handleSelect = (key, event) => {\n if (key == null) return;\n onSelect == null ? void 0 : onSelect(key, event);\n parentOnSelect == null ? void 0 : parentOnSelect(key, event);\n };\n const handleKeyDown = event => {\n onKeyDown == null ? void 0 : onKeyDown(event);\n if (!tabContext) {\n return;\n }\n let nextActiveChild;\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n nextActiveChild = getNextActiveTab(-1);\n break;\n case 'ArrowRight':\n case 'ArrowDown':\n nextActiveChild = getNextActiveTab(1);\n break;\n default:\n return;\n }\n if (!nextActiveChild) return;\n event.preventDefault();\n handleSelect(nextActiveChild.dataset[dataProp('EventKey')] || null, event);\n needsRefocusRef.current = true;\n forceUpdate();\n };\n useEffect(() => {\n if (listNode.current && needsRefocusRef.current) {\n const activeChild = listNode.current.querySelector(`[${EVENT_KEY_ATTR}][aria-selected=true]`);\n activeChild == null ? void 0 : activeChild.focus();\n }\n needsRefocusRef.current = false;\n });\n const mergedRef = useMergedRefs(ref, listNode);\n return /*#__PURE__*/_jsx(SelectableContext.Provider, {\n value: handleSelect,\n children: /*#__PURE__*/_jsx(NavContext.Provider, {\n value: {\n role,\n // used by NavLink to determine it's role\n activeKey: makeEventKey(activeKey),\n getControlledId: getControlledId || noop,\n getControllerId: getControllerId || noop\n },\n children: /*#__PURE__*/_jsx(Component, Object.assign({}, props, {\n onKeyDown: handleKeyDown,\n ref: mergedRef,\n role: role\n }))\n })\n });\n});\nNav.displayName = 'Nav';\nexport default Object.assign(Nav, {\n Item: NavItem\n});"],"mappings":"AAAA,MAAMA,SAAS,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC;AACtE,SAASC,6BAA6BA,CAACC,CAAC,EAAEC,CAAC,EAAE;EAAE,IAAI,IAAI,IAAID,CAAC,EAAE,OAAO,CAAC,CAAC;EAAE,IAAIE,CAAC,GAAG,CAAC,CAAC;EAAE,KAAK,IAAIC,CAAC,IAAIH,CAAC,EAAE,IAAI,CAAC,CAAC,CAACI,cAAc,CAACC,IAAI,CAACL,CAAC,EAAEG,CAAC,CAAC,EAAE;IAAE,IAAIF,CAAC,CAACK,OAAO,CAACH,CAAC,CAAC,IAAI,CAAC,EAAE;IAAUD,CAAC,CAACC,CAAC,CAAC,GAAGH,CAAC,CAACG,CAAC,CAAC;EAAE;EAAE,OAAOD,CAAC;AAAE;AACpM,OAAOK,GAAG,MAAM,8BAA8B;AAC9C,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACrD,OAAOC,cAAc,MAAM,+BAA+B;AAC1D,OAAOC,aAAa,MAAM,8BAA8B;AACxD,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,iBAAiB,IAAIC,YAAY,QAAQ,qBAAqB;AACrE,OAAOC,UAAU,MAAM,cAAc;AACrC,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,WAAW;AAC9C,OAAOC,OAAO,MAAM,WAAW;AAC/B,SAASC,GAAG,IAAIC,IAAI,QAAQ,mBAAmB;AAC/C;AACA,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AACrB,MAAMC,cAAc,GAAGN,QAAQ,CAAC,WAAW,CAAC;AAC5C,MAAMO,GAAG,GAAG,aAAajB,KAAK,CAACkB,UAAU,CAAC,CAACC,IAAI,EAAEC,GAAG,KAAK;EACvD,IAAI;MACA;MACAC,EAAE,EAAEC,SAAS,GAAG,KAAK;MACrBC,QAAQ;MACRC,SAAS;MACTC,IAAI;MACJC;IACF,CAAC,GAAGP,IAAI;IACRQ,KAAK,GAAGpC,6BAA6B,CAAC4B,IAAI,EAAE7B,SAAS,CAAC;EACxD;EACA;EACA,MAAMsC,WAAW,GAAGxB,cAAc,CAAC,CAAC;EACpC,MAAMyB,eAAe,GAAG1B,MAAM,CAAC,KAAK,CAAC;EACrC,MAAM2B,cAAc,GAAG7B,UAAU,CAACM,iBAAiB,CAAC;EACpD,MAAMwB,UAAU,GAAG9B,UAAU,CAACQ,UAAU,CAAC;EACzC,IAAIuB,eAAe,EAAEC,eAAe;EACpC,IAAIF,UAAU,EAAE;IACdN,IAAI,GAAGA,IAAI,IAAI,SAAS;IACxBD,SAAS,GAAGO,UAAU,CAACP,SAAS;IAChC;IACAQ,eAAe,GAAGD,UAAU,CAACC,eAAe;IAC5CC,eAAe,GAAGF,UAAU,CAACE,eAAe;EAC9C;EACA,MAAMC,QAAQ,GAAG/B,MAAM,CAAC,IAAI,CAAC;EAC7B,MAAMgC,gBAAgB,GAAGC,MAAM,IAAI;IACjC,MAAMC,eAAe,GAAGH,QAAQ,CAACI,OAAO;IACxC,IAAI,CAACD,eAAe,EAAE,OAAO,IAAI;IACjC,MAAME,KAAK,GAAGxC,GAAG,CAACsC,eAAe,EAAE,IAAIrB,cAAc,6BAA6B,CAAC;IACnF,MAAMwB,WAAW,GAAGH,eAAe,CAACI,aAAa,CAAC,sBAAsB,CAAC;IACzE,IAAI,CAACD,WAAW,IAAIA,WAAW,KAAKE,QAAQ,CAACC,aAAa,EAAE,OAAO,IAAI;IACvE,MAAMC,KAAK,GAAGL,KAAK,CAACzC,OAAO,CAAC0C,WAAW,CAAC;IACxC,IAAII,KAAK,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI;IAC7B,IAAIC,SAAS,GAAGD,KAAK,GAAGR,MAAM;IAC9B,IAAIS,SAAS,IAAIN,KAAK,CAACO,MAAM,EAAED,SAAS,GAAG,CAAC;IAC5C,IAAIA,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAGN,KAAK,CAACO,MAAM,GAAG,CAAC;IAC/C,OAAOP,KAAK,CAACM,SAAS,CAAC;EACzB,CAAC;EACD,MAAME,YAAY,GAAGA,CAACC,GAAG,EAAEC,KAAK,KAAK;IACnC,IAAID,GAAG,IAAI,IAAI,EAAE;IACjBzB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,QAAQ,CAACyB,GAAG,EAAEC,KAAK,CAAC;IAChDnB,cAAc,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,cAAc,CAACkB,GAAG,EAAEC,KAAK,CAAC;EAC9D,CAAC;EACD,MAAMC,aAAa,GAAGD,KAAK,IAAI;IAC7BvB,SAAS,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,SAAS,CAACuB,KAAK,CAAC;IAC7C,IAAI,CAAClB,UAAU,EAAE;MACf;IACF;IACA,IAAIoB,eAAe;IACnB,QAAQF,KAAK,CAACD,GAAG;MACf,KAAK,WAAW;MAChB,KAAK,SAAS;QACZG,eAAe,GAAGhB,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACtC;MACF,KAAK,YAAY;MACjB,KAAK,WAAW;QACdgB,eAAe,GAAGhB,gBAAgB,CAAC,CAAC,CAAC;QACrC;MACF;QACE;IACJ;IACA,IAAI,CAACgB,eAAe,EAAE;IACtBF,KAAK,CAACG,cAAc,CAAC,CAAC;IACtBL,YAAY,CAACI,eAAe,CAACE,OAAO,CAAC1C,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,EAAEsC,KAAK,CAAC;IAC1EpB,eAAe,CAACS,OAAO,GAAG,IAAI;IAC9BV,WAAW,CAAC,CAAC;EACf,CAAC;EACD1B,SAAS,CAAC,MAAM;IACd,IAAIgC,QAAQ,CAACI,OAAO,IAAIT,eAAe,CAACS,OAAO,EAAE;MAC/C,MAAME,WAAW,GAAGN,QAAQ,CAACI,OAAO,CAACG,aAAa,CAAC,IAAIzB,cAAc,uBAAuB,CAAC;MAC7FwB,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,WAAW,CAACc,KAAK,CAAC,CAAC;IACpD;IACAzB,eAAe,CAACS,OAAO,GAAG,KAAK;EACjC,CAAC,CAAC;EACF,MAAMiB,SAAS,GAAGlD,aAAa,CAACe,GAAG,EAAEc,QAAQ,CAAC;EAC9C,OAAO,aAAapB,IAAI,CAACP,iBAAiB,CAACiD,QAAQ,EAAE;IACnDC,KAAK,EAAEV,YAAY;IACnBW,QAAQ,EAAE,aAAa5C,IAAI,CAACR,UAAU,CAACkD,QAAQ,EAAE;MAC/CC,KAAK,EAAE;QACLhC,IAAI;QACJ;QACAD,SAAS,EAAEhB,YAAY,CAACgB,SAAS,CAAC;QAClCQ,eAAe,EAAEA,eAAe,IAAIjB,IAAI;QACxCkB,eAAe,EAAEA,eAAe,IAAIlB;MACtC,CAAC;MACD2C,QAAQ,EAAE,aAAa5C,IAAI,CAACQ,SAAS,EAAEqC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEjC,KAAK,EAAE;QAC9DD,SAAS,EAAEwB,aAAa;QACxB9B,GAAG,EAAEmC,SAAS;QACd9B,IAAI,EAAEA;MACR,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC;AACFR,GAAG,CAAC4C,WAAW,GAAG,KAAK;AACvB,eAAeF,MAAM,CAACC,MAAM,CAAC3C,GAAG,EAAE;EAChC6C,IAAI,EAAElD;AACR,CAAC,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/e0afea496c90f9d598378f04b05e193b8d7c8898d94974664fedbc4e5b57cc6f.json b/public/node_modules/.cache/babel-loader/e0afea496c90f9d598378f04b05e193b8d7c8898d94974664fedbc4e5b57cc6f.json
new file mode 100644
index 00000000..b09b3ba1
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/e0afea496c90f9d598378f04b05e193b8d7c8898d94974664fedbc4e5b57cc6f.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n const data = [{\n id: \"one-ai\",\n name: 'One AI',\n description: \"TODO\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, this), \"/*\", /*#__PURE__*/_jsxDEV(\"div\", {\n children: data.map(item => /*#__PURE__*/_jsxDEV(ProjectDisplay, {\n id: item.id,\n name: item.name,\n description: item.description,\n url: item.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), \"*/\", /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","data","id","name","description","url","children","fileName","_jsxFileName","lineNumber","columnNumber","map","item","ProjectDisplay","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\n\nexport default function Projects() {\n const data = [\n { id: \"one-ai\", name: 'One AI', description: \"TODO\", url: \"https://github.com/quaxlyqueen/one-ai\"},\n ];\n\n return (\n <>\n \n /*\n \n {data.map(item => (\n
\n ))}\n
\n */\n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,MAAMC,IAAI,GAAG,CACX;IAAEC,EAAE,EAAE,QAAQ;IAAEC,IAAI,EAAE,QAAQ;IAAEC,WAAW,EAAE,MAAM;IAAEC,GAAG,EAAE;EAAuC,CAAC,CACnG;EAED,oBACER,OAAA,CAAAE,SAAA;IAAAO,QAAA,gBACET,OAAA,CAACH,UAAU;MAAAa,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,MAEZ,eAAAb,OAAA;MAAAS,QAAA,EACGL,IAAI,CAACU,GAAG,CAACC,IAAI,iBACZf,OAAA,CAACgB,cAAc;QAACX,EAAE,EAAEU,IAAI,CAACV,EAAG;QAACC,IAAI,EAAES,IAAI,CAACT,IAAK;QAACC,WAAW,EAAEQ,IAAI,CAACR,WAAY;QAACC,GAAG,EAAEO,IAAI,CAACP;MAAI;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAC9F;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACC,CAAC,MAER,eAAAb,OAAA,CAACF,MAAM;MAAAY,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACI,EAAA,GAlBuBd,QAAQ;AAAA,IAAAc,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/e64d04b5d1abefa5898034b811c42dfec5c5921ac35dce2daeb12cc55ee569a9.json b/public/node_modules/.cache/babel-loader/e64d04b5d1abefa5898034b811c42dfec5c5921ac35dce2daeb12cc55ee569a9.json
new file mode 100644
index 00000000..b335bb30
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/e64d04b5d1abefa5898034b811c42dfec5c5921ac35dce2daeb12cc55ee569a9.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import useCallbackRef from './useCallbackRef';\nimport useCommittedRef from './useCommittedRef';\nimport useEventCallback from './useEventCallback';\nimport useEventListener from './useEventListener';\nimport useGlobalListener from './useGlobalListener';\nimport useInterval from './useInterval';\nimport useRafInterval from './useRafInterval';\nimport useMergeState from './useMergeState';\nimport useMergeStateFromProps from './useMergeStateFromProps';\nimport useMounted from './useMounted';\nimport usePrevious from './usePrevious';\nimport useImage from './useImage';\nimport useResizeObserver from './useResizeObserver';\nexport { useCallbackRef, useCommittedRef, useEventCallback, useEventListener, useGlobalListener, useInterval, useRafInterval, useMergeState, useMergeStateFromProps, useMounted, usePrevious, useImage, useResizeObserver };","map":{"version":3,"names":["useCallbackRef","useCommittedRef","useEventCallback","useEventListener","useGlobalListener","useInterval","useRafInterval","useMergeState","useMergeStateFromProps","useMounted","usePrevious","useImage","useResizeObserver"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks/esm/index.js"],"sourcesContent":["import useCallbackRef from './useCallbackRef';\nimport useCommittedRef from './useCommittedRef';\nimport useEventCallback from './useEventCallback';\nimport useEventListener from './useEventListener';\nimport useGlobalListener from './useGlobalListener';\nimport useInterval from './useInterval';\nimport useRafInterval from './useRafInterval';\nimport useMergeState from './useMergeState';\nimport useMergeStateFromProps from './useMergeStateFromProps';\nimport useMounted from './useMounted';\nimport usePrevious from './usePrevious';\nimport useImage from './useImage';\nimport useResizeObserver from './useResizeObserver';\nexport { useCallbackRef, useCommittedRef, useEventCallback, useEventListener, useGlobalListener, useInterval, useRafInterval, useMergeState, useMergeStateFromProps, useMounted, usePrevious, useImage, useResizeObserver };"],"mappings":"AAAA,OAAOA,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,OAAOC,WAAW,MAAM,eAAe;AACvC,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,WAAW,MAAM,eAAe;AACvC,OAAOC,QAAQ,MAAM,YAAY;AACjC,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,SAASZ,cAAc,EAAEC,eAAe,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAEC,WAAW,EAAEC,cAAc,EAAEC,aAAa,EAAEC,sBAAsB,EAAEC,UAAU,EAAEC,WAAW,EAAEC,QAAQ,EAAEC,iBAAiB","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/ea56a7ea53e105b144ae0b272f337b02d94e4e5bc4bf37d7cbf0f7104cca1af8.json b/public/node_modules/.cache/babel-loader/ea56a7ea53e105b144ae0b272f337b02d94e4e5bc4bf37d7cbf0f7104cca1af8.json
new file mode 100644
index 00000000..32963686
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/ea56a7ea53e105b144ae0b272f337b02d94e4e5bc4bf37d7cbf0f7104cca1af8.json
@@ -0,0 +1 @@
+{"ast":null,"code":"const _excluded = [\"as\", \"active\", \"eventKey\"];\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport NavContext from './NavContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport Button from './Button';\nimport { dataAttr } from './DataKey';\nimport TabContext from './TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useNavItem({\n key,\n onClick,\n active,\n id,\n role,\n disabled\n}) {\n const parentOnSelect = useContext(SelectableContext);\n const navContext = useContext(NavContext);\n const tabContext = useContext(TabContext);\n let isActive = active;\n const props = {\n role\n };\n if (navContext) {\n if (!role && navContext.role === 'tablist') props.role = 'tab';\n const contextControllerId = navContext.getControllerId(key != null ? key : null);\n const contextControlledId = navContext.getControlledId(key != null ? key : null);\n\n // @ts-ignore\n props[dataAttr('event-key')] = key;\n props.id = contextControllerId || id;\n isActive = active == null && key != null ? navContext.activeKey === key : active;\n\n /**\n * Simplified scenario for `mountOnEnter`.\n *\n * While it would make sense to keep 'aria-controls' for tabs that have been mounted at least\n * once, it would also complicate the code quite a bit, for very little gain.\n * The following implementation is probably good enough.\n *\n * @see https://github.com/react-restart/ui/pull/40#issuecomment-1009971561\n */\n if (isActive || !(tabContext != null && tabContext.unmountOnExit) && !(tabContext != null && tabContext.mountOnEnter)) props['aria-controls'] = contextControlledId;\n }\n if (props.role === 'tab') {\n props['aria-selected'] = isActive;\n if (!isActive) {\n props.tabIndex = -1;\n }\n if (disabled) {\n props.tabIndex = -1;\n props['aria-disabled'] = true;\n }\n }\n props.onClick = useEventCallback(e => {\n if (disabled) return;\n onClick == null ? void 0 : onClick(e);\n if (key == null) {\n return;\n }\n if (parentOnSelect && !e.isPropagationStopped()) {\n parentOnSelect(key, e);\n }\n });\n return [props, {\n isActive\n }];\n}\nconst NavItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: Component = Button,\n active,\n eventKey\n } = _ref,\n options = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [props, meta] = useNavItem(Object.assign({\n key: makeEventKey(eventKey, options.href),\n active\n }, options));\n\n // @ts-ignore\n props[dataAttr('active')] = meta.isActive;\n return /*#__PURE__*/_jsx(Component, Object.assign({}, options, props, {\n ref: ref\n }));\n});\nNavItem.displayName = 'NavItem';\nexport default NavItem;","map":{"version":3,"names":["_excluded","_objectWithoutPropertiesLoose","r","e","t","n","hasOwnProperty","call","indexOf","React","useContext","useEventCallback","NavContext","SelectableContext","makeEventKey","Button","dataAttr","TabContext","jsx","_jsx","useNavItem","key","onClick","active","id","role","disabled","parentOnSelect","navContext","tabContext","isActive","props","contextControllerId","getControllerId","contextControlledId","getControlledId","activeKey","unmountOnExit","mountOnEnter","tabIndex","isPropagationStopped","NavItem","forwardRef","_ref","ref","as","Component","eventKey","options","meta","Object","assign","href","displayName"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/esm/NavItem.js"],"sourcesContent":["const _excluded = [\"as\", \"active\", \"eventKey\"];\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport NavContext from './NavContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport Button from './Button';\nimport { dataAttr } from './DataKey';\nimport TabContext from './TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useNavItem({\n key,\n onClick,\n active,\n id,\n role,\n disabled\n}) {\n const parentOnSelect = useContext(SelectableContext);\n const navContext = useContext(NavContext);\n const tabContext = useContext(TabContext);\n let isActive = active;\n const props = {\n role\n };\n if (navContext) {\n if (!role && navContext.role === 'tablist') props.role = 'tab';\n const contextControllerId = navContext.getControllerId(key != null ? key : null);\n const contextControlledId = navContext.getControlledId(key != null ? key : null);\n\n // @ts-ignore\n props[dataAttr('event-key')] = key;\n props.id = contextControllerId || id;\n isActive = active == null && key != null ? navContext.activeKey === key : active;\n\n /**\n * Simplified scenario for `mountOnEnter`.\n *\n * While it would make sense to keep 'aria-controls' for tabs that have been mounted at least\n * once, it would also complicate the code quite a bit, for very little gain.\n * The following implementation is probably good enough.\n *\n * @see https://github.com/react-restart/ui/pull/40#issuecomment-1009971561\n */\n if (isActive || !(tabContext != null && tabContext.unmountOnExit) && !(tabContext != null && tabContext.mountOnEnter)) props['aria-controls'] = contextControlledId;\n }\n if (props.role === 'tab') {\n props['aria-selected'] = isActive;\n if (!isActive) {\n props.tabIndex = -1;\n }\n if (disabled) {\n props.tabIndex = -1;\n props['aria-disabled'] = true;\n }\n }\n props.onClick = useEventCallback(e => {\n if (disabled) return;\n onClick == null ? void 0 : onClick(e);\n if (key == null) {\n return;\n }\n if (parentOnSelect && !e.isPropagationStopped()) {\n parentOnSelect(key, e);\n }\n });\n return [props, {\n isActive\n }];\n}\nconst NavItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: Component = Button,\n active,\n eventKey\n } = _ref,\n options = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [props, meta] = useNavItem(Object.assign({\n key: makeEventKey(eventKey, options.href),\n active\n }, options));\n\n // @ts-ignore\n props[dataAttr('active')] = meta.isActive;\n return /*#__PURE__*/_jsx(Component, Object.assign({}, options, props, {\n ref: ref\n }));\n});\nNavItem.displayName = 'NavItem';\nexport default NavItem;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/ec372935b37af920123a3ef9303cb6ea0443c41e5d00a124eface4127ff701a2.json b/public/node_modules/.cache/babel-loader/ec372935b37af920123a3ef9303cb6ea0443c41e5d00a124eface4127ff701a2.json
new file mode 100644
index 00000000..17de6511
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/ec372935b37af920123a3ef9303cb6ea0443c41e5d00a124eface4127ff701a2.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/Nav.js\";\nimport Nav from 'react-bootstrap/Nav';\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Navigation() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"nav\", {\n className: \"navbar navbar-expand-lg navbar-light bg-light\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"navbar-brand\",\n href: \"/\",\n children: \"Josh Ashton\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarNav\",\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n class: \"navbar-nav nav-fill w-100\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/projects\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 50\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/about\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"About\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 47\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/contact\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 49\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/resume\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Resume\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 48\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/blog\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 46\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = Navigation;\nvar _c;\n$RefreshReg$(_c, \"Navigation\");","map":{"version":3,"names":["Nav","jsxDEV","_jsxDEV","Fragment","_Fragment","Navigation","children","className","href","fileName","_jsxFileName","lineNumber","columnNumber","id","class","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/Nav.js"],"sourcesContent":["import Nav from 'react-bootstrap/Nav';\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Navigation() {\n return (\n <>\n \n Josh Ashton \n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AALA,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAMA,eAAe,SAASC,UAAUA,CAAA,EAAG;EACnC,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,eACEJ,OAAA;MAAKK,SAAS,EAAC,+CAA+C;MAAAD,QAAA,gBAC5DJ,OAAA;QAAGK,SAAS,EAAC,cAAc;QAACC,IAAI,EAAC,GAAG;QAAAF,QAAA,EAAC;MAAW;QAAAG,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAG,CAAC,eACpDV,OAAA;QAAKK,SAAS,EAAC,0BAA0B;QAACM,EAAE,EAAC,WAAW;QAAAP,QAAA,eACtDJ,OAAA;UAAIY,KAAK,EAAC,2BAA2B;UAAAR,QAAA,gBACnCJ,OAAA;YAAGY,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,WAAW;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAQ;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eAC1DV,OAAA;YAAGY,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,QAAQ;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAK;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACpDV,OAAA;YAAGY,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,UAAU;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAO;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACxDV,OAAA;YAAGY,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,SAAS;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAM;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACtDV,OAAA;YAAGY,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,OAAO;YAAAF,QAAA,eAACJ,OAAA;cAAAI,QAAA,EAAI;YAAI;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAChD;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACF,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH;EAAC,gBACN,CAAC;AAEP;AAACG,EAAA,GAjBuBV,UAAU;AAAA,IAAAU,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/eee187a0e25c618f8e0cf4f047f5ff7aa08ec64df7c7be083104e79e72086411.json b/public/node_modules/.cache/babel-loader/eee187a0e25c618f8e0cf4f047f5ff7aa08ec64df7c7be083104e79e72086411.json
new file mode 100644
index 00000000..0dc504cc
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/eee187a0e25c618f8e0cf4f047f5ff7aa08ec64df7c7be083104e79e72086411.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/About.js\";\nimport Nav from './components/Nav';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Nav, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Nav","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","children","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/About.js"],"sourcesContent":["import Nav from './components/Nav';\nimport Footer from './components/Footer';\n\nexport default function Projects() {\n return (\n <>\n \n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,kBAAkB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,oBACEH,OAAA,CAAAE,SAAA;IAAAE,QAAA,gBACEJ,OAAA,CAACH,GAAG;MAAAQ,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACPR,OAAA,CAACF,MAAM;MAAAO,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACC,EAAA,GAPuBN,QAAQ;AAAA,IAAAM,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/ef3c8adcfeaed01f91ea84563559c0e3a11fc460393b8d14bc190b3c05a2d8eb.json b/public/node_modules/.cache/babel-loader/ef3c8adcfeaed01f91ea84563559c0e3a11fc460393b8d14bc190b3c05a2d8eb.json
new file mode 100644
index 00000000..31e87fb7
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/ef3c8adcfeaed01f91ea84563559c0e3a11fc460393b8d14bc190b3c05a2d8eb.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/Projects.js\";\nimport Navigation from './components/Navigation';\nimport Footer from './components/Footer';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nexport default function Projects() {\n const projectDisplays = [/*#__PURE__*/_jsxDEV(ProjectDisplay, {\n id: \"one-ai\",\n name: \"One AI\",\n description: \"ASDF\",\n url: \"https://github.com/quaxlyqueen/one-ai\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, this)];\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Navigation, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, this), projectDisplays, /*#__PURE__*/_jsxDEV(Footer, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n_c = Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["Navigation","Footer","jsxDEV","_jsxDEV","Fragment","_Fragment","Projects","projectDisplays","ProjectDisplay","id","name","description","url","fileName","_jsxFileName","lineNumber","columnNumber","children","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/Projects.js"],"sourcesContent":["import Navigation from './components/Navigation';\nimport Footer from './components/Footer';\n\nexport default function Projects() {\n const projectDisplays = [\n ,\n ];\n\n return (\n <>\n \n {projectDisplays}\n \n >\n );\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,yBAAyB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AAAC,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AAEzC,eAAe,SAASC,QAAQA,CAAA,EAAG;EACjC,MAAMC,eAAe,GAAG,cACtBJ,OAAA,CAACK,cAAc;IAACC,EAAE,EAAC,QAAQ;IAACC,IAAI,EAAC,QAAQ;IAACC,WAAW,EAAC,MAAM;IAACC,GAAG,EAAC;EAAuC;IAAAC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAC,CAAC,CAC3G;EAED,oBACEb,OAAA,CAAAE,SAAA;IAAAY,QAAA,gBACEd,OAAA,CAACH,UAAU;MAAAa,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,EACXT,eAAe,eAClBJ,OAAA,CAACF,MAAM;MAAAY,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA,eACV,CAAC;AAEP;AAACE,EAAA,GAZuBZ,QAAQ;AAAA,IAAAY,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/f36b253a7cf21b90ee4d52babb30651e92f0581323b7b82e2f9356bbd0e9e3e2.json b/public/node_modules/.cache/babel-loader/f36b253a7cf21b90ee4d52babb30651e92f0581323b7b82e2f9356bbd0e9e3e2.json
new file mode 100644
index 00000000..46318342
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/f36b253a7cf21b90ee4d52babb30651e92f0581323b7b82e2f9356bbd0e9e3e2.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay({\n id,\n name,\n description,\n url\n}) {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"panel\",\n id: id,\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"label\",\n children: name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h4\", {\n className: \"label-text\",\n children: description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: url,\n children: \"View Code on GitHub\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 59\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = ProjectDisplay;\nvar _c;\n$RefreshReg$(_c, \"ProjectDisplay\");","map":{"version":3,"names":["ProjectDisplay","id","name","description","url","_jsxDEV","_Fragment","children","className","fileName","_jsxFileName","lineNumber","columnNumber","type","href","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/ProjectDisplay.js"],"sourcesContent":["/*\n * Create a clickable frame which expands to expose additional information on click.\n *\n * @param String id \"Lowercase string representation of the project name.\"\n * @param String name \"The name of the project.\"\n * @param String description \"A description of the project.\"\n * @param String url \"The URL for the repository of the project.\"\n * \n * TODO: Need to implement onClick\n */\nexport default function ProjectDisplay( {id, name, description, url} ) {\n return (\n <>\n \n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,cAAcA,CAAE;EAACC,EAAE;EAAEC,IAAI;EAAEC,WAAW;EAAEC;AAAG,CAAC,EAAG;EACrE,oBACEC,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAKG,SAAS,EAAC,OAAO;MAACP,EAAE,EAAEA,EAAG;MAAAM,QAAA,gBAC5BF,OAAA;QAAIG,SAAS,EAAC,OAAO;QAAAD,QAAA,EAAEL;MAAI;QAAAO,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eACjCP,OAAA;QAAIG,SAAS,EAAC,YAAY;QAAAD,QAAA,EAAEJ;MAAW;QAAAM,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAK,CAAC,eAC7CP,OAAA;QAAQQ,IAAI,EAAC,QAAQ;QAACL,SAAS,EAAC,iBAAiB;QAAAD,QAAA,eAACF,OAAA;UAAGS,IAAI,EAAEV,GAAI;UAAAG,QAAA,EAAC;QAAmB;UAAAE,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAG;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAC7F;EAAC,gBACN,CAAC;AAEP;AAACG,EAAA,GAVuBf,cAAc;AAAA,IAAAe,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/f50b620763ceb484175a0404c55dcd37e38b3c9826e93fd2a75004078b240b17.json b/public/node_modules/.cache/babel-loader/f50b620763ceb484175a0404c55dcd37e38b3c9826e93fd2a75004078b240b17.json
new file mode 100644
index 00000000..bb55a368
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/f50b620763ceb484175a0404c55dcd37e38b3c9826e93fd2a75004078b240b17.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import * as React from 'react';\nconst NavContext = /*#__PURE__*/React.createContext(null);\nNavContext.displayName = 'NavContext';\nexport default NavContext;","map":{"version":3,"names":["React","NavContext","createContext","displayName"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/esm/NavContext.js"],"sourcesContent":["import * as React from 'react';\nconst NavContext = /*#__PURE__*/React.createContext(null);\nNavContext.displayName = 'NavContext';\nexport default NavContext;"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,MAAMC,UAAU,GAAG,aAAaD,KAAK,CAACE,aAAa,CAAC,IAAI,CAAC;AACzDD,UAAU,CAACE,WAAW,GAAG,YAAY;AACrC,eAAeF,UAAU","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/f552d9cc08d447e945f038c9c9504e48663bcf0fb93dc36fd46e533fdfaf948e.json b/public/node_modules/.cache/babel-loader/f552d9cc08d447e945f038c9c9504e48663bcf0fb93dc36fd46e533fdfaf948e.json
new file mode 100644
index 00000000..cef38f21
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/f552d9cc08d447e945f038c9c9504e48663bcf0fb93dc36fd46e533fdfaf948e.json
@@ -0,0 +1 @@
+{"ast":null,"code":"\"use client\";\n\nimport * as React from 'react';\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'CardHeaderContext';\nexport default context;","map":{"version":3,"names":["React","context","createContext","displayName"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/esm/CardHeaderContext.js"],"sourcesContent":["\"use client\";\n\nimport * as React from 'react';\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'CardHeaderContext';\nexport default context;"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,MAAMC,OAAO,GAAG,aAAaD,KAAK,CAACE,aAAa,CAAC,IAAI,CAAC;AACtDD,OAAO,CAACE,WAAW,GAAG,mBAAmB;AACzC,eAAeF,OAAO","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/f622b3a614de054e0bba179f5fe936ab197b94ed70fcfc7b912eebf36bf27d9a.json b/public/node_modules/.cache/babel-loader/f622b3a614de054e0bba179f5fe936ab197b94ed70fcfc7b912eebf36bf27d9a.json
new file mode 100644
index 00000000..d1dc6df2
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/f622b3a614de054e0bba179f5fe936ab197b94ed70fcfc7b912eebf36bf27d9a.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/components/Nav.js\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Nav() {\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(\"nav\", {\n className: \"navbar navbar-expand-lg navbar-light bg-light\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"navbar-brand\",\n href: \"/\",\n children: \"Josh Ashton\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarNav\",\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n class: \"navbar-nav nav-fill w-100\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/projects\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 50\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/about\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"About\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 47\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/contact\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 49\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/resume\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Resume\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 48\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"nav-link\",\n href: \"/blog\",\n children: /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 46\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\n_c = Nav;\nvar _c;\n$RefreshReg$(_c, \"Nav\");","map":{"version":3,"names":["Nav","_jsxDEV","_Fragment","children","className","href","fileName","_jsxFileName","lineNumber","columnNumber","id","class","_c","$RefreshReg$"],"sources":["/home/violet/documents/development/portfolio/public/src/components/Nav.js"],"sourcesContent":["/*\n * Create a nav bar component.\n *\n * TODO: Add classes and styling.\n * TODO: Add additional sections.\n */\nexport default function Nav() {\n return (\n <>\n \n Josh Ashton \n \n \n >\n );\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,GAAGA,CAAA,EAAG;EAC5B,oBACEC,OAAA,CAAAC,SAAA;IAAAC,QAAA,eACEF,OAAA;MAAKG,SAAS,EAAC,+CAA+C;MAAAD,QAAA,gBAC5DF,OAAA;QAAGG,SAAS,EAAC,cAAc;QAACC,IAAI,EAAC,GAAG;QAAAF,QAAA,EAAC;MAAW;QAAAG,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAG,CAAC,eACpDR,OAAA;QAAKG,SAAS,EAAC,0BAA0B;QAACM,EAAE,EAAC,WAAW;QAAAP,QAAA,eACtDF,OAAA;UAAIU,KAAK,EAAC,2BAA2B;UAAAR,QAAA,gBACnCF,OAAA;YAAGU,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,WAAW;YAAAF,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAQ;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eAC1DR,OAAA;YAAGU,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,QAAQ;YAAAF,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAK;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACpDR,OAAA;YAAGU,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,UAAU;YAAAF,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAO;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACxDR,OAAA;YAAGU,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,SAAS;YAAAF,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAM;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACtDR,OAAA;YAAGU,KAAK,EAAC,UAAU;YAACN,IAAI,EAAC,OAAO;YAAAF,QAAA,eAACF,OAAA;cAAAE,QAAA,EAAI;YAAI;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAChD;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACF,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH;EAAC,gBACN,CAAC;AAEP;AAACG,EAAA,GAjBuBZ,GAAG;AAAA,IAAAY,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/f8ab27f8dcc9ba67bc568cae8a386a1b16ba2b2053d660b1ba94c65b1e7194ae.json b/public/node_modules/.cache/babel-loader/f8ab27f8dcc9ba67bc568cae8a386a1b16ba2b2053d660b1ba94c65b1e7194ae.json
new file mode 100644
index 00000000..cf78fc14
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/f8ab27f8dcc9ba67bc568cae8a386a1b16ba2b2053d660b1ba94c65b1e7194ae.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/violet/documents/development/portfolio/public/src/index.js\";\nimport React, { StrictMode } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { BrowserRouter, Routes, Route } from \"react-router\";\nimport Home from \"./Home\";\nimport Projects from \"./Projects\";\nimport Contact from \"./Contact\";\nimport About from \"./About\";\nimport Resume from \"./Resume\";\nimport \"./styles.css\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst root = document.getElementById(\"root\");\nReactDOM.createRoot(root).render(/*#__PURE__*/_jsxDEV(BrowserRouter, {\n children: /*#__PURE__*/_jsxDEV(Routes, {\n children: [/*#__PURE__*/_jsxDEV(Route, {\n path: \"/\",\n element: /*#__PURE__*/_jsxDEV(Home, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/projects\",\n element: /*#__PURE__*/_jsxDEV(Projects, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 40\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/contact\",\n element: /*#__PURE__*/_jsxDEV(Contact, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 39\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/about\",\n element: /*#__PURE__*/_jsxDEV(About, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 37\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/resume\",\n element: /*#__PURE__*/_jsxDEV(Resume, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 38\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this)\n}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 3\n}, this));","map":{"version":3,"names":["React","StrictMode","ReactDOM","BrowserRouter","Routes","Route","Home","Projects","Contact","About","Resume","jsxDEV","_jsxDEV","root","document","getElementById","createRoot","render","children","path","element","fileName","_jsxFileName","lineNumber","columnNumber"],"sources":["/home/violet/documents/development/portfolio/public/src/index.js"],"sourcesContent":["import React, { StrictMode } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { BrowserRouter, Routes, Route } from \"react-router\";\n\nimport Home from \"./Home\";\nimport Projects from \"./Projects\";\nimport Contact from \"./Contact\";\nimport About from \"./About\";\nimport Resume from \"./Resume\";\nimport \"./styles.css\";\n\nconst root = document.getElementById(\"root\");\n\nReactDOM.createRoot(root).render(\n \n \n } />\n } />\n } />\n } />\n } />\n \n \n);\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,QAAQ,MAAM,kBAAkB;AACvC,SAASC,aAAa,EAAEC,MAAM,EAAEC,KAAK,QAAQ,cAAc;AAE3D,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,QAAQ,MAAM,YAAY;AACjC,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAO,cAAc;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAEtB,MAAMC,IAAI,GAAGC,QAAQ,CAACC,cAAc,CAAC,MAAM,CAAC;AAE5Cb,QAAQ,CAACc,UAAU,CAACH,IAAI,CAAC,CAACI,MAAM,cAC9BL,OAAA,CAACT,aAAa;EAAAe,QAAA,eACZN,OAAA,CAACR,MAAM;IAAAc,QAAA,gBACLN,OAAA,CAACP,KAAK;MAACc,IAAI,EAAC,GAAG;MAACC,OAAO,eAAER,OAAA,CAACN,IAAI;QAAAe,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACrCZ,OAAA,CAACP,KAAK;MAACc,IAAI,EAAC,WAAW;MAACC,OAAO,eAAER,OAAA,CAACL,QAAQ;QAAAc,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eACjDZ,OAAA,CAACP,KAAK;MAACc,IAAI,EAAC,UAAU;MAACC,OAAO,eAAER,OAAA,CAACJ,OAAO;QAAAa,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eAC/CZ,OAAA,CAACP,KAAK;MAACc,IAAI,EAAC,QAAQ;MAACC,OAAO,eAAER,OAAA,CAACH,KAAK;QAAAY,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eAC3CZ,OAAA,CAACP,KAAK;MAACc,IAAI,EAAC,SAAS;MAACC,OAAO,eAAER,OAAA,CAACF,MAAM;QAAAW,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAE;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EAAA;IAAAH,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACvC;AAAC;EAAAH,QAAA,EAAAC,YAAA;EAAAC,UAAA;EAAAC,YAAA;AAAA,OACI,CACjB,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/babel-loader/fb534e455b56d0c661e4b062761a2f23c91e49d288c5377b106a5c9aa7741844.json b/public/node_modules/.cache/babel-loader/fb534e455b56d0c661e4b062761a2f23c91e49d288c5377b106a5c9aa7741844.json
new file mode 100644
index 00000000..d51fd6b2
--- /dev/null
+++ b/public/node_modules/.cache/babel-loader/fb534e455b56d0c661e4b062761a2f23c91e49d288c5377b106a5c9aa7741844.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import * as React from 'react';\nconst SelectableContext = /*#__PURE__*/React.createContext(null);\nexport const makeEventKey = (eventKey, href = null) => {\n if (eventKey != null) return String(eventKey);\n return href || null;\n};\nexport default SelectableContext;","map":{"version":3,"names":["React","SelectableContext","createContext","makeEventKey","eventKey","href","String"],"sources":["/home/violet/documents/development/portfolio/public/node_modules/react-bootstrap/node_modules/@restart/ui/esm/SelectableContext.js"],"sourcesContent":["import * as React from 'react';\nconst SelectableContext = /*#__PURE__*/React.createContext(null);\nexport const makeEventKey = (eventKey, href = null) => {\n if (eventKey != null) return String(eventKey);\n return href || null;\n};\nexport default SelectableContext;"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,MAAMC,iBAAiB,GAAG,aAAaD,KAAK,CAACE,aAAa,CAAC,IAAI,CAAC;AAChE,OAAO,MAAMC,YAAY,GAAGA,CAACC,QAAQ,EAAEC,IAAI,GAAG,IAAI,KAAK;EACrD,IAAID,QAAQ,IAAI,IAAI,EAAE,OAAOE,MAAM,CAACF,QAAQ,CAAC;EAC7C,OAAOC,IAAI,IAAI,IAAI;AACrB,CAAC;AACD,eAAeJ,iBAAiB","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
\ No newline at end of file
diff --git a/public/node_modules/.cache/default-development/0.pack b/public/node_modules/.cache/default-development/0.pack
index 365ab4e6..866453a7 100644
Binary files a/public/node_modules/.cache/default-development/0.pack and b/public/node_modules/.cache/default-development/0.pack differ
diff --git a/public/node_modules/.cache/default-development/1.pack b/public/node_modules/.cache/default-development/1.pack
index da28548e..6453af0c 100644
Binary files a/public/node_modules/.cache/default-development/1.pack and b/public/node_modules/.cache/default-development/1.pack differ
diff --git a/public/node_modules/.cache/default-development/2.pack b/public/node_modules/.cache/default-development/2.pack
index 693b8a57..36073194 100644
Binary files a/public/node_modules/.cache/default-development/2.pack and b/public/node_modules/.cache/default-development/2.pack differ
diff --git a/public/node_modules/.cache/default-development/3.pack b/public/node_modules/.cache/default-development/3.pack
index b9925848..552637a7 100644
Binary files a/public/node_modules/.cache/default-development/3.pack and b/public/node_modules/.cache/default-development/3.pack differ
diff --git a/public/node_modules/.cache/default-development/4.pack b/public/node_modules/.cache/default-development/4.pack
index 698a52ab..8ee4d0cb 100644
Binary files a/public/node_modules/.cache/default-development/4.pack and b/public/node_modules/.cache/default-development/4.pack differ
diff --git a/public/node_modules/.cache/default-development/5.pack b/public/node_modules/.cache/default-development/5.pack
index 54d2ad7e..af495818 100644
Binary files a/public/node_modules/.cache/default-development/5.pack and b/public/node_modules/.cache/default-development/5.pack differ
diff --git a/public/node_modules/.cache/default-development/index.pack b/public/node_modules/.cache/default-development/index.pack
index 3c3f0b5c..eba91757 100644
Binary files a/public/node_modules/.cache/default-development/index.pack and b/public/node_modules/.cache/default-development/index.pack differ
diff --git a/public/node_modules/.cache/default-development/index.pack.old b/public/node_modules/.cache/default-development/index.pack.old
index b6f3af1f..010b5f7d 100644
Binary files a/public/node_modules/.cache/default-development/index.pack.old and b/public/node_modules/.cache/default-development/index.pack.old differ
diff --git a/public/node_modules/.package-lock.json b/public/node_modules/.package-lock.json
index 4313d499..4723a436 100644
--- a/public/node_modules/.package-lock.json
+++ b/public/node_modules/.package-lock.json
@@ -3070,6 +3070,31 @@
}
}
},
+ "node_modules/@popperjs/core": {
+ "version": "2.11.8",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
+ "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/popperjs"
+ }
+ },
+ "node_modules/@react-aria/ssr": {
+ "version": "3.9.7",
+ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.7.tgz",
+ "integrity": "sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ },
+ "engines": {
+ "node": ">= 12"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
"node_modules/@rollup/plugin-babel": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
@@ -3418,6 +3443,15 @@
"url": "https://github.com/sponsors/gregberge"
}
},
+ "node_modules/@swc/helpers": {
+ "version": "0.5.15",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
+ "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
"node_modules/@tootallnate/once": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
@@ -3685,6 +3719,12 @@
"integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
"license": "MIT"
},
+ "node_modules/@types/prop-types": {
+ "version": "15.7.14",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
+ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==",
+ "license": "MIT"
+ },
"node_modules/@types/q": {
"version": "1.5.8",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
@@ -3703,6 +3743,24 @@
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
"license": "MIT"
},
+ "node_modules/@types/react": {
+ "version": "19.0.2",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.2.tgz",
+ "integrity": "sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg==",
+ "license": "MIT",
+ "dependencies": {
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-transition-group": {
+ "version": "4.4.12",
+ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz",
+ "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*"
+ }
+ },
"node_modules/@types/resolve": {
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
@@ -3775,6 +3833,12 @@
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
"license": "MIT"
},
+ "node_modules/@types/warning": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz",
+ "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==",
+ "license": "MIT"
+ },
"node_modules/@types/ws": {
"version": "8.5.13",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz",
@@ -5121,6 +5185,25 @@
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
"license": "ISC"
},
+ "node_modules/bootstrap": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
+ "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/twbs"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/bootstrap"
+ }
+ ],
+ "license": "MIT",
+ "peerDependencies": {
+ "@popperjs/core": "^2.11.8"
+ }
+ },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -5442,6 +5525,12 @@
"integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==",
"license": "MIT"
},
+ "node_modules/classnames": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
+ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==",
+ "license": "MIT"
+ },
"node_modules/clean-css": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
@@ -6198,6 +6287,12 @@
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
"license": "MIT"
},
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "license": "MIT"
+ },
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
@@ -6386,6 +6481,15 @@
"node": ">= 0.8"
}
},
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
@@ -6509,6 +6613,16 @@
"utila": "~0.4"
}
},
+ "node_modules/dom-helpers": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+ "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ }
+ },
"node_modules/dom-serializer": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
@@ -9022,6 +9136,15 @@
"node": ">= 0.4"
}
},
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
"node_modules/ipaddr.js": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
@@ -13507,6 +13630,141 @@
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
"license": "MIT"
},
+ "node_modules/react-bootstrap": {
+ "version": "2.10.7",
+ "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.7.tgz",
+ "integrity": "sha512-w6mWb3uytB5A18S2oTZpYghcOUK30neMBBvZ/bEfA+WIF2dF4OGqjzoFVMpVXBjtyf92gkmRToHlddiMAVhQqQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.24.7",
+ "@restart/hooks": "^0.4.9",
+ "@restart/ui": "^1.9.2",
+ "@types/prop-types": "^15.7.12",
+ "@types/react-transition-group": "^4.4.6",
+ "classnames": "^2.3.2",
+ "dom-helpers": "^5.2.1",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.8.1",
+ "prop-types-extra": "^1.1.0",
+ "react-transition-group": "^4.4.5",
+ "uncontrollable": "^7.2.1",
+ "warning": "^4.0.3"
+ },
+ "peerDependencies": {
+ "@types/react": ">=16.14.8",
+ "react": ">=16.14.0",
+ "react-dom": ">=16.14.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-bootstrap/node_modules/@restart/hooks": {
+ "version": "0.4.16",
+ "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz",
+ "integrity": "sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==",
+ "license": "MIT",
+ "dependencies": {
+ "dequal": "^2.0.3"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
+ "node_modules/react-bootstrap/node_modules/@restart/ui": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.9.2.tgz",
+ "integrity": "sha512-MWWqJqSyqUWWPBOOiRQrX57CBc/9CoYONg7sE+uag72GCAuYrHGU5c49vU5s4BUSBgiKNY6rL7TULqGDrouUaA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.26.0",
+ "@popperjs/core": "^2.11.8",
+ "@react-aria/ssr": "^3.5.0",
+ "@restart/hooks": "^0.5.0",
+ "@types/warning": "^3.0.3",
+ "dequal": "^2.0.3",
+ "dom-helpers": "^5.2.0",
+ "uncontrollable": "^8.0.4",
+ "warning": "^4.0.3"
+ },
+ "peerDependencies": {
+ "react": ">=16.14.0",
+ "react-dom": ">=16.14.0"
+ }
+ },
+ "node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/@restart/hooks": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.5.0.tgz",
+ "integrity": "sha512-wS+h6IusJCPjTkmOOrRZxIPICD/mtFA3PRZviutoM23/b7akyDGfZF/WS+nIFk27u7JDhPE2+0GBdZxjSqHZkg==",
+ "license": "MIT",
+ "dependencies": {
+ "dequal": "^2.0.3"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
+ "node_modules/react-bootstrap/node_modules/@restart/ui/node_modules/uncontrollable": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz",
+ "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": ">=16.14.0"
+ }
+ },
+ "node_modules/react-bootstrap/node_modules/prop-types-extra": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
+ "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==",
+ "license": "MIT",
+ "dependencies": {
+ "react-is": "^16.3.2",
+ "warning": "^4.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=0.14.0"
+ }
+ },
+ "node_modules/react-bootstrap/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
+ "node_modules/react-bootstrap/node_modules/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.6.0",
+ "react-dom": ">=16.6.0"
+ }
+ },
+ "node_modules/react-bootstrap/node_modules/uncontrollable": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz",
+ "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.6.3",
+ "@types/react": ">=16.9.11",
+ "invariant": "^2.2.4",
+ "react-lifecycles-compat": "^3.0.4"
+ },
+ "peerDependencies": {
+ "react": ">=15.0.0"
+ }
+ },
"node_modules/react-dev-utils": {
"version": "12.0.1",
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
@@ -13636,6 +13894,12 @@
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
"license": "MIT"
},
+ "node_modules/react-lifecycles-compat": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==",
+ "license": "MIT"
+ },
"node_modules/react-refresh": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz",
@@ -16335,6 +16599,15 @@
"makeerror": "1.0.12"
}
},
+ "node_modules/warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
"node_modules/watchpack": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
diff --git a/public/node_modules/@popperjs/core/LICENSE.md b/public/node_modules/@popperjs/core/LICENSE.md
new file mode 100644
index 00000000..0370c458
--- /dev/null
+++ b/public/node_modules/@popperjs/core/LICENSE.md
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2019 Federico Zivolo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/public/node_modules/@popperjs/core/README.md b/public/node_modules/@popperjs/core/README.md
new file mode 100644
index 00000000..53be7b9d
--- /dev/null
+++ b/public/node_modules/@popperjs/core/README.md
@@ -0,0 +1,376 @@
+
+
+
+
+
+
+
Tooltip & Popover Positioning Engine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**Positioning tooltips and popovers is difficult. Popper is here to help!**
+
+Given an element, such as a button, and a tooltip element describing it, Popper
+will automatically put the tooltip in the right place near the button.
+
+It will position _any_ UI element that "pops out" from the flow of your document
+and floats near a target element. The most common example is a tooltip, but it
+also includes popovers, drop-downs, and more. All of these can be generically
+described as a "popper" element.
+
+## Demo
+
+[](https://popper.js.org)
+
+## Docs
+
+- [v2.x (latest)](https://popper.js.org/docs/v2/)
+- [v1.x](https://popper.js.org/docs/v1/)
+
+We've created a
+[Migration Guide](https://popper.js.org/docs/v2/migration-guide/) to help you
+migrate from Popper 1 to Popper 2.
+
+To contribute to the Popper website and documentation, please visit the
+[dedicated repository](https://github.com/popperjs/website).
+
+## Why not use pure CSS?
+
+- **Clipping and overflow issues**: Pure CSS poppers will not be prevented from
+ overflowing clipping boundaries, such as the viewport. It will get partially
+ cut off or overflows if it's near the edge since there is no dynamic
+ positioning logic. When using Popper, your popper will always be positioned in
+ the right place without needing manual adjustments.
+- **No flipping**: CSS poppers will not flip to a different placement to fit
+ better in view if necessary. While you can manually adjust for the main axis
+ overflow, this feature cannot be achieved via CSS alone. Popper automatically
+ flips the tooltip to make it fit in view as best as possible for the user.
+- **No virtual positioning**: CSS poppers cannot follow the mouse cursor or be
+ used as a context menu. Popper allows you to position your tooltip relative to
+ any coordinates you desire.
+- **Slower development cycle**: When pure CSS is used to position popper
+ elements, the lack of dynamic positioning means they must be carefully placed
+ to consider overflow on all screen sizes. In reusable component libraries,
+ this means a developer can't just add the component anywhere on the page,
+ because these issues need to be considered and adjusted for every time. With
+ Popper, you can place your elements anywhere and they will be positioned
+ correctly, without needing to consider different screen sizes, layouts, etc.
+ This massively speeds up development time because this work is automatically
+ offloaded to Popper.
+- **Lack of extensibility**: CSS poppers cannot be easily extended to fit any
+ arbitrary use case you may need to adjust for. Popper is built with
+ extensibility in mind.
+
+## Why Popper?
+
+With the CSS drawbacks out of the way, we now move on to Popper in the
+JavaScript space itself.
+
+Naive JavaScript tooltip implementations usually have the following problems:
+
+- **Scrolling containers**: They don't ensure the tooltip stays with the
+ reference element while scrolling when inside any number of scrolling
+ containers.
+- **DOM context**: They often require the tooltip move outside of its original
+ DOM context because they don't handle `offsetParent` contexts.
+- **Compatibility**: Popper handles an incredible number of edge cases regarding
+ different browsers and environments (mobile viewports, RTL, scrollbars enabled
+ or disabled, etc.). Popper is a popular and well-maintained library, so you
+ can be confident positioning will work for your users on any device.
+- **Configurability**: They often lack advanced configurability to suit any
+ possible use case.
+- **Size**: They are usually relatively large in size, or require an ancient
+ jQuery dependency.
+- **Performance**: They often have runtime performance issues and update the
+ tooltip position too slowly.
+
+**Popper solves all of these key problems in an elegant, performant manner.** It
+is a lightweight ~3 kB library that aims to provide a reliable and extensible
+positioning engine you can use to ensure all your popper elements are positioned
+in the right place.
+
+When you start writing your own popper implementation, you'll quickly run into
+all of the problems mentioned above. These widgets are incredibly common in our
+UIs; we've done the hard work figuring this out so you don't need to spend hours
+fixing and handling numerous edge cases that we already ran into while building
+the library!
+
+Popper is used in popular libraries like Bootstrap, Foundation, Material UI, and
+more. It's likely you've already used popper elements on the web positioned by
+Popper at some point in the past few years.
+
+Since we write UIs using powerful abstraction libraries such as React or Angular
+nowadays, you'll also be glad to know Popper can fully integrate with them and
+be a good citizen together with your other components. Check out `react-popper`
+for the official Popper wrapper for React.
+
+## Installation
+
+### 1. Package Manager
+
+```bash
+# With npm
+npm i @popperjs/core
+
+# With Yarn
+yarn add @popperjs/core
+```
+
+### 2. CDN
+
+```html
+
+
+
+
+
+```
+
+### 3. Direct Download?
+
+Managing dependencies by "directly downloading" them and placing them into your
+source code is not recommended for a variety of reasons, including missing out
+on feat/fix updates easily. Please use a versioning management system like a CDN
+or npm/Yarn.
+
+## Usage
+
+The most straightforward way to get started is to import Popper from the `unpkg`
+CDN, which includes all of its features. You can call the `Popper.createPopper`
+constructor to create new popper instances.
+
+Here is a complete example:
+
+```html
+
+Popper example
+
+
+
+I'm a button
+I'm a tooltip
+
+
+
+```
+
+Visit the [tutorial](https://popper.js.org/docs/v2/tutorial/) for an example of
+how to build your own tooltip from scratch using Popper.
+
+### Module bundlers
+
+You can import the `createPopper` constructor from the fully-featured file:
+
+```js
+import { createPopper } from '@popperjs/core';
+
+const button = document.querySelector('#button');
+const tooltip = document.querySelector('#tooltip');
+
+// Pass the button, the tooltip, and some options, and Popper will do the
+// magic positioning for you:
+createPopper(button, tooltip, {
+ placement: 'right',
+});
+```
+
+All the modifiers listed in the docs menu will be enabled and "just work", so
+you don't need to think about setting Popper up. The size of Popper including
+all of its features is about 5 kB minzipped, but it may grow a bit in the
+future.
+
+#### Popper Lite (tree-shaking)
+
+If bundle size is important, you'll want to take advantage of tree-shaking. The
+library is built in a modular way to allow to import only the parts you really
+need.
+
+```js
+import { createPopperLite as createPopper } from '@popperjs/core';
+```
+
+The Lite version includes the most necessary modifiers that will compute the
+offsets of the popper, compute and add the positioning styles, and add event
+listeners. This is close in bundle size to pure CSS tooltip libraries, and
+behaves somewhat similarly.
+
+However, this does not include the features that makes Popper truly useful.
+
+The two most useful modifiers not included in Lite are `preventOverflow` and
+`flip`:
+
+```js
+import {
+ createPopperLite as createPopper,
+ preventOverflow,
+ flip,
+} from '@popperjs/core';
+
+const button = document.querySelector('#button');
+const tooltip = document.querySelector('#tooltip');
+
+createPopper(button, tooltip, {
+ modifiers: [preventOverflow, flip],
+});
+```
+
+As you make more poppers, you may be finding yourself needing other modifiers
+provided by the library.
+
+See [tree-shaking](https://popper.js.org/docs/v2/performance/#tree-shaking) for more
+information.
+
+## Distribution targets
+
+Popper is distributed in 3 different versions, in 3 different file formats.
+
+The 3 file formats are:
+
+- `esm` (works with `import` syntax — **recommended**)
+- `umd` (works with `