@human-kit/svelte-components 1.0.0-alpha.4 → 1.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/checkbox/README.md +53 -0
- package/dist/checkbox/TODO.md +16 -0
- package/dist/checkbox/index.d.ts +6 -0
- package/dist/checkbox/index.js +6 -0
- package/dist/checkbox/index.parts.d.ts +2 -0
- package/dist/checkbox/index.parts.js +2 -0
- package/dist/checkbox/indicator/README.md +23 -0
- package/dist/checkbox/indicator/checkbox-indicator.svelte +43 -0
- package/dist/checkbox/indicator/checkbox-indicator.svelte.d.ts +10 -0
- package/dist/checkbox/root/README.md +47 -0
- package/dist/checkbox/root/checkbox-label-test.svelte +10 -0
- package/dist/checkbox/root/checkbox-label-test.svelte.d.ts +18 -0
- package/dist/checkbox/root/checkbox-root.svelte +361 -0
- package/dist/checkbox/root/checkbox-root.svelte.d.ts +23 -0
- package/dist/checkbox/root/checkbox-test.svelte +59 -0
- package/dist/checkbox/root/checkbox-test.svelte.d.ts +18 -0
- package/dist/checkbox/root/context.d.ts +21 -0
- package/dist/checkbox/root/context.js +15 -0
- package/dist/combobox/list/combobox-listbox.svelte.d.ts +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/table/IMPLEMENTATION_NOTES.md +8 -0
- package/dist/table/PLAN-HIDDEN-COLUMNS.md +152 -0
- package/dist/table/PLAN.md +924 -0
- package/dist/table/README.md +116 -0
- package/dist/table/SELECTION_CHECKBOX_PLAN.md +234 -0
- package/dist/table/TODO.md +100 -0
- package/dist/table/body/README.md +24 -0
- package/dist/table/body/table-body.svelte +25 -0
- package/dist/table/body/table-body.svelte.d.ts +9 -0
- package/dist/table/cell/README.md +25 -0
- package/dist/table/cell/table-cell.svelte +247 -0
- package/dist/table/cell/table-cell.svelte.d.ts +9 -0
- package/dist/table/checkbox/README.md +38 -0
- package/dist/table/checkbox/table-checkbox-test.svelte +121 -0
- package/dist/table/checkbox/table-checkbox-test.svelte.d.ts +16 -0
- package/dist/table/checkbox/table-checkbox.svelte +274 -0
- package/dist/table/checkbox/table-checkbox.svelte.d.ts +13 -0
- package/dist/table/checkbox-indicator/README.md +29 -0
- package/dist/table/checkbox-indicator/table-checkbox-indicator.svelte +22 -0
- package/dist/table/checkbox-indicator/table-checkbox-indicator.svelte.d.ts +10 -0
- package/dist/table/column/README.md +32 -0
- package/dist/table/column/table-column.svelte +108 -0
- package/dist/table/column/table-column.svelte.d.ts +18 -0
- package/dist/table/column-header-cell/README.md +28 -0
- package/dist/table/column-header-cell/table-column-header-cell.svelte +281 -0
- package/dist/table/column-header-cell/table-column-header-cell.svelte.d.ts +9 -0
- package/dist/table/column-resizer/README.md +32 -0
- package/dist/table/column-resizer/table-column-resizer-freeze-layout-test.svelte +51 -0
- package/dist/table/column-resizer/table-column-resizer-freeze-layout-test.svelte.d.ts +3 -0
- package/dist/table/column-resizer/table-column-resizer-selection-column-test.svelte +83 -0
- package/dist/table/column-resizer/table-column-resizer-selection-column-test.svelte.d.ts +3 -0
- package/dist/table/column-resizer/table-column-resizer-test.svelte +75 -0
- package/dist/table/column-resizer/table-column-resizer-test.svelte.d.ts +3 -0
- package/dist/table/column-resizer/table-column-resizer.svelte +616 -0
- package/dist/table/column-resizer/table-column-resizer.svelte.d.ts +11 -0
- package/dist/table/empty-state/README.md +25 -0
- package/dist/table/empty-state/table-empty-state.svelte +38 -0
- package/dist/table/empty-state/table-empty-state.svelte.d.ts +8 -0
- package/dist/table/footer/README.md +24 -0
- package/dist/table/footer/table-footer.svelte +19 -0
- package/dist/table/footer/table-footer.svelte.d.ts +9 -0
- package/dist/table/header/README.md +24 -0
- package/dist/table/header/table-header.svelte +19 -0
- package/dist/table/header/table-header.svelte.d.ts +9 -0
- package/dist/table/index.d.ts +16 -0
- package/dist/table/index.js +16 -0
- package/dist/table/index.parts.d.ts +12 -0
- package/dist/table/index.parts.js +12 -0
- package/dist/table/root/README.md +56 -0
- package/dist/table/root/context.d.ts +198 -0
- package/dist/table/root/context.js +1426 -0
- package/dist/table/root/table-reorder-test.svelte +64 -0
- package/dist/table/root/table-reorder-test.svelte.d.ts +3 -0
- package/dist/table/root/table-root.svelte +410 -0
- package/dist/table/root/table-root.svelte.d.ts +29 -0
- package/dist/table/root/table-test.svelte +165 -0
- package/dist/table/root/table-test.svelte.d.ts +25 -0
- package/dist/table/row/README.md +27 -0
- package/dist/table/row/table-row.svelte +321 -0
- package/dist/table/row/table-row.svelte.d.ts +13 -0
- package/package.json +11 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Table } from '../index';
|
|
3
|
+
|
|
4
|
+
let currentColumnWidths = $state<Map<string, number> | undefined>(undefined);
|
|
5
|
+
|
|
6
|
+
const checkboxStyle =
|
|
7
|
+
'display:inline-flex;height:20px;width:20px;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:4px;';
|
|
8
|
+
const indicatorStyle =
|
|
9
|
+
'display:inline-flex;height:14px;width:14px;align-items:center;justify-content:center;';
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<div style="width: 760px;">
|
|
13
|
+
<Table.Root
|
|
14
|
+
aria-label="Resizable table with selection column"
|
|
15
|
+
selectionMode="multiple"
|
|
16
|
+
bind:columnWidths={currentColumnWidths}
|
|
17
|
+
class="min-w-full border-collapse text-left"
|
|
18
|
+
>
|
|
19
|
+
<Table.Header>
|
|
20
|
+
<Table.Row>
|
|
21
|
+
<Table.Column id="selection" textValue="Selection" width={64} minWidth={64} maxWidth={64}>
|
|
22
|
+
<Table.ColumnHeaderCell data-testid="selection-header-cell">
|
|
23
|
+
<Table.Checkbox style={checkboxStyle} data-testid="selection-header-checkbox">
|
|
24
|
+
<Table.CheckboxIndicator style={indicatorStyle}>
|
|
25
|
+
<svg aria-hidden="true" viewBox="0 0 16 16" style="height:14px;width:14px;">
|
|
26
|
+
<path
|
|
27
|
+
d="M3.75 8.5 6.75 11.5 12.25 5.5"
|
|
28
|
+
fill="none"
|
|
29
|
+
stroke="currentColor"
|
|
30
|
+
stroke-linecap="round"
|
|
31
|
+
stroke-linejoin="round"
|
|
32
|
+
stroke-width="2"
|
|
33
|
+
/>
|
|
34
|
+
</svg>
|
|
35
|
+
</Table.CheckboxIndicator>
|
|
36
|
+
</Table.Checkbox>
|
|
37
|
+
</Table.ColumnHeaderCell>
|
|
38
|
+
</Table.Column>
|
|
39
|
+
<Table.Column id="email" isRowHeader textValue="Email" minWidth={120}>
|
|
40
|
+
<Table.ColumnHeaderCell>
|
|
41
|
+
<div class="flex items-center justify-between gap-3">
|
|
42
|
+
<span>Email</span>
|
|
43
|
+
<Table.ColumnResizer
|
|
44
|
+
data-testid="selection-email-resizer"
|
|
45
|
+
class="inline-flex w-3 cursor-col-resize justify-center"
|
|
46
|
+
/>
|
|
47
|
+
</div>
|
|
48
|
+
</Table.ColumnHeaderCell>
|
|
49
|
+
</Table.Column>
|
|
50
|
+
<Table.Column id="group" textValue="Group" minWidth={100} maxWidth={260}>
|
|
51
|
+
<Table.ColumnHeaderCell>Group</Table.ColumnHeaderCell>
|
|
52
|
+
</Table.Column>
|
|
53
|
+
</Table.Row>
|
|
54
|
+
</Table.Header>
|
|
55
|
+
|
|
56
|
+
<Table.Body>
|
|
57
|
+
<Table.Row id="danilo">
|
|
58
|
+
<Table.Cell>
|
|
59
|
+
<Table.Checkbox style={checkboxStyle} data-testid="selection-row-checkbox">
|
|
60
|
+
<Table.CheckboxIndicator style={indicatorStyle}>
|
|
61
|
+
<svg aria-hidden="true" viewBox="0 0 16 16" style="height:14px;width:14px;">
|
|
62
|
+
<path
|
|
63
|
+
d="M3.75 8.5 6.75 11.5 12.25 5.5"
|
|
64
|
+
fill="none"
|
|
65
|
+
stroke="currentColor"
|
|
66
|
+
stroke-linecap="round"
|
|
67
|
+
stroke-linejoin="round"
|
|
68
|
+
stroke-width="2"
|
|
69
|
+
/>
|
|
70
|
+
</svg>
|
|
71
|
+
</Table.CheckboxIndicator>
|
|
72
|
+
</Table.Checkbox>
|
|
73
|
+
</Table.Cell>
|
|
74
|
+
<Table.Cell>danilo@example.com</Table.Cell>
|
|
75
|
+
<Table.Cell>Developer</Table.Cell>
|
|
76
|
+
</Table.Row>
|
|
77
|
+
</Table.Body>
|
|
78
|
+
</Table.Root>
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<output data-testid="selection-column-widths"
|
|
82
|
+
>{JSON.stringify(Object.fromEntries(currentColumnWidths ?? new Map()))}</output
|
|
83
|
+
>
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Table } from '../index';
|
|
3
|
+
import type { TableSortDescriptor } from '../root/context';
|
|
4
|
+
|
|
5
|
+
let currentColumnWidths = $state<Map<string, number>>(
|
|
6
|
+
new Map([
|
|
7
|
+
['email', 200],
|
|
8
|
+
['group', 160]
|
|
9
|
+
])
|
|
10
|
+
);
|
|
11
|
+
let currentSortDescriptor = $state<TableSortDescriptor | undefined>(undefined);
|
|
12
|
+
let resizeStartColumnId = $state('');
|
|
13
|
+
let resizeEndWidths = $state<Record<string, number>>({});
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<Table.Root
|
|
17
|
+
aria-label="Resizable users table"
|
|
18
|
+
bind:columnWidths={currentColumnWidths}
|
|
19
|
+
bind:sortDescriptor={currentSortDescriptor}
|
|
20
|
+
onColumnResizeStart={(columnId) => {
|
|
21
|
+
resizeStartColumnId = columnId;
|
|
22
|
+
}}
|
|
23
|
+
onColumnResizeEnd={(widths) => {
|
|
24
|
+
resizeEndWidths = Object.fromEntries(widths);
|
|
25
|
+
}}
|
|
26
|
+
>
|
|
27
|
+
<Table.Header>
|
|
28
|
+
<Table.Row>
|
|
29
|
+
<Table.Column id="email" isRowHeader textValue="Email" minWidth={120}>
|
|
30
|
+
<Table.ColumnHeaderCell data-testid="email-header-cell">
|
|
31
|
+
<div class="flex items-center justify-between gap-3">
|
|
32
|
+
<span>Email</span>
|
|
33
|
+
<Table.ColumnResizer
|
|
34
|
+
data-testid="email-resizer"
|
|
35
|
+
class="inline-flex w-3 cursor-col-resize justify-center"
|
|
36
|
+
/>
|
|
37
|
+
</div>
|
|
38
|
+
</Table.ColumnHeaderCell>
|
|
39
|
+
</Table.Column>
|
|
40
|
+
<Table.Column id="group" allowsSorting textValue="Group" minWidth={100} maxWidth={260}>
|
|
41
|
+
<Table.ColumnHeaderCell data-testid="group-header-cell">
|
|
42
|
+
<div class="flex items-center justify-between gap-3">
|
|
43
|
+
<span>Group</span>
|
|
44
|
+
<Table.ColumnResizer
|
|
45
|
+
data-testid="group-resizer"
|
|
46
|
+
class="inline-flex w-3 cursor-col-resize justify-center"
|
|
47
|
+
/>
|
|
48
|
+
</div>
|
|
49
|
+
</Table.ColumnHeaderCell>
|
|
50
|
+
</Table.Column>
|
|
51
|
+
</Table.Row>
|
|
52
|
+
</Table.Header>
|
|
53
|
+
|
|
54
|
+
<Table.Body>
|
|
55
|
+
<Table.Row id="danilo">
|
|
56
|
+
<Table.Cell>danilo.fernandez+workspace-owner@example.com</Table.Cell>
|
|
57
|
+
<Table.Cell>Developer</Table.Cell>
|
|
58
|
+
</Table.Row>
|
|
59
|
+
<Table.Row id="zahra">
|
|
60
|
+
<Table.Cell>zahra@example.com</Table.Cell>
|
|
61
|
+
<Table.Cell>Admin</Table.Cell>
|
|
62
|
+
</Table.Row>
|
|
63
|
+
</Table.Body>
|
|
64
|
+
</Table.Root>
|
|
65
|
+
|
|
66
|
+
<output data-testid="column-widths"
|
|
67
|
+
>{JSON.stringify(Object.fromEntries(currentColumnWidths))}</output
|
|
68
|
+
>
|
|
69
|
+
<output data-testid="sort-descriptor"
|
|
70
|
+
>{currentSortDescriptor
|
|
71
|
+
? `${currentSortDescriptor.column}:${currentSortDescriptor.direction}`
|
|
72
|
+
: ''}</output
|
|
73
|
+
>
|
|
74
|
+
<output data-testid="resize-start-column">{resizeStartColumnId}</output>
|
|
75
|
+
<output data-testid="resize-end-widths">{JSON.stringify(resizeEndWidths)}</output>
|