diff --git a/package.json b/package.json index 5898796..5e35781 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ }, "dependencies": { "@auth0/auth0-vue": "^1.0.0", + "@quasar/extras": "^1.13.5", "@types/katex": "^0.14.0", "@types/uuid": "^8.3.4", "@vuetify/vite-plugin": "1.0.0-alpha.10", @@ -24,6 +25,7 @@ "install": "^0.13.0", "katex": "^0.15.3", "mathjs": "^10.4.3", + "quasar": "^2.6.6", "uuid": "^8.3.2", "vue": "^3.2.25", "vue-router": "^4.0.14", @@ -31,11 +33,13 @@ }, "devDependencies": { "@braks/revue-draggable": "^0.4.2", + "@quasar/vite-plugin": "^1.0.9", "@typescript-eslint/eslint-plugin": "^5.18.0", "@typescript-eslint/parser": "^5.18.0", "@vitejs/plugin-vue": "^2.3.1", "@volar/vue-language-service": "^0.33.9", "eslint": "^8.13.0", + "sass": "1.32.0", "typescript": "^4.5.4", "vite": "^2.9.0", "vue-tsc": "^0.33.9" diff --git a/plugins/vuetify.ts b/plugins/vuetify.ts deleted file mode 100644 index ecfb4f6..0000000 --- a/plugins/vuetify.ts +++ /dev/null @@ -1,4 +0,0 @@ -import 'vuetify/styles' -import { createVuetify } from 'vuetify' - -export default createVuetify() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 963748b..992a4ae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3,6 +3,8 @@ lockfileVersion: 5.3 specifiers: '@auth0/auth0-vue': ^1.0.0 '@braks/revue-draggable': ^0.4.2 + '@quasar/extras': ^1.13.5 + '@quasar/vite-plugin': ^1.0.9 '@types/katex': ^0.14.0 '@types/uuid': ^8.3.4 '@typescript-eslint/eslint-plugin': ^5.18.0 @@ -15,6 +17,8 @@ specifiers: install: ^0.13.0 katex: ^0.15.3 mathjs: ^10.4.3 + quasar: ^2.6.6 + sass: 1.32.0 typescript: ^4.5.4 uuid: ^8.3.2 vite: ^2.9.0 @@ -25,6 +29,7 @@ specifiers: dependencies: '@auth0/auth0-vue': 1.0.0_vue-router@4.0.14 + '@quasar/extras': 1.13.5 '@types/katex': 0.14.0 '@types/uuid': 8.3.4 '@vuetify/vite-plugin': 1.0.0-alpha.10_vite@2.9.1+vuetify@3.0.0-beta.0 @@ -32,6 +37,7 @@ dependencies: install: 0.13.0 katex: 0.15.3 mathjs: 10.4.3 + quasar: 2.6.6 uuid: 8.3.2 vue: 3.2.31 vue-router: 4.0.14_vue@3.2.31 @@ -39,13 +45,15 @@ dependencies: devDependencies: '@braks/revue-draggable': 0.4.2_vue@3.2.31 + '@quasar/vite-plugin': 1.0.9_c0effa32a194597943674c123f9c6ed2 '@typescript-eslint/eslint-plugin': 5.18.0_0dd9be2ba5ed9805045f3fec8be848f5 '@typescript-eslint/parser': 5.18.0_eslint@8.13.0+typescript@4.6.3 '@vitejs/plugin-vue': 2.3.1_vite@2.9.1+vue@3.2.31 '@volar/vue-language-service': 0.33.9 eslint: 8.13.0 + sass: 1.32.0 typescript: 4.6.3 - vite: 2.9.1 + vite: 2.9.1_sass@1.32.0 vue-tsc: 0.33.9_typescript@4.6.3 packages: @@ -203,6 +211,23 @@ packages: fastq: 1.13.0 dev: true + /@quasar/extras/1.13.5: + resolution: {integrity: sha512-H4X3jwqOJpDrn1Pof1mJIpoHdBrZQSR9ZpnQ7RCkJsJccpTyQzs8Q6ehVXfIZrco2kd3UPitRQqEiW7k45ckLg==} + dev: false + + /@quasar/vite-plugin/1.0.9_c0effa32a194597943674c123f9c6ed2: + resolution: {integrity: sha512-i3tOXLu9SvBG/u/VH/vlPpwzU3QHVtogoSl23Y3i9Clgo6XCtm9mHB0XnQvsLQgNfUTkAKJPKnGwAPQd9uBu1A==} + engines: {node: '>=12'} + peerDependencies: + quasar: ^2.0.0 + vite: ^2.0.0 + vue: ^3.0.0 + dependencies: + quasar: 2.6.6 + vite: 2.9.1_sass@1.32.0 + vue: 3.2.31 + dev: true + /@sindresorhus/is/0.14.0: resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} engines: {node: '>=6'} @@ -512,7 +537,7 @@ packages: vite: ^2.5.10 vue: ^3.2.25 dependencies: - vite: 2.9.1 + vite: 2.9.1_sass@1.32.0 vue: 3.2.31 dev: true @@ -739,7 +764,7 @@ packages: dependencies: '@vuetify/loader-shared': 1.3.0_vuetify@3.0.0-beta.0 debug: 4.3.4 - vite: 2.9.1 + vite: 2.9.1_sass@1.32.0 vuetify: 3.0.0-beta.0_vue@3.2.31 transitivePeerDependencies: - supports-color @@ -852,6 +877,14 @@ packages: color-convert: 2.0.1 dev: true + /anymatch/3.1.2: + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + /argparse/1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -904,6 +937,11 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + /boxen/3.2.0: resolution: {integrity: sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==} engines: {node: '>=6'} @@ -1031,6 +1069,21 @@ packages: is-regex: 1.1.4 dev: true + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /ci-info/2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: true @@ -2116,6 +2169,13 @@ packages: resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} dev: true + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + /is-buffer/2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} @@ -2586,6 +2646,11 @@ packages: validate-npm-package-license: 3.0.4 dev: true + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + /normalize-url/4.5.1: resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} engines: {node: '>=8'} @@ -2936,6 +3001,11 @@ packages: engines: {node: '>=6'} dev: true + /quasar/2.6.6: + resolution: {integrity: sha512-rXoGZROOXVutQX14l/ys0te/NrgQ754krI0Vz52pBXdznyS+dTL6AgGpr3JMwffoxpxhQyedrL2jOAMpq+Jsgw==} + engines: {node: '>= 10.18.1', npm: '>= 6.13.4', yarn: '>= 1.21.1'} + dev: false + /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -3008,6 +3078,13 @@ packages: util-deprecate: 1.0.2 dev: true + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + /redent/2.0.0: resolution: {integrity: sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=} engines: {node: '>=4'} @@ -3131,6 +3208,14 @@ packages: suf-regex: 0.3.4 dev: true + /sass/1.32.0: + resolution: {integrity: sha512-fhyqEbMIycQA4blrz/C0pYhv2o4x2y6FYYAH0CshBw3DXh5D5wyERgxw0ptdau1orc/GhNrhF7DFN2etyOCEng==} + engines: {node: '>=8.9.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + dev: true + /seedrandom/3.0.5: resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} dev: false @@ -3728,7 +3813,7 @@ packages: vfile-message: 2.0.4 dev: true - /vite/2.9.1: + /vite/2.9.1_sass@1.32.0: resolution: {integrity: sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==} engines: {node: '>=12.2.0'} hasBin: true @@ -3748,6 +3833,7 @@ packages: postcss: 8.4.12 resolve: 1.22.0 rollup: 2.70.1 + sass: 1.32.0 optionalDependencies: fsevents: 2.3.2 dev: true diff --git a/src/App.vue b/src/App.vue index 5503121..0fdf14b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,20 +1,38 @@ diff --git a/src/main.ts b/src/main.ts index 0d9c2c5..21ec924 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,16 +1,55 @@ +/* +-------------------------------------------------- + Vue Helpers +-------------------------------------------------- +*/ import { createApp } from 'vue' -import App from './App.vue' + +import router from './router' + +/* +-------------------------------------------------- + App UI +-------------------------------------------------- +*/ +import { Quasar } from 'quasar' + +// Import icon libraries +import '@quasar/extras/roboto-font-latin-ext/roboto-font-latin-ext.css' +import '@quasar/extras/material-icons/material-icons.css' +import '@quasar/extras/fontawesome-v6/fontawesome-v6.css' + +// A few examples for animations from Animate.css: +// import @quasar/extras/animate/fadeIn.css +// import @quasar/extras/animate/fadeOut.css + +// Import Quasar css +import 'quasar/src/css/index.sass' + +/* +-------------------------------------------------- + Plugins +-------------------------------------------------- +*/ import { DraggablePlugin } from '@braks/revue-draggable' import { createAuth0 } from '@auth0/auth0-vue' -import router from './router' import 'katex/dist/katex.min.css' import 'katex/dist/contrib/auto-render.min' - +/* +-------------------------------------------------- + Components +-------------------------------------------------- +*/ +import App from './App.vue' const app = createApp(App) +app.use(Quasar, { + plugins: {}, // import Quasar plugins and add here +}) + app.use( createAuth0({ domain: 'dev-ge84r-eu.us.auth0.com', diff --git a/src/components/Home.vue b/src/pages/Login.vue similarity index 100% rename from src/components/Home.vue rename to src/pages/Login.vue diff --git a/src/components/Scratch.vue b/src/pages/Scratch.vue similarity index 91% rename from src/components/Scratch.vue rename to src/pages/Scratch.vue index 4ce0cda..d2aa3fd 100644 --- a/src/components/Scratch.vue +++ b/src/pages/Scratch.vue @@ -1,7 +1,7 @@