@kaizen/components 0.0.0-canary-container-query-titleblock-20251105031251 → 0.0.0-canary-useContainerQueries-20251121043854
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/cjs/index.cjs +2 -0
- package/dist/cjs/src/SingleSelect/SingleSelect.cjs +0 -2
- package/dist/cjs/src/utils/useContainerQueries.cjs +334 -0
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/src/SingleSelect/SingleSelect.mjs +0 -2
- package/dist/esm/src/utils/useContainerQueries.mjs +326 -0
- package/dist/styles.css +1 -1
- package/dist/types/SingleSelect/SingleSelect.d.ts +0 -2
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/useContainerQueries.d.ts +91 -0
- package/locales/ar.json +3 -3
- package/locales/bg.json +3 -3
- package/locales/cs.json +3 -3
- package/locales/cy.json +3 -3
- package/locales/da.json +3 -3
- package/locales/de.json +3 -3
- package/locales/el.json +3 -3
- package/locales/en-GB.json +3 -3
- package/locales/es-419.json +3 -3
- package/locales/es.json +3 -3
- package/locales/et.json +3 -3
- package/locales/fi.json +3 -3
- package/locales/fr-CA.json +3 -3
- package/locales/fr.json +3 -3
- package/locales/he.json +3 -3
- package/locales/hi.json +3 -3
- package/locales/ht.json +3 -3
- package/locales/hu.json +3 -3
- package/locales/id.json +3 -3
- package/locales/it.json +3 -3
- package/locales/ja.json +3 -3
- package/locales/km-KH.json +3 -3
- package/locales/ko.json +3 -3
- package/locales/lt.json +3 -3
- package/locales/lv.json +3 -3
- package/locales/mi.json +3 -3
- package/locales/ms.json +3 -3
- package/locales/nb.json +3 -3
- package/locales/nl.json +3 -3
- package/locales/pl.json +3 -3
- package/locales/pt-BR.json +3 -3
- package/locales/pt.json +3 -3
- package/locales/ro.json +3 -3
- package/locales/ru.json +3 -3
- package/locales/si-LK.json +3 -3
- package/locales/sk.json +2 -2
- package/locales/sr.json +3 -3
- package/locales/sv.json +3 -3
- package/locales/th.json +3 -3
- package/locales/tl.json +3 -3
- package/locales/tr.json +3 -3
- package/locales/uk.json +3 -3
- package/locales/vi.json +3 -3
- package/locales/zh-TW.json +3 -3
- package/locales/zh.json +3 -3
- package/package.json +1 -1
- package/src/SingleSelect/SingleSelect.tsx +0 -2
- package/src/SingleSelect/_docs/SingleSelect--api-specification.mdx +1 -3
- package/src/SingleSelect/_docs/SingleSelect--usage-guidelines.mdx +1 -3
- package/src/SingleSelect/_docs/SingleSelect.stickersheet.stories.tsx +1 -1
- package/src/SingleSelect/_docs/SingleSelect.stories.tsx +1 -1
- package/src/utils/index.ts +1 -0
- package/src/utils/useContainerQueries.spec.tsx +242 -0
- package/src/utils/useContainerQueries.tsx +333 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
import { __assign } from 'tslib';
|
|
2
|
+
import React, { useMemo, useState, useRef, useCallback, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Tailwind CSS default container query breakpoints
|
|
6
|
+
* These match the default values from @tailwindcss/container-queries plugin
|
|
7
|
+
*/
|
|
8
|
+
var DEFAULT_BREAKPOINTS = {
|
|
9
|
+
'xs': '20rem',
|
|
10
|
+
// 320px
|
|
11
|
+
'sm': '24rem',
|
|
12
|
+
// 384px
|
|
13
|
+
'md': '28rem',
|
|
14
|
+
// 448px
|
|
15
|
+
'lg': '32rem',
|
|
16
|
+
// 512px
|
|
17
|
+
'xl': '36rem',
|
|
18
|
+
// 576px
|
|
19
|
+
'2xl': '42rem',
|
|
20
|
+
// 672px
|
|
21
|
+
'3xl': '48rem',
|
|
22
|
+
// 768px
|
|
23
|
+
'4xl': '56rem',
|
|
24
|
+
// 896px
|
|
25
|
+
'5xl': '64rem',
|
|
26
|
+
// 1024px
|
|
27
|
+
'6xl': '72rem',
|
|
28
|
+
// 1152px
|
|
29
|
+
'7xl': '80rem' // 1280px
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Convert rem/px values to pixels for comparison
|
|
33
|
+
*/
|
|
34
|
+
var parseBreakpointValue = function (value) {
|
|
35
|
+
if (value.endsWith('rem')) {
|
|
36
|
+
return parseFloat(value) * 16; // Assuming 1rem = 16px
|
|
37
|
+
}
|
|
38
|
+
if (value.endsWith('px')) {
|
|
39
|
+
return parseFloat(value);
|
|
40
|
+
}
|
|
41
|
+
return parseFloat(value);
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* A React hook for responding to container size changes using Tailwind CSS container query breakpoints.
|
|
45
|
+
*
|
|
46
|
+
* This hook uses ResizeObserver to detect when a container element crosses breakpoint thresholds,
|
|
47
|
+
* enabling component-level responsive behavior independent of viewport size.
|
|
48
|
+
*
|
|
49
|
+
* @param propQueries - Optional custom container size queries in the format { queryName: 'minWidth' }
|
|
50
|
+
* Example: { large: '600px', extraLarge: '48rem' }
|
|
51
|
+
*
|
|
52
|
+
* @returns An object containing:
|
|
53
|
+
* - containerRef: A ref to attach to your container element
|
|
54
|
+
* - queries: Boolean flags for each breakpoint (isXs, isSm, isMd, etc.) and custom queries
|
|
55
|
+
* - components: React components for conditional rendering (XsOnly, SmOrLarger, etc.)
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```tsx
|
|
59
|
+
* const MyComponent = () => {
|
|
60
|
+
* const { containerRef, queries, components } = useContainerQueries()
|
|
61
|
+
* const { MdOrLarger } = components
|
|
62
|
+
*
|
|
63
|
+
* return (
|
|
64
|
+
* <div ref={containerRef}>
|
|
65
|
+
* {queries.isSm && <p>Small container</p>}
|
|
66
|
+
* <MdOrLarger>
|
|
67
|
+
* <p>Medium or larger container</p>
|
|
68
|
+
* </MdOrLarger>
|
|
69
|
+
* </div>
|
|
70
|
+
* )
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* @example With custom queries
|
|
75
|
+
* ```tsx
|
|
76
|
+
* const { containerRef, queries, components } = useContainerQueries({
|
|
77
|
+
* compact: '400px',
|
|
78
|
+
* spacious: '800px',
|
|
79
|
+
* })
|
|
80
|
+
* const { Compact, Spacious } = components
|
|
81
|
+
*
|
|
82
|
+
* return (
|
|
83
|
+
* <div ref={containerRef}>
|
|
84
|
+
* <Compact><p>Compact view</p></Compact>
|
|
85
|
+
* <Spacious><p>Spacious view</p></Spacious>
|
|
86
|
+
* </div>
|
|
87
|
+
* )
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
var useContainerQueries = function (propQueries) {
|
|
91
|
+
if (propQueries === void 0) {
|
|
92
|
+
propQueries = {};
|
|
93
|
+
}
|
|
94
|
+
// SSR support - return safe defaults when window is undefined
|
|
95
|
+
if (typeof window === 'undefined') {
|
|
96
|
+
return {
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
98
|
+
containerRef: function () {},
|
|
99
|
+
queries: {
|
|
100
|
+
isXs: false,
|
|
101
|
+
isSm: false,
|
|
102
|
+
isMd: false,
|
|
103
|
+
isLg: false,
|
|
104
|
+
isXl: false,
|
|
105
|
+
is2xl: false,
|
|
106
|
+
is3xl: false,
|
|
107
|
+
is4xl: false,
|
|
108
|
+
is5xl: false,
|
|
109
|
+
is6xl: false,
|
|
110
|
+
is7xl: true // Default to largest for SSR
|
|
111
|
+
},
|
|
112
|
+
components: {
|
|
113
|
+
'XsOnly': function () {
|
|
114
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
115
|
+
},
|
|
116
|
+
'SmOnly': function () {
|
|
117
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
118
|
+
},
|
|
119
|
+
'MdOnly': function () {
|
|
120
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
121
|
+
},
|
|
122
|
+
'LgOnly': function () {
|
|
123
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
124
|
+
},
|
|
125
|
+
'XlOnly': function () {
|
|
126
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
127
|
+
},
|
|
128
|
+
'2xlOnly': function () {
|
|
129
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
130
|
+
},
|
|
131
|
+
'3xlOnly': function () {
|
|
132
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
133
|
+
},
|
|
134
|
+
'4xlOnly': function () {
|
|
135
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
136
|
+
},
|
|
137
|
+
'5xlOnly': function () {
|
|
138
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
139
|
+
},
|
|
140
|
+
'6xlOnly': function () {
|
|
141
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
142
|
+
},
|
|
143
|
+
'7xlOnly': function (props) {
|
|
144
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, props.children);
|
|
145
|
+
},
|
|
146
|
+
'XsOrLarger': function (props) {
|
|
147
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, props.children);
|
|
148
|
+
},
|
|
149
|
+
'SmOrLarger': function (props) {
|
|
150
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, props.children);
|
|
151
|
+
},
|
|
152
|
+
'MdOrLarger': function (props) {
|
|
153
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, props.children);
|
|
154
|
+
},
|
|
155
|
+
'LgOrLarger': function (props) {
|
|
156
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, props.children);
|
|
157
|
+
},
|
|
158
|
+
'XlOrLarger': function (props) {
|
|
159
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, props.children);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
// Parse all breakpoints to pixel values for comparison
|
|
165
|
+
var breakpointsPx = useMemo(function () {
|
|
166
|
+
return Object.entries(DEFAULT_BREAKPOINTS).reduce(function (acc, _a) {
|
|
167
|
+
var key = _a[0],
|
|
168
|
+
value = _a[1];
|
|
169
|
+
acc[key] = parseBreakpointValue(value);
|
|
170
|
+
return acc;
|
|
171
|
+
}, {});
|
|
172
|
+
}, []);
|
|
173
|
+
// Parse custom queries
|
|
174
|
+
var customQueriesPx = useMemo(function () {
|
|
175
|
+
return Object.entries(propQueries).reduce(function (acc, _a) {
|
|
176
|
+
var key = _a[0],
|
|
177
|
+
value = _a[1];
|
|
178
|
+
acc[key] = parseBreakpointValue(value);
|
|
179
|
+
return acc;
|
|
180
|
+
}, {});
|
|
181
|
+
}, [propQueries]);
|
|
182
|
+
// State to track container width
|
|
183
|
+
var _a = useState(0),
|
|
184
|
+
containerWidth = _a[0],
|
|
185
|
+
setContainerWidth = _a[1];
|
|
186
|
+
// ResizeObserver ref
|
|
187
|
+
var resizeObserverRef = useRef(null);
|
|
188
|
+
// Callback ref for the container element
|
|
189
|
+
var containerRef = useCallback(function (node) {
|
|
190
|
+
// Cleanup previous observer
|
|
191
|
+
if (resizeObserverRef.current) {
|
|
192
|
+
resizeObserverRef.current.disconnect();
|
|
193
|
+
resizeObserverRef.current = null;
|
|
194
|
+
}
|
|
195
|
+
if (node) {
|
|
196
|
+
// Create new ResizeObserver
|
|
197
|
+
resizeObserverRef.current = new ResizeObserver(function (entries) {
|
|
198
|
+
var _a, _b, _c;
|
|
199
|
+
for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
|
|
200
|
+
var entry = entries_1[_i];
|
|
201
|
+
// Use borderBoxSize for more accurate measurements
|
|
202
|
+
var width_1 = (_c = (_b = (_a = entry.borderBoxSize) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.inlineSize) !== null && _c !== void 0 ? _c : entry.contentRect.width;
|
|
203
|
+
setContainerWidth(width_1);
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
resizeObserverRef.current.observe(node);
|
|
207
|
+
// Set initial width
|
|
208
|
+
var width = node.getBoundingClientRect().width;
|
|
209
|
+
setContainerWidth(width);
|
|
210
|
+
}
|
|
211
|
+
}, []);
|
|
212
|
+
// Cleanup on unmount
|
|
213
|
+
useEffect(function () {
|
|
214
|
+
return function () {
|
|
215
|
+
if (resizeObserverRef.current) {
|
|
216
|
+
resizeObserverRef.current.disconnect();
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
}, []);
|
|
220
|
+
// Calculate breakpoint matches based on container width
|
|
221
|
+
var breakpointMatches = useMemo(function () {
|
|
222
|
+
return {
|
|
223
|
+
isXs: containerWidth >= breakpointsPx.xs,
|
|
224
|
+
isSm: containerWidth >= breakpointsPx.sm,
|
|
225
|
+
isMd: containerWidth >= breakpointsPx.md,
|
|
226
|
+
isLg: containerWidth >= breakpointsPx.lg,
|
|
227
|
+
isXl: containerWidth >= breakpointsPx.xl,
|
|
228
|
+
is2xl: containerWidth >= breakpointsPx['2xl'],
|
|
229
|
+
is3xl: containerWidth >= breakpointsPx['3xl'],
|
|
230
|
+
is4xl: containerWidth >= breakpointsPx['4xl'],
|
|
231
|
+
is5xl: containerWidth >= breakpointsPx['5xl'],
|
|
232
|
+
is6xl: containerWidth >= breakpointsPx['6xl'],
|
|
233
|
+
is7xl: containerWidth >= breakpointsPx['7xl']
|
|
234
|
+
};
|
|
235
|
+
}, [containerWidth, breakpointsPx]);
|
|
236
|
+
// Calculate custom query matches
|
|
237
|
+
var customMatches = useMemo(function () {
|
|
238
|
+
return Object.entries(customQueriesPx).reduce(function (acc, _a) {
|
|
239
|
+
var key = _a[0],
|
|
240
|
+
value = _a[1];
|
|
241
|
+
acc[key] = containerWidth >= value;
|
|
242
|
+
return acc;
|
|
243
|
+
}, {});
|
|
244
|
+
}, [containerWidth, customQueriesPx]);
|
|
245
|
+
// Helper function to check if container is at exact breakpoint (not larger)
|
|
246
|
+
var isExactBreakpoint = useCallback(function (breakpoint) {
|
|
247
|
+
var sortedBreakpoints = Object.entries(breakpointsPx).sort(function (_a, _b) {
|
|
248
|
+
var a = _a[1];
|
|
249
|
+
var b = _b[1];
|
|
250
|
+
return a - b;
|
|
251
|
+
});
|
|
252
|
+
var currentIndex = sortedBreakpoints.findIndex(function (_a) {
|
|
253
|
+
var key = _a[0];
|
|
254
|
+
return key === breakpoint;
|
|
255
|
+
});
|
|
256
|
+
var nextBreakpoint = sortedBreakpoints[currentIndex + 1];
|
|
257
|
+
var minWidth = breakpointsPx[breakpoint];
|
|
258
|
+
var maxWidth = nextBreakpoint ? nextBreakpoint[1] : Infinity;
|
|
259
|
+
return containerWidth >= minWidth && containerWidth < maxWidth;
|
|
260
|
+
}, [containerWidth, breakpointsPx]);
|
|
261
|
+
// Create helper components for Tailwind breakpoints
|
|
262
|
+
var components = useMemo(function () {
|
|
263
|
+
return __assign({
|
|
264
|
+
'XsOnly': function (props) {
|
|
265
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isExactBreakpoint('xs') && props.children);
|
|
266
|
+
},
|
|
267
|
+
'SmOnly': function (props) {
|
|
268
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isExactBreakpoint('sm') && props.children);
|
|
269
|
+
},
|
|
270
|
+
'MdOnly': function (props) {
|
|
271
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isExactBreakpoint('md') && props.children);
|
|
272
|
+
},
|
|
273
|
+
'LgOnly': function (props) {
|
|
274
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isExactBreakpoint('lg') && props.children);
|
|
275
|
+
},
|
|
276
|
+
'XlOnly': function (props) {
|
|
277
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isExactBreakpoint('xl') && props.children);
|
|
278
|
+
},
|
|
279
|
+
'2xlOnly': function (props) {
|
|
280
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isExactBreakpoint('2xl') && props.children);
|
|
281
|
+
},
|
|
282
|
+
'3xlOnly': function (props) {
|
|
283
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isExactBreakpoint('3xl') && props.children);
|
|
284
|
+
},
|
|
285
|
+
'4xlOnly': function (props) {
|
|
286
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isExactBreakpoint('4xl') && props.children);
|
|
287
|
+
},
|
|
288
|
+
'5xlOnly': function (props) {
|
|
289
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isExactBreakpoint('5xl') && props.children);
|
|
290
|
+
},
|
|
291
|
+
'6xlOnly': function (props) {
|
|
292
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isExactBreakpoint('6xl') && props.children);
|
|
293
|
+
},
|
|
294
|
+
'7xlOnly': function (props) {
|
|
295
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isExactBreakpoint('7xl') && props.children);
|
|
296
|
+
},
|
|
297
|
+
'XsOrLarger': function (props) {
|
|
298
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, breakpointMatches.isXs && props.children);
|
|
299
|
+
},
|
|
300
|
+
'SmOrLarger': function (props) {
|
|
301
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, breakpointMatches.isSm && props.children);
|
|
302
|
+
},
|
|
303
|
+
'MdOrLarger': function (props) {
|
|
304
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, breakpointMatches.isMd && props.children);
|
|
305
|
+
},
|
|
306
|
+
'LgOrLarger': function (props) {
|
|
307
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, breakpointMatches.isLg && props.children);
|
|
308
|
+
},
|
|
309
|
+
'XlOrLarger': function (props) {
|
|
310
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, breakpointMatches.isXl && props.children);
|
|
311
|
+
}
|
|
312
|
+
}, Object.keys(customQueriesPx).reduce(function (acc, key) {
|
|
313
|
+
var componentName = key.charAt(0).toUpperCase() + key.slice(1);
|
|
314
|
+
acc[componentName] = function (props) {
|
|
315
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, customMatches[key] && props.children);
|
|
316
|
+
};
|
|
317
|
+
return acc;
|
|
318
|
+
}, {}));
|
|
319
|
+
}, [breakpointMatches, customMatches, isExactBreakpoint, customQueriesPx]);
|
|
320
|
+
return {
|
|
321
|
+
containerRef: containerRef,
|
|
322
|
+
queries: __assign(__assign({}, breakpointMatches), customMatches),
|
|
323
|
+
components: components
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
export { useContainerQueries };
|
package/dist/styles.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@layer tokens, normalize, reset, kz-components;@layer tokens{:root{--animation-easing-function-ease-in-out:cubic-bezier(0.455,0.03,0.515,0.955);--animation-easing-function-ease-in:cubic-bezier(0.55,0.085,0.68,0.53);--animation-easing-function-ease-out:cubic-bezier(0.25,0.46,0.45,0.94);--animation-easing-function-linear:linear;--animation-easing-function-bounce-in:cubic-bezier(0.485,0.155,0.24,1.245);--animation-easing-function-bounce-out:cubic-bezier(0.485,0.155,0.515,0.845);--animation-easing-function-bounce-in-out:cubic-bezier(0.76,-0.245,0.24,1.245);--animation-duration-instant:0ms;--animation-duration-immediate:100ms;--animation-duration-rapid:200ms;--animation-duration-fast:300ms;--animation-duration-slow:400ms;--animation-duration-deliberate:700ms;--border-solid-border-width:2px;--border-solid-border-radius:7px;--border-solid-border-style:solid;--border-solid-border-color:#e1e2ea;--border-solid-border-color-rgb:225,226,234;--border-dashed-border-width:2px;--border-dashed-border-radius:7px;--border-dashed-border-style:dashed;--border-borderless-border-width:2px;--border-borderless-border-radius:7px;--border-borderless-border-style:solid;--border-borderless-border-color:transparent;--border-borderless-border-color-rgb:0,0,0;--border-focus-ring-border-width:2px;--border-focus-ring-border-radius:10px;--border-focus-ring-border-style:solid;--border-width-1:1px;--color-purple-100:#f4edf8;--color-purple-100-rgb:244,237,248;--color-purple-200:#dfc9ea;--color-purple-200-rgb:223,201,234;--color-purple-300:#c9a5dd;--color-purple-300-rgb:201,165,221;--color-purple-400:#ae67b1;--color-purple-400-rgb:174,103,177;--color-purple-500:#844587;--color-purple-500-rgb:132,69,135;--color-purple-600:#5f3361;--color-purple-600-rgb:95,51,97;--color-purple-700:#4a234d;--color-purple-700-rgb:74,35,77;--color-purple-800:#2f2438;--color-purple-800-rgb:47,36,56;--color-blue-100:#e6f6ff;--color-blue-100-rgb:230,246,255;--color-blue-200:#bde2f5;--color-blue-200-rgb:189,226,245;--color-blue-300:#73c0e8;--color-blue-300-rgb:115,192,232;--color-blue-400:#008bd6;--color-blue-400-rgb:0,139,214;--color-blue-500:#0168b3;--color-blue-500-rgb:1,104,179;--color-blue-600:#004970;--color-blue-600-rgb:0,73,112;--color-blue-700:#003157;--color-blue-700-rgb:0,49,87;--color-green-100:#e8f8f4;--color-green-100-rgb:232,248,244;--color-green-200:#c4ede2;--color-green-200-rgb:196,237,226;--color-green-300:#8fdbc7;--color-green-300-rgb:143,219,199;--color-green-400:#5dcaad;--color-green-400-rgb:93,202,173;--color-green-500:#3f9a86;--color-green-500-rgb:63,154,134;--color-green-600:#2c7d67;--color-green-600-rgb:44,125,103;--color-green-700:#22594a;--color-green-700-rgb:34,89,74;--color-yellow-100:#fff9e4;--color-yellow-100-rgb:255,249,228;--color-yellow-200:#ffeeb3;--color-yellow-200-rgb:255,238,179;--color-yellow-300:#ffe36e;--color-yellow-300-rgb:255,227,110;--color-yellow-400:#ffca4d;--color-yellow-400-rgb:255,202,77;--color-yellow-500:#ffb600;--color-yellow-500-rgb:255,182,0;--color-yellow-600:#c68600;--color-yellow-600-rgb:198,134,0;--color-yellow-700:#876400;--color-yellow-700-rgb:135,100,0;--color-red-100:#fdeaee;--color-red-100-rgb:253,234,238;--color-red-200:#f9c2cb;--color-red-200-rgb:249,194,203;--color-red-300:#f597a8;--color-red-300-rgb:245,151,168;--color-red-400:#e0707d;--color-red-400-rgb:224,112,125;--color-red-500:#c93b55;--color-red-500-rgb:201,59,85;--color-red-600:#a82433;--color-red-600-rgb:168,36,51;--color-red-700:#6c1e20;--color-red-700-rgb:108,30,32;--color-orange-100:#fff0e8;--color-orange-100-rgb:255,240,232;--color-orange-200:#ffd1b9;--color-orange-200-rgb:255,209,185;--color-orange-300:#ffb08a;--color-orange-300-rgb:255,176,138;--color-orange-400:#ff9461;--color-orange-400-rgb:255,148,97;--color-orange-500:#e96c2f;--color-orange-500-rgb:233,108,47;--color-orange-600:#b74302;--color-orange-600-rgb:183,67,2;--color-orange-700:#903c00;--color-orange-700-rgb:144,60,0;--color-gray-100:#f9f9f9;--color-gray-100-rgb:249,249,249;--color-gray-200:#f4f4f5;--color-gray-200-rgb:244,244,245;--color-gray-300:#eaeaec;--color-gray-300-rgb:234,234,236;--color-gray-400:#cdcdd0;--color-gray-400-rgb:205,205,208;--color-gray-500:#878792;--color-gray-500-rgb:135,135,146;--color-gray-600:#524e56;--color-gray-600-rgb:82,78,86;--color-white:#fff;--color-white-rgb:255,255,255;--color-black:#000;--color-black-rgb:0,0,0;--data-viz-favorable:#7dd5bd;--data-viz-favorable-rgb:125,213,189;--data-viz-unfavorable:#e68d97;--data-viz-unfavorable-rgb:230,141,151;--layout-content-max-width:1392px;--layout-content-max-width-with-sidebar:1080px;--layout-content-side-margin:72px;--layout-mobile-actions-drawer-height:60px;--layout-navigation-bar-height:72px;--layout-breakpoints-medium:768px;--layout-breakpoints-large:1080px;--shadow-small-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 3px 16px 0 rgba(0,0,0,.06);--shadow-large-box-shadow:0 3px 9px 0 rgba(0,0,0,.1),0 8px 40px 0 rgba(0,0,0,.08);--spacing-0:0;--spacing-1:.0625rem;--spacing-2:.125rem;--spacing-4:.25rem;--spacing-6:.375rem;--spacing-8:.5rem;--spacing-12:.75rem;--spacing-16:1rem;--spacing-20:1.25rem;--spacing-24:1.5rem;--spacing-32:2rem;--spacing-40:2.5rem;--spacing-48:3rem;--spacing-56:3.5rem;--spacing-64:4rem;--spacing-72:4.5rem;--spacing-80:5rem;--spacing-96:6rem;--spacing-112:7rem;--spacing-128:8rem;--spacing-160:10rem;--spacing-200:12.5rem;--spacing-240:15rem;--spacing-280:17.5rem;--spacing-320:20rem;--spacing-xs:0.375rem;--spacing-sm:0.75rem;--spacing-md:1.5rem;--spacing-lg:2.25rem;--spacing-xl:3rem;--spacing-xxl:3.75rem;--spacing-xxxl:4.5rem;--spacing-xxxxl:5.25rem;--spacing-xxxxxl:6rem;--typography-data-large-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-large-font-weight:700;--typography-data-large-font-size:5.25rem;--typography-data-large-line-height:5.25rem;--typography-data-large-letter-spacing:normal;--typography-data-large-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-large-units-font-weight:700;--typography-data-large-units-font-size:2.625rem;--typography-data-large-units-line-height:5.25rem;--typography-data-large-units-letter-spacing:normal;--typography-data-medium-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-medium-font-weight:700;--typography-data-medium-font-size:3rem;--typography-data-medium-line-height:5rem;--typography-data-medium-letter-spacing:normal;--typography-data-medium-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-medium-units-font-weight:700;--typography-data-medium-units-font-size:1.5rem;--typography-data-medium-units-line-height:5rem;--typography-data-medium-units-letter-spacing:normal;--typography-data-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-small-font-weight:700;--typography-data-small-font-size:1.5rem;--typography-data-small-line-height:1.5rem;--typography-data-small-letter-spacing:normal;--typography-data-small-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-small-units-font-weight:700;--typography-data-small-units-font-size:1.125rem;--typography-data-small-units-line-height:1.5rem;--typography-data-small-units-letter-spacing:normal;--typography-display-0-font-family:"Tiempos Headline",Georgia,serif;--typography-display-0-font-weight:800;--typography-display-0-font-size:4.5rem;--typography-display-0-line-height:5.25rem;--typography-display-0-letter-spacing:0em;--typography-heading-1-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-1-font-weight:500;--typography-heading-1-font-size:2.125rem;--typography-heading-1-line-height:2.625rem;--typography-heading-1-letter-spacing:normal;--typography-heading-2-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-2-font-weight:600;--typography-heading-2-font-size:1.75rem;--typography-heading-2-line-height:2.25rem;--typography-heading-2-letter-spacing:normal;--typography-heading-3-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-3-font-weight:600;--typography-heading-3-font-size:1.375rem;--typography-heading-3-line-height:1.875rem;--typography-heading-3-letter-spacing:normal;--typography-heading-4-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-4-font-weight:600;--typography-heading-4-font-size:1.125rem;--typography-heading-4-line-height:1.5rem;--typography-heading-4-letter-spacing:normal;--typography-heading-5-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-5-font-weight:600;--typography-heading-5-font-size:1rem;--typography-heading-5-line-height:1.5rem;--typography-heading-5-letter-spacing:normal;--typography-heading-6-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-6-font-weight:600;--typography-heading-6-font-size:0.875rem;--typography-heading-6-line-height:1.5rem;--typography-heading-6-letter-spacing:normal;--typography-paragraph-intro-lede-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-intro-lede-font-weight:400;--typography-paragraph-intro-lede-font-size:1.25rem;--typography-paragraph-intro-lede-line-height:1.875rem;--typography-paragraph-intro-lede-letter-spacing:0;--typography-paragraph-intro-lede-max-width:975px;--typography-paragraph-body-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-body-font-weight:400;--typography-paragraph-body-font-size:1rem;--typography-paragraph-body-line-height:1.5rem;--typography-paragraph-body-letter-spacing:normal;--typography-paragraph-body-max-width:780px;--typography-paragraph-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-small-font-weight:400;--typography-paragraph-small-font-size:0.875rem;--typography-paragraph-small-line-height:1.125rem;--typography-paragraph-small-letter-spacing:normal;--typography-paragraph-small-max-width:680px;--typography-paragraph-extra-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-extra-small-font-weight:400;--typography-paragraph-extra-small-font-size:0.75rem;--typography-paragraph-extra-small-line-height:1.125rem;--typography-paragraph-extra-small-letter-spacing:normal;--typography-paragraph-extra-small-max-width:600px;--typography-paragraph-bold-font-weight:600;--typography-button-primary-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-button-primary-font-weight:500;--typography-button-primary-font-size:1.125rem;--typography-button-primary-line-height:1.5rem;--typography-button-primary-letter-spacing:normal;--typography-button-secondary-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-button-secondary-font-weight:500;--typography-button-secondary-font-size:1rem;--typography-button-secondary-line-height:1.5rem;--typography-button-secondary-letter-spacing:normal}}@layer normalize{html{text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{appearance:auto}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:auto;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}}@layer reset{@font-face{font-family:Tiempos Headline;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff)}@font-face{font-family:Tiempos Headline;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-medium.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-medium.woff)}@font-face{font-family:Greycliff CF;font-weight:300;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-light.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:400;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-regular.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-medium.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:600;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-demi-bold.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:700;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-bold.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-extra-bold.woff) format("woff")}@font-face{font-family:Inter;font-weight:300;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-light.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-light.woff)}@font-face{font-family:Inter;font-weight:400;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff)}@font-face{font-family:Inter;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff)}@font-face{font-family:Inter;font-weight:600;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff)}@font-face{font-family:Inter;font-weight:700;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff)}@font-face{font-family:Inter;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-extra-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-extra-bold.woff)}@font-face{font-family:IBM Plex Mono;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/ibm-plex-mono/ibm-plex-mono-regular.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/ibm-plex-mono/ibm-plex-mono-regular.woff)}}@layer reset{*,:after,:before{border-color:var(--border-solid-border-color,"currentColor");border-style:solid;border-width:0}body{container-type:inline-size}}
|
|
1
|
+
@layer tokens, normalize, reset, kz-components;@layer tokens{:root{--animation-easing-function-ease-in-out:cubic-bezier(0.455,0.03,0.515,0.955);--animation-easing-function-ease-in:cubic-bezier(0.55,0.085,0.68,0.53);--animation-easing-function-ease-out:cubic-bezier(0.25,0.46,0.45,0.94);--animation-easing-function-linear:linear;--animation-easing-function-bounce-in:cubic-bezier(0.485,0.155,0.24,1.245);--animation-easing-function-bounce-out:cubic-bezier(0.485,0.155,0.515,0.845);--animation-easing-function-bounce-in-out:cubic-bezier(0.76,-0.245,0.24,1.245);--animation-duration-instant:0ms;--animation-duration-immediate:100ms;--animation-duration-rapid:200ms;--animation-duration-fast:300ms;--animation-duration-slow:400ms;--animation-duration-deliberate:700ms;--border-solid-border-width:2px;--border-solid-border-radius:7px;--border-solid-border-style:solid;--border-solid-border-color:#e1e2ea;--border-solid-border-color-rgb:225,226,234;--border-dashed-border-width:2px;--border-dashed-border-radius:7px;--border-dashed-border-style:dashed;--border-borderless-border-width:2px;--border-borderless-border-radius:7px;--border-borderless-border-style:solid;--border-borderless-border-color:transparent;--border-borderless-border-color-rgb:0,0,0;--border-focus-ring-border-width:2px;--border-focus-ring-border-radius:10px;--border-focus-ring-border-style:solid;--border-width-1:1px;--color-purple-100:#f4edf8;--color-purple-100-rgb:244,237,248;--color-purple-200:#dfc9ea;--color-purple-200-rgb:223,201,234;--color-purple-300:#c9a5dd;--color-purple-300-rgb:201,165,221;--color-purple-400:#ae67b1;--color-purple-400-rgb:174,103,177;--color-purple-500:#844587;--color-purple-500-rgb:132,69,135;--color-purple-600:#5f3361;--color-purple-600-rgb:95,51,97;--color-purple-700:#4a234d;--color-purple-700-rgb:74,35,77;--color-purple-800:#2f2438;--color-purple-800-rgb:47,36,56;--color-blue-100:#e6f6ff;--color-blue-100-rgb:230,246,255;--color-blue-200:#bde2f5;--color-blue-200-rgb:189,226,245;--color-blue-300:#73c0e8;--color-blue-300-rgb:115,192,232;--color-blue-400:#008bd6;--color-blue-400-rgb:0,139,214;--color-blue-500:#0168b3;--color-blue-500-rgb:1,104,179;--color-blue-600:#004970;--color-blue-600-rgb:0,73,112;--color-blue-700:#003157;--color-blue-700-rgb:0,49,87;--color-green-100:#e8f8f4;--color-green-100-rgb:232,248,244;--color-green-200:#c4ede2;--color-green-200-rgb:196,237,226;--color-green-300:#8fdbc7;--color-green-300-rgb:143,219,199;--color-green-400:#5dcaad;--color-green-400-rgb:93,202,173;--color-green-500:#3f9a86;--color-green-500-rgb:63,154,134;--color-green-600:#2c7d67;--color-green-600-rgb:44,125,103;--color-green-700:#22594a;--color-green-700-rgb:34,89,74;--color-yellow-100:#fff9e4;--color-yellow-100-rgb:255,249,228;--color-yellow-200:#ffeeb3;--color-yellow-200-rgb:255,238,179;--color-yellow-300:#ffe36e;--color-yellow-300-rgb:255,227,110;--color-yellow-400:#ffca4d;--color-yellow-400-rgb:255,202,77;--color-yellow-500:#ffb600;--color-yellow-500-rgb:255,182,0;--color-yellow-600:#c68600;--color-yellow-600-rgb:198,134,0;--color-yellow-700:#876400;--color-yellow-700-rgb:135,100,0;--color-red-100:#fdeaee;--color-red-100-rgb:253,234,238;--color-red-200:#f9c2cb;--color-red-200-rgb:249,194,203;--color-red-300:#f597a8;--color-red-300-rgb:245,151,168;--color-red-400:#e0707d;--color-red-400-rgb:224,112,125;--color-red-500:#c93b55;--color-red-500-rgb:201,59,85;--color-red-600:#a82433;--color-red-600-rgb:168,36,51;--color-red-700:#6c1e20;--color-red-700-rgb:108,30,32;--color-orange-100:#fff0e8;--color-orange-100-rgb:255,240,232;--color-orange-200:#ffd1b9;--color-orange-200-rgb:255,209,185;--color-orange-300:#ffb08a;--color-orange-300-rgb:255,176,138;--color-orange-400:#ff9461;--color-orange-400-rgb:255,148,97;--color-orange-500:#e96c2f;--color-orange-500-rgb:233,108,47;--color-orange-600:#b74302;--color-orange-600-rgb:183,67,2;--color-orange-700:#903c00;--color-orange-700-rgb:144,60,0;--color-gray-100:#f9f9f9;--color-gray-100-rgb:249,249,249;--color-gray-200:#f4f4f5;--color-gray-200-rgb:244,244,245;--color-gray-300:#eaeaec;--color-gray-300-rgb:234,234,236;--color-gray-400:#cdcdd0;--color-gray-400-rgb:205,205,208;--color-gray-500:#878792;--color-gray-500-rgb:135,135,146;--color-gray-600:#524e56;--color-gray-600-rgb:82,78,86;--color-white:#fff;--color-white-rgb:255,255,255;--color-black:#000;--color-black-rgb:0,0,0;--data-viz-favorable:#7dd5bd;--data-viz-favorable-rgb:125,213,189;--data-viz-unfavorable:#e68d97;--data-viz-unfavorable-rgb:230,141,151;--layout-content-max-width:1392px;--layout-content-max-width-with-sidebar:1080px;--layout-content-side-margin:72px;--layout-mobile-actions-drawer-height:60px;--layout-navigation-bar-height:72px;--layout-breakpoints-medium:768px;--layout-breakpoints-large:1080px;--shadow-small-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 3px 16px 0 rgba(0,0,0,.06);--shadow-large-box-shadow:0 3px 9px 0 rgba(0,0,0,.1),0 8px 40px 0 rgba(0,0,0,.08);--spacing-0:0;--spacing-1:.0625rem;--spacing-2:.125rem;--spacing-4:.25rem;--spacing-6:.375rem;--spacing-8:.5rem;--spacing-12:.75rem;--spacing-16:1rem;--spacing-20:1.25rem;--spacing-24:1.5rem;--spacing-32:2rem;--spacing-40:2.5rem;--spacing-48:3rem;--spacing-56:3.5rem;--spacing-64:4rem;--spacing-72:4.5rem;--spacing-80:5rem;--spacing-96:6rem;--spacing-112:7rem;--spacing-128:8rem;--spacing-160:10rem;--spacing-200:12.5rem;--spacing-240:15rem;--spacing-280:17.5rem;--spacing-320:20rem;--spacing-xs:0.375rem;--spacing-sm:0.75rem;--spacing-md:1.5rem;--spacing-lg:2.25rem;--spacing-xl:3rem;--spacing-xxl:3.75rem;--spacing-xxxl:4.5rem;--spacing-xxxxl:5.25rem;--spacing-xxxxxl:6rem;--typography-data-large-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-large-font-weight:700;--typography-data-large-font-size:5.25rem;--typography-data-large-line-height:5.25rem;--typography-data-large-letter-spacing:normal;--typography-data-large-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-large-units-font-weight:700;--typography-data-large-units-font-size:2.625rem;--typography-data-large-units-line-height:5.25rem;--typography-data-large-units-letter-spacing:normal;--typography-data-medium-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-medium-font-weight:700;--typography-data-medium-font-size:3rem;--typography-data-medium-line-height:5rem;--typography-data-medium-letter-spacing:normal;--typography-data-medium-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-medium-units-font-weight:700;--typography-data-medium-units-font-size:1.5rem;--typography-data-medium-units-line-height:5rem;--typography-data-medium-units-letter-spacing:normal;--typography-data-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-small-font-weight:700;--typography-data-small-font-size:1.5rem;--typography-data-small-line-height:1.5rem;--typography-data-small-letter-spacing:normal;--typography-data-small-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-small-units-font-weight:700;--typography-data-small-units-font-size:1.125rem;--typography-data-small-units-line-height:1.5rem;--typography-data-small-units-letter-spacing:normal;--typography-display-0-font-family:"Tiempos Headline",Georgia,serif;--typography-display-0-font-weight:800;--typography-display-0-font-size:4.5rem;--typography-display-0-line-height:5.25rem;--typography-display-0-letter-spacing:0em;--typography-heading-1-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-1-font-weight:500;--typography-heading-1-font-size:2.125rem;--typography-heading-1-line-height:2.625rem;--typography-heading-1-letter-spacing:normal;--typography-heading-2-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-2-font-weight:600;--typography-heading-2-font-size:1.75rem;--typography-heading-2-line-height:2.25rem;--typography-heading-2-letter-spacing:normal;--typography-heading-3-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-3-font-weight:600;--typography-heading-3-font-size:1.375rem;--typography-heading-3-line-height:1.875rem;--typography-heading-3-letter-spacing:normal;--typography-heading-4-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-4-font-weight:600;--typography-heading-4-font-size:1.125rem;--typography-heading-4-line-height:1.5rem;--typography-heading-4-letter-spacing:normal;--typography-heading-5-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-5-font-weight:600;--typography-heading-5-font-size:1rem;--typography-heading-5-line-height:1.5rem;--typography-heading-5-letter-spacing:normal;--typography-heading-6-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-6-font-weight:600;--typography-heading-6-font-size:0.875rem;--typography-heading-6-line-height:1.5rem;--typography-heading-6-letter-spacing:normal;--typography-paragraph-intro-lede-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-intro-lede-font-weight:400;--typography-paragraph-intro-lede-font-size:1.25rem;--typography-paragraph-intro-lede-line-height:1.875rem;--typography-paragraph-intro-lede-letter-spacing:0;--typography-paragraph-intro-lede-max-width:975px;--typography-paragraph-body-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-body-font-weight:400;--typography-paragraph-body-font-size:1rem;--typography-paragraph-body-line-height:1.5rem;--typography-paragraph-body-letter-spacing:normal;--typography-paragraph-body-max-width:780px;--typography-paragraph-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-small-font-weight:400;--typography-paragraph-small-font-size:0.875rem;--typography-paragraph-small-line-height:1.125rem;--typography-paragraph-small-letter-spacing:normal;--typography-paragraph-small-max-width:680px;--typography-paragraph-extra-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-extra-small-font-weight:400;--typography-paragraph-extra-small-font-size:0.75rem;--typography-paragraph-extra-small-line-height:1.125rem;--typography-paragraph-extra-small-letter-spacing:normal;--typography-paragraph-extra-small-max-width:600px;--typography-paragraph-bold-font-weight:600;--typography-button-primary-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-button-primary-font-weight:500;--typography-button-primary-font-size:1.125rem;--typography-button-primary-line-height:1.5rem;--typography-button-primary-letter-spacing:normal;--typography-button-secondary-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-button-secondary-font-weight:500;--typography-button-secondary-font-size:1rem;--typography-button-secondary-line-height:1.5rem;--typography-button-secondary-letter-spacing:normal}}@layer normalize{html{text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{appearance:auto}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:auto;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}}@layer reset{@font-face{font-family:Tiempos Headline;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff)}@font-face{font-family:Tiempos Headline;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-medium.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-medium.woff)}@font-face{font-family:Greycliff CF;font-weight:300;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-light.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:400;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-regular.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-medium.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:600;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-demi-bold.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:700;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-bold.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-extra-bold.woff) format("woff")}@font-face{font-family:Inter;font-weight:300;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-light.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-light.woff)}@font-face{font-family:Inter;font-weight:400;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff)}@font-face{font-family:Inter;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff)}@font-face{font-family:Inter;font-weight:600;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff)}@font-face{font-family:Inter;font-weight:700;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff)}@font-face{font-family:Inter;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-extra-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-extra-bold.woff)}@font-face{font-family:IBM Plex Mono;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/ibm-plex-mono/ibm-plex-mono-regular.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/ibm-plex-mono/ibm-plex-mono-regular.woff)}}@layer reset{*,:after,:before{border-color:var(--border-solid-border-color,"currentColor");border-style:solid;border-width:0}body{container-type:inline-size;min-height:100vh}}
|
|
2
2
|
@layer kz-components {
|
|
3
3
|
/*
|
|
4
4
|
* This is taken from the Material Symbols CDN
|
|
@@ -57,8 +57,6 @@ export type SingleSelectProps<Option extends SingleSelectOption = SingleSelectOp
|
|
|
57
57
|
onSelectionChange?: (key: Key) => void;
|
|
58
58
|
} & OverrideClassName<Omit<AriaSelectProps<Option>, OmittedAriaSelectProps>>;
|
|
59
59
|
/**
|
|
60
|
-
* @deprecated SingleSelect is deprecated in v3 and will be replaced in v4.
|
|
61
|
-
*
|
|
62
60
|
* {@link https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3081896474/Select Guidance} |
|
|
63
61
|
* {@link https://cultureamp.design/?path=/docs/components-select--docs Storybook}
|
|
64
62
|
*/
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import React, { type ReactNode } from 'react';
|
|
2
|
+
type Props = Record<string, string>;
|
|
3
|
+
type GenericChildrenType = {
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
};
|
|
6
|
+
type ContainerQueries = {
|
|
7
|
+
isXs: boolean;
|
|
8
|
+
isSm: boolean;
|
|
9
|
+
isMd: boolean;
|
|
10
|
+
isLg: boolean;
|
|
11
|
+
isXl: boolean;
|
|
12
|
+
is2xl: boolean;
|
|
13
|
+
is3xl: boolean;
|
|
14
|
+
is4xl: boolean;
|
|
15
|
+
is5xl: boolean;
|
|
16
|
+
is6xl: boolean;
|
|
17
|
+
is7xl: boolean;
|
|
18
|
+
[key: string]: boolean;
|
|
19
|
+
};
|
|
20
|
+
type ContainerComponents = {
|
|
21
|
+
'XsOnly': (props: GenericChildrenType) => JSX.Element;
|
|
22
|
+
'SmOnly': (props: GenericChildrenType) => JSX.Element;
|
|
23
|
+
'MdOnly': (props: GenericChildrenType) => JSX.Element;
|
|
24
|
+
'LgOnly': (props: GenericChildrenType) => JSX.Element;
|
|
25
|
+
'XlOnly': (props: GenericChildrenType) => JSX.Element;
|
|
26
|
+
'2xlOnly': (props: GenericChildrenType) => JSX.Element;
|
|
27
|
+
'3xlOnly': (props: GenericChildrenType) => JSX.Element;
|
|
28
|
+
'4xlOnly': (props: GenericChildrenType) => JSX.Element;
|
|
29
|
+
'5xlOnly': (props: GenericChildrenType) => JSX.Element;
|
|
30
|
+
'6xlOnly': (props: GenericChildrenType) => JSX.Element;
|
|
31
|
+
'7xlOnly': (props: GenericChildrenType) => JSX.Element;
|
|
32
|
+
'XsOrLarger': (props: GenericChildrenType) => JSX.Element;
|
|
33
|
+
'SmOrLarger': (props: GenericChildrenType) => JSX.Element;
|
|
34
|
+
'MdOrLarger': (props: GenericChildrenType) => JSX.Element;
|
|
35
|
+
'LgOrLarger': (props: GenericChildrenType) => JSX.Element;
|
|
36
|
+
'XlOrLarger': (props: GenericChildrenType) => JSX.Element;
|
|
37
|
+
[key: string]: (props: GenericChildrenType) => JSX.Element;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* A React hook for responding to container size changes using Tailwind CSS container query breakpoints.
|
|
41
|
+
*
|
|
42
|
+
* This hook uses ResizeObserver to detect when a container element crosses breakpoint thresholds,
|
|
43
|
+
* enabling component-level responsive behavior independent of viewport size.
|
|
44
|
+
*
|
|
45
|
+
* @param propQueries - Optional custom container size queries in the format { queryName: 'minWidth' }
|
|
46
|
+
* Example: { large: '600px', extraLarge: '48rem' }
|
|
47
|
+
*
|
|
48
|
+
* @returns An object containing:
|
|
49
|
+
* - containerRef: A ref to attach to your container element
|
|
50
|
+
* - queries: Boolean flags for each breakpoint (isXs, isSm, isMd, etc.) and custom queries
|
|
51
|
+
* - components: React components for conditional rendering (XsOnly, SmOrLarger, etc.)
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```tsx
|
|
55
|
+
* const MyComponent = () => {
|
|
56
|
+
* const { containerRef, queries, components } = useContainerQueries()
|
|
57
|
+
* const { MdOrLarger } = components
|
|
58
|
+
*
|
|
59
|
+
* return (
|
|
60
|
+
* <div ref={containerRef}>
|
|
61
|
+
* {queries.isSm && <p>Small container</p>}
|
|
62
|
+
* <MdOrLarger>
|
|
63
|
+
* <p>Medium or larger container</p>
|
|
64
|
+
* </MdOrLarger>
|
|
65
|
+
* </div>
|
|
66
|
+
* )
|
|
67
|
+
* }
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @example With custom queries
|
|
71
|
+
* ```tsx
|
|
72
|
+
* const { containerRef, queries, components } = useContainerQueries({
|
|
73
|
+
* compact: '400px',
|
|
74
|
+
* spacious: '800px',
|
|
75
|
+
* })
|
|
76
|
+
* const { Compact, Spacious } = components
|
|
77
|
+
*
|
|
78
|
+
* return (
|
|
79
|
+
* <div ref={containerRef}>
|
|
80
|
+
* <Compact><p>Compact view</p></Compact>
|
|
81
|
+
* <Spacious><p>Spacious view</p></Spacious>
|
|
82
|
+
* </div>
|
|
83
|
+
* )
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare const useContainerQueries: (propQueries?: Props) => {
|
|
87
|
+
containerRef: React.RefCallback<HTMLElement>;
|
|
88
|
+
queries: ContainerQueries;
|
|
89
|
+
components: ContainerComponents;
|
|
90
|
+
};
|
|
91
|
+
export {};
|
package/locales/ar.json
CHANGED
|
@@ -224,9 +224,9 @@
|
|
|
224
224
|
"description" : "Aria label text for the SingleSelect button to open and close suggestions list",
|
|
225
225
|
"message" : "عرض الاقتراحات لـ {field}"
|
|
226
226
|
},
|
|
227
|
-
"singleSelect.
|
|
228
|
-
"description" : "Alt text for the clear selection button",
|
|
229
|
-
"message" : "محو
|
|
227
|
+
"singleSelect.clearButtonAlt_v2" : {
|
|
228
|
+
"description" : "Alt text for the clear selection button. The button clears the selection the user has made via a dropdown. The field placeholder is the label of the dropdown.",
|
|
229
|
+
"message" : "محو الاختيار: {field}"
|
|
230
230
|
},
|
|
231
231
|
"splitButton.dropdownButton.label" : {
|
|
232
232
|
"description" : "Label for a dropdown menu holding additional actions",
|
package/locales/bg.json
CHANGED
|
@@ -224,9 +224,9 @@
|
|
|
224
224
|
"description" : "Aria label text for the SingleSelect button to open and close suggestions list",
|
|
225
225
|
"message" : "Покажи предложения за {field}"
|
|
226
226
|
},
|
|
227
|
-
"singleSelect.
|
|
228
|
-
"description" : "Alt text for the clear selection button",
|
|
229
|
-
"message" : "
|
|
227
|
+
"singleSelect.clearButtonAlt_v2" : {
|
|
228
|
+
"description" : "Alt text for the clear selection button. The button clears the selection the user has made via a dropdown. The field placeholder is the label of the dropdown.",
|
|
229
|
+
"message" : "Изчистване на избора: {field}"
|
|
230
230
|
},
|
|
231
231
|
"splitButton.dropdownButton.label" : {
|
|
232
232
|
"description" : "Label for a dropdown menu holding additional actions",
|
package/locales/cs.json
CHANGED
|
@@ -224,9 +224,9 @@
|
|
|
224
224
|
"description" : "Aria label text for the SingleSelect button to open and close suggestions list",
|
|
225
225
|
"message" : "Zobrazit návrhy pro pole {field}"
|
|
226
226
|
},
|
|
227
|
-
"singleSelect.
|
|
228
|
-
"description" : "Alt text for the clear selection button",
|
|
229
|
-
"message" : "
|
|
227
|
+
"singleSelect.clearButtonAlt_v2" : {
|
|
228
|
+
"description" : "Alt text for the clear selection button. The button clears the selection the user has made via a dropdown. The field placeholder is the label of the dropdown.",
|
|
229
|
+
"message" : "Vymazat výběr: {field}"
|
|
230
230
|
},
|
|
231
231
|
"splitButton.dropdownButton.label" : {
|
|
232
232
|
"description" : "Label for a dropdown menu holding additional actions",
|
package/locales/cy.json
CHANGED
|
@@ -224,9 +224,9 @@
|
|
|
224
224
|
"description" : "Aria label text for the SingleSelect button to open and close suggestions list",
|
|
225
225
|
"message" : "Dangos awgrymiadau ar gyfer {field}"
|
|
226
226
|
},
|
|
227
|
-
"singleSelect.
|
|
228
|
-
"description" : "Alt text for the clear selection button",
|
|
229
|
-
"message" : "Clirio
|
|
227
|
+
"singleSelect.clearButtonAlt_v2" : {
|
|
228
|
+
"description" : "Alt text for the clear selection button. The button clears the selection the user has made via a dropdown. The field placeholder is the label of the dropdown.",
|
|
229
|
+
"message" : "Clirio'r dewisiad: {field}"
|
|
230
230
|
},
|
|
231
231
|
"splitButton.dropdownButton.label" : {
|
|
232
232
|
"description" : "Label for a dropdown menu holding additional actions",
|
package/locales/da.json
CHANGED
|
@@ -224,9 +224,9 @@
|
|
|
224
224
|
"description" : "Aria label text for the SingleSelect button to open and close suggestions list",
|
|
225
225
|
"message" : "Vis forslag for {field}"
|
|
226
226
|
},
|
|
227
|
-
"singleSelect.
|
|
228
|
-
"description" : "Alt text for the clear selection button",
|
|
229
|
-
"message" : "Ryd {field}
|
|
227
|
+
"singleSelect.clearButtonAlt_v2" : {
|
|
228
|
+
"description" : "Alt text for the clear selection button. The button clears the selection the user has made via a dropdown. The field placeholder is the label of the dropdown.",
|
|
229
|
+
"message" : "Ryd valg: {field}"
|
|
230
230
|
},
|
|
231
231
|
"splitButton.dropdownButton.label" : {
|
|
232
232
|
"description" : "Label for a dropdown menu holding additional actions",
|
package/locales/de.json
CHANGED
|
@@ -224,9 +224,9 @@
|
|
|
224
224
|
"description" : "Aria label text for the SingleSelect button to open and close suggestions list",
|
|
225
225
|
"message" : "Vorschläge für {field} anzeigen"
|
|
226
226
|
},
|
|
227
|
-
"singleSelect.
|
|
228
|
-
"description" : "Alt text for the clear selection button",
|
|
229
|
-
"message" : "Auswahl
|
|
227
|
+
"singleSelect.clearButtonAlt_v2" : {
|
|
228
|
+
"description" : "Alt text for the clear selection button. The button clears the selection the user has made via a dropdown. The field placeholder is the label of the dropdown.",
|
|
229
|
+
"message" : "Auswahl löschen: {field}"
|
|
230
230
|
},
|
|
231
231
|
"splitButton.dropdownButton.label" : {
|
|
232
232
|
"description" : "Label for a dropdown menu holding additional actions",
|
package/locales/el.json
CHANGED
|
@@ -224,9 +224,9 @@
|
|
|
224
224
|
"description" : "Aria label text for the SingleSelect button to open and close suggestions list",
|
|
225
225
|
"message" : "Εμφάνιση προτάσεων για το πεδίο \"{field}\""
|
|
226
226
|
},
|
|
227
|
-
"singleSelect.
|
|
228
|
-
"description" : "Alt text for the clear selection button",
|
|
229
|
-
"message" : "
|
|
227
|
+
"singleSelect.clearButtonAlt_v2" : {
|
|
228
|
+
"description" : "Alt text for the clear selection button. The button clears the selection the user has made via a dropdown. The field placeholder is the label of the dropdown.",
|
|
229
|
+
"message" : "Απαλοιφή επιλογής: {field}"
|
|
230
230
|
},
|
|
231
231
|
"splitButton.dropdownButton.label" : {
|
|
232
232
|
"description" : "Label for a dropdown menu holding additional actions",
|
package/locales/en-GB.json
CHANGED
|
@@ -224,9 +224,9 @@
|
|
|
224
224
|
"description" : "Aria label text for the SingleSelect button to open and close suggestions list",
|
|
225
225
|
"message" : "Show suggestions for {field}"
|
|
226
226
|
},
|
|
227
|
-
"singleSelect.
|
|
228
|
-
"description" : "Alt text for the clear selection button",
|
|
229
|
-
"message" : "Clear {field}
|
|
227
|
+
"singleSelect.clearButtonAlt_v2" : {
|
|
228
|
+
"description" : "Alt text for the clear selection button. The button clears the selection the user has made via a dropdown. The field placeholder is the label of the dropdown.",
|
|
229
|
+
"message" : "Clear selection: {field}"
|
|
230
230
|
},
|
|
231
231
|
"splitButton.dropdownButton.label" : {
|
|
232
232
|
"description" : "Label for a dropdown menu holding additional actions",
|
package/locales/es-419.json
CHANGED
|
@@ -224,9 +224,9 @@
|
|
|
224
224
|
"description" : "Aria label text for the SingleSelect button to open and close suggestions list",
|
|
225
225
|
"message" : "Mostrar sugerencias para {field}"
|
|
226
226
|
},
|
|
227
|
-
"singleSelect.
|
|
228
|
-
"description" : "Alt text for the clear selection button",
|
|
229
|
-
"message" : "Borrar
|
|
227
|
+
"singleSelect.clearButtonAlt_v2" : {
|
|
228
|
+
"description" : "Alt text for the clear selection button. The button clears the selection the user has made via a dropdown. The field placeholder is the label of the dropdown.",
|
|
229
|
+
"message" : "Borrar selección: {field}"
|
|
230
230
|
},
|
|
231
231
|
"splitButton.dropdownButton.label" : {
|
|
232
232
|
"description" : "Label for a dropdown menu holding additional actions",
|
package/locales/es.json
CHANGED
|
@@ -224,9 +224,9 @@
|
|
|
224
224
|
"description" : "Aria label text for the SingleSelect button to open and close suggestions list",
|
|
225
225
|
"message" : "Mostrar sugerencias para {field}"
|
|
226
226
|
},
|
|
227
|
-
"singleSelect.
|
|
228
|
-
"description" : "Alt text for the clear selection button",
|
|
229
|
-
"message" : "Borrar
|
|
227
|
+
"singleSelect.clearButtonAlt_v2" : {
|
|
228
|
+
"description" : "Alt text for the clear selection button. The button clears the selection the user has made via a dropdown. The field placeholder is the label of the dropdown.",
|
|
229
|
+
"message" : "Borrar selección: {field}"
|
|
230
230
|
},
|
|
231
231
|
"splitButton.dropdownButton.label" : {
|
|
232
232
|
"description" : "Label for a dropdown menu holding additional actions",
|