From 77f5bafa2fb5d296df572b565421eab2e73cd059 Mon Sep 17 00:00:00 2001 From: Marco Crapts Date: Sun, 28 May 2023 18:35:27 +0200 Subject: [PATCH] settings modal --- components.d.ts | 4 + package-lock.json | 65 +++++++++++++++ package.json | 1 + src/components/TopBar/Settings.vue | 56 ++----------- .../TopBar/Settings/AccountSettings.vue | 82 +++++++++++++++++++ .../TopBar/Settings/NotesSourceSwitcher.vue | 26 ++++++ src/components/TopBar/Settings/SignOut.vue | 33 ++++++++ src/components/ui/UIBadge.vue | 16 +++- src/components/ui/UIButton.vue | 9 +- src/components/ui/UICard.vue | 9 ++ src/components/ui/UIModal.vue | 20 ++++- tailwind.config.ts | 4 +- 12 files changed, 268 insertions(+), 57 deletions(-) create mode 100644 src/components/TopBar/Settings/AccountSettings.vue create mode 100644 src/components/TopBar/Settings/NotesSourceSwitcher.vue create mode 100644 src/components/TopBar/Settings/SignOut.vue create mode 100644 src/components/ui/UICard.vue diff --git a/components.d.ts b/components.d.ts index 11fa89e..4158abd 100644 --- a/components.d.ts +++ b/components.d.ts @@ -9,6 +9,7 @@ export {} declare module '@vue/runtime-core' { export interface GlobalComponents { + AccountSettings: typeof import('./src/components/TopBar/Settings/AccountSettings.vue')['default'] Auth: typeof import('./src/components/Auth.vue')['default'] Autocomplete: typeof import('./src/components/Note/Autocomplete.vue')['default'] Hamburger: typeof import('./src/components/TopBar/Hamburger.vue')['default'] @@ -18,6 +19,7 @@ declare module '@vue/runtime-core' { Note: typeof import('./src/components/ViewModes/Note.vue')['default'] NoteEditor: typeof import('./src/components/Note/NoteEditor.vue')['default'] NoteReferences: typeof import('./src/components/Note/NoteReferences.vue')['default'] + NotesSourceSwitcher: typeof import('./src/components/TopBar/Settings/NotesSourceSwitcher.vue')['default'] NoteToolbar: typeof import('./src/components/Note/NoteToolbar.vue')['default'] SearchBar: typeof import('./src/components/Search/SearchBar.vue')['default'] SearchResult: typeof import('./src/components/Search/SearchResult.vue')['default'] @@ -25,6 +27,7 @@ declare module '@vue/runtime-core' { SideBar: typeof import('./src/components/SideBar.vue')['default'] SideBarMenu: typeof import('./src/components/SideBar/SideBarMenu.vue')['default'] SideBarMenuItem: typeof import('./src/components/SideBar/SideBarMenuItem.vue')['default'] + SignOut: typeof import('./src/components/TopBar/Settings/SignOut.vue')['default'] SkeletonNote: typeof import('./src/components/Skeleton/SkeletonNote.vue')['default'] SkeletonSidebarItem: typeof import('./src/components/Skeleton/SkeletonSidebarItem.vue')['default'] SkeletonTopBar: typeof import('./src/components/Skeleton/SkeletonTopBar.vue')['default'] @@ -34,6 +37,7 @@ declare module '@vue/runtime-core' { UIBadge: typeof import('./src/components/ui/UIBadge.vue')['default'] UIButton: typeof import('./src/components/ui/UIButton.vue')['default'] UIButtonGroup: typeof import('./src/components/ui/UIButtonGroup.vue')['default'] + UICard: typeof import('./src/components/ui/UICard.vue')['default'] UIDropdown: typeof import('./src/components/ui/UIDropdown.vue')['default'] UIDropdownItem: typeof import('./src/components/ui/UIDropdownItem.vue')['default'] UIInputCheckbox: typeof import('./src/components/ui/UIInputCheckbox.vue')['default'] diff --git a/package-lock.json b/package-lock.json index 03e2d94..1acb557 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ }, "devDependencies": { "@rushstack/eslint-patch": "^1.2.0", + "@tailwindcss/typography": "^0.5.9", "@tsconfig/node18": "^2.0.1", "@types/crypto-js": "^4.1.1", "@types/dompurify": "^3.0.2", @@ -1990,6 +1991,34 @@ "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==", "dev": true }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.9.tgz", + "integrity": "sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==", + "dev": true, + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -8019,6 +8048,12 @@ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", @@ -13874,6 +13909,30 @@ "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==", "dev": true }, + "@tailwindcss/typography": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.9.tgz", + "integrity": "sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==", + "dev": true, + "requires": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + } + } + }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -18551,6 +18610,12 @@ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, + "lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", diff --git a/package.json b/package.json index ca847fd..1373042 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ }, "devDependencies": { "@rushstack/eslint-patch": "^1.2.0", + "@tailwindcss/typography": "^0.5.9", "@tsconfig/node18": "^2.0.1", "@types/crypto-js": "^4.1.1", "@types/dompurify": "^3.0.2", diff --git a/src/components/TopBar/Settings.vue b/src/components/TopBar/Settings.vue index c82051f..5c45c1d 100644 --- a/src/components/TopBar/Settings.vue +++ b/src/components/TopBar/Settings.vue @@ -1,61 +1,23 @@