@indico-data/design-system 3.20.0 → 3.22.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/lib/components/index.d.ts +1 -0
- package/lib/components/pill/Pill.d.ts +1 -1
- package/lib/components/pill/Pill.stories.d.ts +13 -3
- package/lib/components/pill/types.d.ts +22 -9
- package/lib/index.css +638 -2733
- package/lib/index.d.ts +22 -10
- package/lib/index.esm.css +638 -2733
- package/lib/index.esm.js +10 -7
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +10 -7
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +2 -2
- package/package.json +1 -1
- package/src/components/forms/form/styles/Form.scss +1 -1
- package/src/components/forms/select/styles/Select.scss +1 -1
- package/src/components/index.ts +1 -0
- package/src/components/pill/Pill.mdx +66 -7
- package/src/components/pill/Pill.stories.tsx +384 -116
- package/src/components/pill/Pill.tsx +39 -10
- package/src/components/pill/__tests__/Pill.test.tsx +104 -40
- package/src/components/pill/styles/Pill.scss +118 -21
- package/src/components/pill/styles/_tokens.scss +408 -0
- package/src/components/pill/types.ts +22 -10
- package/src/styles/index.scss +2 -0
- package/src/styles/primitives/_colors.scss +11 -9
- package/src/styles/tokens/_semantic-tokens.scss +9 -3
- package/src/types.ts +7 -2
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// PILL COMPONENT TOKENS (internal)
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// These CSS custom properties are implementation details of the Pill component.
|
|
5
|
+
// They provide light/dark theme values for each color × variant combination.
|
|
6
|
+
// They are NOT part of the public token API — consumers should style pills
|
|
7
|
+
// through the component props, not by overriding these variables.
|
|
8
|
+
//
|
|
9
|
+
// Aligned with Figma's "Pills" variable group.
|
|
10
|
+
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// OUTLINE - Light Theme
|
|
13
|
+
// ============================================================================
|
|
14
|
+
:root,
|
|
15
|
+
:root [data-theme='light'] {
|
|
16
|
+
// Outline / Red
|
|
17
|
+
--pf-pill-outline-red-bg: var(--pf-red-color-150);
|
|
18
|
+
--pf-pill-outline-red-text: var(--pf-red-color-500);
|
|
19
|
+
--pf-pill-outline-red-border: var(--pf-red-color-250);
|
|
20
|
+
--pf-pill-outline-red-dot: var(--pf-red-color-400);
|
|
21
|
+
--pf-pill-outline-red-icon: var(--pf-red-color-450);
|
|
22
|
+
--pf-pill-outline-red-close: var(--pf-red-color-300);
|
|
23
|
+
--pf-pill-outline-red-close-hover: var(--pf-red-color-400);
|
|
24
|
+
--pf-pill-outline-red-close-hover-bg: var(--pf-red-color-100);
|
|
25
|
+
|
|
26
|
+
// Outline / Purple
|
|
27
|
+
--pf-pill-outline-purple-bg: var(--pf-purple-color-150);
|
|
28
|
+
--pf-pill-outline-purple-text: var(--pf-purple-color-500);
|
|
29
|
+
--pf-pill-outline-purple-border: var(--pf-purple-color-250);
|
|
30
|
+
--pf-pill-outline-purple-dot: var(--pf-purple-color-400);
|
|
31
|
+
--pf-pill-outline-purple-icon: var(--pf-purple-color-400);
|
|
32
|
+
--pf-pill-outline-purple-close: var(--pf-purple-color-300);
|
|
33
|
+
--pf-pill-outline-purple-close-hover: var(--pf-purple-color-400);
|
|
34
|
+
--pf-pill-outline-purple-close-hover-bg: var(--pf-purple-color-100);
|
|
35
|
+
|
|
36
|
+
// Outline / Yellow
|
|
37
|
+
--pf-pill-outline-yellow-bg: var(--pf-yellow-color-150);
|
|
38
|
+
--pf-pill-outline-yellow-text: var(--pf-yellow-color-600);
|
|
39
|
+
--pf-pill-outline-yellow-border: var(--pf-yellow-color-250);
|
|
40
|
+
--pf-pill-outline-yellow-dot: var(--pf-yellow-color-500);
|
|
41
|
+
--pf-pill-outline-yellow-icon: var(--pf-yellow-color-500);
|
|
42
|
+
--pf-pill-outline-yellow-close: var(--pf-yellow-color-400);
|
|
43
|
+
--pf-pill-outline-yellow-close-hover: var(--pf-yellow-color-450);
|
|
44
|
+
--pf-pill-outline-yellow-close-hover-bg: var(--pf-yellow-color-100);
|
|
45
|
+
|
|
46
|
+
// Outline / Blue
|
|
47
|
+
--pf-pill-outline-blue-bg: var(--pf-blue-color-150);
|
|
48
|
+
--pf-pill-outline-blue-text: var(--pf-blue-color-500);
|
|
49
|
+
--pf-pill-outline-blue-border: var(--pf-blue-color-250);
|
|
50
|
+
--pf-pill-outline-blue-dot: var(--pf-blue-color-400);
|
|
51
|
+
--pf-pill-outline-blue-icon: var(--pf-blue-color-450);
|
|
52
|
+
--pf-pill-outline-blue-close: var(--pf-blue-color-300);
|
|
53
|
+
--pf-pill-outline-blue-close-hover: var(--pf-blue-color-400);
|
|
54
|
+
--pf-pill-outline-blue-close-hover-bg: var(--pf-blue-color-100);
|
|
55
|
+
|
|
56
|
+
// Outline / Green
|
|
57
|
+
--pf-pill-outline-green-bg: var(--pf-green-color-150);
|
|
58
|
+
--pf-pill-outline-green-text: var(--pf-green-color-700);
|
|
59
|
+
--pf-pill-outline-green-border: var(--pf-green-color-250);
|
|
60
|
+
--pf-pill-outline-green-dot: var(--pf-green-color-500);
|
|
61
|
+
--pf-pill-outline-green-icon: var(--pf-green-color-500);
|
|
62
|
+
--pf-pill-outline-green-close: var(--pf-green-color-300);
|
|
63
|
+
--pf-pill-outline-green-close-hover: var(--pf-green-color-450);
|
|
64
|
+
--pf-pill-outline-green-close-hover-bg: var(--pf-green-color-100);
|
|
65
|
+
|
|
66
|
+
// Outline / Gray
|
|
67
|
+
--pf-pill-outline-gray-bg: var(--pf-gray-color-150);
|
|
68
|
+
--pf-pill-outline-gray-text: var(--pf-gray-color-700);
|
|
69
|
+
--pf-pill-outline-gray-border: var(--pf-gray-color-250);
|
|
70
|
+
--pf-pill-outline-gray-dot: var(--pf-gray-color-550);
|
|
71
|
+
--pf-pill-outline-gray-icon: var(--pf-gray-color-550);
|
|
72
|
+
--pf-pill-outline-gray-close: var(--pf-gray-color-500);
|
|
73
|
+
--pf-pill-outline-gray-close-hover: var(--pf-gray-color-550);
|
|
74
|
+
--pf-pill-outline-gray-close-hover-bg: var(--pf-gray-color-100);
|
|
75
|
+
|
|
76
|
+
// Outline / Pink
|
|
77
|
+
--pf-pill-outline-pink-bg: var(--pf-pink-color-150);
|
|
78
|
+
--pf-pill-outline-pink-text: var(--pf-pink-color-500);
|
|
79
|
+
--pf-pill-outline-pink-border: var(--pf-pink-color-250);
|
|
80
|
+
--pf-pill-outline-pink-dot: var(--pf-pink-color-400);
|
|
81
|
+
--pf-pill-outline-pink-icon: var(--pf-pink-color-400);
|
|
82
|
+
--pf-pill-outline-pink-close: var(--pf-pink-color-300);
|
|
83
|
+
--pf-pill-outline-pink-close-hover: var(--pf-pink-color-400);
|
|
84
|
+
--pf-pill-outline-pink-close-hover-bg: var(--pf-pink-color-100);
|
|
85
|
+
|
|
86
|
+
// Outline / Orange
|
|
87
|
+
--pf-pill-outline-orange-bg: var(--pf-orange-color-150);
|
|
88
|
+
--pf-pill-outline-orange-text: var(--pf-orange-color-500);
|
|
89
|
+
--pf-pill-outline-orange-border: var(--pf-orange-color-250);
|
|
90
|
+
--pf-pill-outline-orange-dot: var(--pf-orange-color-400);
|
|
91
|
+
--pf-pill-outline-orange-icon: var(--pf-orange-color-400);
|
|
92
|
+
--pf-pill-outline-orange-close: var(--pf-orange-color-300);
|
|
93
|
+
--pf-pill-outline-orange-close-hover: var(--pf-orange-color-400);
|
|
94
|
+
--pf-pill-outline-orange-close-hover-bg: var(--pf-orange-color-100);
|
|
95
|
+
|
|
96
|
+
// Outline / Teal
|
|
97
|
+
--pf-pill-outline-teal-bg: var(--pf-teal-color-150);
|
|
98
|
+
--pf-pill-outline-teal-text: var(--pf-teal-color-550);
|
|
99
|
+
--pf-pill-outline-teal-border: var(--pf-teal-color-250);
|
|
100
|
+
--pf-pill-outline-teal-dot: var(--pf-teal-color-500);
|
|
101
|
+
--pf-pill-outline-teal-icon: var(--pf-teal-color-500);
|
|
102
|
+
--pf-pill-outline-teal-close: var(--pf-teal-color-400);
|
|
103
|
+
--pf-pill-outline-teal-close-hover: var(--pf-teal-color-450);
|
|
104
|
+
--pf-pill-outline-teal-close-hover-bg: var(--pf-teal-color-100);
|
|
105
|
+
|
|
106
|
+
// Outline / Soft
|
|
107
|
+
--pf-pill-outline-soft-bg: var(--pf-gray-color-100);
|
|
108
|
+
--pf-pill-outline-soft-text: var(--pf-gray-color-800);
|
|
109
|
+
--pf-pill-outline-soft-border: var(--pf-gray-color-200);
|
|
110
|
+
--pf-pill-outline-soft-dot: var(--pf-gray-color-800);
|
|
111
|
+
--pf-pill-outline-soft-icon: var(--pf-gray-color-800);
|
|
112
|
+
--pf-pill-outline-soft-close: var(--pf-gray-color-800);
|
|
113
|
+
--pf-pill-outline-soft-close-hover: var(--pf-gray-color-500);
|
|
114
|
+
--pf-pill-outline-soft-close-hover-bg: var(--pf-gray-color-50);
|
|
115
|
+
|
|
116
|
+
// ============================================================================
|
|
117
|
+
// SOLID - Light Theme
|
|
118
|
+
// ============================================================================
|
|
119
|
+
|
|
120
|
+
// Solid / Red
|
|
121
|
+
--pf-pill-solid-red-bg: var(--pf-red-color-450);
|
|
122
|
+
--pf-pill-solid-red-text: var(--pf-red-color-50);
|
|
123
|
+
--pf-pill-solid-red-dot: var(--pf-red-color-250);
|
|
124
|
+
--pf-pill-solid-red-icon: var(--pf-red-color-50);
|
|
125
|
+
--pf-pill-solid-red-close: var(--pf-red-color-300);
|
|
126
|
+
--pf-pill-solid-red-close-hover: var(--pf-red-color-250);
|
|
127
|
+
--pf-pill-solid-red-close-hover-bg: var(--pf-opacity-white-200);
|
|
128
|
+
|
|
129
|
+
// Solid / Purple
|
|
130
|
+
--pf-pill-solid-purple-bg: var(--pf-purple-color-450);
|
|
131
|
+
--pf-pill-solid-purple-text: var(--pf-purple-color-100);
|
|
132
|
+
--pf-pill-solid-purple-dot: var(--pf-purple-color-300);
|
|
133
|
+
--pf-pill-solid-purple-icon: var(--pf-purple-color-100);
|
|
134
|
+
--pf-pill-solid-purple-close: var(--pf-purple-color-300);
|
|
135
|
+
--pf-pill-solid-purple-close-hover: var(--pf-purple-color-250);
|
|
136
|
+
--pf-pill-solid-purple-close-hover-bg: var(--pf-opacity-white-200);
|
|
137
|
+
|
|
138
|
+
// Solid / Yellow
|
|
139
|
+
--pf-pill-solid-yellow-bg: var(--pf-yellow-color-550);
|
|
140
|
+
--pf-pill-solid-yellow-text: var(--pf-gray-color-50);
|
|
141
|
+
--pf-pill-solid-yellow-dot: var(--pf-yellow-color-300);
|
|
142
|
+
--pf-pill-solid-yellow-icon: var(--pf-yellow-color-50);
|
|
143
|
+
--pf-pill-solid-yellow-close: var(--pf-yellow-color-400);
|
|
144
|
+
--pf-pill-solid-yellow-close-hover: var(--pf-yellow-color-300);
|
|
145
|
+
--pf-pill-solid-yellow-close-hover-bg: var(--pf-opacity-white-250);
|
|
146
|
+
|
|
147
|
+
// Solid / Blue
|
|
148
|
+
--pf-pill-solid-blue-bg: var(--pf-blue-color-500);
|
|
149
|
+
--pf-pill-solid-blue-text: var(--pf-blue-color-50);
|
|
150
|
+
--pf-pill-solid-blue-dot: var(--pf-blue-color-300);
|
|
151
|
+
--pf-pill-solid-blue-icon: var(--pf-blue-color-50);
|
|
152
|
+
--pf-pill-solid-blue-close: var(--pf-blue-color-300);
|
|
153
|
+
--pf-pill-solid-blue-close-hover: var(--pf-blue-color-250);
|
|
154
|
+
--pf-pill-solid-blue-close-hover-bg: var(--pf-opacity-white-250);
|
|
155
|
+
|
|
156
|
+
// Solid / Green
|
|
157
|
+
--pf-pill-solid-green-bg: var(--pf-green-color-600);
|
|
158
|
+
--pf-pill-solid-green-text: var(--pf-green-color-100);
|
|
159
|
+
--pf-pill-solid-green-dot: var(--pf-green-color-450);
|
|
160
|
+
--pf-pill-solid-green-icon: var(--pf-green-color-100);
|
|
161
|
+
--pf-pill-solid-green-close: var(--pf-green-color-300);
|
|
162
|
+
--pf-pill-solid-green-close-hover: var(--pf-green-color-250);
|
|
163
|
+
--pf-pill-solid-green-close-hover-bg: var(--pf-opacity-white-200);
|
|
164
|
+
|
|
165
|
+
// Solid / Gray
|
|
166
|
+
--pf-pill-solid-gray-bg: var(--pf-gray-color-700);
|
|
167
|
+
--pf-pill-solid-gray-text: var(--pf-gray-color-50);
|
|
168
|
+
--pf-pill-solid-gray-dot: var(--pf-gray-color-400);
|
|
169
|
+
--pf-pill-solid-gray-icon: var(--pf-gray-color-50);
|
|
170
|
+
--pf-pill-solid-gray-close: var(--pf-gray-color-500);
|
|
171
|
+
--pf-pill-solid-gray-close-hover: var(--pf-gray-color-450);
|
|
172
|
+
--pf-pill-solid-gray-close-hover-bg: var(--pf-opacity-white-200);
|
|
173
|
+
|
|
174
|
+
// Solid / Pink
|
|
175
|
+
--pf-pill-solid-pink-bg: var(--pf-pink-color-450);
|
|
176
|
+
--pf-pill-solid-pink-text: var(--pf-pink-color-150);
|
|
177
|
+
--pf-pill-solid-pink-dot: var(--pf-pink-color-300);
|
|
178
|
+
--pf-pill-solid-pink-icon: var(--pf-pink-color-150);
|
|
179
|
+
--pf-pill-solid-pink-close: var(--pf-pink-color-300);
|
|
180
|
+
--pf-pill-solid-pink-close-hover: var(--pf-pink-color-250);
|
|
181
|
+
--pf-pill-solid-pink-close-hover-bg: var(--pf-opacity-white-250);
|
|
182
|
+
|
|
183
|
+
// Solid / Orange
|
|
184
|
+
--pf-pill-solid-orange-bg: var(--pf-orange-color-450);
|
|
185
|
+
--pf-pill-solid-orange-text: var(--pf-orange-color-50);
|
|
186
|
+
--pf-pill-solid-orange-dot: var(--pf-orange-color-300);
|
|
187
|
+
--pf-pill-solid-orange-icon: var(--pf-orange-color-50);
|
|
188
|
+
--pf-pill-solid-orange-close: var(--pf-orange-color-300);
|
|
189
|
+
--pf-pill-solid-orange-close-hover: var(--pf-orange-color-250);
|
|
190
|
+
--pf-pill-solid-orange-close-hover-bg: var(--pf-opacity-white-250);
|
|
191
|
+
|
|
192
|
+
// Solid / Teal
|
|
193
|
+
--pf-pill-solid-teal-bg: var(--pf-teal-color-550);
|
|
194
|
+
--pf-pill-solid-teal-text: var(--pf-teal-color-100);
|
|
195
|
+
--pf-pill-solid-teal-dot: var(--pf-teal-color-250);
|
|
196
|
+
--pf-pill-solid-teal-icon: var(--pf-teal-color-100);
|
|
197
|
+
--pf-pill-solid-teal-close: var(--pf-teal-color-400);
|
|
198
|
+
--pf-pill-solid-teal-close-hover: var(--pf-teal-color-450);
|
|
199
|
+
--pf-pill-solid-teal-close-hover-bg: var(--pf-opacity-white-200);
|
|
200
|
+
|
|
201
|
+
// Solid / Soft
|
|
202
|
+
--pf-pill-solid-soft-bg: var(--pf-gray-color-200);
|
|
203
|
+
--pf-pill-solid-soft-text: var(--pf-gray-color-800);
|
|
204
|
+
--pf-pill-solid-soft-dot: var(--pf-gray-color-800);
|
|
205
|
+
--pf-pill-solid-soft-icon: var(--pf-gray-color-800);
|
|
206
|
+
--pf-pill-solid-soft-close: var(--pf-gray-color-800);
|
|
207
|
+
--pf-pill-solid-soft-close-hover: var(--pf-gray-color-550);
|
|
208
|
+
--pf-pill-solid-soft-close-hover-bg: var(--pf-opacity-white-200);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// ============================================================================
|
|
212
|
+
// OUTLINE - Dark Theme
|
|
213
|
+
// ============================================================================
|
|
214
|
+
:root [data-theme='dark'] {
|
|
215
|
+
// Outline / Red
|
|
216
|
+
--pf-pill-outline-red-bg: var(--pf-red-color-700);
|
|
217
|
+
--pf-pill-outline-red-text: var(--pf-red-color-300);
|
|
218
|
+
--pf-pill-outline-red-border: var(--pf-red-color-500);
|
|
219
|
+
--pf-pill-outline-red-dot: var(--pf-red-color-400);
|
|
220
|
+
--pf-pill-outline-red-icon: var(--pf-red-color-300);
|
|
221
|
+
--pf-pill-outline-red-close: var(--pf-red-color-500);
|
|
222
|
+
--pf-pill-outline-red-close-hover: var(--pf-red-color-450);
|
|
223
|
+
--pf-pill-outline-red-close-hover-bg: var(--pf-opacity-black-250);
|
|
224
|
+
|
|
225
|
+
// Outline / Purple
|
|
226
|
+
--pf-pill-outline-purple-bg: var(--pf-purple-color-700);
|
|
227
|
+
--pf-pill-outline-purple-text: var(--pf-purple-color-300);
|
|
228
|
+
--pf-pill-outline-purple-border: var(--pf-purple-color-450);
|
|
229
|
+
--pf-pill-outline-purple-dot: var(--pf-purple-color-400);
|
|
230
|
+
--pf-pill-outline-purple-icon: var(--pf-purple-color-300);
|
|
231
|
+
--pf-pill-outline-purple-close: var(--pf-purple-color-450);
|
|
232
|
+
--pf-pill-outline-purple-close-hover: var(--pf-purple-color-400);
|
|
233
|
+
--pf-pill-outline-purple-close-hover-bg: var(--pf-opacity-black-250);
|
|
234
|
+
|
|
235
|
+
// Outline / Yellow
|
|
236
|
+
--pf-pill-outline-yellow-bg: var(--pf-yellow-color-800);
|
|
237
|
+
--pf-pill-outline-yellow-text: var(--pf-yellow-color-300);
|
|
238
|
+
--pf-pill-outline-yellow-border: var(--pf-yellow-color-500);
|
|
239
|
+
--pf-pill-outline-yellow-dot: var(--pf-yellow-color-400);
|
|
240
|
+
--pf-pill-outline-yellow-icon: var(--pf-yellow-color-300);
|
|
241
|
+
--pf-pill-outline-yellow-close: var(--pf-yellow-color-500);
|
|
242
|
+
--pf-pill-outline-yellow-close-hover: var(--pf-yellow-color-450);
|
|
243
|
+
--pf-pill-outline-yellow-close-hover-bg: var(--pf-opacity-black-250);
|
|
244
|
+
|
|
245
|
+
// Outline / Blue
|
|
246
|
+
--pf-pill-outline-blue-bg: var(--pf-blue-color-700);
|
|
247
|
+
--pf-pill-outline-blue-text: var(--pf-blue-color-250);
|
|
248
|
+
--pf-pill-outline-blue-border: var(--pf-blue-color-500);
|
|
249
|
+
--pf-pill-outline-blue-dot: var(--pf-blue-color-400);
|
|
250
|
+
--pf-pill-outline-blue-icon: var(--pf-blue-color-250);
|
|
251
|
+
--pf-pill-outline-blue-close: var(--pf-blue-color-500);
|
|
252
|
+
--pf-pill-outline-blue-close-hover: var(--pf-blue-color-450);
|
|
253
|
+
--pf-pill-outline-blue-close-hover-bg: var(--pf-opacity-black-250);
|
|
254
|
+
|
|
255
|
+
// Outline / Green
|
|
256
|
+
--pf-pill-outline-green-bg: var(--pf-green-color-800);
|
|
257
|
+
--pf-pill-outline-green-text: var(--pf-green-color-300);
|
|
258
|
+
--pf-pill-outline-green-border: var(--pf-green-color-600);
|
|
259
|
+
--pf-pill-outline-green-dot: var(--pf-green-color-450);
|
|
260
|
+
--pf-pill-outline-green-icon: var(--pf-green-color-300);
|
|
261
|
+
--pf-pill-outline-green-close: var(--pf-green-color-600);
|
|
262
|
+
--pf-pill-outline-green-close-hover: var(--pf-green-color-500);
|
|
263
|
+
--pf-pill-outline-green-close-hover-bg: var(--pf-opacity-black-250);
|
|
264
|
+
|
|
265
|
+
// Outline / Gray
|
|
266
|
+
--pf-pill-outline-gray-bg: var(--pf-gray-color-800);
|
|
267
|
+
--pf-pill-outline-gray-text: var(--pf-gray-color-250);
|
|
268
|
+
--pf-pill-outline-gray-border: var(--pf-gray-color-550);
|
|
269
|
+
--pf-pill-outline-gray-dot: var(--pf-gray-color-400);
|
|
270
|
+
--pf-pill-outline-gray-icon: var(--pf-gray-color-250);
|
|
271
|
+
--pf-pill-outline-gray-close: var(--pf-gray-color-550);
|
|
272
|
+
--pf-pill-outline-gray-close-hover: var(--pf-gray-color-500);
|
|
273
|
+
--pf-pill-outline-gray-close-hover-bg: var(--pf-opacity-black-250);
|
|
274
|
+
|
|
275
|
+
// Outline / Pink
|
|
276
|
+
--pf-pill-outline-pink-bg: var(--pf-pink-color-800);
|
|
277
|
+
--pf-pill-outline-pink-text: var(--pf-pink-color-300);
|
|
278
|
+
--pf-pill-outline-pink-border: var(--pf-pink-color-500);
|
|
279
|
+
--pf-pill-outline-pink-dot: var(--pf-pink-color-400);
|
|
280
|
+
--pf-pill-outline-pink-icon: var(--pf-pink-color-300);
|
|
281
|
+
--pf-pill-outline-pink-close: var(--pf-pink-color-600);
|
|
282
|
+
--pf-pill-outline-pink-close-hover: var(--pf-pink-color-500);
|
|
283
|
+
--pf-pill-outline-pink-close-hover-bg: var(--pf-opacity-black-250);
|
|
284
|
+
|
|
285
|
+
// Outline / Orange
|
|
286
|
+
--pf-pill-outline-orange-bg: var(--pf-orange-color-700);
|
|
287
|
+
--pf-pill-outline-orange-text: var(--pf-orange-color-300);
|
|
288
|
+
--pf-pill-outline-orange-border: var(--pf-orange-color-500);
|
|
289
|
+
--pf-pill-outline-orange-dot: var(--pf-orange-color-400);
|
|
290
|
+
--pf-pill-outline-orange-icon: var(--pf-orange-color-300);
|
|
291
|
+
--pf-pill-outline-orange-close: var(--pf-orange-color-500);
|
|
292
|
+
--pf-pill-outline-orange-close-hover: var(--pf-orange-color-450);
|
|
293
|
+
--pf-pill-outline-orange-close-hover-bg: var(--pf-opacity-black-250);
|
|
294
|
+
|
|
295
|
+
// Outline / Teal
|
|
296
|
+
--pf-pill-outline-teal-bg: var(--pf-teal-color-700);
|
|
297
|
+
--pf-pill-outline-teal-text: var(--pf-teal-color-250);
|
|
298
|
+
--pf-pill-outline-teal-border: var(--pf-teal-color-550);
|
|
299
|
+
--pf-pill-outline-teal-dot: var(--pf-teal-color-450);
|
|
300
|
+
--pf-pill-outline-teal-icon: var(--pf-teal-color-250);
|
|
301
|
+
--pf-pill-outline-teal-close: var(--pf-teal-color-550);
|
|
302
|
+
--pf-pill-outline-teal-close-hover: var(--pf-teal-color-500);
|
|
303
|
+
--pf-pill-outline-teal-close-hover-bg: var(--pf-opacity-black-250);
|
|
304
|
+
|
|
305
|
+
// Outline / Soft
|
|
306
|
+
--pf-pill-outline-soft-bg: var(--pf-gray-color-800);
|
|
307
|
+
--pf-pill-outline-soft-text: var(--pf-gray-color-300);
|
|
308
|
+
--pf-pill-outline-soft-border: var(--pf-gray-color-600);
|
|
309
|
+
--pf-pill-outline-soft-dot: var(--pf-gray-color-450);
|
|
310
|
+
--pf-pill-outline-soft-icon: var(--pf-gray-color-350);
|
|
311
|
+
--pf-pill-outline-soft-close: var(--pf-gray-color-500);
|
|
312
|
+
--pf-pill-outline-soft-close-hover: var(--pf-gray-color-400);
|
|
313
|
+
--pf-pill-outline-soft-close-hover-bg: var(--pf-opacity-black-250);
|
|
314
|
+
|
|
315
|
+
// ============================================================================
|
|
316
|
+
// SOLID - Dark Theme
|
|
317
|
+
// ============================================================================
|
|
318
|
+
|
|
319
|
+
// Solid / Red
|
|
320
|
+
--pf-pill-solid-red-bg: var(--pf-red-color-450);
|
|
321
|
+
--pf-pill-solid-red-text: var(--pf-red-color-50);
|
|
322
|
+
--pf-pill-solid-red-dot: var(--pf-red-color-250);
|
|
323
|
+
--pf-pill-solid-red-icon: var(--pf-red-color-50);
|
|
324
|
+
--pf-pill-solid-red-close: var(--pf-red-color-300);
|
|
325
|
+
--pf-pill-solid-red-close-hover: var(--pf-red-color-300);
|
|
326
|
+
--pf-pill-solid-red-close-hover-bg: var(--pf-opacity-black-250);
|
|
327
|
+
|
|
328
|
+
// Solid / Purple
|
|
329
|
+
--pf-pill-solid-purple-bg: var(--pf-purple-color-450);
|
|
330
|
+
--pf-pill-solid-purple-text: var(--pf-purple-color-100);
|
|
331
|
+
--pf-pill-solid-purple-dot: var(--pf-purple-color-300);
|
|
332
|
+
--pf-pill-solid-purple-icon: var(--pf-purple-color-100);
|
|
333
|
+
--pf-pill-solid-purple-close: var(--pf-purple-color-300);
|
|
334
|
+
--pf-pill-solid-purple-close-hover: var(--pf-purple-color-300);
|
|
335
|
+
--pf-pill-solid-purple-close-hover-bg: var(--pf-opacity-black-250);
|
|
336
|
+
|
|
337
|
+
// Solid / Yellow
|
|
338
|
+
--pf-pill-solid-yellow-bg: var(--pf-yellow-color-550);
|
|
339
|
+
--pf-pill-solid-yellow-text: var(--pf-gray-color-50);
|
|
340
|
+
--pf-pill-solid-yellow-dot: var(--pf-yellow-color-300);
|
|
341
|
+
--pf-pill-solid-yellow-icon: var(--pf-yellow-color-50);
|
|
342
|
+
--pf-pill-solid-yellow-close: var(--pf-yellow-color-400);
|
|
343
|
+
--pf-pill-solid-yellow-close-hover: var(--pf-yellow-color-450);
|
|
344
|
+
--pf-pill-solid-yellow-close-hover-bg: var(--pf-opacity-black-250);
|
|
345
|
+
|
|
346
|
+
// Solid / Blue
|
|
347
|
+
--pf-pill-solid-blue-bg: var(--pf-secondary-color-500);
|
|
348
|
+
--pf-pill-solid-blue-text: var(--pf-secondary-color-50);
|
|
349
|
+
--pf-pill-solid-blue-dot: var(--pf-secondary-color-300);
|
|
350
|
+
--pf-pill-solid-blue-icon: var(--pf-secondary-color-50);
|
|
351
|
+
--pf-pill-solid-blue-close: var(--pf-secondary-color-300);
|
|
352
|
+
--pf-pill-solid-blue-close-hover: var(--pf-secondary-color-400);
|
|
353
|
+
--pf-pill-solid-blue-close-hover-bg: var(--pf-opacity-black-250);
|
|
354
|
+
|
|
355
|
+
// Solid / Green
|
|
356
|
+
--pf-pill-solid-green-bg: var(--pf-green-color-600);
|
|
357
|
+
--pf-pill-solid-green-text: var(--pf-green-color-100);
|
|
358
|
+
--pf-pill-solid-green-dot: var(--pf-green-color-450);
|
|
359
|
+
--pf-pill-solid-green-icon: var(--pf-green-color-100);
|
|
360
|
+
--pf-pill-solid-green-close: var(--pf-green-color-300);
|
|
361
|
+
--pf-pill-solid-green-close-hover: var(--pf-green-color-400);
|
|
362
|
+
--pf-pill-solid-green-close-hover-bg: var(--pf-opacity-black-250);
|
|
363
|
+
|
|
364
|
+
// Solid / Gray
|
|
365
|
+
--pf-pill-solid-gray-bg: var(--pf-gray-color-700);
|
|
366
|
+
--pf-pill-solid-gray-text: var(--pf-gray-color-50);
|
|
367
|
+
--pf-pill-solid-gray-dot: var(--pf-gray-color-400);
|
|
368
|
+
--pf-pill-solid-gray-icon: var(--pf-gray-color-50);
|
|
369
|
+
--pf-pill-solid-gray-close: var(--pf-gray-color-500);
|
|
370
|
+
--pf-pill-solid-gray-close-hover: var(--pf-gray-color-550);
|
|
371
|
+
--pf-pill-solid-gray-close-hover-bg: var(--pf-opacity-black-250);
|
|
372
|
+
|
|
373
|
+
// Solid / Pink
|
|
374
|
+
--pf-pill-solid-pink-bg: var(--pf-pink-color-450);
|
|
375
|
+
--pf-pill-solid-pink-text: var(--pf-pink-color-150);
|
|
376
|
+
--pf-pill-solid-pink-dot: var(--pf-pink-color-300);
|
|
377
|
+
--pf-pill-solid-pink-icon: var(--pf-pink-color-150);
|
|
378
|
+
--pf-pill-solid-pink-close: var(--pf-pink-color-300);
|
|
379
|
+
--pf-pill-solid-pink-close-hover: var(--pf-pink-color-300);
|
|
380
|
+
--pf-pill-solid-pink-close-hover-bg: var(--pf-opacity-black-300);
|
|
381
|
+
|
|
382
|
+
// Solid / Orange
|
|
383
|
+
--pf-pill-solid-orange-bg: var(--pf-orange-color-450);
|
|
384
|
+
--pf-pill-solid-orange-text: var(--pf-orange-color-50);
|
|
385
|
+
--pf-pill-solid-orange-dot: var(--pf-orange-color-300);
|
|
386
|
+
--pf-pill-solid-orange-icon: var(--pf-orange-color-50);
|
|
387
|
+
--pf-pill-solid-orange-close: var(--pf-orange-color-300);
|
|
388
|
+
--pf-pill-solid-orange-close-hover: var(--pf-orange-color-300);
|
|
389
|
+
--pf-pill-solid-orange-close-hover-bg: var(--pf-opacity-black-250);
|
|
390
|
+
|
|
391
|
+
// Solid / Teal
|
|
392
|
+
--pf-pill-solid-teal-bg: var(--pf-teal-color-550);
|
|
393
|
+
--pf-pill-solid-teal-text: var(--pf-teal-color-100);
|
|
394
|
+
--pf-pill-solid-teal-dot: var(--pf-teal-color-300);
|
|
395
|
+
--pf-pill-solid-teal-icon: var(--pf-teal-color-100);
|
|
396
|
+
--pf-pill-solid-teal-close: var(--pf-teal-color-400);
|
|
397
|
+
--pf-pill-solid-teal-close-hover: var(--pf-teal-color-450);
|
|
398
|
+
--pf-pill-solid-teal-close-hover-bg: var(--pf-opacity-black-250);
|
|
399
|
+
|
|
400
|
+
// Solid / Soft
|
|
401
|
+
--pf-pill-solid-soft-bg: var(--pf-gray-color-700);
|
|
402
|
+
--pf-pill-solid-soft-text: var(--pf-gray-color-200);
|
|
403
|
+
--pf-pill-solid-soft-dot: var(--pf-gray-color-450);
|
|
404
|
+
--pf-pill-solid-soft-icon: var(--pf-gray-color-250);
|
|
405
|
+
--pf-pill-solid-soft-close: var(--pf-gray-color-450);
|
|
406
|
+
--pf-pill-solid-soft-close-hover: var(--pf-gray-color-400);
|
|
407
|
+
--pf-pill-solid-soft-close-hover-bg: var(--pf-opacity-black-250);
|
|
408
|
+
}
|
|
@@ -1,20 +1,32 @@
|
|
|
1
1
|
import { type ChromaticColor } from '../../types';
|
|
2
|
+
import { type IconName } from '../icons/types';
|
|
2
3
|
|
|
3
4
|
import type React from 'react';
|
|
4
5
|
|
|
5
|
-
|
|
6
6
|
export type PillSize = 'sm' | 'md' | 'lg';
|
|
7
|
-
export type PillColor = ChromaticColor;
|
|
8
|
-
export type
|
|
7
|
+
export type PillColor = ChromaticColor | 'soft';
|
|
8
|
+
export type PillVariant = 'solid' | 'outline';
|
|
9
|
+
export type PillType = 'pill' | 'badge';
|
|
9
10
|
|
|
10
|
-
export interface PillProps {
|
|
11
|
+
export interface PillProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
11
12
|
/** The content displayed inside the pill */
|
|
12
|
-
children
|
|
13
|
-
/**
|
|
13
|
+
children?: React.ReactNode;
|
|
14
|
+
/** The color scheme, maps to component token color groups */
|
|
14
15
|
color?: PillColor;
|
|
15
|
-
/**
|
|
16
|
+
/** Controls the overall size (padding + font size) */
|
|
16
17
|
size?: PillSize;
|
|
17
|
-
/**
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
/** Solid (filled) or outline (bordered) appearance */
|
|
19
|
+
variant?: PillVariant;
|
|
20
|
+
/** Badge has a small border-radius; pill is fully rounded */
|
|
21
|
+
type?: PillType;
|
|
22
|
+
/** Optional left icon (pass an IconName string, sizing is automatic) */
|
|
23
|
+
iconLeft?: IconName;
|
|
24
|
+
/** Optional right icon (pass an IconName string, sizing is automatic) */
|
|
25
|
+
iconRight?: IconName;
|
|
26
|
+
/** When true, renders a small colored dot indicator before the content */
|
|
27
|
+
dot?: boolean;
|
|
28
|
+
/** When provided, renders a close button that calls this handler */
|
|
29
|
+
onClose?: () => void;
|
|
30
|
+
/** Accessible label for the close button (for i18n) */
|
|
31
|
+
closeAriaLabel?: string;
|
|
20
32
|
}
|
package/src/styles/index.scss
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
@import 'variables/index.scss';
|
|
4
4
|
@import 'primitives/index.scss';
|
|
5
5
|
@import 'tokens/semantic-tokens';
|
|
6
|
+
|
|
6
7
|
@import 'utilities';
|
|
7
8
|
@import 'typography';
|
|
8
9
|
@import 'colors';
|
|
@@ -33,6 +34,7 @@
|
|
|
33
34
|
@import '../components/modal/styles/Modal.scss';
|
|
34
35
|
@import '../components/pagination/styles/Pagination.scss';
|
|
35
36
|
@import '../components/tanstackTable/styles/table.scss';
|
|
37
|
+
@import '../components/pill/styles/tokens';
|
|
36
38
|
@import '../components/pill/styles/Pill.scss';
|
|
37
39
|
@import '../components/loading-indicators/BarSpinner/styles/BarSpinner.scss';
|
|
38
40
|
@import '../components/loading-indicators/CirclePulse/CirclePulse.scss';
|
|
@@ -96,21 +96,21 @@
|
|
|
96
96
|
--pf-yellow-color-800: #322c1b;
|
|
97
97
|
--pf-yellow-color-900: #1b160e;
|
|
98
98
|
|
|
99
|
-
--pf-green-color: #
|
|
99
|
+
--pf-green-color: #14b866;
|
|
100
100
|
--pf-green-color-50: #f7fdfa;
|
|
101
101
|
--pf-green-color-100: #effbf5;
|
|
102
102
|
--pf-green-color-150: #e7f9f0;
|
|
103
103
|
--pf-green-color-200: #def7eb;
|
|
104
104
|
--pf-green-color-250: #c2f4db;
|
|
105
|
-
--pf-green-color-300: #
|
|
106
|
-
--pf-green-color-400: #
|
|
107
|
-
--pf-green-color-450: #
|
|
108
|
-
--pf-green-color-500: #
|
|
105
|
+
--pf-green-color-300: #97edc2;
|
|
106
|
+
--pf-green-color-400: #44e494;
|
|
107
|
+
--pf-green-color-450: #1cd97a;
|
|
108
|
+
--pf-green-color-500: #14b866;
|
|
109
109
|
--pf-green-color-550: #129e45;
|
|
110
|
-
--pf-green-color-600: #
|
|
111
|
-
--pf-green-color-700: #
|
|
112
|
-
--pf-green-color-800: #
|
|
113
|
-
--pf-green-color-900: #
|
|
110
|
+
--pf-green-color-600: #14804a;
|
|
111
|
+
--pf-green-color-700: #175e3b;
|
|
112
|
+
--pf-green-color-800: #173626;
|
|
113
|
+
--pf-green-color-900: #0e1b14;
|
|
114
114
|
|
|
115
115
|
--pf-teal-color: #29a3a3;
|
|
116
116
|
--pf-teal-color-50: #f6fdfd;
|
|
@@ -188,6 +188,7 @@
|
|
|
188
188
|
--pf-primary-color-500: #50647c;
|
|
189
189
|
--pf-primary-color-550: #455066;
|
|
190
190
|
--pf-primary-color-600: #243447;
|
|
191
|
+
--pf-primary-color-650: #1f2a37;
|
|
191
192
|
--pf-primary-color-700: #192534;
|
|
192
193
|
--pf-primary-color-800: #111b28;
|
|
193
194
|
--pf-primary-color-900: #0c141d;
|
|
@@ -221,6 +222,7 @@
|
|
|
221
222
|
--pf-tertiary-color-550: #5f6a85;
|
|
222
223
|
--pf-tertiary-color-600: #58637b;
|
|
223
224
|
--pf-tertiary-color-700: #4b5364;
|
|
225
|
+
--pf-tertiary-color-750: #373f51;
|
|
224
226
|
--pf-tertiary-color-800: #2c303a;
|
|
225
227
|
--pf-tertiary-color-900: #111317;
|
|
226
228
|
}
|
|
@@ -46,16 +46,19 @@
|
|
|
46
46
|
--pf-semantic-background-secondary: var(--pf-gray-color-50);
|
|
47
47
|
--pf-semantic-background-tertiary: var(--pf-gray-color-200);
|
|
48
48
|
--pf-semantic-background-quaternary: var(--pf-gray-color-250);
|
|
49
|
+
--pf-semantic-background-soft: var(--pf-gray-color-250);
|
|
49
50
|
--pf-semantic-background-accent: var(--pf-secondary-color-200);
|
|
50
51
|
--pf-semantic-background-highlight: var(--pf-blue-color-250);
|
|
51
52
|
--pf-semantic-background-brand-solid: var(--pf-blue-color-500);
|
|
52
53
|
--pf-semantic-background-brand-hover: var(--pf-blue-color-600);
|
|
53
54
|
--pf-semantic-background-inverted: var(--pf-tertiary-color-900);
|
|
55
|
+
--pf-semantic-background-contrast: var(--pf-secondary-color-150);
|
|
54
56
|
|
|
55
57
|
// Border
|
|
56
58
|
--pf-semantic-border-primary: var(--pf-gray-color-300);
|
|
57
59
|
--pf-semantic-border-secondary: var(--pf-gray-color-250);
|
|
58
|
-
--pf-semantic-border-
|
|
60
|
+
--pf-semantic-border-tertiary: var(--pf-gray-color-200);
|
|
61
|
+
--pf-semantic-border-quaternary: var(--pf-gray-color-400);
|
|
59
62
|
--pf-semantic-border-soft: var(--pf-secondary-color-450);
|
|
60
63
|
--pf-semantic-border-accent: var(--pf-blue-color-450);
|
|
61
64
|
--pf-semantic-border-error: var(--pf-red-color-450);
|
|
@@ -129,16 +132,19 @@
|
|
|
129
132
|
--pf-semantic-background-secondary: var(--pf-primary-color-800);
|
|
130
133
|
--pf-semantic-background-tertiary: var(--pf-primary-color-600);
|
|
131
134
|
--pf-semantic-background-quaternary: var(--pf-primary-color-500);
|
|
135
|
+
--pf-semantic-background-soft: var(--pf-tertiary-color-750);
|
|
132
136
|
--pf-semantic-background-accent: var(--pf-blue-color-800);
|
|
133
137
|
--pf-semantic-background-highlight: var(--pf-blue-color-700);
|
|
134
138
|
--pf-semantic-background-brand-solid: var(--pf-secondary-color-450);
|
|
135
139
|
--pf-semantic-background-brand-hover: var(--pf-secondary-color-600);
|
|
136
|
-
--pf-semantic-background-inverted: var(--pf-tertiary-color-
|
|
140
|
+
--pf-semantic-background-inverted: var(--pf-tertiary-color-50);
|
|
141
|
+
--pf-semantic-background-contrast: var(--pf-primary-color-650);
|
|
137
142
|
|
|
138
143
|
// Border
|
|
139
144
|
--pf-semantic-border-primary: var(--pf-tertiary-color-700);
|
|
140
145
|
--pf-semantic-border-secondary: var(--pf-primary-color-600);
|
|
141
|
-
--pf-semantic-border-
|
|
146
|
+
--pf-semantic-border-tertiary: var(--pf-tertiary-color-750);
|
|
147
|
+
--pf-semantic-border-quaternary: var(--pf-tertiary-color-600);
|
|
142
148
|
--pf-semantic-border-soft: var(--pf-secondary-color-600);
|
|
143
149
|
--pf-semantic-border-accent: var(--pf-secondary-color-400);
|
|
144
150
|
--pf-semantic-border-error: var(--pf-red-color-450);
|
package/src/types.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { type SelectOption } from './components/forms/select/types';
|
|
2
2
|
import { type IconSizes, type IconName } from './components/icons/types';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
type PillColor,
|
|
5
|
+
type PillSize,
|
|
6
|
+
type PillVariant,
|
|
7
|
+
type PillType,
|
|
8
|
+
} from './components/pill/types';
|
|
4
9
|
import {
|
|
5
10
|
type TableProps,
|
|
6
11
|
type TableColumn,
|
|
@@ -34,4 +39,4 @@ export type SemanticColor = 'neutral' | 'info' | 'warning' | 'error' | 'success'
|
|
|
34
39
|
|
|
35
40
|
export type { SelectOption };
|
|
36
41
|
export type { TableProps, TableColumn, Direction, Alignment };
|
|
37
|
-
export type { PillColor, PillSize };
|
|
42
|
+
export type { PillColor, PillSize, PillVariant, PillType };
|