@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.
- package/README.md +153 -0
- package/dist/cells/ActionButtons.svelte +224 -0
- package/dist/cells/ActionButtons.svelte.d.ts +74 -0
- package/dist/cells/CopyButton.svelte +89 -0
- package/dist/cells/CopyButton.svelte.d.ts +33 -0
- package/dist/cells/CustomCell.svelte +136 -0
- package/dist/cells/CustomCell.svelte.d.ts +44 -0
- package/dist/cells/DateCell.svelte +194 -0
- package/dist/cells/DateCell.svelte.d.ts +39 -0
- package/dist/cells/LinkCell.svelte +240 -0
- package/dist/cells/LinkCell.svelte.d.ts +42 -0
- package/dist/cells/NumberCell.svelte +225 -0
- package/dist/cells/NumberCell.svelte.d.ts +47 -0
- package/dist/cells/StatusBadge.svelte +121 -0
- package/dist/cells/StatusBadge.svelte.d.ts +44 -0
- package/dist/cells/UserAvatar.svelte +71 -0
- package/dist/cells/UserAvatar.svelte.d.ts +37 -0
- package/dist/cells/index.d.ts +8 -0
- package/dist/cells/index.js +9 -0
- package/dist/core/EmptyState.svelte +161 -0
- package/dist/core/EmptyState.svelte.d.ts +16 -0
- package/dist/core/ErrorState.svelte +158 -0
- package/dist/core/ErrorState.svelte.d.ts +15 -0
- package/dist/core/GroupedRow.svelte +239 -0
- package/dist/core/GroupedRow.svelte.d.ts +18 -0
- package/dist/core/LoadingState.svelte +75 -0
- package/dist/core/LoadingState.svelte.d.ts +14 -0
- package/dist/core/MobileCard.svelte +151 -0
- package/dist/core/MobileCard.svelte.d.ts +15 -0
- package/dist/core/TableCell.svelte +105 -0
- package/dist/core/TableCell.svelte.d.ts +14 -0
- package/dist/core/TableDesktop.svelte +480 -0
- package/dist/core/TableDesktop.svelte.d.ts +26 -0
- package/dist/core/TableHead.svelte +314 -0
- package/dist/core/TableHead.svelte.d.ts +7 -0
- package/dist/core/TableMobile.svelte +112 -0
- package/dist/core/TableMobile.svelte.d.ts +13 -0
- package/dist/core/TableProvider.svelte +271 -0
- package/dist/core/TableProvider.svelte.d.ts +40 -0
- package/dist/core/TableRow.svelte +171 -0
- package/dist/core/TableRow.svelte.d.ts +16 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/index.js +14 -0
- package/dist/core/sticky-context.svelte.d.ts +48 -0
- package/dist/core/sticky-context.svelte.js +88 -0
- package/dist/core/table/Table.svelte +304 -0
- package/dist/core/table/Table.svelte.d.ts +26 -0
- package/dist/core/table/index.d.ts +448 -0
- package/dist/core/table/index.js +1 -0
- package/dist/core/table-style-context.d.ts +66 -0
- package/dist/core/table-style-context.js +26 -0
- package/dist/factories/ColumnValidation.d.ts +49 -0
- package/dist/factories/ColumnValidation.js +188 -0
- package/dist/factories/TableColumns.d.ts +97 -0
- package/dist/factories/TableColumns.js +262 -0
- package/dist/factories/TypedColumnBuilder.d.ts +41 -0
- package/dist/factories/TypedColumnBuilder.js +72 -0
- package/dist/factories/index.d.ts +12 -0
- package/dist/factories/index.js +13 -0
- package/dist/features/HeaderMenu.svelte +236 -0
- package/dist/features/HeaderMenu.svelte.d.ts +8 -0
- package/dist/features/LiveUpdateBanner.svelte +66 -0
- package/dist/features/LiveUpdateBanner.svelte.d.ts +6 -0
- package/dist/features/SearchHighlight.svelte +21 -0
- package/dist/features/SearchHighlight.svelte.d.ts +8 -0
- package/dist/features/SmartFilterBar/ChipsField.svelte +104 -0
- package/dist/features/SmartFilterBar/ChipsField.svelte.d.ts +5 -0
- package/dist/features/SmartFilterBar/ColumnVisibilityMenu.svelte +84 -0
- package/dist/features/SmartFilterBar/ColumnVisibilityMenu.svelte.d.ts +3 -0
- package/dist/features/SmartFilterBar/FilterMenu.svelte +367 -0
- package/dist/features/SmartFilterBar/FilterMenu.svelte.d.ts +3 -0
- package/dist/features/SmartFilterBar/GroupingMenu.svelte +82 -0
- package/dist/features/SmartFilterBar/GroupingMenu.svelte.d.ts +3 -0
- package/dist/features/SmartFilterBar/SmartFilterBar.svelte +109 -0
- package/dist/features/SmartFilterBar/SmartFilterBar.svelte.d.ts +11 -0
- package/dist/features/SmartFilterBar/SummaryMenu.svelte +118 -0
- package/dist/features/SmartFilterBar/SummaryMenu.svelte.d.ts +3 -0
- package/dist/features/SummaryRow.svelte +97 -0
- package/dist/features/SummaryRow.svelte.d.ts +8 -0
- package/dist/features/index.d.ts +4 -0
- package/dist/features/index.js +4 -0
- package/dist/i18n/index.d.ts +366 -0
- package/dist/i18n/index.js +21 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +41 -0
- package/dist/stores/TableStore.svelte.d.ts +192 -0
- package/dist/stores/TableStore.svelte.js +362 -0
- package/dist/stores/concerns/index.d.ts +15 -0
- package/dist/stores/concerns/index.js +14 -0
- package/dist/stores/concerns/types.d.ts +31 -0
- package/dist/stores/concerns/types.js +1 -0
- package/dist/stores/concerns/useColumnOrder.svelte.d.ts +16 -0
- package/dist/stores/concerns/useColumnOrder.svelte.js +81 -0
- package/dist/stores/concerns/useColumnVisibility.svelte.d.ts +16 -0
- package/dist/stores/concerns/useColumnVisibility.svelte.js +58 -0
- package/dist/stores/concerns/useExpansion.svelte.d.ts +9 -0
- package/dist/stores/concerns/useExpansion.svelte.js +32 -0
- package/dist/stores/concerns/useFiltering.svelte.d.ts +20 -0
- package/dist/stores/concerns/useFiltering.svelte.js +109 -0
- package/dist/stores/concerns/useFocusManagement.svelte.d.ts +15 -0
- package/dist/stores/concerns/useFocusManagement.svelte.js +52 -0
- package/dist/stores/concerns/useGrouping.svelte.d.ts +15 -0
- package/dist/stores/concerns/useGrouping.svelte.js +86 -0
- package/dist/stores/concerns/useLiveUpdates.svelte.d.ts +45 -0
- package/dist/stores/concerns/useLiveUpdates.svelte.js +175 -0
- package/dist/stores/concerns/usePagination.svelte.d.ts +18 -0
- package/dist/stores/concerns/usePagination.svelte.js +54 -0
- package/dist/stores/concerns/usePersistence.svelte.d.ts +36 -0
- package/dist/stores/concerns/usePersistence.svelte.js +167 -0
- package/dist/stores/concerns/useRemoteData.svelte.d.ts +21 -0
- package/dist/stores/concerns/useRemoteData.svelte.js +64 -0
- package/dist/stores/concerns/useSearch.svelte.d.ts +8 -0
- package/dist/stores/concerns/useSearch.svelte.js +16 -0
- package/dist/stores/concerns/useSelection.svelte.d.ts +21 -0
- package/dist/stores/concerns/useSelection.svelte.js +110 -0
- package/dist/stores/concerns/useSorting.svelte.d.ts +11 -0
- package/dist/stores/concerns/useSorting.svelte.js +70 -0
- package/dist/stores/concerns/useSummary.svelte.d.ts +18 -0
- package/dist/stores/concerns/useSummary.svelte.js +96 -0
- package/dist/stores/index.d.ts +1 -0
- package/dist/stores/index.js +1 -0
- package/dist/style/index.css +137 -0
- package/dist/style/index.d.ts +2 -0
- package/dist/style/index.js +2 -0
- package/dist/style/table-theme.css +131 -0
- package/dist/style/themes/comfortable.css +20 -0
- package/dist/style/themes/compact.css +20 -0
- package/dist/translations/de.d.ts +177 -0
- package/dist/translations/de.js +176 -0
- package/dist/translations/en.d.ts +177 -0
- package/dist/translations/en.js +176 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/tableTypes.d.ts +262 -0
- package/dist/types/tableTypes.js +1 -0
- package/dist/utils/index.d.ts +165 -0
- package/dist/utils/index.js +330 -0
- package/dist/utils/sticky-measure.d.ts +54 -0
- package/dist/utils/sticky-measure.js +107 -0
- package/dist/utils/virtualizer.d.ts +43 -0
- package/dist/utils/virtualizer.js +43 -0
- package/dist/variants/index.d.ts +11 -0
- package/dist/variants/index.js +15 -0
- package/dist/variants/table-cells.variants.d.ts +827 -0
- package/dist/variants/table-cells.variants.js +627 -0
- package/dist/variants/table-features.variants.d.ts +547 -0
- package/dist/variants/table-features.variants.js +412 -0
- package/dist/variants/table-states.variants.d.ts +594 -0
- package/dist/variants/table-states.variants.js +394 -0
- package/dist/variants/table.system.d.ts +301 -0
- package/dist/variants/table.system.js +314 -0
- package/dist/variants/table.variants.d.ts +428 -0
- package/dist/variants/table.variants.js +360 -0
- package/package.json +93 -0
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TABLE FEATURE VARIANTS
|
|
3
|
+
* Variants for filter, grouping, and summary features.
|
|
4
|
+
*/
|
|
5
|
+
import { tv } from '@urbicon-ui/blocks';
|
|
6
|
+
import { TABLE_ANIMATIONS, TABLE_BORDERS, TABLE_DIMENSIONS } from './table.system';
|
|
7
|
+
/**
|
|
8
|
+
* SMART FILTER BAR VARIANTS
|
|
9
|
+
*/
|
|
10
|
+
export const smartFilterBarVariants = tv({
|
|
11
|
+
slots: {
|
|
12
|
+
container: [
|
|
13
|
+
'w-full flex flex-col gap-2 p-3',
|
|
14
|
+
'bg-surface-base',
|
|
15
|
+
TABLE_BORDERS.width.thin,
|
|
16
|
+
TABLE_BORDERS.color.default,
|
|
17
|
+
'rounded-contain',
|
|
18
|
+
'shadow-[var(--blocks-shadow-sm)]',
|
|
19
|
+
'transition-shadow duration-[var(--blocks-duration-fast)]',
|
|
20
|
+
'@container'
|
|
21
|
+
],
|
|
22
|
+
searchSection: ['min-w-0 max-w-xs'],
|
|
23
|
+
actionsSection: ['flex items-center gap-2 flex-shrink-0'],
|
|
24
|
+
chipsSection: ['w-full']
|
|
25
|
+
},
|
|
26
|
+
variants: {
|
|
27
|
+
size: {
|
|
28
|
+
sm: {
|
|
29
|
+
container: 'gap-2 p-2',
|
|
30
|
+
searchSection: 'max-w-2xs'
|
|
31
|
+
},
|
|
32
|
+
md: {
|
|
33
|
+
container: 'gap-3 p-3',
|
|
34
|
+
searchSection: 'max-w-xs'
|
|
35
|
+
},
|
|
36
|
+
lg: {
|
|
37
|
+
container: 'gap-4 p-4',
|
|
38
|
+
searchSection: 'max-w-sm'
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
layout: {
|
|
42
|
+
horizontal: {},
|
|
43
|
+
vertical: {
|
|
44
|
+
searchSection: 'w-full max-w-full',
|
|
45
|
+
actionsSection: 'w-full justify-between'
|
|
46
|
+
},
|
|
47
|
+
responsive: {
|
|
48
|
+
searchSection: 'w-full sm:max-w-xs',
|
|
49
|
+
actionsSection: 'w-full sm:w-auto'
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
elevated: {
|
|
53
|
+
true: {
|
|
54
|
+
container: ['bg-surface-elevated', 'shadow-[var(--blocks-shadow-md)]']
|
|
55
|
+
},
|
|
56
|
+
false: {}
|
|
57
|
+
},
|
|
58
|
+
appearance: {
|
|
59
|
+
flush: {
|
|
60
|
+
container: ['border-transparent bg-transparent shadow-none']
|
|
61
|
+
},
|
|
62
|
+
surface: {
|
|
63
|
+
container: ['border-transparent bg-surface-quiet shadow-none']
|
|
64
|
+
},
|
|
65
|
+
framed: {}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
defaultVariants: {
|
|
69
|
+
size: 'md',
|
|
70
|
+
layout: 'responsive',
|
|
71
|
+
elevated: false,
|
|
72
|
+
appearance: 'framed'
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
/**
|
|
76
|
+
* FILTER CHIP VARIANTS
|
|
77
|
+
*/
|
|
78
|
+
export const filterChipVariants = tv({
|
|
79
|
+
slots: {
|
|
80
|
+
chip: [
|
|
81
|
+
'inline-flex items-center gap-1.5',
|
|
82
|
+
'rounded-commit font-medium',
|
|
83
|
+
'border transition-[color,background-color,border-color,box-shadow,opacity] duration-[var(--blocks-duration-fast)]'
|
|
84
|
+
],
|
|
85
|
+
icon: ['flex-shrink-0'],
|
|
86
|
+
label: ['truncate max-w-[200px]'],
|
|
87
|
+
value: ['font-semibold'],
|
|
88
|
+
removeButton: [
|
|
89
|
+
'ml-1 rounded-modify',
|
|
90
|
+
'hover:bg-surface-hover',
|
|
91
|
+
'transition-colors duration-[var(--blocks-duration-fast)]'
|
|
92
|
+
],
|
|
93
|
+
removeIcon: ['w-3 h-3']
|
|
94
|
+
},
|
|
95
|
+
variants: {
|
|
96
|
+
intent: {
|
|
97
|
+
filter: {
|
|
98
|
+
chip: 'bg-filter-subtle text-filter border-filter'
|
|
99
|
+
},
|
|
100
|
+
group: {
|
|
101
|
+
chip: 'bg-group-subtle text-group border-group'
|
|
102
|
+
},
|
|
103
|
+
summary: {
|
|
104
|
+
chip: 'bg-summary-subtle text-summary border-summary'
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
size: {
|
|
108
|
+
sm: {
|
|
109
|
+
chip: 'h-6 px-2 text-xs gap-1',
|
|
110
|
+
icon: 'w-3 h-3'
|
|
111
|
+
},
|
|
112
|
+
md: {
|
|
113
|
+
chip: 'h-7 px-2.5 text-sm gap-1.5',
|
|
114
|
+
icon: 'w-3.5 h-3.5'
|
|
115
|
+
},
|
|
116
|
+
lg: {
|
|
117
|
+
chip: 'h-8 px-3 text-base gap-2',
|
|
118
|
+
icon: 'w-4 h-4'
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
removable: {
|
|
122
|
+
true: {},
|
|
123
|
+
false: {
|
|
124
|
+
removeButton: 'hidden'
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
defaultVariants: {
|
|
129
|
+
intent: 'filter',
|
|
130
|
+
size: 'md',
|
|
131
|
+
removable: true
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
/**
|
|
135
|
+
* GROUP HEADER VARIANTS
|
|
136
|
+
*/
|
|
137
|
+
export const groupHeaderVariants = tv({
|
|
138
|
+
slots: {
|
|
139
|
+
row: [TABLE_BORDERS.position.bottom, 'border-border-hairline'],
|
|
140
|
+
cell: [
|
|
141
|
+
'cursor-pointer',
|
|
142
|
+
'transition-colors duration-[var(--blocks-duration-fast)]',
|
|
143
|
+
'hover:bg-surface-hover'
|
|
144
|
+
],
|
|
145
|
+
content: ['flex items-center gap-3 w-full'],
|
|
146
|
+
chevron: [
|
|
147
|
+
'flex-shrink-0 text-text-tertiary',
|
|
148
|
+
'transition-transform duration-[var(--blocks-duration-fast)]'
|
|
149
|
+
],
|
|
150
|
+
icon: ['flex-shrink-0'],
|
|
151
|
+
title: ['font-medium text-text-primary'],
|
|
152
|
+
count: ['text-text-tertiary text-sm font-normal'],
|
|
153
|
+
actions: ['ml-auto flex items-center gap-2']
|
|
154
|
+
},
|
|
155
|
+
variants: {
|
|
156
|
+
size: {
|
|
157
|
+
sm: {
|
|
158
|
+
cell: TABLE_DIMENSIONS.padding.cell.sm,
|
|
159
|
+
content: 'gap-2',
|
|
160
|
+
title: 'text-sm'
|
|
161
|
+
},
|
|
162
|
+
md: {
|
|
163
|
+
cell: TABLE_DIMENSIONS.padding.cell.md,
|
|
164
|
+
content: 'gap-3',
|
|
165
|
+
title: 'text-base'
|
|
166
|
+
},
|
|
167
|
+
lg: {
|
|
168
|
+
cell: TABLE_DIMENSIONS.padding.cell.lg,
|
|
169
|
+
content: 'gap-4',
|
|
170
|
+
title: 'text-lg'
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
expanded: {
|
|
174
|
+
true: {
|
|
175
|
+
chevron: TABLE_ANIMATIONS.expand.expanded
|
|
176
|
+
},
|
|
177
|
+
false: {
|
|
178
|
+
chevron: TABLE_ANIMATIONS.expand.collapsed
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
// Sticky group header — third layer below toolbar + thead.
|
|
182
|
+
// The DOM order ensures the next group header pushes the previous one
|
|
183
|
+
// out automatically (iOS UITableView pattern).
|
|
184
|
+
sticky: {
|
|
185
|
+
true: {
|
|
186
|
+
row: [
|
|
187
|
+
'sticky z-10 bg-surface-base',
|
|
188
|
+
'top-[calc(var(--blocks-table-sticky-top,0px)+var(--blocks-table-toolbar-h,0px)+var(--blocks-table-thead-h,0px))]'
|
|
189
|
+
]
|
|
190
|
+
},
|
|
191
|
+
false: {}
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
defaultVariants: {
|
|
195
|
+
size: 'md',
|
|
196
|
+
expanded: false,
|
|
197
|
+
sticky: false
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
/**
|
|
201
|
+
* SUMMARY ROW VARIANTS
|
|
202
|
+
*/
|
|
203
|
+
export const summaryRowVariants = tv({
|
|
204
|
+
slots: {
|
|
205
|
+
row: [
|
|
206
|
+
'bg-surface-elevated',
|
|
207
|
+
'font-semibold',
|
|
208
|
+
TABLE_BORDERS.position.top,
|
|
209
|
+
TABLE_BORDERS.width.thick,
|
|
210
|
+
TABLE_BORDERS.color.default
|
|
211
|
+
],
|
|
212
|
+
cell: ['text-text-primary'],
|
|
213
|
+
label: ['text-text-secondary text-xs uppercase tracking-wide'],
|
|
214
|
+
value: ['font-mono tabular-nums']
|
|
215
|
+
},
|
|
216
|
+
variants: {
|
|
217
|
+
size: {
|
|
218
|
+
sm: {
|
|
219
|
+
cell: TABLE_DIMENSIONS.padding.cell.sm,
|
|
220
|
+
value: 'text-sm'
|
|
221
|
+
},
|
|
222
|
+
md: {
|
|
223
|
+
cell: TABLE_DIMENSIONS.padding.cell.md,
|
|
224
|
+
value: 'text-base'
|
|
225
|
+
},
|
|
226
|
+
lg: {
|
|
227
|
+
cell: TABLE_DIMENSIONS.padding.cell.lg,
|
|
228
|
+
value: 'text-lg'
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
variant: {
|
|
232
|
+
default: {
|
|
233
|
+
row: 'bg-surface-elevated'
|
|
234
|
+
},
|
|
235
|
+
highlighted: {
|
|
236
|
+
row: 'bg-summary-subtle',
|
|
237
|
+
cell: 'text-summary'
|
|
238
|
+
},
|
|
239
|
+
group: {
|
|
240
|
+
row: 'bg-group-subtle',
|
|
241
|
+
cell: 'text-group'
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
position: {
|
|
245
|
+
top: {
|
|
246
|
+
row: [TABLE_BORDERS.position.bottom, 'border-b-2']
|
|
247
|
+
},
|
|
248
|
+
bottom: {
|
|
249
|
+
row: [TABLE_BORDERS.position.top, 'border-t-2']
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
defaultVariants: {
|
|
254
|
+
size: 'md',
|
|
255
|
+
variant: 'highlighted',
|
|
256
|
+
position: 'bottom'
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
/**
|
|
260
|
+
* COLUMN MENU VARIANTS
|
|
261
|
+
*/
|
|
262
|
+
export const columnMenuVariants = tv({
|
|
263
|
+
slots: {
|
|
264
|
+
trigger: [
|
|
265
|
+
'opacity-0 group-hover:opacity-100',
|
|
266
|
+
'ml-auto p-1 rounded-modify',
|
|
267
|
+
'hover:bg-surface-hover',
|
|
268
|
+
'transition-opacity duration-[var(--blocks-duration-fast)]'
|
|
269
|
+
],
|
|
270
|
+
menu: [
|
|
271
|
+
'absolute z-[var(--z-dropdown)] mt-1',
|
|
272
|
+
'bg-surface-elevated',
|
|
273
|
+
'border border-border-default',
|
|
274
|
+
'rounded-contain shadow-[var(--blocks-shadow-lg)]',
|
|
275
|
+
'min-w-[200px]',
|
|
276
|
+
'py-1'
|
|
277
|
+
],
|
|
278
|
+
item: [
|
|
279
|
+
'flex items-center gap-2',
|
|
280
|
+
'px-3 py-2',
|
|
281
|
+
'text-sm text-text-primary',
|
|
282
|
+
'hover:bg-surface-hover',
|
|
283
|
+
'cursor-pointer',
|
|
284
|
+
'transition-colors duration-[var(--blocks-duration-fast)]'
|
|
285
|
+
],
|
|
286
|
+
icon: ['w-4 h-4 flex-shrink-0'],
|
|
287
|
+
separator: ['my-1 border-t border-border-subtle']
|
|
288
|
+
},
|
|
289
|
+
variants: {
|
|
290
|
+
position: {
|
|
291
|
+
left: {
|
|
292
|
+
menu: 'left-0'
|
|
293
|
+
},
|
|
294
|
+
right: {
|
|
295
|
+
menu: 'right-0'
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
destructive: {
|
|
299
|
+
true: {
|
|
300
|
+
item: 'text-danger hover:bg-danger-subtle'
|
|
301
|
+
},
|
|
302
|
+
false: {}
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
defaultVariants: {
|
|
306
|
+
position: 'left',
|
|
307
|
+
destructive: false
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
/**
|
|
311
|
+
* FILTER MENU VARIANTS (compat)
|
|
312
|
+
* Menu/popover for complex filter input.
|
|
313
|
+
*/
|
|
314
|
+
export const filterMenuVariants = tv({
|
|
315
|
+
slots: {
|
|
316
|
+
base: [
|
|
317
|
+
'absolute z-[var(--z-dropdown)] w-96 max-w-[90vw]',
|
|
318
|
+
'bg-surface-elevated border border-border-default',
|
|
319
|
+
'rounded-contain shadow-[var(--blocks-shadow-lg)]',
|
|
320
|
+
'p-4 space-y-4'
|
|
321
|
+
],
|
|
322
|
+
header: ['flex items-center justify-between pb-3', 'border-b border-border-subtle'],
|
|
323
|
+
title: ['text-base font-semibold text-text-primary'],
|
|
324
|
+
section: ['space-y-3'],
|
|
325
|
+
sectionTitle: ['text-sm font-medium text-text-primary'],
|
|
326
|
+
filterRow: ['flex gap-2 items-start'],
|
|
327
|
+
operatorSelect: ['w-32 flex-shrink-0'],
|
|
328
|
+
valueInput: ['flex-1'],
|
|
329
|
+
quickValues: [
|
|
330
|
+
'grid grid-cols-2 gap-1 p-2 max-h-32 overflow-y-auto',
|
|
331
|
+
'border border-border-subtle rounded-modify'
|
|
332
|
+
],
|
|
333
|
+
activeFilter: [
|
|
334
|
+
'flex items-center justify-between p-2',
|
|
335
|
+
'bg-surface-subtle border border-border-subtle rounded-modify'
|
|
336
|
+
],
|
|
337
|
+
footer: ['flex items-center justify-end gap-2 pt-3', 'border-t border-border-subtle']
|
|
338
|
+
},
|
|
339
|
+
variants: {
|
|
340
|
+
size: {
|
|
341
|
+
sm: {
|
|
342
|
+
base: 'w-80 p-3 space-y-3'
|
|
343
|
+
},
|
|
344
|
+
md: {
|
|
345
|
+
base: 'w-96 p-4 space-y-4'
|
|
346
|
+
},
|
|
347
|
+
lg: {
|
|
348
|
+
base: 'w-112 p-5 space-y-5'
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
defaultVariants: {
|
|
353
|
+
size: 'md'
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
/**
|
|
357
|
+
* HEADER MENU VARIANTS
|
|
358
|
+
* Structure for the column header context menu.
|
|
359
|
+
*/
|
|
360
|
+
export const headerMenuVariants = tv({
|
|
361
|
+
slots: {
|
|
362
|
+
container: ['flex items-center justify-center flex-shrink-0'],
|
|
363
|
+
trigger: ['h-8 w-8 min-w-8', 'opacity-0 transition-opacity group-hover:opacity-100'],
|
|
364
|
+
menu: ['p-1 min-w-[200px]'],
|
|
365
|
+
separator: ['h-px bg-border-subtle my-1']
|
|
366
|
+
},
|
|
367
|
+
variants: {
|
|
368
|
+
active: {
|
|
369
|
+
true: { trigger: 'opacity-100' },
|
|
370
|
+
false: {}
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
defaultVariants: { active: false }
|
|
374
|
+
});
|
|
375
|
+
/**
|
|
376
|
+
* HEADER MENU ITEM VARIANTS
|
|
377
|
+
* Per-item intent and active state for header menu entries.
|
|
378
|
+
*/
|
|
379
|
+
export const headerMenuItemVariants = tv({
|
|
380
|
+
base: [
|
|
381
|
+
'w-full flex items-center justify-start gap-2',
|
|
382
|
+
'p-2 rounded-modify text-sm text-left',
|
|
383
|
+
'transition-colors duration-[var(--blocks-duration-fast)]'
|
|
384
|
+
],
|
|
385
|
+
variants: {
|
|
386
|
+
intent: {
|
|
387
|
+
default: 'text-text-primary hover:bg-surface-hover',
|
|
388
|
+
filter: 'text-filter hover:bg-filter-subtle hover:text-filter-hover',
|
|
389
|
+
group: 'text-group hover:bg-group-subtle hover:text-group-hover',
|
|
390
|
+
summary: 'text-summary hover:bg-summary-subtle hover:text-summary-hover',
|
|
391
|
+
danger: 'text-danger-emphasis hover:bg-danger-subtle hover:text-danger-emphasis'
|
|
392
|
+
},
|
|
393
|
+
active: {
|
|
394
|
+
true: {},
|
|
395
|
+
false: {}
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
compoundVariants: [
|
|
399
|
+
{ intent: 'default', active: true, class: 'bg-primary-subtle text-primary-emphasis' },
|
|
400
|
+
{
|
|
401
|
+
intent: 'group',
|
|
402
|
+
active: true,
|
|
403
|
+
class: 'bg-group text-text-on-primary hover:bg-group-hover hover:text-text-on-primary'
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
intent: 'summary',
|
|
407
|
+
active: true,
|
|
408
|
+
class: 'bg-summary text-text-on-primary hover:bg-summary-hover hover:text-text-on-primary'
|
|
409
|
+
}
|
|
410
|
+
],
|
|
411
|
+
defaultVariants: { intent: 'default', active: false }
|
|
412
|
+
});
|