Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
498ba4d
update: make empty sheet interactive [wip].
ItzNotABug Oct 2, 2025
a53d5cc
update: column selection for delete!
ItzNotABug Oct 2, 2025
106b529
lint.
ItzNotABug Oct 2, 2025
c4c7472
fix: previousColumnId setter.
ItzNotABug Oct 2, 2025
dec5acd
add: delete support as per new designs.
ItzNotABug Oct 2, 2025
963e3e6
add: delete for mobile.
ItzNotABug Oct 2, 2025
d45599e
add: menu for inner icon as well.
ItzNotABug Oct 3, 2025
d1c8633
update: column selection logic.
ItzNotABug Oct 3, 2025
6af5d1a
Merge branch 'main' into revamp-designs
ItzNotABug Oct 6, 2025
1c37717
update: empty sheet actions centering.
ItzNotABug Oct 6, 2025
05d8689
update: widths.
ItzNotABug Oct 6, 2025
9ec11dc
update: columns ai suggestions [wip].
ItzNotABug Oct 6, 2025
9c0162b
Merge branch 'main' into revamp-designs
ItzNotABug Oct 8, 2025
bd26eea
update: smoother slides.
ItzNotABug Oct 8, 2025
d492a0a
new: empty states.
ItzNotABug Oct 8, 2025
00b15cd
update: design comments.
ItzNotABug Oct 19, 2025
2f6346f
feat: undo delete.
ItzNotABug Oct 19, 2025
f3457e6
fix: expanded fab shown when creating columns.
ItzNotABug Oct 19, 2025
63ac081
feat: column suggestions modal.
ItzNotABug Oct 19, 2025
1c8191f
update: index suggestions empty state.
ItzNotABug Oct 19, 2025
292829d
fix: permissions check on empty state options
ItzNotABug Oct 19, 2025
09c6242
fix: view disappearing on columns gen modal > thinking sheet.
ItzNotABug Oct 19, 2025
daf83bf
address comments from coderabbit.
ItzNotABug Oct 19, 2025
f579797
update: empty states on indexes for self-hosted.
ItzNotABug Oct 19, 2025
b2fb9dd
update: empty states on rows for self-hosted.
ItzNotABug Oct 19, 2025
cc795fa
update: hide ai suggestion inline alert if not cloud, for now.
ItzNotABug Oct 19, 2025
5380a6a
fix: column id for deletion.
ItzNotABug Oct 19, 2025
d8cd72c
ci: empty commit
ItzNotABug Oct 20, 2025
a4e1622
Merge branch 'main' into revamp-designs
ItzNotABug Oct 20, 2025
5eaeccf
address design review comments.
ItzNotABug Oct 21, 2025
bff47da
adjust: padding.
ItzNotABug Oct 21, 2025
5ac8c01
adjust: things and address comments during review.
ItzNotABug Oct 21, 2025
d2fd6d6
Merge branch 'main' into revamp-designs
ItzNotABug Oct 21, 2025
5dff420
ci: empty commit
ItzNotABug Oct 21, 2025
18e05e9
add: supports check!
ItzNotABug Oct 21, 2025
1e5bb59
address design comments.
ItzNotABug Oct 22, 2025
7ff7318
update: move required columns to beside `column.key`.
ItzNotABug Oct 22, 2025
c891c34
update: dimensions, colors of the input select.
ItzNotABug Oct 22, 2025
24664fb
update: don't hijack clicks for selections.
ItzNotABug Oct 22, 2025
075e833
fix: link.
ItzNotABug Oct 22, 2025
27ab69a
Merge branch 'main' into revamp-designs
ItzNotABug Oct 22, 2025
92ba08d
Merge branch 'main' into revamp-designs
ItzNotABug Oct 22, 2025
884887d
ci: empty commit
ItzNotABug Oct 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
"@ai-sdk/svelte": "^1.1.24",
"@appwrite.io/console": "https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@636ed39",
"@appwrite.io/pink-icons": "0.25.0",
"@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@10305c4",
"@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@71bdaf8",
"@appwrite.io/pink-legacy": "^1.0.3",
"@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@10305c4",
"@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@71bdaf8",
"@faker-js/faker": "^9.9.0",
"@popperjs/core": "^2.11.8",
"@sentry/sveltekit": "^8.38.0",
Expand Down
20 changes: 10 additions & 10 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 16 additions & 6 deletions src/lib/components/card.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,23 @@
};

type ButtonProps = {
isButton: true;
isButton: boolean;
href?: never;
};

type AnchorProps = {
href: string;
isButton?: never;
isButton?: boolean;
external?: boolean;
};

let classes = '';
type $$Props = BaseProps & (ButtonProps | AnchorProps | BaseProps) & BaseCardProps;

export let isDashed = false;
export let isButton = false;
export let isDashed: boolean = false;
export let isButton: boolean = false;
export let href: string = null;
let classes = '';
export let external: boolean = false;
export { classes as class };
export let style = '';
export let padding: $$Props['padding'] = 'm';
Expand All @@ -45,7 +47,15 @@
</script>

{#if href}
<Card.Link class={resolvedClasses} {href} {style} {padding} {radius} {variant} on:click>
<Card.Link
{href}
{style}
{padding}
{radius}
{variant}
on:click
class={resolvedClasses}
{...external ? { target: '_blank' } : {}}>
<Layout.Stack gap="xl">
<slot />
</Layout.Stack>
Expand Down
11 changes: 9 additions & 2 deletions src/lib/elements/forms/inputLine.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
onDeletePoint: (index: number) => void;
onChangePoint: (pointIndex: number, coordIndex: number, newValue: number) => void;
addLineButton?: Snippet;
disabled?: boolean;
};

let {
Expand All @@ -24,7 +25,8 @@
onAddPoint,
onDeletePoint,
onChangePoint,
addLineButton
addLineButton,
disabled
}: Props = $props();

function isDeleteDisabled(index: number) {
Expand All @@ -40,6 +42,7 @@
<Layout.Stack>
{#each values as value, index}
<InputPoint
{disabled}
{nullable}
values={value}
deletePoints
Expand All @@ -52,7 +55,11 @@

{#if values}
<Layout.Stack direction="row" gap="s" alignItems="center">
<Button size="xs" compact on:click={() => onAddPoint(-1)} disabled={nullable}>
<Button
size="xs"
compact
on:click={() => onAddPoint(-1)}
disabled={nullable || disabled}>
<Icon icon={IconPlus} size="s" /> Add coordinate
</Button>
{@render addLineButton?.()}
Expand Down
7 changes: 5 additions & 2 deletions src/lib/elements/forms/inputPoint.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
deletePoints?: boolean;
onDeletePoint?: () => void;
disableDelete?: boolean;
disabled?: boolean;
onChangePoint: (index: number, newValue: number) => void;
}

Expand All @@ -21,7 +22,8 @@
deletePoints = false,
disableDelete = false,
onDeletePoint,
onChangePoint
onChangePoint,
disabled
}: Props = $props();
</script>

Expand All @@ -38,14 +40,15 @@
placeholder="Enter value"
step={0.0001}
value={values[index]}
{disabled}
on:change={(e) => onChangePoint(index, Number.parseFloat(`${e.detail}`))} />
{/each}
{/if}
{#if deletePoints}
<Button
size="s"
secondary
disabled={nullable || disableDelete}
disabled={nullable || disableDelete || disabled}
on:click={() => onDeletePoint?.()}>
<Icon icon={IconX} size="s" />
</Button>
Expand Down
5 changes: 4 additions & 1 deletion src/lib/elements/forms/inputPolygon.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
coordIndex: number,
newValue: number
) => void;
disabled?: boolean;
};

let {
Expand All @@ -26,14 +27,16 @@
onAddPoint,
onAddLine,
onDeletePoint,
onChangePoint
onChangePoint,
disabled
}: Props = $props();
</script>

<Layout.Stack gap="s">
{#each values as value, index}
<Layout.Stack gap="xs">
<InputLine
{disabled}
values={value}
onAddPoint={() => onAddPoint(index)}
{nullable}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<script lang="ts">
import { page } from '$app/state';
import { resolve } from '$app/paths';
import { goto } from '$app/navigation';

import Input from './input.svelte';
import { Modal } from '$lib/components';
import { Button } from '$lib/elements/forms';
import { tableColumnSuggestions } from './store';

let {
show = $bindable(false)
}: {
show?: boolean;
} = $props();

const isOnRowsPage = $derived(page.route?.id?.endsWith('table-[table]'));

function resetSuggestionsStore() {
show = false;

$tableColumnSuggestions.table = null;
$tableColumnSuggestions.context = null;

$tableColumnSuggestions.force = false;
$tableColumnSuggestions.enabled = false;
$tableColumnSuggestions.thinking = false;
}

async function triggerColumnSuggestions() {
if (!isOnRowsPage) {
await goto(
resolve(
'/(console)/project-[region]-[project]/databases/database-[database]/table-[table]',
{
region: page.params.region,
project: page.params.project,
database: page.params.database,
table: page.params.table
}
)
);
}

show = false;
$tableColumnSuggestions.enabled = true;
$tableColumnSuggestions.table = {
id: page.params.table,
name: page.data.table?.name ?? 'Table'
};
$tableColumnSuggestions.force = true;
}
</script>

<Modal bind:show title="Suggest columns" onSubmit={triggerColumnSuggestions}>
<Input isModal />

<svelte:fragment slot="footer">
<Button text on:click={resetSuggestionsStore}>Cancel</Button>
<Button submit>Generate columns</Button>
</svelte:fragment>
</Modal>
Loading
Loading