From 93f6cda9d8a1df65cea78bddfaa236018e0c6f36 Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 7 Feb 2025 15:03:24 +0530 Subject: [PATCH 1/6] add: `on:click` to checkbox for manual state changes. --- v2/pink-sb/src/lib/selector/Checkbox.svelte | 1 + 1 file changed, 1 insertion(+) diff --git a/v2/pink-sb/src/lib/selector/Checkbox.svelte b/v2/pink-sb/src/lib/selector/Checkbox.svelte index bb53e24549..a185469d71 100644 --- a/v2/pink-sb/src/lib/selector/Checkbox.svelte +++ b/v2/pink-sb/src/lib/selector/Checkbox.svelte @@ -36,6 +36,7 @@ {...$root} {disabled} use:root + on:click class:active={$isIndeterminate || $isChecked} class:s={size === 's'} > From 8a34f074cb5ce6f88c610cd21ccd8b1d33729f4d Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 7 Feb 2025 15:04:27 +0530 Subject: [PATCH 2/6] update: checkbox state-management on table. --- v2/pink-sb/src/lib/table/Table.svelte | 51 +++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/v2/pink-sb/src/lib/table/Table.svelte b/v2/pink-sb/src/lib/table/Table.svelte index 8a4937baac..d1b8edf761 100644 --- a/v2/pink-sb/src/lib/table/Table.svelte +++ b/v2/pink-sb/src/lib/table/Table.svelte @@ -1,15 +1,62 @@ -
{#if $$slots.header} + {#if selection} + + + + {/if} {/if} - + + {#if selection} + {#each items as tableItem} + + + toggleRow(tableItem[idKey])} + checked={selectedIds.includes(tableItem[idKey])} + /> + + + + {/each} + {:else} + + {/if}
From 29b35be3bf05cdcb3defdefa10fc5fc9b4cbcd78 Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 7 Feb 2025 15:05:38 +0530 Subject: [PATCH 3/6] update: table storybook. --- v2/pink-sb/src/stories/Table.stories.svelte | 66 ++++++++++----------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/v2/pink-sb/src/stories/Table.stories.svelte b/v2/pink-sb/src/stories/Table.stories.svelte index 5b8b980906..e5faf013cf 100644 --- a/v2/pink-sb/src/stories/Table.stories.svelte +++ b/v2/pink-sb/src/stories/Table.stories.svelte @@ -12,6 +12,14 @@ import { Selector, Button, Badge, Tag, Icon, Status, Typography } from '$lib/index.js'; import { Story } from '@storybook/addon-svelte-csf'; import { IconDuplicate } from '@appwrite.io/pink-icons-svelte'; + + $: selectedIds = []; + let tableItems = [ + { id: 1, name: 'Arman Nik', role: 'Product Engineer', location: 'Italy' }, + { id: 2, name: 'Darshan Pandya', role: 'Product Engineer', location: 'India' }, + { id: 3, name: 'Ernst Mulders', role: 'Product Engineer', location: 'Netherlands' }, + { id: 4, name: 'Torsten Dittmann', role: 'Product Architect', location: 'Germany' } + ]; @@ -147,40 +155,30 @@ - - - - - - Lorem - Ipsum - Dolor - - - - - - Lorem - Ipsum - Dolor - - - - - - Lorem - Ipsum - Dolor - - - - - - Lorem - Ipsum - Dolor - - + + + + Name + Role + Location + + + + {tableItem.name} + {tableItem.role} + {tableItem.location} + + + + Selected IDs: {selectedIds.join(', ')} + + Selected Persons: {selectedIds + .map((id) => tableItems.find((item) => item.id === id)?.name) + .join(', ')} + From 201413159b862a89d03d116ff4cd30af7dfbc0e1 Mon Sep 17 00:00:00 2001 From: Darshan Date: Sun, 9 Feb 2025 15:04:20 +0530 Subject: [PATCH 4/6] improve: selection logic on tables. --- v2/pink-sb/src/lib/table/Row.svelte | 33 ++++++++++ v2/pink-sb/src/lib/table/Table.svelte | 92 +++++++++++++++------------ 2 files changed, 86 insertions(+), 39 deletions(-) diff --git a/v2/pink-sb/src/lib/table/Row.svelte b/v2/pink-sb/src/lib/table/Row.svelte index ef4a6679ff..2dca68c6e2 100644 --- a/v2/pink-sb/src/lib/table/Row.svelte +++ b/v2/pink-sb/src/lib/table/Row.svelte @@ -1,8 +1,41 @@
+ {#if tableCtx.selection} + + + + {/if} +
diff --git a/v2/pink-sb/src/lib/table/Table.svelte b/v2/pink-sb/src/lib/table/Table.svelte index d1b8edf761..effe2bd486 100644 --- a/v2/pink-sb/src/lib/table/Table.svelte +++ b/v2/pink-sb/src/lib/table/Table.svelte @@ -1,62 +1,76 @@ + +
{#if $$slots.header} - {#if selection} - - - - {/if} {/if} - - {#if selection} - {#each items as tableItem} - - - toggleRow(tableItem[idKey])} - checked={selectedIds.includes(tableItem[idKey])} - /> - - - - {/each} - {:else} - - {/if} +
From ad33cdeadb65a607498b73b7667c9bd987341334 Mon Sep 17 00:00:00 2001 From: Darshan Date: Sun, 9 Feb 2025 15:06:00 +0530 Subject: [PATCH 5/6] update: storybook. --- v2/pink-sb/src/stories/Table.stories.svelte | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/v2/pink-sb/src/stories/Table.stories.svelte b/v2/pink-sb/src/stories/Table.stories.svelte index e5faf013cf..e650f2eed9 100644 --- a/v2/pink-sb/src/stories/Table.stories.svelte +++ b/v2/pink-sb/src/stories/Table.stories.svelte @@ -156,18 +156,22 @@ - + {@const selectableIds = tableItems.map((item) => item.id.toString())} + Name Role Location - - {tableItem.name} - {tableItem.role} - {tableItem.location} - + {#each tableItems as tableItem} + + + {tableItem.name} + {tableItem.role} + {tableItem.location} + + {/each} Selected IDs: {selectedIds.join(', ')}Selected Persons: {selectedIds - .map((id) => tableItems.find((item) => item.id === id)?.name) + .map( + (selectedId) => + tableItems.find((tableItem) => tableItem.id.toString() === selectedId)?.name + ) .join(', ')} From 4e91acaaa4f6c58f9ac1ab9629bcb1549ec9c738 Mon Sep 17 00:00:00 2001 From: Darshan Date: Sun, 9 Feb 2025 15:20:51 +0530 Subject: [PATCH 6/6] add: error log. --- v2/pink-sb/src/lib/table/Row.svelte | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/v2/pink-sb/src/lib/table/Row.svelte b/v2/pink-sb/src/lib/table/Row.svelte index 2dca68c6e2..9cf50612b1 100644 --- a/v2/pink-sb/src/lib/table/Row.svelte +++ b/v2/pink-sb/src/lib/table/Row.svelte @@ -1,5 +1,5 @@