@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,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
+ });