From 23dbc1af01224a0ee10abaddfd0bcf025b02c493 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Tue, 18 Feb 2025 15:26:05 +0100 Subject: [PATCH 01/51] Add wizard for web platform --- package.json | 2 +- pnpm-lock.yaml | 18 +- .../project-[project]/overview/onboard.svelte | 1 + .../overview/platforms/+page.svelte | 5 +- .../components/NextjsFrameworkIcon.svelte | 5 + .../components/NoFrameworkIcon.svelte | 11 + .../components/NuxtFrameworkIcon.svelte | 5 + .../components/ReactFrameworkIcon.svelte | 5 + .../components/SvelteFrameworkIcon.svelte | 5 + .../components/VueFrameworkIcon.svelte | 5 + .../platforms/components/noFrameworkIcon.svg | 8 + .../components/noFrameworkIconDark.svg | 8 + .../overview/platforms/createWeb.svelte | 339 ++++++++++++++++++ 13 files changed, 406 insertions(+), 11 deletions(-) create mode 100644 src/routes/(console)/project-[project]/overview/platforms/components/NextjsFrameworkIcon.svelte create mode 100644 src/routes/(console)/project-[project]/overview/platforms/components/NoFrameworkIcon.svelte create mode 100644 src/routes/(console)/project-[project]/overview/platforms/components/NuxtFrameworkIcon.svelte create mode 100644 src/routes/(console)/project-[project]/overview/platforms/components/ReactFrameworkIcon.svelte create mode 100644 src/routes/(console)/project-[project]/overview/platforms/components/SvelteFrameworkIcon.svelte create mode 100644 src/routes/(console)/project-[project]/overview/platforms/components/VueFrameworkIcon.svelte create mode 100644 src/routes/(console)/project-[project]/overview/platforms/components/noFrameworkIcon.svg create mode 100644 src/routes/(console)/project-[project]/overview/platforms/components/noFrameworkIconDark.svg create mode 100644 src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte diff --git a/package.json b/package.json index 34ec1e812..a8bbb3cdd 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290", "@appwrite.io/pink-legacy": "^1.0.1", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290", + "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b626f518b..538914016 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,8 @@ importers: specifier: ^1.0.1 version: 1.0.1 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290 - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -221,8 +221,8 @@ packages: peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@502e72a565c4b404703cd1288f94d40273dbb639': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@502e72a565c4b404703cd1288f94d40273dbb639} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 @@ -236,8 +236,8 @@ packages: '@appwrite.io/pink-legacy@1.0.1': resolution: {integrity: sha512-e5IZx2drqSxgl2WXvmr0eLfg/WiOCzuqQE8oksD+9GoFBkcL9HWvXul5GjFni3RBAN9XFRL3nUExGk4T0H8sFw==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290} + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a} version: 1.0.0-next.85 peerDependencies: react-dom: ^18.0.0 @@ -4103,7 +4103,7 @@ snapshots: dependencies: svelte: 4.2.19 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@502e72a565c4b404703cd1288f94d40273dbb639(svelte@4.2.19)': dependencies: svelte: 4.2.19 @@ -4116,9 +4116,9 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2(svelte@4.2.19) + '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@502e72a565c4b404703cd1288f94d40273dbb639(svelte@4.2.19) '@floating-ui/dom': 1.6.13 '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19) '@melt-ui/svelte': 0.86.3(svelte@4.2.19) diff --git a/src/routes/(console)/project-[project]/overview/onboard.svelte b/src/routes/(console)/project-[project]/overview/onboard.svelte index feeb49746..a75290979 100644 --- a/src/routes/(console)/project-[project]/overview/onboard.svelte +++ b/src/routes/(console)/project-[project]/overview/onboard.svelte @@ -47,6 +47,7 @@ export let pingCount = 0; function openPlatformWizard(type: number, platform?: Models.Platform) { + console.log(platform); if (platform) { continuePlatform(type, platform.name, platform.key, platform.type); } else { diff --git a/src/routes/(console)/project-[project]/overview/platforms/+page.svelte b/src/routes/(console)/project-[project]/overview/platforms/+page.svelte index d6a951bc1..c161ee49b 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/+page.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/+page.svelte @@ -6,6 +6,7 @@ import CreateApple from './createApple.svelte'; import CreateFlutter from './createFlutter.svelte'; import CreateReactNative from './createReactNative.svelte'; + import CreateWeb from './createWeb.svelte'; import { createPlatform, versions } from './wizard/store'; export enum Platform { @@ -36,11 +37,13 @@ }); wizard.start(platforms[platform], null, 1, { isPlatformCreated: true, - platform: type + platform: type, + key: key }); } const platforms = { + [Platform.Web]: CreateWeb, [Platform.Flutter]: CreateFlutter, [Platform.Android]: CreateAndroid, [Platform.Apple]: CreateApple, diff --git a/src/routes/(console)/project-[project]/overview/platforms/components/NextjsFrameworkIcon.svelte b/src/routes/(console)/project-[project]/overview/platforms/components/NextjsFrameworkIcon.svelte new file mode 100644 index 000000000..43655f0f5 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/platforms/components/NextjsFrameworkIcon.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/(console)/project-[project]/overview/platforms/components/NoFrameworkIcon.svelte b/src/routes/(console)/project-[project]/overview/platforms/components/NoFrameworkIcon.svelte new file mode 100644 index 000000000..2daf0fbd9 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/platforms/components/NoFrameworkIcon.svelte @@ -0,0 +1,11 @@ + + +{#if $app.themeInUse === 'light'} + +{:else} + +{/if} diff --git a/src/routes/(console)/project-[project]/overview/platforms/components/NuxtFrameworkIcon.svelte b/src/routes/(console)/project-[project]/overview/platforms/components/NuxtFrameworkIcon.svelte new file mode 100644 index 000000000..eb9be4fed --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/platforms/components/NuxtFrameworkIcon.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/(console)/project-[project]/overview/platforms/components/ReactFrameworkIcon.svelte b/src/routes/(console)/project-[project]/overview/platforms/components/ReactFrameworkIcon.svelte new file mode 100644 index 000000000..ea37c9534 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/platforms/components/ReactFrameworkIcon.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/(console)/project-[project]/overview/platforms/components/SvelteFrameworkIcon.svelte b/src/routes/(console)/project-[project]/overview/platforms/components/SvelteFrameworkIcon.svelte new file mode 100644 index 000000000..0a2d0b3de --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/platforms/components/SvelteFrameworkIcon.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/(console)/project-[project]/overview/platforms/components/VueFrameworkIcon.svelte b/src/routes/(console)/project-[project]/overview/platforms/components/VueFrameworkIcon.svelte new file mode 100644 index 000000000..3a4469231 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/platforms/components/VueFrameworkIcon.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/(console)/project-[project]/overview/platforms/components/noFrameworkIcon.svg b/src/routes/(console)/project-[project]/overview/platforms/components/noFrameworkIcon.svg new file mode 100644 index 000000000..20ab4b4f7 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/platforms/components/noFrameworkIcon.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/routes/(console)/project-[project]/overview/platforms/components/noFrameworkIconDark.svg b/src/routes/(console)/project-[project]/overview/platforms/components/noFrameworkIconDark.svg new file mode 100644 index 000000000..ae29faf6e --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/platforms/components/noFrameworkIconDark.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte new file mode 100644 index 000000000..2438fa2d5 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte @@ -0,0 +1,339 @@ + + + +
+ + + {#if !isPlatformCreated || isChangingFramework} +
+ +
+ {#each frameworks as framework} + + {/each} +
+ + + {#if isChangingFramework} + + {:else} + + {/if} + +
+
+ {:else} + + + + {selectedFramework.label} + + { + isChangingFramework = true; + }}>Change + + {/if} + + + {#if isPlatformCreated && !isChangingFramework} +
+ + + 1. Clone the starter kit from GitHub using the terminal or VSCode. + + + +
+ +
+ + 2. Rename into and update the values. + + +
+ +
+ + 3. Install project dependencies + + +
+ +
+ + 3. Run the app, then click the button to verify the setup. +
+
+ {/if} +
+ + + + + + + + + + + + + {#if isPlatformCreated} + + {#if !connectionSuccessful} + Waiting for connection... + {:else} + +
+ Congratulations! + + You connected your app successfully. +
+ {/if} +
+ {/if} +
+
+
+ + + {#if isPlatformCreated} + + {/if} + +
+ + From 3f2b529caa187a23028653b1957e9c851fb17f3e Mon Sep 17 00:00:00 2001 From: ernstmul Date: Tue, 18 Feb 2025 15:29:44 +0100 Subject: [PATCH 02/51] Add web platform back into dropdown --- .../project-[project]/overview/platforms/+page.svelte | 3 +++ .../project-[project]/overview/platforms/action.svelte | 1 + 2 files changed, 4 insertions(+) diff --git a/src/routes/(console)/project-[project]/overview/platforms/+page.svelte b/src/routes/(console)/project-[project]/overview/platforms/+page.svelte index c161ee49b..b35bbf617 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/+page.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/+page.svelte @@ -151,6 +151,9 @@ {/if} + addPlatform(Platform.Web)}> + Web + addPlatform(Platform.Flutter)}> Flutter diff --git a/src/routes/(console)/project-[project]/overview/platforms/action.svelte b/src/routes/(console)/project-[project]/overview/platforms/action.svelte index 7e2b723ce..17dca51eb 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/action.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/action.svelte @@ -17,6 +17,7 @@ Add platform + addPlatform(Platform.Web)}>Web app addPlatform(Platform.Flutter)}>Flutter app addPlatform(Platform.Android)}>Android app addPlatform(Platform.Apple)}>Apple app From 839a9c0e205ea7052b1e3420ce942ad4e00c054a Mon Sep 17 00:00:00 2001 From: ernstmul Date: Wed, 19 Feb 2025 09:29:21 +0100 Subject: [PATCH 03/51] Remove console.log --- src/routes/(console)/project-[project]/overview/onboard.svelte | 1 - 1 file changed, 1 deletion(-) diff --git a/src/routes/(console)/project-[project]/overview/onboard.svelte b/src/routes/(console)/project-[project]/overview/onboard.svelte index a75290979..feeb49746 100644 --- a/src/routes/(console)/project-[project]/overview/onboard.svelte +++ b/src/routes/(console)/project-[project]/overview/onboard.svelte @@ -47,7 +47,6 @@ export let pingCount = 0; function openPlatformWizard(type: number, platform?: Models.Platform) { - console.log(platform); if (platform) { continuePlatform(type, platform.name, platform.key, platform.type); } else { From 6d5a09b4f4ebddd33cefa7912cec46f10a326d2a Mon Sep 17 00:00:00 2001 From: ernstmul Date: Wed, 19 Feb 2025 09:32:09 +0100 Subject: [PATCH 04/51] Use key instead of adding the entire clone code line per framework --- .../overview/platforms/createWeb.svelte | 26 +++++++------------ 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte index 2438fa2d5..d2768fa59 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte @@ -55,7 +55,6 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" label: string; icon: ComponentType; smallIcon: ComponentType; - gitCloneCode: string; }; export let platform: PlatformType = PlatformType.Flutterandroid; export let selectedFrameworkKey: string | undefined = key ? key : undefined; @@ -65,41 +64,31 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" key: 'svelte', label: 'Svelte', icon: SvelteFrameworkIcon, - smallIcon: IconSvelte, - gitCloneCode: - '\ngit clone https://github.com/appwrite/starter-for-svelte\ncd starter-for-svelte' + smallIcon: IconSvelte }, { key: 'react', label: 'React', icon: ReactFrameworkIcon, - smallIcon: IconReact, - gitCloneCode: - '\ngit clone https://github.com/appwrite/starter-for-react\ncd starter-for-react' + smallIcon: IconReact }, { key: 'nuxt', label: 'Nuxt', icon: NuxtFrameworkIcon, - smallIcon: IconNuxt, - gitCloneCode: - '\ngit clone https://github.com/appwrite/starter-for-nuxt\ncd starter-for-nuxt' + smallIcon: IconNuxt }, { key: 'nextjs', label: 'Next.js', icon: NextjsFrameworkIcon, - smallIcon: NextjsFrameworkIcon, - gitCloneCode: - '\ngit clone https://github.com/appwrite/starter-for-nextjs\ncd starter-for-nextjs' + smallIcon: NextjsFrameworkIcon }, { key: 'vue', label: 'Vue', icon: VueFrameworkIcon, - smallIcon: IconVue, - gitCloneCode: - '\ngit clone https://github.com/appwrite/starter-for-vue\ncd starter-for-vue' + smallIcon: IconVue } ]; @@ -236,7 +225,10 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}"
- +
Date: Wed, 19 Feb 2025 09:48:22 +0100 Subject: [PATCH 05/51] Update button to use new pink V2 button --- .../overview/platforms/createWeb.svelte | 40 ++++++------------- 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte index d2768fa59..2e9e02929 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte @@ -11,9 +11,9 @@ Fieldset, InlineCode, Card, - Button as ButtonV2 + Button } from '@appwrite.io/pink-svelte'; - import { Button, Form } from '$lib/elements/forms'; + import { Form } from '$lib/elements/forms'; import { IconVue, IconAppwrite, @@ -170,27 +170,15 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" {#if isChangingFramework} - + Change framework instructions {:else} - + Create platform {/if} @@ -206,12 +194,12 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" {selectedFramework.label} - { isChangingFramework = true; - }}>Change + }}>Change {/if} @@ -300,14 +288,10 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" {#if isPlatformCreated} - + Go to dashboard {/if} From 5815207b1d920df8b335ef8fc32fa2e76643e0c8 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Wed, 19 Feb 2025 10:16:09 +0100 Subject: [PATCH 06/51] Add open link --- .../overview/platforms/createWeb.svelte | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte index 2e9e02929..4072d26f7 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte @@ -19,7 +19,9 @@ IconAppwrite, IconSvelte, IconReact, - IconNuxt + IconNuxt, + IconInfo, + IconExternalLink } from '@appwrite.io/pink-icons-svelte'; import { page } from '$app/stores'; import { type ComponentType, onMount } from 'svelte'; @@ -55,6 +57,7 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" label: string; icon: ComponentType; smallIcon: ComponentType; + portNumber: number; }; export let platform: PlatformType = PlatformType.Flutterandroid; export let selectedFrameworkKey: string | undefined = key ? key : undefined; @@ -64,31 +67,36 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" key: 'svelte', label: 'Svelte', icon: SvelteFrameworkIcon, - smallIcon: IconSvelte + smallIcon: IconSvelte, + portNumber: 5173 }, { key: 'react', label: 'React', icon: ReactFrameworkIcon, - smallIcon: IconReact + smallIcon: IconReact, + portNumber: 3000 }, { key: 'nuxt', label: 'Nuxt', icon: NuxtFrameworkIcon, - smallIcon: IconNuxt + smallIcon: IconNuxt, + portNumber: 3000 }, { key: 'nextjs', label: 'Next.js', icon: NextjsFrameworkIcon, - smallIcon: NextjsFrameworkIcon + smallIcon: NextjsFrameworkIcon, + portNumber: 3000 }, { key: 'vue', label: 'Vue', icon: VueFrameworkIcon, - smallIcon: IconVue + smallIcon: IconVue, + portNumber: 5173 } ]; @@ -243,6 +251,27 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" code="Send a ping" /> button to verify the setup. + + + Demo app runs on http://localhost:{selectedFramework.portNumber} + Open {/if} From e5a1baccf9b5e978e33726c9fb89abba03407a99 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Wed, 19 Feb 2025 11:09:34 +0100 Subject: [PATCH 07/51] Bump pink for fixes in Code and Dialog responsiveness --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index a8bbb3cdd..df7ad50f5 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290", "@appwrite.io/pink-legacy": "^1.0.1", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a", + "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 538914016..055d78320 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,8 @@ importers: specifier: ^1.0.1 version: 1.0.1 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -221,8 +221,8 @@ packages: peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@502e72a565c4b404703cd1288f94d40273dbb639': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@502e72a565c4b404703cd1288f94d40273dbb639} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f24ff0b9bcff5210777bdc95ae98de430c2056cd': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f24ff0b9bcff5210777bdc95ae98de430c2056cd} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 @@ -236,8 +236,8 @@ packages: '@appwrite.io/pink-legacy@1.0.1': resolution: {integrity: sha512-e5IZx2drqSxgl2WXvmr0eLfg/WiOCzuqQE8oksD+9GoFBkcL9HWvXul5GjFni3RBAN9XFRL3nUExGk4T0H8sFw==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a} + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b} version: 1.0.0-next.85 peerDependencies: react-dom: ^18.0.0 @@ -4103,7 +4103,7 @@ snapshots: dependencies: svelte: 4.2.19 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@502e72a565c4b404703cd1288f94d40273dbb639(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f24ff0b9bcff5210777bdc95ae98de430c2056cd(svelte@4.2.19)': dependencies: svelte: 4.2.19 @@ -4116,9 +4116,9 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@502e72a(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@502e72a565c4b404703cd1288f94d40273dbb639(svelte@4.2.19) + '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f24ff0b9bcff5210777bdc95ae98de430c2056cd(svelte@4.2.19) '@floating-ui/dom': 1.6.13 '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19) '@melt-ui/svelte': 0.86.3(svelte@4.2.19) From d3e9b472c89b9bb96c8d0d8716fbe63ed1865ab2 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Wed, 19 Feb 2025 11:15:08 +0100 Subject: [PATCH 08/51] Fix width of feedback button --- src/lib/components/sidebar.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/sidebar.svelte b/src/lib/components/sidebar.svelte index 559969663..c8268bac3 100644 --- a/src/lib/components/sidebar.svelte +++ b/src/lib/components/sidebar.svelte @@ -252,7 +252,7 @@ variant="secondary" size="s" on:click={() => toggleFeedback()} - >Feedback + >Feedback From 6f46d758682bb7db72514b03c66481efc75088cc Mon Sep 17 00:00:00 2001 From: ernstmul Date: Wed, 19 Feb 2025 11:17:06 +0100 Subject: [PATCH 09/51] Also keep selected state on api keys tab --- src/lib/components/sidebar.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/sidebar.svelte b/src/lib/components/sidebar.svelte index c8268bac3..0f1b3ecca 100644 --- a/src/lib/components/sidebar.svelte +++ b/src/lib/components/sidebar.svelte @@ -136,7 +136,7 @@ { sideBarIsOpen = false; }} From 4e6a1047e4b03624839df0cbb3eef6f41fa61b19 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Wed, 19 Feb 2025 11:34:05 +0100 Subject: [PATCH 10/51] Show footer in view on organization overview --- src/lib/layout/shell.svelte | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/lib/layout/shell.svelte b/src/lib/layout/shell.svelte index 899ebf0ae..f6f4a201f 100644 --- a/src/lib/layout/shell.svelte +++ b/src/lib/layout/shell.svelte @@ -165,13 +165,10 @@ {/if} - {#if showFooter && showSideNavigation} + {#if showFooter} {/if} - {#if showFooter && !showSideNavigation} - - {/if} {/if} @@ -114,7 +114,7 @@ {/if} - + {#if deployment?.buildTime} .card-grid { display: grid; - grid-template-columns: 45% 55%; + grid-template-columns: 45% auto; // justify-content: center; align-items: center; gap: var(--gap-xl); diff --git a/src/routes/(console)/project-[project]/sites/grid.svelte b/src/routes/(console)/project-[project]/sites/grid.svelte index ce3dbfc75..8c8a1b90f 100644 --- a/src/routes/(console)/project-[project]/sites/grid.svelte +++ b/src/routes/(console)/project-[project]/sites/grid.svelte @@ -22,7 +22,7 @@ let selectedSite: Models.Site = null; - + {#each siteList.sites as site} - + {#if data?.deployment && data.deployment.status === 'ready'} @@ -37,7 +37,7 @@ >Instant rollback - {:else if data.deployment && data.deployment.status === 'building'} + {:else} - + --> diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/+page.ts b/src/routes/(console)/project-[project]/sites/site-[site]/+page.ts index b332c7dc6..cc5279589 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/+page.ts +++ b/src/routes/(console)/project-[project]/sites/site-[site]/+page.ts @@ -8,7 +8,7 @@ export const load = async ({ params, depends, parent }) => { const { site, proxyRuleList } = await parent(); const [deploymentList, prodReadyDeployments] = await Promise.all([ - sdk.forProject.sites.listDeployments(params.site, [Query.limit(5), Query.orderDesc('')]), + sdk.forProject.sites.listDeployments(params.site, [Query.limit(4), Query.orderDesc('')]), sdk.forProject.sites.listDeployments(params.site, [ Query.limit(1) // Query.equal('status', 'ready') diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deploymentsOverview.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deploymentsOverview.svelte index cb323a647..e09119271 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deploymentsOverview.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deploymentsOverview.svelte @@ -2,6 +2,7 @@ import { ActionMenu, Badge, + Empty, Icon, Layout, Popover, @@ -26,6 +27,7 @@ import { Card } from '$lib/components'; import ActivateDeploymentModal from '../activateDeploymentModal.svelte'; import CancelDeploymentModal from './deployments/cancelDeploymentModal.svelte'; + import { capitalize } from '$lib/helpers/string'; export let site: Models.Site; export let activeDeployment: Models.Deployment; @@ -37,58 +39,60 @@ let selectedDeployment: Models.Deployment = null; -{#if deploymentList.total} - - - - Deployments - - + + + + + Deployments + - {#if deploymentList?.total} - - - Deployment ID - Status - Source - Updated - - - {#each deploymentList?.deployments as deployment} - - - {deployment.$id} - - - {@const status = deployment.status} - {#if activeDeployment?.$id === deployment?.$id} - - {:else} - - {/if} - + + + {#if deploymentList?.total} + + + Deployment ID + Status + Source + Updated + + + {#each deploymentList?.deployments as deployment} + + + {deployment.$id} + + + {@const status = deployment.status} + {#if activeDeployment?.$id === deployment?.$id} + + {:else} + + {/if} + - - - - - - - + + + + + + + + - - - {#if i < 2 && i < proxyRuleList.rules.length - 1} - + {#if proxyRuleList?.rules?.length} + + {/if} {/if} - {/each} + {#each proxyRuleList?.rules?.slice(0, 3) as rule, i} + + + + + + {rule.domain} + + + + + + Added {timeFromNow(rule.$createdAt)} + + + + + {#if i < 2 && i < proxyRuleList.rules.length - 1} + + {/if} + {/each} + diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/empty-deployment-dark.svg b/src/routes/(console)/project-[project]/sites/site-[site]/empty-deployment-dark.svg index 997bad861..813d9fdae 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/empty-deployment-dark.svg +++ b/src/routes/(console)/project-[project]/sites/site-[site]/empty-deployment-dark.svg @@ -1,92 +1,92 @@ - - - - + + + + - - + + - - + + - - + + -
- - +
+ + - - + + - - - + + + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + diff --git a/src/themes/dark-cloud.json b/src/themes/dark-cloud.json index 248178d8a..3cf55bc71 100644 --- a/src/themes/dark-cloud.json +++ b/src/themes/dark-cloud.json @@ -184,6 +184,7 @@ "gap-l": "var(--base-16)", "gap-xl": "var(--base-20)", "gap-xxl": "var(--base-32)", + "gap-xxxl": "var(--base-40)", "border-width-m": "1.2000000476837158px", "border-width-l": "2px", "border-width-xl": "3px", diff --git a/src/themes/dark.json b/src/themes/dark.json index e9c21f808..589c49c29 100644 --- a/src/themes/dark.json +++ b/src/themes/dark.json @@ -185,6 +185,7 @@ "gap-l": "var(--base-16)", "gap-xl": "var(--base-20)", "gap-xxl": "var(--base-32)", + "gap-xxxl": "var(--base-40)", "border-width-m": "1.2000000476837158px", "border-width-l": "2px", "border-width-xl": "3px", diff --git a/src/themes/light-cloud.json b/src/themes/light-cloud.json index e7219a7bd..e8c714f98 100644 --- a/src/themes/light-cloud.json +++ b/src/themes/light-cloud.json @@ -184,6 +184,7 @@ "gap-l": "var(--base-16)", "gap-xl": "var(--base-20)", "gap-xxl": "var(--base-32)", + "gap-xxxl": "var(--base-40)", "border-width-m": "1.2000000476837158px", "border-width-l": "2px", "border-width-xl": "3px", diff --git a/src/themes/light.json b/src/themes/light.json index 65d4883dc..659c106cb 100644 --- a/src/themes/light.json +++ b/src/themes/light.json @@ -185,6 +185,7 @@ "gap-l": "var(--base-16)", "gap-xl": "var(--base-20)", "gap-xxl": "var(--base-32)", + "gap-xxxl": "var(--base-40)", "border-width-m": "1.2000000476837158px", "border-width-l": "2px", "border-width-xl": "3px", From ade914da747d06c7bf1b3dc635fb70f0da86b775 Mon Sep 17 00:00:00 2001 From: Arman Date: Wed, 19 Feb 2025 12:47:39 +0100 Subject: [PATCH 12/51] design review deployment screen --- package.json | 2 +- pnpm-lock.yaml | 24 +-- src/lib/components/usageCard.svelte | 11 +- src/lib/elements/selectSearchCheckbox.svelte | 25 +-- .../sites/site-[site]/+page.svelte | 1 + .../site-[site]/deployments/+page.svelte | 12 +- .../deployments/deploymentMetrics.svelte | 14 +- .../deployments/quickFilters.svelte | 160 +++++++++--------- .../sites/site-[site]/deployments/store.ts | 2 +- .../site-[site]/deployments/table.svelte | 138 ++++++++------- .../site-[site]/deploymentsOverview.svelte | 10 +- .../site-[site]/empty-deployment-dark.svg | 96 +++++------ .../site-[site]/empty-deployment-light.svg | 92 +++++----- .../sites/site-[site]/header.svelte | 3 +- .../sites/site-[site]/store.ts | 2 +- 15 files changed, 300 insertions(+), 292 deletions(-) diff --git a/package.json b/package.json index 6a9fd180b..3ee5d8b99 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290", "@appwrite.io/pink-legacy": "^1.0.1", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b", + "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5a1de694f..fa1738cb1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,8 @@ importers: specifier: ^1.0.1 version: 1.0.1 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -215,14 +215,14 @@ packages: resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53} version: 1.2.1 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f24ff0b9bcff5210777bdc95ae98de430c2056cd': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f24ff0b9bcff5210777bdc95ae98de430c2056cd} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 @@ -236,8 +236,8 @@ packages: '@appwrite.io/pink-legacy@1.0.1': resolution: {integrity: sha512-e5IZx2drqSxgl2WXvmr0eLfg/WiOCzuqQE8oksD+9GoFBkcL9HWvXul5GjFni3RBAN9XFRL3nUExGk4T0H8sFw==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b} + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d} version: 1.0.0-next.85 peerDependencies: react-dom: ^18.0.0 @@ -4099,11 +4099,11 @@ snapshots: '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53': {} - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962(svelte@4.2.19)': dependencies: svelte: 4.2.19 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f24ff0b9bcff5210777bdc95ae98de430c2056cd(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290(svelte@4.2.19)': dependencies: svelte: 4.2.19 @@ -4116,9 +4116,9 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f24ff0b(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f24ff0b9bcff5210777bdc95ae98de430c2056cd(svelte@4.2.19) + '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962(svelte@4.2.19) '@floating-ui/dom': 1.6.13 '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19) '@melt-ui/svelte': 0.86.3(svelte@4.2.19) diff --git a/src/lib/components/usageCard.svelte b/src/lib/components/usageCard.svelte index befb5c1f6..2d4d4a0b7 100644 --- a/src/lib/components/usageCard.svelte +++ b/src/lib/components/usageCard.svelte @@ -7,15 +7,16 @@ - - + + {description} - + {#if value !== null && value !== undefined} - {value} + {value} {:else} - + {/if} diff --git a/src/lib/elements/selectSearchCheckbox.svelte b/src/lib/elements/selectSearchCheckbox.svelte index aa3354096..f397f86ec 100644 --- a/src/lib/elements/selectSearchCheckbox.svelte +++ b/src/lib/elements/selectSearchCheckbox.svelte @@ -1,16 +1,21 @@ -
  • - -
  • +
    + diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/+page.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/+page.svelte index 2e42dfdb6..582454b82 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/+page.svelte @@ -52,6 +52,7 @@ alignItems="center" justifyContent="center" slot="actions"> + diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte index 12a17f960..1d6ff03bd 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte @@ -35,17 +35,17 @@ { id: 'avgTime', value: null, - description: 'Average builds time' + description: 'Avg. builds time' }, { id: 'success', value: null, - description: 'Successful deployments' + description: 'Successful' }, { id: 'failed', value: null, - description: 'Failed deployments' + description: 'Failed ' } ]; onMount(async () => { @@ -62,7 +62,7 @@ try { const usage = await sdk.forProject.sites.getUsage($page.params.site, range); metrics = metrics.map((metric) => { - metric.value = usage[metric.id] ?? 'n/a'; + metric.value = usage[metric.id] ?? '-'; return metric; }); metrics = metrics; @@ -76,7 +76,7 @@ - + Metrics for {range !== SiteUsageRange.TwentyFourHours ? `${toLocaleDate( @@ -95,9 +95,9 @@ on:change={fetchUsage} /> - + {#each metrics as metric} {/each} - +
    diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte index efbbe4f06..f9efb05bd 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte @@ -1,7 +1,6 @@ {#each [typeFilter] as filter} - - (filter.show = !filter.show)} - event="apply_quick_filter" - eventData={{ source: 'function_deployments', column: filter.title }}> + + + {#key filter.tag} {filter?.tag ?? filter.title} {/key} - - - - - {#each filter.options as option (option.value + option.checked)} - { - option.checked = !option.checked; - addFilterAndApply( - filter.id, - filter.title, - filter.operator, - filter?.array ? null : option.checked ? option.value : null, - filter?.array - ? (filter.options - .filter((opt) => opt.checked) - .map((opt) => opt.value) ?? []) - : [] - ); - }}> - {option.label} - - {/each} - {#if filter.options.some((option) => option.checked)} - { - filter.show = false; - filter.tag = null; - addFilterAndApply(filter.id, filter.title, filter.operator, null, []); - }}> - Clear selection - - {/if} + + + + + {#each filter.options as option (option.value + option.checked)} + { + option.checked = !option.checked; + addFilterAndApply( + filter.id, + filter.title, + filter.operator, + filter?.array ? null : option.checked ? option.value : null, + filter?.array + ? (filter.options + .filter((opt) => opt.checked) + .map((opt) => opt.value) ?? []) + : [] + ); + }}> + {option.label} + + {/each} + {#if filter.options.some((option) => option.checked)} + { + filter.tag = null; + addFilterAndApply(filter.id, filter.title, filter.operator, null, []); + toggle(e); + }}> + Clear selection + + {/if} + - + {/each} {#each [sizeFilter] as filter} - - (filter.show = !filter.show)} - event="apply_quick_filter" - eventData={{ source: 'function_deployments', column: filter.title }}> + + + + {#key filter.tag} {filter?.tag ?? filter.title} {/key} - - - - - {#each filter.options as option (option.value + option.checked)} - { - filter.show = false; - addFilterAndApply( - filter.id, - filter.title, - filter.operator, - filter?.array ? null : option.value, - [] - ); - }}> - {option.label} - - {/each} - {#if filter?.tag} - { - filter.show = false; - filter.tag = null; - addFilterAndApply(filter.id, filter.title, filter.operator, null, []); - }}> - Clear selection - - {/if} + + + + + {#each filter.options as option (option.value + option.checked)} + { + addFilterAndApply( + filter.id, + filter.title, + filter.operator, + filter?.array ? null : option.value, + [] + ); + toggle(e); + }}> + {option.label} + + {/each} + {#if filter?.tag} + { + filter.show = false; + filter.tag = null; + addFilterAndApply(filter.id, filter.title, filter.operator, null, []); + }}> + Clear selection + + {/if} + - + {/each} diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts index 01ce17465..a7915b8c5 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts @@ -21,7 +21,7 @@ export const columns = writable([ title: 'Domains', type: 'string', show: true, - width: 15, + width: 150, array: true, format: 'string', filter: false diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte index 8dc45f6df..fad7728e1 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte @@ -12,8 +12,9 @@ import RedeployModal from '../../redeployModal.svelte'; import Cancel from './cancelDeploymentModal.svelte'; import { base } from '$app/paths'; - import { ActionMenu, Popover, Status, Table } from '@appwrite.io/pink-svelte'; + import { ActionMenu, Icon, Layout, Popover, Status, Table } from '@appwrite.io/pink-svelte'; import { + IconDotsHorizontal, IconLightningBolt, IconRefresh, IconTerminal, @@ -24,6 +25,7 @@ import ActivateDeploymentModal from '../../activateDeploymentModal.svelte'; import { deploymentStatusConverter } from '../store'; import { capitalize } from '$lib/helpers/string'; + import { Button } from '$lib/elements/forms'; export let data: PageData; @@ -61,7 +63,7 @@ {@const status = deployment.status} {#if data?.activeDeployment?.$id === deployment?.$id} - + {:else} {:else if column.id === 'domains'} -
    +
    {deployment.domain} @@ -104,76 +106,82 @@ {/if} {/each} - - - - - { - e.preventDefault(); - selectedDeployment = deployment; - showRedeploy = true; - toggle(e); - }}> - Redeploy - - { - e.preventDefault(); - toggle(e); - }}> - View details - - {#if deployment?.status === 'ready' && deployment?.$id !== data.site.deploymentId} + + + + + { e.preventDefault(); selectedDeployment = deployment; - showActivate = true; + showRedeploy = true; toggle(e); }}> - Activate + Redeploy - {/if} + { + e.preventDefault(); + toggle(e); + }}> + View details + + {#if deployment?.status === 'ready' && deployment?.$id !== data.site.deploymentId} + { + e.preventDefault(); + selectedDeployment = deployment; + showActivate = true; + toggle(e); + }}> + Activate + + {/if} - {#if deployment?.status === 'processing' || deployment?.status === 'building' || deployment.status === 'waiting'} - { - e.preventDefault(); - selectedDeployment = deployment; - showCancel = true; - toggle(e); - }}> - Cancel - - {/if} - {#if deployment.status !== 'building' && deployment.status !== 'processing' && deployment?.status !== 'waiting'} - { - e.preventDefault(); - selectedDeployment = deployment; - showDelete = true; - toggle(e); - }}> - Delete - - {/if} - - - + {#if deployment?.status === 'processing' || deployment?.status === 'building' || deployment.status === 'waiting'} + { + e.preventDefault(); + selectedDeployment = deployment; + showCancel = true; + toggle(e); + }}> + Cancel + + {/if} + {#if deployment.status !== 'building' && deployment.status !== 'processing' && deployment?.status !== 'waiting'} + { + e.preventDefault(); + selectedDeployment = deployment; + showDelete = true; + toggle(e); + }}> + Delete + + {/if} + + + + {/each} diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deploymentsOverview.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deploymentsOverview.svelte index e09119271..fdba19de6 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deploymentsOverview.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deploymentsOverview.svelte @@ -28,6 +28,7 @@ import ActivateDeploymentModal from '../activateDeploymentModal.svelte'; import CancelDeploymentModal from './deployments/cancelDeploymentModal.svelte'; import { capitalize } from '$lib/helpers/string'; + import { deploymentStatusConverter } from './store'; export let site: Models.Site; export let activeDeployment: Models.Deployment; @@ -76,11 +77,7 @@ {:else} {/if} @@ -102,7 +99,8 @@ e.preventDefault(); toggle(e); }}> - + + - - - - + + + + + - - + + - - + + - - + + -
    - - +
    + + - - - + + + - - - + + + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - - + +
    diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/empty-deployment-light.svg b/src/routes/(console)/project-[project]/sites/site-[site]/empty-deployment-light.svg index 997bad861..60330bcaf 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/empty-deployment-light.svg +++ b/src/routes/(console)/project-[project]/sites/site-[site]/empty-deployment-light.svg @@ -1,93 +1,93 @@ - - - - - + + + + + - - + + - - + + - - + + -
    - - +
    + + - - - + + + - - - + + + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - - + +
    diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/header.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/header.svelte index 9d7bcf309..664ad1314 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/header.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/header.svelte @@ -1,7 +1,7 @@

    - Are you sure you want to redeploy {site.name}? Redeploying may affect your production - code. + Are you sure you want to redeploy {site.name}? It may affect your production code.

    - + diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte index fad7728e1..4fc263b15 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte @@ -2,7 +2,7 @@ import { Id, Trim } from '$lib/components'; import type { PageData } from './$types'; import { type Models } from '@appwrite.io/console'; - import { calculateTime } from '$lib/helpers/timeConversion'; + import { formatTimeDetailed } from '$lib/helpers/timeConversion'; import DeploymentSource from '../../(components)/deploymentSource.svelte'; import DeploymentCreatedBy from '../../(components)/deploymentCreatedBy.svelte'; import { timer } from '$lib/actions/timer'; @@ -91,7 +91,7 @@ {#if ['processing', 'building'].includes(deployment.status)} {:else} - {calculateTime(deployment.buildTime)} + {formatTimeDetailed(deployment.buildTime)} {/if} {:else if column.id === 'size'} From 87026cc8e2c5843aa6e5c5874bb7a8cce5797df3 Mon Sep 17 00:00:00 2001 From: Arman Date: Wed, 19 Feb 2025 14:01:03 +0100 Subject: [PATCH 14/51] fix: backend changes --- package.json | 2 +- pnpm-lock.yaml | 10 +- src/lib/elements/selectSearchCheckbox.svelte | 8 +- .../sites/create-site/domain.svelte | 2 +- .../sites/create-site/finish/+page.svelte | 159 +++++++++--------- .../repository-[repository]/+page.svelte | 11 +- .../template-[template]/+page.svelte | 3 +- 7 files changed, 92 insertions(+), 103 deletions(-) diff --git a/package.json b/package.json index 3ee5d8b99..2aa98a665 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "e2e:ui": "playwright test tests/e2e --ui" }, "dependencies": { - "@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53", + "@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864", "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290", "@appwrite.io/pink-legacy": "^1.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fa1738cb1..abd3b269b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@appwrite.io/console': - specifier: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53 - version: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53 + specifier: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864 + version: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864 '@appwrite.io/pink-icons': specifier: 0.25.0 version: 0.25.0 @@ -211,8 +211,8 @@ packages: '@analytics/type-utils@0.6.2': resolution: {integrity: sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==} - '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53': - resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53} + '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864': + resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864} version: 1.2.1 '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962': @@ -4097,7 +4097,7 @@ snapshots: '@analytics/type-utils@0.6.2': {} - '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53': {} + '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864': {} '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962(svelte@4.2.19)': dependencies: diff --git a/src/lib/elements/selectSearchCheckbox.svelte b/src/lib/elements/selectSearchCheckbox.svelte index f397f86ec..e54a4fd33 100644 --- a/src/lib/elements/selectSearchCheckbox.svelte +++ b/src/lib/elements/selectSearchCheckbox.svelte @@ -9,13 +9,7 @@ - + diff --git a/src/routes/(console)/project-[project]/sites/create-site/domain.svelte b/src/routes/(console)/project-[project]/sites/create-site/domain.svelte index e863794b5..5888dff06 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/domain.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/domain.svelte @@ -16,7 +16,7 @@ try { await sdk.forConsole.console.getResource( `${value}.${$consoleVariables._APP_DOMAIN_SITES}`, - Type.Rules + 'rules' as unknown as Type //TODO: fix after Matej fixes backend ); domainIsValid = true; diff --git a/src/routes/(console)/project-[project]/sites/create-site/finish/+page.svelte b/src/routes/(console)/project-[project]/sites/create-site/finish/+page.svelte index 6ac2f5ba2..a085fd418 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/finish/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/finish/+page.svelte @@ -34,9 +34,8 @@
    - - - + + @@ -58,105 +57,101 @@
    - {#if !data.deployment.providerCommitHash} - - {#if !data.site.installationId && !data.site.providerRepositoryId} - (showConnectRepositry = true)}> - - - - Connect to repository - - - - - Connect to a new repository or an existing one. - - - - {/if} + + {#if !data.site.installationId && !data.site.providerRepositoryId} - - - Add domain - - - - Connect to an existing domain or purchase a new one. - - - - (showInviteCollaborator = true)}> + on:click={() => (showConnectRepositry = true)}> - Add collaborators + + Connect to repository + - Share your progress and start collaborating with your - team. + Connect to a new repository or an existing one. - (showOpenOnMobile = true)}> - - - Open on mobile - - - - Open the preview of your site on any mobile or tablet - device. - + {/if} + + + + Add domain + - - - {/if} + + Connect to an existing domain or purchase a new one. + + + + (showInviteCollaborator = true)}> + + + Add collaborators + + + + Share your progress and start collaborating with your team. + + + + (showOpenOnMobile = true)}> + + + Open on mobile + + + + Open the preview of your site on any mobile or tablet + device. + + + +
    diff --git a/src/routes/(console)/project-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte b/src/routes/(console)/project-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte index d22b0c1c8..2ccb8c0f9 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte @@ -15,7 +15,7 @@ import Details from '../../details.svelte'; import ProductionBranch from '../../productionBranch.svelte'; import Aside from '../../aside.svelte'; - import { BuildRuntime, Framework, ID, Query, ResourceType } from '@appwrite.io/console'; + import { BuildRuntime, Framework, ID, Query, ResourceType, Type } from '@appwrite.io/console'; import type { Models } from '@appwrite.io/console'; import { onMount } from 'svelte'; import Configuration from '../../configuration.svelte'; @@ -113,12 +113,11 @@ ); await Promise.all(promises); - const deployment = await sdk.forProject.sites.createTemplateDeployment( + const deployment = await sdk.forProject.sites.createVcsDeployment( site.$id, - data.repository.id, - undefined, //TODO: fix once matej is back - rootDir, - undefined //TODO: fix once matej is back + Type.Branch, + branch, + true ); trackEvent(Submit.SiteCreate, { diff --git a/src/routes/(console)/project-[project]/sites/create-site/templates/template-[template]/+page.svelte b/src/routes/(console)/project-[project]/sites/create-site/templates/template-[template]/+page.svelte index ff7f45482..733742d49 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/templates/template-[template]/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/templates/template-[template]/+page.svelte @@ -165,7 +165,8 @@ data.template.providerRepositoryId || undefined, data.template.providerOwner || undefined, framework.providerRootDirectory || undefined, - data.template.providerVersion || undefined + data.template.providerVersion || undefined, + true ); trackEvent(Submit.SiteCreate, { From 6a10e22c4aa6d222736644dcadd8caae1125fdde Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Wed, 19 Feb 2025 14:53:27 +0100 Subject: [PATCH 15/51] various fixes --- package.json | 4 +- pnpm-lock.yaml | 28 +- src/lib/components/avatarGroup.svelte | 4 +- src/lib/components/roles/base.svelte | 17 +- src/lib/components/roles/upgrade.svelte | 94 +++--- src/lib/components/tab.svelte | 2 + src/lib/elements/forms/inputSelect.svelte | 1 + .../(console)/account/sessions/+page.svelte | 2 +- .../organization-[organization]/+page.svelte | 45 ++- .../createMember.svelte | 34 +- .../createProject.svelte | 30 +- .../members/+page.svelte | 129 ++++---- .../settings/+page.svelte | 15 +- .../settings/deleteOrganizationModal.svelte | 201 ++++++------ .../project-[project]/overview/+layout.svelte | 295 ++++++++++-------- .../overview/bandwidth.svelte | 47 +-- .../overview/platforms/+page.svelte | 80 +++-- .../overview/platforms/action.svelte | 55 +++- .../overview/realtime.svelte | 8 +- .../overview/requests.svelte | 40 ++- src/themes/light-cloud.json | 2 +- src/themes/light.json | 2 +- 22 files changed, 603 insertions(+), 532 deletions(-) diff --git a/package.json b/package.json index 1b65b2542..fae9d8bf6 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,9 @@ "dependencies": { "@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53", "@appwrite.io/pink-icons": "0.25.0", - "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290", + "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332", "@appwrite.io/pink-legacy": "^1.0.1", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290", + "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6bfda9144..377b7d110 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,14 +15,14 @@ importers: specifier: 0.25.0 version: 0.25.0 '@appwrite.io/pink-icons-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290 - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290(svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332 + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332(svelte@4.2.19) '@appwrite.io/pink-legacy': specifier: ^1.0.1 version: 1.0.1 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290 - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332 + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -215,14 +215,14 @@ packages: resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53} version: 1.2.1 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332a9fec20d8ed842170634ede486bda8df': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332a9fec20d8ed842170634ede486bda8df} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 @@ -236,8 +236,8 @@ packages: '@appwrite.io/pink-legacy@1.0.1': resolution: {integrity: sha512-e5IZx2drqSxgl2WXvmr0eLfg/WiOCzuqQE8oksD+9GoFBkcL9HWvXul5GjFni3RBAN9XFRL3nUExGk4T0H8sFw==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290} + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332} version: 1.0.0-next.85 peerDependencies: react-dom: ^18.0.0 @@ -4099,11 +4099,11 @@ snapshots: '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53': {} - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332(svelte@4.2.19)': dependencies: svelte: 4.2.19 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332a9fec20d8ed842170634ede486bda8df(svelte@4.2.19)': dependencies: svelte: 4.2.19 @@ -4116,9 +4116,9 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2(svelte@4.2.19) + '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332a9fec20d8ed842170634ede486bda8df(svelte@4.2.19) '@floating-ui/dom': 1.6.13 '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19) '@melt-ui/svelte': 0.86.3(svelte@4.2.19) diff --git a/src/lib/components/avatarGroup.svelte b/src/lib/components/avatarGroup.svelte index 6c19d6b05..499cd5e95 100644 --- a/src/lib/components/avatarGroup.svelte +++ b/src/lib/components/avatarGroup.svelte @@ -24,7 +24,9 @@ {#if total > 2} - +{total - 2} + + +{total - 2} + {/if} diff --git a/src/lib/components/roles/base.svelte b/src/lib/components/roles/base.svelte index 9e37e47b5..6733ad202 100644 --- a/src/lib/components/roles/base.svelte +++ b/src/lib/components/roles/base.svelte @@ -1,21 +1,10 @@ -
    +
    diff --git a/src/lib/components/roles/upgrade.svelte b/src/lib/components/roles/upgrade.svelte index 9e5487476..e482387c8 100644 --- a/src/lib/components/roles/upgrade.svelte +++ b/src/lib/components/roles/upgrade.svelte @@ -5,58 +5,62 @@ import { organization } from '$lib/stores/organization'; import { BillingPlan } from '$lib/constants'; import Button from '$lib/elements/forms/button.svelte'; + import { Badge, Layout, Link, Tag, Typography } from '@appwrite.io/pink-svelte'; - {#if isCloud} - {#if $organization?.billingPlan !== BillingPlan.FREE} -
    -

    - Roles - {#if $organization?.billingPlan === BillingPlan.FREE} - Pro plan - {/if} -

    -

    Owner, Developer, Editor, Analyst and Billing.

    -
    -

    - about roles. -

    - {:else} -
    -

    - Roles - {#if $organization?.billingPlan === BillingPlan.FREE} - Pro plan - {/if} -

    -

    + + {#if isCloud} + {#if $organization?.billingPlan !== BillingPlan.FREE} + Roles + Owner, Developer, Editor, Analyst and Billing. + + Learn more + + {:else} + + + Roles + + + + Upgrade to Pro to assign new roles to members such as Owner, Developer, Editor or Analyst. + + +

    + +

    -
    + {/if} + {:else} + + + Roles + + + + + Upgrade to Cloud to assign new roles to members or ask us about our enterprise self + hosted offering. +

    - - + +

    {/if} - {:else} -
    -

    - Roles - Appwrite Cloud -

    -

    - Upgrade to Cloud to assign new roles to members or ask us about our entriprise self - hosted offering. -

    -
    -

    - - -

    - {/if} + diff --git a/src/lib/components/tab.svelte b/src/lib/components/tab.svelte index 9ca8c022a..70a7e05f1 100644 --- a/src/lib/components/tab.svelte +++ b/src/lib/components/tab.svelte @@ -10,6 +10,7 @@ export let selected = false; export let href: string = null; export let event: string = null; + export let noscroll = false; export let root: { variant: Variant; stretch: boolean } = { variant: 'primary', stretch: false @@ -87,6 +88,7 @@ {#if href} - {#if member.invited && !member.joined} - + {/if} @@ -121,49 +124,41 @@ {#if $isOwner} - - { - e.preventDefault(); - showDropdown[index] = !showDropdown[index]; - }}> - + + + - - { - selectedMember = member; - showEdit = true; - showDropdown[index] = false; - }}> - Edit role - - {#if member.invited && !member.joined} - + + { - resend(member); + selectedMember = member; + showEdit = true; showDropdown[index] = false; }}> - Resend - - {/if} - { - selectedMember = member; - showDelete = true; - showDropdown[index] = false; - }}> - Remove - - - + Edit role + + {#if member.invited && !member.joined} + { + resend(member); + }}> + Resend + + {/if} + { + selectedMember = member; + showDelete = true; + }}> + Remove + + +
    + {/if} diff --git a/src/routes/(console)/organization-[organization]/settings/+page.svelte b/src/routes/(console)/organization-[organization]/settings/+page.svelte index 59bb50f98..0788e3092 100644 --- a/src/routes/(console)/organization-[organization]/settings/+page.svelte +++ b/src/routes/(console)/organization-[organization]/settings/+page.svelte @@ -53,14 +53,13 @@ Name -
      - -
    +
    diff --git a/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte b/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte index 95ff127d9..52bc80b28 100644 --- a/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte +++ b/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte @@ -1,6 +1,6 @@ -
    - - {#if upcomingInvoice} - - - You have a pending {formatCurrency(upcomingInvoice.grossAmount)} invoice for your - {tierToPlan(upcomingInvoice.plan).name} plan - -

    - By proceeding, your invoice will be processed within the hour. Upon successful - payment, your organization will be deleted. -

    -
    - {/if} - -

    - {#if $projects.total > 0} - The following projects and all data associated with {$organization.name} will - be permanently deleted. This action is irreversible. - {:else} - All data associated with {$organization.name} will be permanently deleted. - This action is irreversible. - {/if} -

    + + {#if upcomingInvoice} + + By proceeding, your invoice will be processed within the hour. Upon successful payment, + your organization will be deleted. + + {/if} +

    {#if $projects.total > 0} -

    - - {#each tabs as { name, label, total }} - (selectedTab = name)}> - {label.desktop} ({total}) - - {/each} - - - - - {#each tabData.headers as header} - {header} - {/each} - - - {#each tabData.rows as row} - - {#each row.cells as cell} - {cell} - {/each} - - {/each} - - -
    -
    - - {#each tabs as { name, label, total }} - (selectedTab = name)}> - {label.mobile} ({total}) - - {/each} - - - - - {#each tabData.headers as header, index} - {header} - {/each} - - - {#each tabData.rows as row} - - {#each row.cells as cell, index} - {cell} - {/each} - - {/each} - - -
    + The following projects and all data associated with {$organization.name} will be + permanently deleted. This action is irreversible. + {:else} + All data associated with {$organization.name} will be permanently deleted. + This action is irreversible. {/if} +

    - - - + {#if $projects.total > 0} + + {#each tabs as { name, label, total }} + (selectedTab = name)} + active={selectedTab === name}> + {label.desktop} ({total}) + + {/each} + - - - - -
    -
    + + + {#each tabData.headers as header} + {header} + {/each} + + {#each tabData.rows as row} + + {#each row.cells as cell} + {cell} + {/each} + + {/each} + +
    + + {#each tabs as { name, label, total }} + (selectedTab = name)}> + {label.mobile} ({total}) + + {/each} + + + + + {#each tabData.headers as header, index} + {header} + {/each} + + + {#each tabData.rows as row} + + {#each row.cells as cell, index} + {cell} + {/each} + + {/each} + + +
    + {/if} + + + + + + diff --git a/src/routes/(console)/project-[project]/overview/bandwidth.svelte b/src/routes/(console)/project-[project]/overview/bandwidth.svelte index a6e1b53c9..8f4924671 100644 --- a/src/routes/(console)/project-[project]/overview/bandwidth.svelte +++ b/src/routes/(console)/project-[project]/overview/bandwidth.svelte @@ -1,16 +1,16 @@ -
    +
    -
    + {bandwidth.value} {bandwidth.unit} -
    -
    Bandwidth
    + + Bandwidth
    - - - - dispatch('change', '24h')}>24h - dispatch('change', '30d')}>30d - dispatch('change', '90d')}>90d + + + + {period} + + + + + + dispatch('change', '24h')} + >24h + dispatch('change', '30d')} + >30d + dispatch('change', '90d')} + >90d + - -
    + +
    {#if bandwidth.value !== '0'}
    {:else} -
    -
    - {#if $app.themeInUse === 'dark'} - - {:else} - - {/if} - -
    - Create a platform to get started. -

    - Need a hand? Learn more in our documentation. -

    -
    -
    - - - {#if $canWritePlatforms} - - {/if} - - addPlatform(Platform.Flutter)}> + + + + + + {#if $canWritePlatforms} + + {/if} +
    + + addPlatform(Platform.Flutter)} + leadingIcon={IconFlutter}> Flutter - - addPlatform(Platform.Android)}> + + addPlatform(Platform.Android)} + leadingIcon={IconAndroid}> Android - - addPlatform(Platform.Apple)}> + + addPlatform(Platform.Apple)} + leadingIcon={IconApple}> Apple - - addPlatform(Platform.ReactNative)}> + + addPlatform(Platform.ReactNative)} + leadingIcon={IconReact}> React Native - - - -
    - -
    -
    + + +
    + + + + {/if} diff --git a/src/routes/(console)/project-[project]/overview/platforms/action.svelte b/src/routes/(console)/project-[project]/overview/platforms/action.svelte index 7e2b723ce..214bf8276 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/action.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/action.svelte @@ -3,25 +3,50 @@ import DropListItem from '$lib/components/dropListItem.svelte'; import Button from '$lib/elements/forms/button.svelte'; import { canWritePlatforms } from '$lib/stores/roles'; - import { Icon } from '@appwrite.io/pink-svelte'; + import { ActionMenu, Icon, Popover } from '@appwrite.io/pink-svelte'; import { addPlatform, Platform } from './+page.svelte'; - import { IconPlus } from '@appwrite.io/pink-icons-svelte'; + import { + IconAndroid, + IconApple, + IconFlutter, + IconPlus, + IconReact + } from '@appwrite.io/pink-icons-svelte'; let showDropdown = false; {#if $canWritePlatforms} - - - - addPlatform(Platform.Flutter)}>Flutter app - addPlatform(Platform.Android)}>Android app - addPlatform(Platform.Apple)}>Apple app - addPlatform(Platform.ReactNative)} - >React Native app - - + + {#if $canWritePlatforms} + + {/if} +
    + + addPlatform(Platform.Flutter)} + leadingIcon={IconFlutter}> + Flutter + + addPlatform(Platform.Android)} + leadingIcon={IconAndroid}> + Android + + addPlatform(Platform.Apple)} + leadingIcon={IconApple}> + Apple + + addPlatform(Platform.ReactNative)} + leadingIcon={IconReact}> + React Native + + +
    +
    {/if} diff --git a/src/routes/(console)/project-[project]/overview/realtime.svelte b/src/routes/(console)/project-[project]/overview/realtime.svelte index 852065d0b..14b5f50f3 100644 --- a/src/routes/(console)/project-[project]/overview/realtime.svelte +++ b/src/routes/(console)/project-[project]/overview/realtime.svelte @@ -3,6 +3,7 @@ import { BarChart } from '$lib/charts'; import { Card } from '$lib/components'; import { formatNum } from '$lib/helpers/string'; + import { Link, Typography } from '@appwrite.io/pink-svelte'; import { stats } from '../store'; $: projectId = $page.params.project; @@ -34,12 +35,11 @@ class="icon-chart-square-bar text-large" aria-hidden="true" style="font-size: 32px;" /> -

    No data to show

    -
    No data to show + Get started with Realtime + rel="noopener noreferrer">Get started with Realtime
    {/if} diff --git a/src/routes/(console)/project-[project]/overview/requests.svelte b/src/routes/(console)/project-[project]/overview/requests.svelte index 7fe57efda..c9f940532 100644 --- a/src/routes/(console)/project-[project]/overview/requests.svelte +++ b/src/routes/(console)/project-[project]/overview/requests.svelte @@ -6,6 +6,8 @@ import { createEventDispatcher } from 'svelte'; import { LineChart } from '$lib/charts'; import { formatNum } from '$lib/helpers/string'; + import { ActionMenu, Icon, Layout, Link, Popover, Typography } from '@appwrite.io/pink-svelte'; + import { IconChevronDown } from '@appwrite.io/pink-icons-svelte'; export let period: UsagePeriods; @@ -23,25 +25,31 @@ } -
    +
    -
    + {formatNum(totalMetrics($usage?.requests))} -
    -
    Requests
    + + Requests
    - - - - dispatch('change', '24h')}>24h - dispatch('change', '30d')}>30d - dispatch('change', '90d')}>90d - - -
    + + + + {period} + + + + + dispatch('change', '24h')} + >24h + dispatch('change', '30d')} + >30d + dispatch('change', '90d')} + >90d + + + + {#if totalMetrics($usage?.requests) !== 0}
    Date: Wed, 19 Feb 2025 16:46:37 +0100 Subject: [PATCH 16/51] Only highlight settings when on the actual project settings page --- src/lib/components/sidebar.svelte | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/components/sidebar.svelte b/src/lib/components/sidebar.svelte index 0f1b3ecca..aed4df6a1 100644 --- a/src/lib/components/sidebar.svelte +++ b/src/lib/components/sidebar.svelte @@ -66,6 +66,7 @@ $: state = $isTabletViewport ? 'closed' : getSidebarState(); $: pathname = $page.url.pathname; + $: isOnProjectSettings = /^\/console\/project-[a-zA-Z0-9-]+\/settings$/.test(pathname); const projectOptions = [ { name: 'Auth', icon: IconUserGroup, slug: 'auth' }, @@ -232,7 +233,7 @@ Date: Thu, 20 Feb 2025 13:56:49 +0530 Subject: [PATCH 17/51] fix: confirm component spacing. use `

    `s to separate out content for correct spacing. --- src/lib/components/confirm.svelte | 27 ++++++++++++++++--- src/lib/pages/domains/delete.svelte | 20 ++++++++++---- src/routes/(console)/account/delete.svelte | 2 -- src/routes/(console)/account/deleteMfa.svelte | 4 +-- .../domains/deleteDomainModal.svelte | 17 ++---------- .../deleteCertificateModal.svelte | 8 +----- .../platforms/[platform]/delete.svelte | 6 ++++- .../domains/deleteDomainModal.svelte | 2 +- 8 files changed, 50 insertions(+), 36 deletions(-) diff --git a/src/lib/components/confirm.svelte b/src/lib/components/confirm.svelte index 6faebac89..6e37223d5 100644 --- a/src/lib/components/confirm.svelte +++ b/src/lib/components/confirm.svelte @@ -1,5 +1,5 @@

    @@ -25,13 +29,30 @@ {error} {/if} - + + + + + {#if confirmDeletion} + + {/if} + + {#if canDelete} - + {/if} diff --git a/src/lib/pages/domains/delete.svelte b/src/lib/pages/domains/delete.svelte index 98090caee..317981038 100644 --- a/src/lib/pages/domains/delete.svelte +++ b/src/lib/pages/domains/delete.svelte @@ -1,11 +1,9 @@ - - Are you sure you want to delete SSL certificate? This action is irreversible. - - - - - + Are you sure you want to delete SSL certificate? This action is irreversible. diff --git a/src/routes/(console)/project-[project]/overview/platforms/[platform]/delete.svelte b/src/routes/(console)/project-[project]/overview/platforms/[platform]/delete.svelte index 2d139fb41..bb1754063 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/[platform]/delete.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/[platform]/delete.svelte @@ -29,6 +29,10 @@ } - + The Platform will be permanently deleted. This action is irreversible. diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/domains/deleteDomainModal.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/domains/deleteDomainModal.svelte index 37d8c9b19..f3bcf72d9 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/domains/deleteDomainModal.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/domains/deleteDomainModal.svelte @@ -34,7 +34,7 @@ {#if selectedDomain}

    Are you sure you want to delete {selectedDomain.domain}? You will no longer be - able to execute your function by visiting this domain. + able to view your site by visiting this domain.

    {/if} Date: Thu, 20 Feb 2025 13:57:23 +0530 Subject: [PATCH 18/51] fix: function specifications for template! --- src/lib/wizards/functions/createTemplate.svelte | 4 ---- .../project-[project]/functions/create-function/store.ts | 1 + .../functions/create-function/wizard/createTemplate.svelte | 5 +---- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/lib/wizards/functions/createTemplate.svelte b/src/lib/wizards/functions/createTemplate.svelte index e41bf78dc..ae703bc45 100644 --- a/src/lib/wizards/functions/createTemplate.svelte +++ b/src/lib/wizards/functions/createTemplate.svelte @@ -55,10 +55,6 @@ $templateConfig.repositoryBehaviour === 'manual' ? undefined : $choices.rootDir || undefined, - $template.providerRepositoryId || undefined, - $template.providerOwner || undefined, - runtimeDetail.providerRootDirectory || undefined, - $template.providerVersion || undefined, $templateConfig.specification || undefined ); diff --git a/src/routes/(console)/project-[project]/functions/create-function/store.ts b/src/routes/(console)/project-[project]/functions/create-function/store.ts index 79a1345b4..b248d6630 100644 --- a/src/routes/(console)/project-[project]/functions/create-function/store.ts +++ b/src/routes/(console)/project-[project]/functions/create-function/store.ts @@ -14,6 +14,7 @@ export const templateConfig = writable<{ repositoryId: string; execute?: boolean; scopes?: string[]; + specification?: string; }>(); export const choices = writable<{ diff --git a/src/routes/(console)/project-[project]/functions/create-function/wizard/createTemplate.svelte b/src/routes/(console)/project-[project]/functions/create-function/wizard/createTemplate.svelte index e9f07cc22..11107b9ef 100644 --- a/src/routes/(console)/project-[project]/functions/create-function/wizard/createTemplate.svelte +++ b/src/routes/(console)/project-[project]/functions/create-function/wizard/createTemplate.svelte @@ -49,10 +49,7 @@ $templateConfig.repositoryBehaviour === 'manual' ? undefined : $choices.rootDir || undefined, - $template.providerRepositoryId || undefined, - $template.providerOwner || undefined, - runtimeDetail.providerRootDirectory || undefined, - $template.providerVersion || undefined + $templateConfig.specification ); if ($templateConfig.variables) { From 08ecc05069681c138f98d66ef9d20094e2f17b9f Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 20 Feb 2025 13:57:46 +0530 Subject: [PATCH 19/51] ran: formatter. --- .../overview/platforms/[platform]/delete.svelte | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/routes/(console)/project-[project]/overview/platforms/[platform]/delete.svelte b/src/routes/(console)/project-[project]/overview/platforms/[platform]/delete.svelte index bb1754063..2d139fb41 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/[platform]/delete.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/[platform]/delete.svelte @@ -29,10 +29,6 @@ } - + The Platform will be permanently deleted. This action is irreversible. From d02af857f48ee82ee0392e76f7e29475e493d45b Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 20 Feb 2025 14:08:04 +0530 Subject: [PATCH 20/51] =?UTF-8?q?remove:=20leftover=20=F0=9F=A4=B7?= =?UTF-8?q?=E2=80=8D=E2=99=82=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/pages/domains/delete.svelte | 1 - .../organization-[organization]/domains/deleteDomainModal.svelte | 1 - 2 files changed, 2 deletions(-) diff --git a/src/lib/pages/domains/delete.svelte b/src/lib/pages/domains/delete.svelte index 317981038..a1edc8f14 100644 --- a/src/lib/pages/domains/delete.svelte +++ b/src/lib/pages/domains/delete.svelte @@ -42,7 +42,6 @@ } -a

    Are you sure you want to delete {selectedDomain?.domain}?

    You will no longer be able to {getCorrectMessage()} by visiting this domain.

    diff --git a/src/routes/(console)/organization-[organization]/domains/deleteDomainModal.svelte b/src/routes/(console)/organization-[organization]/domains/deleteDomainModal.svelte index 4e4d39026..4f75cbbb2 100644 --- a/src/routes/(console)/organization-[organization]/domains/deleteDomainModal.svelte +++ b/src/routes/(console)/organization-[organization]/domains/deleteDomainModal.svelte @@ -1,5 +1,4 @@ - - {#if selectedDomain} -

    Are you sure you want to delete {selectedDomain.domain}?

    -

    You will no longer be able to execute your function by visiting this domain.

    - {/if} + +

    Are you sure you want to delete {selectedDomain?.domain}?

    +

    You will no longer be able to {getCorrectMessage()} by visiting this domain.

    From 680b47537ef4903e98470b0841b5251797388271 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Thu, 20 Feb 2025 10:29:10 +0100 Subject: [PATCH 22/51] Add onboarding hub analytics --- .../project-[project]/overview/header.svelte | 2 + .../project-[project]/overview/onboard.svelte | 56 +++++++++++++++++-- .../overview/platforms/+page.svelte | 9 +++ 3 files changed, 63 insertions(+), 4 deletions(-) diff --git a/src/routes/(console)/project-[project]/overview/header.svelte b/src/routes/(console)/project-[project]/overview/header.svelte index be16c1b39..d3251dceb 100644 --- a/src/routes/(console)/project-[project]/overview/header.svelte +++ b/src/routes/(console)/project-[project]/overview/header.svelte @@ -10,6 +10,7 @@ import { user } from '$lib/stores/user'; import { isSmallViewport } from '$lib/stores/viewport'; import { Dependencies } from '$lib/constants'; + import { trackEvent } from '$lib/actions/analytics'; {#if !$page.url.pathname.includes('get-started')} @@ -45,6 +46,7 @@ variant="secondary" size="s" on:click={async () => { + trackEvent('onboarding_hub_platform_dismiss'); await setHasOnboardingDismissed($project.$id); goto(`${base}/project-${$project.$id}/overview`); requestAnimationFrame(() => { diff --git a/src/routes/(console)/project-[project]/overview/onboard.svelte b/src/routes/(console)/project-[project]/overview/onboard.svelte index feeb49746..4c191ff50 100644 --- a/src/routes/(console)/project-[project]/overview/onboard.svelte +++ b/src/routes/(console)/project-[project]/overview/onboard.svelte @@ -37,8 +37,15 @@ import { AvatarGroup } from '$lib/components'; import type { Models } from '@appwrite.io/console'; import { getPlatformInfo } from '$lib/helpers/platform'; + import { trackEvent } from '$lib/actions/analytics'; + import { redirect } from '@sveltejs/kit'; + import { goto } from '$app/navigation'; function createKey() { + trackEvent('onboarding_hub_platform', { + platform: 'server', + state: 'add' + }); wizard.start(Wizard); } @@ -386,7 +393,12 @@ - addPlatform(0)} padding="s" + { + trackEvent('onboarding_hub_setup_databases'); + goto(`${base}/project-${projectId}/databases`); + }} + padding="s" >
    { + trackEvent( + 'onboarding_hub_api_references' + ); + }} target="_blank">API references { + trackEvent('onboarding_hub_tutorials'); + }} target="_blank">Tutorials { + trackEvent( + 'onboarding_hub_storage_quick_start' + ); + }} target="_blank" >Storage quick start { + trackEvent( + 'onboarding_hub_functions_quick_start' + ); + }} target="_blank" >Functions quick start @@ -458,16 +488,29 @@ { + trackEvent( + 'onboarding_hub_auth_email_password' + ); + }} >E-mail and password OAuth 2 + on:click={() => { + trackEvent( + 'onboarding_hub_auth_oauth2' + ); + }}>OAuth 2 View all methods + on:click={() => { + trackEvent( + 'onboarding_hub_auth_all_methods' + ); + }}>View all methods
    - + { + trackEvent('onboarding_hub_discord'); + }}>
    diff --git a/src/routes/(console)/project-[project]/overview/platforms/+page.svelte b/src/routes/(console)/project-[project]/overview/platforms/+page.svelte index f6b27c860..83943e974 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/+page.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/+page.svelte @@ -8,6 +8,7 @@ import CreateReactNative from './createReactNative.svelte'; import CreateWeb from './createWeb.svelte'; import { createPlatform, versions } from './wizard/store'; + import { trackEvent } from '$lib/actions/analytics'; export enum Platform { Web, @@ -20,6 +21,10 @@ export async function addPlatform(type: Platform) { await versions.load(); createPlatform.reset(); + trackEvent('onboarding_hub_platform', { + platform: platforms[type], + state: 'add' + }); wizard.start(platforms[type]); } @@ -35,6 +40,10 @@ key: key, type: type }); + trackEvent('onboarding_hub_platform', { + platform: platforms[platform], + state: 'continue' + }); wizard.start(platforms[platform], null, 1, { isPlatformCreated: true, platform: type, From 002bbca8a676632f52bc2e64c545c676de629e08 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Thu, 20 Feb 2025 10:29:17 +0100 Subject: [PATCH 23/51] Remove unused page --- src/routes/(console)/onboarding/+page.svelte | 149 ------------------- 1 file changed, 149 deletions(-) delete mode 100644 src/routes/(console)/onboarding/+page.svelte diff --git a/src/routes/(console)/onboarding/+page.svelte b/src/routes/(console)/onboarding/+page.svelte deleted file mode 100644 index e4c1f1ae7..000000000 --- a/src/routes/(console)/onboarding/+page.svelte +++ /dev/null @@ -1,149 +0,0 @@ - - - - - Create a new organization - - - - {#if isCloud} -
    -

    Plan

    -

    - For more details on our plans, visit our . -

    - - - -
    - {/if} - -
    - -
    -
    From b370e12677a1b43152e2e544e1d087f9c9aad2a9 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Thu, 20 Feb 2025 10:49:33 +0100 Subject: [PATCH 24/51] Add support and feedback events --- src/lib/components/sidebar.svelte | 34 ++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/lib/components/sidebar.svelte b/src/lib/components/sidebar.svelte index aed4df6a1..d73c49992 100644 --- a/src/lib/components/sidebar.svelte +++ b/src/lib/components/sidebar.svelte @@ -34,6 +34,7 @@ import MobileFeedbackModal from '$routes/(console)/wizard/feedback/mobileFeedbackModal.svelte'; import { getSidebarState, updateSidebarState } from '$lib/helpers/sidebar'; import { isTabletViewport } from '$lib/stores/viewport'; + import { trackEvent } from '$lib/actions/analytics'; type $$Props = HTMLElement & { state?: 'closed' | 'open' | 'icons'; @@ -112,6 +113,7 @@ class="progress-card" href={`/console/project-${project.$id}/get-started`} on:click={() => { + trackEvent('click_menu_get_started'); sideBarIsOpen = false; }}>
    @@ -139,6 +141,7 @@ class="link" class:active={pathname.includes('overview')} on:click={() => { + trackEvent('click_menu_overview'); sideBarIsOpen = false; }} > { + trackEvent(`click_menu_${projectOption.slug}`); sideBarIsOpen = false; }} >
    - { + trackEvent('click_menu_settings'); + }} + class="link" > toggleFeedback()} + on:click={() => { + toggleFeedback(); + trackEvent('click_menu_feedback'); + }} >Feedback @@ -213,7 +225,10 @@ ($showSupportModal = true)}> + on:click={() => { + $showSupportModal = true; + trackEvent('click_menu_support'); + }}> Support @@ -233,6 +248,9 @@ { + trackEvent('click_menu_settings'); + }} class:active={isOnProjectSettings} > toggleFeedback()} + on:click={() => { + toggleFeedback(); + trackEvent('click_menu_feedback'); + }} >Feedback @@ -264,7 +285,10 @@ ($showSupportModal = true)}> + on:click={() => { + $showSupportModal = true; + trackEvent('click_menu_support'); + }}> Support From 037bf4627ba87a0e10e02d2232f06d4881836314 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Thu, 20 Feb 2025 10:58:16 +0100 Subject: [PATCH 25/51] Add more analytics events --- src/lib/components/navbar.svelte | 24 ++++++++++++++++++++++-- src/lib/components/sidebar.svelte | 8 ++++---- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/lib/components/navbar.svelte b/src/lib/components/navbar.svelte index 0585199b5..bf6947be6 100644 --- a/src/lib/components/navbar.svelte +++ b/src/lib/components/navbar.svelte @@ -44,6 +44,7 @@ import { isTabletViewport } from '$lib/stores/viewport'; import { isCloud } from '$lib/system.js'; import { user } from '$lib/stores/user'; + import { trackEvent } from '$lib/actions/analytics'; let showSupport = false; @@ -68,6 +69,10 @@ : 'light' : theme; + trackEvent('select_theme', { + value: theme === 'auto' ? 'system' : theme + }); + app.update(() => ({ themeInUse: themeInUse, theme: theme @@ -130,12 +135,24 @@ { + trackEvent('click_organization_upgrade', { + from: 'button', + source: 'top_nav' + }); + }} href={`${base}/organization-${currentOrg.$id}/change-plan`} >Upgrade {/if} - toggleFeedback()} + { + toggleFeedback(); + trackEvent('click_menu_feedback', { source: 'top_nav' }); + }} >Feedback @@ -152,7 +169,10 @@ (showSupport = !showSupport)}> + on:click={() => { + showSupport = !showSupport; + trackEvent('click_menu_support', { source: 'top_nav' }); + }}> Support diff --git a/src/lib/components/sidebar.svelte b/src/lib/components/sidebar.svelte index d73c49992..b9462140a 100644 --- a/src/lib/components/sidebar.svelte +++ b/src/lib/components/sidebar.svelte @@ -212,7 +212,7 @@ size="s" on:click={() => { toggleFeedback(); - trackEvent('click_menu_feedback'); + trackEvent('click_menu_feedback', { source: 'side_nav' }); }} >Feedback @@ -227,7 +227,7 @@ size="s" on:click={() => { $showSupportModal = true; - trackEvent('click_menu_support'); + trackEvent('click_menu_support', { source: 'side_nav' }); }}> Support @@ -272,7 +272,7 @@ size="s" on:click={() => { toggleFeedback(); - trackEvent('click_menu_feedback'); + trackEvent('click_menu_feedback', { source: 'side_nav' }); }} >Feedback @@ -287,7 +287,7 @@ size="s" on:click={() => { $showSupportModal = true; - trackEvent('click_menu_support'); + trackEvent('click_menu_support', { source: 'side_nav' }); }}> Support From 12e68ce2b893c9c148f27db8f5933a1c7387ad40 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Thu, 20 Feb 2025 11:02:05 +0100 Subject: [PATCH 26/51] Add personal menu open analytics --- src/lib/components/navbar.svelte | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/components/navbar.svelte b/src/lib/components/navbar.svelte index bf6947be6..2ff8986ec 100644 --- a/src/lib/components/navbar.svelte +++ b/src/lib/components/navbar.svelte @@ -194,6 +194,9 @@ { showAccountMenu = !showAccountMenu; + if (showAccountMenu) { + trackEvent('click_menu_dropdown'); + } }}>
    From 06d59fd11abfe971affcda2bf354f4817b1fd943 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Thu, 20 Feb 2025 13:54:57 +0100 Subject: [PATCH 27/51] Support Angular starter kit --- .../components/AngularFrameworkIcon.svelte | 5 ++++ .../overview/platforms/createWeb.svelte | 27 +++++++++++++++---- 2 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 src/routes/(console)/project-[project]/overview/platforms/components/AngularFrameworkIcon.svelte diff --git a/src/routes/(console)/project-[project]/overview/platforms/components/AngularFrameworkIcon.svelte b/src/routes/(console)/project-[project]/overview/platforms/components/AngularFrameworkIcon.svelte new file mode 100644 index 000000000..66ed5831c --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/platforms/components/AngularFrameworkIcon.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte index 4072d26f7..6d8d44f77 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte @@ -21,7 +21,8 @@ IconReact, IconNuxt, IconInfo, - IconExternalLink + IconExternalLink, + IconAngular } from '@appwrite.io/pink-icons-svelte'; import { page } from '$app/stores'; import { type ComponentType, onMount } from 'svelte'; @@ -38,6 +39,7 @@ import NextjsFrameworkIcon from '$routes/(console)/project-[project]/overview/platforms/components/NextjsFrameworkIcon.svelte'; import VueFrameworkIcon from '$routes/(console)/project-[project]/overview/platforms/components/VueFrameworkIcon.svelte'; import NoFrameworkIcon from './components/NoFrameworkIcon.svelte'; + import AngularFrameworkIcon from '$routes/(console)/project-[project]/overview/platforms/components/AngularFrameworkIcon.svelte'; export let key; @@ -97,6 +99,13 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" icon: VueFrameworkIcon, smallIcon: IconVue, portNumber: 5173 + }, + { + key: 'angular', + label: 'Angular', + icon: AngularFrameworkIcon, + smallIcon: IconAngular, + portNumber: 4200 } ]; @@ -227,10 +236,18 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" code={`\ngit clone https://github.com/appwrite/starter-for-${selectedFramework.key}\ncd starter-for--${selectedFramework.key}`} />
    - 2. Rename into and update the values. + {#if selectedFramework.key === 'angular'} + 2. Change to reflect + the values below: + {:else} + 2. Rename into and update the values. + {/if}
    From e4b31d2c9cb957e29f8a829700f0349c4e970b86 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Thu, 20 Feb 2025 14:02:39 +0100 Subject: [PATCH 28/51] Use curly brackets --- .../project-[project]/overview/platforms/createWeb.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte index 6d8d44f77..f02bad915 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte @@ -240,8 +240,8 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" 2. Change to reflect - the values below: + code="src/environments/environment{.development}.ts" /> + to reflect the values below: {:else} 2. Rename into Date: Thu, 20 Feb 2025 14:06:59 +0100 Subject: [PATCH 29/51] Move button to the left --- src/lib/components/navbar.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/navbar.svelte b/src/lib/components/navbar.svelte index 2ff8986ec..f867e519f 100644 --- a/src/lib/components/navbar.svelte +++ b/src/lib/components/navbar.svelte @@ -120,7 +120,7 @@ {#if selectedProject && selectedProject.pingCount === 0} -
    +
    Date: Thu, 20 Feb 2025 14:11:15 +0100 Subject: [PATCH 30/51] Use environment.ts --- .../project-[project]/overview/platforms/createWeb.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte index f02bad915..05564bb98 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte @@ -240,7 +240,7 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" 2. Change + code="src/environments/environment.ts" /> to reflect the values below: {:else} Date: Thu, 20 Feb 2025 14:28:16 +0100 Subject: [PATCH 31/51] design review: deployment and other screns --- package.json | 2 +- pnpm-lock.yaml | 24 +-- src/lib/components/usageCard.svelte | 2 +- src/lib/elements/forms/inputCheckbox.svelte | 3 + .../(components)/deploymentCreatedBy.svelte | 21 ++- .../(components)/deploymentSource.svelte | 3 +- .../sites/(components)/logs.svelte | 3 +- .../sites/site-[site]/+page.svelte | 56 +++--- .../site-[site]/deployments/+page.svelte | 13 +- .../createGitDeploymentModal.svelte | 178 ++++++++++-------- .../deployments/deploymentMetrics.svelte | 34 ++-- .../deployments/quickFilters.svelte | 2 +- 12 files changed, 195 insertions(+), 146 deletions(-) diff --git a/package.json b/package.json index 771e3a4f2..9dd2b4643 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332", "@appwrite.io/pink-legacy": "^1.0.1", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d", + "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@e87d552", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c19429a8f..e99217a0f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,8 @@ importers: specifier: ^1.0.1 version: 1.0.1 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@e87d552 + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@e87d552(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -215,14 +215,14 @@ packages: resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864} version: 1.2.1 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@e87d5523b50e063bfe0d3b846d5db171a24b0792': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@e87d5523b50e063bfe0d3b846d5db171a24b0792} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 @@ -236,8 +236,8 @@ packages: '@appwrite.io/pink-legacy@1.0.1': resolution: {integrity: sha512-e5IZx2drqSxgl2WXvmr0eLfg/WiOCzuqQE8oksD+9GoFBkcL9HWvXul5GjFni3RBAN9XFRL3nUExGk4T0H8sFw==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d} + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@e87d552': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@e87d552} version: 1.0.0-next.85 peerDependencies: react-dom: ^18.0.0 @@ -4099,11 +4099,11 @@ snapshots: '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864': {} - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332(svelte@4.2.19)': dependencies: svelte: 4.2.19 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@e87d5523b50e063bfe0d3b846d5db171a24b0792(svelte@4.2.19)': dependencies: svelte: 4.2.19 @@ -4116,9 +4116,9 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@e87d552(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962(svelte@4.2.19) + '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@e87d5523b50e063bfe0d3b846d5db171a24b0792(svelte@4.2.19) '@floating-ui/dom': 1.6.13 '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19) '@melt-ui/svelte': 0.86.3(svelte@4.2.19) diff --git a/src/lib/components/usageCard.svelte b/src/lib/components/usageCard.svelte index 2d4d4a0b7..af652f91d 100644 --- a/src/lib/components/usageCard.svelte +++ b/src/lib/components/usageCard.svelte @@ -16,7 +16,7 @@ {value} {:else} - + {/if} diff --git a/src/lib/elements/forms/inputCheckbox.svelte b/src/lib/elements/forms/inputCheckbox.svelte index 844f18c25..9ccb04f53 100644 --- a/src/lib/elements/forms/inputCheckbox.svelte +++ b/src/lib/elements/forms/inputCheckbox.svelte @@ -11,6 +11,7 @@ element?: HTMLInputElement | undefined; indeterminate?: boolean; size?: 's' | 'm'; + description?: string; } export let id: string = ''; @@ -20,6 +21,7 @@ export let disabled = false; export let element: HTMLInputElement | undefined = undefined; export let size: $$Props['size'] = 's'; + export let description = ''; let error: string; const handleInvalid = (event: Event) => { @@ -47,6 +49,7 @@ {size} {label} {required} + {description} on:invalid={handleInvalid} on:click on:change /> diff --git a/src/routes/(console)/project-[project]/sites/(components)/deploymentCreatedBy.svelte b/src/routes/(console)/project-[project]/sites/(components)/deploymentCreatedBy.svelte index 750493df2..607d9501e 100644 --- a/src/routes/(console)/project-[project]/sites/(components)/deploymentCreatedBy.svelte +++ b/src/routes/(console)/project-[project]/sites/(components)/deploymentCreatedBy.svelte @@ -1,22 +1,29 @@

    {#if deployment.providerCommitAuthor} - - {capitalize(timeFromNow(deployment.$updatedAt))} - + + + {capitalize(timeFromNow(deployment.$updatedAt))} + + {toLocaleDateTime(deployment.$updatedAt)} + by {deployment.providerCommitAuthor} {:else} - - {capitalize(timeFromNow(deployment.$updatedAt))} - + + + {capitalize(timeFromNow(deployment.$updatedAt))} + + {toLocaleDateTime(deployment.$updatedAt)} + {/if}

    diff --git a/src/routes/(console)/project-[project]/sites/(components)/deploymentSource.svelte b/src/routes/(console)/project-[project]/sites/(components)/deploymentSource.svelte index ff94b5d96..3dce20f83 100644 --- a/src/routes/(console)/project-[project]/sites/(components)/deploymentSource.svelte +++ b/src/routes/(console)/project-[project]/sites/(components)/deploymentSource.svelte @@ -28,7 +28,7 @@ - + {#if deployment?.providerCommitMessage && deployment?.providerCommitHash && deployment?.providerCommitUrl} - {#key buildLogs} - + {/key} {#if ['processing', 'building'].includes(status)} diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/+page.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/+page.svelte index 582454b82..abda0ca03 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/+page.svelte @@ -7,23 +7,33 @@ import { Button } from '$lib/elements/forms'; import { protocol } from '$routes/(console)/store'; import InstantRollbackDomain from './instantRollbackDomain.svelte'; - import { base } from '$app/paths'; - import { page } from '$app/stores'; - import { invalidate } from '$app/navigation'; - import { Dependencies } from '$lib/constants'; import { app } from '$lib/stores/app'; import EmptyDeploymentDark from './empty-deployment-dark.svg'; import EmptyDeploymentLight from './empty-deployment-light.svg'; + import { sdk } from '$lib/stores/sdk'; + import { invalidate } from '$app/navigation'; + import { Dependencies } from '$lib/constants'; + import { onMount } from 'svelte'; + import { page } from '$app/stores'; export let data; let showRollback = false; - $: console.log(data.site); - $: console.log(data.deployment); - $: console.log(data.deploymentList); - $: console.log(data.proxyRuleList); + let unsubscribe: { (): void }; - // TODO: dark mode empty state + onMount(() => { + unsubscribe = sdk.forConsole.client.subscribe('console', (response) => { + if (response.events.includes(`sites.${$page.params.site}.deployments.*`)) { + console.log('test'); + invalidate(Dependencies.SITE); + } + }); + }); + + // $: console.log(data.site); + $: console.log(data.deployment); + // $: console.log(data.deploymentList); + // $: console.log(data.proxyRuleList); @@ -37,7 +47,7 @@ >Instant rollback - {:else} + {:else if data.deployment?.status === 'building'} - - - - - + + + {:else} + + + + You haven't deployed any sites yet. Get started by deploying your first + site. + {/if} diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/+page.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/+page.svelte index 097c73a92..0b696c04f 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/+page.svelte @@ -94,11 +94,12 @@ Create deployment - - + + { + on:click={(e) => { + toggle(e); if (!hasInstallation) { showConnectRepo = true; } else { @@ -108,13 +109,15 @@ Git { + on:click={(e) => { + toggle(e); showConnectCLI = true; }}> CLI { + on:click={(e) => { + toggle(e); showConnectManual = true; }}> Manual diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte index 7122848cd..223784b0b 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte @@ -4,80 +4,81 @@ import { Repositories } from '$lib/components/git'; import { Dependencies } from '$lib/constants'; import { Link } from '$lib/elements'; - import { Button } from '$lib/elements/forms'; - import InputSelectSearch from '$lib/elements/forms/inputSelectSearch.svelte'; + import { Button, InputCheckbox, InputSelect } from '$lib/elements/forms'; + import { timeFromNow } from '$lib/helpers/date'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; import { installation, repository, sortBranches } from '$lib/stores/vcs'; - import type { BuildRuntime, Framework, Models } from '@appwrite.io/console'; + import { Type, type Models } from '@appwrite.io/console'; import { IconGithub } from '@appwrite.io/pink-icons-svelte'; - import { Icon, InlineCode, Layout, Spinner, Typography } from '@appwrite.io/pink-svelte'; - import { onMount } from 'svelte'; + import { Icon, Layout, Skeleton, Typography } from '@appwrite.io/pink-svelte'; export let show = false; export let site: Models.Site; let installations = { installations: [], total: 0 }; let hasRepository = !!site?.providerRepositoryId; - let selectedRepository: string = null; + let selectedRepository: string = site.providerRepositoryId; let branch: string = null; + let activate = true; let error = ''; - onMount(async () => { - installations = await sdk.forProject.vcs.listInstallations(); - if (!site?.installationId && installations.total > 0) { - installation.set(installations.installations[0]); - } - if (!$repository?.id && hasRepository) { - $repository = await sdk.forProject.vcs.getRepository( - $installation.$id, - site.providerRepositoryId + async function loadInstallations() { + try { + installations = await sdk.forProject.vcs.listInstallations(); + if (!site?.installationId && installations.total > 0) { + installation.set(installations.installations[0]); + } + $installation = installations.installations.find( + (installation) => installation.$id === site.installationId ); + if (!$installation?.$id) { + $installation = installations.installations[0]; + } + } catch (error) { + console.log(error); } - console.log(installations); - }); + } - async function loadBranches() { - const { branches } = await sdk.forProject.vcs.listRepositoryBranches( - $installation.$id, - selectedRepository - ); - const sorted = sortBranches(branches); - branch = sorted[0]?.name ?? null; + async function load() { + try { + await loadInstallations(); + if (!$repository?.id && hasRepository) { + $repository = await sdk.forProject.vcs.getRepository( + $installation.$id, + site.providerRepositoryId + ); + } + const branchList = await sdk.forProject.vcs.listRepositoryBranches( + $installation.$id, + selectedRepository + ); - if (!branch) { - branch = 'main'; + console.log(branchList); + + const sorted = sortBranches(branchList.branches); + branch = sorted[0]?.name ?? null; + + if (!branch) { + branch = 'main'; + } + + return sorted; + } catch (error) { + console.log(installations); + console.log(error); } - - return sorted; } async function createDeployment() { try { - if (!site.installationId || !site.providerRepositoryId || !branch) { - await sdk.forProject.sites.update( - site.$id, - site.name, - site?.framework as Framework, - site.enabled || undefined, - site.timeout || undefined, - site.installCommand || undefined, - site.buildCommand || undefined, - site.outputDirectory || undefined, - (site?.buildRuntime as BuildRuntime) || undefined, - site.adapter || undefined, - site.fallbackFile || undefined, - site.installationId || $installation.$id || undefined, - site.providerRepositoryId || $repository.id || undefined, - branch, - site.providerSilentMode || undefined, - undefined //TODO: add dir? - ); - } + await sdk.forProject.sites.createVcsDeployment(site.$id, Type.Branch, branch, activate); show = false; invalidate(Dependencies.DEPLOYMENTS); addNotification({ - message: 'Deployment has been created successfully', + message: activate + ? 'Deployment is in progress. It will be automatically activated after build step completes.' + : 'Deployment is in progress. You can activate it after build step completes.', type: 'success' }); } catch (e) { @@ -88,26 +89,26 @@ - Enter a valid commit reference to create a new deployment from or - use the CLI to deploy. Learn more + Enter a valid commit reference to create a new deployment. Learn more - {#if installations && hasRepository} - - - - - - {$repository?.organization}/{$repository?.name} - + {#if hasRepository} + {#await load()} + + + + + + + + + + - - {#await loadBranches()} - {:then branches} {@const options = branches @@ -120,24 +121,48 @@ ?.sort((a, b) => { return a.label > b.label ? 1 : -1; }) ?? []} - - + + + + + + {$repository?.organization}/{$repository?.name} + + + + + Last updated {timeFromNow($repository?.pushedAt)} + + + + { branch = event.detail.value; }} - interactiveOutput - name="branch" {options} /> + {#if branch} + + {/if} {/await} - {/if} - {#if !hasRepository} + {:else} - + diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte index 1d6ff03bd..099dcee3d 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte @@ -55,21 +55,25 @@ }); async function fetchUsage() { - metrics.forEach((metric) => { - metric.value = null; - }); - metrics = metrics; - try { - const usage = await sdk.forProject.sites.getUsage($page.params.site, range); - metrics = metrics.map((metric) => { - metric.value = usage[metric.id] ?? '-'; - return metric; + // Add timeout to make it look nicer + setTimeout(async () => { + metrics.forEach((metric) => { + metric.value = null; }); metrics = metrics; - console.log(usage); - } catch (error) { - console.log(error); - } + + try { + const usage = await sdk.forProject.sites.getUsage($page.params.site, range); + metrics = metrics.map((metric) => { + metric.value = usage[metric.id] ?? '-'; + return metric; + }); + metrics = metrics; + console.log(usage); + } catch (error) { + console.log(error); + } + }, 800); } $: console.log(metrics); @@ -95,9 +99,9 @@ on:change={fetchUsage} />
    - + {#each metrics as metric} {/each} - + diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte index f9efb05bd..0252024c3 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte @@ -193,7 +193,7 @@ - + {#each filter.options as option (option.value + option.checked)} Date: Thu, 20 Feb 2025 14:31:21 +0100 Subject: [PATCH 32/51] fix: various things --- package.json | 4 +- pnpm-lock.yaml | 28 +-- src/lib/charts/base.json | 201 +++++++++------- src/lib/charts/base.svelte | 6 +- src/lib/charts/dark.json | 6 +- src/lib/charts/light.json | 109 ++------- src/lib/components/empty.svelte | 4 +- src/lib/components/filters/filters.svelte | 2 +- src/lib/components/permissions/actions.svelte | 62 ++--- .../components/permissions/permissions.svelte | 15 +- src/lib/components/permissions/roles.svelte | 12 +- src/lib/components/roles/upgrade.svelte | 2 +- src/lib/components/secret.svelte | 33 +-- src/lib/components/sidebar.svelte | 1 + src/lib/layout/wizardStep.svelte | 25 +- src/lib/layout/wizardWithSteps.svelte | 63 ++--- .../members/+page.svelte | 4 +- .../attributes/+page.svelte | 31 +-- .../attributes/createAttributeDropdown.svelte | 26 +- .../messaging/actions.svelte | 23 +- .../messaging/wizard/step2.svelte | 13 +- .../project-[project]/overview/+layout.svelte | 15 -- .../overview/bandwidth.svelte | 24 +- .../keys/[key]/updateExpirationDate.svelte | 4 +- .../overview/keys/action.svelte | 4 +- .../overview/keys/create/+page.svelte | 101 ++++++++ .../overview/keys/expirationInput.svelte | 2 +- .../overview/keys/scopes.svelte | 66 +++-- .../overview/keys/wizard/step1.svelte | 14 +- .../overview/keys/wizard/step2.svelte | 5 +- .../overview/platforms/+page.svelte | 37 +-- .../platforms/[platform]/android.svelte | 14 +- .../[platform]/flutterAndroid.svelte | 14 +- .../overview/requests.svelte | 31 ++- .../project-[project]/overview/store.ts | 225 ++++++++++++++++++ .../site-[site]/settings/deleteModal.svelte | 2 - 36 files changed, 727 insertions(+), 501 deletions(-) create mode 100644 src/routes/(console)/project-[project]/overview/keys/create/+page.svelte diff --git a/package.json b/package.json index 771e3a4f2..f83b6c58e 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,9 @@ "dependencies": { "@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864", "@appwrite.io/pink-icons": "0.25.0", - "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332", + "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@011c2131", "@appwrite.io/pink-legacy": "^1.0.1", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d", + "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@011c2131", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c19429a8f..85b8a35ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,14 +15,14 @@ importers: specifier: 0.25.0 version: 0.25.0 '@appwrite.io/pink-icons-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332 - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332(svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@011c2131 + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@011c2131(svelte@4.2.19) '@appwrite.io/pink-legacy': specifier: ^1.0.1 version: 1.0.1 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@011c2131 + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@011c2131(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -215,14 +215,14 @@ packages: resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864} version: 1.2.1 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@011c2131': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@011c2131} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@011c21311ddfbacaa53563f02a1dcba32db8b595': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@011c21311ddfbacaa53563f02a1dcba32db8b595} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 @@ -236,8 +236,8 @@ packages: '@appwrite.io/pink-legacy@1.0.1': resolution: {integrity: sha512-e5IZx2drqSxgl2WXvmr0eLfg/WiOCzuqQE8oksD+9GoFBkcL9HWvXul5GjFni3RBAN9XFRL3nUExGk4T0H8sFw==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d} + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@011c2131': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@011c2131} version: 1.0.0-next.85 peerDependencies: react-dom: ^18.0.0 @@ -4099,11 +4099,11 @@ snapshots: '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864': {} - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@011c2131(svelte@4.2.19)': dependencies: svelte: 4.2.19 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@011c21311ddfbacaa53563f02a1dcba32db8b595(svelte@4.2.19)': dependencies: svelte: 4.2.19 @@ -4116,9 +4116,9 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@011c2131(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962(svelte@4.2.19) + '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@011c21311ddfbacaa53563f02a1dcba32db8b595(svelte@4.2.19) '@floating-ui/dom': 1.6.13 '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19) '@melt-ui/svelte': 0.86.3(svelte@4.2.19) diff --git a/src/lib/charts/base.json b/src/lib/charts/base.json index 0cbfc0897..ff3d8fbcc 100644 --- a/src/lib/charts/base.json +++ b/src/lib/charts/base.json @@ -1,5 +1,121 @@ { - "backgroundColor": "rgba(255,255,255,0)", + "backgroundColor": "var(--color-bgcolor-neutral-primary)", + "categoryAxis": { + "axisLine": { + "lineStyle": { + "color": "var(--color-fgcolor-neutral-tertiary)" + }, + "show": true + }, + "axisTick": { + "lineStyle": { + "color": "var(--color-fgcolor-neutral-tertiary)" + }, + "show": true + }, + "axisLabel": { + "color": "var(--color-fgcolor-neutral-tertiary)", + "show": true + }, + "splitLine": { + "show": false + }, + "splitArea": { + "show": false + } + }, + "valueAxis": { + "axisLabel": { + "color": "var(--color-fgcolor-neutral-tertiary)", + "show": true + }, + "splitLine": { + "lineStyle": { + "color": ["var(--color-border-neutral)"] + }, + "show": true + }, + "axisLine": { + "show": false + }, + "axisTick": { + "show": false + }, + "splitArea": { + "show": false + } + }, + "logAxis": { + "axisLine": { + "lineStyle": { + "color": "var(--color-fgcolor-neutral-tertiary)" + }, + "show": true + }, + "axisTick": { + "lineStyle": { + "color": "var(--color-fgcolor-neutral-tertiary)" + }, + "show": true + }, + "axisLabel": { + "color": "var(--color-fgcolor-neutral-tertiary)", + "show": true + }, + "splitLine": { + "lineStyle": { + "color": ["var(--color-border-neutral)"] + }, + "show": true + }, + "splitArea": { + "show": false + } + }, + "timeAxis": { + "axisLine": { + "lineStyle": { + "color": "var(--color-fgcolor-neutral-tertiary)" + }, + "show": true + }, + "axisTick": { + "lineStyle": { + "color": "var(--color-fgcolor-neutral-tertiary)" + }, + "show": true + }, + "axisLabel": { + "color": "var(--color-fgcolor-neutral-tertiary)", + "show": true + }, + "splitLine": { + "lineStyle": { + "color": ["var(--color-border-neutral)"] + }, + "show": true + }, + "splitArea": { + "show": false + } + }, + "tooltip": { + "backgroundColor": "var(--color-bgcolor-neutral-primary)", + "borderColor": "var(--color-border-neutral)", + "textStyle": { + "color": "var(--color-fgcolor-neutral-secondary)" + }, + "axisPointer": { + "lineStyle": { + "color": "var(--color-border-neutral-strong)", + "width": 1 + }, + "crossStyle": { + "color": "var(--color-border-neutral-strong)", + "width": 1 + } + } + }, "textStyle": {}, "line": { "itemStyle": { @@ -12,89 +128,6 @@ "symbol": "emptyCircle", "smooth": true }, - "bar": { - "itemStyle": { - "barBorderColor": "#ccc" - } - }, - "categoryAxis": { - "axisLine": { - "show": true - }, - "axisTick": { - "show": true - }, - "axisLabel": { - "show": true - }, - "splitLine": { - "show": false - }, - "splitArea": { - "show": false - } - }, - "valueAxis": { - "axisLine": { - "show": false - }, - "axisTick": { - "show": false - }, - "axisLabel": { - "show": true - }, - "splitLine": { - "show": true - }, - "splitArea": { - "show": false - } - }, - "logAxis": { - "axisLine": { - "show": true - }, - "axisTick": { - "show": true - }, - "axisLabel": { - "show": true - }, - "splitLine": { - "show": true - }, - "splitArea": { - "show": false - } - }, - "timeAxis": { - "axisLine": { - "show": true - }, - "axisTick": { - "show": true - }, - "axisLabel": { - "show": true - }, - "splitLine": { - "show": true - }, - "splitArea": { - "show": false - } - }, - "tooltip": { - "axisPointer": { - "lineStyle": { - "width": 1 - }, - "crossStyle": { - "width": 1 - } - } - }, "timeline": { "lineStyle": { "width": 1 diff --git a/src/lib/charts/base.svelte b/src/lib/charts/base.svelte index 3c25fedde..64cfd8a20 100644 --- a/src/lib/charts/base.svelte +++ b/src/lib/charts/base.svelte @@ -4,15 +4,13 @@ import { app } from '$lib/stores/app'; import { dailyFormat, hourlyFormat, defaultConfig } from './config'; import base from './base.json'; - import light from './light.json'; - import dark from './dark.json'; import type { ECharts } from 'echarts/core'; import type { BarSeriesOption, LineSeriesOption } from 'echarts/charts'; import type { EChartsOption } from 'echarts'; import { wizard } from '$lib/stores/wizard'; - registerTheme('light', { ...base, ...light }); - registerTheme('dark', { ...base, ...dark }); + registerTheme('light', base); + registerTheme('dark', base); export let options: EChartsOption; export let series: (BarSeriesOption | LineSeriesOption)[]; diff --git a/src/lib/charts/dark.json b/src/lib/charts/dark.json index ec07fda73..9d09ce2ef 100644 --- a/src/lib/charts/dark.json +++ b/src/lib/charts/dark.json @@ -120,10 +120,10 @@ "color": "#444444" } }, - "backgroundColor": "#373B4D", - "borderColor": "#373B4D", + "backgroundColor": "var(--color-bgcolor-neutral-primary)", + "borderColor": "var(--color-border-neutral)", "textStyle": { - "color": "#F2F2F8" + "color": "var(--color-fgcolor-neutral-secondary)" } }, "timeline": { diff --git a/src/lib/charts/light.json b/src/lib/charts/light.json index e6ddb057a..d81dd9f85 100644 --- a/src/lib/charts/light.json +++ b/src/lib/charts/light.json @@ -1,149 +1,82 @@ { - "backgroundColor": "rgba(255,255,255,0)", - "title": { - "textStyle": { - "color": "#373b4d" - }, - "subtextStyle": { - "color": "#616b7c" - } - }, - "bar": { - "itemStyle": { - "barBorderColor": "#ccc" - } - }, + "backgroundColor": "var(--color-bgcolor-neutral-primary)", "categoryAxis": { "axisLine": { "lineStyle": { - "color": "#6E7079" + "color": "var(--color-fgcolor-neutral-tertiary)" } }, "axisTick": { "lineStyle": { - "color": "#6E7079" + "color": "var(--color-fgcolor-neutral-tertiary)" } }, "axisLabel": { - "color": "#6E7079" + "color": "var(--color-fgcolor-neutral-tertiary)" } }, "valueAxis": { "axisLabel": { - "color": "#6E7079" + "color": "var(--color-fgcolor-neutral-tertiary)" }, "splitLine": { "lineStyle": { - "color": ["#E8E9F0"] + "color": ["var(--color-border-neutral)"] } } }, "logAxis": { "axisLine": { "lineStyle": { - "color": "#6E7079" + "color": "var(--color-fgcolor-neutral-tertiary)" } }, "axisTick": { "lineStyle": { - "color": "#6E7079" + "color": "var(--color-fgcolor-neutral-tertiary)" } }, "axisLabel": { - "color": "#6E7079" + "color": "var(--color-fgcolor-neutral-tertiary)" }, "splitLine": { "lineStyle": { - "color": ["#E0E6F1"] + "color": ["var(--color-border-neutral)"] } } }, "timeAxis": { "axisLine": { "lineStyle": { - "color": "#6E7079" + "color": "var(--color-fgcolor-neutral-tertiary)" } }, "axisTick": { "lineStyle": { - "color": "#6E7079" + "color": "var(--color-fgcolor-neutral-tertiary)" } }, "axisLabel": { - "color": "#6E7079" + "color": "var(--color-fgcolor-neutral-tertiary)" }, "splitLine": { "lineStyle": { - "color": ["#E0E6F1"] + "color": ["var(--color-border-neutral)"] } } }, - "toolbox": { - "iconStyle": { - "borderColor": "#999" - }, - "emphasis": { - "iconStyle": { - "borderColor": "#666" - } - } - }, - "legend": { - "textStyle": { - "color": "#333" - } - }, "tooltip": { + "backgroundColor": "var(--color-bgcolor-neutral-primary)", + "borderColor": "var(--color-border-neutral)", + "textStyle": { + "color": "var(--color-fgcolor-neutral-secondary)" + }, "axisPointer": { "lineStyle": { - "color": "#ccc" + "color": "var(--color-border-neutral-strong)" }, "crossStyle": { - "color": "#ccc" - } - } - }, - "timeline": { - "lineStyle": { - "color": "#DAE1F5" - }, - "itemStyle": { - "color": "#A4B1D7" - }, - "controlStyle": { - "color": "#A4B1D7", - "borderColor": "#A4B1D7" - }, - "checkpointStyle": { - "color": "#316bf3", - "borderColor": "#fff" - }, - "label": { - "color": "#A4B1D7" - }, - "emphasis": { - "itemStyle": { - "color": "#FFF" - }, - "controlStyle": { - "color": "#A4B1D7", - "borderColor": "#A4B1D7" - }, - "label": { - "color": "#A4B1D7" - } - } - }, - "visualMap": { - "color": ["#bf444c", "#d88273", "#f6efa6"] - }, - "markPoint": { - "label": { - "color": "#eee" - }, - "emphasis": { - "label": { - "color": "#eee" + "color": "var(--color-border-neutral-strong)" } } } diff --git a/src/lib/components/empty.svelte b/src/lib/components/empty.svelte index dc8cd1374..5b6a3cb2c 100644 --- a/src/lib/components/empty.svelte +++ b/src/lib/components/empty.svelte @@ -27,7 +27,7 @@ {#if single} - + - + {:else} diff --git a/src/lib/components/filters/filters.svelte b/src/lib/components/filters/filters.svelte index 7c83db052..dac3f5b23 100644 --- a/src/lib/components/filters/filters.svelte +++ b/src/lib/components/filters/filters.svelte @@ -14,7 +14,7 @@ ValidOperators } from './store'; import { createEventDispatcher } from 'svelte'; - import { Icon } from '@appwrite.io/pink-svelte'; + import { Icon, Popover } from '@appwrite.io/pink-svelte'; import { IconFilter } from '@appwrite.io/pink-icons-svelte'; export let query = '[]'; diff --git a/src/lib/components/permissions/actions.svelte b/src/lib/components/permissions/actions.svelte index 3a5a04613..e28460fea 100644 --- a/src/lib/components/permissions/actions.svelte +++ b/src/lib/components/permissions/actions.svelte @@ -1,14 +1,13 @@ - - - - dispatch('create', ['any'])}> - Any - - dispatch('create', ['guests'])}> - All guests - - dispatch('create', ['users'])}> - All users - - (showUser = true)}>Select users - (showTeam = true)}>Select teams - (showLabel = true)}>Label - (showCustom = true)}>Custom permission + + + + + dispatch('create', ['any'])}> + Any + + dispatch('create', ['any'])}> + Any + + dispatch('create', ['guests'])}> + All guests + + dispatch('create', ['users'])}> + All users + + (showUser = true)} + >Select users + (showTeam = true)} + >Select teams + (showLabel = true)} + >Label + (showCustom = true)} + >Custom permission + - + >(new Map()); @@ -71,8 +70,6 @@ return n; }); - - showDropdown = false; } function fromPermissionString(permission: string): void { @@ -212,12 +209,12 @@ - @@ -229,12 +226,12 @@ - diff --git a/src/lib/components/permissions/roles.svelte b/src/lib/components/permissions/roles.svelte index f9b040d53..02b06f4e1 100644 --- a/src/lib/components/permissions/roles.svelte +++ b/src/lib/components/permissions/roles.svelte @@ -117,12 +117,12 @@ - @@ -134,12 +134,12 @@ - diff --git a/src/lib/components/roles/upgrade.svelte b/src/lib/components/roles/upgrade.svelte index e482387c8..d3dcf861b 100644 --- a/src/lib/components/roles/upgrade.svelte +++ b/src/lib/components/roles/upgrade.svelte @@ -9,7 +9,7 @@ - + {#if isCloud} {#if $organization?.billingPlan !== BillingPlan.FREE} Roles diff --git a/src/lib/components/secret.svelte b/src/lib/components/secret.svelte index c9e328a8c..4717a874b 100644 --- a/src/lib/components/secret.svelte +++ b/src/lib/components/secret.svelte @@ -1,37 +1,16 @@ -
    - {#if show} - {value} - {:else} - •••••••••••• - {/if} -
    - - - {show ? 'Hide secret' : 'Show secret'} - + +
    - +
    -
    + diff --git a/src/lib/components/sidebar.svelte b/src/lib/components/sidebar.svelte index 0f1b3ecca..74ab11d61 100644 --- a/src/lib/components/sidebar.svelte +++ b/src/lib/components/sidebar.svelte @@ -279,6 +279,7 @@
    + {#if subNavigation}