@jars-labs/jars-components 1.0.55 → 1.0.56

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.
@@ -183,7 +183,7 @@ var Animation = function (_a) {
183
183
  var refVector = useRef(null);
184
184
  var _b = useState(null), lottie = _b[0], setLottie = _b[1];
185
185
  useEffect(function () {
186
- import('./lottie-Ds7FsI6P.js').then(function (n) { return n.l; }).then(function (Lottie) { return setLottie(Lottie.default); });
186
+ import('./lottie-Hh146ylX.js').then(function (n) { return n.l; }).then(function (Lottie) { return setLottie(Lottie.default); });
187
187
  }, []);
188
188
  useEffect(function () {
189
189
  if (lottie && refVector.current) {
@@ -464,31 +464,32 @@ Loader.displayName = 'Loader';
464
464
  * Autocomplete component
465
465
  * Autocomplete user input with any list of options
466
466
  *
467
- * @param options - list of options to display in dropdown
467
+ * @param options - list of options to display in dropdown (array of AutocompleteOption)
468
468
  * @param label - input label
469
469
  * @param placeholder - input placeholder
470
- * @param onOptionSubmit - function to call when option is selected by click or enter
470
+ * @param onOptionSubmit - function to call when option is selected by click or enter (option: AutocompleteOption | null)
471
+ * @param onClear - function to call when clear button is clicked
471
472
  * @param disabled - disable input
472
473
  * @param onSearchChange - function to call when search value changes
473
474
  * @param searchValue - search value
474
475
  * @param loading - show loading spinner
475
476
  * @param minCharactersToShowDropdown - minimum characters to show dropdown options
476
477
  * @param style - custom styles for the input
477
- * @param initialValue - default value for the input
478
+ * @param initialValue - default value for the input (AutocompleteOption)
478
479
  *
479
480
  * @return Autocomplete component with dropdown
480
481
  */
481
482
  var Autocomplete = function (_a) {
482
- var options = _a.options, _b = _a.placeholder, placeholder = _b === undefined ? 'Search' : _b, onOptionSubmit = _a.onOptionSubmit, _c = _a.disabled, disabled = _c === undefined ? false : _c, onSearchChange = _a.onSearchChange, searchValue = _a.searchValue, _d = _a.loading, loading = _d === undefined ? false : _d, _e = _a.minCharactersToShowDropdown, minCharactersToShowDropdown = _e === undefined ? 2 : _e, style = _a.style, initialValue = _a.initialValue;
483
- var handleOptionSubmit = function (value) {
484
- onOptionSubmit === null || onOptionSubmit === undefined ? undefined : onOptionSubmit(value);
485
- onSearchChange(value);
483
+ var options = _a.options, _b = _a.placeholder, placeholder = _b === undefined ? 'Search' : _b, onOptionSubmit = _a.onOptionSubmit, _c = _a.disabled, disabled = _c === undefined ? false : _c, onClear = _a.onClear, onSearchChange = _a.onSearchChange, searchValue = _a.searchValue, _d = _a.loading, loading = _d === undefined ? false : _d, _e = _a.minCharactersToShowDropdown, minCharactersToShowDropdown = _e === undefined ? 2 : _e, style = _a.style, initialValue = _a.initialValue;
484
+ var handleOptionSubmit = function (option) {
485
+ onOptionSubmit === null || onOptionSubmit === undefined ? undefined : onOptionSubmit(option);
486
+ onSearchChange((option === null || option === undefined ? undefined : option.label) || '');
486
487
  };
487
488
  var boldedOptions = options.map(function (option) {
488
- var index = option.toLowerCase().indexOf(searchValue.toLowerCase());
489
+ var index = option.label.toLowerCase().indexOf(searchValue.toLowerCase());
489
490
  if (index === -1)
490
- return (jsx(Dropdown.Option, { value: option, children: option }, option));
491
- return (jsxs(Dropdown.Option, { value: option, onClick: function () { return handleOptionSubmit(option); }, children: [option.slice(0, index), jsx("strong", { children: option.slice(index, index + searchValue.length) }), option.slice(index + searchValue.length)] }, option));
491
+ return (jsx(Dropdown.Option, { value: option.label, children: option.label }, option.id));
492
+ return (jsxs(Dropdown.Option, { value: option.label, onClick: function () { return handleOptionSubmit(option); }, children: [option.label.slice(0, index), jsx("strong", { children: option.label.slice(index, index + searchValue.length) }), option.label.slice(index + searchValue.length)] }, option.id));
492
493
  });
493
494
  var emptyOptions = (jsx(Dropdown.Option, { value: "No options found", style: { cursor: 'not-allowed', pointerEvents: 'none' }, children: "No matches found, try something else." }));
494
495
  var loadingOptions = (jsx(Dropdown.Option, { value: "Loading...", disabled: true, style: { display: 'flex', justifyContent: 'center' }, children: jsx(Loader, {}) }));
@@ -498,12 +499,15 @@ var Autocomplete = function (_a) {
498
499
  return boldedOptions.length > 0 ? boldedOptions : emptyOptions;
499
500
  };
500
501
  var _f = useState(false), touched = _f[0], setTouched = _f[1];
501
- return (jsx(Dropdown, { options: renderOptions(), onOptionSubmit: handleOptionSubmit, maxHeight: 250, closeOnSelect: true, children: function (store) { return (jsx(Input, { hideLabel: true, label: "Search", placeholder: placeholder, onClick: function () {
502
+ var _g = useState(false), hasClearedInitial = _g[0], setHasClearedInitial = _g[1];
503
+ var inputValue = touched || hasClearedInitial ? searchValue : initialValue || '';
504
+ return (jsx(Dropdown, { options: renderOptions(), maxHeight: 250, closeOnSelect: true, children: function (store) { return (jsx(Input, { hideLabel: true, label: "Search", placeholder: placeholder, onClick: function () {
502
505
  return !disabled &&
503
506
  searchValue.length >= minCharactersToShowDropdown &&
504
507
  store.toggleDropdown();
505
- }, onChange: function (event) {
508
+ }, value: inputValue, onChange: function (event) {
506
509
  setTouched(true);
510
+ setHasClearedInitial(true);
507
511
  var value = event.currentTarget.value;
508
512
  onSearchChange(value);
509
513
  if (!store.dropdownOpened &&
@@ -514,20 +518,19 @@ var Autocomplete = function (_a) {
514
518
  store.resetSelectedOption();
515
519
  store.closeDropdown();
516
520
  }
517
- }, value: touched ? searchValue : initialValue || '', holdSpace: false, leftSection: jsx(Search, {}), rightSection: jsx(ActionIcon, { radius: "sm", variant: "light", onClick: function () {
521
+ }, holdSpace: false, leftSection: jsx(Search, {}), rightSection: jsx(ActionIcon, { radius: "sm", variant: "light", onClick: function () {
522
+ setHasClearedInitial(true);
523
+ setTouched(true);
518
524
  onSearchChange('');
519
- onOptionSubmit === null || onOptionSubmit === undefined ? undefined : onOptionSubmit('');
525
+ onClear === null || onClear === undefined ? undefined : onClear(); // ✅ acción explícita
520
526
  store.resetSelectedOption();
521
527
  store.closeDropdown();
522
- }, style: { visibility: searchValue ? 'visible' : 'hidden' }, children: jsx(Close, {}) }), onKeyDown: function (event) {
523
- if (event.key === 'Enter' && options.length !== 1) {
524
- handleOptionSubmit(searchValue);
525
- store.toggleDropdown();
526
- }
527
- else if (event.key === 'Enter' && !loading) {
528
- handleOptionSubmit(options[0]);
529
- store.toggleDropdown();
530
- }
528
+ }, style: { visibility: inputValue ? 'visible' : 'hidden' }, children: jsx(Close, {}) }), onKeyDown: function (event) {
529
+ if (event.key !== 'Enter')
530
+ return;
531
+ // ENTER = free search, not a specific option
532
+ onOptionSubmit(null);
533
+ store.closeDropdown();
531
534
  }, style: style })); } }));
532
535
  };
533
536
  Autocomplete.displayName = 'Autocomplete';
@@ -1979,9 +1982,9 @@ var AIRedo = function (props) {
1979
1982
  AIRedo.displayName = 'AI Redo';
1980
1983
 
1981
1984
  var Refresh = function (props) {
1982
- return (jsxs(Icon, __assign({}, props, { children: [jsx("path", { d: "M20.3846 16.5176L24.077 15.5945L25 19.2869", stroke: props.stroke, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M24.077 15.5945C23.292 17.9399 21.8117 19.9908 19.8332 21.4747C17.8546 22.9587 15.4713 23.8053 13 23.9022C10.7258 23.9026 8.5065 23.2031 6.64367 21.8984C4.78085 20.5937 3.36474 18.7474 2.58771 16.6099", stroke: props.stroke, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M5.61538 9.133L1.92308 10.0561L1 6.36377", stroke: props.stroke, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M1.92303 10.0561C2.74932 7.73647 4.24047 5.71157 6.21039 4.23411C8.18031 2.75667 10.5417 1.89214 13 1.74841C15.2853 1.75484 17.5127 2.46797 19.3768 3.79004C21.241 5.11211 22.6505 6.97838 23.4123 9.13303", stroke: props.stroke, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] })));
1985
+ return (jsxs(Icon, __assign({}, props, { children: [jsx("path", { d: "M20.3846 16.5176L24.077 15.5945L25 19.2869", stroke: "black", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M24.077 15.5945C23.292 17.9399 21.8117 19.9908 19.8332 21.4747C17.8546 22.9587 15.4713 23.8053 13 23.9022C10.7258 23.9026 8.5065 23.2031 6.64367 21.8984C4.78085 20.5937 3.36474 18.7474 2.58771 16.6099", stroke: "black", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M5.61538 9.133L1.92308 10.0561L1 6.36377", stroke: "black", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M1.92303 10.0561C2.74932 7.73647 4.24047 5.71157 6.21039 4.23411C8.18031 2.75667 10.5417 1.89214 13 1.74841C15.2853 1.75484 17.5127 2.46797 19.3768 3.79004C21.241 5.11211 22.6505 6.97838 23.4123 9.13303", stroke: "black", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] })));
1983
1986
  };
1984
1987
  Refresh.displayName = 'Refresh';
1985
1988
 
1986
1989
  export { ChevronCollapse as $, Accordion as A, Badge as B, Card as C, DateInput as D, EnterCodeInput as E, FileInput as F, ToastContainer as G, Tooltip as H, IncrementNumber as I, Multiselect as J, NavBarSide as K, Link as L, Message as M, NavBar as N, Alert as O, PasswordInput as P, Arrow as Q, RadioButton as R, SegmentedControl as S, Table as T, Attachment as U, AvatarPlaceholder as V, Bell as W, Calendar as X, Cat as Y, Chat as Z, Chevron as _, AccordionItem as a, Clock as a0, Close as a1, Cloud as a2, Delete as a3, Document as a4, Dog as a5, EyeHide as a6, EyeShow as a7, Fingerprint as a8, Google as a9, Visa as aA, Warning as aB, World as aC, AISearch as aD, AIGenerate as aE, AIPrompt as aF, AIRedo as aG, Refresh as aH, capitalizeFirstSentenceLetter as aI, Grid as aa, Hamburger as ab, HappyFace as ac, House as ad, HouseTime as ae, Identification as af, Info as ag, Location as ah, Mail as ai, Menu as aj, MenuTouched as ak, Notification as al, Open as am, Pets as an, Phone as ao, Plaid as ap, Plus as aq, Remove as ar, Search as as, Shield as at, StepIndicator as au, ThreeDots as av, ThumbsDown as aw, Tick as ax, Umbrello as ay, Upload as az, AccordionControl as b, AccordionPanel as c, ActionIcon as d, Animation as e, Autocomplete as f, getDefaultExportFromCjs as g, badgeVariantMap as h, Button as i, cardStatusVariantMap as j, CardStatus as k, Checkbox as l, Chip as m, Dropdown as n, FileUpload as o, Input as p, LinkModal as q, Loader as r, Modal as s, Pagination as t, Select as u, StatusBadge as v, Stepper as w, Tabs as x, Text as y, Textarea as z };
1987
- //# sourceMappingURL=index-BzZLWAGH.js.map
1990
+ //# sourceMappingURL=index-BPg92wDN.js.map