@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.
Files changed (209) hide show
  1. package/CHANGELOG.md +13 -13
  2. package/dist/citric.css +2926 -2920
  3. package/dist/components/Accordion.d.ts +1 -1
  4. package/dist/components/Accordion.js +1 -1
  5. package/dist/components/Alert.d.ts +1 -1
  6. package/dist/components/Alert.js +1 -1
  7. package/dist/components/AsyncContent.d.ts +1 -1
  8. package/dist/components/AsyncContent.js +1 -1
  9. package/dist/components/Autocomplete.d.ts +370 -0
  10. package/dist/components/Autocomplete.d.ts.map +1 -0
  11. package/dist/components/{Autocomplete/Autocomplete.js → Autocomplete.js} +163 -98
  12. package/dist/components/Autocomplete.js.map +1 -0
  13. package/dist/components/Avatar.d.ts +1 -1
  14. package/dist/components/Avatar.js +1 -1
  15. package/dist/components/AvatarGroup.d.ts +1 -1
  16. package/dist/components/AvatarGroup.js +1 -1
  17. package/dist/components/Badge.d.ts +1 -1
  18. package/dist/components/Badge.js +1 -1
  19. package/dist/components/Blockquote.d.ts +1 -1
  20. package/dist/components/Blockquote.js +1 -1
  21. package/dist/components/Breadcrumb.d.ts +1 -1
  22. package/dist/components/Breadcrumb.js +1 -1
  23. package/dist/components/Button.d.ts +1 -1
  24. package/dist/components/Button.js +1 -1
  25. package/dist/components/ButtonLink.d.ts +1 -1
  26. package/dist/components/ButtonLink.js +1 -1
  27. package/dist/components/Card.d.ts +1 -1
  28. package/dist/components/Card.js +1 -1
  29. package/dist/components/Checkbox.d.ts +1 -1
  30. package/dist/components/Checkbox.d.ts.map +1 -1
  31. package/dist/components/Checkbox.js +2 -2
  32. package/dist/components/Checkbox.js.map +1 -1
  33. package/dist/components/CheckboxGroup.d.ts +1 -1
  34. package/dist/components/CheckboxGroup.js +1 -1
  35. package/dist/components/Circle.d.ts +1 -1
  36. package/dist/components/Circle.js +1 -1
  37. package/dist/components/Divider.d.ts +1 -1
  38. package/dist/components/Divider.js +1 -1
  39. package/dist/components/ErrorBoundary.d.ts +1 -1
  40. package/dist/components/ErrorBoundary.js +1 -1
  41. package/dist/components/ErrorMessage.d.ts +1 -1
  42. package/dist/components/ErrorMessage.js +1 -1
  43. package/dist/components/FallbackBoundary.d.ts +1 -1
  44. package/dist/components/FallbackBoundary.js +1 -1
  45. package/dist/components/Favorite.d.ts +1 -1
  46. package/dist/components/Favorite.js +1 -1
  47. package/dist/components/FieldGroup.d.ts +1 -1
  48. package/dist/components/FieldGroup.js +1 -1
  49. package/dist/components/Form.d.ts +2 -2
  50. package/dist/components/Form.js +1 -1
  51. package/dist/components/FormGroup.d.ts +1 -1
  52. package/dist/components/FormGroup.js +1 -1
  53. package/dist/components/Icon.d.ts +1 -1
  54. package/dist/components/Icon.js +1 -1
  55. package/dist/components/IconBox.d.ts +3 -3
  56. package/dist/components/IconBox.js +1 -1
  57. package/dist/components/ImageBox.d.ts +3 -3
  58. package/dist/components/ImageBox.js +1 -1
  59. package/dist/components/ImageWithFallback.d.ts +1 -1
  60. package/dist/components/ImageWithFallback.js +1 -1
  61. package/dist/components/Input.d.ts +1 -1
  62. package/dist/components/Input.js +1 -1
  63. package/dist/components/Link.d.ts +1 -1
  64. package/dist/components/Link.js +1 -1
  65. package/dist/components/LoadingPanel.d.ts +1 -1
  66. package/dist/components/LoadingPanel.js +1 -1
  67. package/dist/components/MenuOverlay/Menu.d.ts +1 -1
  68. package/dist/components/MenuOverlay/Menu.js +1 -1
  69. package/dist/components/MenuOverlay/index.d.ts +1 -1
  70. package/dist/components/MenuOverlay/index.js +1 -1
  71. package/dist/components/Overlay/index.d.ts +1 -1
  72. package/dist/components/Overlay/index.js +1 -1
  73. package/dist/components/Pagination.d.ts +1 -1
  74. package/dist/components/Pagination.js +1 -1
  75. package/dist/components/ProgressBar.d.ts +1 -1
  76. package/dist/components/ProgressBar.js +1 -1
  77. package/dist/components/ProgressCircular.d.ts +1 -1
  78. package/dist/components/ProgressCircular.js +1 -1
  79. package/dist/components/RadioGroup.d.ts +1 -1
  80. package/dist/components/RadioGroup.js +1 -1
  81. package/dist/components/Rating.d.ts +1 -1
  82. package/dist/components/Rating.js +1 -1
  83. package/dist/components/Select/MultiSelect.d.ts +1 -1
  84. package/dist/components/Select/MultiSelect.js +1 -1
  85. package/dist/components/Select/RichSelect.d.ts +1 -1
  86. package/dist/components/Select/RichSelect.js +1 -1
  87. package/dist/components/Select/SimpleSelect.d.ts +1 -1
  88. package/dist/components/Select/SimpleSelect.js +1 -1
  89. package/dist/components/Select/index.d.ts +1 -1
  90. package/dist/components/Select/index.js +1 -1
  91. package/dist/components/SelectBox.d.ts +9 -1
  92. package/dist/components/SelectBox.d.ts.map +1 -1
  93. package/dist/components/SelectBox.js +6 -5
  94. package/dist/components/SelectBox.js.map +1 -1
  95. package/dist/components/Skeleton.d.ts +1 -1
  96. package/dist/components/Skeleton.js +1 -1
  97. package/dist/components/Slider.d.ts +1 -1
  98. package/dist/components/Slider.js +1 -1
  99. package/dist/components/SmartTable.d.ts +1 -1
  100. package/dist/components/SmartTable.js +1 -1
  101. package/dist/components/Stepper.d.ts +1 -1
  102. package/dist/components/Stepper.js +1 -1
  103. package/dist/components/Table.d.ts +3 -3
  104. package/dist/components/Table.js +1 -1
  105. package/dist/components/Tabs/index.d.ts +1 -1
  106. package/dist/components/Tabs/index.js +1 -1
  107. package/dist/components/Textarea.d.ts +1 -1
  108. package/dist/components/Textarea.js +1 -1
  109. package/dist/components/Tooltip.d.ts +1 -1
  110. package/dist/components/Tooltip.js +1 -1
  111. package/dist/context/CitricProvider.d.ts +1 -1
  112. package/dist/context/CitricProvider.js +1 -1
  113. package/dist/index.d.ts +2 -1
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +2 -1
  116. package/dist/index.js.map +1 -1
  117. package/dist/overlay.js +1 -1
  118. package/dist/theme.css +415 -415
  119. package/dist/utils/css.js +1 -1
  120. package/dist/utils/css.js.map +1 -1
  121. package/package.json +1 -1
  122. package/scripts/build-css.ts +49 -49
  123. package/src/components/Accordion.tsx +130 -130
  124. package/src/components/Alert.tsx +24 -24
  125. package/src/components/AsyncContent.tsx +75 -75
  126. package/src/components/{Autocomplete/Autocomplete.tsx → Autocomplete.tsx} +403 -159
  127. package/src/components/Avatar.tsx +45 -45
  128. package/src/components/AvatarGroup.tsx +49 -49
  129. package/src/components/Badge.tsx +47 -47
  130. package/src/components/Blockquote.tsx +18 -18
  131. package/src/components/Breadcrumb.tsx +33 -33
  132. package/src/components/Button.tsx +105 -105
  133. package/src/components/ButtonLink.tsx +45 -45
  134. package/src/components/Card.tsx +68 -68
  135. package/src/components/Checkbox.tsx +51 -52
  136. package/src/components/CheckboxGroup.tsx +153 -153
  137. package/src/components/Circle.tsx +43 -43
  138. package/src/components/CitricComponent.ts +47 -47
  139. package/src/components/Divider.tsx +24 -24
  140. package/src/components/ErrorBoundary.tsx +75 -75
  141. package/src/components/ErrorMessage.tsx +11 -11
  142. package/src/components/FallbackBoundary.tsx +40 -40
  143. package/src/components/Favorite.tsx +57 -57
  144. package/src/components/FieldGroup.tsx +46 -46
  145. package/src/components/Form.tsx +36 -36
  146. package/src/components/FormGroup.tsx +57 -57
  147. package/src/components/Icon.tsx +35 -35
  148. package/src/components/IconBox.tsx +134 -134
  149. package/src/components/ImageBox.tsx +125 -125
  150. package/src/components/ImageWithFallback.tsx +65 -65
  151. package/src/components/Input.tsx +49 -49
  152. package/src/components/Link.tsx +55 -55
  153. package/src/components/LoadingPanel.tsx +12 -12
  154. package/src/components/MenuOverlay/Menu.tsx +158 -158
  155. package/src/components/MenuOverlay/context.ts +20 -20
  156. package/src/components/MenuOverlay/index.tsx +55 -55
  157. package/src/components/MenuOverlay/keyboard.ts +60 -60
  158. package/src/components/MenuOverlay/types.ts +171 -171
  159. package/src/components/Overlay/context.ts +10 -10
  160. package/src/components/Overlay/index.tsx +182 -182
  161. package/src/components/Overlay/types.ts +75 -75
  162. package/src/components/Pagination.tsx +133 -133
  163. package/src/components/ProgressBar.tsx +45 -45
  164. package/src/components/ProgressCircular.tsx +45 -45
  165. package/src/components/RadioGroup.tsx +147 -147
  166. package/src/components/Rating.tsx +98 -98
  167. package/src/components/Select/MultiSelect.tsx +217 -217
  168. package/src/components/Select/RichSelect.tsx +128 -128
  169. package/src/components/Select/SimpleSelect.tsx +73 -73
  170. package/src/components/Select/hooks.ts +133 -133
  171. package/src/components/Select/index.tsx +35 -35
  172. package/src/components/Select/types.ts +134 -134
  173. package/src/components/SelectBox.tsx +181 -167
  174. package/src/components/Skeleton.tsx +53 -53
  175. package/src/components/Slider.tsx +89 -89
  176. package/src/components/SmartTable.tsx +227 -227
  177. package/src/components/Stepper.tsx +163 -163
  178. package/src/components/Table.tsx +234 -234
  179. package/src/components/Tabs/TabController.ts +54 -54
  180. package/src/components/Tabs/index.tsx +106 -106
  181. package/src/components/Tabs/types.ts +67 -67
  182. package/src/components/Tabs/utils.ts +6 -6
  183. package/src/components/Text.ts +111 -111
  184. package/src/components/Textarea.tsx +27 -27
  185. package/src/components/Tooltip.tsx +83 -83
  186. package/src/components/layout.tsx +101 -101
  187. package/src/context/CitricContext.tsx +4 -4
  188. package/src/context/CitricProvider.tsx +14 -14
  189. package/src/context/hooks.ts +6 -6
  190. package/src/index.ts +59 -59
  191. package/src/overlay.ts +348 -348
  192. package/src/types.ts +235 -235
  193. package/src/utils/ValueController.ts +28 -28
  194. package/src/utils/acessibility.ts +92 -92
  195. package/src/utils/checkbox.ts +121 -121
  196. package/src/utils/css.ts +119 -119
  197. package/src/utils/options.ts +9 -9
  198. package/src/utils/radio.ts +93 -93
  199. package/src/utils/react.ts +6 -6
  200. package/src/utils/time.ts +5 -5
  201. package/tsconfig.json +10 -10
  202. package/dist/components/Autocomplete/Autocomplete.d.ts +0 -211
  203. package/dist/components/Autocomplete/Autocomplete.d.ts.map +0 -1
  204. package/dist/components/Autocomplete/Autocomplete.js.map +0 -1
  205. package/dist/components/Autocomplete/index.d.ts +0 -3
  206. package/dist/components/Autocomplete/index.d.ts.map +0 -1
  207. package/dist/components/Autocomplete/index.js +0 -2
  208. package/dist/components/Autocomplete/index.js.map +0 -1
  209. 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.js";
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 '../../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';
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, renderTag, filterOptions, loading = false, disabled = false, placeholder, maxHeight, maxTagsToShow, autoHighlight = false, clearOnSelect = multiple, openOnFocus = true, onSelect, noOptionsText, loadingText, onScrollEnd, scrollEndMargin = 200, tagColorScheme, tagColorPalette, tagAppearance = 'circle', style, className, ...props }, ref) {
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).toLowerCase().includes(input.toLowerCase()));
101
+ return opts.filter(option => renderLabel(option)?.toLowerCase()?.includes(input?.toLowerCase()));
101
102
  }, [renderLabel]);
102
103
  const filter = filterOptions ?? defaultFilter;
103
- const filteredOptions = useMemo(() => filter(options, inputValue), [options, inputValue, filter]);
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, renderLabel, clearOnSelect, setInputValue, onSelect]);
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
- if (open && highlightedIndex >= 0 && filteredOptions[highlightedIndex]) {
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
- useEffect(() => {
288
- if (!multiple && value && !focused) {
289
- setInternalInputValue(renderLabel(value));
290
- }
291
- }, [value, multiple, renderLabel, focused]);
292
- useEffect(() => {
293
- if (autoHighlight && open && filteredOptions.length > 0) {
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
- }, [autoHighlight, open, filteredOptions.length]);
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
- const visibleTags = maxTagsToShow && tags.length > maxTagsToShow
341
- ? tags.slice(0, maxTagsToShow)
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 = maxTagsToShow && tags.length > maxTagsToShow
344
- ? tags.length - maxTagsToShow
403
+ const remainingCount = maxItems && tags.length > maxItems
404
+ ? tags.length - maxItems
345
405
  : 0;
346
- return (_jsxs(_Fragment, { children: [visibleTags.map(tag => {
347
- if (renderTag) {
348
- return renderTag(tag, () => handleRemoveTag(tag));
349
- }
350
- return (_jsxs(Badge, { colorScheme: tagColorScheme, colorPalette: tagColorPalette, appearance: tagAppearance, children: [renderLabel(tag), !disabled && (_jsx(IconButton, { icon: "Times", type: "button", appearance: "none", size: "xs", style: { color: 'inherit' }, onClick: (e) => {
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", "data-citric": "autocomplete", style: maxHeight ? applyCSSVariable(style, 'max-height', `${maxHeight}px`) : style, className: listToClass([
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
- }, disabled: disabled, "aria-label": t.clear, tabIndex: 1, style: { width: '12px', height: '12px' } })), _jsx(IconButton, { icon: open ? 'ChevronUp' : 'ChevronDown', appearance: "none", size: "md", type: "button", onClick: (e) => {
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
- }, disabled: disabled, "aria-label": open ? t.collapse : t.expand, tabIndex: 1, style: { width: '12px', height: '12px' } })] })] }), _jsx("div", { className: "dropdown-panel", ref: dropdownRef, id: "autocomplete-listbox", role: "listbox", "aria-hidden": !open, ...(open ? {} : { inert: 'true' }), children: loading && !filteredOptions.length ? (_jsx("div", { className: "message", children: loadingText || t.loading })) : filteredOptions.length === 0 && !showCreateOption ? (_jsx("div", { className: "message", children: noOptionsText || t.noOptions })) : (_jsxs("div", { className: "options", children: [showCreateOption && (_jsxs("div", { role: "option", className: "option create-option", onMouseDown: (e) => {
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: () => setHighlightedIndex(index), children: [multiple && _jsx(Checkbox, { value: isSelected(option), readOnly: true }), renderOption ? renderOption(option) : renderLabel(option)] }, renderKey(option))))] })) })] }));
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.js").JSX.Element;
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
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime.js";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { listToClass } from '@stack-spot/portal-theme';
3
3
  import { withRef } from '../utils/react.js';
4
4
  import { CitricComponent } from './CitricComponent.js';
@@ -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.js").JSX.Element;
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
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime.js";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { listToClass } from '@stack-spot/portal-theme';
3
3
  import { withRef } from '../utils/react.js';
4
4
  import { Avatar } from './Avatar.js';
@@ -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.js").JSX.Element;
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
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime.js";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { listToClass } from '@stack-spot/portal-theme';
3
3
  import { withRef } from '../utils/react.js';
4
4
  import { CitricComponent } from './CitricComponent.js';
@@ -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.js").JSX.Element;
12
+ export declare const Blockquote: ({ children, ...props }: BlockquoteProps) => import("react/jsx-runtime").JSX.Element;
13
13
  //# sourceMappingURL=Blockquote.d.ts.map
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime.js";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { withRef } from '../utils/react.js';
3
3
  import { CitricComponent } from './CitricComponent.js';
4
4
  /**
@@ -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.js").JSX.Element;
17
+ export declare const Breadcrumb: ({ items, ...props }: BreadcrumbProps) => import("react/jsx-runtime").JSX.Element;
18
18
  export {};
19
19
  //# sourceMappingURL=Breadcrumb.d.ts.map
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime.js";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useMemo } from 'react';
3
3
  import { withRef } from '../utils/react.js';
4
4
  import { CitricComponent } from './CitricComponent.js';
@@ -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.js").JSX.Element;
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.js";
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.js").JSX.Element;
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
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime.js";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { listToClass } from '@stack-spot/portal-theme';
3
3
  import { Children, useMemo } from 'react';
4
4
  import { useCitricController } from '../context/hooks.js';
@@ -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.js").JSX.Element;
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
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime.js";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { listToClass } from '@stack-spot/portal-theme';
3
3
  import { useCitricController } from '../context/hooks.js';
4
4
  import { applyStyles } from '../utils/css.js';
@@ -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.js").JSX.Element;
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,4CAmB9G,CAAA"}
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.js";
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, colorScheme: colorScheme, className: className, style: style, ...props });
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,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,KACR,KAAK,GACT,CAAA;AACJ,CAAC,CAAC,CAAA"}
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.js").JSX.Element;
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.js";
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.js").JSX.Element;
33
+ export declare const Circle: ({ showBorders, className, size, children, ...props }: CircleProps) => import("react/jsx-runtime").JSX.Element;
34
34
  //# sourceMappingURL=Circle.d.ts.map