@mekari/pixel3-theme 0.2.1 → 0.2.2-dev.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 (84) hide show
  1. package/dist/conditions.d.mts +4 -1
  2. package/dist/conditions.d.ts +4 -1
  3. package/dist/index.js +2889 -409
  4. package/dist/index.mjs +2888 -408
  5. package/dist/semanticTokens/colors.d.mts +892 -0
  6. package/dist/semanticTokens/colors.d.ts +892 -0
  7. package/dist/semanticTokens/index.d.mts +951 -0
  8. package/dist/semanticTokens/index.d.ts +951 -0
  9. package/dist/semanticTokens/spacing.d.mts +59 -0
  10. package/dist/semanticTokens/spacing.d.ts +59 -0
  11. package/dist/tokens/borders.d.mts +2 -2
  12. package/dist/tokens/borders.d.ts +2 -2
  13. package/dist/tokens/colors.d.mts +37 -34
  14. package/dist/tokens/colors.d.ts +37 -34
  15. package/dist/tokens/index.d.mts +59 -35
  16. package/dist/tokens/index.d.ts +59 -35
  17. package/dist/tokens/radii.d.mts +5 -0
  18. package/dist/tokens/radii.d.ts +5 -0
  19. package/dist/tokens/spacing.d.mts +16 -0
  20. package/dist/tokens/spacing.d.ts +16 -0
  21. package/dist/tokens-next/borders.d.mts +22 -0
  22. package/dist/tokens-next/borders.d.ts +22 -0
  23. package/dist/tokens-next/colors.d.mts +441 -0
  24. package/dist/tokens-next/colors.d.ts +441 -0
  25. package/dist/tokens-next/index.d.mts +772 -0
  26. package/dist/tokens-next/index.d.ts +772 -0
  27. package/dist/tokens-next/radii.d.mts +26 -0
  28. package/dist/tokens-next/radii.d.ts +26 -0
  29. package/dist/tokens-next/shadows.d.mts +28 -0
  30. package/dist/tokens-next/shadows.d.ts +28 -0
  31. package/dist/tokens-next/spacing.d.mts +51 -0
  32. package/dist/tokens-next/spacing.d.ts +51 -0
  33. package/package.json +1 -1
  34. package/src/conditions.ts +6 -4
  35. package/src/global-css.ts +4 -0
  36. package/src/index.ts +15 -2
  37. package/src/recipes/accordion.ts +12 -2
  38. package/src/recipes/autocomplete.ts +6 -1
  39. package/src/recipes/avatar.ts +68 -11
  40. package/src/recipes/badge.ts +174 -50
  41. package/src/recipes/banner.ts +36 -11
  42. package/src/recipes/broadcast.ts +78 -12
  43. package/src/recipes/button.ts +132 -9
  44. package/src/recipes/carousel.ts +5 -0
  45. package/src/recipes/chart.ts +10 -5
  46. package/src/recipes/checkbox.ts +68 -13
  47. package/src/recipes/color-picker.ts +74 -23
  48. package/src/recipes/date-picker.ts +165 -31
  49. package/src/recipes/divider.ts +5 -1
  50. package/src/recipes/dropzone.ts +80 -8
  51. package/src/recipes/form-control.ts +12 -3
  52. package/src/recipes/input-tag.ts +48 -8
  53. package/src/recipes/input.ts +75 -8
  54. package/src/recipes/modal.ts +30 -9
  55. package/src/recipes/popover.ts +28 -9
  56. package/src/recipes/progress.ts +9 -2
  57. package/src/recipes/radio.ts +52 -21
  58. package/src/recipes/rich-text-editor.ts +32 -6
  59. package/src/recipes/segmented-control.ts +47 -7
  60. package/src/recipes/select.ts +42 -0
  61. package/src/recipes/slider.ts +46 -6
  62. package/src/recipes/table.ts +26 -11
  63. package/src/recipes/tabs.ts +35 -3
  64. package/src/recipes/tag.ts +43 -13
  65. package/src/recipes/textarea.ts +0 -46
  66. package/src/recipes/timeline.ts +36 -8
  67. package/src/recipes/toast.ts +21 -4
  68. package/src/recipes/toggle.ts +59 -11
  69. package/src/recipes/tooltip.ts +5 -1
  70. package/src/recipes/upload.ts +51 -16
  71. package/src/semanticTokens/colors.ts +893 -0
  72. package/src/semanticTokens/index.ts +8 -0
  73. package/src/semanticTokens/spacing.ts +59 -0
  74. package/src/tokens/borders.ts +1 -1
  75. package/src/tokens/colors.ts +18 -23
  76. package/src/tokens/index.ts +2 -2
  77. package/src/tokens/radii.ts +5 -5
  78. package/src/tokens/spacing.ts +17 -17
  79. package/src/tokens-next/borders.ts +10 -0
  80. package/src/tokens-next/colors.ts +171 -0
  81. package/src/tokens-next/index.ts +32 -0
  82. package/src/tokens-next/radii.ts +10 -0
  83. package/src/tokens-next/shadows.ts +28 -0
  84. package/src/tokens-next/spacing.ts +16 -0
@@ -33,12 +33,23 @@ const inputSlotRecipe = defineSlotRecipe({
33
33
  borderWidth: '1px',
34
34
  borderColor: 'inherit',
35
35
  borderRadius: 'sm',
36
- paddingInline: '12px',
36
+ paddingInline: '3',
37
37
  appearance: 'none',
38
+ caretColor: 'blue.500',
38
39
  transition: 'all 250ms',
39
40
  _isFullWidth: {
40
41
  width: 'full'
41
42
  },
43
+ _placeholder: {
44
+ color: 'gray.400',
45
+ },
46
+ _nextTheme: {
47
+ color: 'text.default',
48
+ caretColor: 'border.selected',
49
+ _placeholder: {
50
+ borderColor: 'text.placeholder',
51
+ },
52
+ }
42
53
  },
43
54
  clear: {
44
55
  position: 'absolute!',
@@ -56,6 +67,9 @@ const inputSlotRecipe = defineSlotRecipe({
56
67
  _groupHover: {
57
68
  visibility: 'var(--mp-input--visibility)',
58
69
  opacity: 'var(--mp-input--opacity)'
70
+ },
71
+ _nextTheme: {
72
+ color: 'icon.default',
59
73
  }
60
74
  }
61
75
  },
@@ -76,7 +90,7 @@ const inputSlotRecipe = defineSlotRecipe({
76
90
  borderColor: 'gray.400',
77
91
  _invalid: {
78
92
  borderColor: 'red.400'
79
- }
93
+ },
80
94
  },
81
95
  _focus: {
82
96
  borderColor: 'blue.500',
@@ -100,6 +114,42 @@ const inputSlotRecipe = defineSlotRecipe({
100
114
  _readOnly: {
101
115
  boxShadow: 'none',
102
116
  userSelect: 'all'
117
+ },
118
+ _nextTheme: {
119
+ backgroundColor: 'background.neutral',
120
+ borderColor: 'border.form',
121
+ _hover: {
122
+ borderColor: 'border.form',
123
+ backgroundColor: 'background.neutral.hovered',
124
+ _invalid: {
125
+ borderColor: 'border.danger'
126
+ }
127
+ },
128
+ _focus: {
129
+ borderColor: 'border.focused',
130
+ boxShadow: 'focus',
131
+ _hover: {
132
+ borderColor: 'border.focused',
133
+ },
134
+ _invalid: {
135
+ borderColor: 'border.focused',
136
+ _hover: {
137
+ borderColor: 'border.focused',
138
+ },
139
+ }
140
+ },
141
+ _disabled: {
142
+ color: 'text.disabled',
143
+ backgroundColor: 'background.disabled',
144
+ borderColor: 'border.disabled',
145
+ _hover: {
146
+ borderColor: 'border.disabled',
147
+ backgroundColor: 'background.disabled',
148
+ },
149
+ },
150
+ _invalid: {
151
+ borderColor: 'border.danger'
152
+ },
103
153
  }
104
154
  }
105
155
  }
@@ -157,7 +207,7 @@ const inputGroupSlotRecipe = defineSlotRecipe({
157
207
  },
158
208
  '&[data-with-left-bg-addon=true]': {
159
209
  '& > [data-pixel-component=MpInput] > [data-pixel-component=MpInputControl]': {
160
- paddingLeft: 'calc(var(--mp-input-offset--left) + 12px)'
210
+ paddingLeft: 'calc(var(--mp-input-offset--left) + 14px)'
161
211
  },
162
212
  },
163
213
  '&[data-with-right-addon=true]': {
@@ -175,7 +225,7 @@ const inputGroupSlotRecipe = defineSlotRecipe({
175
225
  },
176
226
  '&[data-with-right-bg-addon=true]': {
177
227
  '& > [data-pixel-component=MpInput] > [data-pixel-component=MpInputControl]': {
178
- paddingRight: 'calc(var(--mp-input-offset--right) + 24px)'
228
+ paddingRight: 'calc(var(--mp-input-offset--right) + 14px)'
179
229
  },
180
230
  '&[data-with-clearable=true]': {
181
231
  '& > [data-pixel-component=MpInput] > [data-pixel-component=MpInputControl]': {
@@ -186,6 +236,17 @@ const inputGroupSlotRecipe = defineSlotRecipe({
186
236
  }
187
237
  }
188
238
  },
239
+ _nextTheme: {
240
+ '&:has(input:hover) [data-pixel-component=MpInputAddon][data-has-background=true]': {
241
+ backgroundColor: 'background.neutral.subtle.hovered'
242
+ },
243
+ '&:has(input:focus) [data-pixel-component=MpInputAddon][data-has-background=true]': {
244
+ backgroundColor: 'background.neutral.subtle.pressed'
245
+ },
246
+ '&:has(input:disabled) [data-pixel-component=MpInputAddon][data-has-background=true]': {
247
+ backgroundColor: 'background.neutral.subtle.pressed'
248
+ },
249
+ }
189
250
  }
190
251
  },
191
252
  variants: {},
@@ -205,8 +266,14 @@ const inputAddonSlotRecipe = defineSlotRecipe({
205
266
  paddingX: '0',
206
267
  whiteSpace: 'nowrap',
207
268
  zIndex: '2',
269
+ transition: 'all 250ms',
208
270
  _hasBackground: {
209
- backgroundColor: 'gray.50'
271
+ backgroundColor: 'gray.50',
272
+ },
273
+ _nextTheme: {
274
+ _hasBackground: {
275
+ backgroundColor: 'background.neutral.subtle',
276
+ }
210
277
  }
211
278
  }
212
279
  },
@@ -240,11 +307,11 @@ const inputAddonSlotRecipe = defineSlotRecipe({
240
307
  },
241
308
  md: {
242
309
  root: {
243
- height: '7.5',
310
+ height: '32px',
244
311
  borderRadius: 'sm',
245
312
  _hasBackground: {
246
- _placementLeft: { left: '1' },
247
- _placementRight: { right: '1' }
313
+ _placementLeft: { left: '3px' },
314
+ _placementRight: { right: '3px' }
248
315
  }
249
316
  }
250
317
  }
@@ -4,7 +4,18 @@ export const modalSlotRecipe = defineSlotRecipe({
4
4
  className: 'modal',
5
5
  description: 'The styles for the Modal component',
6
6
  jsx: ['MpModal', 'mp-modal'],
7
- slots: ['root', 'rootChild', 'body', 'contentRoot', 'contentChild', 'header', 'footer', 'body', 'overlay', 'closeButton'],
7
+ slots: [
8
+ 'root',
9
+ 'rootChild',
10
+ 'body',
11
+ 'contentRoot',
12
+ 'contentChild',
13
+ 'header',
14
+ 'footer',
15
+ 'body',
16
+ 'overlay',
17
+ 'closeButton'
18
+ ],
8
19
  base: {
9
20
  root: {
10
21
  position: 'relative',
@@ -19,14 +30,14 @@ export const modalSlotRecipe = defineSlotRecipe({
19
30
  },
20
31
  body: {
21
32
  p: 4,
22
- flex: 1,
33
+ flex: 1
23
34
  },
24
35
  contentRoot: {
25
36
  pos: 'fixed',
26
37
  left: '0',
27
38
  w: '100%',
28
39
  h: '100%',
29
- zIndex: 'modal',
40
+ zIndex: 'modal'
30
41
  },
31
42
  contentChild: {
32
43
  outline: 0,
@@ -39,6 +50,11 @@ export const modalSlotRecipe = defineSlotRecipe({
39
50
  borderColor: 'gray.100',
40
51
  bg: 'white',
41
52
  marginInline: 'auto',
53
+ _nextTheme: {
54
+ background: 'background.stage',
55
+ borderColor: 'border.bold',
56
+ color: 'text.default'
57
+ }
42
58
  },
43
59
 
44
60
  header: {
@@ -51,7 +67,12 @@ export const modalSlotRecipe = defineSlotRecipe({
51
67
  borderTopLeftRadius: 'md',
52
68
  borderTopRightRadius: 'md',
53
69
  borderBottom: 'solid 1px',
54
- borderBottomColor: 'gray.100'
70
+ borderBottomColor: 'gray.100',
71
+ _nextTheme: {
72
+ color: 'text.default',
73
+ background: 'background.neutral.subtle',
74
+ borderBottomColor: 'border.default'
75
+ }
55
76
  },
56
77
  closeButton: {
57
78
  position: 'absolute',
@@ -65,7 +86,7 @@ export const modalSlotRecipe = defineSlotRecipe({
65
86
  pt: 2,
66
87
  px: 4,
67
88
  pb: 4,
68
- justifyContent: 'flex-end',
89
+ justifyContent: 'flex-end'
69
90
  },
70
91
  overlay: {
71
92
  position: 'fixed',
@@ -74,14 +95,14 @@ export const modalSlotRecipe = defineSlotRecipe({
74
95
  top: '0',
75
96
  w: '100vw',
76
97
  h: '100vh',
77
- zIndex: 'overlay',
98
+ zIndex: 'overlay'
78
99
  }
79
100
  },
80
101
  variants: {
81
102
  full: {
82
103
  true: {
83
104
  contentRoot: {
84
- top: '0',
105
+ top: '0'
85
106
  },
86
107
  contentChild: {
87
108
  height: '100vh',
@@ -91,7 +112,7 @@ export const modalSlotRecipe = defineSlotRecipe({
91
112
  },
92
113
  false: {
93
114
  contentRoot: {
94
- top: '3.75rem',
115
+ top: '3.75rem'
95
116
  },
96
117
  contentChild: {
97
118
  height: '100%',
@@ -104,5 +125,5 @@ export const modalSlotRecipe = defineSlotRecipe({
104
125
 
105
126
  defaultVariants: {
106
127
  full: false
107
- },
128
+ }
108
129
  })
@@ -12,16 +12,22 @@ const popoverContentRecipe = defineRecipe({
12
12
  shadow: 'lg',
13
13
  borderWidth: '1px',
14
14
  borderColor: 'gray.400',
15
- zIndex: 'popover'
15
+ zIndex: 'popover',
16
+ _nextTheme: {
17
+ borderColor: 'border.bold'
18
+ }
16
19
  }
17
20
  },
18
21
  isDark: {
19
22
  true: {
20
23
  background: 'overlay',
21
- color: 'white'
24
+ color: 'white',
22
25
  },
23
26
  false: {
24
- background: 'white'
27
+ background: 'white',
28
+ _nextTheme: {
29
+ background: 'background.stage'
30
+ }
25
31
  }
26
32
  }
27
33
  },
@@ -62,19 +68,32 @@ const popoverListItemRecipe = defineRecipe({
62
68
  _disabled: {
63
69
  color: 'gray.400',
64
70
  bg: 'white',
65
- cursor: 'not-allowed'
71
+ cursor: 'not-allowed',
72
+ _nextTheme: {
73
+ background: 'background.disabled',
74
+ color: 'text.disabled'
75
+ }
66
76
  },
67
77
  _highlight: {
68
- background: 'white',
69
- bg: 'gray.50',
78
+ background: 'gray.50',
70
79
  color: 'dark',
71
- outline: 0
80
+ outline: 0,
81
+ _nextTheme: {
82
+ background: 'background.neutral.hovered',
83
+ color: 'text.default'
84
+ }
72
85
  },
73
86
  _active: {
74
87
  background: 'ice.50',
75
- bg: 'ice.50',
76
88
  color: 'dark',
77
- outline: 0
89
+ outline: 0,
90
+ _nextTheme: {
91
+ background: 'background.brand.selected',
92
+ color: 'text.default'
93
+ }
94
+ },
95
+ _nextTheme: {
96
+ color: 'text.default'
78
97
  }
79
98
  }
80
99
  })
@@ -10,7 +10,10 @@ const progressSlotRecipe = defineSlotRecipe({
10
10
  width: 'full',
11
11
  borderRadius: '100px',
12
12
  background: 'gray.100',
13
- transition: 'all 250ms linear'
13
+ transition: 'all 250ms linear',
14
+ _nextTheme: {
15
+ background: 'background.subtle'
16
+ }
14
17
  },
15
18
  linear: {
16
19
  transition: 'all 250ms linear',
@@ -24,7 +27,11 @@ const progressSlotRecipe = defineSlotRecipe({
24
27
  height: 'full',
25
28
  borderRadius: 'full',
26
29
  background:
27
- 'conic-gradient(var(--mp-progress-color) var(--mp-progress-width), var(--mp-colors-gray-100) 0deg)'
30
+ 'conic-gradient(var(--mp-progress-color) var(--mp-progress-width), var(--mp-colors-gray-100) 0deg)',
31
+ _nextTheme: {
32
+ background:
33
+ 'conic-gradient(var(--mp-progress-color) var(--mp-progress-width), var(--mp-colors-background-neutral-subtle) 0deg)'
34
+ }
28
35
  },
29
36
  circularTrack: {
30
37
  width: 'calc(100% - 6px)',
@@ -7,27 +7,36 @@ const radioSlotRecipe = defineSlotRecipe({
7
7
  base: {
8
8
  root: {
9
9
  position: 'relative',
10
- display: 'inline-flex',
10
+ width: 'fit-content',
11
+ display: 'flex',
11
12
  alignItems: 'center',
12
- justifyContent: 'center',
13
- gap: '2',
13
+ justifyContent: 'flex-start',
14
+ gap: '3',
14
15
  cursor: 'pointer',
15
16
  outline: 'none',
16
17
  '&[data-has-description=true]': {
17
18
  alignItems: 'flex-start',
18
19
  '& .mp-radio__control': {
19
- marginTop: '1'
20
+ marginTop: '2px'
20
21
  }
21
22
  },
22
23
  '& .mp-shared__hidden': {
23
24
  '&:focus + .mp-radio__control': {
24
25
  borderColor: 'blue.400',
25
- boxShadow: 'focus'
26
+ boxShadow: 'focus',
27
+ _nextTheme: {
28
+ borderColor: 'border.focused',
29
+ boxShadow: '0 0 0 1px {colors.border.focused}'
30
+ }
26
31
  }
27
32
  },
28
33
  _hover: {
29
34
  '& .mp-radio__control': {
30
- borderColor: 'gray.400'
35
+ borderColor: 'gray.400',
36
+ _nextTheme: {
37
+ borderColor: 'border.form',
38
+ background: 'background.neutral.hovered'
39
+ }
31
40
  }
32
41
  },
33
42
  _disabled: {
@@ -36,37 +45,45 @@ const radioSlotRecipe = defineSlotRecipe({
36
45
  borderColor: 'gray.100 !important',
37
46
  background: 'gray.50 !important',
38
47
  boxShadow: 'none !important',
48
+ _nextTheme: {
49
+ borderColor: 'border.disabled !important',
50
+ background: 'background.disabled !important'
51
+ },
39
52
 
40
53
  '& div': {
41
- background: 'gray.400'
54
+ background: 'gray.400',
55
+ _nextTheme: {
56
+ color: 'icon.disabled'
57
+ }
42
58
  }
43
59
  }
44
60
  },
45
61
  _invalid: {
46
62
  '& .mp-radio__control': {
47
63
  borderColor: 'red.400',
48
- background: 'white'
64
+ background: 'white',
65
+ _nextTheme: {
66
+ borderColor: 'border.danger !important',
67
+ background: 'background.neutral'
68
+ }
49
69
  }
50
70
  },
51
71
  _checked: {
52
72
  '& .mp-radio__control': {
53
73
  borderColor: 'blue.400',
54
- background: 'blue.400'
55
- },
56
- _hover: {
57
- '& .mp-radio__control': {
58
- borderColor: 'blue.400'
74
+ background: 'blue.400',
75
+ _nextTheme: {
76
+ borderColor: 'border.selected',
77
+ background: 'background.brand.bold.selected'
59
78
  }
60
- }
61
- },
62
- _indeterminate: {
63
- '& .mp-radio__control': {
64
- borderColor: 'blue.400',
65
- background: 'blue.400'
66
79
  },
67
80
  _hover: {
68
81
  '& .mp-radio__control': {
69
- borderColor: 'blue.400'
82
+ borderColor: 'blue.400',
83
+ _nextTheme: {
84
+ borderColor: 'border.selected.hovered',
85
+ background: 'background.brand.bold.hovered'
86
+ }
70
87
  }
71
88
  }
72
89
  }
@@ -86,12 +103,26 @@ const radioSlotRecipe = defineSlotRecipe({
86
103
  borderColor: 'gray.100',
87
104
  borderRadius: 'full',
88
105
  background: 'white',
106
+ _nextTheme: {
107
+ width: '4',
108
+ height: '4',
109
+ borderWidth: 'sm',
110
+ borderColor: 'border.form',
111
+ borderRadius: 'full',
112
+ background: 'background.neutral'
113
+ },
89
114
 
90
115
  '& div': {
91
116
  width: '2.5',
92
117
  height: '2.5',
93
118
  background: 'white',
94
- borderRadius: 'full'
119
+ borderRadius: 'full',
120
+ _nextTheme: {
121
+ width: '2',
122
+ height: '2',
123
+ background: 'icon.inverse',
124
+ borderRadius: 'full'
125
+ }
95
126
  }
96
127
  },
97
128
  label: {
@@ -30,6 +30,10 @@ const richTextEditorSlotRecipe = defineSlotRecipe({
30
30
  paddingY: '1',
31
31
  paddingX: '3',
32
32
  marginBottom: '1',
33
+ _nextTheme: {
34
+ backgroundColor: 'background.neutral.subtle',
35
+ border: '0px solid'
36
+ },
33
37
  '& button': {
34
38
  display: 'flex',
35
39
  justifyContent: 'center',
@@ -42,18 +46,30 @@ const richTextEditorSlotRecipe = defineSlotRecipe({
42
46
  borderRadius: 'md',
43
47
  color: 'blue.400',
44
48
  backgroundColor: 'blue.50',
45
- cursor: 'pointer'
49
+ _nextTheme: {
50
+ color: 'icon.brand',
51
+ backgroundColor: 'background.brand.hovered'
52
+ }
46
53
  },
47
54
  '&.is-active': {
48
- color: 'blue.400'
49
- }
55
+ color: 'blue.400',
56
+ _nextTheme: {
57
+ color: 'icon.brand'
58
+ }
59
+ },
60
+ _nextTheme: {
61
+ color: 'icon.default'
62
+ },
50
63
  },
51
64
  '& button.mp-popover-list-item': {
52
65
  padding: '0',
53
66
  '&:hover': {
54
67
  borderRadius: '0',
55
68
  color: 'blue.400',
56
- backgroundColor: 'transparent'
69
+ backgroundColor: 'transparent',
70
+ _nextTheme: {
71
+ color: 'icon.brand'
72
+ }
57
73
  },
58
74
  '& div': {
59
75
  justifyContent: 'center!',
@@ -78,7 +94,10 @@ const richTextEditorSlotRecipe = defineSlotRecipe({
78
94
  content: 'attr(data-placeholder)',
79
95
  float: 'left',
80
96
  height: '0',
81
- pointerEvents: 'none'
97
+ pointerEvents: 'none',
98
+ _nextTheme: {
99
+ color: 'text.placeholder'
100
+ }
82
101
  }
83
102
  }
84
103
  },
@@ -91,6 +110,7 @@ const RTEStyleProviderRecipe = defineRecipe({
91
110
  className: 'typography-style-provider',
92
111
  jsx: ['MpTypographyStyleProvider', 'mp-typography-style-provider'],
93
112
  base: {
113
+ color: 'dark',
94
114
  '& h1': {
95
115
  textStyle: 'h1'
96
116
  },
@@ -129,7 +149,13 @@ const RTEStyleProviderRecipe = defineRecipe({
129
149
  '& blockquote': {
130
150
  borderLeft: '4px solid',
131
151
  borderColor: 'dark',
132
- padding: '2'
152
+ padding: '2',
153
+ _nextTheme: {
154
+ borderColor: 'text.default'
155
+ }
156
+ },
157
+ _nextTheme: {
158
+ color: 'text.default'
133
159
  }
134
160
  },
135
161
  variants: {},
@@ -18,7 +18,10 @@ const segmentedControlSlotRecipe = defineSlotRecipe({
18
18
  borderColor: 'gray.100',
19
19
  borderRadius: 'md',
20
20
  outline: '0px solid transparent',
21
- padding: '1'
21
+ padding: '1',
22
+ _nextTheme: {
23
+ borderColor: 'border.form',
24
+ }
22
25
  },
23
26
  item: {
24
27
  flex: 'var(--mp-segmented-control--flex)',
@@ -45,18 +48,40 @@ const segmentedControlSlotRecipe = defineSlotRecipe({
45
48
  borderRadius: 'sm',
46
49
  transition: 'all 250ms',
47
50
  color: 'gray.600',
48
- backgroundColor: 'white',
51
+ backgroundColor: 'transparent',
49
52
  gap: 'var(--mp-segmented-control--gap)',
50
53
  paddingX: 'var(--mp-segmented-control--padding-x)',
51
54
  'input[type=radio]:hover:not(:disabled):not(:checked) + &': {
52
- color: 'blue.700'
55
+ color: 'blue.700',
56
+ _nextTheme: {
57
+ color: 'text.secondary',
58
+ backgroundColor: 'background.neutral.hovered',
59
+ '& > svg': {
60
+ color: 'icon.default',
61
+ }
62
+ }
53
63
  },
54
64
  'input[type=radio]:checked + &, input[type=radio][aria-checked=mixed] + &': {
55
65
  color: 'blue.400',
56
- backgroundColor: 'blue.50'
66
+ backgroundColor: 'blue.50',
67
+ _nextTheme: {
68
+ color: 'text.selected',
69
+ backgroundColor: 'background.brand.selected',
70
+ '& > svg': {
71
+ color: 'icon.selected',
72
+ }
73
+ }
57
74
  },
58
75
  'input[type=radio]:disabled + &': {
59
- color: 'gray.400'
76
+ color: 'gray.400',
77
+ cursor: 'not-allowed',
78
+ _nextTheme: {
79
+ color: 'text.disabled',
80
+ backgroundColor: 'background.disabled',
81
+ '& > svg': {
82
+ color: 'icon.disabled',
83
+ }
84
+ }
60
85
  },
61
86
  'input[type=radio]:checked:hover:not(:disabled) + &, input[type=radio][aria-checked=mixed]:hover:not(:disabled) + &':
62
87
  {
@@ -64,13 +89,28 @@ const segmentedControlSlotRecipe = defineSlotRecipe({
64
89
  },
65
90
  'input[type=radio]:checked:focus + &, input[type=radio][aria-checked=mixed]:focus + &': {
66
91
  color: 'blue.700',
67
- boxShadow: 'outer'
92
+ boxShadow: 'outer',
93
+ _nextTheme: {
94
+ color: 'text.selected',
95
+ boxShadow: '0 0 0 2px {colors.border.focused}'
96
+ }
68
97
  },
69
98
  'input[type=radio]:checked:disabled + &, input[type=radio][aria-checked=mixed]:disabled + &':
70
99
  {
71
100
  color: 'gray.400',
72
- backgroundColor: 'gray.50'
101
+ backgroundColor: 'gray.50',
102
+ cursor: 'not-allowed',
103
+ _nextTheme: {
104
+ color: 'text.disabled',
105
+ backgroundColor: 'background.disabled'
106
+ }
107
+ },
108
+ _nextTheme: {
109
+ color: 'text.secondary',
110
+ '& > svg': {
111
+ color: 'icon.default',
73
112
  }
113
+ }
74
114
  },
75
115
  label: {
76
116
  color: 'currentColor',
@@ -54,6 +54,48 @@ const selectSlotRecipe = defineSlotRecipe({
54
54
  },
55
55
  _isFullWidth: {
56
56
  width: 'full'
57
+ },
58
+ _placeholder: {
59
+ color: 'gray.400',
60
+ },
61
+ _nextTheme: {
62
+ backgroundColor: 'background.neutral',
63
+ borderColor: 'border.form',
64
+ _hover: {
65
+ borderColor: 'border.form',
66
+ backgroundColor: 'background.neutral.hovered',
67
+ _invalid: {
68
+ borderColor: 'border.danger'
69
+ }
70
+ },
71
+ _focus: {
72
+ borderColor: 'transparent',
73
+ boxShadow: 'focus',
74
+ _hover: {
75
+ borderColor: 'transparent',
76
+ },
77
+ _invalid: {
78
+ borderColor: 'transparent',
79
+ _hover: {
80
+ borderColor: 'transparent',
81
+ },
82
+ }
83
+ },
84
+ _disabled: {
85
+ color: 'text.disabled',
86
+ backgroundColor: 'background.disabled',
87
+ borderColor: 'border.disabled',
88
+ _hover: {
89
+ borderColor: 'border.disabled',
90
+ backgroundColor: 'background.disabled',
91
+ },
92
+ },
93
+ _invalid: {
94
+ borderColor: 'border.danger'
95
+ },
96
+ _placeholder: {
97
+ borderColor: 'text.placeholder',
98
+ }
57
99
  }
58
100
  },
59
101
  clear: {