@infonomic/uikit 5.42.0 → 5.43.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.
@@ -1,11 +1,12 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
+
9
10
  .container,
10
11
  :global(.infonomic-checkbox-container) {
11
12
  width: 100%;
@@ -62,9 +63,17 @@
62
63
  width: 20px;
63
64
  height: 20px;
64
65
  color: var(--checkbox-icon-color);
66
+ /* Hidden by default — prevents flash on initial render before data-state is applied */
67
+ opacity: 0;
68
+ transform: scale(0.8);
69
+ /* Transition handles the unchecked→unchecked no-op and the checked→unchecked exit.
70
+ It only fires on state changes, never on initial mount, so no flash. */
71
+ transition:
72
+ opacity 0.2s ease-in,
73
+ transform 0.2s ease-in;
65
74
  }
66
75
 
67
- /* Style for the "checked" state */
76
+ /* Style for the "checked" state — animation overrides the transition for bouncy entry */
68
77
  .indicator[data-state="checked"] .icon,
69
78
  :global(.infonomic-checkbox-indicator)[data-state="checked"] :global(.infonomic-checkbox-icon) {
70
79
  animation: checkBoxIn 0.3s cubic-bezier(0.25, 1.5, 0.5, 1) forwards;
@@ -72,10 +81,9 @@
72
81
  transform: scale(1);
73
82
  }
74
83
 
75
- /* Style for the "unchecked" state */
84
+ /* Style for the "unchecked" state — no animation, let the CSS transition handle the exit */
76
85
  .indicator[data-state="unchecked"] .icon,
77
86
  :global(.infonomic-checkbox-indicator)[data-state="unchecked"] :global(.infonomic-checkbox-icon) {
78
- animation: checkBoxOut 0.2s ease-in;
79
87
  opacity: 0;
80
88
  transform: scale(0.8);
81
89
  }
@@ -88,10 +96,10 @@
88
96
  color: var(--label-color);
89
97
  }
90
98
 
91
- .checkbox:disabled ~ .label,
92
- .checkbox[disabled] ~ .label,
93
- :global(.infonomic-checkbox):disabled ~ :global(.infonomic-checkbox-label),
94
- :global(.infonomic-checkbox)[disabled] ~ :global(.infonomic-checkbox-label) {
99
+ .checkbox:disabled~.label,
100
+ .checkbox[disabled]~.label,
101
+ :global(.infonomic-checkbox):disabled~ :global(.infonomic-checkbox-label),
102
+ :global(.infonomic-checkbox)[disabled]~ :global(.infonomic-checkbox-label) {
95
103
  pointer-events: none;
96
104
  }
97
105
 
@@ -115,8 +123,8 @@
115
123
  height: 16px;
116
124
  }
117
125
 
118
- .sm ~ .label,
119
- :global(.infonomic-checkbox-sm) ~ :global(.infonomic-checkbox-label) {
126
+ .sm~.label,
127
+ :global(.infonomic-checkbox-sm)~ :global(.infonomic-checkbox-label) {
120
128
  font-size: 0.85rem;
121
129
  }
122
130
 
@@ -132,8 +140,8 @@
132
140
  height: 18px;
133
141
  }
134
142
 
135
- .md ~ .label,
136
- :global(.infonomic-checkbox-md) ~ :global(.infonomic-checkbox-label) {
143
+ .md~.label,
144
+ :global(.infonomic-checkbox-md)~ :global(.infonomic-checkbox-label) {
137
145
  font-size: 0.875rem;
138
146
  }
139
147
 
@@ -149,8 +157,8 @@
149
157
  height: 22px;
150
158
  }
151
159
 
152
- .lg ~ .label,
153
- :global(.infonomic-checkbox-lg) ~ :global(.infonomic-checkbox-label) {
160
+ .lg~.label,
161
+ :global(.infonomic-checkbox-lg)~ :global(.infonomic-checkbox-label) {
154
162
  font-size: 1rem;
155
163
  }
156
164
 
@@ -269,16 +277,4 @@
269
277
  }
270
278
  }
271
279
 
272
- /* Define keyframes for the "unchecked" state */
273
- @keyframes checkBoxOut {
274
- from {
275
- opacity: 1;
276
- transform: scale(1);
277
- }
278
-
279
- to {
280
- opacity: 0;
281
- transform: scale(0.8);
282
- }
283
- }
284
- }
280
+ }
@@ -7,7 +7,6 @@ const checkbox_module = {
7
7
  indicator: "indicator-uDQYoF",
8
8
  icon: "icon-gwRvT_",
9
9
  checkBoxIn: "checkBoxIn-DSnbUl",
10
- checkBoxOut: "checkBoxOut-lbT33D",
11
10
  label: "label-rsCVhp",
12
11
  errorText: "errorText-nwgg63",
13
12
  sm: "sm-FMFjMf",
@@ -47,6 +47,9 @@
47
47
  width: 20px;
48
48
  height: 20px;
49
49
  color: var(--checkbox-icon-color);
50
+ opacity: 0;
51
+ transition: opacity .2s ease-in, transform .2s ease-in;
52
+ transform: scale(.8);
50
53
  }
51
54
 
52
55
  :is(.indicator-uDQYoF[data-state="checked"] .icon-gwRvT_, .infonomic-checkbox-indicator[data-state="checked"] .infonomic-checkbox-icon) {
@@ -57,7 +60,6 @@
57
60
 
58
61
  :is(.indicator-uDQYoF[data-state="unchecked"] .icon-gwRvT_, .infonomic-checkbox-indicator[data-state="unchecked"] .infonomic-checkbox-icon) {
59
62
  opacity: 0;
60
- animation: .2s ease-in checkBoxOut-lbT33D;
61
63
  transform: scale(.8);
62
64
  }
63
65
 
@@ -207,17 +209,5 @@
207
209
  transform: scale(1);
208
210
  }
209
211
  }
210
-
211
- @keyframes checkBoxOut-lbT33D {
212
- from {
213
- opacity: 1;
214
- transform: scale(1);
215
- }
216
-
217
- to {
218
- opacity: 0;
219
- transform: scale(.8);
220
- }
221
- }
222
212
  }
223
213
 
@@ -45,7 +45,7 @@ function select_Select({ id, children, placeholder, disabledValue, intent, varia
45
45
  children: /*#__PURE__*/ jsx(ChevronUpIcon, {})
46
46
  }),
47
47
  /*#__PURE__*/ jsx(Select.Viewport, {
48
- className: select_module.viewport,
48
+ className: classnames(select_module.viewport, null != size && select_module[`viewport-${size}`]),
49
49
  children: /*#__PURE__*/ jsx(Select.Group, {
50
50
  className: select_module.group,
51
51
  children: children
@@ -1,11 +1,12 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
+
9
10
  .content,
10
11
  :global(.infonomic-select-content) {
11
12
  z-index: 50;
@@ -22,6 +23,26 @@
22
23
  padding: 6px;
23
24
  }
24
25
 
26
+ .viewport-xs {
27
+ padding: 4px;
28
+ }
29
+
30
+ .viewport-sm {
31
+ padding: 4px;
32
+ }
33
+
34
+ .viewport-md {
35
+ padding: 6px;
36
+ }
37
+
38
+ .viewport-lg {
39
+ padding: 6px;
40
+ }
41
+
42
+ .viewport-xl {
43
+ padding: 8px;
44
+ }
45
+
25
46
  .group,
26
47
  :global(.infonomic-select-group) {
27
48
  z-index: 50;
@@ -48,8 +69,8 @@
48
69
  background-color: var(--surface-item);
49
70
  font-size: 1rem;
50
71
  line-height: 1;
51
- padding-right: 35px;
52
- padding-left: 25px;
72
+ padding-right: 32px;
73
+ padding-left: 24px;
53
74
  height: 32px;
54
75
  display: flex;
55
76
  align-items: center;
@@ -73,9 +94,60 @@
73
94
  :global(.infonomic-select-item-indicator) {
74
95
  position: absolute;
75
96
  left: 0;
76
- width: 25px;
97
+ width: 24px;
77
98
  display: inline-flex;
78
99
  align-items: center;
79
100
  justify-content: center;
80
101
  }
81
- }
102
+
103
+ /* size variants — treat current values as 'md' */
104
+ .viewport-xs .select-item {
105
+ font-size: 0.75rem;
106
+ height: 24px;
107
+ padding-right: 28px;
108
+ padding-left: 20px;
109
+ border-radius: 4px;
110
+ }
111
+
112
+ .viewport-xs .select-item-indicator {
113
+ width: 20px;
114
+ }
115
+
116
+ .viewport-sm .select-item {
117
+ font-size: 0.875rem;
118
+ height: 28px;
119
+ padding-right: 30px;
120
+ padding-left: 22px;
121
+ border-radius: 5px;
122
+ }
123
+
124
+ .viewport-sm .select-item-indicator {
125
+ width: 22px;
126
+ }
127
+
128
+ /* .viewport-md — inherits base .select-item values */
129
+
130
+ .viewport-lg .select-item {
131
+ font-size: 1.125rem;
132
+ height: 34px;
133
+ padding-right: 32px;
134
+ padding-left: 24px;
135
+ border-radius: 6px;
136
+ }
137
+
138
+ .viewport-lg .select-item-indicator {
139
+ width: 24px;
140
+ }
141
+
142
+ .viewport-xl .select-item {
143
+ font-size: 1.25rem;
144
+ height: 40px;
145
+ padding-right: 36px;
146
+ padding-left: 28px;
147
+ border-radius: 8px;
148
+ }
149
+
150
+ .viewport-xl .select-item-indicator {
151
+ width: 28px;
152
+ }
153
+ }
@@ -2,6 +2,16 @@ import "./select_module.css";
2
2
  const select_module = {
3
3
  content: "content-Dr272c",
4
4
  viewport: "viewport-avysx0",
5
+ "viewport-xs": "viewport-xs-ddEB1m",
6
+ viewportXs: "viewport-xs-ddEB1m",
7
+ "viewport-sm": "viewport-sm-fUHdZh",
8
+ viewportSm: "viewport-sm-fUHdZh",
9
+ "viewport-md": "viewport-md-GHDx8O",
10
+ viewportMd: "viewport-md-GHDx8O",
11
+ "viewport-lg": "viewport-lg-joLSnL",
12
+ viewportLg: "viewport-lg-joLSnL",
13
+ "viewport-xl": "viewport-xl-RoyZD9",
14
+ viewportXl: "viewport-xl-RoyZD9",
5
15
  group: "group-MyzEdB",
6
16
  "scroll-button": "scroll-button-JaxK2W",
7
17
  scrollButton: "scroll-button-JaxK2W",
@@ -15,6 +15,18 @@
15
15
  padding: 6px;
16
16
  }
17
17
 
18
+ .viewport-xs-ddEB1m, .viewport-sm-fUHdZh {
19
+ padding: 4px;
20
+ }
21
+
22
+ .viewport-md-GHDx8O, .viewport-lg-joLSnL {
23
+ padding: 6px;
24
+ }
25
+
26
+ .viewport-xl-RoyZD9 {
27
+ padding: 8px;
28
+ }
29
+
18
30
  :is(.group-MyzEdB, .infonomic-select-group) {
19
31
  z-index: 50;
20
32
  }
@@ -39,8 +51,8 @@
39
51
  border-radius: 6px;
40
52
  align-items: center;
41
53
  height: 32px;
42
- padding-left: 25px;
43
- padding-right: 35px;
54
+ padding-left: 24px;
55
+ padding-right: 32px;
44
56
  font-size: 1rem;
45
57
  line-height: 1;
46
58
  display: flex;
@@ -72,10 +84,58 @@
72
84
  :is(.select-item-indicator-nXFGV7, .infonomic-select-item-indicator) {
73
85
  justify-content: center;
74
86
  align-items: center;
75
- width: 25px;
87
+ width: 24px;
76
88
  display: inline-flex;
77
89
  position: absolute;
78
90
  left: 0;
79
91
  }
92
+
93
+ .viewport-xs-ddEB1m .select-item-HiANA0 {
94
+ border-radius: 4px;
95
+ height: 24px;
96
+ padding-left: 20px;
97
+ padding-right: 28px;
98
+ font-size: .75rem;
99
+ }
100
+
101
+ .viewport-xs-ddEB1m .select-item-indicator-nXFGV7 {
102
+ width: 20px;
103
+ }
104
+
105
+ .viewport-sm-fUHdZh .select-item-HiANA0 {
106
+ border-radius: 5px;
107
+ height: 28px;
108
+ padding-left: 22px;
109
+ padding-right: 30px;
110
+ font-size: .875rem;
111
+ }
112
+
113
+ .viewport-sm-fUHdZh .select-item-indicator-nXFGV7 {
114
+ width: 22px;
115
+ }
116
+
117
+ .viewport-lg-joLSnL .select-item-HiANA0 {
118
+ border-radius: 6px;
119
+ height: 34px;
120
+ padding-left: 24px;
121
+ padding-right: 32px;
122
+ font-size: 1.125rem;
123
+ }
124
+
125
+ .viewport-lg-joLSnL .select-item-indicator-nXFGV7 {
126
+ width: 24px;
127
+ }
128
+
129
+ .viewport-xl-RoyZD9 .select-item-HiANA0 {
130
+ border-radius: 8px;
131
+ height: 40px;
132
+ padding-left: 28px;
133
+ padding-right: 36px;
134
+ font-size: 1.25rem;
135
+ }
136
+
137
+ .viewport-xl-RoyZD9 .select-item-indicator-nXFGV7 {
138
+ width: 28px;
139
+ }
80
140
  }
81
141
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@infonomic/uikit",
3
3
  "private": false,
4
4
  "license": "MIT",
5
- "version": "5.42.0",
5
+ "version": "5.43.0",
6
6
  "type": "module",
7
7
  "description": "Infonomic UI kit is a collection of reusable UI components and utilities for React and Astro.",
8
8
  "keywords": [
@@ -1,11 +1,12 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
+
9
10
  .container,
10
11
  :global(.infonomic-checkbox-container) {
11
12
  width: 100%;
@@ -62,9 +63,17 @@
62
63
  width: 20px;
63
64
  height: 20px;
64
65
  color: var(--checkbox-icon-color);
66
+ /* Hidden by default — prevents flash on initial render before data-state is applied */
67
+ opacity: 0;
68
+ transform: scale(0.8);
69
+ /* Transition handles the unchecked→unchecked no-op and the checked→unchecked exit.
70
+ It only fires on state changes, never on initial mount, so no flash. */
71
+ transition:
72
+ opacity 0.2s ease-in,
73
+ transform 0.2s ease-in;
65
74
  }
66
75
 
67
- /* Style for the "checked" state */
76
+ /* Style for the "checked" state — animation overrides the transition for bouncy entry */
68
77
  .indicator[data-state="checked"] .icon,
69
78
  :global(.infonomic-checkbox-indicator)[data-state="checked"] :global(.infonomic-checkbox-icon) {
70
79
  animation: checkBoxIn 0.3s cubic-bezier(0.25, 1.5, 0.5, 1) forwards;
@@ -72,10 +81,9 @@
72
81
  transform: scale(1);
73
82
  }
74
83
 
75
- /* Style for the "unchecked" state */
84
+ /* Style for the "unchecked" state — no animation, let the CSS transition handle the exit */
76
85
  .indicator[data-state="unchecked"] .icon,
77
86
  :global(.infonomic-checkbox-indicator)[data-state="unchecked"] :global(.infonomic-checkbox-icon) {
78
- animation: checkBoxOut 0.2s ease-in;
79
87
  opacity: 0;
80
88
  transform: scale(0.8);
81
89
  }
@@ -88,10 +96,10 @@
88
96
  color: var(--label-color);
89
97
  }
90
98
 
91
- .checkbox:disabled ~ .label,
92
- .checkbox[disabled] ~ .label,
93
- :global(.infonomic-checkbox):disabled ~ :global(.infonomic-checkbox-label),
94
- :global(.infonomic-checkbox)[disabled] ~ :global(.infonomic-checkbox-label) {
99
+ .checkbox:disabled~.label,
100
+ .checkbox[disabled]~.label,
101
+ :global(.infonomic-checkbox):disabled~ :global(.infonomic-checkbox-label),
102
+ :global(.infonomic-checkbox)[disabled]~ :global(.infonomic-checkbox-label) {
95
103
  pointer-events: none;
96
104
  }
97
105
 
@@ -115,8 +123,8 @@
115
123
  height: 16px;
116
124
  }
117
125
 
118
- .sm ~ .label,
119
- :global(.infonomic-checkbox-sm) ~ :global(.infonomic-checkbox-label) {
126
+ .sm~.label,
127
+ :global(.infonomic-checkbox-sm)~ :global(.infonomic-checkbox-label) {
120
128
  font-size: 0.85rem;
121
129
  }
122
130
 
@@ -132,8 +140,8 @@
132
140
  height: 18px;
133
141
  }
134
142
 
135
- .md ~ .label,
136
- :global(.infonomic-checkbox-md) ~ :global(.infonomic-checkbox-label) {
143
+ .md~.label,
144
+ :global(.infonomic-checkbox-md)~ :global(.infonomic-checkbox-label) {
137
145
  font-size: 0.875rem;
138
146
  }
139
147
 
@@ -149,8 +157,8 @@
149
157
  height: 22px;
150
158
  }
151
159
 
152
- .lg ~ .label,
153
- :global(.infonomic-checkbox-lg) ~ :global(.infonomic-checkbox-label) {
160
+ .lg~.label,
161
+ :global(.infonomic-checkbox-lg)~ :global(.infonomic-checkbox-label) {
154
162
  font-size: 1rem;
155
163
  }
156
164
 
@@ -269,16 +277,4 @@
269
277
  }
270
278
  }
271
279
 
272
- /* Define keyframes for the "unchecked" state */
273
- @keyframes checkBoxOut {
274
- from {
275
- opacity: 1;
276
- transform: scale(1);
277
- }
278
-
279
- to {
280
- opacity: 0;
281
- transform: scale(0.8);
282
- }
283
- }
284
- }
280
+ }
@@ -1,11 +1,12 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
+
9
10
  .content,
10
11
  :global(.infonomic-select-content) {
11
12
  z-index: 50;
@@ -22,6 +23,26 @@
22
23
  padding: 6px;
23
24
  }
24
25
 
26
+ .viewport-xs {
27
+ padding: 4px;
28
+ }
29
+
30
+ .viewport-sm {
31
+ padding: 4px;
32
+ }
33
+
34
+ .viewport-md {
35
+ padding: 6px;
36
+ }
37
+
38
+ .viewport-lg {
39
+ padding: 6px;
40
+ }
41
+
42
+ .viewport-xl {
43
+ padding: 8px;
44
+ }
45
+
25
46
  .group,
26
47
  :global(.infonomic-select-group) {
27
48
  z-index: 50;
@@ -48,8 +69,8 @@
48
69
  background-color: var(--surface-item);
49
70
  font-size: 1rem;
50
71
  line-height: 1;
51
- padding-right: 35px;
52
- padding-left: 25px;
72
+ padding-right: 32px;
73
+ padding-left: 24px;
53
74
  height: 32px;
54
75
  display: flex;
55
76
  align-items: center;
@@ -73,9 +94,60 @@
73
94
  :global(.infonomic-select-item-indicator) {
74
95
  position: absolute;
75
96
  left: 0;
76
- width: 25px;
97
+ width: 24px;
77
98
  display: inline-flex;
78
99
  align-items: center;
79
100
  justify-content: center;
80
101
  }
81
- }
102
+
103
+ /* size variants — treat current values as 'md' */
104
+ .viewport-xs .select-item {
105
+ font-size: 0.75rem;
106
+ height: 24px;
107
+ padding-right: 28px;
108
+ padding-left: 20px;
109
+ border-radius: 4px;
110
+ }
111
+
112
+ .viewport-xs .select-item-indicator {
113
+ width: 20px;
114
+ }
115
+
116
+ .viewport-sm .select-item {
117
+ font-size: 0.875rem;
118
+ height: 28px;
119
+ padding-right: 30px;
120
+ padding-left: 22px;
121
+ border-radius: 5px;
122
+ }
123
+
124
+ .viewport-sm .select-item-indicator {
125
+ width: 22px;
126
+ }
127
+
128
+ /* .viewport-md — inherits base .select-item values */
129
+
130
+ .viewport-lg .select-item {
131
+ font-size: 1.125rem;
132
+ height: 34px;
133
+ padding-right: 32px;
134
+ padding-left: 24px;
135
+ border-radius: 6px;
136
+ }
137
+
138
+ .viewport-lg .select-item-indicator {
139
+ width: 24px;
140
+ }
141
+
142
+ .viewport-xl .select-item {
143
+ font-size: 1.25rem;
144
+ height: 40px;
145
+ padding-right: 36px;
146
+ padding-left: 28px;
147
+ border-radius: 8px;
148
+ }
149
+
150
+ .viewport-xl .select-item-indicator {
151
+ width: 28px;
152
+ }
153
+ }
@@ -19,14 +19,52 @@ const values: SelectValue[] = [
19
19
 
20
20
  export const Default = (): React.JSX.Element => {
21
21
  return (
22
- <div style={{ maxWidth: '600px', margin: '2rem auto' }}>
23
- <Select placeholder="Select one..." helpText="Select an item.">
24
- {values.map((value) => (
25
- <SelectItem key={value.value} value={value.value}>
26
- {value.label}
27
- </SelectItem>
28
- ))}
29
- </Select>
30
- </div>
22
+ <>
23
+ <div style={{ maxWidth: '600px', margin: '2rem auto' }}>
24
+ <Select size="xl" placeholder="Select one..." helpText="Extra Large select.">
25
+ {values.map((value) => (
26
+ <SelectItem key={value.value} value={value.value}>
27
+ {value.label}
28
+ </SelectItem>
29
+ ))}
30
+ </Select>
31
+ </div>
32
+ <div style={{ maxWidth: '600px', margin: '2rem auto' }}>
33
+ <Select size="lg" placeholder="Select one..." helpText="Large select.">
34
+ {values.map((value) => (
35
+ <SelectItem key={value.value} value={value.value}>
36
+ {value.label}
37
+ </SelectItem>
38
+ ))}
39
+ </Select>
40
+ </div>
41
+ <div style={{ maxWidth: '600px', margin: '2rem auto' }}>
42
+ <Select size="md" placeholder="Select one..." helpText="Medium select.">
43
+ {values.map((value) => (
44
+ <SelectItem key={value.value} value={value.value}>
45
+ {value.label}
46
+ </SelectItem>
47
+ ))}
48
+ </Select>
49
+ </div>
50
+ <div style={{ maxWidth: '600px', margin: '2rem auto' }}>
51
+ <Select size="sm" placeholder="Select one..." helpText="Small select.">
52
+ {values.map((value) => (
53
+ <SelectItem key={value.value} value={value.value}>
54
+ {value.label}
55
+ </SelectItem>
56
+ ))}
57
+ </Select>
58
+ </div>
59
+ <div style={{ maxWidth: '600px', margin: '2rem auto' }}>
60
+ <Select size="xs" placeholder="Select one..." helpText="Extra small select.">
61
+ {values.map((value) => (
62
+ <SelectItem key={value.value} value={value.value}>
63
+ {value.label}
64
+ </SelectItem>
65
+ ))}
66
+ </Select>
67
+ </div>
68
+ </>
31
69
  )
32
70
  }
@@ -77,7 +77,7 @@ export function Select({
77
77
  <SelectPrimitive.ScrollUpButton className={styles['scroll-button']}>
78
78
  <ChevronUpIcon />
79
79
  </SelectPrimitive.ScrollUpButton>
80
- <SelectPrimitive.Viewport className={styles.viewport}>
80
+ <SelectPrimitive.Viewport className={cx(styles.viewport, size != null && styles[`viewport-${size}`])}>
81
81
  <SelectPrimitive.Group className={styles.group}>{children}</SelectPrimitive.Group>
82
82
  </SelectPrimitive.Viewport>
83
83
  <SelectPrimitive.ScrollDownButton className={styles['scroll-button']}>