Merge branch 'feat-pink-v2' of github.com:appwrite/console into feat-v2-regions

This commit is contained in:
Arman
2025-05-07 13:24:29 +02:00
14 changed files with 117 additions and 66 deletions
+1 -1
View File
@@ -27,7 +27,7 @@
"@appwrite.io/pink-icons": "0.25.0",
"@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@bd21ff7f",
"@appwrite.io/pink-legacy": "^1.0.3",
"@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@cbf05a1",
"@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3e91920",
"@popperjs/core": "^2.11.8",
"@sentry/sveltekit": "^8.38.0",
"@stripe/stripe-js": "^3.5.0",
+12 -12
View File
@@ -27,8 +27,8 @@ importers:
specifier: ^1.0.3
version: 1.0.3
'@appwrite.io/pink-svelte':
specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@cbf05a1
version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@cbf05a1(react-dom@18.3.1(react@18.3.1))(svelte@5.25.3)
specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3e91920
version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3e91920(react-dom@18.3.1(react@18.3.1))(svelte@5.25.3)
'@popperjs/core':
specifier: ^2.11.8
version: 2.11.8
@@ -258,14 +258,14 @@ packages:
resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@f76aff1}
version: 1.2.1
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@bd21ff7f':
resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@bd21ff7f}
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@3e919207fc3d85d493e494e72205f7488858358f':
resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@3e919207fc3d85d493e494e72205f7488858358f}
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@cbf05a106412315e451530f8384924da515b10c8':
resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@cbf05a106412315e451530f8384924da515b10c8}
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@bd21ff7f':
resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@bd21ff7f}
version: 1.0.0-next.7
peerDependencies:
svelte: ^4.0.0
@@ -279,8 +279,8 @@ packages:
'@appwrite.io/pink-legacy@1.0.3':
resolution: {integrity: sha512-GGde5fmPhs+s6/3aFeMPc/kKADG/gTFkYQSy6oBN8pK0y0XNCLrZZgBv+EBbdhwdtqVEWXa0X85Mv9w7jcIlwQ==}
'@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@cbf05a1':
resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@cbf05a1}
'@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3e91920':
resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3e91920}
version: 1.0.0-next.85
peerDependencies:
react-dom: ^18.0.0
@@ -3627,11 +3627,11 @@ snapshots:
'@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@f76aff1': {}
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@bd21ff7f(svelte@5.25.3)':
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@3e919207fc3d85d493e494e72205f7488858358f(svelte@5.25.3)':
dependencies:
svelte: 5.25.3
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@cbf05a106412315e451530f8384924da515b10c8(svelte@5.25.3)':
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@bd21ff7f(svelte@5.25.3)':
dependencies:
svelte: 5.25.3
@@ -3644,9 +3644,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@cbf05a1(react-dom@18.3.1(react@18.3.1))(svelte@5.25.3)':
'@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3e91920(react-dom@18.3.1(react@18.3.1))(svelte@5.25.3)':
dependencies:
'@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@cbf05a106412315e451530f8384924da515b10c8(svelte@5.25.3)
'@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@3e919207fc3d85d493e494e72205f7488858358f(svelte@5.25.3)
'@floating-ui/dom': 1.6.13
'@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.6(svelte@5.25.3))(svelte@5.25.3)
'@melt-ui/svelte': 0.86.6(svelte@5.25.3)
@@ -34,7 +34,7 @@
</script>
<div use:melt={$subTrigger}>
<ActionMenu.Root noPadding>
<ActionMenu.Root>
<ActionMenu.Item.Button trailingIcon={IconChevronRight}>
{filter.title}
</ActionMenu.Item.Button>
@@ -42,12 +42,12 @@
</Link>
{#if sortedDomains.length > 1}
<Popover padding="none" let:toggle>
<Popover padding="none" let:toggle placement="bottom-end">
<Tag size="xs" on:click={toggle}>
+{sortedDomains.length - 1}
</Tag>
<svelte:fragment slot="tooltip">
<ActionMenu.Root>
<ActionMenu.Root width="20px">
{#each sortedDomains as rule, i}
{#if i !== 0}
<ActionMenu.Item.Anchor
+14 -2
View File
@@ -21,6 +21,7 @@
import { getFrameworkIcon } from '$lib/stores/sites';
import { connectGitHub } from '$lib/stores/git';
import { page } from '$app/state';
import Card from '../card.svelte';
let {
action = $bindable('select'),
@@ -154,7 +155,10 @@
);
}}
bind:value={selectedInstallation} />
<InputSearch placeholder="Search repositories" bind:value={search} />
<InputSearch
placeholder="Search repositories"
bind:value={search}
disabled={!search && !$repositories?.repositories?.length} />
</Layout.Stack>
{/await}
</Layout.Stack>
@@ -266,7 +270,7 @@
</Table.Root>
{/snippet}
</Paginator>
{:else}
{:else if search}
<EmptySearch hidePages hidePagination bind:search target="repositories">
<svelte:fragment slot="actions">
{#if search}
@@ -276,6 +280,14 @@
{/if}
</svelte:fragment>
</EmptySearch>
{:else}
<Card>
<Layout.Stack alignItems="center" justifyContent="center">
<Typography.Text variation="m-500" color="--fgcolor-neutral-tertiary">
No repositories available
</Typography.Text>
</Layout.Stack>
</Card>
{/if}
{/await}
{/if}
@@ -9,7 +9,14 @@
InputURL
} from '$lib/elements/forms';
import type { Models } from '@appwrite.io/console';
import { Fieldset, Layout, Popover, Icon, Accordion } from '@appwrite.io/pink-svelte';
import {
Fieldset,
Layout,
Popover,
Icon,
Accordion,
ActionMenu
} from '@appwrite.io/pink-svelte';
import { IconInfo } from '@appwrite.io/pink-icons-svelte';
import type { Component } from 'svelte';
import { getApiEndpoint } from '$lib/stores/sdk';
@@ -93,7 +100,7 @@
bind:value={variable.value} />
</Layout.Stack>
<Layout.Stack gap="s" justifyContent="flex-end" inline>
<Popover let:toggle>
<Popover let:toggle placement="bottom-end">
<Button
secondary
icon
@@ -101,8 +108,10 @@
e.preventDefault();
toggle(e);
}}>
<Icon size="s" icon={IconInfo} /></Button>
<p slot="tooltip">{@html variable.description}</p>
<Icon icon={IconInfo} /></Button>
<ActionMenu.Root slot="tooltip">
<p>{@html variable.description}</p>
</ActionMenu.Root>
</Popover>
</Layout.Stack>
</Layout.Stack>
@@ -134,7 +143,7 @@
bind:value={variable.value} />
</Layout.Stack>
<Layout.Stack gap="s" justifyContent="flex-end" inline>
<Popover let:toggle>
<Popover let:toggle placement="bottom-end">
<Button
secondary
icon
@@ -144,7 +153,9 @@
}}>
<Icon size="s" icon={IconInfo} />
</Button>
<p slot="tooltip">{@html variable.description}</p>
<ActionMenu.Root slot="tooltip">
<p>{@html variable.description}</p>
</ActionMenu.Root>
</Popover>
</Layout.Stack>
</Layout.Stack>
@@ -16,7 +16,7 @@
<ActionMenu.Item.Button trailingIcon={IconDownload}>Download</ActionMenu.Item.Button>
</ActionMenu.Root>
<svelte:fragment slot="menu">
<ActionMenu.Root noPadding>
<ActionMenu.Root>
<ActionMenu.Item.Anchor
on:click={toggle}
href={getSourceDownload(page.params.function, deployment.$id)}
@@ -78,7 +78,7 @@
<Layout.Stack direction="row" gap="s" alignItems="center" inline>
<Menu>
<Button secondary icon text>
<Icon icon={IconDotsHorizontal} size="s" />
<Icon icon={IconDotsHorizontal} />
</Button>
<svelte:fragment slot="menu" let:toggle>
<ActionMenu.Root>
@@ -15,6 +15,7 @@
Accordion,
ActionMenu,
Card,
Icon,
Layout,
Logs,
Popover,
@@ -25,13 +26,23 @@
import { formatTimeDetailed } from '$lib/helpers/timeConversion';
import { timer } from '$lib/actions/timer';
import { app } from '$lib/stores/app';
import { getOutputDownload, getSourceDownload } from '../store';
import { getOutputDownload, getSourceDownload, showCreateDeployment } from '../store';
import { IconDotsHorizontal, IconRefresh, IconTerminal } from '@appwrite.io/pink-icons-svelte';
import { Menu } from '$lib/components/menu';
import { canWriteFunctions } from '$lib/stores/roles';
import { Click, trackEvent } from '$lib/actions/analytics';
import DownloadActionMenuItem from '../(components)/downloadActionMenuItem.svelte';
import { base } from '$app/paths';
import { isCloud } from '$lib/system';
import { readOnly } from '$lib/stores/billing';
import RedeployModal from '../(modals)/redeployModal.svelte';
export let data;
let showDelete = false;
let showCancel = false;
let showActivate = false;
let showRedeploy = false;
onMount(() => {
const unsubscribe = sdk.forConsole.client.subscribe<Models.Deployment>(
@@ -73,7 +84,7 @@
<Container>
<DeploymentCard proxyRuleList={data.proxyRuleList} deployment={data.deployment}>
{#snippet footer()}
<Layout.Stack direction="row" inline>
<Layout.Stack direction="row" alignItems="center" inline>
{#if data.deployment.status === 'processing' || data.deployment.status === 'building' || data.deployment.status === 'waiting'}
<Button
text
@@ -82,34 +93,35 @@
}}>Cancel</Button>
{/if}
{#if !!data.deployment?.sourceSize || !!data.deployment?.sourceSize}
<Popover let:toggle placement="bottom-end">
<Button secondary on:click={toggle}>Download</Button>
<svelte:fragment slot="tooltip" let:toggle>
<ActionMenu.Root noPadding>
<ActionMenu.Item.Anchor
on:click={toggle}
href={getSourceDownload(
page.params.function,
data.deployment.$id
)}
external>
Download source
</ActionMenu.Item.Anchor>
<ActionMenu.Item.Anchor
disabled={data.deployment?.status !== 'ready'}
on:click={toggle}
href={getOutputDownload(
page.params.function,
data.deployment.$id
)}
external>
Download output
</ActionMenu.Item.Anchor>
</ActionMenu.Root>
</svelte:fragment>
</Popover>
<Menu>
<Button secondary icon text>
<Icon icon={IconDotsHorizontal} />
</Button>
<svelte:fragment slot="menu" let:toggle>
<ActionMenu.Root>
{#if $canWriteFunctions}
<ActionMenu.Item.Button
trailingIcon={IconRefresh}
on:click={() => {
showRedeploy = true;
trackEvent(Click.FunctionsRedeployClick);
toggle();
}}>
Redeploy
</ActionMenu.Item.Button>
{/if}
{#if !!data.deployment?.sourceSize || !!data.deployment?.sourceSize}
<DownloadActionMenuItem deployment={data.deployment} {toggle} />
{/if}
</ActionMenu.Root>
</svelte:fragment>
</Menu>
{#if data.func.deploymentId === data.deployment.$id && data.deployment.status === 'ready'}
<Button
href={`${base}/project-${page.params.project}/functions/function-${page.params.function}/executions/execute-function`}
disabled={isCloud && $readOnly}>
Execute
</Button>
{/if}
{#if data.func.deploymentId !== data.deployment.$id && data.deployment.status === 'ready'}
@@ -165,3 +177,7 @@
selectedDeployment={data.deployment}
bind:showActivate
on:activated={() => invalidate(Dependencies.DEPLOYMENTS)} />
{#if showRedeploy}
<RedeployModal bind:show={showRedeploy} selectedDeployment={data.deployment} redirect />
{/if}
@@ -89,7 +89,7 @@
</ActionMenu.Item.Button>
</ActionMenu.Root>
<svelte:fragment slot="menu">
<ActionMenu.Root noPadding>
<ActionMenu.Root>
<ActionMenu.Item.Anchor
on:click={toggle}
href={getSourceDownload(deployment.$id)}
@@ -60,8 +60,9 @@
Missing a repository?
</Typography.Text>
<Typography.Text variation="m-400">
Check your permissions in GitHub, your repository might be set to
private.
Make sure Appwrite has access to your GitHub repositories. If you chose
specific repos, you may need to update your permissions to include the
missing one.
</Typography.Text>
</Layout.Stack>
<Layout.Stack gap="s" direction="row">
@@ -9,7 +9,14 @@
InputURL
} from '$lib/elements/forms';
import type { Models } from '@appwrite.io/console';
import { Fieldset, Layout, Popover, Icon, Accordion } from '@appwrite.io/pink-svelte';
import {
Fieldset,
Layout,
Popover,
Icon,
Accordion,
ActionMenu
} from '@appwrite.io/pink-svelte';
import { IconInfo } from '@appwrite.io/pink-icons-svelte';
import { type Component } from 'svelte';
import { getApiEndpoint } from '$lib/stores/sdk';
@@ -100,8 +107,10 @@
e.preventDefault();
toggle(e);
}}>
<Icon size="s" icon={IconInfo} /></Button>
<p slot="tooltip">{variable.description}</p>
<Icon icon={IconInfo} /></Button>
<ActionMenu.Root slot="tooltip">
<p>{variable.description}</p>
</ActionMenu.Root>
</Popover>
</Layout.Stack>
</Layout.Stack>
@@ -140,8 +149,10 @@
e.preventDefault();
toggle(e);
}}>
<Icon size="s" icon={IconInfo} /></Button>
<p slot="tooltip">{variable.description}</p>
<Icon icon={IconInfo} /></Button>
<ActionMenu.Root slot="tooltip">
<p>{variable.description}</p>
</ActionMenu.Root>
</Popover>
</Layout.Stack>
</Layout.Stack>
@@ -84,7 +84,7 @@
hasFilters
analyticsSource="site_deployments"
hideView>
<Popover padding="none" let:toggle>
<Popover padding="none" let:toggle placement="bottom-end">
<Button size="s" on:click={toggle}>
<Icon size="s" icon={IconPlus} />
Create deployment
@@ -39,6 +39,6 @@
<p data-private>Are you sure you want to cancel this deployment?</p>
<svelte:fragment slot="footer">
<Button text on:click={() => (showCancel = false)}>Cancel</Button>
<Button secondary submit>Continue</Button>
<Button submit>Confirm</Button>
</svelte:fragment>
</Confirm>