diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/frontend.iml b/.idea/frontend.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/frontend.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..f3d93d7 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml new file mode 100644 index 0000000..9d98b43 --- /dev/null +++ b/.idea/watcherTasks.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/innovagrant.zip b/innovagrant.zip new file mode 100644 index 0000000..0cb42c6 Binary files /dev/null and b/innovagrant.zip differ diff --git a/package-lock.json b/package-lock.json index 8b2ff54..e76274e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,13 @@ "version": "0.0.1", "devDependencies": { "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/adapter-static": "^2.0.3", "@sveltejs/kit": "^1.20.4", "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.10.1", + "sass": "^1.69.3", "svelte": "^4.0.5", + "svelte-moveable": "^0.43.4", "vite": "^4.4.2" } }, @@ -29,6 +32,48 @@ "node": ">=6.0.0" } }, + "node_modules/@cfcs/core": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@cfcs/core/-/core-0.0.6.tgz", + "integrity": "sha512-FxfJMwoLB8MEMConeXUCqtMGqxdtePQxRBOiGip9ULcYYam3WfCgoY6xdnMaSkYvRvmosp5iuG+TiPofm65+Pw==", + "dev": true, + "dependencies": { + "@egjs/component": "^3.0.2" + } + }, + "node_modules/@daybrush/utils": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@daybrush/utils/-/utils-1.13.0.tgz", + "integrity": "sha512-ALK12C6SQNNHw1enXK+UO8bdyQ+jaWNQ1Af7Z3FNxeAwjYhQT7do+TRE4RASAJ3ObaS2+TJ7TXR3oz2Gzbw0PQ==", + "dev": true + }, + "node_modules/@egjs/agent": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@egjs/agent/-/agent-2.4.3.tgz", + "integrity": "sha512-XvksSENe8wPeFlEVouvrOhKdx8HMniJ3by7sro2uPF3M6QqWwjzVcmvwoPtdjiX8O1lfRoLhQMp1a7NGlVTdIA==", + "dev": true + }, + "node_modules/@egjs/children-differ": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@egjs/children-differ/-/children-differ-1.0.1.tgz", + "integrity": "sha512-DRvyqMf+CPCOzAopQKHtW+X8iN6Hy6SFol+/7zCUiE5y4P/OB8JP8FtU4NxtZwtafvSL4faD5KoQYPj3JHzPFQ==", + "dev": true, + "dependencies": { + "@egjs/list-differ": "^1.0.0" + } + }, + "node_modules/@egjs/component": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@egjs/component/-/component-3.0.4.tgz", + "integrity": "sha512-sXA7bGbIeLF2OAw/vpka66c6QBBUPcA4UUhR4WGJfnp2XWdiI8QrnJGJMr/UxpE/xnevX9tN3jvNPlW8WkHl3g==", + "dev": true + }, + "node_modules/@egjs/list-differ": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@egjs/list-differ/-/list-differ-1.0.1.tgz", + "integrity": "sha512-OTFTDQcWS+1ZREOdCWuk5hCBgYO4OsD30lXcOCyVOAjXMhgL5rBRDnt/otb6Nz8CzU0L/igdcaQBDLWc4t9gvg==", + "dev": true + }, "node_modules/@esbuild/android-arm": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", @@ -444,6 +489,34 @@ "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", "dev": true }, + "node_modules/@scena/dragscroll": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scena/dragscroll/-/dragscroll-1.4.0.tgz", + "integrity": "sha512-3O8daaZD9VXA9CP3dra6xcgt/qrm0mg0xJCwiX6druCteQ9FFsXffkF8PrqxY4Z4VJ58fFKEa0RlKqbsi/XnRA==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.6.0", + "@scena/event-emitter": "^1.0.2" + } + }, + "node_modules/@scena/event-emitter": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@scena/event-emitter/-/event-emitter-1.0.5.tgz", + "integrity": "sha512-AzY4OTb0+7ynefmWFQ6hxDdk0CySAq/D4efljfhtRHCOP7MBF9zUfhKG3TJiroVjASqVgkRJFdenS8ArZo6Olg==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.1.1" + } + }, + "node_modules/@scena/matrix": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scena/matrix/-/matrix-1.1.1.tgz", + "integrity": "sha512-JVKBhN0tm2Srl+Yt+Ywqu0oLgLcdemDQlD1OxmN9jaCTwaFPZ7tY8n6dhVgMEaR9qcR7r+kAlMXnSfNyYdE+Vg==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.4.0" + } + }, "node_modules/@sveltejs/adapter-auto": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.1.0.tgz", @@ -456,6 +529,15 @@ "@sveltejs/kit": "^1.0.0" } }, + "node_modules/@sveltejs/adapter-static": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-2.0.3.tgz", + "integrity": "sha512-VUqTfXsxYGugCpMqQv1U0LIdbR3S5nBkMMDmpjGVJyM6Q2jHVMFtdWJCkeHMySc6mZxJ+0eZK3T7IgmUCDrcUQ==", + "dev": true, + "peerDependencies": { + "@sveltejs/kit": "^1.5.0" + } + }, "node_modules/@sveltejs/kit": { "version": "1.25.2", "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.25.2.tgz", @@ -551,6 +633,19 @@ "node": ">=0.4.0" } }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", @@ -569,6 +664,54 @@ "dequal": "^2.0.3" } }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/code-red": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", @@ -591,6 +734,71 @@ "node": ">= 0.6" } }, + "node_modules/croact": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/croact/-/croact-1.0.4.tgz", + "integrity": "sha512-9GhvyzTY/IVUrMQ2iz/mzgZ8+NcjczmIo/t4FkC1CU0CEcau6v6VsEih4jkTa4ZmRgYTF0qXEZLObCzdDFplpw==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.13.0", + "@egjs/list-differ": "^1.0.0" + } + }, + "node_modules/croact-css-styled": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/croact-css-styled/-/croact-css-styled-1.1.9.tgz", + "integrity": "sha512-G7yvRiVJ3Eoj0ov2h2xR4312hpOzATay2dGS9clK8yJQothjH1sBXIyvOeRP5wBKD9mPcKcoUXPCPsl0tQog4w==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.13.0", + "css-styled": "~1.0.8", + "framework-utils": "^1.1.0" + } + }, + "node_modules/croact-moveable": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/croact-moveable/-/croact-moveable-0.7.2.tgz", + "integrity": "sha512-6Mi+02i04TnWLmvxzaoZVuBUoTd/9OhcMTfvuqO7y/htfrTjO68935AysPaWnN6FesHYFh6+6DaqgWt/DcS8Mg==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.13.0", + "@egjs/agent": "^2.2.1", + "@egjs/children-differ": "^1.0.1", + "@egjs/list-differ": "^1.0.0", + "@scena/dragscroll": "^1.4.0", + "@scena/event-emitter": "^1.0.5", + "@scena/matrix": "^1.1.1", + "croact-css-styled": "^1.1.9", + "css-to-mat": "^1.1.1", + "framework-utils": "^1.1.0", + "gesto": "^1.19.0", + "overlap-area": "^1.1.0", + "react-css-styled": "^1.1.9", + "react-moveable": "~0.54.2" + }, + "peerDependencies": { + "croact": "^1.0.4" + } + }, + "node_modules/css-styled": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/css-styled/-/css-styled-1.0.8.tgz", + "integrity": "sha512-tCpP7kLRI8dI95rCh3Syl7I+v7PP+2JYOzWkl0bUEoSbJM+u8ITbutjlQVf0NC2/g4ULROJPi16sfwDIO8/84g==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.13.0" + } + }, + "node_modules/css-to-mat": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-to-mat/-/css-to-mat-1.1.1.tgz", + "integrity": "sha512-kvpxFYZb27jRd2vium35G7q5XZ2WJ9rWjDUMNT36M3Hc41qCrLXFM5iEKMGXcrPsKfXEN+8l/riB4QzwwwiEyQ==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.13.0", + "@scena/matrix": "^1.0.0" + } + }, "node_modules/css-tree": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", @@ -697,6 +905,24 @@ "@types/estree": "^1.0.0" } }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/framework-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/framework-utils/-/framework-utils-1.1.0.tgz", + "integrity": "sha512-KAfqli5PwpFJ8o3psRNs8svpMGyCSAe8nmGcjQ0zZBWN2H6dZDnq+ABp3N3hdUmFeMrLtjOCTXD4yplUJIWceg==", + "dev": true + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -711,6 +937,28 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/gesto": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/gesto/-/gesto-1.19.2.tgz", + "integrity": "sha512-i6OGsrR2GN7n2dQaUhY+LZ+AAZgBNg5/1kest/ST5VRRflfVl5bSfvOkJMDmKEUrGbKF6eIDkFz/DnCXJD4UMA==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.13.0", + "@scena/event-emitter": "^1.0.2" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/globalyzer": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", @@ -723,6 +971,12 @@ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", "dev": true }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, "node_modules/import-meta-resolve": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz", @@ -733,6 +987,48 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/is-reference": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", @@ -742,6 +1038,24 @@ "@types/estree": "*" } }, + "node_modules/keycode": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz", + "integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==", + "dev": true + }, + "node_modules/keycon": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/keycon/-/keycon-1.4.0.tgz", + "integrity": "sha512-p1NAIxiRMH3jYfTeXRs2uWbVJ1WpEjpi8ktzUyBJsX7/wn2qu2VRXktneBLNtKNxJmlUYxRi9gOJt1DuthXR7A==", + "dev": true, + "dependencies": { + "@cfcs/core": "^0.0.6", + "@daybrush/utils": "^1.7.1", + "@scena/event-emitter": "^1.0.2", + "keycode": "^2.2.0" + } + }, "node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", @@ -787,6 +1101,19 @@ "node": ">=10.0.0" } }, + "node_modules/moveable": { + "version": "0.51.2", + "resolved": "https://registry.npmjs.org/moveable/-/moveable-0.51.2.tgz", + "integrity": "sha512-m/mAwsnSkTmrbjSmX2Q3RZdeaC+nkObbZC8kDCl34TWX39mbS/BZszF6M1dj3DbPYSE5NQP7Y6DR8MIRBRIdKg==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.13.0", + "@scena/event-emitter": "^1.0.5", + "croact": "^1.0.4", + "croact-moveable": "~0.7.2", + "react-moveable": "~0.54.2" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -829,6 +1156,24 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/overlap-area": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/overlap-area/-/overlap-area-1.1.0.tgz", + "integrity": "sha512-3dlJgJCaVeXH0/eZjYVJvQiLVVrPO4U1ZGqlATtx6QGO3b5eNM6+JgUKa7oStBTdYuGTk7gVoABCW6Tp+dhRdw==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.7.1" + } + }, "node_modules/periscopic": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", @@ -846,6 +1191,18 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", @@ -899,6 +1256,58 @@ "svelte": "^3.2.0 || ^4.0.0-next.0" } }, + "node_modules/react-css-styled": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/react-css-styled/-/react-css-styled-1.1.9.tgz", + "integrity": "sha512-M7fJZ3IWFaIHcZEkoFOnkjdiUFmwd8d+gTh2bpqMOcnxy/0Gsykw4dsL4QBiKsxcGow6tETUa4NAUcmJF+/nfw==", + "dev": true, + "dependencies": { + "css-styled": "~1.0.8", + "framework-utils": "^1.1.0" + } + }, + "node_modules/react-moveable": { + "version": "0.54.2", + "resolved": "https://registry.npmjs.org/react-moveable/-/react-moveable-0.54.2.tgz", + "integrity": "sha512-NGaVLbn0i9pb3+BWSKGWFqI/Mgm4+WMeWHxXXQ4Qi1tHxWCXrUrbGvpxEpt69G/hR7dez+/m68ex+fabjnvcUg==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.13.0", + "@egjs/agent": "^2.2.1", + "@egjs/children-differ": "^1.0.1", + "@egjs/list-differ": "^1.0.0", + "@scena/dragscroll": "^1.4.0", + "@scena/event-emitter": "^1.0.5", + "@scena/matrix": "^1.1.1", + "css-to-mat": "^1.1.1", + "framework-utils": "^1.1.0", + "gesto": "^1.19.0", + "overlap-area": "^1.1.0", + "react-css-styled": "^1.1.9", + "react-selecto": "^1.25.0" + } + }, + "node_modules/react-selecto": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/react-selecto/-/react-selecto-1.26.0.tgz", + "integrity": "sha512-aBTZEYA68uE+o8TytNjTb2GpIn4oKEv0U4LIow3cspJQlF/PdAnBwkq9UuiKVuFluu5kfLQ7Keu3S2Tihlmw0g==", + "dev": true, + "dependencies": { + "selecto": "~1.26.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", @@ -927,6 +1336,41 @@ "node": ">=6" } }, + "node_modules/sass": { + "version": "1.69.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.3.tgz", + "integrity": "sha512-X99+a2iGdXkdWn1akFPs0ZmelUzyAQfvqYc2P/MPTrJRuIRoTffGzT9W9nFqG00S+c8hXzVmgxhUuHFdrwxkhQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/selecto": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/selecto/-/selecto-1.26.0.tgz", + "integrity": "sha512-cEFKdv5rmkF6pf2OScQJllaNp4UJy/FvviB40ZaMSHrQCxC72X/Q6uhzW1tlb2RE+0danvUNJTs64cI9VXtUyg==", + "dev": true, + "dependencies": { + "@daybrush/utils": "^1.13.0", + "@egjs/children-differ": "^1.0.1", + "@scena/dragscroll": "^1.4.0", + "@scena/event-emitter": "^1.0.5", + "css-styled": "^1.0.8", + "css-to-mat": "^1.1.1", + "framework-utils": "^1.1.0", + "gesto": "^1.19.1", + "keycon": "^1.2.0", + "overlap-area": "^1.1.0" + } + }, "node_modules/set-cookie-parser": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", @@ -992,6 +1436,19 @@ "svelte": "^3.19.0 || ^4.0.0" } }, + "node_modules/svelte-moveable": { + "version": "0.43.4", + "resolved": "https://registry.npmjs.org/svelte-moveable/-/svelte-moveable-0.43.4.tgz", + "integrity": "sha512-CkiOFODex7tp/qoUtq3TuVyV2J477tkkHLnE+KfRbK1a1l4jDRilV0+8gDQtt65TubskbrSX52x19NgpxlE1NA==", + "dev": true, + "dependencies": { + "framework-utils": "^1.1.0", + "moveable": "~0.51.2" + }, + "peerDependencies": { + "svelte": "^3.54.0 || ^4.0.0" + } + }, "node_modules/tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -1002,6 +1459,18 @@ "globrex": "^0.1.2" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", diff --git a/package.json b/package.json index 21d3e70..271adf8 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,13 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/adapter-static": "^2.0.3", "@sveltejs/kit": "^1.20.4", "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.10.1", + "sass": "^1.69.3", "svelte": "^4.0.5", + "svelte-moveable": "^0.43.4", "vite": "^4.4.2" }, "type": "module" diff --git a/src/app.css b/src/app.css index e69de29..bb0ab66 100644 --- a/src/app.css +++ b/src/app.css @@ -0,0 +1,49 @@ +html, body { + background-color: #171714; + color: #f9f5c3; + font-family: sans-serif; + justify-content: center; +} + +div { + background-color: #171714; +} + +header { + text-align: center; + width: 100%; + padding-top: 0.5em; + padding-bottom: 0.5em; + font-family: sans-serif; + font-size: 3em; + background-color: #0f1115; + justify-content: center; +} + +header div, content div { + max-width: 800px; + margin: auto; +} + +a:link, a:visited { + color: #f9f5c3; +} +header a:link { + color: #f9f5c3; + text-decoration: none; +} + +header a:visited { + color: #f9f5c3; + text-decoration: none; +} + +h1 { + color: #e6fbfb; + font-size: 2.5em; +} +h2 { + color: #e6fbfb; + font-size: 1.5em; + text-align: center; +} diff --git a/src/form.sass b/src/form.sass new file mode 100644 index 0000000..32df705 --- /dev/null +++ b/src/form.sass @@ -0,0 +1,292 @@ +// colors + +$bg: #171714 +$vibrant: #E8474C + +$text: white +$label: white + +$border: transparent +$static: #222222 +$focus: #4E4E4E +$active: white +$inactive: #4E4E4E +$error: #E8474C + +html + -webkit-font-smoothing: antialiased + +body + background-color: $bg + font-family: 'Titillium Web', sans-serif + + @media screen and (min-width: 40em) + font-size: 1.25em + +%block + padding: .75em 1em + appearance: none + outline: none + line-height: normal + border-radius: 0 + border: none + background: none + display: block + +%label + @extend %block + font-weight: bold + color: $label + padding: + top: 0 + left: 0 + letter-spacing: .025em + font-size: 1.125em + line-height: 1.25 + position: relative + z-index: 100 + + .required &:after + content: '\0020*' + color: $error + font-weight: normal + font-size: .75em + vertical-align: top + +=stripes($color1: #555, $color2: transparent, $angle: 0deg, $stripe1-width: 25px, $stripe2-width: null) + @if $stripe2-width == null + $stripe2-width: $stripe1-width + + $tile-size: ($stripe1-width + $stripe2-width) * 2 + $stripe2-start: $stripe1-width / $tile-size * 100% + $stripe3-start: $stripe2-start + $stripe2-width / $tile-size * 100% + $stripe4-start: $stripe3-start + $stripe1-width / $tile-size * 100% + + background-size: $tile-size $tile-size + background-image: linear-gradient($angle, $color1, $color1 $stripe2-start, $color2 $stripe2-start, $color2 $stripe3-start, $color1 $stripe3-start, $color1 $stripe4-start, $color2 $stripe4-start, $color2) + background-repeat: repeat + +%input + @extend %block + font: inherit + line-height: normal + width: 100% + box-sizing: border-box + background: $static + color: white + position: relative + + &:placeholder + color: $label + + &:-webkit-autofill + box-shadow: 0 0 0px 1000px $bg inset + -webkit-text-fill-color: white + border-top-color: $bg + border-left-color: $bg + border-right-color: $bg + + &.required, &[required] + + &:not(:focus):not(:active) + &.error, .error & + +stripes(rgba($vibrant,.5), transparent, 135deg, 2px, 2px) + + &:active, &:focus + @extend %input-active + +%input-active + .form:not(.has-magic-focus) & + background: $focus + +%error + @extend %block + // color: red + position: absolute + bottom: 0 + right: 0 + z-index: 100 + font-size: .625em + color: $label + +%checkbox + border: 0 + clip: rect(0 0 0 0) + height: 1px + margin: -1px + overflow: hidden + padding: 0 + position: absolute + width: 1px + + + label + @extend %input + display: inline-block + width: auto + color: $inactive + position: relative + user-select: none + cursor: pointer + + &:focus, &:active + + label + color: $focus + + &:checked + + label + color: $active + +// &:focus, &:active +// + label:before +// box-shadow: inset 0px 0px 0px .5em $focus +// color: $active + +%option + + label +// &:before +// border-radius: 50% +// &:after +// top: 1px +// left: 1px +// width: 1em +// height: 1em +// box-sizing: border-box +// border: 3px solid $bg +// border-radius: 50% +// transform: none + + +%button + @extend %block + + font: inherit + // font-size: 1em + line-height: normal + cursor: pointer + + background: $vibrant + color: white + font-weight: bold + width: auto + margin-left: auto + font-weight: bold + padding: + left: 2em + right: 2em + + &:hover, &:focus, &:active + color: white + border-color: white + + &:active + position: relative + top: 1px + left: 1px + +body + padding: 2em + +.form + max-width: 40em + margin: 0 auto + position: relative + + display: flex + flex-flow: row wrap + justify-content: space-between + align-items: flex-end + + .field + width: 100% + margin: 0 0 1.5em 0 + &.half + @media screen and (min-width: 40em) + width: calc(50% - 1px) + &.last + margin-left: auto + + .text-input + @extend %input + + .textarea + @extend %input + max-width: 100% + + .button + @extend %button + + .label + @extend %label + + .message + @extend %error + + .select + @extend %input + text-indent: 0.01px + text-overflow: ""!important + &::-ms-expand + display: none + + .checkboxes, .options + padding: 0 + margin: 0 + list-style-type: none + overflow: hidden + + .checkbox, .option + float: left + margin: 1px + + .checkbox-input + @extend %checkbox + + .option-input + @extend %checkbox +// @extend %option + +.customSelect + @extend %input + pointer-events: none + &:after + content: '' + pointer-events: none + width: .5em + height: .5em + border-style: solid + border-color: $label + border-width: 0 3px 3px 0 + position: absolute + top: 50% + margin-top: -.625em + right: 1em + transform-origin: 0 0 + transform: rotate(45deg) + + &.customSelectHover + + &.customSelectOpen + + &.customSelectFocus + @extend %input-active + &:after + border-color: white + + + .customSelectInner + +.magic-focus + position: absolute + z-index: 0 + width: 0 + // height: 0 + pointer-events: none + background: rgba(white,.15) + + transition: top .2s, left .2s, width .2s + + backface-visibility: hidden + transform-style: preserve-3d + will-change: top, left, width + + transform-origin: 0 0 \ No newline at end of file diff --git a/src/lib/ProjectForm.svelte b/src/lib/ProjectForm.svelte new file mode 100644 index 0000000..36e4ce8 --- /dev/null +++ b/src/lib/ProjectForm.svelte @@ -0,0 +1,56 @@ +
+ +

+ + +

+ +

+ + +

+ +

+ + +

+

+ + +

+ +

+ + +

+ +

+ + +

+

+ + +

+ + + +

+ +

+
+ diff --git a/src/lib/TreeView.svelte b/src/lib/TreeView.svelte index 3739aa7..f7d6a79 100644 --- a/src/lib/TreeView.svelte +++ b/src/lib/TreeView.svelte @@ -7,9 +7,10 @@ + + diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 5982b0a..975874a 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,2 +1,20 @@ -

Welcome to SvelteKit

-

Visit kit.svelte.dev to read the documentation

+ + +
+ +
+ +
+

Project initialization

+
+ +
+ + \ No newline at end of file diff --git a/src/routes/project/+page.svelte b/src/routes/project/+page.svelte new file mode 100644 index 0000000..73227c8 --- /dev/null +++ b/src/routes/project/+page.svelte @@ -0,0 +1,148 @@ +
+ +
+ + + + +

Declaration

+
+ +
+

Budget

+ +
+ +
+

Annex A2 Grant Application Form Full Application

+ +
+ + + +
+ \ No newline at end of file diff --git a/static/logo.png b/static/logo.png new file mode 100644 index 0000000..547da60 Binary files /dev/null and b/static/logo.png differ diff --git a/svelte.config.js b/svelte.config.js index 348fa32..7c609ca 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,4 +1,4 @@ -import adapter from '@sveltejs/adapter-auto'; +import adapter from '@sveltejs/adapter-static'; /** @type {import('@sveltejs/kit').Config} */ const config = {