@bspk/ui 1.3.2 → 1.3.3

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 (58) hide show
  1. package/dist/components/DateInput/DateInput.js +1 -0
  2. package/dist/components/DateInput/DateInput.js.map +1 -1
  3. package/dist/components/ListItem/ListItem.d.ts +2 -2
  4. package/dist/components/ListItem/ListItem.js +11 -7
  5. package/dist/components/ListItem/ListItem.js.map +1 -1
  6. package/dist/components/ListItem/ListItemExample.d.ts +1 -1
  7. package/dist/components/ListItem/ListItemExample.js +72 -3
  8. package/dist/components/ListItem/ListItemExample.js.map +1 -1
  9. package/dist/components/ListItem/list-item.css +8 -6
  10. package/dist/components/ListItem/list-item.css.js +8 -6
  11. package/dist/components/ListItemMenu/ListItemMenu.d.ts +1 -1
  12. package/dist/components/ListItemMenu/ListItemMenu.js.map +1 -1
  13. package/dist/components/NumberInput/NumberInput.d.ts +2 -2
  14. package/dist/components/NumberInput/NumberInput.js +7 -20
  15. package/dist/components/NumberInput/NumberInput.js.map +1 -1
  16. package/dist/components/Popover/Popover.js +1 -0
  17. package/dist/components/Popover/Popover.js.map +1 -1
  18. package/dist/components/ProgressionStepper/ProgressionStepper.d.ts +3 -7
  19. package/dist/components/ProgressionStepper/ProgressionStepper.js +9 -5
  20. package/dist/components/ProgressionStepper/ProgressionStepper.js.map +1 -1
  21. package/dist/components/ProgressionStepper/ProgressionStepperExample.js +20 -4
  22. package/dist/components/ProgressionStepper/ProgressionStepperExample.js.map +1 -1
  23. package/dist/components/SearchBar/SearchBar.d.ts +36 -35
  24. package/dist/components/SearchBar/SearchBar.js +100 -49
  25. package/dist/components/SearchBar/SearchBar.js.map +1 -1
  26. package/dist/components/SearchBar/SearchBarExample.js +2 -1
  27. package/dist/components/SearchBar/SearchBarExample.js.map +1 -1
  28. package/dist/components/Select/Select.d.ts +2 -2
  29. package/dist/components/Select/Select.js +3 -5
  30. package/dist/components/Select/Select.js.map +1 -1
  31. package/dist/components/TabList/TabList.js +2 -1
  32. package/dist/components/TabList/TabList.js.map +1 -1
  33. package/dist/components/TabList/tab-list.css +6 -0
  34. package/dist/components/TabList/tab-list.css.js +6 -0
  35. package/dist/hooks/useArrowNavigation.js +6 -1
  36. package/dist/hooks/useArrowNavigation.js.map +1 -1
  37. package/dist/hooks/useOutsideClick.d.ts +4 -3
  38. package/dist/hooks/useOutsideClick.js +13 -2
  39. package/dist/hooks/useOutsideClick.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/components/DateInput/DateInput.tsx +1 -0
  42. package/src/components/ListItem/ListItem.rtl.test.tsx +4 -1
  43. package/src/components/ListItem/ListItem.tsx +19 -12
  44. package/src/components/ListItem/ListItemExample.tsx +74 -4
  45. package/src/components/ListItem/list-item.scss +21 -17
  46. package/src/components/ListItemMenu/ListItemMenu.tsx +4 -3
  47. package/src/components/NumberInput/NumberInput.tsx +14 -27
  48. package/src/components/Popover/Popover.tsx +1 -0
  49. package/src/components/ProgressionStepper/ProgressionStepper.tsx +24 -15
  50. package/src/components/ProgressionStepper/ProgressionStepperExample.tsx +20 -4
  51. package/src/components/SearchBar/SearchBar.rtl.test.tsx +0 -1
  52. package/src/components/SearchBar/SearchBar.tsx +192 -115
  53. package/src/components/SearchBar/SearchBarExample.tsx +2 -1
  54. package/src/components/Select/Select.tsx +6 -12
  55. package/src/components/TabList/TabList.tsx +2 -1
  56. package/src/components/TabList/tab-list.scss +12 -0
  57. package/src/hooks/useArrowNavigation.ts +6 -1
  58. package/src/hooks/useOutsideClick.ts +16 -3
@@ -1,10 +1,14 @@
1
1
  import './search-bar.scss';
2
- import { ListItemMenuProps, MenuListItem } from '-/components/ListItemMenu';
2
+ import { ListItemProps } from '-/components/ListItem';
3
3
  import { TextInputProps } from '-/components/TextInput';
4
- export type SearchOption = MenuListItem & {
5
- value: string;
6
- };
7
- export type SearchBarProps = Pick<ListItemMenuProps, 'scrollLimit'> & Pick<TextInputProps, 'aria-label' | 'disabled' | 'id' | 'inputRef' | 'name' | 'size'> & {
4
+ import { ScrollListItemsStyleProps } from '-/utils/scrollListItemsStyle';
5
+ /**
6
+ * An option in a SearchBar component.
7
+ *
8
+ * Essentially the props for a ListItem.
9
+ */
10
+ export type SearchBarOption = Pick<ListItemProps, 'label' | 'leading' | 'trailing'>;
11
+ export type SearchBarProps<O extends SearchBarOption = SearchBarOption> = Pick<TextInputProps, 'aria-label' | 'disabled' | 'id' | 'inputRef' | 'name' | 'size'> & ScrollListItemsStyleProps & {
8
12
  /** The current value of the search bar. */
9
13
  value?: string;
10
14
  /**
@@ -16,33 +20,33 @@ export type SearchBarProps = Pick<ListItemMenuProps, 'scrollLimit'> & Pick<TextI
16
20
  */
17
21
  placeholder: string;
18
22
  /**
19
- * Handler for state updates.
23
+ * Handler for input value change. This is called on every key press in the input field and when a menu item is
24
+ * selected.
20
25
  *
21
- * @type (value: String) => void
26
+ * @type (value: String, item?: SearchBarOption) => void
22
27
  * @required
23
28
  */
24
- onChange: (value: string) => void;
25
- onSelect: (item?: MenuListItem) => void;
29
+ onChange: (value: string, item?: O) => void;
26
30
  /**
27
31
  * Content to display in the menu.
28
32
  *
29
33
  * @example
30
34
  * [
31
- * { value: '1', label: 'Apple Pie' },
32
- * { value: '2', label: 'Banana Split' },
33
- * { value: '3', label: 'Cherry Tart' },
34
- * { value: '4', label: 'Dragonfruit Sorbet' },
35
- * { value: '5', label: 'Elderberry Jam' },
36
- * { value: '6', label: 'Fig Newton' },
37
- * { value: '7', label: 'Grape Soda' },
38
- * { value: '8', label: 'Honeydew Smoothie' },
39
- * { value: '9', label: 'Ice Cream Sandwich' },
40
- * { value: '10', label: 'Jackfruit Pudding' },
35
+ * { label: 'Apple Pie' },
36
+ * { label: 'Banana Split' },
37
+ * { label: 'Cherry Tart' },
38
+ * { label: 'Dragonfruit Sorbet' },
39
+ * { label: 'Elderberry Jam' },
40
+ * { label: 'Fig Newton' },
41
+ * { label: 'Grape Soda' },
42
+ * { label: 'Honeydew Smoothie' },
43
+ * { label: 'Ice Cream Sandwich' },
44
+ * { label: 'Jackfruit Pudding' },
41
45
  * ];
42
46
  *
43
- * @type Array<SearchOption>
47
+ * @type Array<SearchBarOption>
44
48
  */
45
- items?: SearchOption[];
49
+ items?: O[];
46
50
  /**
47
51
  * Message to display when no results are found
48
52
  *
@@ -60,28 +64,25 @@ export type SearchBarProps = Pick<ListItemMenuProps, 'scrollLimit'> & Pick<TextI
60
64
  * export function Example() {
61
65
  * const [searchText, setSearchText] = useState<string>('');
62
66
  *
63
- * const handleItemSelect = (item) => console.log('Selected item:', item);
64
- *
65
67
  * return (
66
68
  * <SearchBar
67
69
  * aria-label="Example aria-label"
68
70
  * items={[
69
- * { value: '1', label: 'Apple Pie' },
70
- * { value: '2', label: 'Banana Split' },
71
- * { value: '3', label: 'Cherry Tart' },
72
- * { value: '4', label: 'Dragonfruit Sorbet' },
73
- * { value: '5', label: 'Elderberry Jam' },
74
- * { value: '6', label: 'Fig Newton' },
75
- * { value: '7', label: 'Grape Soda' },
76
- * { value: '8', label: 'Honeydew Smoothie' },
77
- * { value: '9', label: 'Ice Cream Sandwich' },
78
- * { value: '10', label: 'Jackfruit Pudding' },
71
+ * { label: 'Apple Pie' },
72
+ * { label: 'Banana Split' },
73
+ * { label: 'Cherry Tart' },
74
+ * { label: 'Dragonfruit Sorbet' },
75
+ * { label: 'Elderberry Jam' },
76
+ * { label: 'Fig Newton' },
77
+ * { label: 'Grape Soda' },
78
+ * { label: 'Honeydew Smoothie' },
79
+ * { label: 'Ice Cream Sandwich' },
80
+ * { label: 'Jackfruit Pudding' },
79
81
  * ]}
80
82
  * name="Example name"
81
83
  * placeholder="Search"
82
84
  * value={searchText}
83
85
  * onChange={setSearchText}
84
- * onSelect={handleItemSelect}
85
86
  * />
86
87
  * );
87
88
  * }
@@ -89,5 +90,5 @@ export type SearchBarProps = Pick<ListItemMenuProps, 'scrollLimit'> & Pick<TextI
89
90
  * @name SearchBar
90
91
  * @phase UXReview
91
92
  */
92
- export declare function SearchBar({ items: itemsProp, noResultsMessage, placeholder, 'aria-label': ariaLabel, value: idProp, inputRef, name, size, onSelect, value, onChange, disabled, scrollLimit, }: SearchBarProps): import("react/jsx-runtime").JSX.Element;
93
+ export declare function SearchBar<O extends SearchBarOption>({ items: itemsProp, noResultsMessage, placeholder, 'aria-label': ariaLabel, id: idProp, inputRef, name, size, value, onChange, disabled, scrollLimit, }: SearchBarProps<O>): import("react/jsx-runtime").JSX.Element;
93
94
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -1,12 +1,19 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import './search-bar.css.js';
3
3
  import { SvgSearch } from '@bspk/icons/Search';
4
- import { useEffect, useRef, useState } from 'react';
5
- import { ListItemMenu } from '../ListItemMenu';
4
+ import { useEffect, useMemo, useState } from 'react';
5
+ import { ListItem } from '../ListItem';
6
+ import { Menu } from '../Menu';
6
7
  import { TextInput } from '../TextInput';
7
8
  import { Txt } from '../Txt';
9
+ import { useArrowNavigation } from '../../hooks/useArrowNavigation';
10
+ import { useFloating } from '../../hooks/useFloating';
8
11
  import { useId } from '../../hooks/useId';
12
+ import { useOutsideClick } from '../../hooks/useOutsideClick';
9
13
  import { useUIContext } from '../../hooks/useUIContext';
14
+ import { getElementById } from '../../utils/dom';
15
+ import { handleKeyDown } from '../../utils/handleKeyDown';
16
+ import { scrollListItemsStyle } from '../../utils/scrollListItemsStyle';
10
17
  import { useIds } from '../../utils/useIds';
11
18
  /**
12
19
  * An input field that allows customers to input search queries and retrieve results.
@@ -18,28 +25,25 @@ import { useIds } from '../../utils/useIds';
18
25
  * export function Example() {
19
26
  * const [searchText, setSearchText] = useState<string>('');
20
27
  *
21
- * const handleItemSelect = (item) => console.log('Selected item:', item);
22
- *
23
28
  * return (
24
29
  * <SearchBar
25
30
  * aria-label="Example aria-label"
26
31
  * items={[
27
- * { value: '1', label: 'Apple Pie' },
28
- * { value: '2', label: 'Banana Split' },
29
- * { value: '3', label: 'Cherry Tart' },
30
- * { value: '4', label: 'Dragonfruit Sorbet' },
31
- * { value: '5', label: 'Elderberry Jam' },
32
- * { value: '6', label: 'Fig Newton' },
33
- * { value: '7', label: 'Grape Soda' },
34
- * { value: '8', label: 'Honeydew Smoothie' },
35
- * { value: '9', label: 'Ice Cream Sandwich' },
36
- * { value: '10', label: 'Jackfruit Pudding' },
32
+ * { label: 'Apple Pie' },
33
+ * { label: 'Banana Split' },
34
+ * { label: 'Cherry Tart' },
35
+ * { label: 'Dragonfruit Sorbet' },
36
+ * { label: 'Elderberry Jam' },
37
+ * { label: 'Fig Newton' },
38
+ * { label: 'Grape Soda' },
39
+ * { label: 'Honeydew Smoothie' },
40
+ * { label: 'Ice Cream Sandwich' },
41
+ * { label: 'Jackfruit Pudding' },
37
42
  * ]}
38
43
  * name="Example name"
39
44
  * placeholder="Search"
40
45
  * value={searchText}
41
46
  * onChange={setSearchText}
42
- * onSelect={handleItemSelect}
43
47
  * />
44
48
  * );
45
49
  * }
@@ -47,50 +51,97 @@ import { useIds } from '../../utils/useIds';
47
51
  * @name SearchBar
48
52
  * @phase UXReview
49
53
  */
50
- export function SearchBar({ items: itemsProp, noResultsMessage, placeholder = 'Search', 'aria-label': ariaLabel, value: idProp, inputRef, name, size = 'medium', onSelect, value, onChange, disabled = false, scrollLimit, }) {
54
+ export function SearchBar({ items: itemsProp, noResultsMessage, placeholder = 'Search', 'aria-label': ariaLabel, id: idProp, inputRef, name, size = 'medium', value, onChange, disabled = false, scrollLimit, }) {
51
55
  const id = useId(idProp);
56
+ const menuId = `${id}-menu`;
52
57
  const items = useIds(`search-bar-${id}`, itemsProp || []);
53
- const inputElementRef = useRef(null);
58
+ const [hasFocus, setHasFocus] = useState(false);
59
+ const filteredItems = useMemo(() => {
60
+ const valueStr = value?.toString().trim().toLowerCase() || '';
61
+ return items.filter((item) => !valueStr || item.label.toLowerCase().includes(valueStr));
62
+ }, [items, value]);
54
63
  const { sendAriaLiveMessage } = useUIContext();
55
64
  useEffect(() => {
56
65
  if (!items.length)
57
66
  sendAriaLiveMessage('No results found', 'assertive');
58
67
  }, [items.length, sendAriaLiveMessage, value]);
59
- const [textValue, setTextValue] = useState(value || '');
68
+ const { activeElementId, setActiveElementId, arrowKeyCallbacks } = useArrowNavigation({
69
+ ids: filteredItems.map((i) => i.id),
70
+ });
71
+ const closeMenu = () => setActiveElementId(null);
72
+ const open = Boolean(activeElementId);
73
+ const { elements, floatingStyles } = useFloating({
74
+ hide: !open,
75
+ offsetOptions: 4,
76
+ refWidth: true,
77
+ });
78
+ useOutsideClick({
79
+ elements: [elements.floating, elements.reference],
80
+ callback: () => {
81
+ setHasFocus(false);
82
+ closeMenu();
83
+ },
84
+ disabled: !open,
85
+ handleTabs: true,
86
+ });
87
+ const spaceEnter = () => {
88
+ if (!open) {
89
+ elements.reference?.click();
90
+ return;
91
+ }
92
+ if (activeElementId)
93
+ getElementById(activeElementId)?.click();
94
+ };
60
95
  useEffect(() => {
61
- setTextValue(items.find((item) => item.value === value)?.label || '');
62
- }, [items, value]);
63
- return (_jsx(_Fragment, { children: _jsx("div", { "data-bspk": "search-bar", children: _jsx(ListItemMenu, { arrowKeyNavigationCallback: (params) => {
64
- // maintain default behavior for arrow keys left/right
65
- return params.key !== 'ArrowLeft' && params.key !== 'ArrowRight';
66
- }, disabled: disabled, itemOnClick: ({ currentId, setShow }) => {
67
- const item = items.find((i) => i.id === currentId);
68
- onSelect(item);
69
- onChange(item.value);
70
- setTextValue(item.label);
71
- setShow(false);
72
- }, items: items.map((item) => {
73
- return {
74
- ...item,
75
- 'aria-selected': item.value === value,
76
- };
77
- }), label: "Search bar", leading: !!value?.length &&
78
- !items?.length && (_jsxs("div", { "data-bspk": "no-items-found", children: [_jsx(Txt, { as: "div", variant: "heading-h5", children: "No results found" }), noResultsMessage && (_jsx(Txt, { as: "div", variant: "body-base", children: noResultsMessage }))] })), onClose: () => {
79
- setTimeout(() => {
80
- if (!inputElementRef.current)
81
- return;
82
- inputElementRef.current.focus();
83
- inputElementRef.current.setSelectionRange(0, inputElementRef.current.value.length);
84
- }, 100);
85
- }, owner: "search-bar", role: "listbox", scrollLimit: scrollLimit, children: (toggleProps, { setRef, toggleMenu }) => (_jsx(TextInput, { "aria-label": (items.length === 0 ? 'No results found' : '') + ariaLabel, autoComplete: "off", containerRef: setRef, disabled: disabled, id: id, inputProps: { ...toggleProps }, inputRef: (node) => {
96
+ if (!hasFocus) {
97
+ setActiveElementId(null);
98
+ return;
99
+ }
100
+ if (activeElementId)
101
+ return;
102
+ // If we have focus but no active element, set the first item as active (if there is one)
103
+ if (filteredItems.length) {
104
+ setActiveElementId(value?.trim().length ? filteredItems[0].id : null);
105
+ }
106
+ }, [hasFocus, filteredItems, activeElementId, setActiveElementId, value]);
107
+ return (_jsxs(_Fragment, { children: [_jsx("div", { "data-bspk": "search-bar", children: _jsx(TextInput, { "aria-label": ariaLabel, autoComplete: "off", containerRef: elements.setReference, disabled: disabled, id: id, inputProps: {
108
+ 'aria-controls': open ? menuId : undefined,
109
+ 'aria-expanded': open,
110
+ 'aria-haspopup': 'listbox',
111
+ 'aria-activedescendant': activeElementId || undefined,
112
+ 'aria-autocomplete': 'list',
113
+ role: 'combobox',
114
+ spellCheck: 'false',
115
+ }, inputRef: (node) => {
86
116
  if (!node)
87
117
  return;
88
118
  inputRef?.(node);
89
- inputElementRef.current = node;
90
- }, leading: _jsx(SvgSearch, {}), name: name, onChange: (str) => {
91
- setTextValue(str);
92
- if (str.length)
93
- toggleMenu(true);
94
- }, owner: "search-bar", placeholder: placeholder, size: size, value: textValue })) }) }) }));
119
+ }, leading: _jsx(SvgSearch, {}), name: name, onChange: (str) => onChange(str), onFocus: () => setHasFocus(true), onKeyDown: handleKeyDown({
120
+ ...arrowKeyCallbacks,
121
+ ArrowDown: (event) => {
122
+ if (!open)
123
+ spaceEnter();
124
+ arrowKeyCallbacks.ArrowDown?.(event);
125
+ },
126
+ Space: spaceEnter,
127
+ Enter: spaceEnter,
128
+ 'Ctrl+Option+Space': spaceEnter,
129
+ }, { preventDefault: true, stopPropagation: true }), owner: "search-bar", placeholder: placeholder, size: size, value: value }) }), _jsxs(Menu, { "aria-autocomplete": undefined, as: "div", id: menuId, innerRef: elements.setFloating, label: "Search results", onClickCapture: () => {
130
+ // Prevent the menu from closing when clicking inside it
131
+ // maintain focus on the select control
132
+ elements.reference?.focus();
133
+ }, onFocus: () => {
134
+ elements.reference?.focus();
135
+ }, owner: "select", role: "listbox", style: {
136
+ ...(open ? scrollListItemsStyle(scrollLimit, items.length) : {}),
137
+ ...floatingStyles,
138
+ }, tabIndex: -1, children: [!!value?.length && !items?.length && (_jsxs("div", { "data-bspk": "no-items-found", children: [_jsx(Txt, { as: "div", variant: "heading-h5", children: "No results found" }), noResultsMessage && (_jsx(Txt, { as: "div", variant: "body-base", children: noResultsMessage }))] })), filteredItems.map((item) => {
139
+ const isActive = activeElementId === item.id;
140
+ const isSelected = value == item.label;
141
+ return (_jsx(ListItem, { ...item, active: isActive || undefined, "aria-label": undefined, "aria-selected": isSelected, as: "li", onClick: () => {
142
+ onChange(item.label, item);
143
+ closeMenu();
144
+ }, owner: "select", role: "option", tabIndex: -1, value: undefined }, item.id));
145
+ })] })] }));
95
146
  }
96
147
  //# sourceMappingURL=SearchBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../../src/components/SearchBar/SearchBar.tsx"],"names":[],"mappings":";AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,YAAY,EAAmC,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAkB,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AA0DxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,SAAS,CAAC,EACtB,KAAK,EAAE,SAAS,EAChB,gBAAgB,EAChB,WAAW,GAAG,QAAQ,EACtB,YAAY,EAAE,SAAS,EACvB,KAAK,EAAE,MAAM,EACb,QAAQ,EACR,IAAI,EACJ,IAAI,GAAG,QAAQ,EACf,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,WAAW,GACE;IACb,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IAE1D,MAAM,eAAe,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IAE9D,MAAM,EAAE,mBAAmB,EAAE,GAAG,YAAY,EAAE,CAAC;IAE/C,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,mBAAmB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACX,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnB,OAAO,CACH,4BACI,2BAAe,YAAY,YACvB,KAAC,YAAY,IACT,0BAA0B,EAAE,CAAC,MAAM,EAAE,EAAE;oBACnC,sDAAsD;oBACtD,OAAO,MAAM,CAAC,GAAG,KAAK,WAAW,IAAI,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC;gBACrE,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;oBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAE,CAAC;oBACpD,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACf,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,EACD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,OAAO;wBACH,GAAG,IAAI;wBACP,eAAe,EAAE,IAAI,CAAC,KAAK,KAAK,KAAK;qBACxC,CAAC;gBACN,CAAC,CAAC,EACF,KAAK,EAAC,YAAY,EAClB,OAAO,EACH,CAAC,CAAC,KAAK,EAAE,MAAM;oBACf,CAAC,KAAK,EAAE,MAAM,IAAI,CACd,4BAAe,gBAAgB,aAC3B,KAAC,GAAG,IAAC,EAAE,EAAC,KAAK,EAAC,OAAO,EAAC,YAAY,iCAE5B,EACL,gBAAgB,IAAI,CACjB,KAAC,GAAG,IAAC,EAAE,EAAC,KAAK,EAAC,OAAO,EAAC,WAAW,YAC5B,gBAAgB,GACf,CACT,IACC,CACT,EAEL,OAAO,EAAE,GAAG,EAAE;oBACV,UAAU,CAAC,GAAG,EAAE;wBACZ,IAAI,CAAC,eAAe,CAAC,OAAO;4BAAE,OAAO;wBACrC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBAChC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACvF,CAAC,EAAE,GAAG,CAAC,CAAC;gBACZ,CAAC,EACD,KAAK,EAAC,YAAY,EAClB,IAAI,EAAC,SAAS,EACd,WAAW,EAAE,WAAW,YAEvB,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CACtC,KAAC,SAAS,kBACM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,EACtE,YAAY,EAAC,KAAK,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,UAAU,EAAE,EAAE,GAAG,WAAW,EAAE,EAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;wBACf,IAAI,CAAC,IAAI;4BAAE,OAAO;wBAClB,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;wBACjB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;oBACnC,CAAC,EACD,OAAO,EAAE,KAAC,SAAS,KAAG,EACtB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;wBACd,YAAY,CAAC,GAAG,CAAC,CAAC;wBAClB,IAAI,GAAG,CAAC,MAAM;4BAAE,UAAU,CAAC,IAAI,CAAC,CAAC;oBACrC,CAAC,EACD,KAAK,EAAC,YAAY,EAClB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,GAClB,CACL,GACU,GACb,GACP,CACN,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../../src/components/SearchBar/SearchBar.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { randomString } from '../../utils/random';
2
3
  export const SearchBarExample = {
3
4
  render: ({ props, Component }) => {
4
- return _jsx(Component, { ...props });
5
+ return _jsx(Component, { ...props, id: `search-bar-${randomString(8)}` });
5
6
  },
6
7
  };
7
8
  //# sourceMappingURL=SearchBarExample.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBarExample.js","sourceRoot":"","sources":["../../../src/components/SearchBar/SearchBarExample.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAqC;IAC9D,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE;QAC7B,OAAO,KAAC,SAAS,OAAK,KAAK,GAAI,CAAC;IACpC,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"SearchBarExample.js","sourceRoot":"","sources":["../../../src/components/SearchBar/SearchBarExample.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAqC;IAC9D,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE;QAC7B,OAAO,KAAC,SAAS,OAAK,KAAK,EAAE,EAAE,EAAE,cAAc,YAAY,CAAC,CAAC,CAAC,EAAE,GAAI,CAAC;IACzE,CAAC;CACJ,CAAC"}
@@ -6,9 +6,9 @@ import { ScrollListItemsStyleProps } from '-/utils/scrollListItemsStyle';
6
6
  /**
7
7
  * An option in a Select component.
8
8
  *
9
- * Essentially the props of ListItemProps. Except for `value` which is required.
9
+ * Essentially the props of ListItemProps.
10
10
  */
11
- export type SelectOption = Omit<ListItemProps, 'id' | 'onClick' | 'subText' | 'value'> & {
11
+ export type SelectOption = CommonProps<'disabled'> & Omit<ListItemProps, 'id' | 'onClick' | 'subText' | 'value'> & {
12
12
  value: string;
13
13
  };
14
14
  export type SelectItem = SelectOption & {
@@ -59,13 +59,11 @@ export function Select({ options: optionsProp = [], value = '', onChange, label,
59
59
  }));
60
60
  return { items: nextItems, availableItems: nextItems.filter((item) => !item.disabled) };
61
61
  }, [optionsProp, id, value]);
62
- const closeMenu = () => {
63
- setActiveElementId(null);
64
- };
65
- const selectedItem = useMemo(() => items.find((o) => o.value === value?.[0]), [items, value]);
62
+ const selectedItem = useMemo(() => items.find((o) => o.value === value), [items, value]);
66
63
  const { activeElementId, setActiveElementId, arrowKeyCallbacks } = useArrowNavigation({
67
64
  ids: availableItems.map((i) => i.id),
68
65
  });
66
+ const closeMenu = () => setActiveElementId(null);
69
67
  const open = Boolean(activeElementId);
70
68
  const { elements, floatingStyles } = useFloating({
71
69
  hide: !open,
@@ -121,7 +119,7 @@ export function Select({ options: optionsProp = [], value = '', onChange, label,
121
119
  const isActive = activeElementId === item.id;
122
120
  const isSelected = value.includes(item.value);
123
121
  return (_jsx(ListItem, { ...item, active: isActive || undefined, "aria-label": undefined, "aria-selected": isSelected, as: "li", onClick: () => {
124
- if (item.disabled || item.readOnly)
122
+ if (item.disabled)
125
123
  return;
126
124
  onChange(item.value);
127
125
  closeMenu();
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"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"}
@@ -82,9 +82,10 @@ onChange, value: valueProp, size = 'medium', options: optionsProp, width = 'hug'
82
82
  const isSelected = item.value === value;
83
83
  const icon = isSelected ? item.iconSelected : item.icon;
84
84
  const isActive = (activeElementId && activeElementId === item.id) || undefined;
85
+ const focusable = (isSelected && !activeElementId) || isActive;
85
86
  return (_jsx(Fragment, { children: _jsx(Tooltip, { disabled: !iconsOnly, label: item.label, placement: "top", children: (triggerProps) => (
86
87
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events
87
- _jsxs("li", { ...triggerProps, "aria-controls": id, "aria-disabled": item.disabled || undefined, "aria-selected": isSelected, "data-active": isActive, "data-value": item.value, id: item.id, onClick: item.disabled ? undefined : handleClick(item), role: "tab", tabIndex: isActive ? 0 : -1, children: [icon && _jsx("span", { "aria-hidden": "true", children: icon }), !iconsOnly && _jsx(Truncated, { "data-label": true, children: item.label }), item.badge && !item.disabled && (_jsx(Badge, { count: item.badge, size: TAB_BADGE_SIZES[size] }))] })) }) }, item.id));
88
+ _jsxs("li", { ...triggerProps, "aria-controls": id, "aria-disabled": item.disabled || undefined, "aria-selected": isSelected, "data-active": isActive, "data-value": item.value, id: item.id, onClick: item.disabled ? undefined : handleClick(item), role: "tab", tabIndex: focusable ? 0 : -1, children: [icon && _jsx("span", { "aria-hidden": "true", children: icon }), !iconsOnly && _jsx(Truncated, { "data-label": true, children: item.label }), item.badge && !item.disabled && (_jsx(Badge, { count: item.badge, size: TAB_BADGE_SIZES[size] }))] })) }) }, item.id));
88
89
  }) }));
89
90
  }
90
91
  //# sourceMappingURL=TabList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabList.js","sourceRoot":"","sources":["../../../src/components/TabList/TabList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TabList.js","sourceRoot":"","sources":["../../../src/components/TabList/TabList.tsx"],"names":[],"mappings":"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"}
@@ -57,5 +57,11 @@ ul[data-bspk-utility=tab-list] li [data-label][style] {
57
57
  ul[data-bspk-utility=tab-list] li svg {
58
58
  width: var(--icon-size);
59
59
  }
60
+ ul[data-bspk-utility=tab-list]:not([data-bspk]):focus-within li:not([aria-disabled])[data-active] {
61
+ background-color: var(--interactions-neutral-hover-opacity);
62
+ }
63
+ ul[data-bspk-utility=tab-list]:not([data-bspk]):focus-within li:not([aria-disabled])[aria-selected=true] {
64
+ background-color: var(--surface-brand-primary-highlight);
65
+ }
60
66
 
61
67
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -60,6 +60,12 @@ ul[data-bspk-utility=tab-list] li [data-label][style] {
60
60
  ul[data-bspk-utility=tab-list] li svg {
61
61
  width: var(--icon-size);
62
62
  }
63
+ ul[data-bspk-utility=tab-list]:not([data-bspk]):focus-within li:not([aria-disabled])[data-active] {
64
+ background-color: var(--interactions-neutral-hover-opacity);
65
+ }
66
+ ul[data-bspk-utility=tab-list]:not([data-bspk]):focus-within li:not([aria-disabled])[aria-selected=true] {
67
+ background-color: var(--surface-brand-primary-highlight);
68
+ }
63
69
 
64
70
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
65
71
  `));
@@ -1,4 +1,4 @@
1
- import { useState } from 'react';
1
+ import { useState, useEffect } from 'react';
2
2
  import { getElementById } from '../utils/dom';
3
3
  const ARROW_KEYS = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];
4
4
  /**
@@ -22,6 +22,11 @@ export function useArrowNavigation({ ids = [], callback, increments = {
22
22
  ArrowDown: 1,
23
23
  }, defaultActiveId, }) {
24
24
  const [activeElementId, setActiveElementIdBase] = useState(defaultActiveId || null);
25
+ useEffect(() => {
26
+ // If the active element is not in the list, reset the first ID as active
27
+ if (activeElementId && !ids.includes(activeElementId))
28
+ setActiveElementIdBase(ids[0]);
29
+ }, [ids, activeElementId]);
25
30
  const setActiveElementId = (id) => {
26
31
  setActiveElementIdBase(id);
27
32
  getElementById(id)?.scrollIntoView({
@@ -1 +1 @@
1
- {"version":3,"file":"useArrowNavigation.js","sourceRoot":"","sources":["../../src/hooks/useArrowNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiB,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7C,MAAM,UAAU,GAAoB,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AA8BxF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAC/B,GAAG,GAAG,EAAE,EACR,QAAQ,EACR,UAAU,GAAG;IACT,SAAS,EAAE,CAAC,CAAC;IACb,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,CAAC;CACf,EACD,eAAe,GACO;IAKtB,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAgB,eAAe,IAAI,IAAI,CAAC,CAAC;IAEnG,MAAM,kBAAkB,GAAG,CAAC,EAAiB,EAAE,EAAE;QAC7C,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAC3B,cAAc,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC;YAC/B,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO;QACH,eAAe;QACf,kBAAkB;QAClB,iBAAiB,EAAE,MAAM,CAAC,WAAW,CACjC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YACpB,GAAG;YACH,CAAC,KAAoB,EAAE,EAAE;gBACrB,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,IAAI,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAElC,IAAI,eAAe,EAAE,CAAC;oBAClB,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAC5C,SAAS,GAAG,CAAC,YAAY,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;oBACjE,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;gBAED,IACI,OAAO,QAAQ,KAAK,UAAU;oBAC9B,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK;oBAEtE,OAAO;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;SACJ,CAAC,CACW;KACpB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"useArrowNavigation.js","sourceRoot":"","sources":["../../src/hooks/useArrowNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7C,MAAM,UAAU,GAAoB,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AA8BxF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAC/B,GAAG,GAAG,EAAE,EACR,QAAQ,EACR,UAAU,GAAG;IACT,SAAS,EAAE,CAAC,CAAC;IACb,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,CAAC;CACf,EACD,eAAe,GACO;IAKtB,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAgB,eAAe,IAAI,IAAI,CAAC,CAAC;IAEnG,SAAS,CAAC,GAAG,EAAE;QACX,yEAAyE;QACzE,IAAI,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC;YAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IAE3B,MAAM,kBAAkB,GAAG,CAAC,EAAiB,EAAE,EAAE;QAC7C,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAC3B,cAAc,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC;YAC/B,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO;QACH,eAAe;QACf,kBAAkB;QAClB,iBAAiB,EAAE,MAAM,CAAC,WAAW,CACjC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YACpB,GAAG;YACH,CAAC,KAAoB,EAAE,EAAE;gBACrB,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,IAAI,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAElC,IAAI,eAAe,EAAE,CAAC;oBAClB,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAC5C,SAAS,GAAG,CAAC,YAAY,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;oBACjE,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;gBAED,IACI,OAAO,QAAQ,KAAK,UAAU;oBAC9B,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK;oBAEtE,OAAO;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;SACJ,CAAC,CACW;KACpB,CAAC;AACN,CAAC"}
@@ -27,9 +27,10 @@
27
27
  * @param callback - The callback to call when a click occurs outside of the ref.
28
28
  * @param disabled - Whether the hook should be disabled. Defaults to false.
29
29
  */
30
- export declare function useOutsideClick({ elements, callback, disabled, }: {
30
+ export declare function useOutsideClick({ elements, callback, disabled, handleTabs, }: {
31
31
  elements: (HTMLElement | null)[] | null;
32
- callback: (event?: MouseEvent) => void;
33
- disabled?: boolean;
32
+ callback: (event?: KeyboardEvent | MouseEvent) => void;
33
+ disabled: boolean;
34
+ handleTabs?: boolean;
34
35
  }): void;
35
36
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -28,7 +28,7 @@ import { useEffect } from 'react';
28
28
  * @param callback - The callback to call when a click occurs outside of the ref.
29
29
  * @param disabled - Whether the hook should be disabled. Defaults to false.
30
30
  */
31
- export function useOutsideClick({ elements, callback, disabled, }) {
31
+ export function useOutsideClick({ elements, callback, disabled, handleTabs = false, }) {
32
32
  useEffect(() => {
33
33
  if (!elements?.length || disabled)
34
34
  return;
@@ -37,11 +37,22 @@ export function useOutsideClick({ elements, callback, disabled, }) {
37
37
  return;
38
38
  callback(event);
39
39
  };
40
+ const handleOutsideTab = (event) => {
41
+ if (!handleTabs || event.key !== 'Tab' || disabled)
42
+ return;
43
+ setTimeout(() => {
44
+ if (elements?.some?.((element) => element?.contains?.(document.activeElement)))
45
+ return;
46
+ callback(event);
47
+ }, 0);
48
+ };
40
49
  document.addEventListener('mousedown', handleClickOutside);
50
+ document.addEventListener('keydown', handleOutsideTab);
41
51
  return () => {
42
52
  document.removeEventListener('mousedown', handleClickOutside);
53
+ document.removeEventListener('keydown', handleOutsideTab);
43
54
  };
44
- }, [callback, disabled, elements]);
55
+ }, [callback, disabled, elements, handleTabs]);
45
56
  }
46
57
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
47
58
  //# sourceMappingURL=useOutsideClick.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOutsideClick.js","sourceRoot":"","sources":["../../src/hooks/useOutsideClick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,eAAe,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,QAAQ,GAKX;IACG,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,QAAQ;YAAE,OAAO;QAE1C,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC7C,IAAI,QAAQ,IAAI,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAc,CAAC,CAAC;gBAAE,OAAO;YACjG,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3D,OAAO,GAAG,EAAE;YACR,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAClE,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,sDAAsD"}
1
+ {"version":3,"file":"useOutsideClick.js","sourceRoot":"","sources":["../../src/hooks/useOutsideClick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,eAAe,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,GAAG,KAAK,GAMrB;IACG,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,QAAQ;YAAE,OAAO;QAE1C,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC7C,IAAI,QAAQ,IAAI,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAc,CAAC,CAAC;gBAAE,OAAO;YACjG,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,CAAC,KAAoB,EAAE,EAAE;YAC9C,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,QAAQ;gBAAE,OAAO;YAE3D,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBAAE,OAAO;gBACvF,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,EAAE,CAAC,CAAC,CAAC;QACV,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACvD,OAAO,GAAG,EAAE;YACR,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;YAC9D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC9D,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,sDAAsD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bspk/ui",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "license": "CC-BY-4.0",
5
5
  "type": "module",
6
6
  "files": [
@@ -83,6 +83,7 @@ export function DateInput({
83
83
  useOutsideClick({
84
84
  elements: [elements.floating, containerRef.current],
85
85
  callback: () => setCalendarVisible(false),
86
+ disabled: !calendarVisible,
86
87
  });
87
88
 
88
89
  const isValidDate = (next: string) => {
@@ -1,8 +1,11 @@
1
1
  import { ListItem } from './ListItem';
2
- import { presets } from './ListItemExample';
2
+ import { presets as presentsFn } from './ListItemExample';
3
3
  import { hasNoBasicA11yIssues } from '-/rtl/hasNoBasicA11yIssues';
4
4
  import { render } from '-/rtl/util';
5
5
 
6
+ // eslint-disable-next-line no-console
7
+ const presets = presentsFn(console.log);
8
+
6
9
  describe('ListItem (RTL)', () => {
7
10
  presets.forEach((preset) => {
8
11
  it(`has no basic a11y issues - ${preset.label}`, hasNoBasicA11yIssues(<ListItem {...preset.propState} />));