diff --git a/src/lib/charts/base.json b/src/lib/charts/base.json index ff3d8fbcc..3d0545ded 100644 --- a/src/lib/charts/base.json +++ b/src/lib/charts/base.json @@ -1,20 +1,20 @@ { - "backgroundColor": "var(--color-bgcolor-neutral-primary)", + "backgroundColor": "var(--bgcolor-neutral-primary)", "categoryAxis": { "axisLine": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" }, "show": true }, "axisTick": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" }, "show": true }, "axisLabel": { - "color": "var(--color-fgcolor-neutral-tertiary)", + "color": "var(--fgcolor-neutral-tertiary)", "show": true }, "splitLine": { @@ -26,12 +26,12 @@ }, "valueAxis": { "axisLabel": { - "color": "var(--color-fgcolor-neutral-tertiary)", + "color": "var(--fgcolor-neutral-tertiary)", "show": true }, "splitLine": { "lineStyle": { - "color": ["var(--color-border-neutral)"] + "color": ["var(--border-neutral)"] }, "show": true }, @@ -48,23 +48,23 @@ "logAxis": { "axisLine": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" }, "show": true }, "axisTick": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" }, "show": true }, "axisLabel": { - "color": "var(--color-fgcolor-neutral-tertiary)", + "color": "var(--fgcolor-neutral-tertiary)", "show": true }, "splitLine": { "lineStyle": { - "color": ["var(--color-border-neutral)"] + "color": ["var(--border-neutral)"] }, "show": true }, @@ -75,23 +75,23 @@ "timeAxis": { "axisLine": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" }, "show": true }, "axisTick": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" }, "show": true }, "axisLabel": { - "color": "var(--color-fgcolor-neutral-tertiary)", + "color": "var(--fgcolor-neutral-tertiary)", "show": true }, "splitLine": { "lineStyle": { - "color": ["var(--color-border-neutral)"] + "color": ["var(--border-neutral)"] }, "show": true }, @@ -100,18 +100,18 @@ } }, "tooltip": { - "backgroundColor": "var(--color-bgcolor-neutral-primary)", - "borderColor": "var(--color-border-neutral)", + "backgroundColor": "var(--bgcolor-neutral-primary)", + "borderColor": "var(--border-neutral)", "textStyle": { - "color": "var(--color-fgcolor-neutral-secondary)" + "color": "var(--fgcolor-neutral-secondary)" }, "axisPointer": { "lineStyle": { - "color": "var(--color-border-neutral-strong)", + "color": "var(--border-neutral-strong)", "width": 1 }, "crossStyle": { - "color": "var(--color-border-neutral-strong)", + "color": "var(--border-neutral-strong)", "width": 1 } } diff --git a/src/lib/charts/dark.json b/src/lib/charts/dark.json index 9d09ce2ef..0845bf4ab 100644 --- a/src/lib/charts/dark.json +++ b/src/lib/charts/dark.json @@ -120,10 +120,10 @@ "color": "#444444" } }, - "backgroundColor": "var(--color-bgcolor-neutral-primary)", - "borderColor": "var(--color-border-neutral)", + "backgroundColor": "var(--bgcolor-neutral-primary)", + "borderColor": "var(--border-neutral)", "textStyle": { - "color": "var(--color-fgcolor-neutral-secondary)" + "color": "var(--fgcolor-neutral-secondary)" } }, "timeline": { diff --git a/src/lib/charts/light.json b/src/lib/charts/light.json index d81dd9f85..1e6d3faae 100644 --- a/src/lib/charts/light.json +++ b/src/lib/charts/light.json @@ -1,82 +1,82 @@ { - "backgroundColor": "var(--color-bgcolor-neutral-primary)", + "backgroundColor": "var(--bgcolor-neutral-primary)", "categoryAxis": { "axisLine": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" } }, "axisTick": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" } }, "axisLabel": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" } }, "valueAxis": { "axisLabel": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" }, "splitLine": { "lineStyle": { - "color": ["var(--color-border-neutral)"] + "color": ["var(--border-neutral)"] } } }, "logAxis": { "axisLine": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" } }, "axisTick": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" } }, "axisLabel": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" }, "splitLine": { "lineStyle": { - "color": ["var(--color-border-neutral)"] + "color": ["var(--border-neutral)"] } } }, "timeAxis": { "axisLine": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" } }, "axisTick": { "lineStyle": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" } }, "axisLabel": { - "color": "var(--color-fgcolor-neutral-tertiary)" + "color": "var(--fgcolor-neutral-tertiary)" }, "splitLine": { "lineStyle": { - "color": ["var(--color-border-neutral)"] + "color": ["var(--border-neutral)"] } } }, "tooltip": { - "backgroundColor": "var(--color-bgcolor-neutral-primary)", - "borderColor": "var(--color-border-neutral)", + "backgroundColor": "var(--bgcolor-neutral-primary)", + "borderColor": "var(--border-neutral)", "textStyle": { - "color": "var(--color-fgcolor-neutral-secondary)" + "color": "var(--fgcolor-neutral-secondary)" }, "axisPointer": { "lineStyle": { - "color": "var(--color-border-neutral-strong)" + "color": "var(--border-neutral-strong)" }, "crossStyle": { - "color": "var(--color-border-neutral-strong)" + "color": "var(--border-neutral-strong)" } } } diff --git a/src/lib/commandCenter/panels/ai.svelte b/src/lib/commandCenter/panels/ai.svelte index 59b341f6f..357c90f6b 100644 --- a/src/lib/commandCenter/panels/ai.svelte +++ b/src/lib/commandCenter/panels/ai.svelte @@ -281,14 +281,6 @@ --logo-bg: #f2f2f8; } - :global(.theme-dark) .footer { - --sep-clr: hsl(var(--color-neutral-150)); - } - - :global(.theme-light) .footer { - --sep-clr: hsl(var(--color-neutral-30)); - } - .content { overflow: auto; padding: 1rem; @@ -324,14 +316,6 @@ } } - .footer { - .sep { - width: 1px; - height: 1.5rem; - background-color: var(--sep-clr); - } - } - .experimental { display: flex; padding: 0.09375rem 0.25rem; diff --git a/src/lib/commandCenter/panels/root.svelte b/src/lib/commandCenter/panels/root.svelte index 5a1230618..79ab6e7cb 100644 --- a/src/lib/commandCenter/panels/root.svelte +++ b/src/lib/commandCenter/panels/root.svelte @@ -68,9 +68,9 @@ src={`${base}/icons/${$app.themeInUse}/color/${command.image}.svg`} alt={command.label} /> {:else if command.icon} - + {:else} - + {/if} {command.label} @@ -103,7 +103,7 @@ diff --git a/src/lib/components/customId.svelte b/src/lib/components/customId.svelte index 6059c0c3c..9301b04a1 100644 --- a/src/lib/components/customId.svelte +++ b/src/lib/components/customId.svelte @@ -28,7 +28,7 @@ + --input-background-color="var(--bgcolor-neutral-primary)"> diff --git a/src/lib/components/filePicker.svelte b/src/lib/components/filePicker.svelte index d9dc6b9e3..2ed2c0048 100644 --- a/src/lib/components/filePicker.svelte +++ b/src/lib/components/filePicker.svelte @@ -20,11 +20,11 @@ import FormList from '$lib/elements/forms/formList.svelte'; import { writable } from 'svelte/store'; import { onMount } from 'svelte'; - import Heading from './heading.svelte'; import { clickOnEnter } from '$lib/helpers/a11y'; import Empty from './empty.svelte'; import { base } from '$app/paths'; import { page } from '$app/stores'; + import { Typography } from '@appwrite.io/pink-svelte'; export let show: boolean; export let mimeTypeQuery: string = 'image/'; @@ -446,7 +446,7 @@
@@ -476,15 +476,12 @@ noMedia --card-bg-color="transparent" --shadow-small="none" - --color-border="var(--color-neutral-15)"> + --border="var(--color-neutral-15)">
- - diff --git a/src/lib/components/git/connectGit.svelte b/src/lib/components/git/connectGit.svelte index 66e613267..0d04da858 100644 --- a/src/lib/components/git/connectGit.svelte +++ b/src/lib/components/git/connectGit.svelte @@ -45,8 +45,8 @@ title="No installation was added to the project yet" description="Add an installation to connect repositories"> - diff --git a/src/routes/(console)/project-[project]/sites/create-site/productionBranch.svelte b/src/lib/components/git/productionBranchFieldset.svelte similarity index 92% rename from src/routes/(console)/project-[project]/sites/create-site/productionBranch.svelte rename to src/lib/components/git/productionBranchFieldset.svelte index 6d344d04e..3be6c89f3 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/productionBranch.svelte +++ b/src/lib/components/git/productionBranchFieldset.svelte @@ -1,7 +1,7 @@ -
-
-
- -
-
- -
- -
- -
-
+ + + + + +
+ +
+
+ + + +
+ + -
-
-
-
    + + -
-
-
+ + +
- - diff --git a/src/lib/components/heading.svelte b/src/lib/components/heading.svelte deleted file mode 100644 index 9ef0315f6..000000000 --- a/src/lib/components/heading.svelte +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts index 6717c215e..10ef82cd3 100644 --- a/src/lib/components/index.ts +++ b/src/lib/components/index.ts @@ -46,7 +46,6 @@ export { default as Tabs } from './tabs.svelte'; export { default as Tab } from './tab.svelte'; export { default as EventModal } from './eventModal.svelte'; export { default as Status } from './status.svelte'; -export { default as Heading } from './heading.svelte'; export { default as Output } from './output.svelte'; export { default as Support } from './support.svelte'; export { default as ViewSelector } from './viewSelector.svelte'; diff --git a/src/lib/components/mfaChallengeFormList.svelte b/src/lib/components/mfaChallengeFormList.svelte index e04952d95..65b55acea 100644 --- a/src/lib/components/mfaChallengeFormList.svelte +++ b/src/lib/components/mfaChallengeFormList.svelte @@ -33,7 +33,6 @@ export let factors: Models.MfaFactors & { recoveryCode: boolean }; /** If true, the form will be submitted automatically when the code is entered. */ - export let autoSubmit: boolean = true; export let showVerifyButton: boolean = true; export let disabled: boolean = false; export let challenge: Models.MfaChallenge; diff --git a/src/lib/components/modal.svelte b/src/lib/components/modal.svelte index ad51b11c8..ebb4da472 100644 --- a/src/lib/components/modal.svelte +++ b/src/lib/components/modal.svelte @@ -8,7 +8,6 @@ export let show = false; export let error: string = null; - export let closable = true; export let dismissible = true; export let onSubmit: (e: SubmitEvent) => Promise | void = function () { return; diff --git a/src/lib/components/navbar.svelte b/src/lib/components/navbar.svelte index 8f73da3f7..3f7f5fe86 100644 --- a/src/lib/components/navbar.svelte +++ b/src/lib/components/navbar.svelte @@ -94,12 +94,14 @@ export let showAccountMenu = false; let activeTheme = $app.theme; + let shouldAnimateThemeToggle = false; $: { if (activeTheme) { updateTheme(activeTheme); } } + $: currentOrg = organizations.find((org) => org.isSelected); $: selectedProject = currentOrg?.projects.find((project) => project.isSelected); @@ -120,7 +122,7 @@
{#if selectedProject && selectedProject.pingCount === 0} -
+
+ on:click={toggleCommandCenter} + icon> {isMac() ? '⌘ + K' : 'Ctrl + K'} @@ -194,6 +197,7 @@ { showAccountMenu = !showAccountMenu; + shouldAnimateThemeToggle = false; if (showAccountMenu) { trackEvent('click_menu_dropdown'); } @@ -234,17 +238,31 @@ direction="row" alignItems="center"> Theme - +
+ { + shouldAnimateThemeToggle = true; + }} + buttons={[ + { + id: 'light', + label: 'Light', + icon: IconSun + }, + { + id: 'dark', + label: 'Dark', + icon: IconMoon + }, + { + id: 'auto', + label: 'System', + icon: IconMode + } + ]}> +
@@ -356,8 +374,8 @@ align-items: center; gap: var(--space-4, 8px); border-radius: var(--border-radius-xs, 6px); - border: var(--border-width-s, 1px) solid var(--color-border-neutral-strong, #d8d8db); - background: var(--color-bgcolor-neutral-primary, #fff); + border: var(--border-width-s, 1px) solid var(--border-neutral-strong, #d8d8db); + background: var(--bgcolor-neutral-primary, #fff); cursor: pointer; } @@ -404,4 +422,8 @@ /* `desltop` is not a typo—it comes from the `pink2/legacy` module! */ inline-size: var(--p-drop-width-size-desltop); } + + :global(.keepTransformTransition span) { + transition: transform 0.2s ease-out !important; + } diff --git a/src/lib/components/paginator.svelte b/src/lib/components/paginator.svelte index 983b49580..ef951d58e 100644 --- a/src/lib/components/paginator.svelte +++ b/src/lib/components/paginator.svelte @@ -17,7 +17,7 @@ {#if !hideFooter} - + Total results: {total}
diff --git a/src/lib/components/permissions/roles.svelte b/src/lib/components/permissions/roles.svelte index 02b06f4e1..7af6f9e8c 100644 --- a/src/lib/components/permissions/roles.svelte +++ b/src/lib/components/permissions/roles.svelte @@ -1,22 +1,14 @@ {#if [...$groups.keys()]?.length} - - - Role - - - - {#each [...$groups.keys()].sort(sortRoles) as role} - - - - - -
- -
-
-
- {/each} -
-
+ + + Role + + + {#each [...$groups.keys()].sort(sortRoles) as role} + + + + + + + + + + + {/each} + - import { tooltip } from '$lib/actions/tooltip'; import { sdk } from '$lib/stores/sdk'; import type { Models } from '@appwrite.io/console'; - import { tick } from 'svelte'; import { AvatarInitials } from '../'; - import Output from '../output.svelte'; + import { + Button, + Divider, + Icon, + Layout, + Link, + Popover, + Spinner, + Typography + } from '@appwrite.io/pink-svelte'; + import Avatar from '../avatar.svelte'; + import { IconAnonymous, IconExternalLink, IconMinusSm } from '@appwrite.io/pink-icons-svelte'; + import { base } from '$app/paths'; + import { page } from '$app/stores'; export let role: string; - let content: HTMLDivElement; - let data = null; - let isFetching = false; - async function getData( permission: string ): Promise< @@ -20,139 +27,85 @@ const role = permission.split(':')[0]; const id = permission.split(':')[1].split('/')[0]; if (role === 'user') { - const user = await sdk.forProject.users.get(id); - return user; + return await sdk.forProject.users.get(id); } if (role === 'team') { - const team = await sdk.forProject.teams.get(id); - return team; + return await sdk.forProject.teams.get(id); } } -
-
- {#if role === 'users'} -
Users
- {:else if role === 'guests'} -
Guests
- {:else if role === 'any'} -
Any
- {:else} -
{ - data = n; - }) - .finally(() => { - tick().then(() => { - instance.setContent(content); - }); - }); - } - }}> - {role} -
-
-
- {#if data} - {@const isUser = role.startsWith('user')} - {@const isTeam = role.startsWith('team')} - {@const isAnonymous = !data.email && !data.phone && isUser} - -
- {/if} -
-
- - - + {#if data?.phone} + Phone: {data?.phone} + {/if} +
+ + View user + + +
+ {:else if isTeam} + Members: {data?.total} +
+ + View team + + +
+ {/if} + + {/await} + {/key} +
+ +{/if} diff --git a/src/lib/components/permissions/team.svelte b/src/lib/components/permissions/team.svelte index c1a39f9ba..340d1961d 100644 --- a/src/lib/components/permissions/team.svelte +++ b/src/lib/components/permissions/team.svelte @@ -93,23 +93,14 @@ - Text + {team.name} - Secondary Text + color="--fgcolor-neutral-tertiary"> + {team.$id} - - - - {team.name} - - - {team.$id} - - {/each} diff --git a/src/lib/components/permissions/user.svelte b/src/lib/components/permissions/user.svelte index 4f2407cba..c31f58d9f 100644 --- a/src/lib/components/permissions/user.svelte +++ b/src/lib/components/permissions/user.svelte @@ -17,13 +17,7 @@ Table, Typography } from '@appwrite.io/pink-svelte'; - import { - IconAnonymous, - IconChartSquareBar, - IconCheck, - IconMinus, - IconMinusSm - } from '@appwrite.io/pink-icons-svelte'; + import { IconAnonymous, IconMinusSm } from '@appwrite.io/pink-icons-svelte'; export let show: boolean; export let groups: Writable>; @@ -105,7 +99,7 @@ >{user.name} + color="--fgcolor-neutral-tertiary"> {user.$id} @@ -120,7 +114,7 @@ : user.phone} + color="--fgcolor-neutral-tertiary"> {user.$id} @@ -134,7 +128,7 @@ >{user.name ? user.name : '-'} + color="--fgcolor-neutral-tertiary"> {user.$id} diff --git a/src/lib/components/searchQuery.svelte b/src/lib/components/searchQuery.svelte index 7add96a1a..360d11da0 100644 --- a/src/lib/components/searchQuery.svelte +++ b/src/lib/components/searchQuery.svelte @@ -63,9 +63,8 @@ {placeholder} {disabled} {required} - type="search" bind:value={search} - --color-bgcolor-neutral-default="var(--color-bgcolor-neutral-primary)"> + --bgcolor-neutral-default="var(--bgcolor-neutral-primary)"> diff --git a/src/lib/components/sidebar.svelte b/src/lib/components/sidebar.svelte index cdfacfb81..bfebc14ca 100644 --- a/src/lib/components/sidebar.svelte +++ b/src/lib/components/sidebar.svelte @@ -70,12 +70,12 @@ $: isOnProjectSettings = /^\/console\/project-[a-zA-Z0-9-]+\/settings$/.test(pathname); const projectOptions = [ - { name: 'Auth', icon: IconUserGroup, slug: 'auth' }, - { name: 'Databases', icon: IconDatabase, slug: 'databases' }, - { name: 'Functions', icon: IconLightningBolt, slug: 'functions' }, - { name: 'Messaging', icon: IconChatBubble, slug: 'messaging' }, - { name: 'Sites', icon: IconGlobeAlt, slug: 'sites' }, - { name: 'Storage', icon: IconFolder, slug: 'storage' } + { name: 'Auth', icon: IconUserGroup, slug: 'auth', category: 'build' }, + { name: 'Databases', icon: IconDatabase, slug: 'databases', category: 'build' }, + { name: 'Functions', icon: IconLightningBolt, slug: 'functions', category: 'build' }, + { name: 'Messaging', icon: IconChatBubble, slug: 'messaging', category: 'build' }, + { name: 'Storage', icon: IconFolder, slug: 'storage', category: 'build' }, + { name: 'Sites', icon: IconGlobeAlt, slug: 'sites', category: 'deploy' } ]; @@ -95,7 +95,7 @@ state = 'closed'; sideBarIsOpen = false; }}> - +
{#if state !== 'icons'}
- {progressCard.title} - {progressCard.percentage}% complete
{/if} @@ -157,12 +155,45 @@
- Products + Build
- {#each projectOptions as projectOption} + {@const buildProjectOptions = projectOptions.filter( + (projectOption) => projectOption.category === 'build' + )} + {#each buildProjectOptions as projectOption} + + { + trackEvent(`click_menu_${projectOption.slug}`); + sideBarIsOpen = false; + }} + > + {projectOption.name} + {projectOption.name} + + {/each} +
+ +
+
+ Deploy + +
+ {@const deployProjectOptions = projectOptions.filter( + (projectOption) => projectOption.category === 'deploy' + )} + {#each deployProjectOptions as projectOption} {#if showHeader} -

Support

+ Support {/if} {#each supportOptions as option, index} {#if showCloudSupport(index)} + class="support-option-card " + style="border-radius: var(--border-radius-small, 8px); --gap-xl: 16px">
-

{option.label}

- -

- {option.description} -

+ {option.label} + {option.description}
{#if option.showSupport} @@ -177,12 +175,12 @@ :global(.theme-dark .support-option-card) { /* override required due to the card's background color */ - background: var(--color-bgcolor-neutral-default, #19191c) !important; + background: var(--bgcolor-neutral-default, #19191c) !important; } :global(.theme-light .support-option-card) { - border: 1px solid var(--color-border-neutral, #ededf0); + border: 1px solid var(--border-neutral, #ededf0); /* override required due to the card's background color */ - background: var(--color-bgcolor-neutral-default, #fafafb) !important; + background: var(--bgcolor-neutral-default, #fafafb) !important; } diff --git a/src/lib/components/uploadBox.svelte b/src/lib/components/uploadBox.svelte index 9520cd3c7..721917ca1 100644 --- a/src/lib/components/uploadBox.svelte +++ b/src/lib/components/uploadBox.svelte @@ -4,5 +4,13 @@ {#if $uploader?.isOpen} - uploader.close()} /> + { + return { + name: file.name, + size: file.size, + status: file.status + }; + })} + on:close={() => uploader.close()} /> {/if} diff --git a/src/lib/components/usageCard.svelte b/src/lib/components/usageCard.svelte index fc4888741..1fd9a03aa 100644 --- a/src/lib/components/usageCard.svelte +++ b/src/lib/components/usageCard.svelte @@ -8,12 +8,12 @@ - + {description} {#if value !== null && value !== undefined} - {value} {:else} diff --git a/src/lib/components/viewSelector.svelte b/src/lib/components/viewSelector.svelte index 2caa5f545..564f2bff4 100644 --- a/src/lib/components/viewSelector.svelte +++ b/src/lib/components/viewSelector.svelte @@ -23,7 +23,6 @@ export let hideView = false; export let hideColumns = false; export let allowNoColumns = false; - export let fullWidthMobile = false; onMount(async () => { if (isCustomCollection) { @@ -115,7 +114,7 @@ {#if !hideView} @@ -43,6 +45,7 @@ - + diff --git a/src/lib/elements/forms/inputSearch.svelte b/src/lib/elements/forms/inputSearch.svelte index 45c683b33..636bec750 100644 --- a/src/lib/elements/forms/inputSearch.svelte +++ b/src/lib/elements/forms/inputSearch.svelte @@ -48,7 +48,6 @@ {required} {autofocus} {label} - type="search" bind:value on:input={valueChange}> diff --git a/src/lib/elements/forms/inputSelectSearch.svelte b/src/lib/elements/forms/inputSelectSearch.svelte index 260e7ac02..0ca641f95 100644 --- a/src/lib/elements/forms/inputSelectSearch.svelte +++ b/src/lib/elements/forms/inputSelectSearch.svelte @@ -144,15 +144,3 @@ {error} {/if}
--> - - diff --git a/src/lib/elements/selectSearchCheckbox.svelte b/src/lib/elements/selectSearchCheckbox.svelte index e54a4fd33..b7d854c88 100644 --- a/src/lib/elements/selectSearchCheckbox.svelte +++ b/src/lib/elements/selectSearchCheckbox.svelte @@ -3,7 +3,6 @@ import InputCheckbox from './forms/inputCheckbox.svelte'; export let value = false; - export let padding: number | null = null; diff --git a/src/lib/helpers/load.ts b/src/lib/helpers/load.ts index 88cd98c38..3dd28f126 100644 --- a/src/lib/helpers/load.ts +++ b/src/lib/helpers/load.ts @@ -18,10 +18,14 @@ export enum View { Grid = 'grid' } -export function getView(url: URL, route: Page['route'], fallback: View): View { - return (url.searchParams.get('view') ?? preferences.get(route).view) === View.Grid +export function getView(url: URL, route: Page['route'], fallback: View, overwrite?: View): View { + const view = url.searchParams.get('view') ?? preferences.get(route).view; + + return view === View.Grid ? View.Grid - : (View.Table ?? fallback); + : view === View.Table + ? View.Table + : (overwrite ?? View.Table ?? fallback); } export function getColumns(route: Page['route'], fallback: string[]): string[] { diff --git a/src/lib/layout/container.svelte b/src/lib/layout/container.svelte index 8f6099b0a..abe25a4a9 100644 --- a/src/lib/layout/container.svelte +++ b/src/lib/layout/container.svelte @@ -28,7 +28,7 @@ } @media (min-width: 1024px) { margin-inline: auto; - max-width: min(944px, calc(944px - 5rem)); + max-width: calc(944px - 11rem); } @media (min-width: 1280px) { margin-inline: auto; diff --git a/src/lib/layout/containerHeader.svelte b/src/lib/layout/containerHeader.svelte index a989113f1..7294e8550 100644 --- a/src/lib/layout/containerHeader.svelte +++ b/src/lib/layout/containerHeader.svelte @@ -1,5 +1,5 @@
- {title} + {title}
import { hoursToDays, timeFromNow, toLocaleDateTime } from '$lib/helpers/date'; import { log } from '$lib/stores/logs'; - import { Alert, Card, Code, Copy, Heading, Id, SvgIcon, Tab, Tabs } from '../components'; + import { Alert, Card, Code, Copy, Id, SvgIcon, Tab, Tabs } from '../components'; import { calculateTime } from '$lib/helpers/timeConversion'; import { TableBody, @@ -18,7 +18,7 @@ import { organization } from '$lib/stores/organization'; import { Button } from '$lib/elements/forms'; import { BillingPlan } from '$lib/constants'; - import { Tooltip } from '@appwrite.io/pink-svelte'; + import { Tooltip, Typography } from '@appwrite.io/pink-svelte'; let selectedRequest = 'parameters'; let selectedResponse = 'logs'; @@ -201,7 +201,7 @@
- Request + Request
- Response + Request
import { base } from '$app/paths'; - import { Avatar, AvatarInitials, Card, Heading } from '$lib/components'; + import { Avatar, AvatarInitials, Card } from '$lib/components'; import AppwriteLogoDark from '$lib/images/appwrite-logo-dark.svg'; import AppwriteLogoLight from '$lib/images/appwrite-logo-light.svg'; import LoginDark from '$lib/images/login/login-dark-mode.png'; @@ -93,26 +93,7 @@ alt="promo" />
-
- - {generateTitle()} - -
-
- - {generateTitle()} - -
+ {generateTitle()}

{generateDesc()}

@@ -122,26 +103,7 @@
-
- - {generateTitle()} - -
-
- - {generateTitle()} - -
+ {generateTitle()}

{generateDesc()}

diff --git a/src/lib/layout/usage.svelte b/src/lib/layout/usage.svelte index d6b71fc91..71d376898 100644 --- a/src/lib/layout/usage.svelte +++ b/src/lib/layout/usage.svelte @@ -84,7 +84,7 @@
+ style:--input-background-color="var(--bgcolor-neutral-primary)"> goto(`${path}/${e.detail}`)} id="period" diff --git a/src/lib/layout/usageMultiple.svelte b/src/lib/layout/usageMultiple.svelte index c2756141b..cf42b1bbb 100644 --- a/src/lib/layout/usageMultiple.svelte +++ b/src/lib/layout/usageMultiple.svelte @@ -2,7 +2,7 @@ import { Container } from '$lib/layout'; import { BarChart, Legend, type LegendData } from '$lib/charts'; import { accumulateFromEndingTotal } from '$lib/layout/usage.svelte'; - import { Card, Heading, SecondaryTabs, SecondaryTabsItem } from '$lib/components'; + import { Card, SecondaryTabs, SecondaryTabsItem } from '$lib/components'; import { page } from '$app/stores'; import { type Models } from '@appwrite.io/console'; import { formatNumberWithCommas } from '$lib/helpers/numbers'; @@ -20,7 +20,7 @@ {#if showHeader}
- {title} + {title} {#if path} diff --git a/src/lib/layout/wizardCover.svelte b/src/lib/layout/wizardCover.svelte index 4e40a3b7b..ee6ccd7f9 100644 --- a/src/lib/layout/wizardCover.svelte +++ b/src/lib/layout/wizardCover.svelte @@ -60,6 +60,6 @@ height: 100%; max-height: 100vh; overflow-y: auto; - background: var(--color-bgcolor-neutral-primary); + background: var(--bgcolor-neutral-primary); } diff --git a/src/lib/layout/wizardSecondaryContainer.svelte b/src/lib/layout/wizardSecondaryContainer.svelte index f6b8f6908..167fbba6c 100644 --- a/src/lib/layout/wizardSecondaryContainer.svelte +++ b/src/lib/layout/wizardSecondaryContainer.svelte @@ -1,9 +1,9 @@ - -{#if hasInstallations} - {#await loadInstallations()} -
-
    - -
-
    - -
-
- {:then installations} - - { - return { - label: entry.organization, - value: entry.$id - }; - })} - on:change={() => { - search = ''; - installation.set( - installations.find((entry) => entry.$id === selectedInstallation) - ); - }} - bind:value={selectedInstallation} /> - - - {/await} -

- Manage organization configuration in your project settings. -

- {#if selectedInstallation} - {#await loadRepositories(selectedInstallation, search)} -
-
-
- {:then response} - {#if response?.length} -
    - {#each response as repo, i} -
  • -
    -
    - {#if action === 'select'} - repository.set(repo)} - value={repo.id} /> - {/if} -
    - {#if repo.runtime} - {repo.name} - {/if} -
    -
    - {repo.name} - {#if repo.private} -
    - {#if action === 'button'} -
    - -
    - {/if} -
    -
    -
  • - {/each} -
- {:else if search} - -
-
- Sorry we couldn't find "{search}" -

There are no repositories that match your search.

-
-
- -
-
-
- {:else} - - {/if} - {/await} - {/if} -{:else} -
- - - - -
-{/if} - - diff --git a/src/lib/wizards/functions/components/specificationsTooltip.svelte b/src/lib/wizards/functions/components/specificationsTooltip.svelte deleted file mode 100644 index 279f5a0f1..000000000 --- a/src/lib/wizards/functions/components/specificationsTooltip.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - -
- - diff --git a/src/lib/wizards/functions/connectExisting.svelte b/src/lib/wizards/functions/connectExisting.svelte deleted file mode 100644 index a619870d2..000000000 --- a/src/lib/wizards/functions/connectExisting.svelte +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/src/lib/wizards/functions/cover.svelte b/src/lib/wizards/functions/cover.svelte deleted file mode 100644 index a7d430b66..000000000 --- a/src/lib/wizards/functions/cover.svelte +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - Create function -
-
-
-
- Connect Git repository -

- Create and deploy a function with a connected git repository. -

-
- -
- {#if isSelfHosted && !isVcsEnabled} -
-
- - Connect your self-hosted instance to Git - -

- Configure your self-hosted instance to connect your function to - a Git repository. - Learn more. -

-
-
- {/if} -
- -
-
- Quick start -

Use a starter template.

-
    - {#await Promise.all([$baseRuntimesList, $starterTemplate])} - {#each Array(6) as _i} -
  • - -
  • - {/each} - {:then [response, quickStart]} - {@const runtimes = new Map( - response.runtimes.map((r) => [r.$id, r]) - )} - {@const templates = quickStart.runtimes.filter((template) => - runtimes.has(template.name) - )} - {#each templates.slice(0, 6) as template} - {@const runtimeDetail = runtimes.get(template.name)} -
  • - -
  • - {/each} - - {#if templates.length < 6} - -
  • - - - -
  • - More runtimes coming soon -
    - {/if} - {/await} -
-
- - -
-
- Templates -

- Find the right template for your use case. -

- -
    - {#await $featuredTemplatesList} - {#each Array(3) as _i} -
  • - -
  • - {/each} - {:then templatesListWithoutStarter} - {#each templatesListWithoutStarter.templates as template} -
  • - -
  • - {/each} - {/await} -
-
- -
-
-

- You can also create a function - or using the CLI. - Learn more. -

-
-
- - - diff --git a/src/lib/wizards/functions/createGit.svelte b/src/lib/wizards/functions/createGit.svelte deleted file mode 100644 index 751487c0e..000000000 --- a/src/lib/wizards/functions/createGit.svelte +++ /dev/null @@ -1,91 +0,0 @@ - - - diff --git a/src/lib/wizards/functions/createManual.svelte b/src/lib/wizards/functions/createManual.svelte deleted file mode 100644 index 586b580c6..000000000 --- a/src/lib/wizards/functions/createManual.svelte +++ /dev/null @@ -1,109 +0,0 @@ - - - diff --git a/src/lib/wizards/functions/createTemplate.svelte b/src/lib/wizards/functions/createTemplate.svelte deleted file mode 100644 index ae703bc45..000000000 --- a/src/lib/wizards/functions/createTemplate.svelte +++ /dev/null @@ -1,128 +0,0 @@ - - - diff --git a/src/lib/wizards/functions/steps/createRepository.svelte b/src/lib/wizards/functions/steps/createRepository.svelte deleted file mode 100644 index aecb74761..000000000 --- a/src/lib/wizards/functions/steps/createRepository.svelte +++ /dev/null @@ -1,179 +0,0 @@ - - - - Repository - - Select a Git repository that will trigger your function deployments when updated. - - - {#if $templateConfig.repositoryBehaviour === 'existing'} - - {:else} - {#await loadInstallations()} -
-
-
- {:then installations} - {#if hasInstallations} - - { - return { - label: entry.organization, - value: entry.$id - }; - })} - on:change={() => { - $installation = installations.find( - (entry) => entry.$id === selectedInstallationId - ); - }} - bind:value={selectedInstallationId} /> - - {:else} -
- - - - -
- {/if} - {#if $installation} - -
-
- -
-
-
- {$installation.organization}/{$templateConfig.repositoryName} -
-
-
-
- - - - -
-
- {/if} - {/await} - {/if} - diff --git a/src/lib/wizards/functions/steps/executeAccess.svelte b/src/lib/wizards/functions/steps/executeAccess.svelte deleted file mode 100644 index 64f2ec6d9..000000000 --- a/src/lib/wizards/functions/steps/executeAccess.svelte +++ /dev/null @@ -1,21 +0,0 @@ - - - - Permissions - - Choose who can execute this function using the client API. For more information, visit our - - Permissions guide. - - - - diff --git a/src/lib/wizards/functions/steps/functionConfiguration.svelte b/src/lib/wizards/functions/steps/functionConfiguration.svelte deleted file mode 100644 index cafa196af..000000000 --- a/src/lib/wizards/functions/steps/functionConfiguration.svelte +++ /dev/null @@ -1,120 +0,0 @@ - - - - Configuration - - Set your deployment configuration and any build commands here. - - - - {#if !showCustomId} -
- (showCustomId = !showCustomId)}> - -
- {:else} - - {/if} - - {#if detectingRuntime} - - {:else} - - {/if} - - - - - Build commands - (optional) - - - - - -
-
diff --git a/src/lib/wizards/functions/steps/gitConfiguration.svelte b/src/lib/wizards/functions/steps/gitConfiguration.svelte deleted file mode 100644 index 8788b50cc..000000000 --- a/src/lib/wizards/functions/steps/gitConfiguration.svelte +++ /dev/null @@ -1,94 +0,0 @@ - - - - Branch - - Choose the Git branch that will trigger your function deployments when updated. - - - -
- -
{$installation.organization}/{$repository.name}
-
- {#await loadBranches()} -
-
-
- {:then branches} - {@const options = - branches - ?.map((branch) => { - return { - value: branch.name, - label: branch.name - }; - }) - ?.sort((a, b) => { - return a.label > b.label ? 1 : -1; - }) ?? []} -
- - { - $choices.branch = event.detail.value; - }} - interactiveOutput - name="branches" - {options} /> - - - -
- {/await} - -

- Visit your repository on GitHub. -

- diff --git a/src/lib/wizards/functions/steps/manualConfiguration.svelte b/src/lib/wizards/functions/steps/manualConfiguration.svelte deleted file mode 100644 index 11e86decb..000000000 --- a/src/lib/wizards/functions/steps/manualConfiguration.svelte +++ /dev/null @@ -1,42 +0,0 @@ - - - - Configuration - - Set your deployment configuration and any build commands here. - - - - - - - - Build commands - (optional) - - - - - - - diff --git a/src/lib/wizards/functions/steps/manualDetails.svelte b/src/lib/wizards/functions/steps/manualDetails.svelte deleted file mode 100644 index 9167474d0..000000000 --- a/src/lib/wizards/functions/steps/manualDetails.svelte +++ /dev/null @@ -1,84 +0,0 @@ - - - - Details - Create and deploy your function manually. - - - - - - - - {#if !showCustomId} -
- (showCustomId = !showCustomId)}> - -
- {:else} - - {/if} -
-
diff --git a/src/lib/wizards/functions/steps/selectRepository.svelte b/src/lib/wizards/functions/steps/selectRepository.svelte deleted file mode 100644 index 8ae8a1b14..000000000 --- a/src/lib/wizards/functions/steps/selectRepository.svelte +++ /dev/null @@ -1,23 +0,0 @@ - - - - Repository - - Select a Git repository that will trigger your function deployments when updated. - - - diff --git a/src/lib/wizards/functions/steps/templateConfiguration.svelte b/src/lib/wizards/functions/steps/templateConfiguration.svelte deleted file mode 100644 index 190e338e0..000000000 --- a/src/lib/wizards/functions/steps/templateConfiguration.svelte +++ /dev/null @@ -1,128 +0,0 @@ - - - - {$template.name} - - {$template.tagline} - - - - {#await loadRuntimes()} - - {:then options} - - {/await} - {#await loadSpecifications()} - - {:then specificationOptions} - - {/await} - - {#if !showCustomId} -
- (showCustomId = !showCustomId)}> - -
- {:else} - - {/if} -
-
diff --git a/src/lib/wizards/functions/steps/templateDeployment.svelte b/src/lib/wizards/functions/steps/templateDeployment.svelte deleted file mode 100644 index 524ce1272..000000000 --- a/src/lib/wizards/functions/steps/templateDeployment.svelte +++ /dev/null @@ -1,62 +0,0 @@ - - - - Deployment - - -

Connect with Git Recommended

- - Create a new repository - Clone the template to a newly created repository in your organization. - - - Add to existing repository - Clone the template to an existing repository in your organization. - - -

Quick start

- - Connect later - Deploy now and continue development via CLI, or connect Git from your function settings. - -
-
diff --git a/src/lib/wizards/functions/steps/templatePermissions.svelte b/src/lib/wizards/functions/steps/templatePermissions.svelte deleted file mode 100644 index 42a4474f1..000000000 --- a/src/lib/wizards/functions/steps/templatePermissions.svelte +++ /dev/null @@ -1,90 +0,0 @@ - - - - Permissions - - Enable recommended scopes and execute access for when your function is deployed. - -

Execute permissions

- - - - {#if templateScopes.length > 0} -

Function scopes

- - {#each templateScopes as scope, i} - - {#if i < templateScopes.length - 1} -
- {/if} - {/each} -
- {/if} -
diff --git a/src/lib/wizards/functions/steps/templateVariables.svelte b/src/lib/wizards/functions/steps/templateVariables.svelte deleted file mode 100644 index c7db15bd4..000000000 --- a/src/lib/wizards/functions/steps/templateVariables.svelte +++ /dev/null @@ -1,124 +0,0 @@ - - - - Variables - - Edit the values of the environment variables that will be passed to your function at - runtime. - - {#if $template?.variables?.length} - {#if requiredVariables?.length} - - - Required variables - - {requiredVariables.length} - - - - {#each requiredVariables as variable} -
- - - {@html variable.description} - -
- {/each} -
-
-
- {/if} - - {#if optionalVariables?.length} - - - Optional variables - - {optionalVariables.length} - - - - {#each optionalVariables as variable} -
- - - - {@html variable.description} - -
- {/each} -
-
-
- {/if} - {:else} - -

There are no environment variables to configure.

-
- {/if} -
diff --git a/src/lib/wizards/functions/store.ts b/src/lib/wizards/functions/store.ts deleted file mode 100644 index 6613438a2..000000000 --- a/src/lib/wizards/functions/store.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { page } from '$app/stores'; -import type { WizardStepsType } from '$lib/layout/wizardWithSteps.svelte'; -import type { Models } from '@appwrite.io/console'; -import { derived, writable, type Writable } from 'svelte/store'; - -export const template = writable(); -export const templateConfig = writable<{ - $id: string; - name: string; - runtime: string; - variables: { [key: string]: unknown }; - repositoryBehaviour: 'new' | 'existing' | 'manual'; - repositoryName?: string; - repositoryPrivate?: boolean; - repositoryId: string; - execute?: boolean; - scopes?: string[]; - specification?: string; -}>(); -export const repository = writable(); -export const installation = writable(); -export const choices = writable<{ - branch: string; - rootDir: string; - silentMode: boolean; -}>({ - branch: null, - rootDir: null, - silentMode: null -}); - -export const installations = derived( - page, - ($page) => $page.data.installations as Models.InstallationList -); - -const initialCreateFunction: Partial = { - $id: null, - name: null, - entrypoint: null, - execute: [], - runtime: null, - commands: null -}; - -function createFunctionStore() { - const store = writable>({ - ...initialCreateFunction - }); - - const reset = () => { - store.set({ ...initialCreateFunction }); - }; - - return { - ...store, - reset - }; -} -export const createFunction = createFunctionStore(); - -export const createFunctionDeployment = writable(); - -export const templateStepsComponents: Writable = writable(new Map()); diff --git a/src/routes/(console)/(migration-wizard)/resource-form.svelte b/src/routes/(console)/(migration-wizard)/resource-form.svelte index 5ddae52fa..ac2327914 100644 --- a/src/routes/(console)/(migration-wizard)/resource-form.svelte +++ b/src/routes/(console)/(migration-wizard)/resource-form.svelte @@ -418,7 +418,7 @@ height: 1.5rem; flex-shrink: 0; border-radius: 100%; - border: 1px solid hsl(var(--color-border)); + border: 1px solid hsl(var(--border)); position: relative; i { @@ -431,7 +431,7 @@ } .buttons-list { - border-block-end: 1px solid hsl(var(--color-border)); + border-block-end: 1px solid hsl(var(--border)); padding-block-end: 0.625rem; } diff --git a/src/routes/(console)/+error.svelte b/src/routes/(console)/+error.svelte index 6b71031bd..075ff3d8f 100644 --- a/src/routes/(console)/+error.svelte +++ b/src/routes/(console)/+error.svelte @@ -1,15 +1,17 @@ -
- {$page.error.status || 'Invalid Argument'} - {$page.error.message} +
+ {$page.error.status || 'Invalid Argument'} + {$page.error.message} +
+
diff --git a/src/routes/(console)/account/organizations/+page.svelte b/src/routes/(console)/account/organizations/+page.svelte index 5ea70ddb9..b5286b08d 100644 --- a/src/routes/(console)/account/organizations/+page.svelte +++ b/src/routes/(console)/account/organizations/+page.svelte @@ -5,7 +5,6 @@ Empty, AvatarGroup, CardContainer, - Heading, PaginationWithLimit } from '$lib/components'; import { Button } from '$lib/elements/forms'; @@ -21,7 +20,7 @@ import { toLocaleDate } from '$lib/helpers/date'; import { BillingPlan } from '$lib/constants'; import { goto } from '$app/navigation'; - import { Icon, Tooltip } from '@appwrite.io/pink-svelte'; + import { Icon, Tooltip, Typography } from '@appwrite.io/pink-svelte'; import { IconPlus } from '@appwrite.io/pink-icons-svelte'; export let data: PageData; @@ -47,7 +46,7 @@
- Organizations + Organizations - - - + + {#if domain} + {:else}
@@ -72,7 +42,7 @@ label="Domain" id="domain" name="domain" - bind:value={domain} + bind:value={domainName} required placeholder="example.com" /> @@ -87,7 +57,7 @@ - {#if domainData} + {#if domain} {/if} diff --git a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/settings/+page.svelte b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/settings/+page.svelte index dd478c967..7b08129ed 100644 --- a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/settings/+page.svelte +++ b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/settings/+page.svelte @@ -1,6 +1,6 @@ - Settings + Settings diff --git a/src/routes/(console)/organization-[organization]/domains/recordsCard.svelte b/src/routes/(console)/organization-[organization]/domains/recordsCard.svelte index f1c362267..35b67787a 100644 --- a/src/routes/(console)/organization-[organization]/domains/recordsCard.svelte +++ b/src/routes/(console)/organization-[organization]/domains/recordsCard.svelte @@ -1,14 +1,25 @@
@@ -26,6 +62,9 @@ {domain.domain} + {#if verified === false} + + {/if} @@ -55,8 +94,8 @@ {/each} - - + + A list of all domain providers and their DNS setting is available here - + + + + +
diff --git a/src/routes/(console)/organization-[organization]/header.svelte b/src/routes/(console)/organization-[organization]/header.svelte index 0c1fa061d..a1483936e 100644 --- a/src/routes/(console)/organization-[organization]/header.svelte +++ b/src/routes/(console)/organization-[organization]/header.svelte @@ -92,7 +92,7 @@ - {$organization.name} {#if isCloud && $organization?.billingPlan === BillingPlan.GITHUB_EDUCATION} diff --git a/src/routes/(console)/organization-[organization]/settings/+page.svelte b/src/routes/(console)/organization-[organization]/settings/+page.svelte index 0788e3092..caf4aa612 100644 --- a/src/routes/(console)/organization-[organization]/settings/+page.svelte +++ b/src/routes/(console)/organization-[organization]/settings/+page.svelte @@ -1,5 +1,5 @@ -
+ {'{{user}}'} {'{{project}}'} {'{{otp}}'} -
+ diff --git a/src/routes/(console)/project-[project]/auth/templates/emailInviteTemplate.svelte b/src/routes/(console)/project-[project]/auth/templates/emailInviteTemplate.svelte index fb7a93500..2e4425eb0 100644 --- a/src/routes/(console)/project-[project]/auth/templates/emailInviteTemplate.svelte +++ b/src/routes/(console)/project-[project]/auth/templates/emailInviteTemplate.svelte @@ -7,6 +7,7 @@ import { addNotification } from '$lib/stores/notifications'; import { Id } from '$lib/components'; import { Submit, trackError, trackEvent } from '$lib/actions/analytics'; + import { Layout } from '@appwrite.io/pink-svelte'; const projectId = $page.params.project; let locale = 'en'; @@ -34,7 +35,7 @@ } -
+ {'{{team}}'} @@ -42,4 +43,4 @@ {'{{project}}'} {'{{redirect}}'} -
+ diff --git a/src/routes/(console)/project-[project]/auth/templates/emailMagicUrlTemplate.svelte b/src/routes/(console)/project-[project]/auth/templates/emailMagicUrlTemplate.svelte index e15372245..19e6c5eb9 100644 --- a/src/routes/(console)/project-[project]/auth/templates/emailMagicUrlTemplate.svelte +++ b/src/routes/(console)/project-[project]/auth/templates/emailMagicUrlTemplate.svelte @@ -7,6 +7,7 @@ import { addNotification } from '$lib/stores/notifications'; import { Id } from '$lib/components'; import { Submit, trackError, trackEvent } from '$lib/actions/analytics'; + import { Layout } from '@appwrite.io/pink-svelte'; const projectId = $page.params.project; @@ -36,11 +37,11 @@ } -
+ {'{{user}}'} {'{{project}}'} {'{{redirect}}'} -
+ diff --git a/src/routes/(console)/project-[project]/auth/templates/emailRecoveryTemplate.svelte b/src/routes/(console)/project-[project]/auth/templates/emailRecoveryTemplate.svelte index 56d028108..e6a9443f6 100644 --- a/src/routes/(console)/project-[project]/auth/templates/emailRecoveryTemplate.svelte +++ b/src/routes/(console)/project-[project]/auth/templates/emailRecoveryTemplate.svelte @@ -7,6 +7,7 @@ import { addNotification } from '$lib/stores/notifications'; import { Id } from '$lib/components'; import { Submit, trackError, trackEvent } from '$lib/actions/analytics'; + import { Layout } from '@appwrite.io/pink-svelte'; const projectId = $page.params.project; @@ -35,11 +36,11 @@ } -
+ {'{{user}}'} {'{{project}}'} {'{{redirect}}'} -
+ diff --git a/src/routes/(console)/project-[project]/auth/templates/emailSessionAlertTemplate.svelte b/src/routes/(console)/project-[project]/auth/templates/emailSessionAlertTemplate.svelte index 8dd83904b..438e8d2dd 100644 --- a/src/routes/(console)/project-[project]/auth/templates/emailSessionAlertTemplate.svelte +++ b/src/routes/(console)/project-[project]/auth/templates/emailSessionAlertTemplate.svelte @@ -7,6 +7,7 @@ import { addNotification } from '$lib/stores/notifications'; import { Id } from '$lib/components'; import { Submit, trackError, trackEvent } from '$lib/actions/analytics'; + import { Layout } from '@appwrite.io/pink-svelte'; const projectId = $page.params.project; let locale = 'en'; @@ -34,7 +35,7 @@ } -
+ {'{{user}}'} @@ -43,4 +44,4 @@ {'{{ipAddress}}'} {'{{country}}'} -
+ diff --git a/src/routes/(console)/project-[project]/auth/templates/emailSignature.svelte b/src/routes/(console)/project-[project]/auth/templates/emailSignature.svelte index 3554d0d3b..59b9fa5ea 100644 --- a/src/routes/(console)/project-[project]/auth/templates/emailSignature.svelte +++ b/src/routes/(console)/project-[project]/auth/templates/emailSignature.svelte @@ -1,6 +1,6 @@ @@ -58,7 +50,7 @@ + +
+ {/if} {:else} diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/create/+page.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/create/+page.svelte new file mode 100644 index 000000000..370fb3487 --- /dev/null +++ b/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/create/+page.svelte @@ -0,0 +1,136 @@ + + + + + +
+ +
+ +
+ + + Choose which permission scopes to grant your application. It is best + practice to allow only the permissions you need to meet your project goals. + + {#if data.collection.documentSecurity} + + Document security is enabled + Users will be able to access this document if they have been granted + either document or collection permissions. + + + {:else} + + Document security is disabled + If you want to assign document permissions, navigate to Collection settings + and enable document security. Otherwise, only collection permissions will + be used. + + {/if} + +
+
+ + + + + + +
diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/createDocument.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/createDocument.svelte deleted file mode 100644 index 4d49f3502..000000000 --- a/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/createDocument.svelte +++ /dev/null @@ -1,83 +0,0 @@ - - - diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/+page.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/+page.svelte index b9ce1a6ec..6a7deeacb 100644 --- a/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/+page.svelte +++ b/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/+page.svelte @@ -1,5 +1,5 @@ - - - Data - - Provide document data based on attributes you created earlier. - - - - diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/wizard/step2.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/wizard/step2.svelte deleted file mode 100644 index 7c86c1b16..000000000 --- a/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/wizard/step2.svelte +++ /dev/null @@ -1,34 +0,0 @@ - - - - Permissions - - Choose who can access your collection and documents. For more information, visit our - Permissions guide - . - - {#if $collection.documentSecurity} - - Document security is enabled - Users will be able to access this document if they have been granted - either document or collection permissions. - - - {:else} - - Document security is disabled - If you want to assign document permissions, navigate to Collection settings and enable document - security. Otherwise, only collection permissions will be used. - - {/if} - diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/wizard/store.ts b/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/wizard/store.ts deleted file mode 100644 index 04cd8ed9f..000000000 --- a/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/wizard/store.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { writable } from 'svelte/store'; -import type { Attributes } from '../store'; - -type CreateDocument = { - id?: string; - document: object; - permissions: string[]; - attributes: Attributes[]; -}; - -const initialCreateDocument: CreateDocument = { - id: null, - document: {}, - permissions: [], - attributes: [] -}; - -function createDocumentWritable() { - const store = writable({ ...initialCreateDocument }); - - const reset = () => { - store.set({ ...initialCreateDocument }); - }; - - return { - ...store, - reset - }; -} - -export const createDocument = createDocumentWritable(); diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/settings/+page.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/settings/+page.svelte index 6278dce3f..6cecdb91a 100644 --- a/src/routes/(console)/project-[project]/databases/database-[database]/settings/+page.svelte +++ b/src/routes/(console)/project-[project]/databases/database-[database]/settings/+page.svelte @@ -2,7 +2,7 @@ import { invalidate } from '$app/navigation'; import { page } from '$app/stores'; import { Submit, trackError, trackEvent } from '$lib/actions/analytics'; - import { BoxAvatar, Card, CardGrid, Heading } from '$lib/components'; + import { BoxAvatar, Card, CardGrid } from '$lib/components'; import { Dependencies } from '$lib/constants'; import { Button, Form, Helper, InputText } from '$lib/elements/forms'; import { toLocaleDateTime } from '$lib/helpers/date'; diff --git a/src/routes/(console)/project-[project]/databases/header.svelte b/src/routes/(console)/project-[project]/databases/header.svelte index 5e15e3591..7b6d102b9 100644 --- a/src/routes/(console)/project-[project]/databases/header.svelte +++ b/src/routes/(console)/project-[project]/databases/header.svelte @@ -26,8 +26,7 @@ - Databases + Databases {#each tabs as tab} diff --git a/src/routes/(console)/project-[project]/functions/+page.svelte b/src/routes/(console)/project-[project]/functions/+page.svelte index 8d2c08616..e2f10b058 100644 --- a/src/routes/(console)/project-[project]/functions/+page.svelte +++ b/src/routes/(console)/project-[project]/functions/+page.svelte @@ -13,15 +13,9 @@ import { toLocaleDateTime } from '$lib/helpers/date'; import { Container, ContainerHeader } from '$lib/layout'; import { isServiceLimited } from '$lib/stores/billing'; - import { templatesList } from '$lib/stores/templates'; import { organization } from '$lib/stores/organization'; import { wizard } from '$lib/stores/wizard'; - import Initial from '$lib/wizards/functions/cover.svelte'; - import CreateTemplate from '$lib/wizards/functions/createTemplate.svelte'; - import { - templateConfig as templateConfigStore, - template as templateStore - } from '$lib/wizards/functions/store.js'; + import { parseExpression } from 'cron-parser'; import { onMount } from 'svelte'; import { functionsList } from './store'; @@ -29,6 +23,7 @@ import type { Models } from '@appwrite.io/console'; import { Tooltip } from '@appwrite.io/pink-svelte'; import { IconPlus } from '@appwrite.io/pink-icons-svelte'; + import { goto } from '$app/navigation'; export let data; @@ -42,28 +37,20 @@ const to = $page.url.searchParams.get('to'); switch (to) { case 'template': { - const step = $page.url.searchParams.get('step'); const template = $page.url.searchParams.get('template'); const templateConfig = $page.url.searchParams.get('templateConfig'); - templateStore.set( - (await $templatesList).templates.find((item) => item.id === template) + goto( + `${base}/project-${project}/functions/create-function/template-${template}?templateConfig=${templateConfig}` ); - templateConfigStore.set(JSON.parse(templateConfig)); - wizard.start(CreateTemplate); - wizard.setStep(Number(step)); break; } case 'cover': - openWizard(); + goto(`${base}/project-${project}/functions/create-function`); break; } } }); - function openWizard() { - wizard.showCover(Initial); - } - function getNextScheduledExecution(func: Models.Function) { return toLocaleDateTime(parseExpression(func.schedule, { utc: true }).next().toString()); } @@ -71,7 +58,7 @@ $: $registerCommands([ { label: 'Create function', - callback: openWizard, + callback: () => goto(`${base}/project-${project}/functions/create-function`), keys: ['c'], disabled: $wizard.show || @@ -90,7 +77,7 @@ title="Functions" buttonText={$canWriteFunctions ? 'Create function' : ''} buttonEvent="create_function" - buttonMethod={openWizard} + buttonHref={`${base}/project-${project}/functions/create-function`} total={data.functions.total} /> {#if data.functions.total} @@ -99,7 +86,6 @@ showEmpty={$canWriteFunctions} event="functions" total={data.functions.total} - on:click={openWizard} service="functions"> {#each data.functions.functions as func} @@ -137,11 +123,12 @@ offset={data.offset} total={data.functions.total} /> {:else} + + on:click={() => goto(`${base}/project-${project}/functions/create-function`)} /> {/if} diff --git a/src/routes/(console)/project-[project]/functions/+page.ts b/src/routes/(console)/project-[project]/functions/+page.ts index e12234637..96f2b6489 100644 --- a/src/routes/(console)/project-[project]/functions/+page.ts +++ b/src/routes/(console)/project-[project]/functions/+page.ts @@ -2,10 +2,10 @@ import { Query } from '@appwrite.io/console'; import { sdk } from '$lib/stores/sdk'; import { getLimit, getPage, pageToOffset } from '$lib/helpers/load'; import { CARD_LIMIT, Dependencies } from '$lib/constants'; -import type { PageLoad } from './$types'; -export const load: PageLoad = async ({ url, depends, route }) => { +export const load = async ({ url, depends, route, parent }) => { depends(Dependencies.FUNCTIONS); + const { templatesList } = await parent(); const page = getPage(url); const limit = getLimit(url, route, CARD_LIMIT); @@ -18,6 +18,7 @@ export const load: PageLoad = async ({ url, depends, route }) => { Query.limit(limit), Query.offset(offset), Query.orderDesc('') - ]) + ]), + templatesList }; }; diff --git a/src/routes/(console)/project-[project]/functions/create-function/(components)/aside.svelte b/src/routes/(console)/project-[project]/functions/create-function/(components)/aside.svelte new file mode 100644 index 000000000..0e818e1db --- /dev/null +++ b/src/routes/(console)/project-[project]/functions/create-function/(components)/aside.svelte @@ -0,0 +1,67 @@ + + + + + + + {#if runtime?.name} + + Runtime + + {#if runtime?.key} + + {/if} + + {runtime.name} + + + + {/if} + {#if showGitData} + {#if repositoryName} + + Git repository + + + + {repositoryName} + + + + {/if} + {#if branch} + + Branch + + + + {branch} + + + + {/if} + + {#if rootDir} + + Root directory + + {rootDir} + + + {/if} + {/if} + + + diff --git a/src/routes/(console)/project-[project]/functions/create-function/(components)/details.svelte b/src/routes/(console)/project-[project]/functions/create-function/(components)/details.svelte new file mode 100644 index 000000000..c36b1f991 --- /dev/null +++ b/src/routes/(console)/project-[project]/functions/create-function/(components)/details.svelte @@ -0,0 +1,60 @@ + + +
+ + + + {#if showCustomId} + + {:else} +
+ (showCustomId = !showCustomId)}> + + Function ID + +
+ {/if} +
+ + {#if showEntrypoint} + + {/if} +
+
diff --git a/src/routes/(console)/project-[project]/functions/create-function/+page.svelte b/src/routes/(console)/project-[project]/functions/create-function/+page.svelte index e5f71a715..cb46a7ebf 100644 --- a/src/routes/(console)/project-[project]/functions/create-function/+page.svelte +++ b/src/routes/(console)/project-[project]/functions/create-function/+page.svelte @@ -1,295 +1,241 @@ - - - - Create function -
-
-
-
- Connect Git repository -

- Create and deploy a function with a connected git repository. -

-
- -
- {#if isSelfHosted && !isVcsEnabled} -
-
- - Connect your self-hosted instance to Git - -

- Configure your self-hosted instance to connect your function to - a Git repository. - Learn more. -

-
-
- {/if} -
+ +
+ + + + + + + Connect Git repository -
-
- Quick start -

Use a starter template.

-
    - {#await Promise.all([$baseRuntimesList, $starterTemplate])} - {#each Array(6) as _i} -
  • - -
  • - {/each} - {:then [response, quickStart]} - {@const runtimes = new Map( - response.runtimes.map((r) => [r.$id, r]) + + + {#if hasInstallations} + + + + + Missing a repository? check your permissions + + + + {/if} + + + + + + Quick start + + {#each starterTemplateRuntimes.slice(0, 6) as template} + {@const iconName = template.name.split('-')[0]} + {@const runtimeDetail = baseRuntimesList.find( + (runtime) => runtime.$id === template.name )} - {@const templates = quickStart.runtimes.filter((template) => - runtimes.has(template.name) - )} - {#each templates.slice(0, 6) as template} - {@const runtimeDetail = runtimes.get(template.name)} -
  • - -
  • - {/each} + { + trackEvent('click_connect_template', { + from: 'cover', + template: starterTemplate.id, + runtime: template.name + }); + }} + href={`${wizardBase}/create-function/template-${starterTemplate.id}`}> + + + + + + {runtimeDetail?.name} + {#if runtimeDetail?.name?.toLowerCase() === 'deno'} + New + {/if} + + + + {/each} - {#if templates.length < 6} - -
  • - - - -
  • - More runtimes coming soon -
    - {/if} - {/await} -
-
+ {#if starterTemplateRuntimes.length < 6} + + + + + More runtimes coming soon + + {/if} + - -
-
- Templates -

- Find the right template for your use case. -

+ -
    - {#await $featuredTemplatesList} - {#each Array(3) as _i} -
  • - -
  • - {/each} - {:then templatesListWithoutStarter} - {#each templatesListWithoutStarter.templates as template} -
  • - -
  • - {/each} - {/await} -
-
- -
-
-

- You can also create a function + href={`${wizardBase}/create-function/manual`}>manually or using the CLI. - Learn moreLearn more. -

-
+ +
- + + + {#if isSelfHosted && !isVcsEnabled} +
+
+ + Connect your self-hosted instance to Git + +

+ Configure your self-hosted instance to connect your function to a Git + repository. + Learn more. +

+
+
+ {/if} + diff --git a/src/routes/(console)/project-[project]/overview/platforms/createAndroid.svelte b/src/routes/(console)/project-[project]/overview/platforms/createAndroid.svelte index 99bde4591..1539fd4fa 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createAndroid.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createAndroid.svelte @@ -133,9 +133,7 @@ const val APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" gap="xs"> - + {$createPlatform.name} ({$createPlatform.key}) diff --git a/src/routes/(console)/project-[project]/overview/platforms/createApple.svelte b/src/routes/(console)/project-[project]/overview/platforms/createApple.svelte index 2370f0c52..111f9d167 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createApple.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createApple.svelte @@ -161,9 +161,7 @@ APPWRITE_PUBLIC_ENDPOINT: "${sdk.forProject.client.config.endpoint}" gap="xs"> - + {$createPlatform.name} ({$createPlatform.key}) diff --git a/src/routes/(console)/project-[project]/overview/platforms/createFlutter.svelte b/src/routes/(console)/project-[project]/overview/platforms/createFlutter.svelte index 5180b6adc..70e949d8c 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createFlutter.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createFlutter.svelte @@ -217,9 +217,7 @@ static const String APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.e gap="xs"> - + {$createPlatform.name} ({$createPlatform.key}) diff --git a/src/routes/(console)/project-[project]/overview/platforms/createReactNative.svelte b/src/routes/(console)/project-[project]/overview/platforms/createReactNative.svelte index 46f273c89..1f4031806 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createReactNative.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createReactNative.svelte @@ -187,9 +187,7 @@ const APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}"; gap="xs"> - + {$createPlatform.name} ({$createPlatform.key}) diff --git a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte index 5acb0e972..bba4cecc2 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte @@ -271,9 +271,9 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" > + color="--fgcolor-neutral-primary"> Demo app runs on http://localhost:{selectedFramework.portNumber} Open diff --git a/src/routes/(console)/project-[project]/settings/header.svelte b/src/routes/(console)/project-[project]/settings/header.svelte index afa356752..8b69304d6 100644 --- a/src/routes/(console)/project-[project]/settings/header.svelte +++ b/src/routes/(console)/project-[project]/settings/header.svelte @@ -51,8 +51,7 @@ - Settings + Settings diff --git a/src/routes/(console)/project-[project]/settings/migrations/+page.svelte b/src/routes/(console)/project-[project]/settings/migrations/+page.svelte index ba27abdee..46566c1e6 100644 --- a/src/routes/(console)/project-[project]/settings/migrations/+page.svelte +++ b/src/routes/(console)/project-[project]/settings/migrations/+page.svelte @@ -183,15 +183,12 @@ - + + diff --git a/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte b/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte index a6ef905d9..6cd457643 100644 --- a/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte +++ b/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte @@ -70,7 +70,7 @@ - + Domains @@ -85,27 +85,19 @@ {#if deployment.status === 'failed'} - + Status - + {:else} - + Deployed - + @@ -116,36 +108,26 @@ {#if deployment?.buildTime} - + Build time - + {formatTimeDetailed(deployment.buildTime)} {/if} - + Total size - + {totalSize.value}{totalSize.unit} - + Global CDN @@ -165,9 +147,7 @@ - + DDoS protection @@ -189,10 +169,10 @@ - + Source - + diff --git a/src/routes/(console)/project-[project]/sites/+page.ts b/src/routes/(console)/project-[project]/sites/+page.ts index e0c637f43..1525d8c9e 100644 --- a/src/routes/(console)/project-[project]/sites/+page.ts +++ b/src/routes/(console)/project-[project]/sites/+page.ts @@ -10,7 +10,7 @@ export const load = async ({ url, depends, route }) => { const search = getSearch(url); const limit = getLimit(url, route, CARD_LIMIT); const offset = pageToOffset(page, limit); - const view = getView(url, route, View.Grid); + const view = getView(url, route, View.Grid, View.Grid); const siteList = await sdk.forProject.sites.list( [Query.limit(limit), Query.offset(offset), Query.orderDesc('')], diff --git a/src/routes/(console)/project-[project]/sites/create-site/aside.svelte b/src/routes/(console)/project-[project]/sites/create-site/aside.svelte index 0029ab4e5..4a5316147 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/aside.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/aside.svelte @@ -22,8 +22,8 @@ Git repository - - + + {repositoryName} @@ -33,11 +33,8 @@ Branch - - + + {branch} @@ -47,7 +44,7 @@ {#if rootDir && showAfter} Root directory - + {rootDir} @@ -60,7 +57,7 @@ {#if frameworkIcon} {/if} - + {framework.name} @@ -71,7 +68,7 @@ Domain - + {#key domain} {$consoleVariables._APP_OPTIONS_FORCE_HTTPS diff --git a/src/routes/(console)/project-[project]/sites/create-site/configuration.svelte b/src/routes/(console)/project-[project]/sites/create-site/configuration.svelte index 23ea6c5cd..984786eea 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/configuration.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/configuration.svelte @@ -182,6 +182,7 @@ {:else} {/if} diff --git a/src/routes/(console)/project-[project]/sites/create-site/deploying/+page.svelte b/src/routes/(console)/project-[project]/sites/create-site/deploying/+page.svelte index 86254dc6d..988d4f2e4 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/deploying/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/deploying/+page.svelte @@ -7,7 +7,7 @@ import Aside from '../aside.svelte'; import Logs from '../../(components)/logs.svelte'; import { getFrameworkIcon } from '../../store'; - import { SvgIcon } from '$lib/components'; + import { Copy, SvgIcon } from '$lib/components'; export let data; @@ -25,29 +25,31 @@ iconSize="small" size={16} name={getFrameworkIcon(data.site.framework)} /> - + {data.site.name} - {data.site.$id} + + {data.site.$id} +
- +
-
- + Or simply drag and drop your files to create a site diff --git a/src/routes/(console)/project-[project]/sites/header.svelte b/src/routes/(console)/project-[project]/sites/header.svelte index bc19b783c..cceb09953 100644 --- a/src/routes/(console)/project-[project]/sites/header.svelte +++ b/src/routes/(console)/project-[project]/sites/header.svelte @@ -25,7 +25,7 @@ - Sites + Sites 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 8317d6906..35a10ebb7 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 @@ -76,7 +76,7 @@ {#if $tags?.length}
+ style="flex-basis:1px; background-color:hsl(var(--border)); width: 1px">
{/if} 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 223784b0b..d65935c77 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 @@ -137,7 +137,7 @@ - + Last updated {timeFromNow($repository?.pushedAt)} 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 cba71c916..b7f41fc18 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 @@ -77,7 +77,7 @@ - + Metrics for {range !== SiteUsageRange.TwentyFourHours ? `${toLocaleDate( new Date( 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 d1b1b9330..38451a9f6 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deploymentsOverview.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deploymentsOverview.svelte @@ -31,7 +31,7 @@ - + Deployments {/if} - {#if data.branches.total} + {#if data.branches?.total} {@const sortedBranches = sortBranches(data.branches.branches)} {@const options = sortedBranches.map((branch) => ({ label: branch.name, diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/domains/recordsCard.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/domains/recordsCard.svelte index 1831e9cc3..b26bbf8b9 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/domains/recordsCard.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/domains/recordsCard.svelte @@ -38,8 +38,8 @@ - - + + A list of all domain providers and their DNS setting is available here - rule.domain.includes($consoleVariables._APP_DOMAIN_TARGET) - ) - : false; + // $: hasCustomDomain = proxyRuleList?.total + // ? proxyRuleList.rules.some((rule) => + // rule.domain.includes($consoleVariables._APP_DOMAIN_TARGET) + // ) + // : false; - + Domains @@ -42,10 +42,10 @@ {#if proxyRuleList?.rules?.length <= 1} - + Add your first custom domain - + Personalize your site and enhance its accessibility and branding with a unique domain. @@ -53,7 +53,7 @@
diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/instantRollbackModal.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/instantRollbackModal.svelte index 5f43ed02c..4389c04d0 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/instantRollbackModal.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/instantRollbackModal.svelte @@ -7,7 +7,7 @@ import { Button, InputCheckbox } from '$lib/elements/forms'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; - import { Query, type Models } from '@appwrite.io/console'; + import { type Models } from '@appwrite.io/console'; import DeploymentDomains from '../(components)/deploymentDomains.svelte'; import { onMount } from 'svelte'; import { page } from '$app/stores'; @@ -86,7 +86,7 @@ - + {capitalize(deployment.status)} - + {calculateSize(deployment.size)} - + Created {timeFromNow(deployment.$createdAt)} {#if deployment?.providerCommitAuthorUrl && deployment?.providerCommitAuthor} by - + Created {timeFromNow(prodDeployment.$createdAt)} {#if prodDeployment?.providerCommitAuthorUrl && prodDeployment?.providerCommitAuthor} by + import { Card } from '$lib/components'; + import { Link } from '$lib/elements'; import type { Models } from '@appwrite.io/console'; - import { IconInfo } from '@appwrite.io/pink-icons-svelte'; - import { Badge, Icon, Layout, Table, Tabs, Typography } from '@appwrite.io/pink-svelte'; + import { + Badge, + Divider, + Input, + Layout, + Table, + Tabs, + Typography + } from '@appwrite.io/pink-svelte'; import { onMount } from 'svelte'; export let selectedLog: Models.Execution; - let requestTab: 'parameters' | 'headers' | 'body' = 'parameters'; + let requestTab: 'parameters' | 'headers' = 'parameters'; let parameters = []; @@ -24,33 +33,38 @@ parameters = []; } }); + + onMount(() => { + if (parameters?.length) { + requestTab = 'parameters'; + } else if (selectedLog.requestHeaders?.length) { + requestTab = 'headers'; + } + }); - - (requestTab = 'parameters')}> - Parameters - - - (requestTab = 'headers')}> - Headers - - (requestTab = 'body')}> - Body - - + + + (requestTab = 'parameters')}> + Parameters + + + (requestTab = 'headers')}> + Headers + + + + {#if requestTab === 'parameters'} {#if parameters?.length} @@ -66,7 +80,9 @@ {/each} {:else} - No parameters found. + + No parameters found. + {/if} {:else if requestTab === 'headers'} {#if selectedLog.requestHeaders?.length} @@ -82,16 +98,17 @@ {/each} -

- - Missing - headers? Check our docs to see the supported data and how to log it. - -

+ + + + Missing headers? Check the docs to + see the supported data and how to log it. + + {:else} - No headers found. + + No headers found. + {/if} - {:else if requestTab === 'body'} - No body found. {/if}
diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/logs/(components)/LogsResponse.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/logs/(components)/LogsResponse.svelte index 8a5ddbd60..91071754a 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/logs/(components)/LogsResponse.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/logs/(components)/LogsResponse.svelte @@ -1,54 +1,75 @@ - - (responseTab = 'logs')}> - Logs - - (responseTab = 'errors')}> - Errors - - (responseTab = 'headers')}> - Headers - - (responseTab = 'body')}> - Body - - + + + (responseTab = 'logs')}> + Logs + + + (responseTab = 'headers')}> + Headers + + + + + {#if responseTab === 'logs'} {#if selectedLog.logs} {:else} - No logs found. + + No logs found. + {/if} {:else if responseTab === 'errors'} {#if selectedLog.errors} {:else} - No errors found. + + No errors found. + {/if} {:else if responseTab === 'headers'} {#if selectedLog.responseHeaders?.length} @@ -64,20 +85,25 @@ {/each} -

- - Missing - headers? Check our docs to see the supported data and how to log it. - -

+ + + + Missing headers? Check the docs to + see the supported data and how to log it. + + {:else} - No headers found. + + No headers found. + {/if} {:else if responseTab === 'body'} {#if selectedLog.responseBody} {:else} - No parameters found. + + No parameters found. + {/if} {/if}
diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/logs/sheet.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/logs/sheet.svelte index fe0ecdf5b..e2bf31bd1 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/logs/sheet.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/logs/sheet.svelte @@ -17,6 +17,7 @@ import LogsRequest from './(components)/LogsRequest.svelte'; import LogsResponse from './(components)/LogsResponse.svelte'; import { capitalize } from '$lib/helpers/string'; + import { Copy } from '$lib/components'; export let open = false; export let selectedLogId: string; @@ -49,7 +50,9 @@ Log ID - {selectedLog?.$id} + + {selectedLog?.$id} + + + + diff --git a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/+page.svelte b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/+page.svelte index a0faed9fd..7a44c27ff 100644 --- a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/+page.svelte +++ b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/+page.svelte @@ -1,5 +1,5 @@ - - + - {#if !showCustomId} -
- (showCustomId = !showCustomId)}> - -
- {:else} - - {/if} -
+ {#if !showCustomId} +
+ { + showCustomId = true; + }}> Bucket ID +
+ {:else} + + {/if} diff --git a/src/routes/(console)/project-[project]/storage/grid.svelte b/src/routes/(console)/project-[project]/storage/grid.svelte index 1714c61c9..4ff674aeb 100644 --- a/src/routes/(console)/project-[project]/storage/grid.svelte +++ b/src/routes/(console)/project-[project]/storage/grid.svelte @@ -4,7 +4,7 @@ import { CardContainer, GridItem1, Id } from '$lib/components'; import Pill from '$lib/elements/pill.svelte'; import { canWriteBuckets } from '$lib/stores/roles'; - import { Tooltip } from '@appwrite.io/pink-svelte'; + import { Badge, Tooltip } from '@appwrite.io/pink-svelte'; import type { PageData } from './$types'; export let data: PageData; @@ -25,35 +25,24 @@ {bucket.name} {#if !bucket.enabled} - Disabled +
+ +
{/if}
{bucket.$id} -
  • - - -
  • -
  • - - -
  • + +
    {/each} diff --git a/src/routes/(console)/project-[project]/storage/header.svelte b/src/routes/(console)/project-[project]/storage/header.svelte index efd52a26e..60ce41019 100644 --- a/src/routes/(console)/project-[project]/storage/header.svelte +++ b/src/routes/(console)/project-[project]/storage/header.svelte @@ -26,8 +26,7 @@ - Storage + Storage {#each tabs as tab} diff --git a/src/routes/(console)/project-[project]/updateVariables.svelte b/src/routes/(console)/project-[project]/updateVariables.svelte index 7bb39273e..71d5f5fdc 100644 --- a/src/routes/(console)/project-[project]/updateVariables.svelte +++ b/src/routes/(console)/project-[project]/updateVariables.svelte @@ -9,7 +9,6 @@ import { Dependencies } from '$lib/constants'; import { addNotification } from '$lib/stores/notifications'; import { project } from '$routes/(console)/project-[project]/store'; - import Alert from '$lib/components/alert.svelte'; import PromoteVariableModal from './promoteVariableModal.svelte'; import CreateVariable from './createVariable.svelte'; import RawVariableEditor from './rawVariableEditor.svelte'; @@ -21,7 +20,8 @@ Icon, Layout, Popover, - Table + Table, + Alert } from '@appwrite.io/pink-svelte'; import { IconCode, @@ -219,17 +219,28 @@ >. {/if} - - + + + + + + + {#if variableList.total} + + {/if} + {@const sum = variableList.total} {#if sum} {#if conflictVariables.length > 0} - +

    {#if conflictVariables.length === 1} {conflictVariables[0].key} has @@ -244,7 +255,7 @@ project settings.

    -
    + {/if} @@ -307,7 +318,7 @@ showVariablesModal = true; toggle(e); }}> - Edit + Update {#if !isGlobal} {/if} { handleVariableDeleted(variable); @@ -349,16 +361,6 @@ Create a {isGlobal ? 'global variable' : 'variable'} to get started {/if} - - - - @@ -396,8 +398,6 @@ {#if showVariablesUpload} import { Modal } from '$lib/components'; - import Alert from '$lib/components/alert.svelte'; - import { Button, InputFile } from '$lib/elements/forms'; + import { Button } from '$lib/elements/forms'; import { addNotification } from '$lib/stores/notifications'; import type { Models } from '@appwrite.io/console'; import { IconInfo } from '@appwrite.io/pink-icons-svelte'; - import { Icon, Layout, Tooltip, Typography, Upload } from '@appwrite.io/pink-svelte'; + import { + Alert, + Icon, + InlineCode, + Layout, + Selector, + Tooltip, + Typography, + Upload + } from '@appwrite.io/pink-svelte'; import { parse } from 'envfile'; - export let isGlobal: boolean; export let show = false; export let variableList: Models.VariableList; - export let sdkCreateVariable: (key: string, value: string) => Promise; + export let sdkCreateVariable: ( + key: string, + value: string, + secret?: boolean + ) => Promise; export let sdkUpdateVariable: ( variableId: string, key: string, - value: string + value: string, + secret?: boolean ) => Promise; let files: FileList; + let secret = false; let error: string; - export let product: 'function' | 'site' = 'function'; async function handleSubmit() { try { @@ -50,8 +62,8 @@ (variable) => variable.key === key ); return found - ? sdkUpdateVariable(found.$id, key, value) - : sdkCreateVariable(key, value); + ? sdkUpdateVariable(found.$id, key, value, secret) + : sdkCreateVariable(key, value, secret); }) ); @@ -65,36 +77,44 @@ error = e.message; } } - - const title = `Import new ${isGlobal ? 'global' : 'environment'} variables`; - -
    -

    - {title} from - .env - file that will be passed to {!isGlobal - ? `your ${product}` - : 'all functions and sites within your project'}. -

    - - {#if variableList.total > 0} - - Existing {isGlobal ? 'global' : 'environment'} variables will be updated. They will not - be deleted if they are not present in your .env file. - - {/if} -
    + + + Import new environment variables from file. + - - Upload a file + + + + Drag and drop files here or click to upload + + + + + + Only .env files allowed + + + Up to 100 variables allowed + {#if variableList.total > 0} + + This action can create and update variables but can not delete them. + + {/if} + + diff --git a/src/routes/(public)/auth/+layout.svelte b/src/routes/(public)/auth/+layout.svelte index 9bedea49e..7fa83f589 100644 --- a/src/routes/(public)/auth/+layout.svelte +++ b/src/routes/(public)/auth/+layout.svelte @@ -15,9 +15,7 @@