@gooddata/sdk-ui-semantic-search 10.9.0-alpha.5 → 10.9.0-alpha.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. package/esm/SemanticSearch.d.ts.map +1 -1
  2. package/esm/SemanticSearch.js +6 -17
  3. package/esm/SemanticSearch.js.map +1 -1
  4. package/esm/hooks/index.d.ts +1 -0
  5. package/esm/hooks/index.d.ts.map +1 -1
  6. package/esm/hooks/index.js +1 -0
  7. package/esm/hooks/index.js.map +1 -1
  8. package/esm/hooks/useElementWidth.d.ts +9 -0
  9. package/esm/hooks/useElementWidth.d.ts.map +1 -0
  10. package/esm/hooks/useElementWidth.js +32 -0
  11. package/esm/hooks/useElementWidth.js.map +1 -0
  12. package/esm/internal/HeaderMobileSearch.d.ts +10 -0
  13. package/esm/internal/HeaderMobileSearch.d.ts.map +1 -0
  14. package/esm/internal/HeaderMobileSearch.js +15 -0
  15. package/esm/internal/HeaderMobileSearch.js.map +1 -0
  16. package/esm/internal/HeaderSearchButton.d.ts +12 -1
  17. package/esm/internal/HeaderSearchButton.d.ts.map +1 -1
  18. package/esm/internal/HeaderSearchButton.js +10 -4
  19. package/esm/internal/HeaderSearchButton.js.map +1 -1
  20. package/esm/internal/SearchList.d.ts +1 -1
  21. package/esm/internal/SearchList.d.ts.map +1 -1
  22. package/esm/internal/SearchOverlay.d.ts +4 -0
  23. package/esm/internal/SearchOverlay.d.ts.map +1 -1
  24. package/esm/internal/SearchOverlay.js +15 -14
  25. package/esm/internal/SearchOverlay.js.map +1 -1
  26. package/esm/internal/UpdateDate.d.ts +11 -3
  27. package/esm/internal/UpdateDate.d.ts.map +1 -1
  28. package/esm/internal/UpdateDate.js +9 -1
  29. package/esm/internal/UpdateDate.js.map +1 -1
  30. package/esm/internal/timezoneContext.d.ts +12 -0
  31. package/esm/internal/timezoneContext.d.ts.map +1 -0
  32. package/esm/internal/timezoneContext.js +14 -0
  33. package/esm/internal/timezoneContext.js.map +1 -0
  34. package/esm/internal.d.ts +1 -0
  35. package/esm/internal.d.ts.map +1 -1
  36. package/esm/internal.js +1 -0
  37. package/esm/internal.js.map +1 -1
  38. package/esm/sdk-ui-semantic-search.d.ts +8 -0
  39. package/package.json +7 -7
  40. package/styles/css/internal.css +22 -22
  41. package/styles/css/internal.css.map +1 -1
  42. package/styles/scss/internal.scss +35 -30
@@ -1 +1 @@
1
- {"version":3,"file":"SemanticSearch.d.ts","sourceRoot":"","sources":["../src/SemanticSearch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAIzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAI/D;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACpD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACxC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAyHF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GAAG;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAMxD,CAAC"}
1
+ {"version":3,"file":"SemanticSearch.d.ts","sourceRoot":"","sources":["../src/SemanticSearch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAIzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAK/D;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACpD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACxC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AA2GF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GAAG;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAMxD,CAAC"}
@@ -5,6 +5,7 @@ import { IntlWrapper } from "@gooddata/sdk-ui";
5
5
  import { SearchResultsDropdownList } from "./SearchResultsDropdownList.js";
6
6
  import { useSemanticSearch } from "./hooks/index.js";
7
7
  import classnames from "classnames";
8
+ import { useElementWidth } from "./hooks/useElementWidth.js";
8
9
  /**
9
10
  * Search input debounce time.
10
11
  * I.e. how long to wait after the user stops typing before sending the search request.
@@ -17,6 +18,7 @@ const DEBOUNCE = 300;
17
18
  const SemanticSearchCore = ({ backend, workspace, onSelect, onError, objectTypes, deepSearch = false, limit = 10, className, placeholder, }) => {
18
19
  // Input value handling
19
20
  const [value, setValue, searchTerm, setImmediate] = useDebouncedState("", DEBOUNCE);
21
+ const inputRef = React.useRef(null);
20
22
  // Search results
21
23
  const { searchStatus, searchResults, searchError } = useSemanticSearch({
22
24
  backend,
@@ -28,22 +30,8 @@ const SemanticSearchCore = ({ backend, workspace, onSelect, onError, objectTypes
28
30
  });
29
31
  // Build list items for rendering
30
32
  const listItems = React.useMemo(() => searchResults.map((item) => ({ item })), [searchResults]);
31
- // Match the width of the drop-down to the input field
32
- const [width, setWidth] = React.useState(0);
33
- const inputRef = React.useRef(null);
34
- React.useLayoutEffect(() => {
35
- const handleResize = () => {
36
- const input = inputRef.current?.inputNodeRef?.inputNodeRef;
37
- if (input) {
38
- setWidth(input.offsetWidth);
39
- }
40
- };
41
- handleResize();
42
- window.addEventListener("resize", handleResize);
43
- return () => {
44
- window.removeEventListener("resize", handleResize);
45
- };
46
- }, []);
33
+ // The List component requires explicit width
34
+ const [ref, width] = useElementWidth();
47
35
  // Report errors
48
36
  React.useEffect(() => {
49
37
  if (onError && searchStatus === "error") {
@@ -70,7 +58,8 @@ const SemanticSearchCore = ({ backend, workspace, onSelect, onError, objectTypes
70
58
  onSelect(item);
71
59
  } }));
72
60
  }, renderButton: ({ openDropdown }) => {
73
- return (React.createElement(Input, { className: "gd-semantic-search__input", ref: inputRef, placeholder: placeholder, isSearch: true, clearOnEsc: true, value: value, onChange: (e) => setValue(String(e)), onFocus: openDropdown }));
61
+ return (React.createElement("div", { ref: ref },
62
+ React.createElement(Input, { className: "gd-semantic-search__input", ref: inputRef, placeholder: placeholder, isSearch: true, clearOnEsc: true, value: value, onChange: (e) => setValue(String(e)), onFocus: openDropdown })));
74
63
  } }));
75
64
  };
76
65
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SemanticSearch.js","sourceRoot":"","sources":["../src/SemanticSearch.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SemanticSearch.js","sourceRoot":"","sources":["../src/SemanticSearch.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from "./useSemanticSearch.js";
2
2
  export * from "./useListSelector.js";
3
+ export * from "./useElementWidth.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAEA,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAEA,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  export * from "./useSemanticSearch.js";
3
3
  export * from "./useListSelector.js";
4
+ export * from "./useElementWidth.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ /**
3
+ * List and DropdownList components require explicit width to render correctly.
4
+ * This hook measures the width of the input element and returns it.
5
+ * There are no UTs for this because jsdom does not compute element dimensions.
6
+ * @internal
7
+ */
8
+ export declare const useElementWidth: () => [React.RefCallback<HTMLElement>, number];
9
+ //# sourceMappingURL=useElementWidth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useElementWidth.d.ts","sourceRoot":"","sources":["../../src/hooks/useElementWidth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAO,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,CA2BzE,CAAC"}
@@ -0,0 +1,32 @@
1
+ // (C) 2007-2024 GoodData Corporation
2
+ import * as React from "react";
3
+ /**
4
+ * List and DropdownList components require explicit width to render correctly.
5
+ * This hook measures the width of the input element and returns it.
6
+ * There are no UTs for this because jsdom does not compute element dimensions.
7
+ * @internal
8
+ */
9
+ export const useElementWidth = () => {
10
+ const [width, setWidth] = React.useState(0);
11
+ const observer = React.useMemo(() => {
12
+ return new ResizeObserver((entries) => {
13
+ // We're always listening to one element at a time
14
+ const entry = entries[0];
15
+ if (entry) {
16
+ setWidth(entry.target.offsetWidth);
17
+ }
18
+ });
19
+ }, []);
20
+ const elementRef = React.useCallback((element) => {
21
+ if (!element) {
22
+ // React will call the ref with null when unmounting
23
+ observer.disconnect();
24
+ return;
25
+ }
26
+ // Capture width and assign a resize observer
27
+ setWidth(element.offsetWidth);
28
+ observer.observe(element);
29
+ }, [observer]);
30
+ return [elementRef, width];
31
+ };
32
+ //# sourceMappingURL=useElementWidth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useElementWidth.js","sourceRoot":"","sources":["../../src/hooks/useElementWidth.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAA6C,EAAE;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,CAAC,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChC,OAAO,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;YAClC,kDAAkD;YAClD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,EAAE,CAAC;gBACR,QAAQ,CAAE,KAAK,CAAC,MAAsB,CAAC,WAAW,CAAC,CAAC;YACxD,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAChC,CAAC,OAA2B,EAAE,EAAE;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,oDAAoD;YACpD,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,6CAA6C;QAC7C,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9B,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,EACD,CAAC,QAAQ,CAAC,CACb,CAAC;IAEF,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { HeaderSearchButtonProps } from "./HeaderSearchButton.js";
3
+ /**
4
+ * A version of the search overlay that is optimized for mobile devices.
5
+ * @internal
6
+ */
7
+ export declare const HeaderMobileSearch: React.FC<import("react-intl").WithIntlProps<HeaderSearchButtonProps>> & {
8
+ WrappedComponent: React.ComponentType<HeaderSearchButtonProps>;
9
+ };
10
+ //# sourceMappingURL=HeaderMobileSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderMobileSearch.d.ts","sourceRoot":"","sources":["../../src/internal/HeaderMobileSearch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAqBlE;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;CAAqC,CAAC"}
@@ -0,0 +1,15 @@
1
+ // (C) 2007-2024 GoodData Corporation
2
+ import * as React from "react";
3
+ import { SearchOverlay } from "./SearchOverlay.js";
4
+ import { TimezoneProvider } from "./timezoneContext.js";
5
+ import { injectIntl } from "react-intl";
6
+ const HeaderMobileSearchCore = ({ onSelect, metadataTimezone, ...overlayProps }) => {
7
+ return (React.createElement(TimezoneProvider, { value: metadataTimezone },
8
+ React.createElement(SearchOverlay, { onSelect: onSelect, className: "gd-semantic-search__overlay--mobile", ...overlayProps })));
9
+ };
10
+ /**
11
+ * A version of the search overlay that is optimized for mobile devices.
12
+ * @internal
13
+ */
14
+ export const HeaderMobileSearch = injectIntl(HeaderMobileSearchCore);
15
+ //# sourceMappingURL=HeaderMobileSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderMobileSearch.js","sourceRoot":"","sources":["../../src/internal/HeaderMobileSearch.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,sBAAsB,GAAsC,CAAC,EAC/D,QAAQ,EACR,gBAAgB,EAChB,GAAG,YAAY,EAClB,EAAE,EAAE;IACD,OAAO,CACH,oBAAC,gBAAgB,IAAC,KAAK,EAAE,gBAAgB;QACrC,oBAAC,aAAa,IACV,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,qCAAqC,KAC3C,YAAY,GAClB,CACa,CACtB,CAAC;AACN,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC"}
@@ -1,6 +1,10 @@
1
1
  import React from "react";
2
2
  import { SearchOverlayProps } from "./SearchOverlay.js";
3
3
  import { ISemanticSearchResultItem } from "@gooddata/sdk-model";
4
+ /**
5
+ * Props for the HeaderSearchButton component.
6
+ * @internal
7
+ */
4
8
  export type HeaderSearchButtonProps = SearchOverlayProps & {
5
9
  /**
6
10
  * Callback to be called when an item is selected.
@@ -9,8 +13,15 @@ export type HeaderSearchButtonProps = SearchOverlayProps & {
9
13
  * @param itemUrl - the URL of the selected item, if available
10
14
  */
11
15
  onSelect: (item: ISemanticSearchResultItem, e: MouseEvent | KeyboardEvent, itemUrl?: string) => void;
16
+ /**
17
+ * Timezone to use for formatting dates.
18
+ */
19
+ metadataTimezone?: string;
12
20
  };
13
- export declare const HeaderSearchButtonCore: React.FC<HeaderSearchButtonProps>;
21
+ /**
22
+ * A search button / drop down trigger for the Header menu
23
+ * @internal
24
+ */
14
25
  export declare const HeaderSearchButton: React.FC<import("react-intl").WithIntlProps<HeaderSearchButtonProps>> & {
15
26
  WrappedComponent: React.ComponentType<HeaderSearchButtonProps>;
16
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderSearchButton.d.ts","sourceRoot":"","sources":["../../src/internal/HeaderSearchButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAiB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAIhE,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,GAAG;IACvD;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,yBAAyB,EAAE,CAAC,EAAE,UAAU,GAAG,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxG,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA2DpE,CAAC;AAEF,eAAO,MAAM,kBAAkB;;CAAqC,CAAC"}
1
+ {"version":3,"file":"HeaderSearchButton.d.ts","sourceRoot":"","sources":["../../src/internal/HeaderSearchButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAiB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAKhE;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,GAAG;IACvD;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,yBAAyB,EAAE,CAAC,EAAE,UAAU,GAAG,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrG;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAyEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;CAAqC,CAAC"}
@@ -4,8 +4,9 @@ import cx from "classnames";
4
4
  import { FormattedMessage, injectIntl } from "react-intl";
5
5
  import { Button, Overlay } from "@gooddata/sdk-ui-kit";
6
6
  import { SearchOverlay } from "./SearchOverlay.js";
7
+ import { TimezoneProvider } from "./timezoneContext.js";
7
8
  const ALIGN_POINTS = [{ align: "br tr" }];
8
- export const HeaderSearchButtonCore = ({ onSelect, ...overlayProps }) => {
9
+ const HeaderSearchButtonCore = ({ onSelect, metadataTimezone, ...overlayProps }) => {
9
10
  const [isOpen, setIsOpen] = React.useState(false);
10
11
  const classNames = cx("gd-header-measure", "gd-header-button", "gd-header-search", { "is-open": isOpen });
11
12
  // Handle Cmd+K and Ctrl+K shortcuts
@@ -28,12 +29,17 @@ export const HeaderSearchButtonCore = ({ onSelect, ...overlayProps }) => {
28
29
  return onSelect(item, e, url);
29
30
  }, [onSelect, setIsOpen]);
30
31
  return (React.createElement(Button, { title: overlayProps.intl.formatMessage({ id: "gs.header.search" }), className: classNames, onClick: () => setIsOpen(true) },
31
- React.createElement("span", { className: "gd-icon-header-search" }),
32
+ React.createElement("span", { className: "gd-icon-header-search-button" }),
32
33
  React.createElement("span", { className: "gd-header-search-label" },
33
34
  React.createElement(FormattedMessage, { id: "gs.header.search" })),
34
35
  isOpen ? (React.createElement(Overlay, { isModal: false, alignTo: ".gd-header-search", alignPoints: ALIGN_POINTS, closeOnEscape: true, closeOnOutsideClick: true, closeOnParentScroll: false, closeOnMouseDrag: false, onClose: () => setIsOpen(false), ignoreClicksOnByClass: [".gd-bubble", ".gd-semantic-search__results-item"] },
35
- React.createElement("div", { className: "gd-dialog gd-dropdown overlay gd-header-search-dropdown" },
36
- React.createElement(SearchOverlay, { onSelect: handleSelect, ...overlayProps })))) : null));
36
+ React.createElement(TimezoneProvider, { value: metadataTimezone },
37
+ React.createElement("div", { className: "gd-dialog gd-dropdown overlay gd-header-search-dropdown" },
38
+ React.createElement(SearchOverlay, { onSelect: handleSelect, className: "gd-semantic-search__overlay--fixed", ...overlayProps }))))) : null));
37
39
  };
40
+ /**
41
+ * A search button / drop down trigger for the Header menu
42
+ * @internal
43
+ */
38
44
  export const HeaderSearchButton = injectIntl(HeaderSearchButtonCore);
39
45
  //# sourceMappingURL=HeaderSearchButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderSearchButton.js","sourceRoot":"","sources":["../../src/internal/HeaderSearchButton.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HeaderSearchButton.js","sourceRoot":"","sources":["../../src/internal/HeaderSearchButton.tsx"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export type SearchListProps<T> = {
12
12
  /**
13
13
  * Width of the list.
14
14
  */
15
- width: number;
15
+ width?: number;
16
16
  /**
17
17
  * Callback for item selection.
18
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SearchList.d.ts","sourceRoot":"","sources":["../../src/internal/SearchList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAItD;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC7B;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,aAAa,KAAK,IAAI,CAAC;IACrE;;OAEG;IACH,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,yFAqBtB,CAAC"}
1
+ {"version":3,"file":"SearchList.d.ts","sourceRoot":"","sources":["../../src/internal/SearchList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAItD;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC7B;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,aAAa,KAAK,IAAI,CAAC;IACrE;;OAEG;IACH,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,yFAqBtB,CAAC"}
@@ -31,6 +31,10 @@ export type SearchOverlayProps = WrappedComponentProps & {
31
31
  * A limit of search results to return.
32
32
  */
33
33
  limit?: number;
34
+ /**
35
+ * Additional CSS class for the component.
36
+ */
37
+ className?: string;
34
38
  };
35
39
  /**
36
40
  * A component that allows users to search for insights, metrics, attributes, and other objects using semantic search.
@@ -1 +1 @@
1
- {"version":3,"file":"SearchOverlay.d.ts","sourceRoot":"","sources":["../../src/internal/SearchOverlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAoB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAmC/D;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,GAAG;IACrD;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,yBAAyB,EAAE,CAAC,EAAE,UAAU,GAAG,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrG;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACxC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAsJtD,CAAC"}
1
+ {"version":3,"file":"SearchOverlay.d.ts","sourceRoot":"","sources":["../../src/internal/SearchOverlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAoB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA+B/D;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,GAAG;IACrD;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,yBAAyB,EAAE,CAAC,EAAE,UAAU,GAAG,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrG;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACxC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA6JtD,CAAC"}
@@ -1,9 +1,10 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  import * as React from "react";
3
+ import classnames from "classnames";
3
4
  import { FormattedMessage } from "react-intl";
4
5
  import { Input, LoadingMask, Message, useDebouncedState } from "@gooddata/sdk-ui-kit";
5
6
  import { useWorkspaceStrict, useLocalStorage } from "@gooddata/sdk-ui";
6
- import { useSemanticSearch } from "../hooks/index.js";
7
+ import { useSemanticSearch, useElementWidth } from "../hooks/index.js";
7
8
  import { getUIPath } from "../utils/getUIPath.js";
8
9
  import { SearchList } from "./SearchList.js";
9
10
  import { HistoryItem } from "./HistoryItem.js";
@@ -16,10 +17,6 @@ const DEBOUNCE = 300;
16
17
  * A height of the loading mask.
17
18
  */
18
19
  const LOADING_HEIGHT = 100;
19
- /**
20
- * A width of the search drop-down.
21
- */
22
- const SEARCH_OVERLAY_WIDTH = 440;
23
20
  /**
24
21
  * Max search history length.
25
22
  */
@@ -37,7 +34,7 @@ const SEARCH_HISTORY_EMPTY = [];
37
34
  * The internal version is meant to be used in an overlay inside the Header.
38
35
  * @internal
39
36
  */
40
- export const SearchOverlay = ({ onSelect, backend, workspace, objectTypes, deepSearch, limit = 6, intl, }) => {
37
+ export const SearchOverlay = ({ onSelect, backend, workspace, objectTypes, deepSearch, limit = 6, className, intl, }) => {
41
38
  // Input value handling
42
39
  const [value, setValue, searchTerm, setImmediate] = useDebouncedState("", DEBOUNCE);
43
40
  // Search results
@@ -53,13 +50,15 @@ export const SearchOverlay = ({ onSelect, backend, workspace, objectTypes, deepS
53
50
  // Results wrapped into ListItems
54
51
  const searchResultsItems = React.useMemo(() => searchResults.flatMap((item) => {
55
52
  // Look up parent items if available
56
- const parents = relationships.filter((rel) => rel.targetObjectId === item.id && rel.targetObjectType === item.type);
57
- if (!parents.length)
53
+ const parentDashboards = relationships.filter((rel) => rel.targetObjectId === item.id &&
54
+ rel.targetObjectType === item.type &&
55
+ rel.sourceObjectType === "dashboard");
56
+ if (!parentDashboards.length)
58
57
  return {
59
58
  item,
60
59
  url: getUIPath(item.type, item.id, effectiveWorkspace),
61
60
  };
62
- return parents.map((parent) => ({
61
+ return parentDashboards.map((parent) => ({
63
62
  item,
64
63
  parentRef: parent,
65
64
  url: getUIPath(parent.sourceObjectType, parent.sourceObjectId, effectiveWorkspace),
@@ -93,12 +92,14 @@ export const SearchOverlay = ({ onSelect, backend, workspace, objectTypes, deepS
93
92
  console.error(searchError);
94
93
  }
95
94
  }, [searchStatus, searchError]);
96
- return (React.createElement("div", { className: "gd-semantic-search__overlay" },
95
+ // The List component requires explicit width
96
+ const [ref, width] = useElementWidth();
97
+ return (React.createElement("div", { ref: ref, className: classnames("gd-semantic-search__overlay", className) },
97
98
  React.createElement(Input, { className: "gd-semantic-search__overlay-input", autofocus: true, placeholder: intl.formatMessage({ id: "semantic-search.placeholder" }), isSearch: true, clearOnEsc: true, value: value, onChange: (e) => setValue(String(e)) }),
98
99
  (() => {
99
100
  switch (searchStatus) {
100
101
  case "loading":
101
- return React.createElement(LoadingMask, { width: SEARCH_OVERLAY_WIDTH, height: LOADING_HEIGHT });
102
+ return React.createElement(LoadingMask, { height: LOADING_HEIGHT });
102
103
  case "error":
103
104
  return (React.createElement("div", { className: "gd-semantic-search__overlay-error" },
104
105
  React.createElement(Message, { type: "error" },
@@ -110,10 +111,10 @@ export const SearchOverlay = ({ onSelect, backend, workspace, objectTypes, deepS
110
111
  return (React.createElement("div", { className: "gd-semantic-search__overlay-no-results" },
111
112
  React.createElement(FormattedMessage, { id: "semantic-search.no-results", values: { query: searchTerm } })));
112
113
  }
113
- return (React.createElement(SearchList, { items: searchResultsItems, width: SEARCH_OVERLAY_WIDTH, onSelect: onResultSelect, ItemComponent: AnnotatedResultsItem }));
114
+ return (React.createElement(SearchList, { items: searchResultsItems, width: width, onSelect: onResultSelect, ItemComponent: AnnotatedResultsItem }));
114
115
  case "idle":
115
- if (searchHistory.length) {
116
- return (React.createElement(SearchList, { items: searchHistoryItems, width: SEARCH_OVERLAY_WIDTH, onSelect: onHistorySelect, ItemComponent: HistoryItem }));
116
+ if (searchHistoryItems.length) {
117
+ return (React.createElement(SearchList, { items: searchHistoryItems, width: width, onSelect: onHistorySelect, ItemComponent: HistoryItem }));
117
118
  }
118
119
  // fallthrough
119
120
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"SearchOverlay.js","sourceRoot":"","sources":["../../src/internal/SearchOverlay.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchOverlay.js","sourceRoot":"","sources":["../../src/internal/SearchOverlay.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,18 @@
1
1
  import { ListItem } from "../types.js";
2
2
  import { ISemanticSearchResultItem } from "@gooddata/sdk-model";
3
3
  import * as React from "react";
4
- type UpdateDateProps = {
4
+ /**
5
+ * Props for the update date component.
6
+ * @internal
7
+ */
8
+ export type UpdateDateProps = {
5
9
  listItem: ListItem<ISemanticSearchResultItem>;
6
- timezone?: string;
7
10
  };
11
+ /**
12
+ * Rendering the update date as memoized component.
13
+ * The list rendering was lagging and React Performance tools showed that
14
+ * the date formatting was one of the bottlenecks.
15
+ * @internal
16
+ */
8
17
  export declare const UpdatedDate: React.NamedExoticComponent<UpdateDateProps>;
9
- export {};
10
18
  //# sourceMappingURL=UpdateDate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateDate.d.ts","sourceRoot":"","sources":["../../src/internal/UpdateDate.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,eAAe,GAAG;IACnB,QAAQ,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAQF,eAAO,MAAM,WAAW,6CA2BtB,CAAC"}
1
+ {"version":3,"file":"UpdateDate.d.ts","sourceRoot":"","sources":["../../src/internal/UpdateDate.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;CACjD,CAAC;AAQF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,6CAyBtB,CAAC"}
@@ -2,12 +2,20 @@
2
2
  import * as React from "react";
3
3
  import { getDateTimeConfig } from "@gooddata/sdk-ui-kit";
4
4
  import { defineMessages, FormattedDate, FormattedMessage, FormattedTime } from "react-intl";
5
+ import { useTimezone } from "./timezoneContext.js";
5
6
  const messages = defineMessages({
6
7
  today: { id: "gs.date.today" },
7
8
  yesterday: { id: "gs.date.yesterday" },
8
9
  at: { id: "gs.date.at" },
9
10
  });
10
- export const UpdatedDate = React.memo(function UpdatedDate({ listItem: { item }, timezone, }) {
11
+ /**
12
+ * Rendering the update date as memoized component.
13
+ * The list rendering was lagging and React Performance tools showed that
14
+ * the date formatting was one of the bottlenecks.
15
+ * @internal
16
+ */
17
+ export const UpdatedDate = React.memo(function UpdatedDate({ listItem: { item } }) {
18
+ const timezone = useTimezone();
11
19
  const timestamp = item.modifiedAt ?? item.createdAt;
12
20
  if (!timestamp)
13
21
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateDate.js","sourceRoot":"","sources":["../../src/internal/UpdateDate.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAIhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAO5F,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC5B,KAAK,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE;IAC9B,SAAS,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE;IACtC,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,EACvD,QAAQ,EAAE,EAAE,IAAI,EAAE,EAClB,QAAQ,GACM;IACd,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC;IAEpD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;IAExE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IAEhF,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,CACH;YACI,oBAAC,gBAAgB,IAAC,EAAE,EAAE,YAAY,GAAI;;YAEtC,oBAAC,gBAAgB,IAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAI;;YAExC,oBAAC,aAAa,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,GAAG,CAClE,CACV,CAAC;IACN,CAAC;SAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAC9B,OAAO,oBAAC,aAAa,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAC,SAAS,EAAC,KAAK,EAAC,OAAO,GAAG,CAAC;IAC7E,CAAC;IAED,OAAO,oBAAC,aAAa,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,SAAS,GAAG,CAAC;AAC5F,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"UpdateDate.js","sourceRoot":"","sources":["../../src/internal/UpdateDate.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAIhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAUnD,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC5B,KAAK,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE;IAC9B,SAAS,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE;IACtC,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE;CAC3B,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAmB;IAC9F,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC;IAEpD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;IAExE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IAEhF,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,CACH;YACI,oBAAC,gBAAgB,IAAC,EAAE,EAAE,YAAY,GAAI;;YAEtC,oBAAC,gBAAgB,IAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAI;;YAExC,oBAAC,aAAa,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,GAAG,CAClE,CACV,CAAC;IACN,CAAC;SAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAC9B,OAAO,oBAAC,aAAa,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAC,SAAS,EAAC,KAAK,EAAC,OAAO,GAAG,CAAC;IAC7E,CAAC;IAED,OAAO,oBAAC,aAAa,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,SAAS,GAAG,CAAC;AAC5F,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Provider for the timezone context.
4
+ * @internal
5
+ */
6
+ export declare const TimezoneProvider: React.Provider<string | undefined>;
7
+ /**
8
+ * Hook for accessing the timezone from the context.
9
+ * @internal
10
+ */
11
+ export declare const useTimezone: () => string | undefined;
12
+ //# sourceMappingURL=timezoneContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timezoneContext.d.ts","sourceRoot":"","sources":["../../src/internal/timezoneContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;GAGG;AACH,eAAO,MAAM,gBAAgB,oCAA2B,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,WAAW,0BAA0C,CAAC"}
@@ -0,0 +1,14 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import * as React from "react";
3
+ const timezoneContext = React.createContext(undefined);
4
+ /**
5
+ * Provider for the timezone context.
6
+ * @internal
7
+ */
8
+ export const TimezoneProvider = timezoneContext.Provider;
9
+ /**
10
+ * Hook for accessing the timezone from the context.
11
+ * @internal
12
+ */
13
+ export const useTimezone = () => React.useContext(timezoneContext);
14
+ //# sourceMappingURL=timezoneContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timezoneContext.js","sourceRoot":"","sources":["../../src/internal/timezoneContext.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAqB,SAAS,CAAC,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC;AAEzD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC"}
package/esm/internal.d.ts CHANGED
@@ -5,4 +5,5 @@
5
5
  * @internal
6
6
  */
7
7
  export * from "./internal/HeaderSearchButton.js";
8
+ export * from "./internal/HeaderMobileSearch.js";
8
9
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC"}
package/esm/internal.js CHANGED
@@ -6,4 +6,5 @@
6
6
  * @internal
7
7
  */
8
8
  export * from "./internal/HeaderSearchButton.js";
9
+ export * from "./internal/HeaderMobileSearch.js";
9
10
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC;;;;;GAKG;AAEH,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC;;;;;GAKG;AAEH,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC"}
@@ -125,6 +125,14 @@ export declare type SemanticSearchProps = SemanticSearchCoreProps & {
125
125
  locale?: string;
126
126
  };
127
127
 
128
+ /**
129
+ * List and DropdownList components require explicit width to render correctly.
130
+ * This hook measures the width of the input element and returns it.
131
+ * There are no UTs for this because jsdom does not compute element dimensions.
132
+ * @internal
133
+ */
134
+ export declare const useElementWidth: () => [React_2.RefCallback<HTMLElement>, number];
135
+
128
136
  /**
129
137
  * This hook provides keyboard navigation for a list of items. It listens to ArrowUp, ArrowDown and Enter keys and
130
138
  * calls the onSelect callback when Enter is pressed.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-semantic-search",
3
- "version": "10.9.0-alpha.5",
3
+ "version": "10.9.0-alpha.6",
4
4
  "description": "GoodData SDK TypeScript & React skeleton",
5
5
  "repository": {
6
6
  "type": "git",
@@ -37,11 +37,11 @@
37
37
  "react-intl": "^6.4.1",
38
38
  "tslib": "^2.5.0",
39
39
  "classnames": "^2.3.1",
40
- "@gooddata/sdk-model": "10.9.0-alpha.5",
41
- "@gooddata/sdk-ui": "10.9.0-alpha.5",
42
- "@gooddata/sdk-ui-kit": "10.9.0-alpha.5",
43
- "@gooddata/sdk-ui-theme-provider": "10.9.0-alpha.5",
44
- "@gooddata/sdk-backend-spi": "10.9.0-alpha.5"
40
+ "@gooddata/sdk-model": "10.9.0-alpha.6",
41
+ "@gooddata/sdk-ui": "10.9.0-alpha.6",
42
+ "@gooddata/sdk-ui-kit": "10.9.0-alpha.6",
43
+ "@gooddata/sdk-backend-spi": "10.9.0-alpha.6",
44
+ "@gooddata/sdk-ui-theme-provider": "10.9.0-alpha.6"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "react": "^16.10.0 || ^17.0.0 || ^18.0.0",
@@ -83,7 +83,7 @@
83
83
  "stylelint": "^13.8.0",
84
84
  "stylelint-checkstyle-formatter": "^0.1.2",
85
85
  "stylelint-config-prettier": "^8.0.2",
86
- "@gooddata/sdk-backend-mockingbird": "10.9.0-alpha.5"
86
+ "@gooddata/sdk-backend-mockingbird": "10.9.0-alpha.6"
87
87
  },
88
88
  "scripts": {
89
89
  "clean": "rm -rf ci dist esm coverage *.log styles/css tsconfig.tsbuildinfo",
@@ -111,10 +111,15 @@
111
111
  }
112
112
 
113
113
  .gd-semantic-search__overlay {
114
- width: 440px;
115
114
  background: var(--gd-palette-complementary-0, #fff);
116
115
  margin: 10px 0;
117
116
  }
117
+ .gd-semantic-search__overlay--fixed {
118
+ width: 440px;
119
+ }
120
+ .gd-semantic-search__overlay--mobile .gd-semantic-search__overlay-input {
121
+ margin-bottom: 10px;
122
+ }
118
123
  .gd-semantic-search__overlay-input {
119
124
  margin: 0 10px;
120
125
  }
@@ -140,7 +145,9 @@
140
145
  transition: all 0.2s;
141
146
  font-size: 14px;
142
147
  font-weight: 400;
143
- padding: 0 13px 2px;
148
+ position: relative;
149
+ box-sizing: border-box;
150
+ padding: 0 34px 2px 13px;
144
151
  overflow: hidden;
145
152
  white-space: nowrap;
146
153
  text-overflow: ellipsis;
@@ -148,18 +155,6 @@
148
155
  .gd-header-search:hover, .gd-header-search.is-open {
149
156
  opacity: 1;
150
157
  }
151
- .gd-header-search.is-open {
152
- background-color: rgba(255, 255, 255, 0.3);
153
- }
154
-
155
- .gd-header-search {
156
- position: relative;
157
- box-sizing: border-box;
158
- padding-right: 34px;
159
- }
160
- .gd-header-search:hover {
161
- background: rgba(255, 255, 255, 0.3);
162
- }
163
158
  .gd-header-search::after {
164
159
  content: "\e612";
165
160
  position: absolute;
@@ -176,16 +171,12 @@
176
171
  .gd-header-search.is-open::after {
177
172
  content: "\e613";
178
173
  }
179
-
180
- .gd-icon-header-search {
181
- vertical-align: middle;
182
- opacity: 0.8;
183
- margin-right: 6px;
174
+ .gd-header-search:hover {
175
+ background: rgba(255, 255, 255, 0.3);
184
176
  }
185
- .gd-icon-header-search::before {
186
- content: "\e62b";
177
+ .gd-header-search.is-open {
178
+ background-color: rgba(255, 255, 255, 0.3);
187
179
  }
188
-
189
180
  .gd-header-search-dropdown {
190
181
  overflow: hidden;
191
182
  }
@@ -197,4 +188,13 @@
197
188
  font-weight: 400;
198
189
  }
199
190
 
191
+ .gd-icon-header-search-button {
192
+ vertical-align: middle;
193
+ opacity: 0.8;
194
+ margin-right: 6px;
195
+ }
196
+ .gd-icon-header-search-button::before {
197
+ content: "\e62b";
198
+ }
199
+
200
200
  /*# sourceMappingURL=internal.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../node_modules/@gooddata/sdk-ui-kit/styles/scss/mixins.scss","../scss/main.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/internal.scss"],"names":[],"mappings":";AA0HA;AA4DA;AC1JI;EAGI;EACA;EACA;EACA;EACA;EACA;EACA,QARc;EASd;;AAEA;EACI;;AAGJ;EACI,OCTI;EDUJ,YC+DY;;AD5DhB;EA1CJ,OA2CsB;EA1CtB,QA0CsB;EAzCtB;EACA;;AAEA;EAEI,OAoCkB;EAnClB,QAmCkB;;AAEd;EA7CR,OA8C0B;EA7C1B,QA6C0B;EA5C1B;EACA;;AAEA;EAEI,OAuCsB;EAtCtB,QAsCsB;;AAItB;EACI;EACA;EACA,OC9BI;ED+BJ;;AAEA;EA3CR;EACA,aA2C8B;EA1C9B;EACA;EACA;;AA2CQ;EACI;EACA;;AAGJ;EApDR;EACA,aAoD8B;EAnD9B;EACA;EACA;;AAoDQ;EAxDR;EACA,aAwD8B;EAvD9B;EACA;EACA;EAsDY,OCvDO;;AD2Df;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA,OCzFG;;AD+FX;EACI;;AAGJ;EACI;;;AAMhB;EACI,YCjHa;;;ACRb;EACI;EACA,YDMS;ECLT;;AAGJ;EACI;;AAGJ;EAEI;EACA;EACA;EACA,ODDe;;ACInB;EACI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EHwEA;EACA;EACA,eAHwB;;AGnExB;EAEI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,aDkBS;ECjBT;EACA;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;;AAEA;EACI;;AAEA;EACI,aDVM;ECWN","file":"internal.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../node_modules/@gooddata/sdk-ui-kit/styles/scss/mixins.scss","../scss/main.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/internal.scss"],"names":[],"mappings":";AA0HA;AA4DA;AC1JI;EAGI;EACA;EACA;EACA;EACA;EACA;EACA,QARc;EASd;;AAEA;EACI;;AAGJ;EACI,OCTI;EDUJ,YC+DY;;AD5DhB;EA1CJ,OA2CsB;EA1CtB,QA0CsB;EAzCtB;EACA;;AAEA;EAEI,OAoCkB;EAnClB,QAmCkB;;AAEd;EA7CR,OA8C0B;EA7C1B,QA6C0B;EA5C1B;EACA;;AAEA;EAEI,OAuCsB;EAtCtB,QAsCsB;;AAItB;EACI;EACA;EACA,OC9BI;ED+BJ;;AAEA;EA3CR;EACA,aA2C8B;EA1C9B;EACA;EACA;;AA2CQ;EACI;EACA;;AAGJ;EApDR;EACA,aAoD8B;EAnD9B;EACA;EACA;;AAoDQ;EAxDR;EACA,aAwD8B;EAvD9B;EACA;EACA;EAsDY,OCvDO;;AD2Df;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA,OCzFG;;AD+FX;EACI;;AAGJ;EACI;;;AAMhB;EACI,YCjHa;;;ACRb;EACI,YDOS;ECNT;;AAEA;EACI;;AAIA;EACI;;AAKZ;EACI;;AAGJ;EAEI;EACA;EACA;EACA,ODVe;;ACanB;EACI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EH6DA;EACA;EACA,eAHwB;;AGxDxB;EAEI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,aDqBS;ECpBT;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAEA;EACI;;AAEA;EACI,aDJE;ECKF;;;AAMhB;EACI;EACA;EACA;;AAEA;EACI","file":"internal.css"}
@@ -8,9 +8,18 @@
8
8
 
9
9
  .gd-semantic-search {
10
10
  &__overlay {
11
- width: 440px;
12
11
  background: kit-variables.$gd-color-white;
13
12
  margin: 10px 0;
13
+
14
+ &--fixed {
15
+ width: 440px;
16
+ }
17
+
18
+ &--mobile {
19
+ .gd-semantic-search__overlay-input {
20
+ margin-bottom: 10px;
21
+ }
22
+ }
14
23
  }
15
24
 
16
25
  &__overlay-input {
@@ -43,7 +52,9 @@
43
52
  transition: all 0.2s;
44
53
  font-size: 14px;
45
54
  font-weight: 400;
46
- padding: 0 13px 2px;
55
+ position: relative;
56
+ box-sizing: border-box;
57
+ padding: 0 34px 2px 13px;
47
58
 
48
59
  @include kit-mixins.text-overflow;
49
60
 
@@ -52,20 +63,6 @@
52
63
  opacity: 1;
53
64
  }
54
65
 
55
- &.is-open {
56
- background-color: rgba(255, 255, 255, 0.3);
57
- }
58
- }
59
-
60
- .gd-header-search {
61
- position: relative;
62
- box-sizing: border-box;
63
- padding-right: 34px;
64
-
65
- &:hover {
66
- background: rgba(255, 255, 255, 0.3);
67
- }
68
-
69
66
  &::after {
70
67
  content: "\e612";
71
68
  position: absolute;
@@ -83,9 +80,30 @@
83
80
  &.is-open::after {
84
81
  content: "\e613";
85
82
  }
83
+
84
+ &:hover {
85
+ background: rgba(255, 255, 255, 0.3);
86
+ }
87
+
88
+ &.is-open {
89
+ background-color: rgba(255, 255, 255, 0.3);
90
+ }
91
+
92
+ &-dropdown {
93
+ overflow: hidden;
94
+
95
+ .gd-list {
96
+ min-width: 210px;
97
+
98
+ .gd-list-item {
99
+ font-family: kit-variables.$gd-font-primary;
100
+ font-weight: 400;
101
+ }
102
+ }
103
+ }
86
104
  }
87
105
 
88
- .gd-icon-header-search {
106
+ .gd-icon-header-search-button {
89
107
  vertical-align: middle;
90
108
  opacity: 0.8;
91
109
  margin-right: 6px;
@@ -94,16 +112,3 @@
94
112
  content: "\e62b";
95
113
  }
96
114
  }
97
-
98
- .gd-header-search-dropdown {
99
- overflow: hidden;
100
-
101
- .gd-list {
102
- min-width: 210px;
103
-
104
- .gd-list-item {
105
- font-family: kit-variables.$gd-font-primary;
106
- font-weight: 400;
107
- }
108
- }
109
- }