@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.
- package/dist/components/forms/checkbox.module.css +27 -31
- package/dist/components/forms/checkbox.module.js +0 -1
- package/dist/components/forms/checkbox_module.css +3 -13
- package/dist/components/forms/select.js +1 -1
- package/dist/components/forms/select.module.css +81 -9
- package/dist/components/forms/select.module.js +10 -0
- package/dist/components/forms/select_module.css +63 -3
- package/package.json +1 -1
- package/src/components/forms/checkbox.module.css +27 -31
- package/src/components/forms/select.module.css +81 -9
- package/src/components/forms/select.stories.tsx +47 -9
- package/src/components/forms/select.tsx +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
@layer infonomic-base,
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
|
92
|
-
.checkbox[disabled]
|
|
93
|
-
:global(.infonomic-checkbox):disabled
|
|
94
|
-
:global(.infonomic-checkbox)[disabled]
|
|
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
|
|
119
|
-
:global(.infonomic-checkbox-sm)
|
|
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
|
|
136
|
-
:global(.infonomic-checkbox-md)
|
|
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
|
|
153
|
-
:global(.infonomic-checkbox-lg)
|
|
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
|
-
|
|
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
|
+
}
|
|
@@ -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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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:
|
|
52
|
-
padding-left:
|
|
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:
|
|
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:
|
|
43
|
-
padding-right:
|
|
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:
|
|
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
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
@layer infonomic-base,
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
|
92
|
-
.checkbox[disabled]
|
|
93
|
-
:global(.infonomic-checkbox):disabled
|
|
94
|
-
:global(.infonomic-checkbox)[disabled]
|
|
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
|
|
119
|
-
:global(.infonomic-checkbox-sm)
|
|
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
|
|
136
|
-
:global(.infonomic-checkbox-md)
|
|
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
|
|
153
|
-
:global(.infonomic-checkbox-lg)
|
|
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
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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:
|
|
52
|
-
padding-left:
|
|
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:
|
|
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
|
-
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
{value.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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']}>
|