@ultraviolet/ui 1.53.1 → 1.53.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.
- package/dist/components/Card/index.cjs +3 -3
- package/dist/components/Card/index.js +3 -3
- package/dist/components/Expandable/index.cjs +4 -9
- package/dist/components/Expandable/index.d.ts +0 -2
- package/dist/components/Expandable/index.js +4 -9
- package/dist/components/SelectInput/index.cjs +13 -10
- package/dist/components/SelectInput/index.js +13 -10
- package/dist/components/SelectInputV2/SearchBarDropdown.cjs +7 -2
- package/dist/components/SelectInputV2/SearchBarDropdown.js +8 -3
- package/dist/components/SelectInputV2/SelectInputProvider.cjs +13 -0
- package/dist/components/SelectInputV2/SelectInputProvider.js +14 -1
- package/dist/components/SelectInputV2/types.d.ts +4 -0
- package/package.json +7 -4
- package/dist/helpers/jestMockMatchMedia.d.ts +0 -6
|
@@ -21,7 +21,7 @@ const StyledInput = /* @__PURE__ */ _styled__default.default(index.TextInputV2,
|
|
|
21
21
|
theme
|
|
22
22
|
}) => theme.space[2], ";padding-right:", ({
|
|
23
23
|
theme
|
|
24
|
-
}) => theme.space[2], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
24
|
+
}) => theme.space[2], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0VjIvU2VhcmNoQmFyRHJvcGRvd24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWN1QyIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy91aS9zcmMvY29tcG9uZW50cy9TZWxlY3RJbnB1dFYyL1NlYXJjaEJhckRyb3Bkb3duLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucydcbmltcG9ydCB0eXBlIHsgRGlzcGF0Y2gsIFNldFN0YXRlQWN0aW9uIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVGV4dElucHV0VjIgfSBmcm9tICcuLi9UZXh0SW5wdXRWMidcbmltcG9ydCB7IHVzZVNlbGVjdElucHV0IH0gZnJvbSAnLi9TZWxlY3RJbnB1dFByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBEYXRhVHlwZSB9IGZyb20gJy4vdHlwZXMnXG5cbnR5cGUgU2VhcmNoQmFyUHJvcHMgPSB7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmdcbiAgZGlzcGxheWVkT3B0aW9uczogRGF0YVR5cGVcbiAgc2V0U2VhcmNoQmFyQWN0aXZlOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxib29sZWFuPj5cbn1cblxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQoVGV4dElucHV0VjIpYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsxLjVdfTtcbiAgcGFkZGluZy1ib3R0b206ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbMS41XX07XG4gIHBhZGRpbmctbGVmdDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsyXX07XG4gIHBhZGRpbmctcmlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbMl19O1xuYFxuXG5jb25zdCBmaW5kQ2xvc2VzdE9wdGlvbiA9IChcbiAgb3B0aW9uczogRGF0YVR5cGUsXG4gIHNlYXJjaElucHV0OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4pID0+IHtcbiAgaWYgKHNlYXJjaElucHV0KSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICBjb25zdCBwb3NzaWJsZU9wdGlvbnMgPSB7IC4uLm9wdGlvbnMgfVxuICAgICAgT2JqZWN0LmtleXMocG9zc2libGVPcHRpb25zKS5tYXAoKGdyb3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcG9zc2libGVPcHRpb25zW2dyb3VwXSA9IHBvc3NpYmxlT3B0aW9uc1tncm91cF0uZmlsdGVyKFxuICAgICAgICAgIG9wdGlvbiA9PiAhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICApXG5cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH0pXG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5rZXlzKHBvc3NpYmxlT3B0aW9ucykuc29tZShcbiAgICAgICAgICBncm91cCA9PiBwb3NzaWJsZU9wdGlvbnNbZ3JvdXBdLmxlbmd0aCA+IDAsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBjb25zdCBmaXJzdEZpdCA9IE9iamVjdC5rZXlzKHBvc3NpYmxlT3B0aW9ucylcbiAgICAgICAgICAubWFwKGdyb3VwID0+IHBvc3NpYmxlT3B0aW9uc1tncm91cF1bMF0pXG4gICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKVswXVxuXG4gICAgICAgIHJldHVybiBmaXJzdEZpdFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwb3NzaWJsZU9wdGlvbnMgPSBbLi4ub3B0aW9uc10uZmlsdGVyKG9wdGlvbiA9PiAhb3B0aW9uLmRpc2FibGVkKVxuXG4gICAgICBpZiAocG9zc2libGVPcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHBvc3NpYmxlT3B0aW9uc1swXVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5leHBvcnQgY29uc3QgU2VhcmNoQmFyRHJvcGRvd24gPSAoe1xuICBwbGFjZWhvbGRlcixcbiAgZGlzcGxheWVkT3B0aW9ucyxcbiAgc2V0U2VhcmNoQmFyQWN0aXZlLFxufTogU2VhcmNoQmFyUHJvcHMpID0+IHtcbiAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3Qge1xuICAgIG9uQ2hhbmdlLFxuICAgIG9uU2VhcmNoLFxuICAgIHNldFNlYXJjaElucHV0LFxuICAgIHNlYXJjaElucHV0LFxuICAgIG9wdGlvbnMsXG4gICAgbXVsdGlzZWxlY3QsXG4gICAgc2V0U2VsZWN0ZWREYXRhLFxuICAgIHNlbGVjdGVkRGF0YSxcbiAgfSA9IHVzZVNlbGVjdElucHV0KClcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKHNlYXJjaDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKHNlYXJjaC5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBjYXNlIGluc2Vuc2l0aXZlIHNlYXJjaFxuICAgICAgY29uc3QgcmVnZXggPSBSZWdFeHAoc2VhcmNoLCAnaScpXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0geyAuLi5vcHRpb25zIH1cbiAgICAgICAgT2JqZWN0LmtleXMoZmlsdGVyZWRPcHRpb25zKS5tYXAoKGdyb3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBmaWx0ZXJlZE9wdGlvbnNbZ3JvdXBdID0gZmlsdGVyZWRPcHRpb25zW2dyb3VwXS5maWx0ZXIob3B0aW9uID0+XG4gICAgICAgICAgICBvcHRpb24uc2VhcmNoVGV4dFxuICAgICAgICAgICAgICA/IG9wdGlvbi5zZWFyY2hUZXh0Lm1hdGNoKHJlZ2V4KVxuICAgICAgICAgICAgICA6IG9wdGlvbi52YWx1ZS5tYXRjaChyZWdleCksXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgfSlcbiAgICAgICAgb25TZWFyY2goZmlsdGVyZWRPcHRpb25zKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gWy4uLm9wdGlvbnNdLmZpbHRlcihvcHRpb24gPT5cbiAgICAgICAgICBvcHRpb24uc2VhcmNoVGV4dFxuICAgICAgICAgICAgPyBvcHRpb24uc2VhcmNoVGV4dC5tYXRjaChyZWdleClcbiAgICAgICAgICAgIDogb3B0aW9uLnZhbHVlLm1hdGNoKHJlZ2V4KSxcbiAgICAgICAgKVxuICAgICAgICBvblNlYXJjaChmaWx0ZXJlZE9wdGlvbnMpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG9uU2VhcmNoKG9wdGlvbnMpXG4gICAgfVxuICAgIHNldFNlYXJjaElucHV0KHNlYXJjaClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoa2V5OiBzdHJpbmcsIHNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIGlmIChrZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIGNvbnN0IGNsb3Nlc3RPcHRpb24gPSBmaW5kQ2xvc2VzdE9wdGlvbihkaXNwbGF5ZWRPcHRpb25zLCBzZWFyY2gpXG4gICAgICBpZiAoY2xvc2VzdE9wdGlvbikge1xuICAgICAgICBpZiAobXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICBzZXRTZWxlY3RlZERhdGEoe1xuICAgICAgICAgICAgdHlwZTogJ3NlbGVjdE9wdGlvbicsXG4gICAgICAgICAgICBjbGlja2VkT3B0aW9uOiBjbG9zZXN0T3B0aW9uLFxuICAgICAgICAgICAgZ3JvdXA6ICFBcnJheS5pc0FycmF5KG9wdGlvbnMpXG4gICAgICAgICAgICAgID8gT2JqZWN0LmtleXMob3B0aW9ucykuZmlsdGVyKGdyb3VwID0+XG4gICAgICAgICAgICAgICAgICBvcHRpb25zW2dyb3VwXS5pbmNsdWRlcyhjbG9zZXN0T3B0aW9uKSxcbiAgICAgICAgICAgICAgICApWzBdXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgb25DaGFuZ2U/LihcbiAgICAgICAgICAgIHNlbGVjdGVkRGF0YS5zZWxlY3RlZFZhbHVlcy5pbmNsdWRlcyhjbG9zZXN0T3B0aW9uLnZhbHVlKVxuICAgICAgICAgICAgICA/IHNlbGVjdGVkRGF0YS5zZWxlY3RlZFZhbHVlc1xuICAgICAgICAgICAgICA6IFsuLi5zZWxlY3RlZERhdGEuc2VsZWN0ZWRWYWx1ZXMsIGNsb3Nlc3RPcHRpb24udmFsdWVdLFxuICAgICAgICAgIClcbiAgICAgICAgICBzZXRTZWFyY2hJbnB1dChjbG9zZXN0T3B0aW9uLnNlYXJjaFRleHQgPz8gY2xvc2VzdE9wdGlvbi52YWx1ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRTZWxlY3RlZERhdGEoe1xuICAgICAgICAgICAgdHlwZTogJ3NlbGVjdE9wdGlvbicsXG4gICAgICAgICAgICBjbGlja2VkT3B0aW9uOiBjbG9zZXN0T3B0aW9uLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgb25DaGFuZ2U/LihzZWxlY3RlZERhdGEuc2VsZWN0ZWRWYWx1ZXNbMF0gPz8gJycpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFRPRE86IFJlbW92ZSBtZSBhbmQgdXNlIGF1dG9Gb2N1cyB3aGVuIHBvcHVwIGlzIGZpeGVkXG4gICAgLy8gQXV0b2ZvY3VzIG9uIHRoZSBzZWFyY2ggYmFyIGNyZWF0ZSBzb21lIHNjcm9sbCBpc3N1ZXNcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICB9LCA1MClcbiAgfSwgW10pXG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkSW5wdXRcbiAgICAgIHZhbHVlPXtzZWFyY2hJbnB1dH1cbiAgICAgIG9uQ2hhbmdlPXtldmVudCA9PiBoYW5kbGVDaGFuZ2UoZXZlbnQpfVxuICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgb25Gb2N1cz17KCkgPT4gc2V0U2VhcmNoQmFyQWN0aXZlKHRydWUpfVxuICAgICAgb25CbHVyPXsoKSA9PiBzZXRTZWFyY2hCYXJBY3RpdmUoZmFsc2UpfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJzZWFyY2gtYmFyXCJcbiAgICAgIHByZWZpeD17PEljb24gbmFtZT1cInNlYXJjaFwiIHNpemU9XCJzbWFsbFwiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPn1cbiAgICAgIG9uS2V5RG93bj17ZXZlbnQgPT4gaGFuZGxlS2V5RG93bihldmVudC5rZXksIHNlYXJjaElucHV0KX1cbiAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgYXJpYS1sYWJlbD1cInNlYXJjaC1iYXJcIlxuICAgICAgcmVmPXtzZWFyY2hJbnB1dFJlZn1cbiAgICAvPlxuICApXG59XG4iXX0= */"));
|
|
25
25
|
const findClosestOption = (options, searchInput) => {
|
|
26
26
|
if (searchInput) {
|
|
27
27
|
if (!Array.isArray(options)) {
|
|
@@ -104,6 +104,11 @@ const SearchBarDropdown = ({
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
};
|
|
107
|
-
|
|
107
|
+
React.useEffect(() => {
|
|
108
|
+
setTimeout(() => {
|
|
109
|
+
searchInputRef.current?.focus();
|
|
110
|
+
}, 50);
|
|
111
|
+
}, []);
|
|
112
|
+
return /* @__PURE__ */ jsxRuntime.jsx(StyledInput, { value: searchInput, onChange: (event) => handleChange(event), placeholder, onFocus: () => setSearchBarActive(true), onBlur: () => setSearchBarActive(false), "data-testid": "search-bar", prefix: /* @__PURE__ */ jsxRuntime.jsx(icons.Icon, { name: "search", size: "small", sentiment: "neutral" }), onKeyDown: (event) => handleKeyDown(event.key, searchInput), size: "medium", "aria-label": "search-bar", ref: searchInputRef });
|
|
108
113
|
};
|
|
109
114
|
exports.SearchBarDropdown = SearchBarDropdown;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from "@emotion/react/jsx-runtime";
|
|
2
2
|
import _styled from "@emotion/styled/base";
|
|
3
3
|
import { Icon } from "@ultraviolet/icons";
|
|
4
|
-
import { useRef } from "react";
|
|
4
|
+
import { useRef, useEffect } from "react";
|
|
5
5
|
import { TextInputV2 } from "../TextInputV2/index.js";
|
|
6
6
|
import { useSelectInput } from "./SelectInputProvider.js";
|
|
7
7
|
const StyledInput = /* @__PURE__ */ _styled(TextInputV2, process.env.NODE_ENV === "production" ? {
|
|
@@ -17,7 +17,7 @@ const StyledInput = /* @__PURE__ */ _styled(TextInputV2, process.env.NODE_ENV ==
|
|
|
17
17
|
theme
|
|
18
18
|
}) => theme.space[2], ";padding-right:", ({
|
|
19
19
|
theme
|
|
20
|
-
}) => theme.space[2], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
20
|
+
}) => theme.space[2], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0VjIvU2VhcmNoQmFyRHJvcGRvd24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWN1QyIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy91aS9zcmMvY29tcG9uZW50cy9TZWxlY3RJbnB1dFYyL1NlYXJjaEJhckRyb3Bkb3duLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucydcbmltcG9ydCB0eXBlIHsgRGlzcGF0Y2gsIFNldFN0YXRlQWN0aW9uIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVGV4dElucHV0VjIgfSBmcm9tICcuLi9UZXh0SW5wdXRWMidcbmltcG9ydCB7IHVzZVNlbGVjdElucHV0IH0gZnJvbSAnLi9TZWxlY3RJbnB1dFByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBEYXRhVHlwZSB9IGZyb20gJy4vdHlwZXMnXG5cbnR5cGUgU2VhcmNoQmFyUHJvcHMgPSB7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmdcbiAgZGlzcGxheWVkT3B0aW9uczogRGF0YVR5cGVcbiAgc2V0U2VhcmNoQmFyQWN0aXZlOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxib29sZWFuPj5cbn1cblxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQoVGV4dElucHV0VjIpYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsxLjVdfTtcbiAgcGFkZGluZy1ib3R0b206ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbMS41XX07XG4gIHBhZGRpbmctbGVmdDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsyXX07XG4gIHBhZGRpbmctcmlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbMl19O1xuYFxuXG5jb25zdCBmaW5kQ2xvc2VzdE9wdGlvbiA9IChcbiAgb3B0aW9uczogRGF0YVR5cGUsXG4gIHNlYXJjaElucHV0OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4pID0+IHtcbiAgaWYgKHNlYXJjaElucHV0KSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICBjb25zdCBwb3NzaWJsZU9wdGlvbnMgPSB7IC4uLm9wdGlvbnMgfVxuICAgICAgT2JqZWN0LmtleXMocG9zc2libGVPcHRpb25zKS5tYXAoKGdyb3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcG9zc2libGVPcHRpb25zW2dyb3VwXSA9IHBvc3NpYmxlT3B0aW9uc1tncm91cF0uZmlsdGVyKFxuICAgICAgICAgIG9wdGlvbiA9PiAhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICApXG5cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH0pXG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5rZXlzKHBvc3NpYmxlT3B0aW9ucykuc29tZShcbiAgICAgICAgICBncm91cCA9PiBwb3NzaWJsZU9wdGlvbnNbZ3JvdXBdLmxlbmd0aCA+IDAsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBjb25zdCBmaXJzdEZpdCA9IE9iamVjdC5rZXlzKHBvc3NpYmxlT3B0aW9ucylcbiAgICAgICAgICAubWFwKGdyb3VwID0+IHBvc3NpYmxlT3B0aW9uc1tncm91cF1bMF0pXG4gICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKVswXVxuXG4gICAgICAgIHJldHVybiBmaXJzdEZpdFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwb3NzaWJsZU9wdGlvbnMgPSBbLi4ub3B0aW9uc10uZmlsdGVyKG9wdGlvbiA9PiAhb3B0aW9uLmRpc2FibGVkKVxuXG4gICAgICBpZiAocG9zc2libGVPcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHBvc3NpYmxlT3B0aW9uc1swXVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5leHBvcnQgY29uc3QgU2VhcmNoQmFyRHJvcGRvd24gPSAoe1xuICBwbGFjZWhvbGRlcixcbiAgZGlzcGxheWVkT3B0aW9ucyxcbiAgc2V0U2VhcmNoQmFyQWN0aXZlLFxufTogU2VhcmNoQmFyUHJvcHMpID0+IHtcbiAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3Qge1xuICAgIG9uQ2hhbmdlLFxuICAgIG9uU2VhcmNoLFxuICAgIHNldFNlYXJjaElucHV0LFxuICAgIHNlYXJjaElucHV0LFxuICAgIG9wdGlvbnMsXG4gICAgbXVsdGlzZWxlY3QsXG4gICAgc2V0U2VsZWN0ZWREYXRhLFxuICAgIHNlbGVjdGVkRGF0YSxcbiAgfSA9IHVzZVNlbGVjdElucHV0KClcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKHNlYXJjaDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKHNlYXJjaC5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBjYXNlIGluc2Vuc2l0aXZlIHNlYXJjaFxuICAgICAgY29uc3QgcmVnZXggPSBSZWdFeHAoc2VhcmNoLCAnaScpXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0geyAuLi5vcHRpb25zIH1cbiAgICAgICAgT2JqZWN0LmtleXMoZmlsdGVyZWRPcHRpb25zKS5tYXAoKGdyb3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBmaWx0ZXJlZE9wdGlvbnNbZ3JvdXBdID0gZmlsdGVyZWRPcHRpb25zW2dyb3VwXS5maWx0ZXIob3B0aW9uID0+XG4gICAgICAgICAgICBvcHRpb24uc2VhcmNoVGV4dFxuICAgICAgICAgICAgICA/IG9wdGlvbi5zZWFyY2hUZXh0Lm1hdGNoKHJlZ2V4KVxuICAgICAgICAgICAgICA6IG9wdGlvbi52YWx1ZS5tYXRjaChyZWdleCksXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgfSlcbiAgICAgICAgb25TZWFyY2goZmlsdGVyZWRPcHRpb25zKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gWy4uLm9wdGlvbnNdLmZpbHRlcihvcHRpb24gPT5cbiAgICAgICAgICBvcHRpb24uc2VhcmNoVGV4dFxuICAgICAgICAgICAgPyBvcHRpb24uc2VhcmNoVGV4dC5tYXRjaChyZWdleClcbiAgICAgICAgICAgIDogb3B0aW9uLnZhbHVlLm1hdGNoKHJlZ2V4KSxcbiAgICAgICAgKVxuICAgICAgICBvblNlYXJjaChmaWx0ZXJlZE9wdGlvbnMpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG9uU2VhcmNoKG9wdGlvbnMpXG4gICAgfVxuICAgIHNldFNlYXJjaElucHV0KHNlYXJjaClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoa2V5OiBzdHJpbmcsIHNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIGlmIChrZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIGNvbnN0IGNsb3Nlc3RPcHRpb24gPSBmaW5kQ2xvc2VzdE9wdGlvbihkaXNwbGF5ZWRPcHRpb25zLCBzZWFyY2gpXG4gICAgICBpZiAoY2xvc2VzdE9wdGlvbikge1xuICAgICAgICBpZiAobXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICBzZXRTZWxlY3RlZERhdGEoe1xuICAgICAgICAgICAgdHlwZTogJ3NlbGVjdE9wdGlvbicsXG4gICAgICAgICAgICBjbGlja2VkT3B0aW9uOiBjbG9zZXN0T3B0aW9uLFxuICAgICAgICAgICAgZ3JvdXA6ICFBcnJheS5pc0FycmF5KG9wdGlvbnMpXG4gICAgICAgICAgICAgID8gT2JqZWN0LmtleXMob3B0aW9ucykuZmlsdGVyKGdyb3VwID0+XG4gICAgICAgICAgICAgICAgICBvcHRpb25zW2dyb3VwXS5pbmNsdWRlcyhjbG9zZXN0T3B0aW9uKSxcbiAgICAgICAgICAgICAgICApWzBdXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgb25DaGFuZ2U/LihcbiAgICAgICAgICAgIHNlbGVjdGVkRGF0YS5zZWxlY3RlZFZhbHVlcy5pbmNsdWRlcyhjbG9zZXN0T3B0aW9uLnZhbHVlKVxuICAgICAgICAgICAgICA/IHNlbGVjdGVkRGF0YS5zZWxlY3RlZFZhbHVlc1xuICAgICAgICAgICAgICA6IFsuLi5zZWxlY3RlZERhdGEuc2VsZWN0ZWRWYWx1ZXMsIGNsb3Nlc3RPcHRpb24udmFsdWVdLFxuICAgICAgICAgIClcbiAgICAgICAgICBzZXRTZWFyY2hJbnB1dChjbG9zZXN0T3B0aW9uLnNlYXJjaFRleHQgPz8gY2xvc2VzdE9wdGlvbi52YWx1ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRTZWxlY3RlZERhdGEoe1xuICAgICAgICAgICAgdHlwZTogJ3NlbGVjdE9wdGlvbicsXG4gICAgICAgICAgICBjbGlja2VkT3B0aW9uOiBjbG9zZXN0T3B0aW9uLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgb25DaGFuZ2U/LihzZWxlY3RlZERhdGEuc2VsZWN0ZWRWYWx1ZXNbMF0gPz8gJycpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFRPRE86IFJlbW92ZSBtZSBhbmQgdXNlIGF1dG9Gb2N1cyB3aGVuIHBvcHVwIGlzIGZpeGVkXG4gICAgLy8gQXV0b2ZvY3VzIG9uIHRoZSBzZWFyY2ggYmFyIGNyZWF0ZSBzb21lIHNjcm9sbCBpc3N1ZXNcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICB9LCA1MClcbiAgfSwgW10pXG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkSW5wdXRcbiAgICAgIHZhbHVlPXtzZWFyY2hJbnB1dH1cbiAgICAgIG9uQ2hhbmdlPXtldmVudCA9PiBoYW5kbGVDaGFuZ2UoZXZlbnQpfVxuICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgb25Gb2N1cz17KCkgPT4gc2V0U2VhcmNoQmFyQWN0aXZlKHRydWUpfVxuICAgICAgb25CbHVyPXsoKSA9PiBzZXRTZWFyY2hCYXJBY3RpdmUoZmFsc2UpfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJzZWFyY2gtYmFyXCJcbiAgICAgIHByZWZpeD17PEljb24gbmFtZT1cInNlYXJjaFwiIHNpemU9XCJzbWFsbFwiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPn1cbiAgICAgIG9uS2V5RG93bj17ZXZlbnQgPT4gaGFuZGxlS2V5RG93bihldmVudC5rZXksIHNlYXJjaElucHV0KX1cbiAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgYXJpYS1sYWJlbD1cInNlYXJjaC1iYXJcIlxuICAgICAgcmVmPXtzZWFyY2hJbnB1dFJlZn1cbiAgICAvPlxuICApXG59XG4iXX0= */"));
|
|
21
21
|
const findClosestOption = (options, searchInput) => {
|
|
22
22
|
if (searchInput) {
|
|
23
23
|
if (!Array.isArray(options)) {
|
|
@@ -100,7 +100,12 @@ const SearchBarDropdown = ({
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
};
|
|
103
|
-
|
|
103
|
+
useEffect(() => {
|
|
104
|
+
setTimeout(() => {
|
|
105
|
+
searchInputRef.current?.focus();
|
|
106
|
+
}, 50);
|
|
107
|
+
}, []);
|
|
108
|
+
return /* @__PURE__ */ jsx(StyledInput, { value: searchInput, onChange: (event) => handleChange(event), placeholder, onFocus: () => setSearchBarActive(true), onBlur: () => setSearchBarActive(false), "data-testid": "search-bar", prefix: /* @__PURE__ */ jsx(Icon, { name: "search", size: "small", sentiment: "neutral" }), onKeyDown: (event) => handleKeyDown(event.key, searchInput), size: "medium", "aria-label": "search-bar", ref: searchInputRef });
|
|
104
109
|
};
|
|
105
110
|
export {
|
|
106
111
|
SearchBarDropdown
|
|
@@ -151,6 +151,12 @@ const SelectInputProvider = ({
|
|
|
151
151
|
return options.some((option) => option.value === selectedValue && !option.disabled);
|
|
152
152
|
})
|
|
153
153
|
};
|
|
154
|
+
case "reset":
|
|
155
|
+
return {
|
|
156
|
+
selectedValues: action.selectedValues,
|
|
157
|
+
allSelected: false,
|
|
158
|
+
selectedGroups: action.selectedGroups
|
|
159
|
+
};
|
|
154
160
|
default:
|
|
155
161
|
return state;
|
|
156
162
|
}
|
|
@@ -160,6 +166,13 @@ const SelectInputProvider = ({
|
|
|
160
166
|
allSelected: false,
|
|
161
167
|
selectedGroups
|
|
162
168
|
});
|
|
169
|
+
React.useEffect(() => {
|
|
170
|
+
setSelectedData({
|
|
171
|
+
type: "reset",
|
|
172
|
+
selectedGroups,
|
|
173
|
+
selectedValues: currentValue
|
|
174
|
+
});
|
|
175
|
+
}, [currentValue, selectedGroups]);
|
|
163
176
|
const providerValue = React.useMemo(() => ({
|
|
164
177
|
onSearch: setDisplayedOptions,
|
|
165
178
|
isDropdownVisible,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
-
import { createContext, useMemo, useState, useCallback, useReducer, useContext } from "react";
|
|
2
|
+
import { createContext, useMemo, useState, useCallback, useReducer, useEffect, useContext } from "react";
|
|
3
3
|
const SelectInputContext = createContext({
|
|
4
4
|
options: [],
|
|
5
5
|
multiselect: false,
|
|
@@ -149,6 +149,12 @@ const SelectInputProvider = ({
|
|
|
149
149
|
return options.some((option) => option.value === selectedValue && !option.disabled);
|
|
150
150
|
})
|
|
151
151
|
};
|
|
152
|
+
case "reset":
|
|
153
|
+
return {
|
|
154
|
+
selectedValues: action.selectedValues,
|
|
155
|
+
allSelected: false,
|
|
156
|
+
selectedGroups: action.selectedGroups
|
|
157
|
+
};
|
|
152
158
|
default:
|
|
153
159
|
return state;
|
|
154
160
|
}
|
|
@@ -158,6 +164,13 @@ const SelectInputProvider = ({
|
|
|
158
164
|
allSelected: false,
|
|
159
165
|
selectedGroups
|
|
160
166
|
});
|
|
167
|
+
useEffect(() => {
|
|
168
|
+
setSelectedData({
|
|
169
|
+
type: "reset",
|
|
170
|
+
selectedGroups,
|
|
171
|
+
selectedValues: currentValue
|
|
172
|
+
});
|
|
173
|
+
}, [currentValue, selectedGroups]);
|
|
161
174
|
const providerValue = useMemo(() => ({
|
|
162
175
|
onSearch: setDisplayedOptions,
|
|
163
176
|
isDropdownVisible,
|
|
@@ -26,6 +26,10 @@ export type ReducerAction = {
|
|
|
26
26
|
type: 'clearAll';
|
|
27
27
|
} | {
|
|
28
28
|
type: 'update';
|
|
29
|
+
} | {
|
|
30
|
+
type: 'reset';
|
|
31
|
+
selectedValues: ReducerState['selectedValues'];
|
|
32
|
+
selectedGroups: ReducerState['selectedGroups'];
|
|
29
33
|
};
|
|
30
34
|
export declare const INPUT_SIZE_HEIGHT: {
|
|
31
35
|
readonly large: 48;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ultraviolet/ui",
|
|
3
|
-
"version": "1.53.
|
|
3
|
+
"version": "1.53.3",
|
|
4
4
|
"description": "Ultraviolet UI",
|
|
5
5
|
"homepage": "https://github.com/scaleway/ultraviolet#readme",
|
|
6
6
|
"repository": {
|
|
@@ -63,13 +63,14 @@
|
|
|
63
63
|
"@babel/core": "7.24.5",
|
|
64
64
|
"@emotion/react": "11.11.4",
|
|
65
65
|
"@emotion/styled": "11.11.5",
|
|
66
|
-
"@types/react": "18.3.
|
|
66
|
+
"@types/react": "18.3.1",
|
|
67
67
|
"@types/react-datepicker": "4.19.6",
|
|
68
68
|
"@types/react-dom": "18.3.0",
|
|
69
69
|
"react": "18.3.1",
|
|
70
70
|
"react-dom": "18.3.1",
|
|
71
|
+
"@ultraviolet/icons": "2.12.9",
|
|
71
72
|
"@ultraviolet/themes": "1.10.2",
|
|
72
|
-
"@
|
|
73
|
+
"@utils/test": "0.0.1"
|
|
73
74
|
},
|
|
74
75
|
"dependencies": {
|
|
75
76
|
"@emotion/serialize": "1.1.4",
|
|
@@ -97,6 +98,8 @@
|
|
|
97
98
|
"build": "vite build --config vite.config.ts && pnpm run type:generate",
|
|
98
99
|
"build:profile": "npx vite-bundle-visualizer -c vite.config.ts",
|
|
99
100
|
"typecheck": "tsc --noEmit",
|
|
100
|
-
"size": "pnpm run build && size-limit"
|
|
101
|
+
"size": "pnpm run build && size-limit",
|
|
102
|
+
"test:unit": "vitest --run --config vite.config.ts",
|
|
103
|
+
"test:unit:coverage": "pnpm test:unit --coverage"
|
|
101
104
|
}
|
|
102
105
|
}
|