Skip to content

Commit eecf4e9

Browse files
authored
Merge pull request #2486 from appwrite/revamp-designs
2 parents 9e5877d + 631e349 commit eecf4e9

34 files changed

Lines changed: 2400 additions & 645 deletions

src/lib/components/card.svelte

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,23 @@
2020
};
2121
2222
type ButtonProps = {
23-
isButton: true;
23+
isButton: boolean;
2424
href?: never;
2525
};
2626
2727
type AnchorProps = {
2828
href: string;
29-
isButton?: never;
29+
isButton?: boolean;
30+
external?: boolean;
3031
};
3132
33+
let classes = '';
3234
type $$Props = BaseProps & (ButtonProps | AnchorProps | BaseProps) & BaseCardProps;
3335
34-
export let isDashed = false;
35-
export let isButton = false;
36+
export let isDashed: boolean = false;
37+
export let isButton: boolean = false;
3638
export let href: string = null;
37-
let classes = '';
39+
export let external: boolean = false;
3840
export { classes as class };
3941
export let style = '';
4042
export let padding: $$Props['padding'] = 'm';
@@ -45,7 +47,15 @@
4547
</script>
4648

4749
{#if href}
48-
<Card.Link class={resolvedClasses} {href} {style} {padding} {radius} {variant} on:click>
50+
<Card.Link
51+
{href}
52+
{style}
53+
{padding}
54+
{radius}
55+
{variant}
56+
on:click
57+
class={resolvedClasses}
58+
{...external ? { target: '_blank' } : {}}>
4959
<Layout.Stack gap="xl">
5060
<slot />
5161
</Layout.Stack>

src/lib/elements/forms/inputLine.svelte

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
onDeletePoint: (index: number) => void;
1515
onChangePoint: (pointIndex: number, coordIndex: number, newValue: number) => void;
1616
addLineButton?: Snippet;
17+
disabled?: boolean;
1718
};
1819
1920
let {
@@ -24,7 +25,8 @@
2425
onAddPoint,
2526
onDeletePoint,
2627
onChangePoint,
27-
addLineButton
28+
addLineButton,
29+
disabled
2830
}: Props = $props();
2931
3032
function isDeleteDisabled(index: number) {
@@ -40,6 +42,7 @@
4042
<Layout.Stack>
4143
{#each values as value, index}
4244
<InputPoint
45+
{disabled}
4346
{nullable}
4447
values={value}
4548
deletePoints
@@ -52,7 +55,11 @@
5255

5356
{#if values}
5457
<Layout.Stack direction="row" gap="s" alignItems="center">
55-
<Button size="xs" compact on:click={() => onAddPoint(-1)} disabled={nullable}>
58+
<Button
59+
size="xs"
60+
compact
61+
on:click={() => onAddPoint(-1)}
62+
disabled={nullable || disabled}>
5663
<Icon icon={IconPlus} size="s" /> Add coordinate
5764
</Button>
5865
{@render addLineButton?.()}

src/lib/elements/forms/inputPoint.svelte

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
deletePoints?: boolean;
1111
onDeletePoint?: () => void;
1212
disableDelete?: boolean;
13+
disabled?: boolean;
1314
onChangePoint: (index: number, newValue: number) => void;
1415
}
1516
@@ -21,7 +22,8 @@
2122
deletePoints = false,
2223
disableDelete = false,
2324
onDeletePoint,
24-
onChangePoint
25+
onChangePoint,
26+
disabled
2527
}: Props = $props();
2628
</script>
2729

@@ -38,14 +40,15 @@
3840
placeholder="Enter value"
3941
step={0.0001}
4042
value={values[index]}
43+
{disabled}
4144
on:change={(e) => onChangePoint(index, Number.parseFloat(`${e.detail}`))} />
4245
{/each}
4346
{/if}
4447
{#if deletePoints}
4548
<Button
4649
size="s"
4750
secondary
48-
disabled={nullable || disableDelete}
51+
disabled={nullable || disableDelete || disabled}
4952
on:click={() => onDeletePoint?.()}>
5053
<Icon icon={IconX} size="s" />
5154
</Button>

src/lib/elements/forms/inputPolygon.svelte

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
coordIndex: number,
1818
newValue: number
1919
) => void;
20+
disabled?: boolean;
2021
};
2122
2223
let {
@@ -26,14 +27,16 @@
2627
onAddPoint,
2728
onAddLine,
2829
onDeletePoint,
29-
onChangePoint
30+
onChangePoint,
31+
disabled
3032
}: Props = $props();
3133
</script>
3234

3335
<Layout.Stack gap="s">
3436
{#each values as value, index}
3537
<Layout.Stack gap="xs">
3638
<InputLine
39+
{disabled}
3740
values={value}
3841
onAddPoint={() => onAddPoint(index)}
3942
{nullable}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<script lang="ts">
2+
import { page } from '$app/state';
3+
import { resolve } from '$app/paths';
4+
import { goto } from '$app/navigation';
5+
6+
import Input from './input.svelte';
7+
import { Modal } from '$lib/components';
8+
import { Button } from '$lib/elements/forms';
9+
import { tableColumnSuggestions } from './store';
10+
11+
let {
12+
show = $bindable(false)
13+
}: {
14+
show?: boolean;
15+
} = $props();
16+
17+
const isOnRowsPage = $derived(page.route?.id?.endsWith('table-[table]'));
18+
19+
function resetSuggestionsStore() {
20+
show = false;
21+
22+
$tableColumnSuggestions.table = null;
23+
$tableColumnSuggestions.context = null;
24+
25+
$tableColumnSuggestions.force = false;
26+
$tableColumnSuggestions.enabled = false;
27+
$tableColumnSuggestions.thinking = false;
28+
}
29+
30+
async function triggerColumnSuggestions() {
31+
// set table info. first!
32+
$tableColumnSuggestions.table = {
33+
id: page.params.table,
34+
name: page.data.table?.name ?? 'Table'
35+
};
36+
37+
if (!isOnRowsPage) {
38+
await goto(
39+
resolve(
40+
'/(console)/project-[region]-[project]/databases/database-[database]/table-[table]',
41+
{
42+
region: page.params.region,
43+
project: page.params.project,
44+
database: page.params.database,
45+
table: page.params.table
46+
}
47+
)
48+
);
49+
}
50+
51+
$tableColumnSuggestions.force = true;
52+
$tableColumnSuggestions.enabled = true;
53+
54+
show = false;
55+
}
56+
</script>
57+
58+
<Modal bind:show title="Suggest columns" onSubmit={triggerColumnSuggestions}>
59+
<Input isModal />
60+
61+
<svelte:fragment slot="footer">
62+
<Button text on:click={resetSuggestionsStore}>Cancel</Button>
63+
<Button submit>Generate columns</Button>
64+
</svelte:fragment>
65+
</Modal>

0 commit comments

Comments
 (0)