@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,314 @@
1
+ /**
2
+ * ⚡ TABLE PRIMITIVES
3
+ * Basic table-specific patterns and tokens.
4
+ * Extends blocks/primitives with table-specific functionality.
5
+ */
6
+ /**
7
+ * TABLE-SPECIFIC INTENTS
8
+ * Extended semantic colors for table features.
9
+ */
10
+ export const TABLE_INTENTS = {
11
+ // Core intents (inherited from blocks)
12
+ primary: 'primary',
13
+ neutral: 'neutral',
14
+ success: 'success',
15
+ danger: 'danger',
16
+ warning: 'warning',
17
+ // Table-specific intents
18
+ filter: 'filter', // Cyan-based for filter UI
19
+ group: 'group', // Teal-based for grouping
20
+ summary: 'summary' // Emerald-based for summaries
21
+ };
22
+ /**
23
+ * TABLE DIMENSIONS
24
+ */
25
+ export const TABLE_DIMENSIONS = {
26
+ // Header & Row Heights
27
+ height: {
28
+ header: {
29
+ sm: 'h-8',
30
+ md: 'h-10',
31
+ lg: 'h-12'
32
+ },
33
+ row: {
34
+ sm: 'h-8',
35
+ md: 'h-10',
36
+ lg: 'h-12'
37
+ },
38
+ mobileCard: {
39
+ sm: 'min-h-16',
40
+ md: 'min-h-24',
41
+ lg: 'min-h-32'
42
+ }
43
+ },
44
+ // Cell Padding
45
+ padding: {
46
+ cell: {
47
+ sm: 'px-0.5 py-0.5',
48
+ md: 'px-1 py-1',
49
+ lg: 'px-2 py-1.5'
50
+ },
51
+ headerCell: {
52
+ sm: 'px-0.5 py-0.5',
53
+ md: 'px-1 py-1',
54
+ lg: 'px-2 py-2'
55
+ },
56
+ mobileCard: {
57
+ sm: 'p-2',
58
+ md: 'p-3',
59
+ lg: 'p-4'
60
+ }
61
+ },
62
+ // Table-specific widths
63
+ width: {
64
+ minTable: 'min-w-[600px]',
65
+ maxTable: 'max-w-full',
66
+ columnMin: 'min-w-[100px]',
67
+ columnMax: 'max-w-[500px]'
68
+ }
69
+ };
70
+ /**
71
+ * TABLE SURFACES
72
+ * Table-specific surface definitions.
73
+ */
74
+ export const TABLE_SURFACES = {
75
+ // Base surfaces
76
+ base: {
77
+ header: 'bg-surface-elevated',
78
+ row: 'bg-surface-base',
79
+ rowHover: 'hover:bg-surface-hover',
80
+ rowSelected: 'bg-surface-selected',
81
+ rowGrouped: 'bg-surface-elevated'
82
+ },
83
+ // Intent-based surfaces
84
+ intent: {
85
+ filter: {
86
+ subtle: 'bg-filter-subtle',
87
+ emphasis: 'bg-filter-emphasis',
88
+ hover: 'hover:bg-filter-hover'
89
+ },
90
+ group: {
91
+ subtle: 'bg-group-subtle',
92
+ emphasis: 'bg-group-emphasis',
93
+ hover: 'hover:bg-group-hover'
94
+ },
95
+ summary: {
96
+ subtle: 'bg-summary-subtle',
97
+ emphasis: 'bg-summary-emphasis',
98
+ hover: 'hover:bg-summary-hover'
99
+ }
100
+ }
101
+ };
102
+ /**
103
+ * TABLE BORDERS
104
+ */
105
+ export const TABLE_BORDERS = {
106
+ // Border widths
107
+ width: {
108
+ none: 'border-0',
109
+ thin: 'border',
110
+ thick: 'border-2'
111
+ },
112
+ // Border positions
113
+ position: {
114
+ all: 'border',
115
+ top: 'border-t',
116
+ right: 'border-r',
117
+ bottom: 'border-b',
118
+ left: 'border-l',
119
+ horizontal: 'border-t border-b',
120
+ vertical: 'border-l border-r'
121
+ },
122
+ // Border colors
123
+ color: {
124
+ hairline: 'border-border-hairline',
125
+ subtle: 'border-border-subtle',
126
+ default: 'border-border-default',
127
+ emphasis: 'border-border-emphasis',
128
+ filter: 'border-filter',
129
+ group: 'border-group',
130
+ summary: 'border-summary'
131
+ }
132
+ };
133
+ /**
134
+ * TABLE INDICATORS
135
+ * Visual indicators for table features.
136
+ */
137
+ export const TABLE_INDICATORS = {
138
+ // Dot indicators
139
+ dot: {
140
+ base: 'rounded-full',
141
+ size: {
142
+ xs: 'w-1 h-1',
143
+ sm: 'w-1.5 h-1.5',
144
+ md: 'w-2 h-2',
145
+ lg: 'w-2.5 h-2.5'
146
+ },
147
+ intent: {
148
+ filter: 'bg-filter',
149
+ group: 'bg-group',
150
+ summary: 'bg-summary',
151
+ primary: 'bg-primary',
152
+ success: 'bg-success',
153
+ warning: 'bg-warning',
154
+ danger: 'bg-danger'
155
+ }
156
+ },
157
+ // Bar indicators
158
+ bar: {
159
+ base: 'transition-[background-color,width] duration-[var(--blocks-duration-normal)]',
160
+ size: {
161
+ xs: 'h-0.5',
162
+ sm: 'h-1',
163
+ md: 'h-1.5',
164
+ lg: 'h-2'
165
+ },
166
+ position: {
167
+ bottom: 'absolute bottom-0 left-0 right-0',
168
+ top: 'absolute top-0 left-0 right-0',
169
+ left: 'absolute top-0 left-0 bottom-0 w-1',
170
+ right: 'absolute top-0 right-0 bottom-0 w-1'
171
+ }
172
+ },
173
+ // Badge indicators
174
+ badge: {
175
+ base: 'inline-flex items-center justify-center font-semibold rounded-full',
176
+ size: {
177
+ xs: 'min-w-4 h-4 px-1 text-[10px]',
178
+ sm: 'min-w-5 h-5 px-1.5 text-xs',
179
+ md: 'min-w-6 h-6 px-2 text-sm',
180
+ lg: 'min-w-7 h-7 px-2.5 text-base'
181
+ }
182
+ }
183
+ };
184
+ /**
185
+ * TABLE STATES
186
+ * Table element states.
187
+ */
188
+ export const TABLE_STATES = {
189
+ // Row states
190
+ row: {
191
+ default: '',
192
+ hover: 'hover:bg-surface-hover',
193
+ selected: 'bg-primary-subtle border-primary',
194
+ expanded: 'bg-surface-hover',
195
+ grouped: 'bg-surface-elevated font-semibold',
196
+ disabled: 'opacity-50 pointer-events-none'
197
+ },
198
+ // Cell states
199
+ cell: {
200
+ default: '',
201
+ sortable: 'cursor-pointer hover:bg-surface-hover',
202
+ sorted: 'bg-primary-subtle text-primary-emphasis font-semibold',
203
+ editable: 'cursor-text hover:ring-2 hover:ring-primary',
204
+ readonly: 'cursor-not-allowed opacity-75'
205
+ },
206
+ // Feature states
207
+ feature: {
208
+ active: 'ring-2 ring-primary',
209
+ inactive: 'opacity-60',
210
+ loading: 'animate-pulse',
211
+ error: 'ring-2 ring-danger'
212
+ }
213
+ };
214
+ /**
215
+ * TABLE ANIMATIONS
216
+ * Animation patterns for table interactions.
217
+ */
218
+ export const TABLE_ANIMATIONS = {
219
+ // Expand/Collapse
220
+ expand: {
221
+ trigger: 'transition-transform duration-[var(--blocks-duration-normal)]',
222
+ expanded: 'rotate-0',
223
+ collapsed: '-rotate-90'
224
+ },
225
+ // Sort indicators
226
+ sort: {
227
+ base: 'transition-transform duration-[var(--blocks-duration-fast)]',
228
+ asc: 'rotate-0',
229
+ desc: 'rotate-180',
230
+ none: 'opacity-0'
231
+ },
232
+ // Loading states
233
+ loading: {
234
+ pulse: 'animate-pulse',
235
+ spin: 'animate-spin',
236
+ skeleton: 'animate-pulse bg-gradient-to-r from-surface-2 via-surface-3 to-surface-2'
237
+ },
238
+ // Row animations
239
+ row: {
240
+ enter: 'animate-in fade-in duration-[var(--blocks-duration-normal)]',
241
+ exit: 'animate-out fade-out duration-[var(--blocks-duration-fast)]',
242
+ reorder: 'transition-[transform,opacity] duration-[var(--blocks-duration-slow)]'
243
+ }
244
+ };
245
+ /**
246
+ * TABLE RESPONSIVE
247
+ * Responsive breakpoints and utilities
248
+ */
249
+ export const TABLE_RESPONSIVE = {
250
+ // Visibility utilities
251
+ visibility: {
252
+ desktop: 'hidden md:table-cell',
253
+ tablet: 'hidden sm:table-cell',
254
+ mobile: 'table-cell md:hidden',
255
+ always: 'table-cell'
256
+ },
257
+ // Priority-based columns
258
+ priority: {
259
+ 1: 'table-cell', // Always visible
260
+ 2: 'hidden sm:table-cell', // Hidden on mobile
261
+ 3: 'hidden md:table-cell', // Hidden on mobile & tablet
262
+ 4: 'hidden lg:table-cell', // Hidden except desktop
263
+ 5: 'hidden xl:table-cell' // Hidden except large desktop
264
+ },
265
+ // Container queries (if available)
266
+ container: {
267
+ sm: '@container-sm',
268
+ md: '@container-md',
269
+ lg: '@container-lg'
270
+ }
271
+ };
272
+ /**
273
+ * TABLE LAYOUTS
274
+ */
275
+ export const TABLE_LAYOUTS = {
276
+ // Table variants
277
+ variant: {
278
+ default: 'table-auto',
279
+ fixed: 'table-fixed',
280
+ compact: 'table-fixed text-sm',
281
+ comfortable: 'table-auto text-base',
282
+ data: 'table-fixed font-mono text-sm'
283
+ },
284
+ // Density presets
285
+ density: {
286
+ compact: {
287
+ header: TABLE_DIMENSIONS.height.header.sm,
288
+ row: TABLE_DIMENSIONS.height.row.sm,
289
+ padding: TABLE_DIMENSIONS.padding.cell.sm
290
+ },
291
+ default: {
292
+ header: TABLE_DIMENSIONS.height.header.md,
293
+ row: TABLE_DIMENSIONS.height.row.md,
294
+ padding: TABLE_DIMENSIONS.padding.cell.md
295
+ },
296
+ comfortable: {
297
+ header: TABLE_DIMENSIONS.height.header.lg,
298
+ row: TABLE_DIMENSIONS.height.row.lg,
299
+ padding: TABLE_DIMENSIONS.padding.cell.lg
300
+ }
301
+ }
302
+ };
303
+ /**
304
+ * UTILITY FUNCTIONS
305
+ */
306
+ export const combineTableClasses = (tableClasses, blockPrimitives) => {
307
+ return [blockPrimitives, tableClasses].filter(Boolean).join(' ');
308
+ };
309
+ export const getResponsiveColumnClass = (priority) => {
310
+ return TABLE_RESPONSIVE.priority[priority];
311
+ };
312
+ export const getDensityClasses = (density) => {
313
+ return TABLE_LAYOUTS.density[density];
314
+ };