Merge branch 'main' into 8.x

This commit is contained in:
Darshan
2026-01-14 17:40:59 +05:30
7 changed files with 90 additions and 27 deletions
+2 -2
View File
@@ -24,9 +24,9 @@
"@ai-sdk/svelte": "^1.1.24",
"@appwrite.io/console": "https://pkg.vc/-/@appwrite/@appwrite.io/console@e621876",
"@appwrite.io/pink-icons": "0.25.0",
"@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@865e2fc",
"@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@bbad65f",
"@appwrite.io/pink-legacy": "^1.0.3",
"@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@865e2fc",
"@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@bbad65f",
"@faker-js/faker": "^9.9.0",
"@plausible-analytics/tracker": "^0.4.4",
"@popperjs/core": "^2.11.8",
+10 -10
View File
@@ -18,14 +18,14 @@ importers:
specifier: 0.25.0
version: 0.25.0
'@appwrite.io/pink-icons-svelte':
specifier: https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@865e2fc
version: https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@865e2fc(svelte@5.25.3)
specifier: https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@bbad65f
version: https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@bbad65f(svelte@5.25.3)
'@appwrite.io/pink-legacy':
specifier: ^1.0.3
version: 1.0.3
'@appwrite.io/pink-svelte':
specifier: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@865e2fc
version: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@865e2fc(svelte@5.25.3)
specifier: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@bbad65f
version: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@bbad65f(svelte@5.25.3)
'@faker-js/faker':
specifier: ^9.9.0
version: 9.9.0
@@ -281,8 +281,8 @@ packages:
peerDependencies:
svelte: ^4.0.0
'@appwrite.io/pink-icons-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@865e2fc':
resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@865e2fc}
'@appwrite.io/pink-icons-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@bbad65f':
resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@bbad65f}
version: 2.0.0-RC.1
peerDependencies:
svelte: ^4.0.0
@@ -296,8 +296,8 @@ packages:
'@appwrite.io/pink-legacy@1.0.3':
resolution: {integrity: sha512-GGde5fmPhs+s6/3aFeMPc/kKADG/gTFkYQSy6oBN8pK0y0XNCLrZZgBv+EBbdhwdtqVEWXa0X85Mv9w7jcIlwQ==}
'@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@865e2fc':
resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@865e2fc}
'@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@bbad65f':
resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@bbad65f}
version: 2.0.0-RC.2
peerDependencies:
svelte: ^4.0.0
@@ -3828,7 +3828,7 @@ snapshots:
dependencies:
svelte: 5.25.3
'@appwrite.io/pink-icons-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@865e2fc(svelte@5.25.3)':
'@appwrite.io/pink-icons-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@bbad65f(svelte@5.25.3)':
dependencies:
svelte: 5.25.3
@@ -3841,7 +3841,7 @@ snapshots:
'@appwrite.io/pink-icons': 1.0.0
the-new-css-reset: 1.11.3
'@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@865e2fc(svelte@5.25.3)':
'@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@bbad65f(svelte@5.25.3)':
dependencies:
'@appwrite.io/pink-icons-svelte': 2.0.0-RC.1(svelte@5.25.3)
'@floating-ui/dom': 1.6.13
+6
View File
@@ -0,0 +1,6 @@
.responsive-table {
overflow: hidden;
width: 100%;
scrollbar-width: thin;
position: relative;
}
@@ -13,9 +13,16 @@
} from '@appwrite.io/pink-svelte';
import DomainMetrics from './domainMetrics.svelte';
import { base } from '$app/paths';
import { isSmallViewport } from '$lib/stores/viewport';
import { app } from '$lib/stores/app';
import { Button } from '$lib/elements/forms';
import { IconDownload, IconPlus, IconUpload } from '@appwrite.io/pink-icons-svelte';
import {
IconDownload,
IconPlus,
IconUpload,
IconAdjustments
} from '@appwrite.io/pink-icons-svelte';
import DisplaySettingsModal from '$lib/layout/displaySettingsModal.svelte';
import { ViewSelector } from '$lib/components';
import { View } from '$lib/helpers/load';
import { columns, presets } from './store';
@@ -33,6 +40,7 @@
let showCreate = false;
let showPresetModal = false;
let showImportModal = false;
let showDisplaySettingsModal = false;
let selectedPreset = '';
async function downloadRecords() {
@@ -70,23 +78,55 @@
<Layout.Stack gap="l">
{#if data.recordList.total}
<Layout.Stack direction="row" justifyContent="space-between">
<Layout.Stack direction="row" gap="s" inline>
<Button secondary on:click={() => (showImportModal = true)}>
<Icon icon={IconUpload} size="s" slot="start" />
Import zone file
<Layout.Stack direction="row" gap="s" alignItems="center" wrap="wrap">
<div style:order={$isSmallViewport ? 2 : undefined}>
<Button
secondary
icon={$isSmallViewport}
ariaLabel={$isSmallViewport ? 'Import zone file' : undefined}
on:click={() => (showImportModal = true)}>
{#if $isSmallViewport}
<Icon size="m" icon={IconUpload} />
{:else}
<Icon icon={IconUpload} size="s" slot="start" />
Import zone file
{/if}
</Button>
</div>
<div style:order={$isSmallViewport ? 3 : undefined}>
<Tooltip>
<PinkButton.Button variant="secondary" icon on:click={downloadRecords}>
<Icon icon={IconDownload} size="s" />
<Icon icon={IconDownload} size={$isSmallViewport ? 'm' : 's'} />
</PinkButton.Button>
<svelte:fragment slot="tooltip">Export as .txt</svelte:fragment>
</Tooltip>
</Layout.Stack>
<Layout.Stack direction="row" gap="s" inline>
<ViewSelector ui="new" view={View.Table} {columns} hideView />
</div>
{#if !$isSmallViewport}
<div style="flex: 1"></div>
{/if}
<div style:order={$isSmallViewport ? 4 : undefined}>
{#if $isSmallViewport}
<Button
secondary
icon
ariaLabel="Display settings"
on:click={() => (showDisplaySettingsModal = true)}>
<Icon icon={IconAdjustments} />
</Button>
{:else}
<ViewSelector ui="new" view={View.Table} {columns} hideView />
{/if}
</div>
<div
style:order={$isSmallViewport ? 1 : undefined}
style:flex={$isSmallViewport ? 1 : undefined}>
<Popover let:toggle padding="none">
<Button secondary on:click={toggle}>Add preset</Button>
<Button secondary fullWidth={$isSmallViewport} on:click={toggle}
>Add preset</Button>
<svelte:fragment slot="tooltip" let:toggle>
<ActionMenu.Root>
{#each presets as preset}
@@ -100,11 +140,16 @@
</ActionMenu.Root>
</svelte:fragment>
</Popover>
<Button size="s" on:click={() => (showCreate = true)}>
</div>
<div
style:order={$isSmallViewport ? 5 : undefined}
style:width={$isSmallViewport ? '100%' : undefined}>
<Button fullWidth={$isSmallViewport} on:click={() => (showCreate = true)}>
<Icon size="s" icon={IconPlus} slot="start" />
Create record
</Button>
</Layout.Stack>
</div>
</Layout.Stack>
<Table {data} />
{:else}
@@ -153,3 +198,11 @@
{#if showRetry}
<RetryDomainModal bind:show={showRetry} selectedDomain={data.domain} />
{/if}
{#if showDisplaySettingsModal}
<DisplaySettingsModal
bind:show={showDisplaySettingsModal}
{columns}
hideView
view={View.Table} />
{/if}
@@ -50,7 +50,10 @@
</script>
<Layout.Stack>
<Table.Root columns={[...$columns, { id: 'actions', width: 40 }]} let:root>
<Table.Root
class="responsive-table"
columns={[...$columns, { id: 'actions', width: 40 }]}
let:root>
<svelte:fragment slot="header" let:root>
{#each $columns as { id, title } (id)}
<Table.Header.Cell column={id} {root}>
@@ -17,7 +17,7 @@
});
</script>
<Fieldset legend="Permissions">
<Fieldset legend="Security">
<Layout.Stack gap="l">
<Selector.Switch
id="execute"
+1
View File
@@ -17,6 +17,7 @@
import { ThemeDark, ThemeLight, ThemeDarkCloud, ThemeLightCloud } from '../themes';
import { isSmallViewport, updateViewport } from '$lib/stores/viewport';
import { feedback } from '$lib/stores/feedback';
import '$lib/profiles/css/base.css';
function resolveTheme(theme: AppStore['themeInUse']) {
switch (theme) {