@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.
Files changed (82) hide show
  1. package/dist/checkbox/README.md +53 -0
  2. package/dist/checkbox/TODO.md +16 -0
  3. package/dist/checkbox/index.d.ts +6 -0
  4. package/dist/checkbox/index.js +6 -0
  5. package/dist/checkbox/index.parts.d.ts +2 -0
  6. package/dist/checkbox/index.parts.js +2 -0
  7. package/dist/checkbox/indicator/README.md +23 -0
  8. package/dist/checkbox/indicator/checkbox-indicator.svelte +43 -0
  9. package/dist/checkbox/indicator/checkbox-indicator.svelte.d.ts +10 -0
  10. package/dist/checkbox/root/README.md +47 -0
  11. package/dist/checkbox/root/checkbox-label-test.svelte +10 -0
  12. package/dist/checkbox/root/checkbox-label-test.svelte.d.ts +18 -0
  13. package/dist/checkbox/root/checkbox-root.svelte +361 -0
  14. package/dist/checkbox/root/checkbox-root.svelte.d.ts +23 -0
  15. package/dist/checkbox/root/checkbox-test.svelte +59 -0
  16. package/dist/checkbox/root/checkbox-test.svelte.d.ts +18 -0
  17. package/dist/checkbox/root/context.d.ts +21 -0
  18. package/dist/checkbox/root/context.js +15 -0
  19. package/dist/combobox/list/combobox-listbox.svelte.d.ts +1 -1
  20. package/dist/index.d.ts +4 -0
  21. package/dist/index.js +4 -0
  22. package/dist/table/IMPLEMENTATION_NOTES.md +8 -0
  23. package/dist/table/PLAN-HIDDEN-COLUMNS.md +152 -0
  24. package/dist/table/PLAN.md +924 -0
  25. package/dist/table/README.md +116 -0
  26. package/dist/table/SELECTION_CHECKBOX_PLAN.md +234 -0
  27. package/dist/table/TODO.md +100 -0
  28. package/dist/table/body/README.md +24 -0
  29. package/dist/table/body/table-body.svelte +25 -0
  30. package/dist/table/body/table-body.svelte.d.ts +9 -0
  31. package/dist/table/cell/README.md +25 -0
  32. package/dist/table/cell/table-cell.svelte +247 -0
  33. package/dist/table/cell/table-cell.svelte.d.ts +9 -0
  34. package/dist/table/checkbox/README.md +38 -0
  35. package/dist/table/checkbox/table-checkbox-test.svelte +121 -0
  36. package/dist/table/checkbox/table-checkbox-test.svelte.d.ts +16 -0
  37. package/dist/table/checkbox/table-checkbox.svelte +274 -0
  38. package/dist/table/checkbox/table-checkbox.svelte.d.ts +13 -0
  39. package/dist/table/checkbox-indicator/README.md +29 -0
  40. package/dist/table/checkbox-indicator/table-checkbox-indicator.svelte +22 -0
  41. package/dist/table/checkbox-indicator/table-checkbox-indicator.svelte.d.ts +10 -0
  42. package/dist/table/column/README.md +32 -0
  43. package/dist/table/column/table-column.svelte +108 -0
  44. package/dist/table/column/table-column.svelte.d.ts +18 -0
  45. package/dist/table/column-header-cell/README.md +28 -0
  46. package/dist/table/column-header-cell/table-column-header-cell.svelte +281 -0
  47. package/dist/table/column-header-cell/table-column-header-cell.svelte.d.ts +9 -0
  48. package/dist/table/column-resizer/README.md +32 -0
  49. package/dist/table/column-resizer/table-column-resizer-freeze-layout-test.svelte +51 -0
  50. package/dist/table/column-resizer/table-column-resizer-freeze-layout-test.svelte.d.ts +3 -0
  51. package/dist/table/column-resizer/table-column-resizer-selection-column-test.svelte +83 -0
  52. package/dist/table/column-resizer/table-column-resizer-selection-column-test.svelte.d.ts +3 -0
  53. package/dist/table/column-resizer/table-column-resizer-test.svelte +75 -0
  54. package/dist/table/column-resizer/table-column-resizer-test.svelte.d.ts +3 -0
  55. package/dist/table/column-resizer/table-column-resizer.svelte +616 -0
  56. package/dist/table/column-resizer/table-column-resizer.svelte.d.ts +11 -0
  57. package/dist/table/empty-state/README.md +25 -0
  58. package/dist/table/empty-state/table-empty-state.svelte +38 -0
  59. package/dist/table/empty-state/table-empty-state.svelte.d.ts +8 -0
  60. package/dist/table/footer/README.md +24 -0
  61. package/dist/table/footer/table-footer.svelte +19 -0
  62. package/dist/table/footer/table-footer.svelte.d.ts +9 -0
  63. package/dist/table/header/README.md +24 -0
  64. package/dist/table/header/table-header.svelte +19 -0
  65. package/dist/table/header/table-header.svelte.d.ts +9 -0
  66. package/dist/table/index.d.ts +16 -0
  67. package/dist/table/index.js +16 -0
  68. package/dist/table/index.parts.d.ts +12 -0
  69. package/dist/table/index.parts.js +12 -0
  70. package/dist/table/root/README.md +56 -0
  71. package/dist/table/root/context.d.ts +198 -0
  72. package/dist/table/root/context.js +1426 -0
  73. package/dist/table/root/table-reorder-test.svelte +64 -0
  74. package/dist/table/root/table-reorder-test.svelte.d.ts +3 -0
  75. package/dist/table/root/table-root.svelte +410 -0
  76. package/dist/table/root/table-root.svelte.d.ts +29 -0
  77. package/dist/table/root/table-test.svelte +165 -0
  78. package/dist/table/root/table-test.svelte.d.ts +25 -0
  79. package/dist/table/row/README.md +27 -0
  80. package/dist/table/row/table-row.svelte +321 -0
  81. package/dist/table/row/table-row.svelte.d.ts +13 -0
  82. 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,3 @@
1
+ declare const TableColumnResizerSelectionColumnTest: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type TableColumnResizerSelectionColumnTest = ReturnType<typeof TableColumnResizerSelectionColumnTest>;
3
+ export default TableColumnResizerSelectionColumnTest;
@@ -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>
@@ -0,0 +1,3 @@
1
+ declare const TableColumnResizerTest: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type TableColumnResizerTest = ReturnType<typeof TableColumnResizerTest>;
3
+ export default TableColumnResizerTest;