From 73bb1921a1a0d75c1d2dd0eb776c672d0e36e66b Mon Sep 17 00:00:00 2001
From: Darshan
Date: Wed, 19 Feb 2025 18:50:55 +0530
Subject: [PATCH 01/50] feat: file tokens.
---
package.json | 4 +-
pnpm-lock.yaml | 32 ++--
.../components}/expirationInput.svelte | 24 ++-
src/lib/components/index.ts | 1 +
src/lib/elements/forms/inputSelect.svelte | 3 +-
src/lib/helpers/date.ts | 5 +-
.../overview/keys/wizard/step1.svelte | 2 +-
.../project-[project]/storage/+page.svelte | 2 +-
.../bucket-[bucket]/create-file/step1.svelte | 5 +-
.../bucket-[bucket]/file-[file]/+page.svelte | 162 ++++++++++++++++--
.../file-[file]/manageFileToken.svelte | 90 ++++++++++
.../bucket-[bucket]/settings/+page.svelte | 11 +-
12 files changed, 292 insertions(+), 49 deletions(-)
rename src/{routes/(console)/project-[project]/overview/keys => lib/components}/expirationInput.svelte (72%)
create mode 100644 src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/manageFileToken.svelte
diff --git a/package.json b/package.json
index 1b65b2542..a6a1fab1d 100644
--- a/package.json
+++ b/package.json
@@ -21,9 +21,9 @@
"dependencies": {
"@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53",
"@appwrite.io/pink-icons": "0.25.0",
- "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290",
+ "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61",
"@appwrite.io/pink-legacy": "^1.0.1",
- "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290",
+ "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@ffaca61",
"@popperjs/core": "^2.11.8",
"@sentry/sveltekit": "^8.38.0",
"@stripe/stripe-js": "^3.5.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6bfda9144..8c1c68b22 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -15,14 +15,14 @@ importers:
specifier: 0.25.0
version: 0.25.0
'@appwrite.io/pink-icons-svelte':
- specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290
- version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290(svelte@4.2.19)
+ specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61
+ version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61(svelte@4.2.19)
'@appwrite.io/pink-legacy':
specifier: ^1.0.1
version: 1.0.1
'@appwrite.io/pink-svelte':
- specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290
- version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)
+ specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@ffaca61
+ version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@ffaca61(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)
'@popperjs/core':
specifier: ^2.11.8
version: 2.11.8
@@ -107,7 +107,7 @@ importers:
version: 6.6.3
'@testing-library/svelte':
specifier: ^5.2.4
- version: 5.2.7(svelte@4.2.19)(vite@5.4.14(@types/node@22.13.4)(sass@1.85.0))(vitest@1.6.1)
+ version: 5.2.7(svelte@4.2.19)(vite@5.4.14(@types/node@22.13.4)(sass@1.85.0))(vitest@1.6.1(@types/node@22.13.4)(@vitest/ui@1.6.1)(jsdom@22.1.0)(sass@1.85.0))
'@testing-library/user-event':
specifier: ^14.5.2
version: 14.6.1(@testing-library/dom@10.4.0)
@@ -215,14 +215,14 @@ packages:
resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53}
version: 1.2.1
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290}
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61}
version: 1.0.0-next.7
peerDependencies:
svelte: ^4.0.0
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2}
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61c9e94c624744b168517346fb0f5b04d84':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61c9e94c624744b168517346fb0f5b04d84}
version: 1.0.0-next.7
peerDependencies:
svelte: ^4.0.0
@@ -236,8 +236,8 @@ packages:
'@appwrite.io/pink-legacy@1.0.1':
resolution: {integrity: sha512-e5IZx2drqSxgl2WXvmr0eLfg/WiOCzuqQE8oksD+9GoFBkcL9HWvXul5GjFni3RBAN9XFRL3nUExGk4T0H8sFw==}
- '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290}
+ '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@ffaca61':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@ffaca61}
version: 1.0.0-next.85
peerDependencies:
react-dom: ^18.0.0
@@ -4099,11 +4099,11 @@ snapshots:
'@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53': {}
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290(svelte@4.2.19)':
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61(svelte@4.2.19)':
dependencies:
svelte: 4.2.19
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2(svelte@4.2.19)':
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61c9e94c624744b168517346fb0f5b04d84(svelte@4.2.19)':
dependencies:
svelte: 4.2.19
@@ -4116,9 +4116,9 @@ snapshots:
'@appwrite.io/pink-icons': 1.0.0
the-new-css-reset: 1.11.3
- '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)':
+ '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@ffaca61(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)':
dependencies:
- '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2(svelte@4.2.19)
+ '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61c9e94c624744b168517346fb0f5b04d84(svelte@4.2.19)
'@floating-ui/dom': 1.6.13
'@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19)
'@melt-ui/svelte': 0.86.3(svelte@4.2.19)
@@ -5375,7 +5375,7 @@ snapshots:
lodash: 4.17.21
redent: 3.0.0
- '@testing-library/svelte@5.2.7(svelte@4.2.19)(vite@5.4.14(@types/node@22.13.4)(sass@1.85.0))(vitest@1.6.1)':
+ '@testing-library/svelte@5.2.7(svelte@4.2.19)(vite@5.4.14(@types/node@22.13.4)(sass@1.85.0))(vitest@1.6.1(@types/node@22.13.4)(@vitest/ui@1.6.1)(jsdom@22.1.0)(sass@1.85.0))':
dependencies:
'@testing-library/dom': 10.4.0
svelte: 4.2.19
diff --git a/src/routes/(console)/project-[project]/overview/keys/expirationInput.svelte b/src/lib/components/expirationInput.svelte
similarity index 72%
rename from src/routes/(console)/project-[project]/overview/keys/expirationInput.svelte
rename to src/lib/components/expirationInput.svelte
index 843cc9f3d..c681e38ce 100644
--- a/src/routes/(console)/project-[project]/overview/keys/expirationInput.svelte
+++ b/src/lib/components/expirationInput.svelte
@@ -1,5 +1,5 @@
-
-
- {#if expirationSelect !== 'custom' && expirationSelect !== null}
- Your key will expire in {toLocaleDate(value)}
- {/if}
-
+
{#if expirationSelect === 'custom'}
-
+
+
{/if}
diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts
index bbc8dc792..6717c215e 100644
--- a/src/lib/components/index.ts
+++ b/src/lib/components/index.ts
@@ -83,3 +83,4 @@ export { default as Sidebar } from './sidebar.svelte';
export { default as BottomSheet } from './bottom-sheet/index';
export { default as Confirm } from './confirm.svelte';
export { default as UsageCard } from './usageCard.svelte';
+export { default as ExpirationInput } from './expirationInput.svelte';
diff --git a/src/lib/elements/forms/inputSelect.svelte b/src/lib/elements/forms/inputSelect.svelte
index 07c45a9d1..224e42ed0 100644
--- a/src/lib/elements/forms/inputSelect.svelte
+++ b/src/lib/elements/forms/inputSelect.svelte
@@ -5,6 +5,7 @@
export let id: string;
export let label: string | undefined = undefined;
export let value: string | number | boolean | null;
+ export let helper: string | undefined = undefined;
export let placeholder = '';
export let required = false;
export let disabled = false;
@@ -52,7 +53,7 @@
{placeholder}
{disabled}
{isSearchable}
- helper={error}
+ helper={error ?? helper}
state={error ? 'error' : 'default'}
on:invalid={handleInvalid}
on:input
diff --git a/src/lib/helpers/date.ts b/src/lib/helpers/date.ts
index f7d7f3a4b..02b109714 100644
--- a/src/lib/helpers/date.ts
+++ b/src/lib/helpers/date.ts
@@ -31,7 +31,7 @@ export const toLocaleDate = (datetime: string) => {
return date.toLocaleDateString('en', options);
};
-export const toLocaleDateTime = (datetime: string | number) => {
+export const toLocaleDateTime = (datetime: string | number, is12HourFormat: boolean = false) => {
const date = new Date(datetime);
if (isNaN(date.getTime())) {
@@ -44,7 +44,8 @@ export const toLocaleDateTime = (datetime: string | number) => {
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
- hourCycle: 'h23'
+ hourCycle: is12HourFormat ? 'h12' : 'h23',
+ ...(is12HourFormat && { hour12: true })
};
return date.toLocaleDateString('en', options);
diff --git a/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte b/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte
index cb53ed034..57da1f27c 100644
--- a/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte
+++ b/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte
@@ -1,7 +1,7 @@
diff --git a/src/routes/(console)/project-[project]/storage/+page.svelte b/src/routes/(console)/project-[project]/storage/+page.svelte
index 245c13bb9..51fafa08e 100644
--- a/src/routes/(console)/project-[project]/storage/+page.svelte
+++ b/src/routes/(console)/project-[project]/storage/+page.svelte
@@ -70,7 +70,7 @@
single
href="https://appwrite.io/docs/products/storage"
target="bucket"
- on:click={() => (showCreateBucket = true)} />
+ on:click={() => ($showCreateBucket = true)} />
{/if}
diff --git a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/create-file/step1.svelte b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/create-file/step1.svelte
index 137a69381..75c3554a0 100644
--- a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/create-file/step1.svelte
+++ b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/create-file/step1.svelte
@@ -10,11 +10,14 @@
import { bucket } from '../store';
import { createFile } from './store';
import { base } from '$app/paths';
+ import { getServiceLimit } from '$lib/stores/billing';
let showCustomId = false;
let fileError: string = null;
- const service = $currentPlan['fileSize'];
+
const projectId = $page.params.project;
+ // hot fix for now, remove later. there's no `currentPlan` on self-hosted.
+ const service = $currentPlan ? $currentPlan['fileSize'] : getServiceLimit('fileSize');
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 d627e8673..cb8fd573f 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,7 +1,7 @@
@@ -107,7 +156,7 @@
{toLocaleDate($file.$updatedAt)}
-
+
@@ -117,6 +166,91 @@
+
+
Permissions
Assign read or write permissions at the bucket level or file level. If bucket level permissions
@@ -178,3 +312,11 @@
+
+ createFileToken(expiry)}
+ on:updated={({ detail: newExpiry }) => updateFileTokenExpiry(newExpiry)}
+ on:deleted={async () => await deleteFileToken(selectedFileToken)} />
diff --git a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/manageFileToken.svelte b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/manageFileToken.svelte
new file mode 100644
index 000000000..b55e7e341
--- /dev/null
+++ b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/manageFileToken.svelte
@@ -0,0 +1,90 @@
+
+
+
+
+{#if isDelete}
+
+ {@const formattedDate = cleanFormattedDate(fileToken.created)}
+
+ Are you sure you want to delete the file token created on {formattedDate} ?
+
+
+
+ {#if fileToken.lastAccessed}
+ {@const formattedDate = cleanFormattedDate(fileToken.lastAccessed)}
+
+ This token was last accessed on {formattedDate}
+ {:else}
+ This token has never been accessed.
+ {/if}
+
+
+
+ Cancel
+ Delete
+
+
+{:else}
+
+
+
+ {#if fileToken}
+ {@const formattedDate = cleanFormattedDate(fileToken.created)}
+ Edit the expiry of the file token created on {formattedDate}
+ {:else}
+ Create a file token to grant public access to a file. Learn more.
+ {/if}
+
+
+
+
+
+ Cancel
+ {fileToken ? 'Update' : 'Create'}
+
+
+{/if}
diff --git a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/settings/+page.svelte b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/settings/+page.svelte
index 03030ae74..578a646c3 100644
--- a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/settings/+page.svelte
+++ b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/settings/+page.svelte
@@ -58,7 +58,7 @@
{#if isDelete}
-
+
{@const formattedDate = cleanFormattedDate(fileToken.created)}
Are you sure you want to delete the file token created on {formattedDate} ?
@@ -55,17 +56,9 @@
This token has never been accessed.
{/if}
-
-
- Cancel
- Delete
-
-
+
{:else}
-
+
{#if fileToken}
From 6748e4a3150d315f3b2af57f4848bf131f322453 Mon Sep 17 00:00:00 2001
From: Darshan
Date: Thu, 20 Feb 2025 15:51:09 +0530
Subject: [PATCH 03/50] ci: empty commit
From a76bfb0728fa24322c81dca6491cec1891d0f755 Mon Sep 17 00:00:00 2001
From: Darshan
Date: Thu, 20 Feb 2025 15:59:01 +0530
Subject: [PATCH 04/50] fix: lock file.
---
pnpm-lock.yaml | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 11a1f5e05..95d9122fa 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -21,8 +21,6 @@ importers:
specifier: ^1.0.1
version: 1.0.1
'@appwrite.io/pink-svelte':
- specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@ffaca61
- version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@ffaca61(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)
specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d
version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)
'@popperjs/core':
@@ -217,8 +215,8 @@ packages:
resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864}
version: 1.2.1
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61}
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962}
version: 1.0.0-next.7
peerDependencies:
svelte: ^4.0.0
@@ -238,8 +236,8 @@ packages:
'@appwrite.io/pink-legacy@1.0.1':
resolution: {integrity: sha512-e5IZx2drqSxgl2WXvmr0eLfg/WiOCzuqQE8oksD+9GoFBkcL9HWvXul5GjFni3RBAN9XFRL3nUExGk4T0H8sFw==}
- '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@ffaca61':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@ffaca61}
+ '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d}
version: 1.0.0-next.85
peerDependencies:
react-dom: ^18.0.0
@@ -4101,7 +4099,7 @@ snapshots:
'@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@d13e864': {}
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61(svelte@4.2.19)':
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962(svelte@4.2.19)':
dependencies:
svelte: 4.2.19
@@ -4118,9 +4116,9 @@ snapshots:
'@appwrite.io/pink-icons': 1.0.0
the-new-css-reset: 1.11.3
- '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@ffaca61(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)':
+ '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@134aa5d(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)':
dependencies:
- '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@ffaca61c9e94c624744b168517346fb0f5b04d84(svelte@4.2.19)
+ '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@134aa5d0d1920f2524d866d213e1134cb62f8962(svelte@4.2.19)
'@floating-ui/dom': 1.6.13
'@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19)
'@melt-ui/svelte': 0.86.3(svelte@4.2.19)
From 35fbdca4eabf787c5f28b44bad6e51dc7b8edc8c Mon Sep 17 00:00:00 2001
From: Darshan
Date: Thu, 20 Feb 2025 16:06:51 +0530
Subject: [PATCH 05/50] fix: import.
---
.../overview/keys/[key]/updateExpirationDate.svelte | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/routes/(console)/project-[project]/overview/keys/[key]/updateExpirationDate.svelte b/src/routes/(console)/project-[project]/overview/keys/[key]/updateExpirationDate.svelte
index 08296b88d..0da17e2d9 100644
--- a/src/routes/(console)/project-[project]/overview/keys/[key]/updateExpirationDate.svelte
+++ b/src/routes/(console)/project-[project]/overview/keys/[key]/updateExpirationDate.svelte
@@ -1,14 +1,14 @@
@@ -58,7 +59,10 @@
{:else}
-
+
{#if fileToken}
From 218ebc4601ed7ffa0b352fc8f24abeab01525a6f Mon Sep 17 00:00:00 2001
From: Darshan
Date: Thu, 27 Feb 2025 17:10:51 +0530
Subject: [PATCH 07/50] update: components, refactor old ones.
---
package.json | 2 +-
pnpm-lock.yaml | 24 +++----
src/lib/components/expirationInput.svelte | 8 +--
src/lib/elements/forms/inputDateTime.svelte | 64 +++++--------------
.../bucket-[bucket]/file-[file]/+page.svelte | 22 +++++--
.../file-[file]/manageFileToken.svelte | 3 +-
6 files changed, 47 insertions(+), 76 deletions(-)
diff --git a/package.json b/package.json
index 3d6a0a353..b83083c29 100644
--- a/package.json
+++ b/package.json
@@ -23,7 +23,7 @@
"@appwrite.io/pink-icons": "0.25.0",
"@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@50ea3ca7",
"@appwrite.io/pink-legacy": "^1.0.1",
- "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@50ea3ca7",
+ "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@284",
"@popperjs/core": "^2.11.8",
"@sentry/sveltekit": "^8.38.0",
"@stripe/stripe-js": "^3.5.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 835873657..7836edb2d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -21,8 +21,8 @@ importers:
specifier: ^1.0.1
version: 1.0.1
'@appwrite.io/pink-svelte':
- specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@50ea3ca7
- version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@50ea3ca7(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)
+ specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@284
+ version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@284(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)
'@popperjs/core':
specifier: ^2.11.8
version: 2.11.8
@@ -215,14 +215,14 @@ packages:
resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@08ec153}
version: 1.2.1
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@50ea3ca7':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@50ea3ca7}
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@372a1cfe319fdf7cb8166b5402eb949751155454':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@372a1cfe319fdf7cb8166b5402eb949751155454}
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@50ea3ca70a483ffd9040f8ce9cb40a8d5f1ee30e':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@50ea3ca70a483ffd9040f8ce9cb40a8d5f1ee30e}
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@50ea3ca7':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@50ea3ca7}
version: 1.0.0-next.7
peerDependencies:
svelte: ^4.0.0
@@ -236,8 +236,8 @@ packages:
'@appwrite.io/pink-legacy@1.0.1':
resolution: {integrity: sha512-e5IZx2drqSxgl2WXvmr0eLfg/WiOCzuqQE8oksD+9GoFBkcL9HWvXul5GjFni3RBAN9XFRL3nUExGk4T0H8sFw==}
- '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@50ea3ca7':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@50ea3ca7}
+ '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@284':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@284}
version: 1.0.0-next.85
peerDependencies:
react-dom: ^18.0.0
@@ -4099,11 +4099,11 @@ snapshots:
'@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@08ec153': {}
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@50ea3ca7(svelte@4.2.19)':
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@372a1cfe319fdf7cb8166b5402eb949751155454(svelte@4.2.19)':
dependencies:
svelte: 4.2.19
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@50ea3ca70a483ffd9040f8ce9cb40a8d5f1ee30e(svelte@4.2.19)':
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@50ea3ca7(svelte@4.2.19)':
dependencies:
svelte: 4.2.19
@@ -4116,9 +4116,9 @@ snapshots:
'@appwrite.io/pink-icons': 1.0.0
the-new-css-reset: 1.11.3
- '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@50ea3ca7(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)':
+ '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@284(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)':
dependencies:
- '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@50ea3ca70a483ffd9040f8ce9cb40a8d5f1ee30e(svelte@4.2.19)
+ '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@372a1cfe319fdf7cb8166b5402eb949751155454(svelte@4.2.19)
'@floating-ui/dom': 1.6.13
'@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19)
'@melt-ui/svelte': 0.86.3(svelte@4.2.19)
diff --git a/src/lib/components/expirationInput.svelte b/src/lib/components/expirationInput.svelte
index c681e38ce..3e8286e04 100644
--- a/src/lib/components/expirationInput.svelte
+++ b/src/lib/components/expirationInput.svelte
@@ -83,11 +83,5 @@
{#if expirationSelect === 'custom'}
-
-
+
{/if}
diff --git a/src/lib/elements/forms/inputDateTime.svelte b/src/lib/elements/forms/inputDateTime.svelte
index fd1c1bee5..478bd8186 100644
--- a/src/lib/elements/forms/inputDateTime.svelte
+++ b/src/lib/elements/forms/inputDateTime.svelte
@@ -1,12 +1,9 @@
-
- {label}
-
-
-
-
+
- {#if isNullable}
-
- {/if}
-
-{#if error}
- {error}
-{/if}
+ helper={error}
+ autocomplete={autocomplete ? 'on' : 'off'}>
+ {#if isNullable}
+
+ {/if}
+
+
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 5aee39cf3..1ac48c9f9 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
@@ -15,7 +15,15 @@
import { Dependencies } from '$lib/constants';
import { Submit, trackEvent, trackError } from '$lib/actions/analytics';
import { bucket } from '../store';
- import { ActionMenu, HiddenText, Layout, Icon, Popover, Table } from '@appwrite.io/pink-svelte';
+ import {
+ ActionMenu,
+ Button as PinkButton,
+ InteractiveText,
+ Layout,
+ Icon,
+ Popover,
+ Table
+ } from '@appwrite.io/pink-svelte';
import {
IconDotsHorizontal,
IconPencil,
@@ -191,7 +199,7 @@
{toLocaleDate(token.created)}
-
+
{token.expiry
@@ -203,18 +211,18 @@
: 'Never'}
-
-
+ {
e.preventDefault();
toggle(e);
}}>
-
+
-
+
{
diff --git a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/manageFileToken.svelte b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/manageFileToken.svelte
index b4a5bf074..243201219 100644
--- a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/manageFileToken.svelte
+++ b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/manageFileToken.svelte
@@ -8,9 +8,8 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
-
-
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}
-
-
-
-
-
-
- deleteRole(role)}>
-
-
-
-
-
- {/each}
-
-
+
+
+ Role
+
+
+ {#each [...$groups.keys()].sort(sortRoles) as role}
+
+
+
+
+
+
+ deleteRole(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 role === 'users'}
+
Users
+{:else if role === 'guests'}
+
Guests
+{:else if role === 'any'}
+
Any
+{:else}
+
+ {role}
+
+ {#key showing}
+ {#await getData(role)}
+
+
+
+ {:then data}
+ {@const isUser = role.startsWith('user')}
+ {@const isTeam = role.startsWith('team')}
+ {@const isAnonymous = !data.email && !data.phone && !data.name && isUser}
+
+
{#if isAnonymous}
-
-
-
+
+
+
{:else if data.name}
-
+
{:else}
-
-
-
+
+
+
{/if}
-
-
- {data.name ?? data?.email ?? data?.phone ?? '-'}
-
- {role}
-
- {#if (isUser && (data?.email || data?.phone)) || isTeam}
-
+
+ {data.name ?? data?.email ?? data?.phone ?? '-'}
+
+
-
-
- {#if isUser}
-
- {#if data?.email}
-
Email: {data?.email}
- {/if}
- {#if data?.phone}
-
Phone: {data?.phone}
- {/if}
-
- {:else if isTeam}
- Members: {data?.total}
- {/if}
-
+
+ {#if isUser}
+ {#if data?.email}
+ Email: {data?.email}
{/if}
-
- {:else}
- Not found.
- {/if}
-
-
- {/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 @@