@cooperco/cooper-component-library 0.0.10

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 (139) hide show
  1. package/README.md +11 -0
  2. package/package.json +85 -0
  3. package/src/assets/main.css +155 -0
  4. package/src/assets/theme.css +67 -0
  5. package/src/assets/usercard.jpg +0 -0
  6. package/src/assets/vue.svg +1 -0
  7. package/src/components/Accordion.vue +33 -0
  8. package/src/components/AccordionItem.vue +53 -0
  9. package/src/components/CTA.vue +39 -0
  10. package/src/components/CarouselModule.vue +46 -0
  11. package/src/components/ContainerCollectionModule.vue +33 -0
  12. package/src/components/ContainerModule.vue +116 -0
  13. package/src/components/ContentAndImage.vue +34 -0
  14. package/src/components/ContentMediaModule.vue +50 -0
  15. package/src/components/ContentModule.vue +51 -0
  16. package/src/components/FooterNavigation.vue +57 -0
  17. package/src/components/IconChevron.vue +107 -0
  18. package/src/components/Image.vue +15 -0
  19. package/src/components/LogoCollectionModule.vue +30 -0
  20. package/src/components/LogoContainerModule.vue +30 -0
  21. package/src/components/NavigationElement.vue +92 -0
  22. package/src/components/PrimaryNavigation.vue +68 -0
  23. package/src/components/SplitModule.vue +42 -0
  24. package/src/components/Testimonial.vue +48 -0
  25. package/src/components/TestimonialModule.vue +48 -0
  26. package/src/components/TileCollection.vue +37 -0
  27. package/src/components/TileCollectionModule.vue +45 -0
  28. package/src/components/TileContent.vue +105 -0
  29. package/src/components/Video.vue +18 -0
  30. package/src/components/types/Accordion.ts +18 -0
  31. package/src/components/types/AccordionItem.ts +19 -0
  32. package/src/components/types/CTA.ts +13 -0
  33. package/src/components/types/CarouselModule.ts +21 -0
  34. package/src/components/types/ContainerCollectionModule.ts +12 -0
  35. package/src/components/types/ContainerModule.ts +35 -0
  36. package/src/components/types/ContentAndImage.ts +14 -0
  37. package/src/components/types/ContentMediaModule.ts +14 -0
  38. package/src/components/types/ContentModule.ts +21 -0
  39. package/src/components/types/FooterNavigation.ts +12 -0
  40. package/src/components/types/Image.ts +12 -0
  41. package/src/components/types/LogoCollectionModule.ts +12 -0
  42. package/src/components/types/LogoContainerModule.ts +12 -0
  43. package/src/components/types/NavigationElement.ts +19 -0
  44. package/src/components/types/PrimaryNavigation.ts +10 -0
  45. package/src/components/types/SplitModule.ts +16 -0
  46. package/src/components/types/Testimonial.ts +17 -0
  47. package/src/components/types/TileCollection.ts +14 -0
  48. package/src/components/types/TileContent.ts +34 -0
  49. package/src/components/types/Video.ts +8 -0
  50. package/src/components/types/index.ts +10 -0
  51. package/src/presets/aura/accordion/index.js +81 -0
  52. package/src/presets/aura/autocomplete/index.js +280 -0
  53. package/src/presets/aura/avatar/index.js +46 -0
  54. package/src/presets/aura/badge/index.js +43 -0
  55. package/src/presets/aura/badgedirective/index.js +49 -0
  56. package/src/presets/aura/blockui/index.js +8 -0
  57. package/src/presets/aura/breadcrumb/index.js +63 -0
  58. package/src/presets/aura/button/index.js +511 -0
  59. package/src/presets/aura/calendar/index.js +702 -0
  60. package/src/presets/aura/card/index.js +53 -0
  61. package/src/presets/aura/carousel/index.js +160 -0
  62. package/src/presets/aura/cascadeselect/index.js +220 -0
  63. package/src/presets/aura/checkbox/index.js +107 -0
  64. package/src/presets/aura/chip/index.js +45 -0
  65. package/src/presets/aura/chips/index.js +126 -0
  66. package/src/presets/aura/colorpicker/index.js +132 -0
  67. package/src/presets/aura/confirmpopup/index.js +111 -0
  68. package/src/presets/aura/contextmenu/index.js +132 -0
  69. package/src/presets/aura/datatable/index.js +1290 -0
  70. package/src/presets/aura/dataview/index.js +40 -0
  71. package/src/presets/aura/deferred/index.js +3 -0
  72. package/src/presets/aura/dialog/index.js +250 -0
  73. package/src/presets/aura/divider/index.js +72 -0
  74. package/src/presets/aura/dock/index.js +97 -0
  75. package/src/presets/aura/dropdown/index.js +297 -0
  76. package/src/presets/aura/fieldset/index.js +95 -0
  77. package/src/presets/aura/fileupload/index.js +175 -0
  78. package/src/presets/aura/floatlabel/index.js +26 -0
  79. package/src/presets/aura/galleria/index.js +353 -0
  80. package/src/presets/aura/global.js +90 -0
  81. package/src/presets/aura/iconfield/index.js +22 -0
  82. package/src/presets/aura/image/index.js +206 -0
  83. package/src/presets/aura/index.js +181 -0
  84. package/src/presets/aura/inlinemessage/index.js +46 -0
  85. package/src/presets/aura/inplace/index.js +27 -0
  86. package/src/presets/aura/inputgroup/index.js +5 -0
  87. package/src/presets/aura/inputgroupaddon/index.js +28 -0
  88. package/src/presets/aura/inputmask/index.js +47 -0
  89. package/src/presets/aura/inputnumber/index.js +293 -0
  90. package/src/presets/aura/inputotp/index.js +69 -0
  91. package/src/presets/aura/inputswitch/index.js +94 -0
  92. package/src/presets/aura/inputtext/index.js +63 -0
  93. package/src/presets/aura/knob/index.js +47 -0
  94. package/src/presets/aura/listbox/index.js +158 -0
  95. package/src/presets/aura/megamenu/index.js +206 -0
  96. package/src/presets/aura/menu/index.js +122 -0
  97. package/src/presets/aura/menubar/index.js +184 -0
  98. package/src/presets/aura/message/index.js +112 -0
  99. package/src/presets/aura/metergroup/index.js +110 -0
  100. package/src/presets/aura/multiselect/index.js +579 -0
  101. package/src/presets/aura/orderlist/index.js +281 -0
  102. package/src/presets/aura/organizationchart/index.js +142 -0
  103. package/src/presets/aura/overlaypanel/index.js +34 -0
  104. package/src/presets/aura/paginator/index.js +566 -0
  105. package/src/presets/aura/panel/index.js +102 -0
  106. package/src/presets/aura/panelmenu/index.js +130 -0
  107. package/src/presets/aura/password/index.js +143 -0
  108. package/src/presets/aura/picklist/index.js +718 -0
  109. package/src/presets/aura/progressbar/index.js +64 -0
  110. package/src/presets/aura/progressspinner/index.js +51 -0
  111. package/src/presets/aura/radiobutton/index.js +121 -0
  112. package/src/presets/aura/rating/index.js +95 -0
  113. package/src/presets/aura/ripple/index.js +6 -0
  114. package/src/presets/aura/scrollpanel/index.js +77 -0
  115. package/src/presets/aura/scrolltop/index.js +45 -0
  116. package/src/presets/aura/selectbutton/index.js +66 -0
  117. package/src/presets/aura/sidebar/index.js +160 -0
  118. package/src/presets/aura/skeleton/index.js +19 -0
  119. package/src/presets/aura/slider/index.js +144 -0
  120. package/src/presets/aura/speeddial/index.js +579 -0
  121. package/src/presets/aura/splitbutton/index.js +1185 -0
  122. package/src/presets/aura/splitter/index.js +71 -0
  123. package/src/presets/aura/stepper/index.js +183 -0
  124. package/src/presets/aura/steps/index.js +117 -0
  125. package/src/presets/aura/tabmenu/index.js +75 -0
  126. package/src/presets/aura/tabview/index.js +162 -0
  127. package/src/presets/aura/tag/index.js +44 -0
  128. package/src/presets/aura/terminal/index.js +60 -0
  129. package/src/presets/aura/textarea/index.js +49 -0
  130. package/src/presets/aura/tieredmenu/index.js +125 -0
  131. package/src/presets/aura/timeline/index.js +114 -0
  132. package/src/presets/aura/toast/index.js +151 -0
  133. package/src/presets/aura/togglebutton/index.js +98 -0
  134. package/src/presets/aura/toolbar/index.js +28 -0
  135. package/src/presets/aura/tooltip/index.js +73 -0
  136. package/src/presets/aura/tree/index.js +294 -0
  137. package/src/presets/aura/treeselect/index.js +404 -0
  138. package/src/presets/aura/treetable/index.js +513 -0
  139. package/src/presets/aura/tristatecheckbox/index.js +121 -0
@@ -0,0 +1,1290 @@
1
+ export default {
2
+ root: ({ props }) => ({
3
+ class: [
4
+ 'relative',
5
+
6
+ // Flex & Alignment
7
+ { 'flex flex-col': props.scrollable && props.scrollHeight === 'flex' },
8
+
9
+ // Size
10
+ { 'h-full': props.scrollable && props.scrollHeight === 'flex' },
11
+ ],
12
+ }),
13
+ loadingoverlay: {
14
+ class: [
15
+ // Position
16
+ 'absolute',
17
+ 'top-0 left-0',
18
+ 'z-20',
19
+
20
+ // Flex & Alignment
21
+ 'flex items-center justify-center',
22
+
23
+ // Size
24
+ 'w-full h-full',
25
+
26
+ // Color
27
+ 'bg-surface-100/40 dark:bg-surface-900/40',
28
+
29
+ // Transition
30
+ 'transition duration-200',
31
+ ],
32
+ },
33
+ loadingicon: {
34
+ class: 'w-8 h-8 animate-spin',
35
+ },
36
+ wrapper: ({ props }) => ({
37
+ class: [
38
+ {
39
+ relative: props.scrollable,
40
+ 'flex flex-col grow': props.scrollable && props.scrollHeight === 'flex',
41
+ },
42
+
43
+ // Size
44
+ { 'h-full': props.scrollable && props.scrollHeight === 'flex' },
45
+ ],
46
+ }),
47
+ header: ({ props }) => ({
48
+ class: [
49
+ 'font-bold',
50
+
51
+ // Shape
52
+ props.showGridlines
53
+ ? 'border-x border-t border-b-0'
54
+ : 'border-y border-x-0',
55
+
56
+ // Spacing
57
+ 'p-4',
58
+
59
+ // Color
60
+ 'bg-surface-0 dark:bg-surface-900',
61
+ 'border-surface-200 dark:border-surface-700',
62
+ 'text-surface-700 dark:text-white/80',
63
+ ],
64
+ }),
65
+ table: {
66
+ class: 'w-full border-spacing-0 border-separate',
67
+ },
68
+ thead: ({ context }) => ({
69
+ class: [
70
+ {
71
+ 'bg-surface-0 dark:bg-surface-900 top-0 z-40 sticky':
72
+ context.scrollable,
73
+ },
74
+ ],
75
+ }),
76
+ tbody: ({ instance, context }) => ({
77
+ class: [
78
+ {
79
+ 'sticky z-20': instance.frozenRow && context.scrollable,
80
+ },
81
+ 'bg-surface-0 dark:bg-surface-900',
82
+ ],
83
+ }),
84
+ tfoot: ({ context }) => ({
85
+ class: [
86
+ {
87
+ 'bg-surface-0 bottom-0 z-0': context.scrollable,
88
+ },
89
+ ],
90
+ }),
91
+ footer: {
92
+ class: [
93
+ 'font-bold',
94
+
95
+ // Shape
96
+ 'border-t-0 border-b border-x-0',
97
+
98
+ // Spacing
99
+ 'p-4',
100
+
101
+ // Color
102
+ 'bg-surface-0 dark:bg-surface-900',
103
+ 'border-surface-200 dark:border-surface-700',
104
+ 'text-surface-700 dark:text-white/80',
105
+ ],
106
+ },
107
+ column: {
108
+ headercell: ({ context, props }) => ({
109
+ class: [
110
+ 'font-semibold',
111
+ 'leading-[normal]',
112
+
113
+ // Position
114
+ { 'sticky z-20 border-b': props.frozen || props.frozen === '' },
115
+
116
+ { relative: context.resizable },
117
+
118
+ // Alignment
119
+ 'text-left',
120
+
121
+ // Shape
122
+ { 'first:border-l border-y border-r': context?.showGridlines },
123
+ 'border-0 border-b border-solid',
124
+
125
+ // Spacing
126
+ context?.size === 'small'
127
+ ? 'py-[0.375rem] px-2'
128
+ : context?.size === 'large'
129
+ ? 'py-[0.9375rem] px-5'
130
+ : 'py-3 px-4',
131
+
132
+ // Color
133
+ (props.sortable === '' || props.sortable) && context.sorted
134
+ ? 'bg-primary-highlight text-primary-highlight-inverse'
135
+ : 'bg-surface-0 text-surface-700 dark:text-white/80 dark:bg-surface-900',
136
+ 'border-surface-200 dark:border-surface-700 ',
137
+
138
+ // States
139
+ {
140
+ 'hover:bg-surface-100 dark:hover:bg-surface-800/50':
141
+ (props.sortable === '' || props.sortable) && !context?.sorted,
142
+ },
143
+ 'focus-visible:outline-none focus-visible:outline-offset-0 focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400',
144
+
145
+ // Transition
146
+ { 'transition duration-200': props.sortable === '' || props.sortable },
147
+
148
+ // Misc
149
+ { 'cursor-pointer': props.sortable === '' || props.sortable },
150
+ {
151
+ 'overflow-hidden space-nowrap border-y bg-clip-padding':
152
+ context.resizable, // Resizable
153
+ },
154
+ ],
155
+ }),
156
+ headercontent: {
157
+ class: 'flex items-center',
158
+ },
159
+ sort: ({ context }) => ({
160
+ class: [
161
+ context.sorted ? 'text-primary-500' : 'text-surface-700',
162
+ context.sorted ? 'dark:text-primary-400' : 'dark:text-white/80',
163
+ ],
164
+ }),
165
+ bodycell: ({ props, context, state, parent }) => ({
166
+ class: [
167
+ // Font
168
+ 'leading-[normal]',
169
+
170
+ //Position
171
+ { 'sticky box-border border-b': parent.instance.frozenRow },
172
+ {
173
+ 'sticky box-border border-b z-20':
174
+ props.frozen || props.frozen === '',
175
+ },
176
+
177
+ // Alignment
178
+ 'text-left',
179
+
180
+ // Shape
181
+ 'border-0 border-b border-solid',
182
+ { 'first:border-l border-r border-b': context?.showGridlines },
183
+ {
184
+ 'bg-surface-0 dark:bg-surface-900':
185
+ parent.instance.frozenRow || props.frozen || props.frozen === '',
186
+ },
187
+
188
+ // Spacing
189
+ {
190
+ 'py-[0.375rem] px-2':
191
+ context?.size === 'small' && !state['d_editing'],
192
+ },
193
+ {
194
+ 'py-[0.9375rem] px-5':
195
+ context?.size === 'large' && !state['d_editing'],
196
+ },
197
+ {
198
+ 'py-3 px-4':
199
+ context?.size !== 'large' &&
200
+ context?.size !== 'small' &&
201
+ !state['d_editing'],
202
+ },
203
+ { 'py-[0.6rem] px-2': state['d_editing'] },
204
+
205
+ // Color
206
+ 'border-surface-200 dark:border-surface-700',
207
+ ],
208
+ }),
209
+ footercell: ({ context }) => ({
210
+ class: [
211
+ // Font
212
+ 'font-bold',
213
+
214
+ // Alignment
215
+ 'text-left',
216
+
217
+ // Shape
218
+ 'border-0 border-b border-solid',
219
+ { 'border-x border-y': context?.showGridlines },
220
+
221
+ // Spacing
222
+ context?.size === 'small'
223
+ ? 'p-2'
224
+ : context?.size === 'large'
225
+ ? 'p-5'
226
+ : 'p-4',
227
+
228
+ // Color
229
+ 'border-surface-200 dark:border-surface-700',
230
+ 'text-surface-700 dark:text-white/80',
231
+ 'bg-surface-0 dark:bg-surface-900',
232
+ ],
233
+ }),
234
+ sorticon: ({ context }) => ({
235
+ class: [
236
+ 'ml-2',
237
+ context.sorted
238
+ ? 'text-primary-highlight-inverse'
239
+ : 'text-surface-700 dark:text-white/70',
240
+ ],
241
+ }),
242
+ sortbadge: {
243
+ class: [
244
+ // Flex & Alignment
245
+ 'flex items-center justify-center align-middle',
246
+
247
+ // Shape
248
+ 'rounded-full',
249
+
250
+ // Size
251
+ 'w-[1.143rem] leading-[1.143rem]',
252
+
253
+ // Spacing
254
+ 'ml-2',
255
+
256
+ // Color
257
+ 'text-primary-highlight-inverse bg-primary-highlight',
258
+ ],
259
+ },
260
+ columnfilter: {
261
+ class: 'inline-flex items-center ml-auto font-normal',
262
+ },
263
+ filteroverlay: {
264
+ class: [
265
+ // Position
266
+ 'absolute top-0 left-0',
267
+
268
+ // Shape
269
+ 'border-0 dark:border',
270
+ 'rounded-md',
271
+ 'shadow-md',
272
+
273
+ // Size
274
+ 'min-w-[12.5rem]',
275
+
276
+ // Color
277
+ 'bg-surface-0 dark:bg-surface-900',
278
+ 'text-surface-800 dark:text-white/80',
279
+ 'dark:border-surface-700',
280
+ ],
281
+ },
282
+ filtermatchmodedropdown: {
283
+ root: ({ state }) => ({
284
+ class: [
285
+ // Display and Position
286
+ 'flex',
287
+ 'relative',
288
+
289
+ // Spacing
290
+ 'mb-2 last:mb-0',
291
+
292
+ // Shape
293
+ 'w-full',
294
+ 'rounded-md',
295
+
296
+ // Color and Background
297
+ 'bg-surface-0 dark:bg-surface-900',
298
+ 'border border-surface-300 dark:border-surface-700',
299
+ 'text-surface-800 dark:text-white/80',
300
+ 'placeholder:text-surface-400 dark:placeholder:text-surface-500',
301
+
302
+ // Transitions
303
+ 'transition-all',
304
+ 'duration-200',
305
+
306
+ // States
307
+ 'hover:border-primary',
308
+ {
309
+ 'outline-none outline-offset-0 ring-1 ring-primary-500 dark:ring-primary-400':
310
+ state.focused,
311
+ },
312
+
313
+ // Misc
314
+ 'cursor-pointer',
315
+ 'select-none',
316
+ ],
317
+ }),
318
+ },
319
+ filterrowitems: {
320
+ class: 'm-0 p-0 py-3 list-none',
321
+ },
322
+ filterrowitem: ({ context }) => ({
323
+ class: [
324
+ // Font
325
+ 'font-normal',
326
+ 'leading-none',
327
+
328
+ // Position
329
+ 'relative',
330
+
331
+ // Shape
332
+ 'border-0',
333
+ 'rounded-none',
334
+
335
+ // Spacing
336
+ 'm-0',
337
+ 'py-3 px-5',
338
+
339
+ // Color
340
+ { 'text-surface-700 dark:text-white/80': !context?.highlighted },
341
+ {
342
+ 'bg-surface-0 dark:bg-surface-900 text-surface-700 dark:text-white/80':
343
+ !context?.highlighted,
344
+ },
345
+ {
346
+ 'bg-primary-highlight text-primary-highlight-inverse':
347
+ context?.highlighted,
348
+ },
349
+
350
+ //States
351
+ {
352
+ 'hover:bg-surface-100 dark:hover:bg-[rgba(255,255,255,0.03)]':
353
+ !context?.highlighted,
354
+ },
355
+ {
356
+ 'hover:text-surface-700 hover:bg-surface-100 dark:hover:text-white dark:hover:bg-[rgba(255,255,255,0.03)]':
357
+ !context?.highlighted,
358
+ },
359
+ 'focus-visible:outline-none focus-visible:outline-offset-0 focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400',
360
+
361
+ // Transitions
362
+ 'transition-shadow',
363
+ 'duration-200',
364
+
365
+ // Misc
366
+ 'cursor-pointer',
367
+ 'overflow-hidden',
368
+ 'whitespace-nowrap',
369
+ ],
370
+ }),
371
+ filteroperator: {
372
+ class: [
373
+ // Shape
374
+ 'rounded-t-md',
375
+
376
+ // Color
377
+ 'text-surface-700 dark:text-white/80',
378
+ 'bg-surface-0 dark:bg-surface-700',
379
+ ],
380
+ },
381
+ filteroperatordropdown: {
382
+ root: ({ state }) => ({
383
+ class: [
384
+ // Display and Position
385
+ 'inline-flex',
386
+ 'relative',
387
+
388
+ // Shape
389
+ 'w-full',
390
+ 'rounded-md',
391
+
392
+ // Color and Background
393
+ 'bg-surface-0 dark:bg-surface-950',
394
+ 'border border-surface-300 dark:border-surface-700',
395
+
396
+ // Transitions
397
+ 'transition-all',
398
+ 'duration-200',
399
+
400
+ // States
401
+ 'hover:border-surface-400 dark:hover:border-surface-600',
402
+ {
403
+ 'outline-none outline-offset-0 ring-1 ring-primary-500 dark:ring-primary-400 z-10':
404
+ state.focused,
405
+ },
406
+
407
+ // Misc
408
+ 'cursor-pointer',
409
+ 'select-none',
410
+ ],
411
+ }),
412
+ input: ({ props }) => ({
413
+ class: [
414
+ //Font
415
+ 'leading-[normal]',
416
+
417
+ // Display
418
+ 'block',
419
+ 'flex-auto',
420
+
421
+ // Color and Background
422
+ 'bg-transparent',
423
+ 'border-0',
424
+ {
425
+ 'text-surface-800 dark:text-white/80': props.modelValue,
426
+ 'text-surface-400 dark:text-surface-500': !props.modelValue,
427
+ },
428
+ 'placeholder:text-surface-400 dark:placeholder:text-surface-500',
429
+
430
+ // Sizing and Spacing
431
+ 'w-[1%]',
432
+ 'py-2 px-3',
433
+
434
+ //Shape
435
+ 'rounded-none',
436
+
437
+ // Transitions
438
+ 'transition',
439
+ 'duration-200',
440
+
441
+ // States
442
+ 'focus:outline-none focus:shadow-none',
443
+
444
+ // Misc
445
+ 'relative',
446
+ 'cursor-pointer',
447
+ 'overflow-hidden overflow-ellipsis',
448
+ 'whitespace-nowrap',
449
+ 'appearance-none',
450
+ ],
451
+ }),
452
+ trigger: {
453
+ class: [
454
+ // Flexbox
455
+ 'flex items-center justify-center',
456
+ 'shrink-0',
457
+
458
+ // Color and Background
459
+ 'bg-transparent',
460
+ 'text-surface-500',
461
+
462
+ // Size
463
+ 'w-12',
464
+
465
+ // Shape
466
+ 'rounded-tr-md',
467
+ 'rounded-br-md',
468
+ ],
469
+ },
470
+ panel: {
471
+ class: [
472
+ // Colors
473
+ 'bg-surface-0 dark:bg-surface-900',
474
+ 'text-surface-700 dark:text-white/80',
475
+
476
+ // Shape
477
+ 'border border-surface-300 dark:border-surface-700',
478
+ 'rounded-md',
479
+ 'shadow-md',
480
+ ],
481
+ },
482
+ item: ({ context }) => ({
483
+ class: [
484
+ // Font
485
+ 'font-normal',
486
+ 'leading-none',
487
+
488
+ // Position
489
+ 'relative',
490
+
491
+ // Shape
492
+ 'border-0',
493
+ 'rounded-none',
494
+
495
+ // Spacing
496
+ 'm-0 px-3 py-2',
497
+ 'first:mt-0 mt-[2px]',
498
+
499
+ // Color
500
+ {
501
+ 'text-surface-700 dark:text-white/80':
502
+ !context.focused && !context.selected,
503
+ 'bg-surface-200 dark:bg-surface-600/60':
504
+ context.focused && !context.selected,
505
+ 'text-surface-700 dark:text-white/80':
506
+ context.focused && !context.selected,
507
+
508
+ 'text-primary-highlight-inverse': context.selected,
509
+ 'bg-primary-highlight': context.selected,
510
+ },
511
+
512
+ //States
513
+ {
514
+ 'hover:bg-surface-100 dark:hover:bg-[rgba(255,255,255,0.03)]':
515
+ !context.focused && !context.selected,
516
+ },
517
+ { 'hover:bg-primary-highlight-hover': context.selected },
518
+ {
519
+ 'hover:text-surface-700 hover:bg-surface-100 dark:hover:text-white dark:hover:bg-[rgba(255,255,255,0.03)]':
520
+ context.focused && !context.selected,
521
+ },
522
+
523
+ // Transitions
524
+ 'transition-shadow',
525
+ 'duration-200',
526
+
527
+ // Misc
528
+ 'cursor-pointer',
529
+ 'overflow-hidden',
530
+ 'whitespace-nowrap',
531
+ ],
532
+ }),
533
+ },
534
+ filteraddrulebutton: {
535
+ root: {
536
+ class: [
537
+ 'relative',
538
+
539
+ // Alignments
540
+ 'items-center inline-flex text-center align-bottom justify-center',
541
+
542
+ // Sizes & Spacing
543
+ 'text-sm py-[0.4375rem] px-[0.875rem] w-full',
544
+
545
+ // Shape
546
+ 'rounded-md',
547
+
548
+ 'bg-transparent border-transparent',
549
+ 'text-primary',
550
+ 'hover:bg-primary-300/20',
551
+
552
+ // Transitions
553
+ 'transition duration-200 ease-in-out',
554
+
555
+ // Misc
556
+ 'cursor-pointer overflow-hidden select-none',
557
+ ],
558
+ },
559
+ label: {
560
+ class: 'flex-auto grow-0',
561
+ },
562
+ icon: {
563
+ class: 'mr-2',
564
+ },
565
+ },
566
+ filterremovebutton: {
567
+ root: {
568
+ class: [
569
+ 'relative',
570
+
571
+ // Alignments
572
+ 'items-center inline-flex text-center align-bottom justify-center',
573
+
574
+ // Sizes & Spacing
575
+ 'text-sm py-[0.4375rem] px-[0.875rem] w-full mt-2',
576
+
577
+ // Shape
578
+ 'rounded-md',
579
+
580
+ 'bg-transparent border-transparent',
581
+ 'text-red-500 dark:text-red-400',
582
+ 'hover:bg-red-300/20',
583
+
584
+ // Transitions
585
+ 'transition duration-200 ease-in-out',
586
+
587
+ // Misc
588
+ 'cursor-pointer overflow-hidden select-none',
589
+ ],
590
+ },
591
+ label: {
592
+ class: 'flex-auto grow-0',
593
+ },
594
+ icon: {
595
+ class: 'mr-2',
596
+ },
597
+ },
598
+ filterbuttonbar: {
599
+ class: [
600
+ // Flex & Alignment
601
+ 'flex items-center justify-between',
602
+
603
+ // Space
604
+ 'p-0',
605
+ ],
606
+ },
607
+ filterclearbutton: {
608
+ root: {
609
+ class: [
610
+ 'relative',
611
+
612
+ // Alignments
613
+ 'items-center inline-flex text-center align-bottom justify-center',
614
+
615
+ // Sizes & Spacing
616
+ 'text-sm py-[0.4375rem] px-[0.875rem]',
617
+
618
+ // Shape
619
+ 'rounded-md',
620
+
621
+ 'text-primary-500 border border-primary',
622
+ 'hover:bg-primary-300/20',
623
+
624
+ // Transitions
625
+ 'transition duration-200 ease-in-out',
626
+
627
+ // Misc
628
+ 'cursor-pointer overflow-hidden select-none',
629
+ ],
630
+ },
631
+ },
632
+ filterapplybutton: {
633
+ root: {
634
+ class: [
635
+ 'relative',
636
+
637
+ // Alignments
638
+ 'items-center inline-flex text-center align-bottom justify-center',
639
+
640
+ // Sizes & Spacing
641
+ 'text-sm py-[0.4375rem] px-[0.875rem]',
642
+
643
+ // Shape
644
+ 'rounded-md',
645
+
646
+ 'text-primary-inverse',
647
+ 'bg-primary',
648
+ 'hover:bg-primary-hover hover:border-primary-hover',
649
+
650
+ // Transitions
651
+ 'transition duration-200 ease-in-out',
652
+
653
+ // Misc
654
+ 'cursor-pointer overflow-hidden select-none',
655
+ ],
656
+ },
657
+ },
658
+ filtermenubutton: ({ context }) => ({
659
+ class: [
660
+ 'relative',
661
+ // Flex & Alignment
662
+ 'inline-flex items-center justify-center',
663
+
664
+ // Size
665
+ 'w-8 h-8',
666
+
667
+ // Spacing
668
+ 'ml-2',
669
+
670
+ // Shape
671
+ 'rounded-full',
672
+
673
+ // Color
674
+ {
675
+ 'bg-primary-highlight text-primary-highliht-inverse': context.active,
676
+ },
677
+ 'dark:text-white/70 dark:hover:text-white/80 dark:bg-surface-900',
678
+
679
+ // States
680
+ 'hover:text-surface-700 hover:bg-surface-300/20',
681
+ 'focus:outline-none focus:outline-offset-0 focus:ring-1 focus:ring-primary-500 dark:focus:ring-primary-400',
682
+
683
+ // Transition
684
+ 'transition duration-200',
685
+
686
+ // Misc
687
+ 'cursor-pointer no-underline overflow-hidden',
688
+ ],
689
+ }),
690
+ headerfilterclearbutton: ({ context }) => ({
691
+ class: [
692
+ 'relative',
693
+
694
+ // Flex & Alignment
695
+ 'inline-flex items-center justify-center',
696
+ 'text-left',
697
+
698
+ // Shape
699
+ 'border-none',
700
+
701
+ // Spacing
702
+ 'm-0 p-0 ml-2',
703
+
704
+ // Color
705
+ 'bg-transparent',
706
+
707
+ // Misc
708
+ 'cursor-pointer no-underline overflow-hidden select-none',
709
+ {
710
+ invisible: !context.hidden,
711
+ },
712
+ ],
713
+ }),
714
+ rowtoggler: {
715
+ class: [
716
+ 'relative',
717
+
718
+ // Flex & Alignment
719
+ 'inline-flex items-center justify-center',
720
+ 'text-left',
721
+
722
+ // Spacing
723
+ 'm-0 p-0',
724
+
725
+ // Size
726
+ 'w-8 h-8',
727
+
728
+ // Shape
729
+ 'border-0 rounded-full',
730
+
731
+ // Color
732
+ 'text-surface-500 dark:text-white/70',
733
+ 'bg-transparent',
734
+ 'focus-visible:outline-none focus-visible:outline-offset-0',
735
+ 'focus-visible:ring-1 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400',
736
+
737
+ // Transition
738
+ 'transition duration-200',
739
+
740
+ // Misc
741
+ 'overflow-hidden',
742
+ 'cursor-pointer select-none',
743
+ ],
744
+ },
745
+ columnresizer: {
746
+ class: [
747
+ 'block',
748
+
749
+ // Position
750
+ 'absolute top-0 right-0',
751
+
752
+ // Sizing
753
+ 'w-2 h-full',
754
+
755
+ // Spacing
756
+ 'm-0 p-0',
757
+
758
+ // Color
759
+ 'border border-transparent',
760
+
761
+ // Misc
762
+ 'cursor-col-resize',
763
+ ],
764
+ },
765
+ rowreordericon: {
766
+ class: 'cursor-move',
767
+ },
768
+ roweditorinitbutton: {
769
+ class: [
770
+ 'relative',
771
+
772
+ // Flex & Alignment
773
+ 'inline-flex items-center justify-center',
774
+ 'text-left',
775
+
776
+ // Size
777
+ 'w-7 h-7',
778
+
779
+ // Shape
780
+ 'border-0 rounded-full',
781
+
782
+ // Color
783
+ 'text-surface-700 dark:text-white/70',
784
+ 'border-transparent',
785
+
786
+ // States
787
+ 'focus:outline-none focus:outline-offset-0 focus:ring-1 focus:ring-primary-500 dark:focus:ring-primary-400',
788
+ 'hover:text-surface-700 hover:bg-surface-50 dark:hover:bg-surface-800/50',
789
+
790
+ // Transition
791
+ 'transition duration-200',
792
+
793
+ // Misc
794
+ 'overflow-hidden',
795
+ 'cursor-pointer select-none',
796
+ ],
797
+ },
798
+ roweditorsavebutton: {
799
+ class: [
800
+ 'relative',
801
+
802
+ // Flex & Alignment
803
+ 'inline-flex items-center justify-center',
804
+ 'text-left',
805
+
806
+ // Size
807
+ 'w-8 h-8',
808
+
809
+ // Shape
810
+ 'border-0 rounded-full',
811
+
812
+ // Color
813
+ 'text-surface-700 dark:text-white/70',
814
+ 'border-transparent',
815
+
816
+ // States
817
+ 'focus:outline-none focus:outline-offset-0 focus:ring-1 focus:ring-primary-500 dark:focus:ring-primary-400',
818
+ 'hover:text-surface-700 hover:bg-surface-300/20',
819
+
820
+ // Transition
821
+ 'transition duration-200',
822
+
823
+ // Misc
824
+ 'overflow-hidden',
825
+ 'cursor-pointer select-none',
826
+ ],
827
+ },
828
+ roweditorcancelbutton: {
829
+ class: [
830
+ 'relative',
831
+
832
+ // Flex & Alignment
833
+ 'inline-flex items-center justify-center',
834
+ 'text-left',
835
+
836
+ // Size
837
+ 'w-8 h-8',
838
+
839
+ // Shape
840
+ 'border-0 rounded-full',
841
+
842
+ // Color
843
+ 'text-surface-700 dark:text-white/70',
844
+ 'border-transparent',
845
+
846
+ // States
847
+ 'focus:outline-none focus:outline-offset-0 focus:ring-1 focus:ring-primary-500 dark:focus:ring-primary-400',
848
+ 'hover:text-surface-700 hover:bg-surface-300/20',
849
+
850
+ // Transition
851
+ 'transition duration-200',
852
+
853
+ // Misc
854
+ 'overflow-hidden',
855
+ 'cursor-pointer select-none',
856
+ ],
857
+ },
858
+ rowRadiobutton: {
859
+ root: {
860
+ class: [
861
+ 'relative',
862
+
863
+ // Flexbox & Alignment
864
+ 'inline-flex',
865
+ 'align-bottom',
866
+
867
+ // Size
868
+ 'w-5 h-5',
869
+
870
+ // Misc
871
+ 'cursor-pointer',
872
+ 'select-none',
873
+ ],
874
+ },
875
+ box: ({ props }) => ({
876
+ class: [
877
+ // Flexbox
878
+ 'flex justify-center items-center',
879
+
880
+ // Size
881
+ 'w-5 h-5',
882
+
883
+ // Shape
884
+ 'border',
885
+ 'rounded-full',
886
+
887
+ // Transition
888
+ 'transition duration-200 ease-in-out',
889
+
890
+ // Colors
891
+ { 'bg-surface-0 dark:bg-surface-950': !props.disabled },
892
+
893
+ {
894
+ 'text-surface-700 dark:text-white/80':
895
+ props.value !== props.modelValue && props.value !== undefined,
896
+ 'border-surface-300 dark:border-surface-700':
897
+ props.value !== props.modelValue &&
898
+ props.value !== undefined &&
899
+ !props.invalid,
900
+ 'border-primary':
901
+ props.value == props.modelValue &&
902
+ props.value !== undefined &&
903
+ !props.disabled,
904
+ },
905
+ {
906
+ 'peer-hover:border-surface-400 dark:peer-hover:border-surface-400':
907
+ !props.disabled &&
908
+ !props.invalid &&
909
+ props.value !== props.modelValue,
910
+ 'peer-hover:border-primary-hover':
911
+ !props.disabled &&
912
+ props.value == props.modelValue &&
913
+ props.value !== undefined,
914
+ 'peer-hover:[&>*:first-child]:bg-primary-600 dark:peer-hover:[&>*:first-child]:bg-primary-300':
915
+ !props.disabled &&
916
+ props.value == props.modelValue &&
917
+ props.value !== undefined,
918
+ 'peer-focus-visible:ring-1 peer-focus-visible:ring-primary-500 dark:peer-focus-visible:ring-primary-400':
919
+ !props.disabled,
920
+ 'bg-surface-200 [&>*:first-child]:bg-surface-600 dark:bg-surface-700 dark:[&>*:first-child]:bg-surface-400 border-surface-300 dark:border-surface-700 select-none pointer-events-none cursor-default':
921
+ props.disabled,
922
+ },
923
+ ],
924
+ }),
925
+ input: {
926
+ class: [
927
+ 'peer',
928
+
929
+ // Size
930
+ 'w-full ',
931
+ 'h-full',
932
+
933
+ // Position
934
+ 'absolute',
935
+ 'top-0 left-0',
936
+ 'z-10',
937
+
938
+ // Spacing
939
+ 'p-0',
940
+ 'm-0',
941
+
942
+ // Shape
943
+ 'opacity-0',
944
+ 'rounded-md',
945
+ 'outline-none',
946
+ 'border-1 border-surface-200 dark:border-surface-700',
947
+
948
+ // Misc
949
+ 'appearance-none',
950
+ 'cursor-pointer',
951
+ ],
952
+ },
953
+ icon: ({ props }) => ({
954
+ class: [
955
+ 'block',
956
+
957
+ // Shape
958
+ 'rounded-full',
959
+
960
+ // Size
961
+ 'w-3 h-3',
962
+
963
+ // Conditions
964
+ {
965
+ 'bg-surface-0 dark:bg-surface-900 backface-hidden invisible scale-[0.1]':
966
+ !props.modelValue,
967
+ 'bg-primary transform visible translate-z-0 scale-[1.1]':
968
+ props.modelValue,
969
+ },
970
+
971
+ // Transition
972
+ 'transition duration-200',
973
+ ],
974
+ }),
975
+ },
976
+ headercheckbox: {
977
+ root: {
978
+ class: [
979
+ 'relative',
980
+
981
+ // Alignment
982
+ 'inline-flex',
983
+ 'align-bottom',
984
+
985
+ // Size
986
+ 'w-5',
987
+ 'h-5',
988
+
989
+ // Misc
990
+ 'cursor-pointer',
991
+ 'select-none',
992
+ ],
993
+ },
994
+ box: ({ props, context }) => ({
995
+ class: [
996
+ // Alignment
997
+ 'flex',
998
+ 'items-center',
999
+ 'justify-center',
1000
+
1001
+ // Size
1002
+ 'w-5',
1003
+ 'h-5',
1004
+
1005
+ // Shape
1006
+ 'rounded',
1007
+ 'border',
1008
+
1009
+ // Colors
1010
+ {
1011
+ 'border-surface-300 dark:border-surface-700':
1012
+ !context.checked && !props.invalid,
1013
+ 'bg-surface-0 dark:bg-surface-950':
1014
+ !context.checked && !props.invalid && !props.disabled,
1015
+ 'border-primary bg-primary': context.checked,
1016
+ },
1017
+
1018
+ // Invalid State
1019
+ 'invalid:focus:ring-red-200',
1020
+ 'invalid:hover:border-red-500',
1021
+ { 'border-red-500 dark:border-red-400': props.invalid },
1022
+
1023
+ // States
1024
+ {
1025
+ 'peer-hover:border-surface-400 dark:peer-hover:border-surface-600':
1026
+ !props.disabled && !context.checked && !props.invalid,
1027
+ 'peer-hover:bg-primary-hover peer-hover:border-primary-hover':
1028
+ !props.disabled && context.checked,
1029
+ 'peer-focus-visible:z-10 peer-focus-visible:outline-none peer-focus-visible:outline-offset-0 peer-focus-visible:ring-1 peer-focus-visible:ring-primary-500 dark:peer-focus-visible:ring-primary-400':
1030
+ !props.disabled,
1031
+ 'bg-surface-200 dark:bg-surface-700 select-none pointer-events-none cursor-default':
1032
+ props.disabled,
1033
+ },
1034
+
1035
+ // Transitions
1036
+ 'transition-colors',
1037
+ 'duration-200',
1038
+ ],
1039
+ }),
1040
+ input: {
1041
+ class: [
1042
+ 'peer',
1043
+
1044
+ // Size
1045
+ 'w-full ',
1046
+ 'h-full',
1047
+
1048
+ // Position
1049
+ 'absolute',
1050
+ 'top-0 left-0',
1051
+ 'z-10',
1052
+
1053
+ // Spacing
1054
+ 'p-0',
1055
+ 'm-0',
1056
+
1057
+ // Shape
1058
+ 'opacity-0',
1059
+ 'rounded',
1060
+ 'outline-none',
1061
+ 'border border-surface-300 dark:border-surface-700',
1062
+
1063
+ // Misc
1064
+ 'appearance-none',
1065
+ 'cursor-pointer',
1066
+ ],
1067
+ },
1068
+ icon: {
1069
+ class: [
1070
+ // Size
1071
+ 'w-[0.875rem]',
1072
+ 'h-[0.875rem]',
1073
+
1074
+ // Colors
1075
+ 'text-white dark:text-surface-950',
1076
+
1077
+ // Transitions
1078
+ 'transition-all',
1079
+ 'duration-200',
1080
+ ],
1081
+ },
1082
+ },
1083
+ rowCheckbox: {
1084
+ root: {
1085
+ class: [
1086
+ 'relative',
1087
+
1088
+ // Alignment
1089
+ 'inline-flex',
1090
+ 'align-bottom',
1091
+
1092
+ // Size
1093
+ 'w-5',
1094
+ 'h-5',
1095
+
1096
+ // Misc
1097
+ 'cursor-pointer',
1098
+ 'select-none',
1099
+ ],
1100
+ },
1101
+ box: ({ props, context }) => ({
1102
+ class: [
1103
+ // Alignment
1104
+ 'flex',
1105
+ 'items-center',
1106
+ 'justify-center',
1107
+
1108
+ // Size
1109
+ 'w-5',
1110
+ 'h-5',
1111
+
1112
+ // Shape
1113
+ 'rounded',
1114
+ 'border',
1115
+
1116
+ // Colors
1117
+ {
1118
+ 'border-surface-300 dark:border-surface-700':
1119
+ !context.checked && !props.invalid,
1120
+ 'bg-surface-0 dark:bg-surface-950':
1121
+ !context.checked && !props.invalid && !props.disabled,
1122
+ 'border-primary bg-primary': context.checked,
1123
+ },
1124
+
1125
+ // Invalid State
1126
+ 'invalid:focus:ring-red-200',
1127
+ 'invalid:hover:border-red-500',
1128
+ { 'border-red-500 dark:border-red-400': props.invalid },
1129
+
1130
+ // States
1131
+ {
1132
+ 'peer-hover:border-surface-400 dark:peer-hover:border-surface-600':
1133
+ !props.disabled && !context.checked && !props.invalid,
1134
+ 'peer-hover:bg-primary-hover peer-hover:border-primary-hover':
1135
+ !props.disabled && context.checked,
1136
+ 'peer-focus-visible:z-10 peer-focus-visible:outline-none peer-focus-visible:outline-offset-0 peer-focus-visible:ring-1 peer-focus-visible:ring-primary-500 dark:peer-focus-visible:ring-primary-400':
1137
+ !props.disabled,
1138
+ 'bg-surface-200 dark:bg-surface-700 select-none pointer-events-none cursor-default':
1139
+ props.disabled,
1140
+ },
1141
+
1142
+ // Transitions
1143
+ 'transition-colors',
1144
+ 'duration-200',
1145
+ ],
1146
+ }),
1147
+ input: {
1148
+ class: [
1149
+ 'peer',
1150
+
1151
+ // Size
1152
+ 'w-full ',
1153
+ 'h-full',
1154
+
1155
+ // Position
1156
+ 'absolute',
1157
+ 'top-0 left-0',
1158
+ 'z-10',
1159
+
1160
+ // Spacing
1161
+ 'p-0',
1162
+ 'm-0',
1163
+
1164
+ // Shape
1165
+ 'opacity-0',
1166
+ 'rounded',
1167
+ 'outline-none',
1168
+ 'border border-surface-300 dark:border-surface-700',
1169
+
1170
+ // Misc
1171
+ 'appearance-none',
1172
+ 'cursor-pointer',
1173
+ ],
1174
+ },
1175
+ icon: {
1176
+ class: [
1177
+ // Size
1178
+ 'w-[0.875rem]',
1179
+ 'h-[0.875rem]',
1180
+
1181
+ // Colors
1182
+ 'text-white dark:text-surface-950',
1183
+
1184
+ // Transitions
1185
+ 'transition-all',
1186
+ 'duration-200',
1187
+ ],
1188
+ },
1189
+ },
1190
+ transition: {
1191
+ class: 'p-3 flex flex-col gap-2',
1192
+ enterFromClass: 'opacity-0 scale-y-[0.8]',
1193
+ enterActiveClass:
1194
+ 'transition-[transform,opacity] duration-[120ms] ease-[cubic-bezier(0,0,0.2,1)]',
1195
+ leaveActiveClass: 'transition-opacity duration-100 ease-linear',
1196
+ leaveToClass: 'opacity-0',
1197
+ },
1198
+ },
1199
+ bodyrow: ({ context, props }) => ({
1200
+ class: [
1201
+ // Color
1202
+ 'dark:text-white/80',
1203
+ {
1204
+ 'bg-primary-highlight text-primary-highlight-inverse': context.selected,
1205
+ },
1206
+ {
1207
+ 'bg-surface-0 text-surface-600 dark:bg-surface-900': !context.selected,
1208
+ },
1209
+ { 'font-bold bg-surface-0 dark:bg-surface-900 z-20': props.frozenRow },
1210
+ {
1211
+ 'odd:bg-surface-0 odd:text-surface-600 dark:odd:bg-surface-900 even:bg-surface-50 even:text-surface-600 dark:even:bg-surface-800/50':
1212
+ context.stripedRows,
1213
+ },
1214
+
1215
+ // State
1216
+ {
1217
+ 'focus:outline-none focus:outline-offset-0 focus:ring-1 focus:ring-primary-500 ring-inset dark:focus:ring-primary-400':
1218
+ context.selectable,
1219
+ },
1220
+ {
1221
+ 'hover:bg-surface-300/20 dark:hover:bg-surface-800/50 hover:text-surface-600':
1222
+ props.selectionMode && !context.selected,
1223
+ },
1224
+
1225
+ // Transition
1226
+ {
1227
+ 'transition duration-200':
1228
+ (props.selectionMode && !context.selected) || props.rowHover,
1229
+ },
1230
+
1231
+ // Misc
1232
+ { 'cursor-pointer': props.selectionMode },
1233
+ ],
1234
+ }),
1235
+ rowexpansion: {
1236
+ class:
1237
+ 'bg-surface-0 dark:bg-surface-900 text-surface-600 dark:text-white/80',
1238
+ },
1239
+ rowgroupheader: {
1240
+ class: [
1241
+ 'sticky z-20',
1242
+ 'bg-surface-0 text-surface-600 dark:text-white/70',
1243
+ 'dark:bg-surface-900',
1244
+ ],
1245
+ },
1246
+ rowgroupfooter: {
1247
+ class: [
1248
+ 'sticky z-20',
1249
+ 'bg-surface-0 text-surface-600 dark:text-white/70',
1250
+ 'dark:bg-surface-900',
1251
+ ],
1252
+ },
1253
+ rowgrouptoggler: {
1254
+ class: [
1255
+ 'relative',
1256
+
1257
+ // Flex & Alignment
1258
+ 'inline-flex items-center justify-center',
1259
+ 'text-left',
1260
+
1261
+ // Spacing
1262
+ 'm-0 p-0',
1263
+
1264
+ // Size
1265
+ 'w-8 h-8',
1266
+
1267
+ // Shape
1268
+ 'border-0 rounded-full',
1269
+
1270
+ // Color
1271
+ 'text-surface-500 dark:text-white/70',
1272
+ 'bg-transparent',
1273
+ 'focus-visible:outline-none focus-visible:outline-offset-0',
1274
+ 'focus-visible:ring-1 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400',
1275
+
1276
+ // Transition
1277
+ 'transition duration-200',
1278
+
1279
+ // Misc
1280
+ 'overflow-hidden',
1281
+ 'cursor-pointer select-none',
1282
+ ],
1283
+ },
1284
+ rowgrouptogglericon: {
1285
+ class: 'inline-block w-4 h-4',
1286
+ },
1287
+ resizehelper: {
1288
+ class: 'absolute hidden w-[2px] z-20 bg-primary',
1289
+ },
1290
+ }