@ui-organized/svelte-table 0.0.0-stage → 0.1.0

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 (208) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +99 -2
  3. package/dist/DataTable/DataTable.svelte +62 -0
  4. package/dist/DataTable/DataTable.svelte.d.ts +29 -0
  5. package/dist/DataTable/DataTable.svelte.d.ts.map +1 -0
  6. package/dist/DataTable/DataTable.test.svelte.d.ts +2 -0
  7. package/dist/DataTable/DataTable.test.svelte.d.ts.map +1 -0
  8. package/dist/DataTable/DataTable.test.svelte.js +360 -0
  9. package/dist/DataTable/index.d.ts +2 -0
  10. package/dist/DataTable/index.d.ts.map +1 -0
  11. package/dist/DataTable/index.js +1 -0
  12. package/dist/components/Table/CellEditor.svelte +29 -0
  13. package/dist/components/Table/CellEditor.svelte.d.ts +8 -0
  14. package/dist/components/Table/CellEditor.svelte.d.ts.map +1 -0
  15. package/dist/components/Table/MoveButtons.svelte +60 -0
  16. package/dist/components/Table/MoveButtons.svelte.d.ts +8 -0
  17. package/dist/components/Table/MoveButtons.svelte.d.ts.map +1 -0
  18. package/dist/components/Table/ResizeHandle.svelte +82 -0
  19. package/dist/components/Table/ResizeHandle.svelte.d.ts +28 -0
  20. package/dist/components/Table/ResizeHandle.svelte.d.ts.map +1 -0
  21. package/dist/components/Table/Table.svelte +17 -0
  22. package/dist/components/Table/Table.svelte.d.ts +9 -0
  23. package/dist/components/Table/Table.svelte.d.ts.map +1 -0
  24. package/dist/components/Table/TableBody.svelte +78 -0
  25. package/dist/components/Table/TableBody.svelte.d.ts +30 -0
  26. package/dist/components/Table/TableBody.svelte.d.ts.map +1 -0
  27. package/dist/components/Table/TableCell.svelte +106 -0
  28. package/dist/components/Table/TableCell.svelte.d.ts +34 -0
  29. package/dist/components/Table/TableCell.svelte.d.ts.map +1 -0
  30. package/dist/components/Table/TableFooter.svelte +34 -0
  31. package/dist/components/Table/TableFooter.svelte.d.ts +9 -0
  32. package/dist/components/Table/TableFooter.svelte.d.ts.map +1 -0
  33. package/dist/components/Table/TableHeadCell.svelte +157 -0
  34. package/dist/components/Table/TableHeadCell.svelte.d.ts +29 -0
  35. package/dist/components/Table/TableHeadCell.svelte.d.ts.map +1 -0
  36. package/dist/components/Table/TableHeader.svelte +22 -0
  37. package/dist/components/Table/TableHeader.svelte.d.ts +7 -0
  38. package/dist/components/Table/TableHeader.svelte.d.ts.map +1 -0
  39. package/dist/components/Table/TableRow.svelte +84 -0
  40. package/dist/components/Table/TableRow.svelte.d.ts +32 -0
  41. package/dist/components/Table/TableRow.svelte.d.ts.map +1 -0
  42. package/dist/components/Table/TableViewport.svelte +69 -0
  43. package/dist/components/Table/TableViewport.svelte.d.ts +10 -0
  44. package/dist/components/Table/TableViewport.svelte.d.ts.map +1 -0
  45. package/dist/components/Table/index.d.ts +23 -0
  46. package/dist/components/Table/index.d.ts.map +1 -0
  47. package/dist/components/Table/index.js +22 -0
  48. package/dist/components/TableCards/TableCard.svelte +96 -0
  49. package/dist/components/TableCards/TableCard.svelte.d.ts +31 -0
  50. package/dist/components/TableCards/TableCard.svelte.d.ts.map +1 -0
  51. package/dist/components/TableCards/TableCards.svelte +61 -0
  52. package/dist/components/TableCards/TableCards.svelte.d.ts +7 -0
  53. package/dist/components/TableCards/TableCards.svelte.d.ts.map +1 -0
  54. package/dist/components/TableCards/index.d.ts +3 -0
  55. package/dist/components/TableCards/index.d.ts.map +1 -0
  56. package/dist/components/TableCards/index.js +2 -0
  57. package/dist/components/TableDetailSheet/TableDetailSheet.svelte +130 -0
  58. package/dist/components/TableDetailSheet/TableDetailSheet.svelte.d.ts +8 -0
  59. package/dist/components/TableDetailSheet/TableDetailSheet.svelte.d.ts.map +1 -0
  60. package/dist/components/TableDetailSheet/index.d.ts +2 -0
  61. package/dist/components/TableDetailSheet/index.d.ts.map +1 -0
  62. package/dist/components/TableDetailSheet/index.js +1 -0
  63. package/dist/components/TableFilters/TableFilterAdd.svelte +89 -0
  64. package/dist/components/TableFilters/TableFilterAdd.svelte.d.ts +15 -0
  65. package/dist/components/TableFilters/TableFilterAdd.svelte.d.ts.map +1 -0
  66. package/dist/components/TableFilters/TableFilterChip.svelte +164 -0
  67. package/dist/components/TableFilters/TableFilterChip.svelte.d.ts +9 -0
  68. package/dist/components/TableFilters/TableFilterChip.svelte.d.ts.map +1 -0
  69. package/dist/components/TableFilters/TableFilterEditor.svelte +40 -0
  70. package/dist/components/TableFilters/TableFilterEditor.svelte.d.ts +9 -0
  71. package/dist/components/TableFilters/TableFilterEditor.svelte.d.ts.map +1 -0
  72. package/dist/components/TableFilters/TableFilterValueEditor.svelte +209 -0
  73. package/dist/components/TableFilters/TableFilterValueEditor.svelte.d.ts +10 -0
  74. package/dist/components/TableFilters/TableFilterValueEditor.svelte.d.ts.map +1 -0
  75. package/dist/components/TableFilters/TableFilters.svelte +51 -0
  76. package/dist/components/TableFilters/TableFilters.svelte.d.ts +7 -0
  77. package/dist/components/TableFilters/TableFilters.svelte.d.ts.map +1 -0
  78. package/dist/components/TableFilters/index.d.ts +7 -0
  79. package/dist/components/TableFilters/index.d.ts.map +1 -0
  80. package/dist/components/TableFilters/index.js +6 -0
  81. package/dist/components/TableFilters/useAutoFocusField.d.ts +30 -0
  82. package/dist/components/TableFilters/useAutoFocusField.d.ts.map +1 -0
  83. package/dist/components/TableFilters/useAutoFocusField.js +59 -0
  84. package/dist/components/TablePagination/TablePagination.svelte +61 -0
  85. package/dist/components/TablePagination/TablePagination.svelte.d.ts +9 -0
  86. package/dist/components/TablePagination/TablePagination.svelte.d.ts.map +1 -0
  87. package/dist/components/TablePagination/index.d.ts +2 -0
  88. package/dist/components/TablePagination/index.d.ts.map +1 -0
  89. package/dist/components/TablePagination/index.js +1 -0
  90. package/dist/components/TableRowActions/TableRowActions.svelte +68 -0
  91. package/dist/components/TableRowActions/TableRowActions.svelte.d.ts +37 -0
  92. package/dist/components/TableRowActions/TableRowActions.svelte.d.ts.map +1 -0
  93. package/dist/components/TableRowActions/index.d.ts +2 -0
  94. package/dist/components/TableRowActions/index.d.ts.map +1 -0
  95. package/dist/components/TableRowActions/index.js +1 -0
  96. package/dist/components/TableSelectionBar/TableSelectionBar.svelte +88 -0
  97. package/dist/components/TableSelectionBar/TableSelectionBar.svelte.d.ts +30 -0
  98. package/dist/components/TableSelectionBar/TableSelectionBar.svelte.d.ts.map +1 -0
  99. package/dist/components/TableSelectionBar/index.d.ts +2 -0
  100. package/dist/components/TableSelectionBar/index.d.ts.map +1 -0
  101. package/dist/components/TableSelectionBar/index.js +1 -0
  102. package/dist/components/TableSelectionFooter/TableSelectionFooter.svelte +38 -0
  103. package/dist/components/TableSelectionFooter/TableSelectionFooter.svelte.d.ts +7 -0
  104. package/dist/components/TableSelectionFooter/TableSelectionFooter.svelte.d.ts.map +1 -0
  105. package/dist/components/TableSelectionFooter/index.d.ts +2 -0
  106. package/dist/components/TableSelectionFooter/index.d.ts.map +1 -0
  107. package/dist/components/TableSelectionFooter/index.js +1 -0
  108. package/dist/components/TableSheets/TableFilterSheet.svelte +150 -0
  109. package/dist/components/TableSheets/TableFilterSheet.svelte.d.ts +8 -0
  110. package/dist/components/TableSheets/TableFilterSheet.svelte.d.ts.map +1 -0
  111. package/dist/components/TableSheets/TableFilterSheetCondition.svelte +53 -0
  112. package/dist/components/TableSheets/TableFilterSheetCondition.svelte.d.ts +9 -0
  113. package/dist/components/TableSheets/TableFilterSheetCondition.svelte.d.ts.map +1 -0
  114. package/dist/components/TableSheets/TableSheetButton.svelte +44 -0
  115. package/dist/components/TableSheets/TableSheetButton.svelte.d.ts +15 -0
  116. package/dist/components/TableSheets/TableSheetButton.svelte.d.ts.map +1 -0
  117. package/dist/components/TableSheets/TableSortSheet.svelte +100 -0
  118. package/dist/components/TableSheets/TableSortSheet.svelte.d.ts +8 -0
  119. package/dist/components/TableSheets/TableSortSheet.svelte.d.ts.map +1 -0
  120. package/dist/components/TableSheets/index.d.ts +4 -0
  121. package/dist/components/TableSheets/index.d.ts.map +1 -0
  122. package/dist/components/TableSheets/index.js +3 -0
  123. package/dist/components/TableStates/TableEmpty.svelte +35 -0
  124. package/dist/components/TableStates/TableEmpty.svelte.d.ts +11 -0
  125. package/dist/components/TableStates/TableEmpty.svelte.d.ts.map +1 -0
  126. package/dist/components/TableStates/TableError.svelte +26 -0
  127. package/dist/components/TableStates/TableError.svelte.d.ts +10 -0
  128. package/dist/components/TableStates/TableError.svelte.d.ts.map +1 -0
  129. package/dist/components/TableStates/TableLoading.svelte +33 -0
  130. package/dist/components/TableStates/TableLoading.svelte.d.ts +8 -0
  131. package/dist/components/TableStates/TableLoading.svelte.d.ts.map +1 -0
  132. package/dist/components/TableStates/index.d.ts +4 -0
  133. package/dist/components/TableStates/index.d.ts.map +1 -0
  134. package/dist/components/TableStates/index.js +3 -0
  135. package/dist/components/TableSubBar/TableSubBar.svelte +34 -0
  136. package/dist/components/TableSubBar/TableSubBar.svelte.d.ts +7 -0
  137. package/dist/components/TableSubBar/TableSubBar.svelte.d.ts.map +1 -0
  138. package/dist/components/TableSubBar/index.d.ts +2 -0
  139. package/dist/components/TableSubBar/index.d.ts.map +1 -0
  140. package/dist/components/TableSubBar/index.js +1 -0
  141. package/dist/components/TableToolbar/TableActions.svelte +40 -0
  142. package/dist/components/TableToolbar/TableActions.svelte.d.ts +9 -0
  143. package/dist/components/TableToolbar/TableActions.svelte.d.ts.map +1 -0
  144. package/dist/components/TableToolbar/TableExportMenu.svelte +60 -0
  145. package/dist/components/TableToolbar/TableExportMenu.svelte.d.ts +8 -0
  146. package/dist/components/TableToolbar/TableExportMenu.svelte.d.ts.map +1 -0
  147. package/dist/components/TableToolbar/TableReorderToggle.svelte +27 -0
  148. package/dist/components/TableToolbar/TableReorderToggle.svelte.d.ts +7 -0
  149. package/dist/components/TableToolbar/TableReorderToggle.svelte.d.ts.map +1 -0
  150. package/dist/components/TableToolbar/TableScrollButtons.svelte +54 -0
  151. package/dist/components/TableToolbar/TableScrollButtons.svelte.d.ts +9 -0
  152. package/dist/components/TableToolbar/TableScrollButtons.svelte.d.ts.map +1 -0
  153. package/dist/components/TableToolbar/TableSearch.svelte +24 -0
  154. package/dist/components/TableToolbar/TableSearch.svelte.d.ts +9 -0
  155. package/dist/components/TableToolbar/TableSearch.svelte.d.ts.map +1 -0
  156. package/dist/components/TableToolbar/TableSortMenu.svelte +97 -0
  157. package/dist/components/TableToolbar/TableSortMenu.svelte.d.ts +8 -0
  158. package/dist/components/TableToolbar/TableSortMenu.svelte.d.ts.map +1 -0
  159. package/dist/components/TableToolbar/TableToolbar.svelte +113 -0
  160. package/dist/components/TableToolbar/TableToolbar.svelte.d.ts +9 -0
  161. package/dist/components/TableToolbar/TableToolbar.svelte.d.ts.map +1 -0
  162. package/dist/components/TableToolbar/TableViewOptions.svelte +69 -0
  163. package/dist/components/TableToolbar/TableViewOptions.svelte.d.ts +8 -0
  164. package/dist/components/TableToolbar/TableViewOptions.svelte.d.ts.map +1 -0
  165. package/dist/components/TableToolbar/index.d.ts +9 -0
  166. package/dist/components/TableToolbar/index.d.ts.map +1 -0
  167. package/dist/components/TableToolbar/index.js +8 -0
  168. package/dist/core/ActionsHeader.svelte +8 -0
  169. package/dist/core/ActionsHeader.svelte.d.ts +27 -0
  170. package/dist/core/ActionsHeader.svelte.d.ts.map +1 -0
  171. package/dist/core/SelectAllCell.svelte +21 -0
  172. package/dist/core/SelectAllCell.svelte.d.ts +19 -0
  173. package/dist/core/SelectAllCell.svelte.d.ts.map +1 -0
  174. package/dist/core/SelectCell.svelte +37 -0
  175. package/dist/core/SelectCell.svelte.d.ts +8 -0
  176. package/dist/core/SelectCell.svelte.d.ts.map +1 -0
  177. package/dist/core/createDataTable.svelte.d.ts +4 -0
  178. package/dist/core/createDataTable.svelte.d.ts.map +1 -0
  179. package/dist/core/createDataTable.svelte.js +1152 -0
  180. package/dist/core/createDataTable.test.svelte.d.ts +2 -0
  181. package/dist/core/createDataTable.test.svelte.d.ts.map +1 -0
  182. package/dist/core/createDataTable.test.svelte.js +156 -0
  183. package/dist/core/createDeferred.svelte.d.ts +38 -0
  184. package/dist/core/createDeferred.svelte.d.ts.map +1 -0
  185. package/dist/core/createDeferred.svelte.js +81 -0
  186. package/dist/core/elementRef.d.ts +17 -0
  187. package/dist/core/elementRef.d.ts.map +1 -0
  188. package/dist/core/elementRef.js +20 -0
  189. package/dist/core/props.d.ts +3 -0
  190. package/dist/core/props.d.ts.map +1 -0
  191. package/dist/core/props.js +46 -0
  192. package/dist/core/systemColumns.d.ts +16 -0
  193. package/dist/core/systemColumns.d.ts.map +1 -0
  194. package/dist/core/systemColumns.js +53 -0
  195. package/dist/core/tableContext.d.ts +7 -0
  196. package/dist/core/tableContext.d.ts.map +1 -0
  197. package/dist/core/tableContext.js +30 -0
  198. package/dist/core/trackStore.svelte.d.ts +24 -0
  199. package/dist/core/trackStore.svelte.d.ts.map +1 -0
  200. package/dist/core/trackStore.svelte.js +28 -0
  201. package/dist/core/types.d.ts +397 -0
  202. package/dist/core/types.d.ts.map +1 -0
  203. package/dist/core/types.js +1 -0
  204. package/dist/index.d.ts +31 -0
  205. package/dist/index.d.ts.map +1 -0
  206. package/dist/index.js +31 -0
  207. package/dist/styles.css +895 -0
  208. package/package.json +77 -3
@@ -0,0 +1,397 @@
1
+ import type { Snippet } from "svelte";
2
+ import type { ButtonProps } from "@ui-organized/svelte";
3
+ import type { DropSide, ReorderMode, ReorderSetting, BulkSelection, DataTableQuery, DetailState, EditState, GridCursor, HorizontalScrollState, ConditionDescription, FilterOperatorArity, FilterOperatorDef, ResponsiveConfig, SelectionMode, SelectionState, TableChrome, TableColumn as CoreTableColumn, TableEditContext, TableEditPatch, TableFilterCondition, TableFilterFacetOption, TableFilterType, TableMode, TableRowModel, TableRowScope, TableSize, TableVariant, VirtualConfig, RowData, UioTableFeatures } from "@ui-organized/table-core";
4
+ import type { SvelteTable, TableState } from "@tanstack/svelte-table";
5
+ import type { Virtualizer } from "@tanstack/svelte-virtual";
6
+ import type { IconComponent, IconName } from "@ui-organized/svelte";
7
+ /**
8
+ * Anything Svelte will render from a renderer function.
9
+ *
10
+ * The counterpart of React's `ReactNode` in the one place a framework type
11
+ * legitimately enters — a custom cell or edit renderer, which core declares as
12
+ * `unknown` precisely so each adapter can narrow it to its own. A `Snippet` is
13
+ * the Svelte 5 spelling of "a piece of markup you can hand around".
14
+ */
15
+ export type SvelteNode = Snippet | string | number | null | undefined;
16
+ /** The Svelte column type. Identical to core's, with `meta.edit.render` narrowed. */
17
+ export type TableColumn<T extends RowData> = CoreTableColumn<T>;
18
+ export type TableEditRenderer<T extends RowData> = (ctx: TableEditContext<T>) => SvelteNode;
19
+ /**
20
+ * A condition a table starts with. `id` is omitted because the table assigns
21
+ * them — deterministically, so baselines and assertions stay stable.
22
+ */
23
+ export type TableFilterInput = Omit<TableFilterCondition, "id">;
24
+ /** One filterable column, as the "Add filter" list sees it. */
25
+ export interface FilterableField {
26
+ columnId: string;
27
+ label: string;
28
+ type: TableFilterType;
29
+ /** How many conditions already target it. Shown as a suffix in the list. */
30
+ count: number;
31
+ }
32
+ /**
33
+ * ── How this API is reactive, and why it reads like plain values ────────────
34
+ *
35
+ * React's `DataTableApi` is a plain object rebuilt on every render, so its
36
+ * fields are values. Vue's is a bag of refs, read with `.value`. Svelte's is
37
+ * neither: every derived field is a **getter over a `$derived`**, so a component
38
+ * writes `api.rows` and the read is tracked — the same property access it would
39
+ * be in React, with none of Vue's `.value`.
40
+ *
41
+ * That is the second of the two places the plan predicted this port would come
42
+ * out simpler, and it is why these interfaces name plain types rather than a
43
+ * reactivity wrapper. The runes are on the other side of the getter.
44
+ */
45
+ export interface FiltersApi {
46
+ /** Every applied condition, in the order added. What the chips render from. */
47
+ conditions: TableFilterCondition[];
48
+ /** Columns that may be filtered, in menu order. */
49
+ fields: FilterableField[];
50
+ /**
51
+ * Add a condition on a column, starting on its default operator. Returns the
52
+ * id it assigned, so the caller can open that chip's editor immediately.
53
+ */
54
+ add: (columnId: string) => string;
55
+ update: (id: string, patch: Partial<Omit<TableFilterCondition, "id" | "columnId">>) => void;
56
+ /**
57
+ * Move a condition to another column — the chip's field segment. Keeps the
58
+ * operator and value when both columns read them the same way, and starts
59
+ * over on the new column's default otherwise (`retargetCondition`).
60
+ */
61
+ changeField: (id: string, columnId: string) => void;
62
+ /** Put a condition back as it was — Escape in an open editor. */
63
+ restore: (condition: TableFilterCondition) => void;
64
+ remove: (id: string) => void;
65
+ clear: () => void;
66
+ /** The chip's words, decided in core so every adapter agrees. */
67
+ describe: (condition: TableFilterCondition) => ConditionDescription;
68
+ /** The operators a condition's column offers, in menu order. */
69
+ operatorsFor: (condition: TableFilterCondition) => {
70
+ id: string;
71
+ label: string;
72
+ }[];
73
+ /** Enum choices with faceted counts, and whether each would yield nothing. */
74
+ optionsFor: (condition: TableFilterCondition) => TableFilterFacetOption[];
75
+ /** The filter type of a condition's column. Decides which editor renders. */
76
+ typeOf: (condition: TableFilterCondition) => TableFilterType;
77
+ /** How many operands the condition's operator takes. Decides the editor's shape. */
78
+ arityOf: (condition: TableFilterCondition) => FilterOperatorArity;
79
+ /** Chips past the collapse limit are hidden until this is true. */
80
+ expanded: boolean;
81
+ setExpanded: (expanded: boolean) => void;
82
+ /**
83
+ * The condition whose editor is open. `add` sets it, so a filter chosen from
84
+ * the header opens for editing without the two components having to know
85
+ * about each other.
86
+ */
87
+ editing: string | null;
88
+ setEditing: (id: string | null) => void;
89
+ /** Announced in the live region on add, remove, change and clear. */
90
+ announcement: string;
91
+ }
92
+ export interface BulkAction<T extends RowData> {
93
+ id: string;
94
+ label: string;
95
+ /** The icon's native name in the active library (`"pencil"`), or a component. */
96
+ icon?: IconName | IconComponent;
97
+ /** Routes through `AlertDialog` before running. */
98
+ destructive?: boolean;
99
+ /** Confirmation copy. Defaults are derived from `label`. */
100
+ confirm?: {
101
+ title?: string;
102
+ description?: string;
103
+ confirmLabel?: string;
104
+ };
105
+ onRun: (rows: T[], selection: BulkSelection) => void | Promise<void>;
106
+ }
107
+ /**
108
+ * A button in the table's header — "New user", "Import", "Refresh". The table's
109
+ * own actions, as opposed to a row's or a selection's.
110
+ */
111
+ export interface TableAction {
112
+ id: string;
113
+ label: string;
114
+ /** The icon's native name in the active library (`"pencil"`), or a component. */
115
+ icon?: IconName | IconComponent;
116
+ /** Button hierarchy. Defaults to `tertiary` — chrome, not a call to action. */
117
+ intent?: ButtonProps["intent"];
118
+ /** Drop the visible label and keep only the icon. `label` still names it. */
119
+ iconOnly?: boolean;
120
+ disabled?: boolean;
121
+ onRun: () => void | Promise<void>;
122
+ }
123
+ export interface RowAction<T extends RowData> {
124
+ id: string;
125
+ label: string;
126
+ /** The icon's native name in the active library (`"pencil"`), or a component. */
127
+ icon?: IconName | IconComponent;
128
+ destructive?: boolean;
129
+ disabled?: (row: T) => boolean;
130
+ onRun: (row: T) => void | Promise<void>;
131
+ }
132
+ export interface DetailConfig<T extends RowData> {
133
+ render: (row: T) => SvelteNode;
134
+ /** Sheet title. Defaults to the primary column's value. */
135
+ title?: (row: T) => string;
136
+ description?: (row: T) => string;
137
+ /** Footer actions, rendered after the built-in Close. */
138
+ footer?: (row: T) => SvelteNode;
139
+ }
140
+ export interface EmptyStateConfig {
141
+ title?: string;
142
+ description?: string;
143
+ action?: SvelteNode;
144
+ }
145
+ /**
146
+ * The options, read reactively.
147
+ *
148
+ * Handed to `createDataTable` as a **getter** — `createDataTable(() => props)` —
149
+ * rather than as an object. Svelte 5's `$props()` is reactive, so reading a field
150
+ * off it inside a `$derived` tracks; passing the object itself would work too,
151
+ * but the getter makes the intent explicit and lets a caller compose options
152
+ * from several sources without building a proxy.
153
+ */
154
+ export interface UseDataTableOptions<T extends RowData> {
155
+ data: readonly T[];
156
+ columns: readonly TableColumn<T>[];
157
+ /**
158
+ * The table's accessible name. Required, not optional: it becomes the
159
+ * `<caption>`, and a table announced as "table" and nothing else is the most
160
+ * common data-table accessibility failure there is.
161
+ */
162
+ label: string;
163
+ /** Show the caption instead of hiding it visually. */
164
+ captionVisible?: boolean;
165
+ /**
166
+ * Stable row identity. Selection, inline edit and the detail sheet are keyed
167
+ * by it; without one they follow row *position*, which breaks on every sort.
168
+ */
169
+ getRowId?: (row: T, index: number) => string;
170
+ size?: TableSize;
171
+ variant?: TableVariant;
172
+ selection?: SelectionMode;
173
+ sortable?: boolean;
174
+ filterable?: boolean;
175
+ searchable?: boolean;
176
+ paginated?: boolean;
177
+ pageSize?: number;
178
+ resizable?: boolean;
179
+ /**
180
+ * Lets people rearrange the columns by dragging a header, or with its move
181
+ * buttons (and Alt+Arrow on a focused header). Adds "Reset column order" to
182
+ * the Columns menu.
183
+ *
184
+ * - `true` / `"always"`: movable at any time; the move buttons appear on
185
+ * hover and focus.
186
+ * - `"toggle"`: movable only in a reorder mode, switched from the toolbar.
187
+ *
188
+ * The table's own columns (selection, row actions) and pinned columns stay
189
+ * where they are.
190
+ */
191
+ reorderable?: ReorderSetting;
192
+ hideableColumns?: boolean;
193
+ /** The header's sort button. On by default whenever any column is sortable. */
194
+ sortMenu?: boolean;
195
+ /** Offer CSV download and clipboard copy in the toolbar. */
196
+ exportable?: boolean;
197
+ /** Row virtualization. `true` uses the defaults; an object tunes them. */
198
+ virtual?: boolean | VirtualConfig;
199
+ /** Caps the scroll viewport. A table with no cap cannot scroll or virtualize. */
200
+ maxHeight?: number | string;
201
+ loading?: boolean;
202
+ error?: SvelteNode;
203
+ empty?: EmptyStateConfig;
204
+ /** Server-driven mode. Sorting, filtering and pagination stop happening locally. */
205
+ manual?: boolean;
206
+ /** Total matching rows. Required in `manual` mode — the client cannot count. */
207
+ rowCount?: number;
208
+ onQueryChange?: (query: DataTableQuery) => void;
209
+ /** Infinite scroll: fires as the viewport approaches the end of the rows. */
210
+ onLoadMore?: () => void;
211
+ onRowClick?: (row: T) => void;
212
+ onEdit?: (patch: TableEditPatch<T>) => void | Promise<void>;
213
+ rowActions?: RowAction<T>[];
214
+ bulkActions?: BulkAction<T>[];
215
+ /** The table's own actions, rendered in the header row. */
216
+ actions?: TableAction[];
217
+ detail?: DetailConfig<T>;
218
+ responsive?: ResponsiveConfig;
219
+ defaultSorting?: {
220
+ id: string;
221
+ desc: boolean;
222
+ }[];
223
+ defaultColumnVisibility?: Record<string, boolean>;
224
+ /**
225
+ * Conditions the table starts with. Also the only way to render a chip in a
226
+ * static surface — a visual baseline, an axe scan, a jsdom test.
227
+ */
228
+ defaultFilters?: TableFilterInput[];
229
+ /** Extra or replacement operators, including for localizing labels. */
230
+ filterOperators?: FilterOperatorDef[];
231
+ }
232
+ export interface SelectionApi<T extends RowData> {
233
+ mode: SelectionMode;
234
+ state: SelectionState;
235
+ /** Rows the user believes are selected, including the all-matching case. */
236
+ count: number;
237
+ /** Rows actually loaded and selected. */
238
+ rows: T[];
239
+ isSelected: (rowId: string) => boolean;
240
+ toggle: (rowId: string, checked: boolean, shift?: boolean) => void;
241
+ togglePage: (checked: boolean) => void;
242
+ selectAllMatching: () => void;
243
+ clear: () => void;
244
+ header: {
245
+ checked: boolean;
246
+ indeterminate: boolean;
247
+ };
248
+ /** True when the page is fully selected and more rows match beyond it. */
249
+ canSelectAllMatching: boolean;
250
+ totalMatching: number;
251
+ asBulk: () => BulkSelection;
252
+ }
253
+ export interface EditApi<T extends RowData> {
254
+ enabled: boolean;
255
+ state: EditState;
256
+ isEditing: (rowId: string, columnId: string) => boolean;
257
+ start: (row: TableRowModel<T>, columnId: string) => void;
258
+ setValue: (value: unknown) => void;
259
+ commit: () => void;
260
+ cancel: () => void;
261
+ contextFor: (row: TableRowModel<T>, columnId: string) => TableEditContext<T> | null;
262
+ }
263
+ export interface DetailApi<T extends RowData> {
264
+ enabled: boolean;
265
+ state: DetailState;
266
+ row: T | null;
267
+ total: number;
268
+ open: (rowId: string) => void;
269
+ close: () => void;
270
+ step: (direction: -1 | 1) => void;
271
+ canStep: (direction: -1 | 1) => boolean;
272
+ setDirty: (dirty: boolean) => void;
273
+ /** Answer the "discard unsaved changes?" prompt. */
274
+ resolveConfirm: (discard: boolean) => void;
275
+ }
276
+ export interface FocusApi {
277
+ cursor: GridCursor;
278
+ /**
279
+ * Follow focus that has already moved. Updates the cursor and takes no focus
280
+ * of its own — which is what keeps it from pulling focus back out of an open
281
+ * inline editor.
282
+ */
283
+ setCursor: (cursor: GridCursor) => void;
284
+ /** Move the cursor and take DOM focus with it. */
285
+ focusCell: (cursor: GridCursor) => void;
286
+ isFocused: (rowIndex: number, colIndex: number) => boolean;
287
+ }
288
+ export interface VirtualApi {
289
+ enabled: boolean;
290
+ virtualizer: Virtualizer<HTMLElement, HTMLElement>;
291
+ spacers: {
292
+ top: number;
293
+ bottom: number;
294
+ };
295
+ }
296
+ /**
297
+ * The viewport's horizontal overflow, live. `overflowing` is false whenever
298
+ * every column fits — which is what lets a scroll control render itself only
299
+ * when there is something to scroll to.
300
+ */
301
+ export interface HorizontalScrollApi {
302
+ state: HorizontalScrollState;
303
+ /** Move most of a viewport width: `-1` towards the first column, `1` away. */
304
+ by: (direction: -1 | 1) => void;
305
+ }
306
+ /** A header drag in progress: what is moving, and where it would land. */
307
+ export interface ColumnDrag {
308
+ source: string;
309
+ target: string | null;
310
+ side: DropSide;
311
+ }
312
+ export interface ReorderApi {
313
+ /** The `reorderable` setting, resolved. */
314
+ mode: ReorderMode;
315
+ /** Columns can be moved right now: always, or inside toggle mode. */
316
+ active: boolean;
317
+ /** Enters or leaves reorder mode. Only meaningful when `mode` is `"toggle"`. */
318
+ setActive: (active: boolean) => void;
319
+ /** Visible, not pinned, and not one of the table's own columns. */
320
+ isMovable: (columnId: string) => boolean;
321
+ canMove: (columnId: string, direction: -1 | 1) => boolean;
322
+ /** One place left or right, past the nearest movable visible column. */
323
+ move: (columnId: string, direction: -1 | 1) => void;
324
+ drop: (sourceId: string, targetId: string, side: DropSide) => void;
325
+ drag: ColumnDrag | null;
326
+ setDrag: (drag: ColumnDrag | null) => void;
327
+ }
328
+ /** One row as the renderer sees it: the model, plus both of its indices. */
329
+ export interface RenderRow<T extends RowData> {
330
+ row: TableRowModel<T>;
331
+ /** The cursor coordinate: where the row sits on the current page. */
332
+ index: number;
333
+ /** What `aria-rowindex` reports: where it sits in the whole dataset. */
334
+ absoluteIndex: number;
335
+ }
336
+ export interface DataTableApi<T extends RowData> {
337
+ /**
338
+ * The raw TanStack instance. Exposed deliberately as the escape hatch: every
339
+ * feature the wrapper does not cover is reachable through it, which is what
340
+ * stops a missing prop from being a fork.
341
+ *
342
+ * The *Svelte* instance, so its rune-aware atoms come with it. The instance
343
+ * is created once and mutated in place; its reactivity lives in the atoms it
344
+ * holds, which track when read inside a `$derived` or a template.
345
+ */
346
+ table: SvelteTable<UioTableFeatures, T>;
347
+ /**
348
+ * The controlled state — sorting, pagination, visibility, selection.
349
+ *
350
+ * React's adapter hangs a `state` getter off the table instance; Svelte's
351
+ * exposes rune-aware `atoms` instead. It is handed back here rather than
352
+ * reached for on the engine because the table is controlled: these values are
353
+ * the source of truth and the engine is downstream of them.
354
+ */
355
+ readonly state: Partial<TableState<UioTableFeatures>>;
356
+ /** The rows to render — the current page, before virtualization. */
357
+ rows: TableRowModel<T>[];
358
+ /** The rows actually rendered, which under virtualization is a window. */
359
+ renderRows: RenderRow<T>[];
360
+ chrome: TableChrome;
361
+ options: UseDataTableOptions<T>;
362
+ size: TableSize;
363
+ variant: TableVariant;
364
+ label: string;
365
+ captionVisible: boolean;
366
+ interactive: boolean;
367
+ mode: TableMode;
368
+ loading: boolean;
369
+ /** The urgent search value. Bind an input to this, never to the deferred one. */
370
+ search: string;
371
+ setSearch: (value: string) => void;
372
+ selection: SelectionApi<T>;
373
+ filters: FiltersApi;
374
+ edit: EditApi<T>;
375
+ detail: DetailApi<T>;
376
+ focus: FocusApi;
377
+ virtual: VirtualApi;
378
+ scroll: HorizontalScrollApi;
379
+ reorder: ReorderApi;
380
+ columnWidths: Record<string, number>;
381
+ /**
382
+ * Callback refs, the way React takes them rather than the way Vue does.
383
+ *
384
+ * Svelte 5 has no `ref` object to bind: `bind:this` assigns to a variable, and
385
+ * a variable assignment is not something a `$derived` elsewhere can watch. A
386
+ * callback that writes into the api's own `$state` is what makes the node's
387
+ * arrival reactive, which is what the resize and scroll observers need.
388
+ */
389
+ rootRef: (element: HTMLElement | null) => void;
390
+ viewportRef: (element: HTMLElement | null) => void;
391
+ exportCsv: (scope?: TableRowScope) => void;
392
+ copySelection: (scope?: TableRowScope) => Promise<boolean>;
393
+ onGridKeyDown: (event: KeyboardEvent) => void;
394
+ activate: (row: TableRowModel<T>) => void;
395
+ primaryColumnId: string | undefined;
396
+ }
397
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `@ui-organized/svelte-table` — the Svelte data table.
3
+ *
4
+ * Three layers, the same three the React and Vue packages ship: the
5
+ * `createDataTable` rune, the styled parts, and a batteries-included
6
+ * `<DataTable>`. The behaviour underneath all of them is
7
+ * `@ui-organized/table-core`, shared verbatim — same class names, same
8
+ * stylesheet, same token contract, no fork of the logic.
9
+ */
10
+ export { createDataTable } from "./core/createDataTable.svelte.js";
11
+ export { trackStore } from "./core/trackStore.svelte.js";
12
+ export { createDeferred } from "./core/createDeferred.svelte.js";
13
+ export { setTable, getTable, getOptionalTable } from "./core/tableContext.js";
14
+ export { selectionColumn, actionsColumn } from "./core/systemColumns.js";
15
+ export { elementRef } from "./core/elementRef.js";
16
+ export type { BulkAction, ColumnDrag, DataTableApi, DetailApi, DetailConfig, EditApi, EmptyStateConfig, FilterableField, FiltersApi, FocusApi, HorizontalScrollApi, ReorderApi, RenderRow, RowAction, SelectionApi, SvelteNode, TableAction, TableColumn, TableEditRenderer, TableFilterInput, UseDataTableOptions, VirtualApi, } from "./core/types.js";
17
+ export { Table, TableViewport, TableHeader, TableHeadCell, TableBody, TableRow, TableCell, TableFooter, } from "./components/Table/index.js";
18
+ export { TableEmpty, TableLoading, TableError } from "./components/TableStates/index.js";
19
+ export { TableToolbar, TableActions, TableSearch, TableSortMenu, TableViewOptions, TableReorderToggle, TableExportMenu, TableScrollButtons, } from "./components/TableToolbar/index.js";
20
+ export { TableFilters, TableFilterAdd, TableFilterChip, TableFilterEditor, TableFilterValueEditor, autoFocusField, focusAfterRemoval, } from "./components/TableFilters/index.js";
21
+ export { TablePagination } from "./components/TablePagination/index.js";
22
+ export { TableSelectionBar } from "./components/TableSelectionBar/index.js";
23
+ export { TableSelectionFooter } from "./components/TableSelectionFooter/index.js";
24
+ export { TableFilterSheet, TableSheetButton, TableSortSheet, } from "./components/TableSheets/index.js";
25
+ export { TableSubBar } from "./components/TableSubBar/index.js";
26
+ export { TableCards, TableCard } from "./components/TableCards/index.js";
27
+ export { TableDetailSheet } from "./components/TableDetailSheet/index.js";
28
+ export { TableRowActions } from "./components/TableRowActions/index.js";
29
+ export { DataTable } from "./DataTable/index.js";
30
+ export type { DataTableQuery, SelectionMode, TableDateDef, TableDateSetting, TableFilterCondition, TableFilterType, TableMode, TableRowModel, TableRowScope, TableSize, TableVariant, ResponsiveConfig, VirtualConfig, } from "@ui-organized/table-core";
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,YAAY,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,UAAU,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,GACX,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,KAAK,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,SAAS,EACT,QAAQ,EACR,SAAS,EACT,WAAW,GACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAGxE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,aAAa,GACd,MAAM,0BAA0B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `@ui-organized/svelte-table` — the Svelte data table.
3
+ *
4
+ * Three layers, the same three the React and Vue packages ship: the
5
+ * `createDataTable` rune, the styled parts, and a batteries-included
6
+ * `<DataTable>`. The behaviour underneath all of them is
7
+ * `@ui-organized/table-core`, shared verbatim — same class names, same
8
+ * stylesheet, same token contract, no fork of the logic.
9
+ */
10
+ // ── Layer 1: headless ───────────────────────────────────────────────────────
11
+ export { createDataTable } from "./core/createDataTable.svelte.js";
12
+ export { trackStore } from "./core/trackStore.svelte.js";
13
+ export { createDeferred } from "./core/createDeferred.svelte.js";
14
+ export { setTable, getTable, getOptionalTable } from "./core/tableContext.js";
15
+ export { selectionColumn, actionsColumn } from "./core/systemColumns.js";
16
+ export { elementRef } from "./core/elementRef.js";
17
+ // ── Layer 2: parts ──────────────────────────────────────────────────────────
18
+ export { Table, TableViewport, TableHeader, TableHeadCell, TableBody, TableRow, TableCell, TableFooter, } from "./components/Table/index.js";
19
+ export { TableEmpty, TableLoading, TableError } from "./components/TableStates/index.js";
20
+ export { TableToolbar, TableActions, TableSearch, TableSortMenu, TableViewOptions, TableReorderToggle, TableExportMenu, TableScrollButtons, } from "./components/TableToolbar/index.js";
21
+ export { TableFilters, TableFilterAdd, TableFilterChip, TableFilterEditor, TableFilterValueEditor, autoFocusField, focusAfterRemoval, } from "./components/TableFilters/index.js";
22
+ export { TablePagination } from "./components/TablePagination/index.js";
23
+ export { TableSelectionBar } from "./components/TableSelectionBar/index.js";
24
+ export { TableSelectionFooter } from "./components/TableSelectionFooter/index.js";
25
+ export { TableFilterSheet, TableSheetButton, TableSortSheet, } from "./components/TableSheets/index.js";
26
+ export { TableSubBar } from "./components/TableSubBar/index.js";
27
+ export { TableCards, TableCard } from "./components/TableCards/index.js";
28
+ export { TableDetailSheet } from "./components/TableDetailSheet/index.js";
29
+ export { TableRowActions } from "./components/TableRowActions/index.js";
30
+ // ── Layer 3: the wrapper ────────────────────────────────────────────────────
31
+ export { DataTable } from "./DataTable/index.js";