@stack-spot/citric-react 0.42.0-beta.0 → 0.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -13
- package/dist/citric.css +2926 -2920
- package/dist/components/Accordion.d.ts +1 -1
- package/dist/components/Accordion.js +1 -1
- package/dist/components/Alert.d.ts +1 -1
- package/dist/components/Alert.js +1 -1
- package/dist/components/AsyncContent.d.ts +1 -1
- package/dist/components/AsyncContent.js +1 -1
- package/dist/components/Autocomplete.d.ts +370 -0
- package/dist/components/Autocomplete.d.ts.map +1 -0
- package/dist/components/{Autocomplete/Autocomplete.js → Autocomplete.js} +163 -98
- package/dist/components/Autocomplete.js.map +1 -0
- package/dist/components/Avatar.d.ts +1 -1
- package/dist/components/Avatar.js +1 -1
- package/dist/components/AvatarGroup.d.ts +1 -1
- package/dist/components/AvatarGroup.js +1 -1
- package/dist/components/Badge.d.ts +1 -1
- package/dist/components/Badge.js +1 -1
- package/dist/components/Blockquote.d.ts +1 -1
- package/dist/components/Blockquote.js +1 -1
- package/dist/components/Breadcrumb.d.ts +1 -1
- package/dist/components/Breadcrumb.js +1 -1
- package/dist/components/Button.d.ts +1 -1
- package/dist/components/Button.js +1 -1
- package/dist/components/ButtonLink.d.ts +1 -1
- package/dist/components/ButtonLink.js +1 -1
- package/dist/components/Card.d.ts +1 -1
- package/dist/components/Card.js +1 -1
- package/dist/components/Checkbox.d.ts +1 -1
- package/dist/components/Checkbox.d.ts.map +1 -1
- package/dist/components/Checkbox.js +2 -2
- package/dist/components/Checkbox.js.map +1 -1
- package/dist/components/CheckboxGroup.d.ts +1 -1
- package/dist/components/CheckboxGroup.js +1 -1
- package/dist/components/Circle.d.ts +1 -1
- package/dist/components/Circle.js +1 -1
- package/dist/components/Divider.d.ts +1 -1
- package/dist/components/Divider.js +1 -1
- package/dist/components/ErrorBoundary.d.ts +1 -1
- package/dist/components/ErrorBoundary.js +1 -1
- package/dist/components/ErrorMessage.d.ts +1 -1
- package/dist/components/ErrorMessage.js +1 -1
- package/dist/components/FallbackBoundary.d.ts +1 -1
- package/dist/components/FallbackBoundary.js +1 -1
- package/dist/components/Favorite.d.ts +1 -1
- package/dist/components/Favorite.js +1 -1
- package/dist/components/FieldGroup.d.ts +1 -1
- package/dist/components/FieldGroup.js +1 -1
- package/dist/components/Form.d.ts +2 -2
- package/dist/components/Form.js +1 -1
- package/dist/components/FormGroup.d.ts +1 -1
- package/dist/components/FormGroup.js +1 -1
- package/dist/components/Icon.d.ts +1 -1
- package/dist/components/Icon.js +1 -1
- package/dist/components/IconBox.d.ts +3 -3
- package/dist/components/IconBox.js +1 -1
- package/dist/components/ImageBox.d.ts +3 -3
- package/dist/components/ImageBox.js +1 -1
- package/dist/components/ImageWithFallback.d.ts +1 -1
- package/dist/components/ImageWithFallback.js +1 -1
- package/dist/components/Input.d.ts +1 -1
- package/dist/components/Input.js +1 -1
- package/dist/components/Link.d.ts +1 -1
- package/dist/components/Link.js +1 -1
- package/dist/components/LoadingPanel.d.ts +1 -1
- package/dist/components/LoadingPanel.js +1 -1
- package/dist/components/MenuOverlay/Menu.d.ts +1 -1
- package/dist/components/MenuOverlay/Menu.js +1 -1
- package/dist/components/MenuOverlay/index.d.ts +1 -1
- package/dist/components/MenuOverlay/index.js +1 -1
- package/dist/components/Overlay/index.d.ts +1 -1
- package/dist/components/Overlay/index.js +1 -1
- package/dist/components/Pagination.d.ts +1 -1
- package/dist/components/Pagination.js +1 -1
- package/dist/components/ProgressBar.d.ts +1 -1
- package/dist/components/ProgressBar.js +1 -1
- package/dist/components/ProgressCircular.d.ts +1 -1
- package/dist/components/ProgressCircular.js +1 -1
- package/dist/components/RadioGroup.d.ts +1 -1
- package/dist/components/RadioGroup.js +1 -1
- package/dist/components/Rating.d.ts +1 -1
- package/dist/components/Rating.js +1 -1
- package/dist/components/Select/MultiSelect.d.ts +1 -1
- package/dist/components/Select/MultiSelect.js +1 -1
- package/dist/components/Select/RichSelect.d.ts +1 -1
- package/dist/components/Select/RichSelect.js +1 -1
- package/dist/components/Select/SimpleSelect.d.ts +1 -1
- package/dist/components/Select/SimpleSelect.js +1 -1
- package/dist/components/Select/index.d.ts +1 -1
- package/dist/components/Select/index.js +1 -1
- package/dist/components/SelectBox.d.ts +9 -1
- package/dist/components/SelectBox.d.ts.map +1 -1
- package/dist/components/SelectBox.js +6 -5
- package/dist/components/SelectBox.js.map +1 -1
- package/dist/components/Skeleton.d.ts +1 -1
- package/dist/components/Skeleton.js +1 -1
- package/dist/components/Slider.d.ts +1 -1
- package/dist/components/Slider.js +1 -1
- package/dist/components/SmartTable.d.ts +1 -1
- package/dist/components/SmartTable.js +1 -1
- package/dist/components/Stepper.d.ts +1 -1
- package/dist/components/Stepper.js +1 -1
- package/dist/components/Table.d.ts +3 -3
- package/dist/components/Table.js +1 -1
- package/dist/components/Tabs/index.d.ts +1 -1
- package/dist/components/Tabs/index.js +1 -1
- package/dist/components/Textarea.d.ts +1 -1
- package/dist/components/Textarea.js +1 -1
- package/dist/components/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip.js +1 -1
- package/dist/context/CitricProvider.d.ts +1 -1
- package/dist/context/CitricProvider.js +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/overlay.js +1 -1
- package/dist/theme.css +415 -415
- package/dist/utils/css.js +1 -1
- package/dist/utils/css.js.map +1 -1
- package/package.json +1 -1
- package/scripts/build-css.ts +49 -49
- package/src/components/Accordion.tsx +130 -130
- package/src/components/Alert.tsx +24 -24
- package/src/components/AsyncContent.tsx +75 -75
- package/src/components/{Autocomplete/Autocomplete.tsx → Autocomplete.tsx} +403 -159
- package/src/components/Avatar.tsx +45 -45
- package/src/components/AvatarGroup.tsx +49 -49
- package/src/components/Badge.tsx +47 -47
- package/src/components/Blockquote.tsx +18 -18
- package/src/components/Breadcrumb.tsx +33 -33
- package/src/components/Button.tsx +105 -105
- package/src/components/ButtonLink.tsx +45 -45
- package/src/components/Card.tsx +68 -68
- package/src/components/Checkbox.tsx +51 -52
- package/src/components/CheckboxGroup.tsx +153 -153
- package/src/components/Circle.tsx +43 -43
- package/src/components/CitricComponent.ts +47 -47
- package/src/components/Divider.tsx +24 -24
- package/src/components/ErrorBoundary.tsx +75 -75
- package/src/components/ErrorMessage.tsx +11 -11
- package/src/components/FallbackBoundary.tsx +40 -40
- package/src/components/Favorite.tsx +57 -57
- package/src/components/FieldGroup.tsx +46 -46
- package/src/components/Form.tsx +36 -36
- package/src/components/FormGroup.tsx +57 -57
- package/src/components/Icon.tsx +35 -35
- package/src/components/IconBox.tsx +134 -134
- package/src/components/ImageBox.tsx +125 -125
- package/src/components/ImageWithFallback.tsx +65 -65
- package/src/components/Input.tsx +49 -49
- package/src/components/Link.tsx +55 -55
- package/src/components/LoadingPanel.tsx +12 -12
- package/src/components/MenuOverlay/Menu.tsx +158 -158
- package/src/components/MenuOverlay/context.ts +20 -20
- package/src/components/MenuOverlay/index.tsx +55 -55
- package/src/components/MenuOverlay/keyboard.ts +60 -60
- package/src/components/MenuOverlay/types.ts +171 -171
- package/src/components/Overlay/context.ts +10 -10
- package/src/components/Overlay/index.tsx +182 -182
- package/src/components/Overlay/types.ts +75 -75
- package/src/components/Pagination.tsx +133 -133
- package/src/components/ProgressBar.tsx +45 -45
- package/src/components/ProgressCircular.tsx +45 -45
- package/src/components/RadioGroup.tsx +147 -147
- package/src/components/Rating.tsx +98 -98
- package/src/components/Select/MultiSelect.tsx +217 -217
- package/src/components/Select/RichSelect.tsx +128 -128
- package/src/components/Select/SimpleSelect.tsx +73 -73
- package/src/components/Select/hooks.ts +133 -133
- package/src/components/Select/index.tsx +35 -35
- package/src/components/Select/types.ts +134 -134
- package/src/components/SelectBox.tsx +181 -167
- package/src/components/Skeleton.tsx +53 -53
- package/src/components/Slider.tsx +89 -89
- package/src/components/SmartTable.tsx +227 -227
- package/src/components/Stepper.tsx +163 -163
- package/src/components/Table.tsx +234 -234
- package/src/components/Tabs/TabController.ts +54 -54
- package/src/components/Tabs/index.tsx +106 -106
- package/src/components/Tabs/types.ts +67 -67
- package/src/components/Tabs/utils.ts +6 -6
- package/src/components/Text.ts +111 -111
- package/src/components/Textarea.tsx +27 -27
- package/src/components/Tooltip.tsx +83 -83
- package/src/components/layout.tsx +101 -101
- package/src/context/CitricContext.tsx +4 -4
- package/src/context/CitricProvider.tsx +14 -14
- package/src/context/hooks.ts +6 -6
- package/src/index.ts +59 -59
- package/src/overlay.ts +348 -348
- package/src/types.ts +235 -235
- package/src/utils/ValueController.ts +28 -28
- package/src/utils/acessibility.ts +92 -92
- package/src/utils/checkbox.ts +121 -121
- package/src/utils/css.ts +119 -119
- package/src/utils/options.ts +9 -9
- package/src/utils/radio.ts +93 -93
- package/src/utils/react.ts +6 -6
- package/src/utils/time.ts +5 -5
- package/tsconfig.json +10 -10
- package/dist/components/Autocomplete/Autocomplete.d.ts +0 -211
- package/dist/components/Autocomplete/Autocomplete.d.ts.map +0 -1
- package/dist/components/Autocomplete/Autocomplete.js.map +0 -1
- package/dist/components/Autocomplete/index.d.ts +0 -3
- package/dist/components/Autocomplete/index.d.ts.map +0 -1
- package/dist/components/Autocomplete/index.js +0 -2
- package/dist/components/Autocomplete/index.js.map +0 -1
- package/src/components/Autocomplete/index.ts +0 -3
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { listToClass } from '@stack-spot/portal-theme';
|
|
3
3
|
import { useTranslate } from '@stack-spot/portal-translate';
|
|
4
4
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
5
|
-
import { applyCSSVariable } from '
|
|
6
|
-
import { defaultRenderKey, defaultRenderLabel } from '
|
|
7
|
-
import { withRef } from '
|
|
8
|
-
import { Badge } from '
|
|
9
|
-
import { Checkbox } from '
|
|
10
|
-
import { CitricComponent } from '
|
|
11
|
-
import { IconButton } from '
|
|
12
|
-
import { ProgressCircular } from '
|
|
13
|
-
import { useDisabledEffect, useFocusEffect } from '
|
|
14
|
-
import { Row } from '
|
|
5
|
+
import { applyCSSVariable } from '../utils/css.js';
|
|
6
|
+
import { defaultRenderKey, defaultRenderLabel } from '../utils/options.js';
|
|
7
|
+
import { withRef } from '../utils/react.js';
|
|
8
|
+
import { Badge } from './Badge.js';
|
|
9
|
+
import { Checkbox } from './Checkbox.js';
|
|
10
|
+
import { CitricComponent } from './CitricComponent.js';
|
|
11
|
+
import { IconButton } from './IconBox.js';
|
|
12
|
+
import { ProgressCircular } from './ProgressCircular.js';
|
|
13
|
+
import { useDisabledEffect, useFocusEffect } from './Select/hooks.js';
|
|
14
|
+
import { Row } from './layout.js';
|
|
15
15
|
/**
|
|
16
16
|
* A combination of a text input and a dropdown that suggests options as the user types.
|
|
17
17
|
* Supports both single and multiple selection modes, similar to Material-UI Autocomplete.
|
|
@@ -57,11 +57,12 @@ import { Row } from '../layout.js';
|
|
|
57
57
|
* />
|
|
58
58
|
* ```
|
|
59
59
|
*/
|
|
60
|
-
export const Autocomplete = withRef(function Autocomplete({ options, value, onChange, multiple = false, freeSolo = false, creatable = false, onCreate, getOptionFromInput, inputValue: controlledInputValue, onInputChange, renderLabel = defaultRenderLabel, renderKey = defaultRenderKey, renderOption,
|
|
60
|
+
export const Autocomplete = withRef(function Autocomplete({ options, value, onChange, multiple = false, freeSolo = false, creatable = false, onCreate, getOptionFromInput, inputValue: controlledInputValue, onInputChange, renderLabel = defaultRenderLabel, renderKey = defaultRenderKey, renderOption, renderSelected, customSelectedTags, filterOptions, loading = false, disabled = false, placeholder, maxHeight, autoHighlight = false, clearOnSelect = multiple, openOnFocus = true, noOptionsText, loadingText, onScrollEnd, scrollEndMargin = 200, colorScheme, id, style, className, ...props }, ref) {
|
|
61
61
|
const t = useTranslate(dictionary);
|
|
62
62
|
const _element = useRef(null);
|
|
63
63
|
const inputRef = useRef(null);
|
|
64
64
|
const dropdownRef = useRef(null);
|
|
65
|
+
const isNavigatingWithKeyboard = useRef(false);
|
|
65
66
|
const element = ref ?? _element;
|
|
66
67
|
const [open, setOpen] = useState(false);
|
|
67
68
|
const [focused, setFocused] = useState(false);
|
|
@@ -97,10 +98,15 @@ export const Autocomplete = withRef(function Autocomplete({ options, value, onCh
|
|
|
97
98
|
const defaultFilter = useCallback((opts, input) => {
|
|
98
99
|
if (!input)
|
|
99
100
|
return opts;
|
|
100
|
-
return opts.filter(option => renderLabel(option)
|
|
101
|
+
return opts.filter(option => renderLabel(option)?.toLowerCase()?.includes(input?.toLowerCase()));
|
|
101
102
|
}, [renderLabel]);
|
|
102
103
|
const filter = filterOptions ?? defaultFilter;
|
|
103
|
-
const filteredOptions = useMemo(() =>
|
|
104
|
+
const filteredOptions = useMemo(() => {
|
|
105
|
+
if (!multiple && value && renderLabel(value) === inputValue) {
|
|
106
|
+
return options;
|
|
107
|
+
}
|
|
108
|
+
return filter(options, inputValue);
|
|
109
|
+
}, [options, inputValue, filter, multiple, value, renderLabel]);
|
|
104
110
|
const showCreateOption = useMemo(() => {
|
|
105
111
|
if (!creatable || !onCreate || !inputValue.trim())
|
|
106
112
|
return false;
|
|
@@ -123,8 +129,6 @@ export const Autocomplete = withRef(function Autocomplete({ options, value, onCh
|
|
|
123
129
|
return value !== null && renderKey(value) === renderKey(option);
|
|
124
130
|
}, [value, multiple, renderKey]);
|
|
125
131
|
const handleSelect = useCallback((option) => {
|
|
126
|
-
if (onSelect)
|
|
127
|
-
onSelect(option);
|
|
128
132
|
if (multiple) {
|
|
129
133
|
const currentValue = value;
|
|
130
134
|
const isAlreadySelected = currentValue.some(v => renderKey(v) === renderKey(option));
|
|
@@ -144,7 +148,7 @@ export const Autocomplete = withRef(function Autocomplete({ options, value, onCh
|
|
|
144
148
|
setInputValue(renderLabel(option));
|
|
145
149
|
setOpen(false);
|
|
146
150
|
}
|
|
147
|
-
}, [multiple, value, onChange, renderKey,
|
|
151
|
+
}, [multiple, value, onChange, renderKey, clearOnSelect, setInputValue, renderLabel]);
|
|
148
152
|
const handleRemoveTag = useCallback((optionToRemove) => {
|
|
149
153
|
if (!multiple)
|
|
150
154
|
return;
|
|
@@ -162,6 +166,9 @@ export const Autocomplete = withRef(function Autocomplete({ options, value, onCh
|
|
|
162
166
|
setFocused(true);
|
|
163
167
|
if (openOnFocus) {
|
|
164
168
|
setOpen(true);
|
|
169
|
+
if (autoHighlight && filteredOptions.length > 0) {
|
|
170
|
+
setHighlightedIndex(0);
|
|
171
|
+
}
|
|
165
172
|
}
|
|
166
173
|
};
|
|
167
174
|
const handleBlur = (e) => {
|
|
@@ -187,15 +194,104 @@ export const Autocomplete = withRef(function Autocomplete({ options, value, onCh
|
|
|
187
194
|
}
|
|
188
195
|
}
|
|
189
196
|
}
|
|
197
|
+
else if (!multiple && inputValue) {
|
|
198
|
+
const exactMatch = options.find(o => renderLabel(o).toLowerCase() === inputValue.toLowerCase());
|
|
199
|
+
if (exactMatch) {
|
|
200
|
+
handleSelect(exactMatch);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
if (value) {
|
|
204
|
+
setInputValue(renderLabel(value));
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
setInputValue('');
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
190
211
|
};
|
|
212
|
+
const handleCreateNewOption = useCallback(() => {
|
|
213
|
+
if (!inputValue.trim())
|
|
214
|
+
return false;
|
|
215
|
+
if (onCreate) {
|
|
216
|
+
handleCreate();
|
|
217
|
+
return true;
|
|
218
|
+
}
|
|
219
|
+
if (freeSolo && getOptionFromInput) {
|
|
220
|
+
const newOption = getOptionFromInput(inputValue.trim());
|
|
221
|
+
if (multiple) {
|
|
222
|
+
const currentValue = value;
|
|
223
|
+
const isDuplicate = currentValue.some(v => renderKey(v) === renderKey(newOption));
|
|
224
|
+
if (!isDuplicate) {
|
|
225
|
+
onChange([...currentValue, newOption]);
|
|
226
|
+
}
|
|
227
|
+
setInputValue('');
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
onChange(newOption);
|
|
231
|
+
setInputValue(renderLabel(newOption));
|
|
232
|
+
setOpen(false);
|
|
233
|
+
}
|
|
234
|
+
return true;
|
|
235
|
+
}
|
|
236
|
+
if (freeSolo) {
|
|
237
|
+
if (multiple) {
|
|
238
|
+
const currentValue = value;
|
|
239
|
+
const inputAsOption = inputValue;
|
|
240
|
+
const isDuplicate = currentValue.some(v => renderLabel(v).toLowerCase() === inputValue.toLowerCase());
|
|
241
|
+
if (!isDuplicate) {
|
|
242
|
+
onChange([...currentValue, inputAsOption]);
|
|
243
|
+
}
|
|
244
|
+
setInputValue('');
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
onChange(inputValue);
|
|
248
|
+
setOpen(false);
|
|
249
|
+
}
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
return false;
|
|
253
|
+
}, [onCreate, handleCreate, freeSolo, getOptionFromInput, inputValue, multiple, value, renderKey, onChange, setInputValue, renderLabel]);
|
|
254
|
+
const handleEnterKey = useCallback(() => {
|
|
255
|
+
if (open && highlightedIndex >= 0 && filteredOptions[highlightedIndex]) {
|
|
256
|
+
handleSelect(filteredOptions[highlightedIndex]);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
if (!open && filteredOptions.length === 1) {
|
|
260
|
+
handleSelect(filteredOptions[0]);
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
if (creatable && handleCreateNewOption()) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
if (freeSolo && inputValue && !multiple) {
|
|
267
|
+
const exactMatch = options.find(o => renderLabel(o).toLowerCase() === inputValue.toLowerCase());
|
|
268
|
+
if (exactMatch) {
|
|
269
|
+
handleSelect(exactMatch);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}, [
|
|
273
|
+
open,
|
|
274
|
+
highlightedIndex,
|
|
275
|
+
filteredOptions,
|
|
276
|
+
handleSelect,
|
|
277
|
+
creatable,
|
|
278
|
+
handleCreateNewOption,
|
|
279
|
+
freeSolo,
|
|
280
|
+
inputValue,
|
|
281
|
+
multiple,
|
|
282
|
+
options,
|
|
283
|
+
renderLabel,
|
|
284
|
+
]);
|
|
191
285
|
const handleKeyDown = (e) => {
|
|
192
286
|
if (disabled)
|
|
193
287
|
return;
|
|
194
288
|
switch (e.key) {
|
|
195
289
|
case 'ArrowDown':
|
|
196
290
|
e.preventDefault();
|
|
291
|
+
isNavigatingWithKeyboard.current = true;
|
|
197
292
|
if (!open) {
|
|
198
293
|
setOpen(true);
|
|
294
|
+
setHighlightedIndex(0);
|
|
199
295
|
}
|
|
200
296
|
else {
|
|
201
297
|
setHighlightedIndex(prev => prev < filteredOptions.length - 1 ? prev + 1 : prev);
|
|
@@ -203,57 +299,14 @@ export const Autocomplete = withRef(function Autocomplete({ options, value, onCh
|
|
|
203
299
|
break;
|
|
204
300
|
case 'ArrowUp':
|
|
205
301
|
e.preventDefault();
|
|
302
|
+
isNavigatingWithKeyboard.current = true;
|
|
206
303
|
if (open) {
|
|
207
304
|
setHighlightedIndex(prev => prev > 0 ? prev - 1 : 0);
|
|
208
305
|
}
|
|
209
306
|
break;
|
|
210
307
|
case 'Enter':
|
|
211
308
|
e.preventDefault();
|
|
212
|
-
|
|
213
|
-
handleSelect(filteredOptions[highlightedIndex]);
|
|
214
|
-
}
|
|
215
|
-
else if (creatable && inputValue.trim()) {
|
|
216
|
-
if (onCreate) {
|
|
217
|
-
handleCreate();
|
|
218
|
-
}
|
|
219
|
-
else if (freeSolo && getOptionFromInput) {
|
|
220
|
-
const newOption = getOptionFromInput(inputValue.trim());
|
|
221
|
-
if (multiple) {
|
|
222
|
-
const currentValue = value;
|
|
223
|
-
const isDuplicate = currentValue.some(v => renderKey(v) === renderKey(newOption));
|
|
224
|
-
if (!isDuplicate) {
|
|
225
|
-
onChange([...currentValue, newOption]);
|
|
226
|
-
}
|
|
227
|
-
setInputValue('');
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
onChange(newOption);
|
|
231
|
-
setInputValue(renderLabel(newOption));
|
|
232
|
-
setOpen(false);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
else if (freeSolo) {
|
|
236
|
-
if (multiple) {
|
|
237
|
-
const currentValue = value;
|
|
238
|
-
const inputAsOption = inputValue;
|
|
239
|
-
const isDuplicate = currentValue.some(v => renderLabel(v).toLowerCase() === inputValue.toLowerCase());
|
|
240
|
-
if (!isDuplicate) {
|
|
241
|
-
onChange([...currentValue, inputAsOption]);
|
|
242
|
-
}
|
|
243
|
-
setInputValue('');
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
onChange(inputValue);
|
|
247
|
-
setOpen(false);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
else if (freeSolo && inputValue && !multiple) {
|
|
252
|
-
const exactMatch = options.find(o => renderLabel(o).toLowerCase() === inputValue.toLowerCase());
|
|
253
|
-
if (exactMatch) {
|
|
254
|
-
handleSelect(exactMatch);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
309
|
+
handleEnterKey();
|
|
257
310
|
break;
|
|
258
311
|
case 'Escape':
|
|
259
312
|
e.preventDefault();
|
|
@@ -267,6 +320,9 @@ export const Autocomplete = withRef(function Autocomplete({ options, value, onCh
|
|
|
267
320
|
const lastTag = value[value.length - 1];
|
|
268
321
|
handleRemoveTag(lastTag);
|
|
269
322
|
}
|
|
323
|
+
else if (!multiple && !inputValue && value) {
|
|
324
|
+
onChange(null);
|
|
325
|
+
}
|
|
270
326
|
break;
|
|
271
327
|
default:
|
|
272
328
|
break;
|
|
@@ -284,16 +340,15 @@ export const Autocomplete = withRef(function Autocomplete({ options, value, onCh
|
|
|
284
340
|
inputRef.current.focus();
|
|
285
341
|
}
|
|
286
342
|
};
|
|
287
|
-
|
|
288
|
-
if (
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
setHighlightedIndex(0);
|
|
343
|
+
const handleFocusAndOpen = () => {
|
|
344
|
+
if (disabled)
|
|
345
|
+
return;
|
|
346
|
+
setFocused(true);
|
|
347
|
+
inputRef.current?.focus();
|
|
348
|
+
if (openOnFocus) {
|
|
349
|
+
setOpen(true);
|
|
295
350
|
}
|
|
296
|
-
}
|
|
351
|
+
};
|
|
297
352
|
useEffect(() => {
|
|
298
353
|
if (highlightedIndex < 0 || !open)
|
|
299
354
|
return;
|
|
@@ -337,46 +392,52 @@ export const Autocomplete = withRef(function Autocomplete({ options, value, onCh
|
|
|
337
392
|
if (!multiple || value.length === 0)
|
|
338
393
|
return null;
|
|
339
394
|
const tags = value;
|
|
340
|
-
|
|
341
|
-
|
|
395
|
+
if (renderSelected) {
|
|
396
|
+
return renderSelected(tags, handleRemoveTag);
|
|
397
|
+
}
|
|
398
|
+
const config = customSelectedTags || {};
|
|
399
|
+
const maxItems = config.maxItems;
|
|
400
|
+
const visibleTags = maxItems && tags.length > maxItems
|
|
401
|
+
? tags.slice(0, maxItems)
|
|
342
402
|
: tags;
|
|
343
|
-
const remainingCount =
|
|
344
|
-
? tags.length -
|
|
403
|
+
const remainingCount = maxItems && tags.length > maxItems
|
|
404
|
+
? tags.length - maxItems
|
|
345
405
|
: 0;
|
|
346
|
-
return (_jsxs(_Fragment, { children: [visibleTags.map(tag => {
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
e.stopPropagation();
|
|
352
|
-
if (!disabled)
|
|
353
|
-
handleRemoveTag(tag);
|
|
354
|
-
}, "aria-label": `${t.removeTag} ${renderLabel(tag)}`, disabled: disabled, tabIndex: 0 }))] }, renderKey(tag)));
|
|
355
|
-
}), remainingCount > 0 && (_jsxs(Badge, { colorScheme: tagColorScheme, colorPalette: tagColorPalette, appearance: tagAppearance, children: ["+", remainingCount] }))] }));
|
|
406
|
+
return (_jsxs(_Fragment, { children: [visibleTags.map(tag => (_jsxs(Badge, { colorScheme: config.colorScheme, colorPalette: config.colorPalette, appearance: config.appearance || 'circle', children: [renderLabel(tag), !disabled && (_jsx(IconButton, { icon: "Times", type: "button", appearance: "none", size: "xs", style: { color: 'inherit' }, onClick: (e) => {
|
|
407
|
+
e.stopPropagation();
|
|
408
|
+
if (!disabled)
|
|
409
|
+
handleRemoveTag(tag);
|
|
410
|
+
}, "aria-label": `${t.removeTag} ${renderLabel(tag)}`, disabled: disabled, tabIndex: 0 }))] }, renderKey(tag)))), remainingCount > 0 && (_jsxs(Badge, { colorScheme: config.colorScheme, colorPalette: config.colorPalette, appearance: config.appearance || 'circle', children: ["+", remainingCount] }))] }));
|
|
356
411
|
};
|
|
357
412
|
const showClearButton = !disabled && ((!multiple && value !== null) ||
|
|
358
413
|
(multiple && value.length > 0));
|
|
359
|
-
return (_jsxs(CitricComponent, { tag: "div", component: "autocomplete",
|
|
414
|
+
return (_jsxs(CitricComponent, { tag: "div", component: "autocomplete", colorScheme: colorScheme, style: maxHeight ? applyCSSVariable(style, 'max-height', `${maxHeight}px`) : style, className: listToClass([
|
|
360
415
|
className,
|
|
361
416
|
open && 'open',
|
|
362
417
|
focused && 'focused',
|
|
363
418
|
disabled && 'disabled',
|
|
364
419
|
multiple && 'multiple',
|
|
365
|
-
]), ref: element, "aria-busy": loading, ...props, children: [_jsxs("header", { onClick: () => {
|
|
366
|
-
if (disabled)
|
|
367
|
-
return;
|
|
368
|
-
setFocused(true);
|
|
369
|
-
setOpen(true);
|
|
370
|
-
if (inputRef.current) {
|
|
371
|
-
inputRef.current.focus();
|
|
372
|
-
}
|
|
373
|
-
}, onFocus: () => setFocused(true), tabIndex: disabled ? undefined : 0, children: [_jsxs(Row, { gap: "4px", className: "input-container", children: [multiple && renderTags(), _jsx("input", { ref: inputRef, type: "text", value: inputValue, onChange: (e) => handleInputChange(e.target.value), onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown, disabled: disabled, placeholder: multiple && value.length > 0 ? '' : placeholder, autoComplete: "off", "aria-autocomplete": "list", "aria-expanded": open, "aria-controls": "autocomplete-listbox" })] }), _jsxs("div", { className: "end-adornment", children: [loading && _jsx(ProgressCircular, { size: "xs", className: "loader" }), showClearButton && (_jsx(IconButton, { icon: "Times", appearance: "none", size: "sm", type: "button", onClick: (e) => {
|
|
420
|
+
]), ref: element, "aria-busy": loading, ...props, children: [_jsxs("header", { tabIndex: disabled ? undefined : 0, onClick: handleFocusAndOpen, onFocus: handleFocusAndOpen, onKeyDown: handleKeyDown, children: [_jsxs(Row, { gap: "4px", className: "input-container", children: [multiple && renderTags(), _jsx("input", { ref: inputRef, id: id, type: "text", value: inputValue, onChange: (e) => handleInputChange(e.target.value), onFocus: handleFocus, onBlur: handleBlur, disabled: disabled, placeholder: (multiple && value.length > 0) ? '' : placeholder, tabIndex: disabled ? undefined : 0, autoComplete: "off", "aria-autocomplete": "list", "aria-expanded": open, "aria-controls": "autocomplete-listbox" })] }), _jsxs("div", { className: "end-adornment", children: [loading && _jsx(ProgressCircular, { size: "xs", className: "loader" }), showClearButton && (_jsx(IconButton, { icon: "Times", appearance: "none", size: "sm", type: "button", onClick: (e) => {
|
|
374
421
|
e.stopPropagation();
|
|
422
|
+
e.preventDefault();
|
|
375
423
|
handleClear();
|
|
376
|
-
},
|
|
424
|
+
}, onMouseDown: (e) => {
|
|
425
|
+
e.stopPropagation();
|
|
426
|
+
e.preventDefault();
|
|
427
|
+
}, onFocus: (e) => {
|
|
377
428
|
e.stopPropagation();
|
|
429
|
+
}, disabled: disabled, "aria-label": t.clear, tabIndex: 0, style: { width: '12px', height: '12px' } })), _jsx(IconButton, { icon: open ? 'ChevronUp' : 'ChevronDown', appearance: "none", size: "md", type: "button", onClick: (e) => {
|
|
430
|
+
e.stopPropagation();
|
|
431
|
+
e.preventDefault();
|
|
378
432
|
setOpen((prev) => !prev);
|
|
379
|
-
},
|
|
433
|
+
}, onMouseDown: (e) => {
|
|
434
|
+
e.stopPropagation();
|
|
435
|
+
e.preventDefault();
|
|
436
|
+
}, onFocus: (e) => {
|
|
437
|
+
e.stopPropagation();
|
|
438
|
+
}, disabled: disabled, "aria-label": open ? t.collapse : t.expand, tabIndex: 0, style: { width: '12px', height: '12px' } })] })] }), _jsx("div", { className: "dropdown-panel", ref: dropdownRef, id: "autocomplete-listbox", role: "listbox", "aria-hidden": !open, onMouseMove: () => {
|
|
439
|
+
isNavigatingWithKeyboard.current = false;
|
|
440
|
+
}, ...(open ? {} : { inert: 'true' }), children: loading && !filteredOptions.length ? (_jsx("div", { className: "message", children: loadingText || t.loading })) : filteredOptions.length === 0 && !showCreateOption && !freeSolo ? (_jsx("div", { className: "message", children: noOptionsText || t.noOptions })) : (_jsxs("div", { className: "options", children: [showCreateOption && (_jsxs("div", { role: "option", className: "option create-option", onMouseDown: (e) => {
|
|
380
441
|
e.preventDefault();
|
|
381
442
|
}, onClick: handleCreate, onMouseEnter: () => setHighlightedIndex(-1), children: [_jsx("i", { "data-citric": "icon", className: "citric-icon outline Plus" }), t.addOption.replace('{value}', inputValue)] }, "create-option")), filteredOptions.map((option, index) => (_jsxs("div", { role: "option", "aria-selected": isSelected(option), className: listToClass([
|
|
382
443
|
'option',
|
|
@@ -384,7 +445,11 @@ export const Autocomplete = withRef(function Autocomplete({ options, value, onCh
|
|
|
384
445
|
highlightedIndex === index && 'highlighted',
|
|
385
446
|
]), onMouseDown: (e) => {
|
|
386
447
|
e.preventDefault();
|
|
387
|
-
}, onClick: () => handleSelect(option), onMouseEnter: () =>
|
|
448
|
+
}, onClick: () => handleSelect(option), onMouseEnter: () => {
|
|
449
|
+
if (!isNavigatingWithKeyboard.current) {
|
|
450
|
+
setHighlightedIndex(index);
|
|
451
|
+
}
|
|
452
|
+
}, children: [multiple && _jsx(Checkbox, { value: isSelected(option), readOnly: true }), renderOption ? renderOption(option) : renderLabel(option)] }, renderKey(option))))] })) })] }));
|
|
388
453
|
});
|
|
389
454
|
const dictionary = {
|
|
390
455
|
en: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Autocomplete.js","sourceRoot":"","sources":["../../src/components/Autocomplete.tsx"],"names":[],"mappings":"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"}
|
|
@@ -27,5 +27,5 @@ export type AvatarProps = React.JSX.IntrinsicElements['div'] & BaseAvatarProps;
|
|
|
27
27
|
* <Avatar name="Rick Sanchez" />
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
-
export declare const Avatar: ({ size, name, appearance, className, image, ...props }: AvatarProps) => import("react/jsx-runtime
|
|
30
|
+
export declare const Avatar: ({ size, name, appearance, className, image, ...props }: AvatarProps) => import("react/jsx-runtime").JSX.Element;
|
|
31
31
|
//# sourceMappingURL=Avatar.d.ts.map
|
|
@@ -29,5 +29,5 @@ export type AvatarGroupProps = React.JSX.IntrinsicElements['div'] & BaseAvatarGr
|
|
|
29
29
|
* <AvatarGroup items={[{ name: 'John Smith' }, { name: 'Mary Anne', image: 'https://profile.com/123.png' }]} />
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
-
export declare const AvatarGroup: ({ size, items, appearance, maxItems, className, ...props }: AvatarGroupProps) => import("react/jsx-runtime
|
|
32
|
+
export declare const AvatarGroup: ({ size, items, appearance, maxItems, className, ...props }: AvatarGroupProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
33
|
//# sourceMappingURL=AvatarGroup.d.ts.map
|
|
@@ -25,6 +25,6 @@ export type BadgeProps<T extends ValidTags> = HTMLTag[T] & BaseBadgeProps<T>;
|
|
|
25
25
|
* </Badge>
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
|
-
export declare const Badge: <T extends ValidTags>({ tag, appearance, className, children, ...props }: BadgeProps<T>) => import("react/jsx-runtime
|
|
28
|
+
export declare const Badge: <T extends ValidTags>({ tag, appearance, className, children, ...props }: BadgeProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
29
29
|
export {};
|
|
30
30
|
//# sourceMappingURL=Badge.d.ts.map
|
package/dist/components/Badge.js
CHANGED
|
@@ -9,5 +9,5 @@ export type BlockquoteProps = React.JSX.IntrinsicElements['blockquote'] & BaseBl
|
|
|
9
9
|
* <Blockquote>To be or not to be, that's the question</Blockquote>
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
|
-
export declare const Blockquote: ({ children, ...props }: BlockquoteProps) => import("react/jsx-runtime
|
|
12
|
+
export declare const Blockquote: ({ children, ...props }: BlockquoteProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
//# sourceMappingURL=Blockquote.d.ts.map
|
|
@@ -14,6 +14,6 @@ export type BreadcrumbProps = React.JSX.IntrinsicElements['nav'] & BaseBreadcrum
|
|
|
14
14
|
* <Breadcrumb items={[{ label: 'Home', href: '/' }, { label: 'Settings', href: '/settings' }, { label: 'Profile' }]} />
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
|
-
export declare const Breadcrumb: ({ items, ...props }: BreadcrumbProps) => import("react/jsx-runtime
|
|
17
|
+
export declare const Breadcrumb: ({ items, ...props }: BreadcrumbProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
18
|
export {};
|
|
19
19
|
//# sourceMappingURL=Breadcrumb.d.ts.map
|
|
@@ -50,5 +50,5 @@ export type ButtonProps = Omit<React.JSX.IntrinsicElements['button'], 'onClick'>
|
|
|
50
50
|
* <Button>My Button</Button>
|
|
51
51
|
* ```
|
|
52
52
|
*/
|
|
53
|
-
export declare const Button: ({ appearance, size, feedback, loading, disabled, onClick, className, children, type, metadata, ...props }: ButtonProps) => import("react/jsx-runtime
|
|
53
|
+
export declare const Button: ({ appearance, size, feedback, loading, disabled, onClick, className, children, type, metadata, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
54
54
|
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { listToClass } from '@stack-spot/portal-theme';
|
|
3
3
|
import { Children, useMemo, useState } from 'react';
|
|
4
4
|
import { useCitricController } from '../context/hooks.js';
|
|
@@ -12,5 +12,5 @@ export type ButtonLinkProps = React.JSX.IntrinsicElements['a'] & BaseButtonLinkP
|
|
|
12
12
|
* <ButtonLink href="#">My Button Link</ButtonLink>
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
|
-
export declare const ButtonLink: ({ appearance, size, feedback, onClick, className, children, metadata, ...props }: ButtonLinkProps) => import("react/jsx-runtime
|
|
15
|
+
export declare const ButtonLink: ({ appearance, size, feedback, onClick, className, children, metadata, ...props }: ButtonLinkProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
16
|
//# sourceMappingURL=ButtonLink.d.ts.map
|
|
@@ -37,6 +37,6 @@ export type CardProps<T extends SupportedTags> = (T extends 'a' ? React.JSX.Intr
|
|
|
37
37
|
* <Card>The card content</Card>
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
|
-
export declare const Card: <T extends SupportedTags>({ tag, onClick, size, bgLevel, className, children, direction, ...props }: CardProps<T>) => import("react/jsx-runtime
|
|
40
|
+
export declare const Card: <T extends SupportedTags>({ tag, onClick, size, bgLevel, className, children, direction, ...props }: CardProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
41
41
|
export {};
|
|
42
42
|
//# sourceMappingURL=Card.d.ts.map
|
package/dist/components/Card.js
CHANGED
|
@@ -24,5 +24,5 @@ export type CheckboxProps = ControlledInput & BaseCheckboxProps;
|
|
|
24
24
|
* return <Checkbox value={value} setValue={setValue}>This is the checkbox label</Checkbox>
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
-
export declare const Checkbox: ({ appearance, value, onChange, colorScheme, children, className, style, ...props }: CheckboxProps) => import("react/jsx-runtime
|
|
27
|
+
export declare const Checkbox: ({ appearance, value, onChange, colorScheme, children, className, style, ...props }: CheckboxProps) => import("react/jsx-runtime").JSX.Element;
|
|
28
28
|
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/components/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAI3D,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,iBAAiB,CAAA;AAE/D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,uFAC8E,aAAa,
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/components/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAI3D,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,iBAAiB,CAAA;AAE/D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,uFAC8E,aAAa,4CAkB9G,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { withRef } from '../utils/react.js';
|
|
3
3
|
import { CitricComponent } from './CitricComponent.js';
|
|
4
4
|
/**
|
|
@@ -17,6 +17,6 @@ import { CitricComponent } from './CitricComponent.js';
|
|
|
17
17
|
*/
|
|
18
18
|
export const Checkbox = withRef(({ appearance = 'checkbox', value, onChange, colorScheme, children, className, style, ...props }) => {
|
|
19
19
|
const handleChange = onChange ? () => onChange(!value) : undefined;
|
|
20
|
-
return children ? (_jsxs(CitricComponent, { tag: "label", component: `${appearance}-row`, colorScheme: colorScheme, style: style, className: className, children: [_jsx("input", { type: "checkbox", checked: value, onChange: handleChange, ...props }), children] })) : _jsx(CitricComponent, { tag: "input", type: "checkbox", component: appearance, checked: value, onChange: handleChange,
|
|
20
|
+
return children ? (_jsxs(CitricComponent, { tag: "label", component: `${appearance}-row`, colorScheme: colorScheme, style: style, className: className, children: [_jsx("input", { type: "checkbox", checked: value, onChange: handleChange, ...props }), children] })) : _jsx(CitricComponent, { tag: "input", type: "checkbox", component: appearance, checked: value, onChange: handleChange, className: className, style: style, ...props });
|
|
21
21
|
});
|
|
22
22
|
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/components/Checkbox.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAenD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAC9B,EAAE,UAAU,GAAG,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAiB,EAC9G,EAAE;IACF,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,MAAC,eAAe,IAAC,GAAG,EAAC,OAAO,EAAC,SAAS,EAAE,GAAG,UAAU,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,aACvH,gBAAO,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,KAAM,KAAK,GAAI,EAC3E,QAAQ,IACO,CACnB,CAAC,CAAC,CAAC,KAAC,eAAe,IAClB,GAAG,EAAC,OAAO,EACX,IAAI,EAAC,UAAU,EACf,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,YAAY,EACtB,
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/components/Checkbox.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAenD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAC9B,EAAE,UAAU,GAAG,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAiB,EAC9G,EAAE;IACF,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,MAAC,eAAe,IAAC,GAAG,EAAC,OAAO,EAAC,SAAS,EAAE,GAAG,UAAU,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,aACvH,gBAAO,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,KAAM,KAAK,GAAI,EAC3E,QAAQ,IACO,CACnB,CAAC,CAAC,CAAC,KAAC,eAAe,IAClB,GAAG,EAAC,OAAO,EACX,IAAI,EAAC,UAAU,EACf,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,KACR,KAAK,GACT,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -98,5 +98,5 @@ export type CheckboxGroupProps<T> = Omit<React.JSX.IntrinsicElements['div'], 'on
|
|
|
98
98
|
* return <CheckboxGroup options={options} renderLabel={o => o.name} renderKey={o => o.id} value={value} setValue={setValue} />
|
|
99
99
|
* ```
|
|
100
100
|
*/
|
|
101
|
-
export declare const CheckboxGroup: <T>({ appearance, name, value, options, onChange, renderLabel, renderKey, renderItem, isDisabled, colorScheme, style, gap, focusable, ...props }: CheckboxGroupProps<T>) => import("react/jsx-runtime
|
|
101
|
+
export declare const CheckboxGroup: <T>({ appearance, name, value, options, onChange, renderLabel, renderKey, renderItem, isDisabled, colorScheme, style, gap, focusable, ...props }: CheckboxGroupProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
102
102
|
//# sourceMappingURL=CheckboxGroup.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { isNil } from 'lodash';
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
import { defaultRenderKey, defaultRenderLabel } from '../utils/options.js';
|
|
@@ -30,5 +30,5 @@ export type CircleProps = React.JSX.IntrinsicElements['div'] & BaseCircleProps;
|
|
|
30
30
|
* <Circle colorScheme="success" />
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
|
-
export declare const Circle: ({ showBorders, className, size, children, ...props }: CircleProps) => import("react/jsx-runtime
|
|
33
|
+
export declare const Circle: ({ showBorders, className, size, children, ...props }: CircleProps) => import("react/jsx-runtime").JSX.Element;
|
|
34
34
|
//# sourceMappingURL=Circle.d.ts.map
|