diff --git a/package.json b/package.json
index 1b65b2542..fae9d8bf6 100644
--- a/package.json
+++ b/package.json
@@ -21,9 +21,9 @@
"dependencies": {
"@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53",
"@appwrite.io/pink-icons": "0.25.0",
- "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290",
+ "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332",
"@appwrite.io/pink-legacy": "^1.0.1",
- "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290",
+ "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332",
"@popperjs/core": "^2.11.8",
"@sentry/sveltekit": "^8.38.0",
"@stripe/stripe-js": "^3.5.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6bfda9144..377b7d110 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -15,14 +15,14 @@ importers:
specifier: 0.25.0
version: 0.25.0
'@appwrite.io/pink-icons-svelte':
- specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290
- version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290(svelte@4.2.19)
+ specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332
+ version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332(svelte@4.2.19)
'@appwrite.io/pink-legacy':
specifier: ^1.0.1
version: 1.0.1
'@appwrite.io/pink-svelte':
- specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290
- version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)
+ specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332
+ version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)
'@popperjs/core':
specifier: ^2.11.8
version: 2.11.8
@@ -215,14 +215,14 @@ packages:
resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53}
version: 1.2.1
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290}
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332}
version: 1.0.0-next.7
peerDependencies:
svelte: ^4.0.0
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2}
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332a9fec20d8ed842170634ede486bda8df':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332a9fec20d8ed842170634ede486bda8df}
version: 1.0.0-next.7
peerDependencies:
svelte: ^4.0.0
@@ -236,8 +236,8 @@ packages:
'@appwrite.io/pink-legacy@1.0.1':
resolution: {integrity: sha512-e5IZx2drqSxgl2WXvmr0eLfg/WiOCzuqQE8oksD+9GoFBkcL9HWvXul5GjFni3RBAN9XFRL3nUExGk4T0H8sFw==}
- '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290':
- resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290}
+ '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332':
+ resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332}
version: 1.0.0-next.85
peerDependencies:
react-dom: ^18.0.0
@@ -4099,11 +4099,11 @@ snapshots:
'@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ae1eb53': {}
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f29290(svelte@4.2.19)':
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332(svelte@4.2.19)':
dependencies:
svelte: 4.2.19
- '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2(svelte@4.2.19)':
+ '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332a9fec20d8ed842170634ede486bda8df(svelte@4.2.19)':
dependencies:
svelte: 4.2.19
@@ -4116,9 +4116,9 @@ snapshots:
'@appwrite.io/pink-icons': 1.0.0
the-new-css-reset: 1.11.3
- '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@35f29290(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)':
+ '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@2ff4e332(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)':
dependencies:
- '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@35f2929064b9d126a377b6a3e85f59198c5901a2(svelte@4.2.19)
+ '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@2ff4e332a9fec20d8ed842170634ede486bda8df(svelte@4.2.19)
'@floating-ui/dom': 1.6.13
'@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19)
'@melt-ui/svelte': 0.86.3(svelte@4.2.19)
diff --git a/src/lib/components/avatarGroup.svelte b/src/lib/components/avatarGroup.svelte
index 6c19d6b05..499cd5e95 100644
--- a/src/lib/components/avatarGroup.svelte
+++ b/src/lib/components/avatarGroup.svelte
@@ -24,7 +24,9 @@
{#if total > 2}
- +{total - 2}
+
+ +{total - 2}
+
{/if}
diff --git a/src/lib/components/roles/base.svelte b/src/lib/components/roles/base.svelte
index 9e37e47b5..6733ad202 100644
--- a/src/lib/components/roles/base.svelte
+++ b/src/lib/components/roles/base.svelte
@@ -1,21 +1,10 @@
-
+
diff --git a/src/lib/components/roles/upgrade.svelte b/src/lib/components/roles/upgrade.svelte
index 9e5487476..e482387c8 100644
--- a/src/lib/components/roles/upgrade.svelte
+++ b/src/lib/components/roles/upgrade.svelte
@@ -5,58 +5,62 @@
import { organization } from '$lib/stores/organization';
import { BillingPlan } from '$lib/constants';
import Button from '$lib/elements/forms/button.svelte';
+ import { Badge, Layout, Link, Tag, Typography } from '@appwrite.io/pink-svelte';
- {#if isCloud}
- {#if $organization?.billingPlan !== BillingPlan.FREE}
-
-
- Roles
- {#if $organization?.billingPlan === BillingPlan.FREE}
- Pro plan
- {/if}
-
-
Owner, Developer, Editor, Analyst and Billing.
-
-
- Learn more about roles.
-
- {:else}
-
-
- Roles
- {#if $organization?.billingPlan === BillingPlan.FREE}
- Pro plan
- {/if}
-
-
+
+ {#if isCloud}
+ {#if $organization?.billingPlan !== BillingPlan.FREE}
+ Roles
+ Owner, Developer, Editor, Analyst and Billing.
+
+ Learn more
+
+ {:else}
+
+
+ Roles
+
+
+
+
Upgrade to Pro to assign new roles to members such as Owner, Developer, Editor
or Analyst.
+
+
+
+ Learn more
+ Upgrade plan
-
+ {/if}
+ {:else}
+
+
+ Roles
+
+
+
+
+ Upgrade to Cloud to assign new roles to members or ask us about our enterprise self
+ hosted offering.
+
- Learn more
- Upgrade plan
+ Learn more
+ Upgrade to Cloud
{/if}
- {:else}
-
-
- Roles
- Appwrite Cloud
-
-
- Upgrade to Cloud to assign new roles to members or ask us about our entriprise self
- hosted offering.
-
-
-
- Learn more
- Upgrade to Cloud
-
- {/if}
+
diff --git a/src/lib/components/tab.svelte b/src/lib/components/tab.svelte
index 9ca8c022a..70a7e05f1 100644
--- a/src/lib/components/tab.svelte
+++ b/src/lib/components/tab.svelte
@@ -10,6 +10,7 @@
export let selected = false;
export let href: string = null;
export let event: string = null;
+ export let noscroll = false;
export let root: { variant: Variant; stretch: boolean } = {
variant: 'primary',
stretch: false
@@ -87,6 +88,7 @@
{#if href}
-
- {platform.name}
-
+ {@const icon = getIconForPlatform(platform.icon)}
+
+
+
{/if}
{/each}
{#if platforms?.length > 3}
diff --git a/src/routes/(console)/organization-[organization]/createMember.svelte b/src/routes/(console)/organization-[organization]/createMember.svelte
index 683501c13..6cf08dc39 100644
--- a/src/routes/(console)/organization-[organization]/createMember.svelte
+++ b/src/routes/(console)/organization-[organization]/createMember.svelte
@@ -59,24 +59,24 @@
}
-
-
-
+
+
+ {#if isCloud}
+
-
- {#if isCloud}
-
- {/if}
-
+ popover={Roles}
+ id="role"
+ label="Role"
+ options={roles}
+ bind:value={role} />
+ {/if}
(showCreate = false)}>Cancel
Send invite
diff --git a/src/routes/(console)/organization-[organization]/createProject.svelte b/src/routes/(console)/organization-[organization]/createProject.svelte
index 8638642ac..c3e372838 100644
--- a/src/routes/(console)/organization-[organization]/createProject.svelte
+++ b/src/routes/(console)/organization-[organization]/createProject.svelte
@@ -8,6 +8,8 @@
import { addNotification } from '$lib/stores/notifications';
import { sdk } from '$lib/stores/sdk';
import { ID, Region } from '@appwrite.io/console';
+ import { IconPencil } from '@appwrite.io/pink-icons-svelte';
+ import { Icon, Layout, Tag } from '@appwrite.io/pink-svelte';
import { createEventDispatcher } from 'svelte';
export let show = false;
@@ -49,21 +51,27 @@
}
-
-
+
+
{#if !showCustomId}
-
-
(showCustomId = !showCustomId)}>
-
- Project ID
-
-
-
+
+ (showCustomId = !showCustomId)}>
+
+ Project ID
+
+
{:else}
-
+
{/if}
-
+
+
(show = false)}>Cancel
Create
diff --git a/src/routes/(console)/organization-[organization]/members/+page.svelte b/src/routes/(console)/organization-[organization]/members/+page.svelte
index c98000ea3..25d161257 100644
--- a/src/routes/(console)/organization-[organization]/members/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/members/+page.svelte
@@ -14,9 +14,24 @@
import { isOwner } from '$lib/stores/roles';
import Edit from './edit.svelte';
import { getRoleLabel } from '$lib/stores/billing';
- import { Drop } from '$lib/components';
- import { IconDotsHorizontal, IconPlus } from '@appwrite.io/pink-icons-svelte';
- import { Layout, Table, Badge, Button, Icon } from '@appwrite.io/pink-svelte';
+ import {
+ IconDotsHorizontal,
+ IconInfo,
+ IconPencil,
+ IconPlus,
+ IconRefresh,
+ IconTrash
+ } from '@appwrite.io/pink-icons-svelte';
+ import {
+ Layout,
+ Table,
+ Badge,
+ Button,
+ Icon,
+ Typography,
+ Popover,
+ ActionMenu
+ } from '@appwrite.io/pink-svelte';
import Upgrade from '$lib/components/roles/upgrade.svelte';
export let data: PageData;
@@ -25,7 +40,6 @@
let showDelete = false;
let showEdit = false;
let showDropdown = [];
- let showPopover = false;
const resend = async (member: Models.Membership) => {
try {
@@ -54,7 +68,8 @@
-
+
+ Members
newMemberModal.set(true)} event="create_user" size="s">
Invite
@@ -65,28 +80,16 @@
Name
Email
- Roles
-
- (showPopover = !showPopover)}
- aria-label="input tooltip">
-
-
-
-
-
-
-
-
+
+
+ Roles
+
+
+
+
+
+
+
2FA
{#if $isOwner}
@@ -102,7 +105,7 @@
{member.userName ? member.userName : 'n/a'}
{#if member.invited && !member.joined}
-
+
{/if}
@@ -121,49 +124,41 @@
{#if $isOwner}
-
- {
- e.preventDefault();
- showDropdown[index] = !showDropdown[index];
- }}>
-
+
+
+
-
- {
- selectedMember = member;
- showEdit = true;
- showDropdown[index] = false;
- }}>
- Edit role
-
- {#if member.invited && !member.joined}
-
+
+ {
- resend(member);
+ selectedMember = member;
+ showEdit = true;
showDropdown[index] = false;
}}>
- Resend
-
- {/if}
- {
- selectedMember = member;
- showDelete = true;
- showDropdown[index] = false;
- }}>
- Remove
-
-
-
+ Edit role
+
+ {#if member.invited && !member.joined}
+ {
+ resend(member);
+ }}>
+ Resend
+
+ {/if}
+ {
+ selectedMember = member;
+ showDelete = true;
+ }}>
+ Remove
+
+
+
+
{/if}
diff --git a/src/routes/(console)/organization-[organization]/settings/+page.svelte b/src/routes/(console)/organization-[organization]/settings/+page.svelte
index 59bb50f98..0788e3092 100644
--- a/src/routes/(console)/organization-[organization]/settings/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/settings/+page.svelte
@@ -53,14 +53,13 @@
Name
-
+
diff --git a/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte b/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte
index 95ff127d9..52bc80b28 100644
--- a/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte
+++ b/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte
@@ -1,6 +1,6 @@
-
-
- {#if upcomingInvoice}
-
-
- You have a pending {formatCurrency(upcomingInvoice.grossAmount)} invoice for your
- {tierToPlan(upcomingInvoice.plan).name} plan
-
-
- By proceeding, your invoice will be processed within the hour. Upon successful
- payment, your organization will be deleted.
-
-
- {/if}
-
-
- {#if $projects.total > 0}
- The following projects and all data associated with {$organization.name} will
- be permanently deleted. This action is irreversible .
- {:else}
- All data associated with {$organization.name} will be permanently deleted.
- This action is irreversible .
- {/if}
-
+
+ {#if upcomingInvoice}
+
+ By proceeding, your invoice will be processed within the hour. Upon successful payment,
+ your organization will be deleted.
+
+ {/if}
+
{#if $projects.total > 0}
-
-
- {#each tabs as { name, label, total }}
- (selectedTab = name)}>
- {label.desktop} ({total})
-
- {/each}
-
-
-
-
- {#each tabData.headers as header}
- {header}
- {/each}
-
-
- {#each tabData.rows as row}
-
- {#each row.cells as cell}
- {cell}
- {/each}
-
- {/each}
-
-
-
-
-
- {#each tabs as { name, label, total }}
- (selectedTab = name)}>
- {label.mobile} ({total})
-
- {/each}
-
-
-
-
- {#each tabData.headers as header, index}
- {header}
- {/each}
-
-
- {#each tabData.rows as row}
-
- {#each row.cells as cell, index}
- {cell}
- {/each}
-
- {/each}
-
-
-
+ The following projects and all data associated with {$organization.name} will be
+ permanently deleted. This action is irreversible .
+ {:else}
+ All data associated with {$organization.name} will be permanently deleted.
+ This action is irreversible .
{/if}
+
-
-
-
+ {#if $projects.total > 0}
+
+ {#each tabs as { name, label, total }}
+ (selectedTab = name)}
+ active={selectedTab === name}>
+ {label.desktop} ({total})
+
+ {/each}
+
-
- (showDelete = false)}>Cancel
-
- Delete
-
-
-
-
+
+
+ {#each tabData.headers as header}
+ {header}
+ {/each}
+
+ {#each tabData.rows as row}
+
+ {#each row.cells as cell}
+ {cell}
+ {/each}
+
+ {/each}
+
+
+
+ {#each tabs as { name, label, total }}
+ (selectedTab = name)}>
+ {label.mobile} ({total})
+
+ {/each}
+
+
+
+
+ {#each tabData.headers as header, index}
+ {header}
+ {/each}
+
+
+ {#each tabData.rows as row}
+
+ {#each row.cells as cell, index}
+ {cell}
+ {/each}
+
+ {/each}
+
+
+
+ {/if}
+
+
+ (showDelete = false)}>Cancel
+
+ Delete
+
+
+
diff --git a/src/routes/(console)/project-[project]/overview/bandwidth.svelte b/src/routes/(console)/project-[project]/overview/bandwidth.svelte
index a6e1b53c9..8f4924671 100644
--- a/src/routes/(console)/project-[project]/overview/bandwidth.svelte
+++ b/src/routes/(console)/project-[project]/overview/bandwidth.svelte
@@ -1,16 +1,16 @@
-
+
-
+
{bandwidth.value}
{bandwidth.unit}
-
-
Bandwidth
+
+
Bandwidth
-
- (showPeriod = !showPeriod)}>
- {period}
-
-
-
- dispatch('change', '24h')}>24h
- dispatch('change', '30d')}>30d
- dispatch('change', '90d')}>90d
+
+
+
+ {period}
+
+
+
+
+
+ dispatch('change', '24h')}
+ >24h
+ dispatch('change', '30d')}
+ >30d
+ dispatch('change', '90d')}
+ >90d
+
-
-
+
+
{#if bandwidth.value !== '0'}
{:else}
-
-
- {#if $app.themeInUse === 'dark'}
-
- {:else}
-
- {/if}
-
-
-
Create a platform to get started.
-
- Need a hand? Learn more in our documentation.
-
-
-
-
- Documentation
-
-
- {#if $canWritePlatforms}
- (showDropdownEmpty = !showDropdownEmpty)}>
- Add platform
-
- {/if}
-
- addPlatform(Platform.Flutter)}>
+
+
+
+ Documentation
+
+ {#if $canWritePlatforms}
+
+ Add platform
+
+ {/if}
+
+
+ addPlatform(Platform.Flutter)}
+ leadingIcon={IconFlutter}>
Flutter
-
- addPlatform(Platform.Android)}>
+
+ addPlatform(Platform.Android)}
+ leadingIcon={IconAndroid}>
Android
-
- addPlatform(Platform.Apple)}>
+
+ addPlatform(Platform.Apple)}
+ leadingIcon={IconApple}>
Apple
-
- addPlatform(Platform.ReactNative)}>
+
+ addPlatform(Platform.ReactNative)}
+ leadingIcon={IconReact}>
React Native
-
-
-
-
-
-
-
+
+
+
+
+
+
+
{/if}
diff --git a/src/routes/(console)/project-[project]/overview/platforms/action.svelte b/src/routes/(console)/project-[project]/overview/platforms/action.svelte
index 7e2b723ce..214bf8276 100644
--- a/src/routes/(console)/project-[project]/overview/platforms/action.svelte
+++ b/src/routes/(console)/project-[project]/overview/platforms/action.svelte
@@ -3,25 +3,50 @@
import DropListItem from '$lib/components/dropListItem.svelte';
import Button from '$lib/elements/forms/button.svelte';
import { canWritePlatforms } from '$lib/stores/roles';
- import { Icon } from '@appwrite.io/pink-svelte';
+ import { ActionMenu, Icon, Popover } from '@appwrite.io/pink-svelte';
import { addPlatform, Platform } from './+page.svelte';
- import { IconPlus } from '@appwrite.io/pink-icons-svelte';
+ import {
+ IconAndroid,
+ IconApple,
+ IconFlutter,
+ IconPlus,
+ IconReact
+ } from '@appwrite.io/pink-icons-svelte';
let showDropdown = false;
{#if $canWritePlatforms}
-
- (showDropdown = !showDropdown)}>
-
- Add platform
-
-
- addPlatform(Platform.Flutter)}>Flutter app
- addPlatform(Platform.Android)}>Android app
- addPlatform(Platform.Apple)}>Apple app
- addPlatform(Platform.ReactNative)}
- >React Native app
-
-
+
+ {#if $canWritePlatforms}
+
+
+ Add platform
+
+ {/if}
+
+
+ addPlatform(Platform.Flutter)}
+ leadingIcon={IconFlutter}>
+ Flutter
+
+ addPlatform(Platform.Android)}
+ leadingIcon={IconAndroid}>
+ Android
+
+ addPlatform(Platform.Apple)}
+ leadingIcon={IconApple}>
+ Apple
+
+ addPlatform(Platform.ReactNative)}
+ leadingIcon={IconReact}>
+ React Native
+
+
+
+
{/if}
diff --git a/src/routes/(console)/project-[project]/overview/realtime.svelte b/src/routes/(console)/project-[project]/overview/realtime.svelte
index 852065d0b..14b5f50f3 100644
--- a/src/routes/(console)/project-[project]/overview/realtime.svelte
+++ b/src/routes/(console)/project-[project]/overview/realtime.svelte
@@ -3,6 +3,7 @@
import { BarChart } from '$lib/charts';
import { Card } from '$lib/components';
import { formatNum } from '$lib/helpers/string';
+ import { Link, Typography } from '@appwrite.io/pink-svelte';
import { stats } from '../store';
$: projectId = $page.params.project;
@@ -34,12 +35,11 @@
class="icon-chart-square-bar text-large"
aria-hidden="true"
style="font-size: 32px;" />
- No data to show
- No data to show
+ Get started with Realtime
+ rel="noopener noreferrer">Get started with Realtime
{/if}
diff --git a/src/routes/(console)/project-[project]/overview/requests.svelte b/src/routes/(console)/project-[project]/overview/requests.svelte
index 7fe57efda..c9f940532 100644
--- a/src/routes/(console)/project-[project]/overview/requests.svelte
+++ b/src/routes/(console)/project-[project]/overview/requests.svelte
@@ -6,6 +6,8 @@
import { createEventDispatcher } from 'svelte';
import { LineChart } from '$lib/charts';
import { formatNum } from '$lib/helpers/string';
+ import { ActionMenu, Icon, Layout, Link, Popover, Typography } from '@appwrite.io/pink-svelte';
+ import { IconChevronDown } from '@appwrite.io/pink-icons-svelte';
export let period: UsagePeriods;
@@ -23,25 +25,31 @@
}
-
+
-
+
{formatNum(totalMetrics($usage?.requests))}
-
-
Requests
+
+
Requests
-
- (showPeriod = !showPeriod)}>
- {period}
-
-
-
- dispatch('change', '24h')}>24h
- dispatch('change', '30d')}>30d
- dispatch('change', '90d')}>90d
-
-
-
+
+
+
+ {period}
+
+
+
+
+ dispatch('change', '24h')}
+ >24h
+ dispatch('change', '30d')}
+ >30d
+ dispatch('change', '90d')}
+ >90d
+
+
+
+
{#if totalMetrics($usage?.requests) !== 0}