@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,294 @@
1
+ export default {
2
+ root: {
3
+ class: [
4
+ // Space
5
+ 'p-4',
6
+
7
+ // Shape
8
+ 'rounded-md',
9
+ 'border-none',
10
+
11
+ // Color
12
+ 'bg-surface-0 dark:bg-surface-900',
13
+ 'text-surface-700 dark:text-white/80',
14
+ ],
15
+ },
16
+ wrapper: {
17
+ class: ['overflow-auto'],
18
+ },
19
+ container: {
20
+ class: [
21
+ // Spacing
22
+ 'm-0 p-0',
23
+
24
+ // Misc
25
+ 'list-none overflow-auto',
26
+ ],
27
+ },
28
+ node: {
29
+ class: [
30
+ 'p-0 my-[2px] mx-0 first:mt-0',
31
+ 'rounded-md',
32
+ 'focus:outline-none focus:outline-offset-0 focus:ring-1 focus:ring-inset focus:ring-primary-500 dark:focus:ring-primary-400 focus:z-10',
33
+ ],
34
+ },
35
+ content: ({ context, props }) => ({
36
+ class: [
37
+ // Flex and Alignment
38
+ 'flex items-center',
39
+
40
+ // Shape
41
+ 'rounded-md',
42
+
43
+ // Spacing
44
+ 'py-1 px-2',
45
+
46
+ // Colors
47
+ context.selected
48
+ ? 'bg-primary-highlight text-primary-highlight-inverse'
49
+ : 'bg-transparent text-surface-600 dark:text-white/70',
50
+
51
+ // States
52
+ {
53
+ 'hover:bg-surface-50 dark:hover:bg-[rgba(255,255,255,0.03)]':
54
+ (props.selectionMode == 'single' ||
55
+ props.selectionMode == 'multiple') &&
56
+ !context.selected,
57
+ },
58
+
59
+ // Transition
60
+ 'transition-shadow duration-200',
61
+
62
+ {
63
+ 'cursor-pointer select-none':
64
+ props.selectionMode == 'single' || props.selectionMode == 'multiple',
65
+ },
66
+ ],
67
+ }),
68
+ toggler: ({ context }) => ({
69
+ class: [
70
+ // Flex and Alignment
71
+ 'inline-flex items-center justify-center',
72
+
73
+ // Shape
74
+ 'border-0 rounded-full',
75
+
76
+ // Size
77
+ 'w-7 h-7',
78
+
79
+ // Spacing
80
+ 'mr-2',
81
+
82
+ // Colors
83
+ 'bg-transparent',
84
+ {
85
+ 'text-surface-600 dark:text-white/70': !context.selected,
86
+ 'text-primary-600 dark:text-white': context.selected,
87
+ invisible: context.leaf,
88
+ },
89
+
90
+ // States
91
+ 'hover:bg-surface-200/20 dark:hover:bg-surface-500/20',
92
+ 'focus:outline-none focus:outline-offset-0 focus:ring-1 focus:ring-primary-500 dark:focus:ring-primary-400',
93
+
94
+ // Transition
95
+ 'transition duration-200',
96
+
97
+ // Misc
98
+ 'cursor-pointer select-none',
99
+ ],
100
+ }),
101
+ nodeCheckbox: ({ props, context, instance }) => ({
102
+ root: {
103
+ class: [
104
+ 'relative',
105
+
106
+ // Alignment
107
+ 'inline-flex',
108
+ 'align-bottom',
109
+
110
+ // Size
111
+ 'w-5',
112
+ 'h-5',
113
+
114
+ // Spacing
115
+ 'mr-2',
116
+
117
+ // Misc
118
+ 'cursor-pointer',
119
+ 'select-none',
120
+ ],
121
+ },
122
+ box: {
123
+ class: [
124
+ // Alignment
125
+ 'flex',
126
+ 'items-center',
127
+ 'justify-center',
128
+
129
+ // Size
130
+ 'w-5',
131
+ 'h-5',
132
+
133
+ // Shape
134
+ 'rounded',
135
+ 'border',
136
+
137
+ // Colors
138
+ {
139
+ 'border-surface-300 dark:border-surface-700':
140
+ !context.checked && !props.invalid,
141
+ 'bg-surface-0 dark:bg-surface-950':
142
+ !context.checked && !props.invalid && !props.disabled,
143
+ 'border-primary bg-primary': context.checked,
144
+ },
145
+
146
+ // States
147
+ {
148
+ 'peer-hover:border-surface-400 dark:peer-hover:border-surface-600':
149
+ !props.disabled && !context.checked && !props.invalid,
150
+ 'peer-hover:bg-primary-hover peer-hover:border-primary-hover':
151
+ !props.disabled && context.checked,
152
+ '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':
153
+ !props.disabled,
154
+ 'bg-surface-200 dark:bg-surface-700 select-none pointer-events-none cursor-default':
155
+ props.disabled,
156
+ },
157
+
158
+ // Transitions
159
+ 'transition-colors',
160
+ 'duration-200',
161
+ ],
162
+ },
163
+ input: {
164
+ class: [
165
+ 'peer',
166
+
167
+ // Size
168
+ 'w-full ',
169
+ 'h-full',
170
+
171
+ // Position
172
+ 'absolute',
173
+ 'top-0 left-0',
174
+ 'z-10',
175
+
176
+ // Spacing
177
+ 'p-0',
178
+ 'm-0',
179
+
180
+ // Shape
181
+ 'opacity-0',
182
+ 'rounded-md',
183
+ 'outline-none',
184
+ 'border border-surface-300 dark:border-surface-700',
185
+
186
+ // Misc
187
+ 'appearance-none',
188
+ 'cursor-pointer',
189
+ ],
190
+ },
191
+ icon: {
192
+ class: [
193
+ // Font
194
+ 'text-base leading-none',
195
+
196
+ // Size
197
+ 'w-[0.875rem]',
198
+ 'h-[0.875rem]',
199
+
200
+ // Colors
201
+ {
202
+ 'text-white dark:text-surface-950': !instance.partialChecked,
203
+ 'text-surface-700 dark:text-surface-0/80': instance.partialChecked,
204
+ },
205
+
206
+ // Transitions
207
+ 'transition-all',
208
+ 'duration-200',
209
+ ],
210
+ },
211
+ }),
212
+ nodeicon: {
213
+ class: [
214
+ // Space
215
+ 'mr-2',
216
+
217
+ // Color
218
+ 'text-surface-600 dark:text-white/70',
219
+ ],
220
+ },
221
+ subgroup: {
222
+ class: ['m-0 list-none p-0 pl-4 [&:not(ul)]:pl-0 [&:not(ul)]:my-[2px]'],
223
+ },
224
+ filtercontainer: {
225
+ class: [
226
+ 'relative block',
227
+
228
+ // Space
229
+ 'mb-2',
230
+
231
+ // Size
232
+ 'w-full',
233
+ ],
234
+ },
235
+ input: ({ props }) => ({
236
+ class: [
237
+ 'relative',
238
+
239
+ // Font
240
+ 'leading-none',
241
+
242
+ // Spacing
243
+ 'm-0',
244
+ 'py-2 px-3 pr-10',
245
+
246
+ // Size
247
+ 'w-full',
248
+
249
+ // Shape
250
+ 'rounded-md',
251
+ 'border',
252
+
253
+ // Colors
254
+ 'text-surface-800 dark:text-white/80',
255
+ 'placeholder:text-surface-400 dark:placeholder:text-surface-500',
256
+ { 'bg-surface-0 dark:bg-surface-950': !props.disabled },
257
+ { 'border-surface-300 dark:border-surface-700': !props.invalid },
258
+
259
+ // Invalid State
260
+ 'invalid:focus:ring-red-200',
261
+ 'invalid:hover:border-red-500',
262
+ { 'border-red-500 dark:border-red-400': props.invalid },
263
+
264
+ // States
265
+ {
266
+ 'hover:border-surface-400 dark:hover:border-surface-600':
267
+ !props.disabled && !props.invalid,
268
+ 'focus:outline-none focus:outline-offset-0 focus:ring-1 focus:ring-primary-500 dark:focus:ring-primary-400 focus:z-10':
269
+ !props.disabled,
270
+ 'bg-surface-200 dark:bg-surface-700 select-none pointer-events-none cursor-default':
271
+ props.disabled,
272
+ },
273
+
274
+ // Transition & Misc
275
+ 'appearance-none',
276
+ 'transition-colors duration-200',
277
+ ],
278
+ }),
279
+ loadingicon: {
280
+ class: [
281
+ 'text-surface-500 dark:text-surface-0/70',
282
+ 'absolute top-[50%] right-[50%] -mt-2 -mr-2 animate-spin',
283
+ ],
284
+ },
285
+ searchicon: {
286
+ class: [
287
+ // Position
288
+ 'absolute top-1/2 -mt-2 right-3 z-20',
289
+
290
+ // Color
291
+ 'text-surface-600 dark:hover:text-white/70',
292
+ ],
293
+ },
294
+ }
@@ -0,0 +1,404 @@
1
+ export default {
2
+ root: ({ props, state }) => ({
3
+ class: [
4
+ // Display and Position
5
+ 'inline-flex',
6
+ 'relative',
7
+
8
+ // Shape
9
+ 'rounded-md',
10
+
11
+ // Color and Background
12
+ { 'bg-surface-0 dark:bg-surface-950': !props.disabled },
13
+ 'border',
14
+ { 'border-surface-300 dark:border-surface-700': !props.invalid },
15
+
16
+ // Invalid State
17
+ 'invalid:focus:ring-red-200',
18
+ 'invalid:hover:border-red-500',
19
+ { 'border-red-500 dark:border-red-400': props.invalid },
20
+
21
+ // Transitions
22
+ 'transition-all',
23
+ 'duration-200',
24
+
25
+ // States
26
+ {
27
+ 'hover:border-surface-400 dark:hover:border-surface-600':
28
+ !props.invalid,
29
+ },
30
+ {
31
+ 'outline-none outline-offset-0 ring-1 ring-primary-500 dark:ring-primary-400 z-10':
32
+ state.focused,
33
+ },
34
+
35
+ // Misc
36
+ 'cursor-pointer',
37
+ 'select-none',
38
+ {
39
+ 'bg-surface-200 dark:bg-surface-700 select-none pointer-events-none cursor-default':
40
+ props.disabled,
41
+ },
42
+ ],
43
+ }),
44
+ labelContainer: {
45
+ class: ['overflow-hidden flex flex-auto cursor-pointer'],
46
+ },
47
+ label: {
48
+ class: [
49
+ 'block leading-[normal]',
50
+
51
+ // Space
52
+ 'py-2 px-3',
53
+
54
+ // Color
55
+ 'text-surface-800 dark:text-white/80',
56
+
57
+ // Transition
58
+ 'transition duration-200',
59
+
60
+ // Misc
61
+ 'overflow-hidden whitespace-nowrap cursor-pointer overflow-ellipsis',
62
+ ],
63
+ },
64
+ trigger: {
65
+ class: [
66
+ // Flexbox
67
+ 'flex items-center justify-center',
68
+ 'shrink-0',
69
+
70
+ // Color and Background
71
+ 'bg-transparent',
72
+ 'text-surface-500',
73
+
74
+ // Size
75
+ 'w-12',
76
+
77
+ // Shape
78
+ 'rounded-r-md',
79
+ ],
80
+ },
81
+ panel: {
82
+ class: [
83
+ // Colors
84
+ 'bg-surface-0 dark:bg-surface-900',
85
+ 'text-surface-700 dark:text-white/80',
86
+
87
+ // Shape
88
+ 'border border-surface-300 dark:border-surface-700',
89
+ 'rounded-md',
90
+ 'shadow-md',
91
+ ],
92
+ },
93
+ wrapper: {
94
+ class: [
95
+ // Sizing
96
+ 'max-h-[200px]',
97
+
98
+ // Misc
99
+ 'overflow-auto',
100
+ ],
101
+ },
102
+ tree: {
103
+ root: {
104
+ class: [
105
+ // Space
106
+ 'p-1',
107
+
108
+ // Shape
109
+ 'rounded-md',
110
+ 'border-none',
111
+
112
+ // Color
113
+ 'bg-surface-0 dark:bg-surface-900',
114
+ 'text-surface-700 dark:text-white/80',
115
+ ],
116
+ },
117
+ wrapper: {
118
+ class: ['overflow-auto'],
119
+ },
120
+ container: {
121
+ class: [
122
+ // Spacing
123
+ 'm-0 p-0',
124
+
125
+ // Misc
126
+ 'list-none overflow-auto',
127
+ ],
128
+ },
129
+ node: {
130
+ class: [
131
+ 'p-0 my-[2px] mx-0 first:mt-0',
132
+ 'rounded-md',
133
+ 'focus:outline-none focus:outline-offset-0 focus:ring-1 focus:ring-inset focus:ring-primary-500 dark:focus:ring-primary-400 focus:z-10',
134
+ ],
135
+ },
136
+ content: ({ context, props }) => ({
137
+ class: [
138
+ // Flex and Alignment
139
+ 'flex items-center',
140
+
141
+ // Shape
142
+ 'rounded-md',
143
+
144
+ // Spacing
145
+ 'py-1 px-2',
146
+
147
+ // Colors
148
+ context.selected
149
+ ? 'bg-primary-highlight text-primary-highlight-inverse'
150
+ : 'bg-transparent text-surface-600 dark:text-white/70',
151
+
152
+ // States
153
+ {
154
+ 'hover:bg-surface-50 dark:hover:bg-[rgba(255,255,255,0.03)]':
155
+ (props.selectionMode == 'single' ||
156
+ props.selectionMode == 'multiple') &&
157
+ !context.selected,
158
+ },
159
+
160
+ // Transition
161
+ 'transition-shadow duration-200',
162
+
163
+ {
164
+ 'cursor-pointer select-none':
165
+ props.selectionMode == 'single' ||
166
+ props.selectionMode == 'multiple',
167
+ },
168
+ ],
169
+ }),
170
+ toggler: ({ context }) => ({
171
+ class: [
172
+ // Flex and Alignment
173
+ 'inline-flex items-center justify-center',
174
+
175
+ // Shape
176
+ 'border-0 rounded-full',
177
+
178
+ // Size
179
+ 'w-7 h-7',
180
+
181
+ // Spacing
182
+ 'mr-2',
183
+
184
+ // Colors
185
+ 'bg-transparent',
186
+ {
187
+ 'text-surface-600 dark:text-white/70': !context.selected,
188
+ 'text-primary-600 dark:text-white': context.selected,
189
+ invisible: context.leaf,
190
+ },
191
+
192
+ // States
193
+ 'hover:bg-surface-200/20 dark:hover:bg-surface-500/20',
194
+ 'focus:outline-none focus:outline-offset-0 focus:ring-1 focus:ring-primary-500 dark:focus:ring-primary-400',
195
+
196
+ // Transition
197
+ 'transition duration-200',
198
+
199
+ // Misc
200
+ 'cursor-pointer select-none',
201
+ ],
202
+ }),
203
+ nodeCheckbox: ({ props, context, instance }) => ({
204
+ root: {
205
+ class: [
206
+ 'relative',
207
+
208
+ // Alignment
209
+ 'inline-flex',
210
+ 'align-bottom',
211
+
212
+ // Size
213
+ 'w-5',
214
+ 'h-5',
215
+
216
+ // Spacing
217
+ 'mr-2',
218
+
219
+ // Misc
220
+ 'cursor-pointer',
221
+ 'select-none',
222
+ ],
223
+ },
224
+ box: {
225
+ class: [
226
+ // Alignment
227
+ 'flex',
228
+ 'items-center',
229
+ 'justify-center',
230
+
231
+ // Size
232
+ 'w-5',
233
+ 'h-5',
234
+
235
+ // Shape
236
+ 'rounded',
237
+ 'border',
238
+
239
+ // Colors
240
+ {
241
+ 'border-surface-300 dark:border-surface-700':
242
+ !context.checked && !props.invalid,
243
+ 'bg-surface-0 dark:bg-surface-950':
244
+ !context.checked && !props.invalid && !props.disabled,
245
+ 'border-primary bg-primary': context.checked,
246
+ },
247
+
248
+ // States
249
+ {
250
+ 'peer-hover:border-surface-400 dark:peer-hover:border-surface-600':
251
+ !props.disabled && !context.checked && !props.invalid,
252
+ 'peer-hover:bg-primary-hover peer-hover:border-primary-hover':
253
+ !props.disabled && context.checked,
254
+ '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':
255
+ !props.disabled,
256
+ 'bg-surface-200 dark:bg-surface-700 select-none pointer-events-none cursor-default':
257
+ props.disabled,
258
+ },
259
+
260
+ // Transitions
261
+ 'transition-colors',
262
+ 'duration-200',
263
+ ],
264
+ },
265
+ input: {
266
+ class: [
267
+ 'peer',
268
+
269
+ // Size
270
+ 'w-full ',
271
+ 'h-full',
272
+
273
+ // Position
274
+ 'absolute',
275
+ 'top-0 left-0',
276
+ 'z-10',
277
+
278
+ // Spacing
279
+ 'p-0',
280
+ 'm-0',
281
+
282
+ // Shape
283
+ 'opacity-0',
284
+ 'rounded-md',
285
+ 'outline-none',
286
+ 'border border-surface-300 dark:border-surface-700',
287
+
288
+ // Misc
289
+ 'appearance-none',
290
+ 'cursor-pointer',
291
+ ],
292
+ },
293
+ icon: {
294
+ class: [
295
+ // Font
296
+ 'text-base leading-none',
297
+
298
+ // Size
299
+ 'w-[0.875rem]',
300
+ 'h-[0.875rem]',
301
+
302
+ // Colors
303
+ {
304
+ 'text-white dark:text-surface-950': !instance.partialChecked,
305
+ 'text-surface-700 dark:text-surface-0/80': instance.partialChecked,
306
+ },
307
+
308
+ // Transitions
309
+ 'transition-all',
310
+ 'duration-200',
311
+ ],
312
+ },
313
+ }),
314
+ nodeicon: {
315
+ class: [
316
+ // Space
317
+ 'mr-2',
318
+
319
+ // Color
320
+ 'text-surface-600 dark:text-white/70',
321
+ ],
322
+ },
323
+ subgroup: {
324
+ class: ['m-0 list-none p-0 pl-4 [&:not(ul)]:pl-0 [&:not(ul)]:my-[2px]'],
325
+ },
326
+ filtercontainer: {
327
+ class: [
328
+ 'relative block',
329
+
330
+ // Space
331
+ 'mb-2',
332
+
333
+ // Size
334
+ 'w-full',
335
+ ],
336
+ },
337
+ input: ({ props }) => ({
338
+ class: [
339
+ 'relative',
340
+
341
+ // Font
342
+ 'leading-none',
343
+
344
+ // Spacing
345
+ 'm-0',
346
+ 'py-2 px-3 pr-10',
347
+
348
+ // Size
349
+ 'w-full',
350
+
351
+ // Shape
352
+ 'rounded-md',
353
+ 'border',
354
+
355
+ // Colors
356
+ 'text-surface-800 dark:text-white/80',
357
+ 'placeholder:text-surface-400 dark:placeholder:text-surface-500',
358
+ { 'bg-surface-0 dark:bg-surface-950': !props.disabled },
359
+ { 'border-surface-300 dark:border-surface-700': !props.invalid },
360
+
361
+ // Invalid State
362
+ 'invalid:focus:ring-red-200',
363
+ 'invalid:hover:border-red-500',
364
+ { 'border-red-500 dark:border-red-400': props.invalid },
365
+
366
+ // States
367
+ {
368
+ 'hover:border-surface-400 dark:hover:border-surface-600':
369
+ !props.disabled && !props.invalid,
370
+ 'focus:outline-none focus:outline-offset-0 focus:ring-1 focus:ring-primary-500 dark:focus:ring-primary-400 focus:z-10':
371
+ !props.disabled,
372
+ 'bg-surface-200 dark:bg-surface-700 select-none pointer-events-none cursor-default':
373
+ props.disabled,
374
+ },
375
+
376
+ // Transition & Misc
377
+ 'appearance-none',
378
+ 'transition-colors duration-200',
379
+ ],
380
+ }),
381
+ loadingicon: {
382
+ class: [
383
+ 'text-surface-500 dark:text-surface-0/70',
384
+ 'absolute top-[50%] right-[50%] -mt-2 -mr-2 animate-spin',
385
+ ],
386
+ },
387
+ searchicon: {
388
+ class: [
389
+ // Position
390
+ 'absolute top-1/2 -mt-2 right-3 z-20',
391
+
392
+ // Color
393
+ 'text-surface-600 dark:hover:text-white/70',
394
+ ],
395
+ },
396
+ },
397
+ transition: {
398
+ enterFromClass: 'opacity-0 scale-y-[0.8]',
399
+ enterActiveClass:
400
+ 'transition-[transform,opacity] duration-[120ms] ease-[cubic-bezier(0,0,0.2,1)]',
401
+ leaveActiveClass: 'transition-opacity duration-100 ease-linear',
402
+ leaveToClass: 'opacity-0',
403
+ },
404
+ }