@okshaun/components 1.0.2 → 2.0.0

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 (128) hide show
  1. package/dist/.mcp.json +2 -5
  2. package/dist/icon-metadata.json +5173 -0
  3. package/dist/index.js +17126 -9342
  4. package/dist/index.js.map +1 -1
  5. package/dist/panda.buildinfo.json +693 -0
  6. package/dist/playroom-static.css +187432 -0
  7. package/dist/{preset-DCCViEDs.js → preset-Coz-VwQR.js} +3535 -2697
  8. package/dist/preset-Coz-VwQR.js.map +1 -0
  9. package/dist/preset.js +1 -1
  10. package/dist/specs/color-palette.json +22 -1
  11. package/dist/specs/patterns.json +0 -16
  12. package/dist/specs/recipes.json +411 -247
  13. package/dist/specs/semantic-tokens.json +330 -115
  14. package/dist/specs/text-styles.json +72 -0
  15. package/dist/specs/tokens.json +237 -27
  16. package/dist/sprite.svg +1 -1
  17. package/dist/sprite.symbol.html +6662 -320
  18. package/dist/styles.css +36938 -5
  19. package/dist/svgs/calendar-lock.svg +1 -0
  20. package/dist/svgs/computer.svg +1 -0
  21. package/dist/svgs/cookie.svg +1 -0
  22. package/dist/svgs/folder-check.svg +1 -0
  23. package/dist/svgs/folder-copy.svg +1 -0
  24. package/dist/svgs/folder-dashed.svg +1 -0
  25. package/dist/svgs/folder-open.svg +1 -0
  26. package/dist/svgs/folder-topic.svg +1 -0
  27. package/dist/svgs/folder.svg +1 -0
  28. package/dist/svgs/mobile.svg +1 -0
  29. package/dist/svgs/numpad.svg +1 -0
  30. package/dist/svgs/phone.svg +1 -0
  31. package/dist/svgs/qr-code.svg +1 -0
  32. package/dist/svgs/sparkle.svg +1 -0
  33. package/dist/svgs/trolley.svg +1 -0
  34. package/dist/types/index.d.ts +836 -342
  35. package/package.json +49 -24
  36. package/src/recipes/avatar.ts +98 -98
  37. package/src/recipes/badge.ts +22 -39
  38. package/src/recipes/box.ts +1 -7
  39. package/src/recipes/breadcrumbs.ts +42 -25
  40. package/src/recipes/button.ts +151 -85
  41. package/src/recipes/card.ts +5 -1
  42. package/src/recipes/checkbox.ts +23 -24
  43. package/src/recipes/checkboxInput.ts +25 -0
  44. package/src/recipes/chip.ts +35 -37
  45. package/src/recipes/code.ts +4 -4
  46. package/src/recipes/datePicker.ts +223 -0
  47. package/src/recipes/divider.ts +38 -32
  48. package/src/recipes/formField.ts +41 -23
  49. package/src/recipes/highlightText.ts +14 -0
  50. package/src/recipes/icon.ts +13 -0
  51. package/src/recipes/list.ts +14 -0
  52. package/src/recipes/listItem.ts +310 -0
  53. package/src/recipes/listItemGroup.ts +62 -0
  54. package/src/recipes/menu.ts +90 -163
  55. package/src/recipes/modal.ts +55 -25
  56. package/src/recipes/radio.ts +29 -20
  57. package/src/recipes/radioInput.ts +25 -0
  58. package/src/recipes/recipes-regular.ts +14 -0
  59. package/src/recipes/recipes-slot.ts +19 -0
  60. package/src/recipes/select.ts +1 -1
  61. package/src/recipes/spinner.ts +49 -23
  62. package/src/recipes/tag.ts +80 -84
  63. package/src/recipes/text.ts +18 -19
  64. package/src/recipes/textInput.ts +205 -0
  65. package/src/recipes/textarea.ts +65 -138
  66. package/src/recipes/themeSwitcher.ts +3 -3
  67. package/src/recipes/timePicker.ts +199 -0
  68. package/src/recipes/toggle.ts +72 -99
  69. package/src/recipes/toggleInput.ts +26 -0
  70. package/src/recipes/tooltip.ts +52 -343
  71. package/src/styles/index.css +1 -1
  72. package/src/styles/primitives/borders.ts +7 -1
  73. package/src/styles/primitives/colors.ts +51 -0
  74. package/src/styles/primitives/fontSizes.ts +1 -0
  75. package/src/styles/primitives/index.ts +2 -1
  76. package/src/styles/primitives/shadows.ts +9 -9
  77. package/src/styles/primitives/sizes.ts +1 -0
  78. package/src/styles/primitives/zIndex.ts +17 -0
  79. package/src/styles/semantics/colors.ts +137 -82
  80. package/src/styles/semantics/index.ts +1 -0
  81. package/src/styles/semantics/zIndex.ts +18 -0
  82. package/src/styles/utilities/breakpoints.ts +6 -6
  83. package/src/styles/utilities/index.ts +3 -0
  84. package/src/styles/utilities/textStyles.ts +70 -0
  85. package/src/utils/splitProps.ts +3 -3
  86. package/dist/preset-DCCViEDs.js.map +0 -1
  87. package/dist/styles/global.css +0 -148
  88. package/dist/styles/recipes/avatar.css +0 -185
  89. package/dist/styles/recipes/badge.css +0 -85
  90. package/dist/styles/recipes/breadcrumbs.css +0 -38
  91. package/dist/styles/recipes/button.css +0 -195
  92. package/dist/styles/recipes/card.css +0 -57
  93. package/dist/styles/recipes/checkbox-input.css +0 -12
  94. package/dist/styles/recipes/checkbox.css +0 -90
  95. package/dist/styles/recipes/chip.css +0 -137
  96. package/dist/styles/recipes/code.css +0 -12
  97. package/dist/styles/recipes/divider.css +0 -40
  98. package/dist/styles/recipes/form-field.css +0 -39
  99. package/dist/styles/recipes/heading.css +0 -40
  100. package/dist/styles/recipes/icon-button.css +0 -181
  101. package/dist/styles/recipes/label.css +0 -14
  102. package/dist/styles/recipes/link.css +0 -49
  103. package/dist/styles/recipes/menu.css +0 -141
  104. package/dist/styles/recipes/modal.css +0 -99
  105. package/dist/styles/recipes/pre.css +0 -16
  106. package/dist/styles/recipes/radio-input.css +0 -7
  107. package/dist/styles/recipes/radio.css +0 -82
  108. package/dist/styles/recipes/select.css +0 -103
  109. package/dist/styles/recipes/spinner.css +0 -36
  110. package/dist/styles/recipes/tag.css +0 -27
  111. package/dist/styles/recipes/text.css +0 -46
  112. package/dist/styles/recipes/textarea.css +0 -91
  113. package/dist/styles/recipes/textinput.css +0 -87
  114. package/dist/styles/recipes/theme-switcher.css +0 -53
  115. package/dist/styles/recipes/toggle-input.css +0 -12
  116. package/dist/styles/recipes/toggle.css +0 -125
  117. package/dist/styles/recipes/tooltip.css +0 -133
  118. package/dist/styles/recipes.css +0 -30
  119. package/dist/styles/reset.css +0 -1
  120. package/dist/styles/tokens.css +0 -1016
  121. package/dist/styles/utilities.css +0 -1694
  122. package/src/recipes/checkboxinput.ts +0 -15
  123. package/src/recipes/index.ts +0 -28
  124. package/src/recipes/radioinput.ts +0 -12
  125. package/src/recipes/textinput.ts +0 -100
  126. package/src/recipes/toggleinput.ts +0 -16
  127. package/src/utils/injectSprite.ts +0 -36
  128. package/src/utils/spriteContent.ts +0 -4
@@ -6,8 +6,8 @@ const baseButtonStyles = {
6
6
  appearance: 'none',
7
7
  display: 'flex',
8
8
  alignItems: 'center',
9
- gap: 4,
10
- minWidth: 0,
9
+ gap: '4',
10
+ minWidth: '0',
11
11
  width: 'fit',
12
12
  height: 'fit',
13
13
  transitionDuration: 'fast',
@@ -17,33 +17,28 @@ const baseButtonStyles = {
17
17
  verticalAlign: 'middle',
18
18
  fontFamily: 'sans',
19
19
  fontWeight: 'medium',
20
- fontSize: 16,
20
+ fontSize: '16',
21
21
  lineHeight: 'default',
22
- borderWidth: 1,
22
+ borderWidth: '1',
23
23
  borderStyle: 'solid',
24
24
  borderColor: 'transparent',
25
- borderRadius: 4,
26
- outlineWidth: 2,
25
+ borderRadius: '4',
26
+ outlineWidth: '2',
27
27
  outlineStyle: 'solid',
28
28
  outlineColor: 'transparent',
29
29
  textDecoration: 'none',
30
30
  whiteSpace: 'nowrap',
31
31
  cursor: 'pointer',
32
- _focusVisible: {
33
- outlineColor: 'border.focused',
34
- },
35
32
  _disabled: {
36
33
  cursor: 'not-allowed',
37
- bg: 'bg.disabled',
38
- color: 'text.disabled',
39
- borderColor: 'border.disabled',
40
- icon: { fill: 'icon.disabled' },
41
- _hover: {
42
- bg: 'bg.disabled',
43
- color: 'text.disabled',
44
- borderColor: 'border.disabled',
45
- icon: { fill: 'icon.disabled' },
46
- },
34
+ opacity: '0.3',
35
+ },
36
+ _loading: {
37
+ cursor: 'not-allowed',
38
+ opacity: '0.3',
39
+ },
40
+ _focusVisible: {
41
+ outlineColor: 'border.focused',
47
42
  },
48
43
  _selected: {
49
44
  bg: 'bg.selected',
@@ -66,72 +61,143 @@ const buttonVariants = {
66
61
  container: {
67
62
  bg: 'bg.neutral',
68
63
  color: 'text',
69
- icon: { fill: 'icon.decorative' },
70
64
  _hover: {
71
65
  bg: 'bg.neutral.hovered',
72
- icon: { fill: 'icon.decorative.hovered' },
73
66
  },
74
67
  _active: {
75
68
  bg: 'bg.neutral.pressed',
76
- icon: { fill: 'icon.decorative.hovered' },
77
69
  },
78
70
  },
71
+ icon: {
72
+ fill: 'icon.decorative',
73
+ mixBlendMode: { base: 'multiply', _dark: 'screen' },
74
+ _groupHover: { fill: 'current' },
75
+ _groupActive: { fill: 'current' },
76
+ },
79
77
  },
80
78
  primary: {
81
79
  container: {
82
- bg: 'bg.brand.boldest',
80
+ bg: 'bg.neutral.boldest',
83
81
  color: 'text.inverse',
84
- icon: { fill: 'icon.decorative.inverse' },
85
82
  _hover: {
86
- bg: 'bg.brand.boldest.hovered',
87
- icon: { fill: 'icon.inverse' },
83
+ bg: 'bg.neutral.bold.hovered',
88
84
  },
89
85
  _active: {
90
- bg: 'bg.brand.boldest.pressed',
91
- icon: { fill: 'icon.inverse' },
86
+ bg: 'bg.neutral.bold.pressed',
87
+ },
88
+ },
89
+ icon: {
90
+ fill: 'icon.decorative.inverse.subtle',
91
+ mixBlendMode: { base: 'screen', _dark: 'multiply' },
92
+ _groupHover: { fill: 'icon.decorative.inverse' },
93
+ _groupActive: { fill: 'icon.decorative.inverse' },
94
+ _groupDisabled: {
95
+ fill: 'icon.decorative.inverse.subtle',
92
96
  },
93
97
  },
94
98
  },
95
- subtle: {
99
+ hollow: {
96
100
  container: {
97
101
  bg: 'bg.neutral.subtle',
98
- color: 'text.subtle',
99
- icon: { fill: 'icon.decorative' },
102
+ borderColor: 'border',
103
+ color: 'text',
100
104
  _hover: {
101
105
  bg: 'bg.neutral.subtle.hovered',
102
- color: 'text',
103
- icon: { fill: 'icon.decorative.hovered' },
104
106
  },
105
107
  _active: {
106
108
  bg: 'bg.neutral.subtle.pressed',
107
- color: 'text',
108
- icon: { fill: 'icon.decorative.hovered' },
109
109
  },
110
110
  },
111
+ icon: {
112
+ fill: 'icon.decorative',
113
+ mixBlendMode: { base: 'multiply', _dark: 'screen' },
114
+ _groupHover: { fill: 'current' },
115
+ _groupActive: { fill: 'current' },
116
+ },
111
117
  },
112
- hollow: {
118
+ ghost: {
113
119
  container: {
114
120
  bg: 'bg.neutral.subtle',
115
- color: 'text.subtle',
116
- borderColor: 'border',
117
- icon: { fill: 'icon.decorative' },
121
+ color: 'text',
118
122
  _hover: {
119
123
  bg: 'bg.neutral.subtle.hovered',
120
- color: 'text',
121
- borderColor: 'border',
122
- icon: { fill: 'icon.decorative.hovered' },
123
124
  },
124
125
  _active: {
125
126
  bg: 'bg.neutral.subtle.pressed',
126
- color: 'text',
127
- borderColor: 'border',
128
- icon: { fill: 'icon.decorative.hovered' },
129
127
  },
130
- _disabled: {
131
- borderColor: 'border.disabled',
132
- _hover: {
133
- borderColor: 'border.disabled',
134
- },
128
+ },
129
+ icon: {
130
+ fill: 'icon.decorative',
131
+ mixBlendMode: { base: 'multiply', _dark: 'screen' },
132
+ _groupHover: { fill: 'current' },
133
+ _groupActive: { fill: 'current' },
134
+ },
135
+ },
136
+ danger: {
137
+ container: {
138
+ bg: 'red.50',
139
+ color: 'neutral.0',
140
+ _hover: {
141
+ bg: 'red.40',
142
+ },
143
+ _active: {
144
+ bg: 'red.60',
145
+ },
146
+ },
147
+ icon: {
148
+ fill: 'icon.decorative.inverse',
149
+ mixBlendMode: 'screen',
150
+ _groupHover: { fill: 'icon.decorative.inverse' },
151
+ _groupActive: { fill: 'icon.decorative.inverse' },
152
+ _groupDisabled: {
153
+ fill: 'icon.decorative.inverse',
154
+ },
155
+ },
156
+ },
157
+ selected: {
158
+ container: {
159
+ bg: 'bg.selected',
160
+ color: 'text.selected',
161
+ icon: { fill: 'icon.selected' },
162
+ _hover: {
163
+ bg: 'bg.selected.hovered',
164
+ color: 'text.selected.hovered',
165
+ icon: { fill: 'icon.selected' },
166
+ },
167
+ _active: {
168
+ bg: 'bg.selected.pressed',
169
+ color: 'text.selected',
170
+ icon: { fill: 'icon.selected' },
171
+ },
172
+ },
173
+ icon: {
174
+ fill: 'icon.selected',
175
+ mixBlendMode: { base: 'multiply', _dark: 'screen' },
176
+ _groupHover: { fill: 'icon.selected' },
177
+ _groupActive: { fill: 'icon.selected' },
178
+ _groupDisabled: {
179
+ fill: 'icon.selected',
180
+ },
181
+ },
182
+ },
183
+ selectedBold: {
184
+ container: {
185
+ bg: 'bg.selected.bold',
186
+ color: 'text.inverse',
187
+ _hover: {
188
+ bg: 'bg.selected.bold.hovered',
189
+ },
190
+ _active: {
191
+ bg: 'bg.selected.bold.pressed',
192
+ },
193
+ },
194
+ icon: {
195
+ fill: 'icon.inverse',
196
+ mixBlendMode: { base: 'screen', _dark: 'multiply' },
197
+ _groupHover: { fill: 'icon.inverse' },
198
+ _groupActive: { fill: 'icon.inverse' },
199
+ _groupDisabled: {
200
+ fill: 'icon.inverse',
135
201
  },
136
202
  },
137
203
  },
@@ -146,6 +212,17 @@ export const buttonRecipe = defineSlotRecipe({
146
212
  variants: {
147
213
  ...buttonVariants,
148
214
  size: {
215
+ sm: {
216
+ container: {
217
+ fontSize: '14',
218
+ py: '1',
219
+ px: '8',
220
+ },
221
+ icon: {
222
+ w: '22',
223
+ h: '22',
224
+ },
225
+ },
149
226
  md: {
150
227
  container: {
151
228
  fontSize: '16',
@@ -157,17 +234,6 @@ export const buttonRecipe = defineSlotRecipe({
157
234
  h: '24',
158
235
  },
159
236
  },
160
- xl: {
161
- container: {
162
- fontSize: '20',
163
- py: '9',
164
- px: '16',
165
- },
166
- icon: {
167
- w: '28',
168
- h: '28',
169
- },
170
- },
171
237
  lg: {
172
238
  container: {
173
239
  fontSize: '16',
@@ -179,15 +245,15 @@ export const buttonRecipe = defineSlotRecipe({
179
245
  h: '24',
180
246
  },
181
247
  },
182
- sm: {
248
+ xl: {
183
249
  container: {
184
- fontSize: '14',
185
- py: '1',
186
- px: '8',
250
+ fontSize: '20',
251
+ py: '9',
252
+ px: '16',
187
253
  },
188
254
  icon: {
189
- w: '22',
190
- h: '22',
255
+ w: '28',
256
+ h: '28',
191
257
  },
192
258
  },
193
259
  },
@@ -200,31 +266,31 @@ export const buttonRecipe = defineSlotRecipe({
200
266
  },
201
267
  compoundVariants: [
202
268
  {
203
- size: 'md',
269
+ size: 'sm',
204
270
  iconBefore: true,
205
271
  css: {
206
- container: { ps: '3' },
272
+ container: { ps: '2' },
207
273
  },
208
274
  },
209
275
  {
210
- size: 'md',
276
+ size: 'sm',
211
277
  iconAfter: true,
212
278
  css: {
213
- container: { pe: '3' },
279
+ container: { pe: '2' },
214
280
  },
215
281
  },
216
282
  {
217
- size: 'sm',
283
+ size: 'md',
218
284
  iconBefore: true,
219
285
  css: {
220
- container: { ps: '2' },
286
+ container: { ps: '3' },
221
287
  },
222
288
  },
223
289
  {
224
- size: 'sm',
290
+ size: 'md',
225
291
  iconAfter: true,
226
292
  css: {
227
- container: { pe: '2' },
293
+ container: { pe: '3' },
228
294
  },
229
295
  },
230
296
  {
@@ -270,16 +336,6 @@ export const iconButtonRecipe = defineSlotRecipe({
270
336
  variants: {
271
337
  ...buttonVariants,
272
338
  size: {
273
- md: {
274
- container: {
275
- fontSize: '16',
276
- p: '3',
277
- },
278
- icon: {
279
- w: '24',
280
- h: '24',
281
- },
282
- },
283
339
  sm: {
284
340
  container: {
285
341
  fontSize: '14',
@@ -290,6 +346,16 @@ export const iconButtonRecipe = defineSlotRecipe({
290
346
  h: '22',
291
347
  },
292
348
  },
349
+ md: {
350
+ container: {
351
+ fontSize: '16',
352
+ p: '3',
353
+ },
354
+ icon: {
355
+ w: '24',
356
+ h: '24',
357
+ },
358
+ },
293
359
  lg: {
294
360
  container: {
295
361
  fontSize: '16',
@@ -32,6 +32,11 @@ export const cardRecipe = defineRecipe({
32
32
  outlineStyle: 'solid',
33
33
  outlineColor: 'transparent',
34
34
  outlineOffset: '0',
35
+ overflow: 'hidden',
36
+ _disabled: {
37
+ opacity: '0.4',
38
+ cursor: 'not-allowed',
39
+ },
35
40
  },
36
41
  variants: {
37
42
  variant: {
@@ -143,6 +148,5 @@ export const cardRecipe = defineRecipe({
143
148
  ],
144
149
  defaultVariants: {
145
150
  variant: 'default',
146
- interactive: false,
147
151
  },
148
152
  });
@@ -3,20 +3,16 @@ import { defineSlotRecipe } from '@pandacss/dev';
3
3
  export const checkboxRecipe = defineSlotRecipe({
4
4
  className: 'checkbox',
5
5
  jsx: ['Checkbox'],
6
- slots: ['container', 'input', 'indicator'],
6
+ slots: ['container', 'input', 'indicator', 'checkBg'],
7
7
  base: {
8
8
  container: {
9
9
  position: 'relative',
10
10
  display: 'inline-grid',
11
+ placeContent: 'center',
11
12
  gridTemplateColumns: 'auto 1fr',
12
- gap: 4,
13
13
  alignItems: 'start',
14
14
  cursor: 'pointer',
15
15
  userSelect: 'none',
16
- color: 'text',
17
- _error: {
18
- color: 'text.danger',
19
- },
20
16
  },
21
17
  input: {
22
18
  position: 'absolute',
@@ -25,15 +21,17 @@ export const checkboxRecipe = defineSlotRecipe({
25
21
  height: 'full',
26
22
  margin: '0',
27
23
  padding: '0',
28
- zIndex: 1,
24
+ zIndex: 'raised',
29
25
  cursor: 'inherit',
30
26
  "& ~ [name='checkbox']": {
31
27
  display: 'inline-grid',
28
+ zIndex: '3',
32
29
  },
33
30
  _checked: {
34
31
  "& ~ [name='checkbox-checked']": {
35
32
  display: 'inline-grid',
36
33
  fill: 'icon',
34
+ zIndex: '2',
37
35
  },
38
36
  "& ~ [name='checkbox']": {
39
37
  display: 'none',
@@ -43,26 +41,17 @@ export const checkboxRecipe = defineSlotRecipe({
43
41
  "& ~ [name='checkbox-indeterminate']": {
44
42
  display: 'inline-grid',
45
43
  fill: 'icon',
46
- _disabled: {},
44
+ zIndex: '3',
47
45
  },
48
46
  "& ~ [name='checkbox']": {
49
47
  display: 'none',
50
48
  },
51
49
  },
52
- _disabled: {
53
- '& ~ svg': {
54
- // fill: 'icon.disabled',
55
- pointerEvents: 'none',
56
- },
57
- display: 'inline-grid',
58
- _hover: {
59
- cursor: 'not-allowed',
60
- },
61
- },
62
50
  _error: {
63
51
  display: 'inline-grid',
64
- '& ~ svg': {
65
- fill: 'icon.danger',
52
+ '& ~ svg:not([name="square"])': {
53
+ fill: 'red.50',
54
+ zIndex: '3',
66
55
  },
67
56
  },
68
57
  _focusVisible: {
@@ -70,18 +59,28 @@ export const checkboxRecipe = defineSlotRecipe({
70
59
  display: 'inline-grid',
71
60
  position: 'absolute',
72
61
  fill: 'border.focused',
62
+ zIndex: '2',
73
63
  },
74
64
  },
75
65
  },
76
66
  indicator: {
77
- placeContent: 'center',
78
67
  display: 'none',
79
- width: 24,
80
- height: 24,
68
+ width: '24',
69
+ height: '24',
70
+ zIndex: '3',
81
71
  "&:is([name='checkbox'])": {
82
- display: 'inline-grid',
83
72
  fill: 'icon.subtlest',
73
+ zIndex: '3',
84
74
  },
85
75
  },
76
+ checkBg: {
77
+ position: 'absolute',
78
+ top: '0',
79
+ left: '0',
80
+ width: '24',
81
+ height: '24',
82
+ fill: 'surface',
83
+ zIndex: 'base',
84
+ },
86
85
  },
87
86
  });
@@ -0,0 +1,25 @@
1
+ import { defineRecipe } from '@pandacss/dev';
2
+
3
+ const checkboxInputBase = {
4
+ display: 'flex',
5
+ alignItems: 'start',
6
+ gap: '4',
7
+ '&[class*="-label"]': {
8
+ fontSize: '{sizes.16}',
9
+ lineHeight: 'default',
10
+ },
11
+ _disabled: {
12
+ opacity: '40%',
13
+ cursor: 'not-allowed',
14
+ },
15
+ _groupDisabled: {
16
+ opacity: 1, // let FormField handle disabled state opacity
17
+ },
18
+ };
19
+
20
+ export const checkboxInputRecipe = defineRecipe({
21
+ className: 'checkboxInput',
22
+ jsx: ['CheckboxInput', 'Checkboxinput'],
23
+ base: checkboxInputBase,
24
+ variants: {},
25
+ });
@@ -19,24 +19,16 @@ const chipBase = {
19
19
  transitionTimingFunction: 'default',
20
20
  userSelect: 'none',
21
21
  border: 'none',
22
- outlineWidth: 2,
22
+ outlineWidth: '2',
23
23
  outlineStyle: 'solid',
24
24
  outlineColor: 'transparent',
25
25
  bg: 'bg.neutral',
26
26
  color: 'text',
27
- icon: {
28
- fill: 'icon.decorative',
29
- transitionDuration: 'fast',
30
- transitionProperty: 'fill',
31
- transitionTimingFunction: 'default',
32
- },
33
27
  _hover: {
34
28
  bg: 'bg.neutral.hovered',
35
- icon: { fill: 'icon.decorative.hovered' },
36
29
  },
37
30
  _active: {
38
31
  bg: 'bg.neutral.pressed',
39
- icon: { fill: 'icon.decorative.hovered' },
40
32
  },
41
33
  _focusVisible: {
42
34
  outlineColor: 'border.focused',
@@ -48,72 +40,78 @@ const chipBase = {
48
40
  _deleted: {
49
41
  textDecoration: 'line-through',
50
42
  cursor: 'not-allowed',
51
- opacity: 0.6,
43
+ opacity: '[0.6]',
52
44
  },
53
45
  _disabled: {
54
46
  cursor: 'not-allowed',
55
47
  bg: 'bg.disabled',
56
48
  color: 'text.disabled',
57
49
  borderColor: 'border.disabled',
58
- icon: { fill: 'icon.disabled' },
59
50
  _hover: {
60
51
  bg: 'bg.disabled',
61
52
  color: 'text.disabled',
62
53
  borderColor: 'border.disabled',
63
- icon: { fill: 'icon.disabled' },
64
54
  },
65
55
  },
66
56
  _selected: {
67
- bg: 'bg.brand.boldest',
57
+ bg: 'bg.neutral.boldest',
68
58
  color: 'text.inverse',
69
- icon: { fill: 'icon.decorative.inverse' },
70
59
  _hover: {
71
- bg: 'bg.brand.boldest.hovered',
72
- icon: { fill: 'icon.inverse' },
60
+ bg: 'bg.neutral.bold.hovered',
73
61
  },
74
62
  _active: {
75
- bg: 'bg.brand.boldest.pressed',
76
- icon: { fill: 'icon.inverse' },
63
+ bg: 'bg.neutral.bold.pressed',
77
64
  },
78
65
  },
79
66
  },
80
- icon: {
67
+ chipIcon: {
68
+ fill: 'icon.decorative',
81
69
  aspectRatio: 'square',
82
70
  transitionDuration: 'fast',
83
71
  transitionProperty: 'fill',
84
72
  transitionTimingFunction: 'default',
73
+ _groupHover: { fill: 'icon.decorative.hovered' },
74
+ _groupActive: { fill: 'icon.decorative.hovered' },
75
+ _groupDisabled: { fill: 'icon.decorative' },
76
+
77
+ '[data-selected=true] &': {
78
+ fill: 'icon.decorative.inverse',
79
+ },
80
+ '.group:is(:hover, [data-hover])[data-selected=true] &': {
81
+ fill: 'icon.decorative.inverse.hovered',
82
+ },
85
83
  },
86
84
  };
87
85
 
88
86
  export const chipRecipe = defineSlotRecipe({
89
87
  className: 'chip',
90
88
  jsx: ['Chip'],
91
- slots: ['container', 'icon'],
89
+ slots: ['container', 'chipIcon'],
92
90
  base: chipBase,
93
91
  variants: {
94
92
  size: {
95
- md: {
93
+ sm: {
96
94
  container: {
97
- gap: '4',
98
- h: '24',
99
- px: '8',
100
- py: '1',
95
+ gap: '2',
96
+ h: '20',
97
+ px: '6',
98
+ py: '0',
101
99
  fontSize: '14',
102
100
  },
103
- icon: {
101
+ chipIcon: {
104
102
  w: '20',
105
103
  h: '20',
106
104
  },
107
105
  },
108
- sm: {
106
+ md: {
109
107
  container: {
110
- gap: '2',
111
- h: '20',
112
- px: '6',
113
- py: '0',
108
+ gap: '4',
109
+ h: '24',
110
+ px: '8',
111
+ py: '1',
114
112
  fontSize: '14',
115
113
  },
116
- icon: {
114
+ chipIcon: {
117
115
  w: '20',
118
116
  h: '20',
119
117
  },
@@ -126,7 +124,7 @@ export const chipRecipe = defineSlotRecipe({
126
124
  py: '4',
127
125
  fontSize: '16',
128
126
  },
129
- icon: {
127
+ chipIcon: {
130
128
  w: '24',
131
129
  h: '24',
132
130
  },
@@ -141,28 +139,28 @@ export const chipRecipe = defineSlotRecipe({
141
139
  },
142
140
  compoundVariants: [
143
141
  {
144
- size: 'md',
142
+ size: 'sm',
145
143
  before: true,
146
144
  css: {
147
145
  container: { ps: '2' },
148
146
  },
149
147
  },
150
148
  {
151
- size: 'md',
149
+ size: 'sm',
152
150
  after: true,
153
151
  css: {
154
152
  container: { pe: '2' },
155
153
  },
156
154
  },
157
155
  {
158
- size: 'sm',
156
+ size: 'md',
159
157
  before: true,
160
158
  css: {
161
159
  container: { ps: '2' },
162
160
  },
163
161
  },
164
162
  {
165
- size: 'sm',
163
+ size: 'md',
166
164
  after: true,
167
165
  css: {
168
166
  container: { pe: '2' },
@@ -1,7 +1,7 @@
1
1
  import { defineRecipe } from '@pandacss/dev';
2
2
 
3
3
  const codeBase = {
4
- bg: 'gray.80',
4
+ bg: 'bg.neutral.inverse',
5
5
  position: 'relative',
6
6
  overflow: 'auto',
7
7
  p: '4',
@@ -13,9 +13,9 @@ const preBase = {
13
13
  borderRadius: '8',
14
14
  overflow: 'hidden',
15
15
  borderWidth: '0',
16
- borderColor: 'gray.60',
17
- bg: 'gray.80',
18
- color: 'gray.10',
16
+ borderColor: 'border',
17
+ bg: 'bg.neutral.inverse',
18
+ color: 'text.inverse.subtlest',
19
19
  px: '16',
20
20
  py: '8',
21
21
  my: '8',