@ui-organized/svelte-table 0.0.0-stage → 6.0.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,69 @@
1
+ <!--
2
+ The scroll container and the `<table>` element, which are inseparable: a
3
+ viewport with two tables in it means nothing, and `<caption>` and `<colgroup>`
4
+ have to be emitted between them.
5
+ -->
6
+ <script lang="ts">
7
+ import { TableSelectionFooter } from "../TableSelectionFooter/index.js";
8
+ import type { Snippet } from "svelte";
9
+ import { clsx } from "clsx";
10
+ import {
11
+ getCaptionProps,
12
+ getColProps,
13
+ getTableProps,
14
+ getViewportProps,
15
+ } from "@ui-organized/table-core";
16
+ import { getTable } from "../../core/tableContext.js";
17
+ import { elementRef } from "../../core/elementRef.js";
18
+ import { svelteProps } from "../../core/props.js";
19
+
20
+ let {
21
+ class: className,
22
+ maxHeight,
23
+ children,
24
+ }: { class?: string; maxHeight?: number | string; children?: Snippet } = $props();
25
+
26
+ const table = getTable();
27
+ const viewport = $derived(getViewportProps(table.chrome));
28
+ const tableProps = $derived(getTableProps(table.chrome));
29
+ const caption = $derived(getCaptionProps(table.captionVisible));
30
+ const columns = $derived(table.table.getVisibleLeafColumns());
31
+
32
+ const lengthOf = (value: number | string) => (typeof value === "number" ? `${value}px` : value);
33
+ const cap = $derived(maxHeight ?? table.options.maxHeight);
34
+ const style = $derived(
35
+ cap === undefined ? undefined : `--data-table-max-height: ${lengthOf(cap)}`,
36
+ );
37
+ </script>
38
+
39
+ <div
40
+ {...svelteProps(viewport)}
41
+ class={clsx(viewport.className, className)}
42
+ {style}
43
+ use:elementRef={table.viewportRef}
44
+ >
45
+ <!--
46
+ One key handler for the whole grid rather than one per cell: the cursor is
47
+ table state, so the key only has to reach the table. It sits on the element
48
+ that carries `role="grid"`, not on the scroll container — which is also what
49
+ stops it being a keyboard handler on a div with no role at all.
50
+ -->
51
+ <!-- svelte-ignore a11y_no_noninteractive_element_interactions -->
52
+ <table
53
+ {...svelteProps(tableProps)}
54
+ onkeydown={(event) => (table.interactive ? table.onGridKeyDown(event) : undefined)}
55
+ >
56
+ <!-- First child of <table>, per the content model. -->
57
+ <caption {...svelteProps(caption)}>{table.label}</caption>
58
+ <colgroup>
59
+ {#each columns as column (column.id)}
60
+ <col {...svelteProps(getColProps(table.columnWidths[column.id]))} />
61
+ {/each}
62
+ </colgroup>
63
+ {@render children?.()}
64
+ </table>
65
+ <!-- After the table, inside the scroll container: it sticks to the
66
+ viewport's bottom edge, so it costs a capped table scroll length rather
67
+ than page height. -->
68
+ <TableSelectionFooter />
69
+ </div>
@@ -0,0 +1,10 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ class?: string;
4
+ maxHeight?: number | string;
5
+ children?: Snippet;
6
+ };
7
+ declare const TableViewport: import("svelte").Component<$$ComponentProps, {}, "">;
8
+ type TableViewport = ReturnType<typeof TableViewport>;
9
+ export default TableViewport;
10
+ //# sourceMappingURL=TableViewport.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableViewport.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Table/TableViewport.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAYrC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAiD9F,QAAA,MAAM,aAAa,sDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The parts, flat-exported — `TableHeader`, not `Table.Header`. That is the
3
+ * repo's convention everywhere else (`DialogContent`, `MenuItem`) and there is
4
+ * no reason for the table to be the exception.
5
+ *
6
+ * The DOM they compose to:
7
+ *
8
+ * <Table> <div class="data-table"> root, size + variant
9
+ * <TableToolbar> …
10
+ * <TableViewport> <div class="data-table__viewport"><table>
11
+ * <TableHeader> <thead>
12
+ * <TableBody> <tbody> spacer / rows / spacer
13
+ * <TablePagination>
14
+ */
15
+ export { default as Table } from "./Table.svelte";
16
+ export { default as TableViewport } from "./TableViewport.svelte";
17
+ export { default as TableHeader } from "./TableHeader.svelte";
18
+ export { default as TableHeadCell } from "./TableHeadCell.svelte";
19
+ export { default as TableBody } from "./TableBody.svelte";
20
+ export { default as TableRow } from "./TableRow.svelte";
21
+ export { default as TableCell } from "./TableCell.svelte";
22
+ export { default as TableFooter } from "./TableFooter.svelte";
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/Table/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The parts, flat-exported — `TableHeader`, not `Table.Header`. That is the
3
+ * repo's convention everywhere else (`DialogContent`, `MenuItem`) and there is
4
+ * no reason for the table to be the exception.
5
+ *
6
+ * The DOM they compose to:
7
+ *
8
+ * <Table> <div class="data-table"> root, size + variant
9
+ * <TableToolbar> …
10
+ * <TableViewport> <div class="data-table__viewport"><table>
11
+ * <TableHeader> <thead>
12
+ * <TableBody> <tbody> spacer / rows / spacer
13
+ * <TablePagination>
14
+ */
15
+ export { default as Table } from "./Table.svelte";
16
+ export { default as TableViewport } from "./TableViewport.svelte";
17
+ export { default as TableHeader } from "./TableHeader.svelte";
18
+ export { default as TableHeadCell } from "./TableHeadCell.svelte";
19
+ export { default as TableBody } from "./TableBody.svelte";
20
+ export { default as TableRow } from "./TableRow.svelte";
21
+ export { default as TableCell } from "./TableCell.svelte";
22
+ export { default as TableFooter } from "./TableFooter.svelte";
@@ -0,0 +1,96 @@
1
+ <script lang="ts" generics="T extends RowData">
2
+ import { clsx } from "clsx";
3
+ import { FlexRender } from "@tanstack/svelte-table";
4
+ import { Checkbox } from "@ui-organized/svelte";
5
+ import type { RowData, TableRowModel } from "@ui-organized/table-core";
6
+ import { getTable } from "../../core/tableContext.js";
7
+ import { elementRef } from "../../core/elementRef.js";
8
+ import { TableRowActions } from "../TableRowActions/index.js";
9
+
10
+ let {
11
+ row,
12
+ index,
13
+ fields,
14
+ class: className,
15
+ }: { row: TableRowModel<T>; index: number; fields: string[]; class?: string } = $props();
16
+
17
+ const table = getTable<T>();
18
+ const selected = $derived(table.selection.isSelected(row.id));
19
+ const cells = $derived(row.getVisibleCells());
20
+ const primaryCell = $derived(
21
+ table.primaryColumnId
22
+ ? cells.find((cell) => cell.column.id === table.primaryColumnId)
23
+ : undefined,
24
+ );
25
+ const clickable = $derived(
26
+ Boolean(table.options.detail) || Boolean(table.options.onRowClick),
27
+ );
28
+ const titleText = $derived(
29
+ primaryCell ? String(primaryCell.getValue() ?? row.id) : row.id,
30
+ );
31
+ const cellFor = (columnId: string) => cells.find((cell) => cell.column.id === columnId);
32
+ const headerFor = (columnId: string) => {
33
+ const header = table.table.getColumn(columnId)?.columnDef.header;
34
+ return typeof header === "string" ? header : columnId;
35
+ };
36
+
37
+ const measure = (element: HTMLElement | null) => {
38
+ if (table.virtual.enabled && element) table.virtual.virtualizer.measureElement(element);
39
+ };
40
+ </script>
41
+
42
+ <li
43
+ class={clsx("data-table__card", selected && "data-table__card--selected", className)}
44
+ data-index={index}
45
+ data-row-id={row.id}
46
+ use:elementRef={measure}
47
+ >
48
+ <!--
49
+ Title first, then the row's controls at the top-right corner: the actions
50
+ menu, and the checkbox last, in the corner a thumb reaches and where a
51
+ ticked card is easiest to scan for down a list.
52
+ -->
53
+ <div class="data-table__card-header">
54
+ <!--
55
+ A button rather than a clickable card: a card is not an interactive
56
+ element, and making one is how a keyboard user loses the row.
57
+ -->
58
+ {#if clickable}
59
+ <button
60
+ type="button"
61
+ class="data-table__card-title data-table__sort-button"
62
+ onclick={() => table.activate(row)}
63
+ >
64
+ {#if primaryCell}<FlexRender cell={primaryCell} />{:else}{row.id}{/if}
65
+ </button>
66
+ {:else}
67
+ <span class="data-table__card-title">
68
+ {#if primaryCell}<FlexRender cell={primaryCell} />{:else}{row.id}{/if}
69
+ </span>
70
+ {/if}
71
+ {#if table.options.rowActions?.length || table.selection.mode !== "none"}
72
+ <span class="data-table__card-controls">
73
+ {#if table.options.rowActions?.length}
74
+ <TableRowActions row={row.original} label={`Actions for ${titleText}`} />
75
+ {/if}
76
+ {#if table.selection.mode !== "none"}
77
+ <Checkbox
78
+ checked={selected}
79
+ aria-label={`Select ${titleText}`}
80
+ onCheckedChange={(checked) => table.selection.toggle(row.id, checked)}
81
+ />
82
+ {/if}
83
+ </span>
84
+ {/if}
85
+ </div>
86
+
87
+ <dl class="data-table__card-fields">
88
+ {#each fields as columnId (columnId)}
89
+ {@const cell = cellFor(columnId)}
90
+ {#if cell}
91
+ <dt class="data-table__card-label">{headerFor(columnId)}</dt>
92
+ <dd class="data-table__card-value"><FlexRender {cell} /></dd>
93
+ {/if}
94
+ {/each}
95
+ </dl>
96
+ </li>
@@ -0,0 +1,31 @@
1
+ import type { RowData, TableRowModel } from "@ui-organized/table-core";
2
+ declare function $$render<T extends RowData>(): {
3
+ props: {
4
+ row: TableRowModel<T>;
5
+ index: number;
6
+ fields: string[];
7
+ class?: string;
8
+ };
9
+ exports: {};
10
+ bindings: "";
11
+ slots: {};
12
+ events: {};
13
+ };
14
+ declare class __sveltets_Render<T extends RowData> {
15
+ props(): ReturnType<typeof $$render<T>>['props'];
16
+ events(): ReturnType<typeof $$render<T>>['events'];
17
+ slots(): ReturnType<typeof $$render<T>>['slots'];
18
+ bindings(): "";
19
+ exports(): {};
20
+ }
21
+ interface $$IsomorphicComponent {
22
+ new <T extends RowData>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
23
+ $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
24
+ } & ReturnType<__sveltets_Render<T>['exports']>;
25
+ <T extends RowData>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
26
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
27
+ }
28
+ declare const TableCard: $$IsomorphicComponent;
29
+ type TableCard<T extends RowData> = InstanceType<typeof TableCard<T>>;
30
+ export default TableCard;
31
+ //# sourceMappingURL=TableCard.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/TableCards/TableCard.svelte.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIvE,iBAAS,QAAQ,CAAC,CAAC,SAAS,OAAO;;aAQA,aAAa,CAAC,CAAC,CAAC;eAAS,MAAM;gBAAU,MAAM,EAAE;gBAAU,MAAM;;;;;;EAuEqB;AACzH,cAAM,iBAAiB,CAAC,CAAC,SAAS,OAAO;IACrC,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,QAAQ;IACR,OAAO;CACV;AAED,UAAU,qBAAqB;IAC3B,KAAK,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5Y,CAAC,CAAC,SAAS,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3I,YAAY,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CACjE;AACD,QAAA,MAAM,SAAS,EAAE,qBAAmC,CAAC;AACnC,KAAK,SAAS,CAAC,CAAC,SAAS,OAAO,IAAI,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,eAAe,SAAS,CAAC"}
@@ -0,0 +1,61 @@
1
+ <!--
2
+ Card mode: one card per row, below the breakpoint.
3
+
4
+ The table is *replaced*, not hidden — rendering both trees and hiding one with
5
+ a container query would double the DOM and defeat virtualization on exactly the
6
+ devices that can least afford it. Selection, row actions and the detail sheet
7
+ all keep working, because they are table state rather than table markup.
8
+ -->
9
+ <script lang="ts">
10
+ import { clsx } from "clsx";
11
+ import { cardFieldOrder } from "@ui-organized/table-core";
12
+ import { getTable } from "../../core/tableContext.js";
13
+ import { elementRef } from "../../core/elementRef.js";
14
+ import { TableEmpty } from "../TableStates/index.js";
15
+ import TableCard from "./TableCard.svelte";
16
+
17
+ let { class: className }: { class?: string } = $props();
18
+ const table = getTable();
19
+
20
+ const fields = $derived(cardFieldOrder(table.options.columns));
21
+ const renderRows = $derived(table.renderRows);
22
+ const spacers = $derived(
23
+ table.virtual.enabled ? table.virtual.spacers : { top: 0, bottom: 0 },
24
+ );
25
+ const cap = $derived(table.options.maxHeight);
26
+ const style = $derived(
27
+ cap === undefined
28
+ ? undefined
29
+ : `--data-table-max-height: ${typeof cap === "number" ? `${cap}px` : cap}`,
30
+ );
31
+ </script>
32
+
33
+ {#if renderRows.length === 0}
34
+ <div class={clsx("data-table__cards", className)}>
35
+ <table class="data-table__table">
36
+ <caption class="data-table__sr-only">{table.label}</caption>
37
+ <tbody><TableEmpty /></tbody>
38
+ </table>
39
+ </div>
40
+ {:else}
41
+ <ul
42
+ class={clsx("data-table__cards", className)}
43
+ aria-label={table.label}
44
+ {style}
45
+ use:elementRef={table.viewportRef}
46
+ >
47
+ {#if spacers.top > 0}
48
+ <li class="data-table__card-spacer" aria-hidden="true" style={`height: ${spacers.top}px`}></li>
49
+ {/if}
50
+ {#each renderRows as entry (entry.row.id)}
51
+ <TableCard row={entry.row} index={entry.index} {fields} />
52
+ {/each}
53
+ {#if spacers.bottom > 0}
54
+ <li
55
+ class="data-table__card-spacer"
56
+ aria-hidden="true"
57
+ style={`height: ${spacers.bottom}px`}
58
+ ></li>
59
+ {/if}
60
+ </ul>
61
+ {/if}
@@ -0,0 +1,7 @@
1
+ type $$ComponentProps = {
2
+ class?: string;
3
+ };
4
+ declare const TableCards: import("svelte").Component<$$ComponentProps, {}, "">;
5
+ type TableCards = ReturnType<typeof TableCards>;
6
+ export default TableCards;
7
+ //# sourceMappingURL=TableCards.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableCards.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/TableCards/TableCards.svelte.ts"],"names":[],"mappings":"AAUC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAiD7C,QAAA,MAAM,UAAU,sDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default as TableCards } from "./TableCards.svelte";
2
+ export { default as TableCard } from "./TableCard.svelte";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/TableCards/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as TableCards } from "./TableCards.svelte";
2
+ export { default as TableCard } from "./TableCard.svelte";
@@ -0,0 +1,130 @@
1
+ <!--
2
+ The row detail panel.
3
+
4
+ Core owns prev/next navigation and the dirty guard; this owns the two things
5
+ that are genuinely the adapter's: returning focus to the row the panel was
6
+ opened from, and rendering the confirmation as a real `AlertDialog`.
7
+ -->
8
+ <script lang="ts">
9
+ import { clsx } from "clsx";
10
+ import {
11
+ AlertDialog,
12
+ AlertDialogCancel,
13
+ AlertDialogConfirm,
14
+ AlertDialogContent,
15
+ AlertDialogDescription,
16
+ AlertDialogFooter,
17
+ AlertDialogTitle,
18
+ Button,
19
+ Sheet,
20
+ SheetContent,
21
+ SheetDescription,
22
+ SheetFooter,
23
+ SheetTitle,
24
+ } from "@ui-organized/svelte";
25
+ import { getTable } from "../../core/tableContext.js";
26
+ import { internalGlyph as glyph } from "@ui-organized/svelte";
27
+
28
+ let { size = "md", class: className }: { size?: "sm" | "md" | "lg"; class?: string } = $props();
29
+
30
+ const table = getTable();
31
+ const config = $derived(table.options.detail);
32
+ const detail = table.detail;
33
+ const open = $derived(detail.state.rowId !== null);
34
+ const row = $derived(detail.row);
35
+ const position = $derived(detail.state.index >= 0 ? detail.state.index + 1 : 0);
36
+ const total = $derived(table.rows.length);
37
+
38
+ /**
39
+ * Focus came from a cell; the Sheet moves it into the panel and, on close,
40
+ * hands it back to `document.body` unless we remember where it was.
41
+ */
42
+ let openedFrom = $state<HTMLElement | null>(null);
43
+ $effect(() => {
44
+ if (open && !openedFrom) {
45
+ openedFrom = (document.activeElement as HTMLElement | null) ?? null;
46
+ return;
47
+ }
48
+ if (!open && openedFrom) {
49
+ const previous = openedFrom;
50
+ openedFrom = null;
51
+ // After the Sheet's own close transition has released the focus trap.
52
+ requestAnimationFrame(() => previous.isConnected && previous.focus());
53
+ }
54
+ });
55
+
56
+ const render = (value: unknown) => (typeof value === "function" ? undefined : value);
57
+ </script>
58
+
59
+ {#if config}
60
+ <Sheet {open} onOpenChange={(next) => !next && detail.close()}>
61
+ <SheetContent side="right" {size} class={clsx("data-table__detail", className)}>
62
+ <!--
63
+ The title clears the Sheet's own close control, which sits in the same
64
+ top-right corner; the row pager gets its own line rather than competing
65
+ with it for that space.
66
+ -->
67
+ <div class="data-table__detail-header">
68
+ <SheetTitle>{row ? (config.title?.(row) ?? table.label) : table.label}</SheetTitle>
69
+ {#if row && config.description}
70
+ <SheetDescription>{config.description(row)}</SheetDescription>
71
+ {/if}
72
+ </div>
73
+
74
+ <div class="data-table__detail-nav">
75
+ <span class="data-table__detail-position">{position} of {total}</span>
76
+ <Button
77
+ intent="ghost"
78
+ size="sm"
79
+ icon={glyph("chevron-up")}
80
+ aria-label="Previous row"
81
+ disabled={!detail.canStep(-1)}
82
+ onclick={() => detail.step(-1)}
83
+ />
84
+ <Button
85
+ intent="ghost"
86
+ size="sm"
87
+ icon={glyph("chevron-down")}
88
+ aria-label="Next row"
89
+ disabled={!detail.canStep(1)}
90
+ onclick={() => detail.step(1)}
91
+ />
92
+ </div>
93
+
94
+ <div class="data-table__detail-body">
95
+ {#if row}
96
+ {@const body = config.render(row)}
97
+ {#if typeof body === "function"}{@render body()}{:else}{render(body)}{/if}
98
+ {/if}
99
+ </div>
100
+
101
+ {#if row && config.footer}
102
+ <SheetFooter>
103
+ {@const footer = config.footer(row)}
104
+ {#if typeof footer === "function"}{@render footer()}{:else}{render(footer)}{/if}
105
+ </SheetFooter>
106
+ {/if}
107
+ </SheetContent>
108
+ </Sheet>
109
+
110
+ <!-- The dirty guard. Core decided it was needed; this only asks. -->
111
+ <AlertDialog
112
+ open={detail.state.confirming !== null}
113
+ onOpenChange={(next) => !next && detail.resolveConfirm(false)}
114
+ >
115
+ <AlertDialogContent>
116
+ <AlertDialogTitle>Discard unsaved changes?</AlertDialogTitle>
117
+ <AlertDialogDescription>
118
+ This row has edits that have not been saved. Leaving now loses them.
119
+ </AlertDialogDescription>
120
+ <AlertDialogFooter>
121
+ <AlertDialogCancel onclick={() => detail.resolveConfirm(false)}>
122
+ Keep editing
123
+ </AlertDialogCancel>
124
+ <AlertDialogConfirm intent="destructive" onclick={() => detail.resolveConfirm(true)}>
125
+ Discard
126
+ </AlertDialogConfirm>
127
+ </AlertDialogFooter>
128
+ </AlertDialogContent>
129
+ </AlertDialog>
130
+ {/if}
@@ -0,0 +1,8 @@
1
+ type $$ComponentProps = {
2
+ size?: "sm" | "md" | "lg";
3
+ class?: string;
4
+ };
5
+ declare const TableDetailSheet: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type TableDetailSheet = ReturnType<typeof TableDetailSheet>;
7
+ export default TableDetailSheet;
8
+ //# sourceMappingURL=TableDetailSheet.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableDetailSheet.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/TableDetailSheet/TableDetailSheet.svelte.ts"],"names":[],"mappings":"AAsBC,KAAK,gBAAgB,GAAI;IAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA6FxE,QAAA,MAAM,gBAAgB,sDAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as TableDetailSheet } from "./TableDetailSheet.svelte";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/TableDetailSheet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1 @@
1
+ export { default as TableDetailSheet } from "./TableDetailSheet.svelte";
@@ -0,0 +1,89 @@
1
+ <!--
2
+ The field picker, in both the shapes the design uses it: the header's icon-only
3
+ button (Figma 2298:336) and the filter bar's "+ Add" (2298:531).
4
+
5
+ A `Menu`, like every other menu the table puts in its chrome
6
+ (`TableViewOptions`, `TableExportMenu`, `TableRowActions`). Picking a field
7
+ *does* something — it adds a filter and opens that filter's editor — so
8
+ `role="menu"` with `menuitem` children is the honest semantic.
9
+
10
+ No search box: a text input inside `role="menu"` breaks the menu's own keyboard
11
+ contract, and zag's menu already does typeahead, which is the same affordance
12
+ without the semantic damage.
13
+ -->
14
+ <script lang="ts">
15
+ import { Button, Menu, MenuContent, MenuItem, MenuTrigger } from "@ui-organized/svelte";
16
+ import { getTable } from "../../core/tableContext.js";
17
+ import { internalGlyph as glyph } from "@ui-organized/svelte";
18
+
19
+ let {
20
+ label = "Add filter",
21
+ iconOnly = false,
22
+ container,
23
+ class: className,
24
+ }: {
25
+ label?: string;
26
+ iconOnly?: boolean;
27
+ /**
28
+ * Where the field menu portals. Inside a modal sheet it has to be the
29
+ * sheet: a modal hides everything outside itself from assistive tech, and a
30
+ * menu portalled to <body> is outside it — painted, but unreachable.
31
+ */
32
+ container?: HTMLElement | null;
33
+ class?: string;
34
+ } = $props();
35
+
36
+ const table = getTable();
37
+ const fields = $derived(table.filters.fields);
38
+ </script>
39
+
40
+ {#if fields.length > 0}
41
+ <Menu>
42
+ <!--
43
+ The two presentations are the two places this appears, not a free choice:
44
+ the header's is the funnel that *starts* filtering, the bar's is the plus
45
+ that adds another to a list that already exists.
46
+
47
+ `aria-label` on the trigger also names the menu it opens: zag points the
48
+ menu's `aria-labelledby` at its trigger, which wins over any `aria-label`
49
+ set on the content. So the button's name has to be the *menu's* name too —
50
+ "Add filter", not "Filter".
51
+ -->
52
+ <MenuTrigger>
53
+ {#snippet asChild(props)}
54
+ {#if iconOnly}
55
+ <Button
56
+ {...(props() as Record<string, never>)}
57
+ intent="secondary"
58
+ size={table.size}
59
+ icon={glyph("filter")}
60
+ aria-label={label}
61
+ class={className}
62
+ />
63
+ {:else}
64
+ <Button
65
+ {...(props() as Record<string, never>)}
66
+ intent="ghost"
67
+ size="sm"
68
+ icon={glyph("plus")}
69
+ class={className}
70
+ >
71
+ {label}
72
+ </Button>
73
+ {/if}
74
+ {/snippet}
75
+ </MenuTrigger>
76
+ <MenuContent align="end" class="data-table__filter-picker" {container}>
77
+ <!--
78
+ A field that already carries conditions stays in the list — several
79
+ conditions on one column is the point — with a count so it is obvious
80
+ this adds another rather than replacing.
81
+ -->
82
+ {#each fields as field (field.columnId)}
83
+ <MenuItem value={field.columnId} onSelect={() => table.filters.add(field.columnId)}>
84
+ {field.count > 0 ? `${field.label} (${field.count})` : field.label}
85
+ </MenuItem>
86
+ {/each}
87
+ </MenuContent>
88
+ </Menu>
89
+ {/if}
@@ -0,0 +1,15 @@
1
+ type $$ComponentProps = {
2
+ label?: string;
3
+ iconOnly?: boolean;
4
+ /**
5
+ * Where the field menu portals. Inside a modal sheet it has to be the
6
+ * sheet: a modal hides everything outside itself from assistive tech, and a
7
+ * menu portalled to <body> is outside it — painted, but unreachable.
8
+ */
9
+ container?: HTMLElement | null;
10
+ class?: string;
11
+ };
12
+ declare const TableFilterAdd: import("svelte").Component<$$ComponentProps, {}, "">;
13
+ type TableFilterAdd = ReturnType<typeof TableFilterAdd>;
14
+ export default TableFilterAdd;
15
+ //# sourceMappingURL=TableFilterAdd.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableFilterAdd.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/TableFilters/TableFilterAdd.svelte.ts"],"names":[],"mappings":"AAOC,KAAK,gBAAgB,GAAI;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA6CJ,QAAA,MAAM,cAAc,sDAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}