@urbicon-ui/table 6.1.4

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 (154) hide show
  1. package/README.md +153 -0
  2. package/dist/cells/ActionButtons.svelte +224 -0
  3. package/dist/cells/ActionButtons.svelte.d.ts +74 -0
  4. package/dist/cells/CopyButton.svelte +89 -0
  5. package/dist/cells/CopyButton.svelte.d.ts +33 -0
  6. package/dist/cells/CustomCell.svelte +136 -0
  7. package/dist/cells/CustomCell.svelte.d.ts +44 -0
  8. package/dist/cells/DateCell.svelte +194 -0
  9. package/dist/cells/DateCell.svelte.d.ts +39 -0
  10. package/dist/cells/LinkCell.svelte +240 -0
  11. package/dist/cells/LinkCell.svelte.d.ts +42 -0
  12. package/dist/cells/NumberCell.svelte +225 -0
  13. package/dist/cells/NumberCell.svelte.d.ts +47 -0
  14. package/dist/cells/StatusBadge.svelte +121 -0
  15. package/dist/cells/StatusBadge.svelte.d.ts +44 -0
  16. package/dist/cells/UserAvatar.svelte +71 -0
  17. package/dist/cells/UserAvatar.svelte.d.ts +37 -0
  18. package/dist/cells/index.d.ts +8 -0
  19. package/dist/cells/index.js +9 -0
  20. package/dist/core/EmptyState.svelte +161 -0
  21. package/dist/core/EmptyState.svelte.d.ts +16 -0
  22. package/dist/core/ErrorState.svelte +158 -0
  23. package/dist/core/ErrorState.svelte.d.ts +15 -0
  24. package/dist/core/GroupedRow.svelte +239 -0
  25. package/dist/core/GroupedRow.svelte.d.ts +18 -0
  26. package/dist/core/LoadingState.svelte +75 -0
  27. package/dist/core/LoadingState.svelte.d.ts +14 -0
  28. package/dist/core/MobileCard.svelte +151 -0
  29. package/dist/core/MobileCard.svelte.d.ts +15 -0
  30. package/dist/core/TableCell.svelte +105 -0
  31. package/dist/core/TableCell.svelte.d.ts +14 -0
  32. package/dist/core/TableDesktop.svelte +480 -0
  33. package/dist/core/TableDesktop.svelte.d.ts +26 -0
  34. package/dist/core/TableHead.svelte +314 -0
  35. package/dist/core/TableHead.svelte.d.ts +7 -0
  36. package/dist/core/TableMobile.svelte +112 -0
  37. package/dist/core/TableMobile.svelte.d.ts +13 -0
  38. package/dist/core/TableProvider.svelte +271 -0
  39. package/dist/core/TableProvider.svelte.d.ts +40 -0
  40. package/dist/core/TableRow.svelte +171 -0
  41. package/dist/core/TableRow.svelte.d.ts +16 -0
  42. package/dist/core/index.d.ts +17 -0
  43. package/dist/core/index.js +14 -0
  44. package/dist/core/sticky-context.svelte.d.ts +48 -0
  45. package/dist/core/sticky-context.svelte.js +88 -0
  46. package/dist/core/table/Table.svelte +304 -0
  47. package/dist/core/table/Table.svelte.d.ts +26 -0
  48. package/dist/core/table/index.d.ts +448 -0
  49. package/dist/core/table/index.js +1 -0
  50. package/dist/core/table-style-context.d.ts +66 -0
  51. package/dist/core/table-style-context.js +26 -0
  52. package/dist/factories/ColumnValidation.d.ts +49 -0
  53. package/dist/factories/ColumnValidation.js +188 -0
  54. package/dist/factories/TableColumns.d.ts +97 -0
  55. package/dist/factories/TableColumns.js +262 -0
  56. package/dist/factories/TypedColumnBuilder.d.ts +41 -0
  57. package/dist/factories/TypedColumnBuilder.js +72 -0
  58. package/dist/factories/index.d.ts +12 -0
  59. package/dist/factories/index.js +13 -0
  60. package/dist/features/HeaderMenu.svelte +236 -0
  61. package/dist/features/HeaderMenu.svelte.d.ts +8 -0
  62. package/dist/features/LiveUpdateBanner.svelte +66 -0
  63. package/dist/features/LiveUpdateBanner.svelte.d.ts +6 -0
  64. package/dist/features/SearchHighlight.svelte +21 -0
  65. package/dist/features/SearchHighlight.svelte.d.ts +8 -0
  66. package/dist/features/SmartFilterBar/ChipsField.svelte +104 -0
  67. package/dist/features/SmartFilterBar/ChipsField.svelte.d.ts +5 -0
  68. package/dist/features/SmartFilterBar/ColumnVisibilityMenu.svelte +84 -0
  69. package/dist/features/SmartFilterBar/ColumnVisibilityMenu.svelte.d.ts +3 -0
  70. package/dist/features/SmartFilterBar/FilterMenu.svelte +367 -0
  71. package/dist/features/SmartFilterBar/FilterMenu.svelte.d.ts +3 -0
  72. package/dist/features/SmartFilterBar/GroupingMenu.svelte +82 -0
  73. package/dist/features/SmartFilterBar/GroupingMenu.svelte.d.ts +3 -0
  74. package/dist/features/SmartFilterBar/SmartFilterBar.svelte +109 -0
  75. package/dist/features/SmartFilterBar/SmartFilterBar.svelte.d.ts +11 -0
  76. package/dist/features/SmartFilterBar/SummaryMenu.svelte +118 -0
  77. package/dist/features/SmartFilterBar/SummaryMenu.svelte.d.ts +3 -0
  78. package/dist/features/SummaryRow.svelte +97 -0
  79. package/dist/features/SummaryRow.svelte.d.ts +8 -0
  80. package/dist/features/index.d.ts +4 -0
  81. package/dist/features/index.js +4 -0
  82. package/dist/i18n/index.d.ts +366 -0
  83. package/dist/i18n/index.js +21 -0
  84. package/dist/index.d.ts +28 -0
  85. package/dist/index.js +41 -0
  86. package/dist/stores/TableStore.svelte.d.ts +192 -0
  87. package/dist/stores/TableStore.svelte.js +362 -0
  88. package/dist/stores/concerns/index.d.ts +15 -0
  89. package/dist/stores/concerns/index.js +14 -0
  90. package/dist/stores/concerns/types.d.ts +31 -0
  91. package/dist/stores/concerns/types.js +1 -0
  92. package/dist/stores/concerns/useColumnOrder.svelte.d.ts +16 -0
  93. package/dist/stores/concerns/useColumnOrder.svelte.js +81 -0
  94. package/dist/stores/concerns/useColumnVisibility.svelte.d.ts +16 -0
  95. package/dist/stores/concerns/useColumnVisibility.svelte.js +58 -0
  96. package/dist/stores/concerns/useExpansion.svelte.d.ts +9 -0
  97. package/dist/stores/concerns/useExpansion.svelte.js +32 -0
  98. package/dist/stores/concerns/useFiltering.svelte.d.ts +20 -0
  99. package/dist/stores/concerns/useFiltering.svelte.js +109 -0
  100. package/dist/stores/concerns/useFocusManagement.svelte.d.ts +15 -0
  101. package/dist/stores/concerns/useFocusManagement.svelte.js +52 -0
  102. package/dist/stores/concerns/useGrouping.svelte.d.ts +15 -0
  103. package/dist/stores/concerns/useGrouping.svelte.js +86 -0
  104. package/dist/stores/concerns/useLiveUpdates.svelte.d.ts +45 -0
  105. package/dist/stores/concerns/useLiveUpdates.svelte.js +175 -0
  106. package/dist/stores/concerns/usePagination.svelte.d.ts +18 -0
  107. package/dist/stores/concerns/usePagination.svelte.js +54 -0
  108. package/dist/stores/concerns/usePersistence.svelte.d.ts +36 -0
  109. package/dist/stores/concerns/usePersistence.svelte.js +167 -0
  110. package/dist/stores/concerns/useRemoteData.svelte.d.ts +21 -0
  111. package/dist/stores/concerns/useRemoteData.svelte.js +64 -0
  112. package/dist/stores/concerns/useSearch.svelte.d.ts +8 -0
  113. package/dist/stores/concerns/useSearch.svelte.js +16 -0
  114. package/dist/stores/concerns/useSelection.svelte.d.ts +21 -0
  115. package/dist/stores/concerns/useSelection.svelte.js +110 -0
  116. package/dist/stores/concerns/useSorting.svelte.d.ts +11 -0
  117. package/dist/stores/concerns/useSorting.svelte.js +70 -0
  118. package/dist/stores/concerns/useSummary.svelte.d.ts +18 -0
  119. package/dist/stores/concerns/useSummary.svelte.js +96 -0
  120. package/dist/stores/index.d.ts +1 -0
  121. package/dist/stores/index.js +1 -0
  122. package/dist/style/index.css +137 -0
  123. package/dist/style/index.d.ts +2 -0
  124. package/dist/style/index.js +2 -0
  125. package/dist/style/table-theme.css +131 -0
  126. package/dist/style/themes/comfortable.css +20 -0
  127. package/dist/style/themes/compact.css +20 -0
  128. package/dist/translations/de.d.ts +177 -0
  129. package/dist/translations/de.js +176 -0
  130. package/dist/translations/en.d.ts +177 -0
  131. package/dist/translations/en.js +176 -0
  132. package/dist/types/index.d.ts +1 -0
  133. package/dist/types/index.js +1 -0
  134. package/dist/types/tableTypes.d.ts +262 -0
  135. package/dist/types/tableTypes.js +1 -0
  136. package/dist/utils/index.d.ts +165 -0
  137. package/dist/utils/index.js +330 -0
  138. package/dist/utils/sticky-measure.d.ts +54 -0
  139. package/dist/utils/sticky-measure.js +107 -0
  140. package/dist/utils/virtualizer.d.ts +43 -0
  141. package/dist/utils/virtualizer.js +43 -0
  142. package/dist/variants/index.d.ts +11 -0
  143. package/dist/variants/index.js +15 -0
  144. package/dist/variants/table-cells.variants.d.ts +827 -0
  145. package/dist/variants/table-cells.variants.js +627 -0
  146. package/dist/variants/table-features.variants.d.ts +547 -0
  147. package/dist/variants/table-features.variants.js +412 -0
  148. package/dist/variants/table-states.variants.d.ts +594 -0
  149. package/dist/variants/table-states.variants.js +394 -0
  150. package/dist/variants/table.system.d.ts +301 -0
  151. package/dist/variants/table.system.js +314 -0
  152. package/dist/variants/table.variants.d.ts +428 -0
  153. package/dist/variants/table.variants.js +360 -0
  154. package/package.json +93 -0
@@ -0,0 +1,3 @@
1
+ declare const SummaryMenu: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type SummaryMenu = ReturnType<typeof SummaryMenu>;
3
+ export default SummaryMenu;
@@ -0,0 +1,97 @@
1
+ <script lang="ts">
2
+ import { getTableContext } from '../stores/TableStore.svelte';
3
+ import { resolveColumnId } from '../utils';
4
+ import { summaryRowVariants } from '../variants';
5
+ import { getTableStyleConfig, resolveSlotClass } from '../core/table-style-context';
6
+
7
+ let {
8
+ expandable = false,
9
+ groupName = null as string | null,
10
+ groupSummaryData = null as Record<string, unknown> | null,
11
+ class: className = ''
12
+ } = $props();
13
+
14
+ const tableContext = getTableContext();
15
+ const { state: tableState } = tableContext;
16
+ const styleConfig = getTableStyleConfig();
17
+
18
+ let summaryData = $derived(groupSummaryData || tableContext.summaryData);
19
+
20
+ let visibleColumnsCount = $derived.by(() => {
21
+ let count = tableState.columns.length;
22
+
23
+ if (expandable) {
24
+ count++;
25
+ }
26
+
27
+ if (tableState.groupByKey) {
28
+ count++;
29
+ }
30
+
31
+ return count;
32
+ });
33
+
34
+ function getSummaryLabel(column: string, type: string): string {
35
+ switch (type) {
36
+ case 'sum':
37
+ return '∑';
38
+ case 'avg':
39
+ return '⌀';
40
+ case 'count':
41
+ return '#';
42
+ case 'min':
43
+ return '↓';
44
+ case 'max':
45
+ return '↑';
46
+ default:
47
+ return type;
48
+ }
49
+ }
50
+
51
+ const summaryStyles = $derived(summaryRowVariants({ variant: 'highlighted', size: 'md' }));
52
+ </script>
53
+
54
+ {#if tableState.showSummary && tableState.summaryConfigs.length > 0}
55
+ <tr
56
+ class={resolveSlotClass(
57
+ summaryStyles.row(),
58
+ styleConfig.slotClasses.summaryRow,
59
+ styleConfig.unstyled,
60
+ className
61
+ )}
62
+ data-testid={groupName ? `summary-row-${groupName}` : 'summary-row-total'}
63
+ >
64
+ {#if tableState.groupByKey}
65
+ <td class="{summaryStyles.cell()} w-10"></td>
66
+ {/if}
67
+
68
+ {#if expandable}
69
+ <td class="{summaryStyles.cell()} w-10"></td>
70
+ {/if}
71
+
72
+ {#each tableState.columns as column (resolveColumnId(column))}
73
+ {@const columnId = resolveColumnId(column)}
74
+ {@const summaryConfig = tableState.summaryConfigs.find((c) => c.column === columnId)}
75
+ {@const summaryValue = summaryData[columnId]}
76
+
77
+ <td
78
+ class="{summaryStyles.cell()} {column.align ? `text-${column.align}` : 'text-right'}"
79
+ style={column.width
80
+ ? `width: ${column.width}; min-width: ${column.minWidth || '4rem'};`
81
+ : ''}
82
+ data-testid={`summary-cell-${columnId}`}
83
+ >
84
+ {#if summaryConfig && typeof summaryValue === 'number'}
85
+ <div class="flex items-center justify-end gap-2">
86
+ <span class={summaryStyles.label()}>
87
+ {getSummaryLabel(columnId, summaryConfig.type)}
88
+ </span>
89
+ <span class={summaryStyles.value()}>
90
+ {tableContext.getFormattedSummaryValue(columnId, summaryValue)}
91
+ </span>
92
+ </div>
93
+ {/if}
94
+ </td>
95
+ {/each}
96
+ </tr>
97
+ {/if}
@@ -0,0 +1,8 @@
1
+ declare const SummaryRow: import("svelte").Component<{
2
+ expandable?: boolean;
3
+ groupName?: string | null;
4
+ groupSummaryData?: Record<string, unknown> | null;
5
+ class?: string;
6
+ }, {}, "">;
7
+ type SummaryRow = ReturnType<typeof SummaryRow>;
8
+ export default SummaryRow;
@@ -0,0 +1,4 @@
1
+ export { default as SearchHighlight } from './SearchHighlight.svelte';
2
+ export { default as FilterMenu } from './SmartFilterBar/FilterMenu.svelte';
3
+ export { default as SmartFilterBar } from './SmartFilterBar/SmartFilterBar.svelte';
4
+ export { default as SummaryRow } from './SummaryRow.svelte';
@@ -0,0 +1,4 @@
1
+ export { default as SearchHighlight } from './SearchHighlight.svelte';
2
+ export { default as FilterMenu } from './SmartFilterBar/FilterMenu.svelte';
3
+ export { default as SmartFilterBar } from './SmartFilterBar/SmartFilterBar.svelte';
4
+ export { default as SummaryRow } from './SummaryRow.svelte';
@@ -0,0 +1,366 @@
1
+ import enTranslations from '../translations/en';
2
+ declare const tableTranslations: {
3
+ en: {
4
+ readonly common: {
5
+ readonly close: "Close";
6
+ };
7
+ readonly button: {
8
+ readonly close: "Close";
9
+ readonly clear: "Clear";
10
+ };
11
+ readonly data: {
12
+ readonly empty: "No data available";
13
+ readonly loading: "Loading data...";
14
+ readonly refresh: "Refresh";
15
+ };
16
+ readonly filter: {
17
+ readonly button: {
18
+ readonly add: "Add filter";
19
+ readonly remove: "Remove filter";
20
+ readonly clearAll: "Clear all";
21
+ };
22
+ readonly input: {
23
+ readonly enterValue: "Enter value...";
24
+ };
25
+ readonly menu: {
26
+ readonly addFilter: "Add filter";
27
+ readonly title: "Filter";
28
+ };
29
+ readonly operators: {
30
+ readonly after: "after";
31
+ readonly before: "before";
32
+ readonly contains: "contains";
33
+ readonly endsWith: "ends with";
34
+ readonly equals: "equals";
35
+ readonly greaterThan: "greater than";
36
+ readonly lessThan: "less than";
37
+ readonly onDate: "on";
38
+ readonly startsWith: "starts with";
39
+ };
40
+ readonly overflow: {
41
+ readonly title: "More filters";
42
+ };
43
+ readonly quickValues: {
44
+ readonly title: "Quick values";
45
+ };
46
+ };
47
+ readonly search: {
48
+ readonly placeholder: "Search...";
49
+ };
50
+ readonly summary: {
51
+ readonly button: {
52
+ readonly title: "Summary";
53
+ };
54
+ readonly menu: {
55
+ readonly addSummary: "Add summary";
56
+ readonly noColumns: "No summarizable columns available";
57
+ readonly title: "Summary";
58
+ };
59
+ readonly types: {
60
+ readonly average: "Average";
61
+ readonly count: "Count";
62
+ readonly maximum: "Maximum";
63
+ readonly minimum: "Minimum";
64
+ readonly sum: "Sum";
65
+ };
66
+ };
67
+ readonly actions: {
68
+ readonly delete: "Delete";
69
+ readonly edit: "Edit";
70
+ readonly showDetails: "Show details";
71
+ readonly hideDetails: "Hide details";
72
+ };
73
+ readonly aria: {
74
+ readonly tableData: "Table data";
75
+ readonly filterBar: "Filter bar";
76
+ readonly searchData: "Search data";
77
+ readonly removeItem: "Remove {{content}}";
78
+ readonly scrollLeft: "Scroll left";
79
+ readonly scrollRight: "Scroll right";
80
+ readonly interactiveCell: "Interactive cell";
81
+ };
82
+ readonly copy: {
83
+ readonly button: "Copy";
84
+ readonly copied: "Copied";
85
+ readonly failed: "Failed";
86
+ };
87
+ readonly error: {
88
+ readonly loadingError: "Loading error";
89
+ readonly genericMessage: "An error occurred. Please try again.";
90
+ readonly retry: "Retry";
91
+ readonly fetchFailed: "Failed to load data";
92
+ };
93
+ readonly columns: {
94
+ readonly visibility: "Column visibility";
95
+ };
96
+ readonly grouping: {
97
+ readonly button: "Grouping";
98
+ readonly none: "No grouping";
99
+ readonly placeholder: "Select grouping";
100
+ };
101
+ readonly header: {
102
+ readonly activeFilter: "Active filter";
103
+ readonly activeIndicator: "{{type}} active for this column";
104
+ readonly collapseAllGroups: "Collapse all groups";
105
+ readonly expandAllGroups: "Expand all groups";
106
+ readonly filterActive: "Filter active";
107
+ readonly grouped: "Grouped";
108
+ readonly groupedColumn: "Grouped column";
109
+ readonly summarized: "Summarized";
110
+ readonly summarizedColumn: "Summarized column";
111
+ };
112
+ readonly headerMenu: {
113
+ readonly sortAscending: "Sort ascending";
114
+ readonly sortDescending: "Sort descending";
115
+ readonly removeFilter: "Remove filter";
116
+ readonly groupByColumn: "Group by column";
117
+ readonly removeGrouping: "Remove grouping";
118
+ readonly addSummary: "Add summary";
119
+ readonly removeSummary: "Remove summary";
120
+ readonly hideColumn: "Hide column";
121
+ readonly showColumn: "Show";
122
+ readonly columnOptions: "Column options for";
123
+ };
124
+ readonly pagination: {
125
+ readonly previous: "Previous";
126
+ readonly next: "Next";
127
+ readonly first: "First";
128
+ readonly last: "Last";
129
+ readonly page: "Page";
130
+ };
131
+ readonly group: {
132
+ readonly noGroup: "(No group)";
133
+ readonly item: "item";
134
+ readonly items: "items";
135
+ readonly summaryFor: "Summary for";
136
+ };
137
+ readonly number: {
138
+ readonly valueLabel: "Value: {{value}}";
139
+ };
140
+ readonly status: {
141
+ readonly tooltip: "Status: {{text}}";
142
+ readonly clickToChange: "(click to change)";
143
+ readonly unknown: "Unknown";
144
+ readonly active: "Active";
145
+ readonly inactive: "Inactive";
146
+ readonly pending: "Pending";
147
+ readonly online: "Online";
148
+ readonly offline: "Offline";
149
+ readonly processing: "Processing";
150
+ readonly completed: "Completed";
151
+ readonly failed: "Failed";
152
+ readonly draft: "Draft";
153
+ readonly published: "Published";
154
+ readonly archived: "Archived";
155
+ };
156
+ readonly liveUpdates: {
157
+ readonly newItems: "new";
158
+ readonly updatedItems: "updated";
159
+ readonly deletedItems: "removed";
160
+ readonly apply: "Apply changes";
161
+ readonly dismiss: "Dismiss";
162
+ };
163
+ readonly selection: {
164
+ readonly selectRow: "Select row";
165
+ readonly deselectRow: "Deselect row";
166
+ readonly selectAllRows: "Select all rows";
167
+ readonly deselectAllRows: "Deselect all rows";
168
+ readonly selectedCount: "{{count}} selected";
169
+ };
170
+ readonly table: {
171
+ readonly link: {
172
+ readonly invalid: "Invalid link";
173
+ };
174
+ readonly summary: {
175
+ readonly totalSummary: "Total summary";
176
+ };
177
+ };
178
+ };
179
+ de: {
180
+ readonly common: {
181
+ readonly close: "Schließen";
182
+ };
183
+ readonly button: {
184
+ readonly close: "Schließen";
185
+ readonly clear: "Löschen";
186
+ };
187
+ readonly data: {
188
+ readonly empty: "Keine Daten verfügbar";
189
+ readonly loading: "Daten werden geladen...";
190
+ readonly refresh: "Aktualisieren";
191
+ };
192
+ readonly filter: {
193
+ readonly button: {
194
+ readonly add: "Filter hinzufügen";
195
+ readonly remove: "Filter entfernen";
196
+ readonly clearAll: "Alle löschen";
197
+ };
198
+ readonly input: {
199
+ readonly enterValue: "Wert eingeben...";
200
+ };
201
+ readonly menu: {
202
+ readonly addFilter: "Filter hinzufügen";
203
+ readonly title: "Filter";
204
+ };
205
+ readonly operators: {
206
+ readonly after: "nach";
207
+ readonly before: "vor";
208
+ readonly contains: "enthält";
209
+ readonly endsWith: "endet mit";
210
+ readonly equals: "ist gleich";
211
+ readonly greaterThan: "größer als";
212
+ readonly lessThan: "kleiner als";
213
+ readonly onDate: "am";
214
+ readonly startsWith: "beginnt mit";
215
+ };
216
+ readonly overflow: {
217
+ readonly title: "Weitere Filter";
218
+ };
219
+ readonly quickValues: {
220
+ readonly title: "Schnellwerte";
221
+ };
222
+ };
223
+ readonly search: {
224
+ readonly placeholder: "Suchen...";
225
+ };
226
+ readonly summary: {
227
+ readonly button: {
228
+ readonly title: "Zusammenfassung";
229
+ };
230
+ readonly menu: {
231
+ readonly addSummary: "Zusammenfassung hinzufügen";
232
+ readonly noColumns: "Keine summarisierbaren Spalten verfügbar";
233
+ readonly title: "Zusammenfassung";
234
+ };
235
+ readonly types: {
236
+ readonly average: "Durchschnitt";
237
+ readonly count: "Anzahl";
238
+ readonly maximum: "Maximum";
239
+ readonly minimum: "Minimum";
240
+ readonly sum: "Summe";
241
+ };
242
+ };
243
+ readonly actions: {
244
+ readonly delete: "Löschen";
245
+ readonly edit: "Bearbeiten";
246
+ readonly showDetails: "Details anzeigen";
247
+ readonly hideDetails: "Details ausblenden";
248
+ };
249
+ readonly aria: {
250
+ readonly tableData: "Tabellendaten";
251
+ readonly filterBar: "Filterleiste";
252
+ readonly searchData: "Daten durchsuchen";
253
+ readonly removeItem: "{{content}} entfernen";
254
+ readonly scrollLeft: "Nach links scrollen";
255
+ readonly scrollRight: "Nach rechts scrollen";
256
+ readonly interactiveCell: "Interaktive Zelle";
257
+ };
258
+ readonly copy: {
259
+ readonly button: "Kopieren";
260
+ readonly copied: "Kopiert";
261
+ readonly failed: "Fehlgeschlagen";
262
+ };
263
+ readonly error: {
264
+ readonly loadingError: "Fehler beim Laden";
265
+ readonly genericMessage: "Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.";
266
+ readonly retry: "Erneut versuchen";
267
+ readonly fetchFailed: "Daten konnten nicht geladen werden";
268
+ };
269
+ readonly columns: {
270
+ readonly visibility: "Spaltensichtbarkeit";
271
+ };
272
+ readonly grouping: {
273
+ readonly button: "Gruppierung";
274
+ readonly none: "Keine Gruppierung";
275
+ readonly placeholder: "Gruppierung auswählen";
276
+ };
277
+ readonly header: {
278
+ readonly activeFilter: "Aktiver Filter";
279
+ readonly activeIndicator: "{{type}} aktiv für diese Spalte";
280
+ readonly collapseAllGroups: "Alle Gruppen einklappen";
281
+ readonly expandAllGroups: "Alle Gruppen ausklappen";
282
+ readonly filterActive: "Filter aktiv";
283
+ readonly grouped: "Gruppiert";
284
+ readonly groupedColumn: "Gruppierte Spalte";
285
+ readonly summarized: "Zusammengefasst";
286
+ readonly summarizedColumn: "Zusammengefasste Spalte";
287
+ };
288
+ readonly headerMenu: {
289
+ readonly sortAscending: "Aufsteigend sortieren";
290
+ readonly sortDescending: "Absteigend sortieren";
291
+ readonly removeFilter: "Filter entfernen";
292
+ readonly groupByColumn: "Nach Spalte gruppieren";
293
+ readonly removeGrouping: "Gruppierung aufheben";
294
+ readonly addSummary: "Zusammenfassung hinzufügen";
295
+ readonly removeSummary: "Zusammenfassung entfernen";
296
+ readonly hideColumn: "Spalte ausblenden";
297
+ readonly showColumn: "Anzeigen";
298
+ readonly columnOptions: "Spaltenoptionen für";
299
+ };
300
+ readonly pagination: {
301
+ readonly previous: "Zurück";
302
+ readonly next: "Weiter";
303
+ readonly first: "Erste";
304
+ readonly last: "Letzte";
305
+ readonly page: "Seite";
306
+ };
307
+ readonly group: {
308
+ readonly noGroup: "(Keine Gruppe)";
309
+ readonly item: "Eintrag";
310
+ readonly items: "Einträge";
311
+ readonly summaryFor: "Zusammenfassung für";
312
+ };
313
+ readonly number: {
314
+ readonly valueLabel: "Wert: {{value}}";
315
+ };
316
+ readonly status: {
317
+ readonly tooltip: "Status: {{text}}";
318
+ readonly clickToChange: "(klicken zum Ändern)";
319
+ readonly unknown: "Unbekannt";
320
+ readonly active: "Aktiv";
321
+ readonly inactive: "Inaktiv";
322
+ readonly pending: "Ausstehend";
323
+ readonly online: "Online";
324
+ readonly offline: "Offline";
325
+ readonly processing: "In Bearbeitung";
326
+ readonly completed: "Abgeschlossen";
327
+ readonly failed: "Fehlgeschlagen";
328
+ readonly draft: "Entwurf";
329
+ readonly published: "Veröffentlicht";
330
+ readonly archived: "Archiviert";
331
+ };
332
+ readonly liveUpdates: {
333
+ readonly newItems: "neu";
334
+ readonly updatedItems: "aktualisiert";
335
+ readonly deletedItems: "entfernt";
336
+ readonly apply: "Änderungen übernehmen";
337
+ readonly dismiss: "Verwerfen";
338
+ };
339
+ readonly selection: {
340
+ readonly selectRow: "Zeile auswählen";
341
+ readonly deselectRow: "Auswahl aufheben";
342
+ readonly selectAllRows: "Alle Zeilen auswählen";
343
+ readonly deselectAllRows: "Auswahl aller Zeilen aufheben";
344
+ readonly selectedCount: "{{count}} ausgewählt";
345
+ };
346
+ readonly table: {
347
+ readonly link: {
348
+ readonly invalid: "Ungültiger Link";
349
+ };
350
+ readonly summary: {
351
+ readonly totalSummary: "Gesamtzusammenfassung";
352
+ };
353
+ };
354
+ };
355
+ };
356
+ export declare const tableI18n: import("@urbicon-ui/i18n").PackageI18n<import("@urbicon-ui/i18n").Translations>;
357
+ /**
358
+ * Context-scoped translation hook for the table package. Call during component
359
+ * initialisation, then use the returned `t` (conventionally aliased `tt`).
360
+ * Resolves against the nearest `<I18nProvider>`'s locale (or the base locale
361
+ * when none is mounted) and re-renders reactively on locale change.
362
+ */
363
+ export declare const useTableI18n: any;
364
+ export declare const hasTableTranslation: (key: string) => boolean, getTableLocales: () => import("@urbicon-ui/i18n").Locale[];
365
+ export type TableTranslationKey = keyof typeof enTranslations;
366
+ export { tableTranslations };
@@ -0,0 +1,21 @@
1
+ import { createPackageI18n } from '@urbicon-ui/i18n';
2
+ import deTranslations from '../translations/de';
3
+ import enTranslations from '../translations/en';
4
+ // Create package translations for table
5
+ const tableTranslations = {
6
+ en: enTranslations,
7
+ de: deTranslations
8
+ };
9
+ // Create the package i18n integration (registers eagerly at module init).
10
+ export const tableI18n = createPackageI18n('table', tableTranslations);
11
+ /**
12
+ * Context-scoped translation hook for the table package. Call during component
13
+ * initialisation, then use the returned `t` (conventionally aliased `tt`).
14
+ * Resolves against the nearest `<I18nProvider>`'s locale (or the base locale
15
+ * when none is mounted) and re-renders reactively on locale change.
16
+ */
17
+ export const useTableI18n = tableI18n.useTranslate;
18
+ // Introspection helpers (locale list / key existence).
19
+ export const { exists: hasTableTranslation, getLocales: getTableLocales } = tableI18n;
20
+ // Re-export for external use
21
+ export { tableTranslations };
@@ -0,0 +1,28 @@
1
+ export * from './cells/index.js';
2
+ export { default as EmptyState } from './core/EmptyState.svelte';
3
+ export { default as ErrorState } from './core/ErrorState.svelte';
4
+ export { default as GroupedRow } from './core/GroupedRow.svelte';
5
+ export { default as LoadingState } from './core/LoadingState.svelte';
6
+ export { default as MobileCard } from './core/MobileCard.svelte';
7
+ export { default as TableHead } from './core/TableHead.svelte';
8
+ export { default as TableProvider } from './core/TableProvider.svelte';
9
+ export { default as TableRow } from './core/TableRow.svelte';
10
+ export { default as Table } from './core/table/Table.svelte';
11
+ export type { TableSlotClasses } from './core/table-style-context.js';
12
+ export { resolveSlotClass } from './core/table-style-context.js';
13
+ export * from './factories/index.js';
14
+ export { default as HeaderMenu } from './features/HeaderMenu.svelte';
15
+ export { default as LiveUpdateBanner } from './features/LiveUpdateBanner.svelte';
16
+ export { default as SearchHighlight } from './features/SearchHighlight.svelte';
17
+ export { default as ChipsField } from './features/SmartFilterBar/ChipsField.svelte';
18
+ export { default as FilterMenu } from './features/SmartFilterBar/FilterMenu.svelte';
19
+ export { default as SmartFilterBar } from './features/SmartFilterBar/SmartFilterBar.svelte';
20
+ export { default as SummaryRow } from './features/SummaryRow.svelte';
21
+ export * from './i18n';
22
+ export * from './stores/index.js';
23
+ export * from './style/index.js';
24
+ export * from './types/index.js';
25
+ export { findColumnById, resolveColumnId, resolveColumnLabel, resolveColumnValue } from './utils/index.js';
26
+ export type { VirtualItem, VirtualizerOptions, VirtualizerResult } from './utils/virtualizer.js';
27
+ export { computeVirtualItems, ROW_HEIGHTS } from './utils/virtualizer.js';
28
+ export * from './variants/index.js';
package/dist/index.js ADDED
@@ -0,0 +1,41 @@
1
+ // === I18N SYSTEM ===
2
+ // === CELL COMPONENTS ===
3
+ export * from './cells/index.js';
4
+ export { default as EmptyState } from './core/EmptyState.svelte';
5
+ export { default as ErrorState } from './core/ErrorState.svelte';
6
+ export { default as GroupedRow } from './core/GroupedRow.svelte';
7
+ export { default as LoadingState } from './core/LoadingState.svelte';
8
+ export { default as MobileCard } from './core/MobileCard.svelte';
9
+ // === CORE TABLE COMPONENTS ===
10
+ export { default as TableHead } from './core/TableHead.svelte';
11
+ export { default as TableProvider } from './core/TableProvider.svelte';
12
+ export { default as TableRow } from './core/TableRow.svelte';
13
+ // === CORE COMPONENTS ===
14
+ export { default as Table } from './core/table/Table.svelte';
15
+ export { resolveSlotClass } from './core/table-style-context.js';
16
+ // === FACTORIES ===
17
+ export * from './factories/index.js';
18
+ export { default as HeaderMenu } from './features/HeaderMenu.svelte';
19
+ export { default as LiveUpdateBanner } from './features/LiveUpdateBanner.svelte';
20
+ export { default as SearchHighlight } from './features/SearchHighlight.svelte';
21
+ export { default as ChipsField } from './features/SmartFilterBar/ChipsField.svelte';
22
+ export { default as FilterMenu } from './features/SmartFilterBar/FilterMenu.svelte';
23
+ // === ADVANCED FEATURES ===
24
+ export { default as SmartFilterBar } from './features/SmartFilterBar/SmartFilterBar.svelte';
25
+ export { default as SummaryRow } from './features/SummaryRow.svelte';
26
+ export * from './i18n';
27
+ // === STORES ===
28
+ export * from './stores/index.js';
29
+ // === STYLES ===
30
+ export * from './style/index.js';
31
+ // === TYPES ===
32
+ export * from './types/index.js';
33
+ // === COLUMN RESOLVERS ===
34
+ // Helpers for table-level cell snippets and other consumers that need to
35
+ // derive the stable identifier or value from a Column with a string,
36
+ // function, or no accessor.
37
+ export { findColumnById, resolveColumnId, resolveColumnLabel, resolveColumnValue } from './utils/index.js';
38
+ // === VIRTUALIZER ===
39
+ export { computeVirtualItems, ROW_HEIGHTS } from './utils/virtualizer.js';
40
+ // === VARIANTS ===
41
+ export * from './variants/index.js';