@gooddata/sdk-ui-kit 11.52.0-alpha.4 → 11.52.0-alpha.6

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 (51) hide show
  1. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableBody.d.ts.map +1 -1
  2. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableBody.js +9 -6
  3. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableRow.d.ts.map +1 -1
  4. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableRow.js +13 -2
  5. package/esm/@ui/UiAsyncTable/UiAsyncTable/asyncTableGridContext.d.ts +4 -0
  6. package/esm/@ui/UiAsyncTable/UiAsyncTable/asyncTableGridContext.d.ts.map +1 -0
  7. package/esm/@ui/UiAsyncTable/UiAsyncTable/asyncTableGridContext.js +12 -0
  8. package/esm/@ui/UiCombobox/UiComboboxInput.d.ts +2 -0
  9. package/esm/@ui/UiCombobox/UiComboboxInput.d.ts.map +1 -1
  10. package/esm/@ui/UiCombobox/UiComboboxInput.js +2 -2
  11. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.d.ts.map +1 -1
  12. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.js +25 -22
  13. package/esm/@ui/UiMenu/types.d.ts +1 -0
  14. package/esm/@ui/UiMenu/types.d.ts.map +1 -1
  15. package/esm/@ui/UiTextInput/UiTextInput.d.ts +3 -1
  16. package/esm/@ui/UiTextInput/UiTextInput.d.ts.map +1 -1
  17. package/esm/@ui/UiTextInput/UiTextInput.js +2 -2
  18. package/esm/Datepicker/Datepicker.d.ts +3 -52
  19. package/esm/Datepicker/Datepicker.d.ts.map +1 -1
  20. package/esm/Datepicker/Datepicker.js +142 -180
  21. package/esm/Dialog/StylingEditorDialog/StylingEditorDialog.d.ts +9 -0
  22. package/esm/Dialog/StylingEditorDialog/StylingEditorDialog.d.ts.map +1 -1
  23. package/esm/Dialog/StylingEditorDialog/StylingEditorDialog.js +33 -28
  24. package/esm/Dropdown/DropdownButton.d.ts.map +1 -1
  25. package/esm/Dropdown/DropdownButton.js +5 -0
  26. package/esm/Form/InputWithNumberFormat.d.ts +0 -1
  27. package/esm/Form/InputWithNumberFormat.d.ts.map +1 -1
  28. package/esm/Form/InputWithNumberFormat.js +12 -18
  29. package/esm/Header/Header.d.ts.map +1 -1
  30. package/esm/Header/Header.js +2 -2
  31. package/esm/Header/HeaderChatButton.d.ts +9 -1
  32. package/esm/Header/HeaderChatButton.d.ts.map +1 -1
  33. package/esm/Header/HeaderChatButton.js +12 -1
  34. package/esm/Header/typings.d.ts +5 -0
  35. package/esm/Header/typings.d.ts.map +1 -1
  36. package/esm/Header/typings.js +1 -1
  37. package/esm/Timezone/TimezoneSelect.d.ts +10 -2
  38. package/esm/Timezone/TimezoneSelect.d.ts.map +1 -1
  39. package/esm/Timezone/TimezoneSelect.js +4 -3
  40. package/esm/index.d.ts +1 -1
  41. package/esm/index.d.ts.map +1 -1
  42. package/esm/index.js +1 -1
  43. package/esm/sdk-ui-kit.d.ts +37 -2
  44. package/package.json +11 -11
  45. package/src/@ui/UiMenu/UiMenu.scss +1 -1
  46. package/src/@ui/UiTextInput/UiTextInput.scss +7 -0
  47. package/styles/css/main.css +7 -1
  48. package/styles/css/main.css.map +1 -1
  49. package/styles/css/stylingEditorDialog.css +3 -0
  50. package/styles/css/stylingEditorDialog.css.map +1 -1
  51. package/styles/scss/stylingEditorDialog.scss +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"UiAsyncTableBody.d.ts","sourceRoot":"","sources":["../../../../src/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableBody.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAK1D,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,EACzE,KAAK,EACL,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,OAAO,EACP,WAAW,EACX,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,UAAU,EACb,EAAE,sBAAsB,CAAC,CAAC,CAAC,2CAoD3B"}
1
+ {"version":3,"file":"UiAsyncTableBody.d.ts","sourceRoot":"","sources":["../../../../src/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableBody.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAM1D,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,EACzE,KAAK,EACL,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,OAAO,EACP,WAAW,EACX,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,UAAU,EACb,EAAE,sBAAsB,CAAC,CAAC,CAAC,2CAyD3B"}
@@ -4,10 +4,12 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
  import { isEnterKey } from "../../../utils/events.js";
5
5
  import { makeGridKeyboardNavigation } from "../../@utils/keyboardNavigation.js";
6
6
  import { UiPagedVirtualList } from "../../UiPagedVirtualList/UiPagedVirtualList.js";
7
+ import { AsyncTableGridRefProvider } from "./asyncTableGridContext.js";
7
8
  import { useSkeletonItem } from "./SkeletonItemFactory.js";
8
9
  import { getCellId, getItemKey, getRowId } from "./utils.js";
9
10
  export function UiAsyncTableBody({ items, maxHeight, itemHeight, skeletonItemsCount, hasNextPage, isLoading, onItemClick, loadNextPage, columns, bulkActions, scrollToIndex, isLargeRow, shouldLoadNextPage, renderItem, }) {
10
11
  const SkeletonItem = useSkeletonItem(columns, bulkActions, isLargeRow ?? false);
12
+ const gridRef = useRef(null);
11
13
  const { handleKeyDown, handleFocus, focusedRowIndex, focusedColumnIndex, focusedItemRef } = useAsyncTableBodyKeyboardNavigation(items.length, columns.length, !!bulkActions, scrollToIndex);
12
14
  const activeDescendantId = useMemo(() => {
13
15
  if (focusedRowIndex === undefined || focusedRowIndex < 0 || focusedRowIndex >= items.length) {
@@ -19,12 +21,13 @@ export function UiAsyncTableBody({ items, maxHeight, itemHeight, skeletonItemsCo
19
21
  }
20
22
  return getRowId(itemId);
21
23
  }, [focusedRowIndex, focusedColumnIndex, items]);
22
- return (_jsx(UiPagedVirtualList, { maxHeight: maxHeight, itemHeight: itemHeight, itemsGap: 0, itemPadding: 0, items: items, skeletonItemsCount: skeletonItemsCount, hasNextPage: hasNextPage, isLoading: isLoading, onKeyDownSelect: onItemClick, loadNextPage: loadNextPage, SkeletonItem: SkeletonItem, scrollbarHoverEffect: true, scrollToIndex: scrollToIndex ?? focusedRowIndex, shouldLoadNextPage: shouldLoadNextPage, tabIndex: items.length ? 0 : -1, customKeyboardNavigationHandler: handleKeyDown, onFocus: handleFocus, listboxProps: {
23
- "aria-activedescendant": activeDescendantId,
24
- }, children: (item, focusedIndex) => {
25
- const itemIndex = focusedIndex ?? 0;
26
- return renderItem(item, itemIndex, focusedItemRef, itemIndex === focusedRowIndex, focusedColumnIndex);
27
- } }));
24
+ return (_jsx(AsyncTableGridRefProvider, { value: gridRef, children: _jsx(UiPagedVirtualList, { maxHeight: maxHeight, itemHeight: itemHeight, itemsGap: 0, itemPadding: 0, items: items, skeletonItemsCount: skeletonItemsCount, hasNextPage: hasNextPage, isLoading: isLoading, onKeyDownSelect: onItemClick, loadNextPage: loadNextPage, SkeletonItem: SkeletonItem, scrollbarHoverEffect: true, scrollToIndex: scrollToIndex ?? focusedRowIndex, shouldLoadNextPage: shouldLoadNextPage, tabIndex: items.length ? 0 : -1, customKeyboardNavigationHandler: handleKeyDown, onFocus: handleFocus, listboxProps: {
25
+ "aria-activedescendant": activeDescendantId,
26
+ ref: gridRef,
27
+ }, children: (item, focusedIndex) => {
28
+ const itemIndex = focusedIndex ?? 0;
29
+ return renderItem(item, itemIndex, focusedItemRef, itemIndex === focusedRowIndex, focusedColumnIndex);
30
+ } }) }));
28
31
  }
29
32
  const useAsyncTableBodyKeyboardNavigation = (rowsLength, definedColumnsLength, hasBulkActions, scrollToIndex) => {
30
33
  const [focusedRowIndex, setFocusedRowIndex] = useState(undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"UiAsyncTableRow.d.ts","sourceRoot":"","sources":["../../../../src/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableRow.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,OAAO,EAGH,KAAK,qBAAqB,EAE7B,MAAM,aAAa,CAAC;AAOrB,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,EACxE,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACV,WAAW,EACX,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACtB,EAAE,qBAAqB,CAAC,CAAC,CAAC,2CA4E1B"}
1
+ {"version":3,"file":"UiAsyncTableRow.d.ts","sourceRoot":"","sources":["../../../../src/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableRow.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,OAAO,EAGH,KAAK,qBAAqB,EAE7B,MAAM,aAAa,CAAC;AAQrB,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,EACxE,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACV,WAAW,EACX,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACtB,EAAE,qBAAqB,CAAC,CAAC,CAAC,2CA4E1B"}
@@ -4,6 +4,7 @@ import { useCallback } from "react";
4
4
  import { Dropdown } from "../../../Dropdown/Dropdown.js";
5
5
  import { UiIconButton } from "../../UiIconButton/UiIconButton.js";
6
6
  import { e } from "../asyncTableBem.js";
7
+ import { useAsyncTableGridRef } from "./asyncTableGridContext.js";
7
8
  import { UiAsyncTableCheckbox } from "./UiAsyncTableCheckbox.js";
8
9
  import { UiAsyncTableIconRenderer } from "./UiAsyncTableIconRenderer.js";
9
10
  import { getCellId, getColumnWidth, getItemKey, getRowId, getRowLabelId } from "./utils.js";
@@ -43,6 +44,16 @@ export function UiAsyncTableRow({ item, itemIndex, columns, onSelect, onClick, i
43
44
  })] }));
44
45
  }
45
46
  const useRenderCellContent = ({ isLarge, }) => {
47
+ const gridRef = useAsyncTableGridRef();
48
+ // Put focus back on the grid before the menu closes. Callers routinely close the menu and open a
49
+ // dialog in the same tick (flushSync(closeDropdown) then setState); that dialog captures whatever is
50
+ // focused as its own return target, and the dropdown's restore is deferred to a microtask, so it would
51
+ // land after the snapshot was taken and the dialog would return focus to <body> - i.e. the page top.
52
+ // Restoring here keeps it synchronous, and the deferred restore then correctly sees nothing to do.
53
+ const closeMenuAndRestoreFocus = useCallback((closeDropdown) => {
54
+ gridRef?.current?.focus();
55
+ closeDropdown();
56
+ }, [gridRef]);
46
57
  const renderRoleIconWithWrapper = useCallback((renderRoleIcon, item) => {
47
58
  return (_jsx(UiAsyncTableIconRenderer, { renderIcon: renderRoleIcon, className: e("role-icon"), item: item }));
48
59
  }, []);
@@ -64,8 +75,8 @@ const useRenderCellContent = ({ isLarge, }) => {
64
75
  ariaExpanded: isOpen,
65
76
  ariaLabel: label,
66
77
  }, ref: isCellFocused ? focusedElementRef : undefined }));
67
- }, alignPoints: [{ align: "br tr" }, { align: "tr br" }], renderBody: ({ closeDropdown }) => renderMenu(item, closeDropdown) }));
68
- }, [isLarge]);
78
+ }, alignPoints: [{ align: "br tr" }, { align: "tr br" }], renderBody: ({ closeDropdown }) => renderMenu(item, () => closeMenuAndRestoreFocus(closeDropdown)) }));
79
+ }, [isLarge, closeMenuAndRestoreFocus]);
69
80
  const renderTextContent = useCallback((item, key, labelId, getTextContent, getMultiLineTextContent, renderSuffixIcon) => {
70
81
  if (getMultiLineTextContent) {
71
82
  return getMultiLineTextContent(item).map((line, index) => {
@@ -0,0 +1,4 @@
1
+ import { type RefObject } from "react";
2
+ export declare const AsyncTableGridRefProvider: import("react").Provider<RefObject<HTMLElement | null> | null>;
3
+ export declare const useAsyncTableGridRef: () => RefObject<HTMLElement | null> | null;
4
+ //# sourceMappingURL=asyncTableGridContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncTableGridContext.d.ts","sourceRoot":"","sources":["../../../../src/@ui/UiAsyncTable/UiAsyncTable/asyncTableGridContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAA6B,MAAM,OAAO,CAAC;AAWlE,eAAO,MAAM,yBAAyB,gEAAoC,CAAC;AAE3E,eAAO,MAAM,oBAAoB,4CAA6C,CAAC"}
@@ -0,0 +1,12 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { createContext, useContext } from "react";
3
+ /**
4
+ * Ref to the grid element that holds the table's real DOM focus.
5
+ *
6
+ * The table is a composite widget: the grid is its single tab stop and the active row/cell is tracked
7
+ * virtually via aria-activedescendant (row controls are kept out of the tab order). Layers opened from a
8
+ * row therefore return focus here rather than to the control that opened them.
9
+ */
10
+ const AsyncTableGridRefContext = createContext(null);
11
+ export const AsyncTableGridRefProvider = AsyncTableGridRefContext.Provider;
12
+ export const useAsyncTableGridRef = () => useContext(AsyncTableGridRefContext);
@@ -10,6 +10,8 @@ export interface IUiComboboxInputProps {
10
10
  accessibilityConfig?: IAccessibilityConfigBase;
11
11
  /** Visible placeholder. */
12
12
  placeholder?: string;
13
+ /** Marks the field invalid: error-colored border plus `aria-invalid`. */
14
+ isError?: boolean;
13
15
  /** Form field name forwarded to the underlying input. */
14
16
  name?: string;
15
17
  autoFocus?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"UiComboboxInput.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiCombobox/UiComboboxInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EAIlB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAK/E,gBAAgB;AAChB,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,oHAsF3B,CAAC"}
1
+ {"version":3,"file":"UiComboboxInput.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiCombobox/UiComboboxInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EAIlB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAK/E,gBAAgB;AAChB,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,oHAwF3B,CAAC"}
@@ -10,7 +10,7 @@ import { useComboboxState } from "./UiComboboxContext.js";
10
10
  * @internal
11
11
  */
12
12
  export const UiComboboxInput = forwardRef(function UiComboboxInput(props, forwardedRef) {
13
- const { accessibilityConfig, placeholder, name, autoFocus, onKeyDown: callerOnKeyDown, onFocus: callerOnFocus, onBlur: callerOnBlur, onClick: callerOnClick, dataTestId, } = props;
13
+ const { accessibilityConfig, placeholder, isError, name, autoFocus, onKeyDown: callerOnKeyDown, onFocus: callerOnFocus, onBlur: callerOnBlur, onClick: callerOnClick, dataTestId, } = props;
14
14
  const { inputValue, onInputChange, onInputKeyDown, onInputBlur, isOpen, setIsOpen, anchorRef, activeOption, listboxId, } = useComboboxState();
15
15
  const handleKeyDown = useCallback((event) => {
16
16
  onInputKeyDown(event);
@@ -29,7 +29,7 @@ export const UiComboboxInput = forwardRef(function UiComboboxInput(props, forwar
29
29
  setIsOpen(!isOpen);
30
30
  callerOnClick?.(event);
31
31
  }, [isOpen, setIsOpen, callerOnClick]);
32
- return (_jsx(UiTextInput, { inputRef: forwardedRef, wrapperRef: anchorRef, value: inputValue, onChange: onInputChange, name: name, placeholder: placeholder, autoFocus: autoFocus,
32
+ return (_jsx(UiTextInput, { inputRef: forwardedRef, wrapperRef: anchorRef, value: inputValue, onChange: onInputChange, name: name, placeholder: placeholder, isError: isError, autoFocus: autoFocus,
33
33
  // Browser autofill would overlap the listbox; the combobox
34
34
  // owns its own typeahead so we suppress all native suggestions.
35
35
  autoComplete: "off", autoCapitalize: "none", autoCorrect: "off", dataTestId: dataTestId, onKeyDown: handleKeyDown, onFocus: callerOnFocus, onBlur: handleBlur, onClick: handleClick, accessibilityConfig: {
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultUiMenuInteractiveItem.d.ts","sourceRoot":"","sources":["../../../../../src/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuC,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AASnG,OAAO,EAEH,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,eAAe,EACvB,MAAM,gBAAgB,CAAC;AAUxB;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,EAAE,EACpF,IAAI,EACP,EAAE,kCAAkC,CAAC,CAAC,CAAC,GAAG,SAAS,CAiHnD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,EAAE,EAC7E,IAAI,EACJ,SAAS,EACT,aAAa,EAChB,EAAE,2BAA2B,CAAC,CAAC,CAAC,GAAG,SAAS,CAoC5C"}
1
+ {"version":3,"file":"DefaultUiMenuInteractiveItem.d.ts","sourceRoot":"","sources":["../../../../../src/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuC,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AASnG,OAAO,EAEH,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,eAAe,EACvB,MAAM,gBAAgB,CAAC;AAmBxB;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,EAAE,EACpF,IAAI,EACP,EAAE,kCAAkC,CAAC,CAAC,CAAC,GAAG,SAAS,CAsGnD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,EAAE,EAC7E,IAAI,EACJ,SAAS,EACT,aAAa,EAChB,EAAE,2BAA2B,CAAC,CAAC,CAAC,GAAG,SAAS,CAoD5C"}
@@ -7,9 +7,18 @@ import { useCloseOnEscape } from "../../../hooks/useCloseOnEscape.js";
7
7
  import { UiTooltip } from "../../../UiTooltip/UiTooltip.js";
8
8
  import { typedUiMenuContextStore } from "../../context.js";
9
9
  import { e } from "../../menuBem.js";
10
- function getTooltipId(item, makeItemId) {
11
- const itemId = makeItemId(item);
12
- return item.tooltip && itemId ? `${itemId}__tooltip` : undefined;
10
+ function hasIconTooltip(item) {
11
+ return !!item.tooltip && !!item.iconRight;
12
+ }
13
+ function getItemRole(selectionRole) {
14
+ switch (selectionRole) {
15
+ case "radio":
16
+ return "menuitemradio";
17
+ case "checkbox":
18
+ return "menuitemcheckbox";
19
+ default:
20
+ return "menuitem";
21
+ }
13
22
  }
14
23
  /**
15
24
  * @internal
@@ -50,7 +59,7 @@ export function DefaultUiMenuInteractiveItemWrapper({ item, }) {
50
59
  }
51
60
  }
52
61
  const isTooltipOpen = !!item.tooltip && isKeyboardFocused && !isDismissed;
53
- useCloseOnEscape(isTooltipOpen, () => setIsDismissed(true), true);
62
+ useCloseOnEscape(isTooltipOpen && !hasIconTooltip(item), () => setIsDismissed(true), true);
54
63
  const handleMouseFocus = useCallback(() => {
55
64
  if (controlType !== "mouse") {
56
65
  return;
@@ -69,27 +78,21 @@ export function DefaultUiMenuInteractiveItemWrapper({ item, }) {
69
78
  isDestructive: !!item.isDestructive,
70
79
  }), typeof itemClassName === "function" ? itemClassName(item) : itemClassName);
71
80
  const dataTestId = typeof itemDataTestId === "function" ? itemDataTestId(item) : itemDataTestId;
72
- const tooltipId = getTooltipId(item, makeItemId);
73
- // Only link while open — the sr-only copy it points to is empty otherwise.
74
- return (_jsx("li", { ref: scrollToItem, role: "menuitem", ...item.ariaAttributes, "aria-haspopup": item.subItems ? "menu" : item.ariaAttributes?.["aria-haspopup"], "aria-disabled": item.isDisabled, "aria-label": item.tooltip
75
- ? (item.ariaAttributes?.["aria-label"] ?? item.stringTitle)
76
- : item.ariaAttributes?.["aria-label"], "aria-describedby": isTooltipOpen
77
- ? [tooltipId, item.ariaAttributes?.["aria-describedby"]].filter(Boolean).join(" ") ||
78
- undefined
79
- : item.ariaAttributes?.["aria-describedby"], onMouseMove: handleMouseFocus, onClick: item.isDisabled ? undefined : handleSelect, tabIndex: -1, id: makeItemId(item), className: classNames, "data-testid": dataTestId, children: _jsx(InteractiveItemComponent, { item: item, isFocused: isFocused, isTooltipOpen: isTooltipOpen }) }));
81
+ return (_jsx("li", { ref: scrollToItem, ...item.ariaAttributes, role: getItemRole(item.selectionRole), "aria-checked": item.selectionRole ? !!item.isSelected : item.ariaAttributes?.["aria-checked"], "aria-haspopup": item.subItems ? "menu" : item.ariaAttributes?.["aria-haspopup"], "aria-disabled": item.isDisabled, "aria-label": item.ariaAttributes?.["aria-label"], onMouseMove: handleMouseFocus, onClick: item.isDisabled ? undefined : handleSelect, tabIndex: -1, id: makeItemId(item), className: classNames, "data-testid": dataTestId, children: _jsx(InteractiveItemComponent, { item: item, isFocused: isFocused, isTooltipOpen: isTooltipOpen }) }));
80
82
  }
81
83
  /**
82
84
  * @internal
83
85
  */
84
86
  export function DefaultUiMenuInteractiveItem({ item, isFocused, isTooltipOpen, }) {
85
- const { useContextStore, createSelector } = typedUiMenuContextStore();
86
- const selector = createSelector((ctx) => ({ makeItemId: ctx.makeItemId }));
87
- const { makeItemId } = useContextStore(selector);
88
- const tooltipId = getTooltipId(item, makeItemId);
89
- return (_jsx(UiTooltip, { id: tooltipId, anchor: _jsxs("div", { className: e("item", {
90
- isFocused,
91
- isSelected: !!item.isSelected,
92
- isDisabled: !!item.isDisabled,
93
- isDestructive: !!item.isDestructive,
94
- }), children: [item.iconLeft ? item.iconLeft : null, _jsx(ShortenedText, { className: e("item-title"), ellipsisPosition: "end", children: item.stringTitle }), !!item.subItems && _jsx("i", { className: "gd-icon-navigateright" }), item.iconRight ? item.iconRight : null] }), content: item.tooltip, disabled: !item.tooltip, optimalPlacement: true, isOpen: isTooltipOpen ? true : undefined, triggerBy: ["hover"], arrowPlacement: "left", width: item.tooltipWidth }));
87
+ const useIconTooltip = hasIconTooltip(item);
88
+ const itemInner = (_jsxs("div", { className: e("item", {
89
+ isFocused,
90
+ isSelected: !!item.isSelected,
91
+ isDisabled: !!item.isDisabled,
92
+ isDestructive: !!item.isDestructive,
93
+ }), children: [item.iconLeft ? item.iconLeft : null, _jsx(ShortenedText, { className: e("item-title"), ellipsisPosition: "end", children: item.stringTitle }), !!item.subItems && _jsx("i", { className: "gd-icon-navigateright" }), useIconTooltip ? (_jsx(UiTooltip, { anchor: item.iconRight, content: item.tooltip, optimalPlacement: true, triggerBy: ["hover"], inlineAnchor: true, accessibilityHidden: true, arrowPlacement: "bottom-end", width: item.tooltipWidth })) : item.iconRight ? (item.iconRight) : null, item.tooltip ? _jsx("span", { className: "sr-only", children: item.tooltip }) : null] }));
94
+ if (!item.tooltip) {
95
+ return itemInner;
96
+ }
97
+ return (_jsx(UiTooltip, { anchor: itemInner, content: item.tooltip, optimalPlacement: true, isOpen: useIconTooltip ? isTooltipOpen : isTooltipOpen || undefined, triggerBy: useIconTooltip ? [] : ["hover"], accessibilityHidden: true, arrowPlacement: "left", width: item.tooltipWidth }));
95
98
  }
@@ -34,6 +34,7 @@ export type IUiMenuInteractiveItem<T extends IUiMenuItemData = object> = {
34
34
  stringTitle: string;
35
35
  isDisabled?: boolean;
36
36
  isSelected?: boolean;
37
+ selectionRole?: "radio" | "checkbox";
37
38
  isDestructive?: boolean;
38
39
  tooltip?: ReactNode;
39
40
  tooltipWidth?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiMenu/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiMenu/types.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,cAAc,EACtB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;KAAG,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO;CAAE,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,IAAI;IAChE,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;CACrB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,IAAI;IACrE,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,IAAI;IAC/D,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACjB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,IAAI;IACjE,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;QACrB,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,OAAO,EAAE,MAAM,IAAI,CAAC;KACvB,CAAC,CAAC;CACN,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,IACpD,iBAAiB,CAAC,CAAC,CAAC,GACpB,oBAAoB,GACpB,sBAAsB,CAAC,CAAC,CAAC,GACzB,gBAAgB,CAAC,CAAC,CAAC,GACnB,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,IAC7D,sBAAsB,CAAC,CAAC,CAAC,GACzB,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM;IAChE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM;IAClF,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM;IAC9E,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM;IAC3E,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAEhC,SAAS,EAAE,OAAO,CAAC;IAEnB,sGAAsG;IACtG,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM;IACrE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM;IACtE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM;IACvE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM;IACnE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,0BAA0B,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM;IAC1E,eAAe,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,sBAAsB,EAAE,aAAa,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,SAAS,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,UAAU,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,kBAAkB,EAAE,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,WAAW,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,UAAU,EAAE,aAAa,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAC3B,CAAC,SAAS,eAAe,GAAG,MAAM,EAClC,CAAC,GAAG,MAAM,CACZ,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IACnC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACjD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,2BAA2B,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC1E,gBAAgB,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,KAAK,IAAI,CAAC;IACjG,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,KAAK,OAAO,CAAC;IACzG,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,KAAK,OAAO,CAAC;IACzG,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC3D,eAAe,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IACnD,WAAW,EAAE,kBAAkB,CAAC;IAChC,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC7D,oGAAoG;IACpG,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACzD;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;IACxE,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;IACzE,aAAa,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,gBAAgB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACzC,iBAAiB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,CAAE,SAAQ,OAAO,CACzF,0BAA0B,CAAC,CAAC,CAAC,CAChC;IACG,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAExB,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAE9B,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;IAE3E,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;IAEzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;IAE1E,sBAAsB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAElD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,KAAK,IAAI,CAAC;IACxF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,KAAK,OAAO,CAAC;IACzG,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,KAAK,OAAO,CAAC;IACzG,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAClG,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAEhF,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,mCAAmC,CAAC,EAAE,OAAO,CAAC;IAC9C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,cAAc,EAAE,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC;IAEzE,WAAW,CAAC,EAAE,CAAC,CAAC;CACnB"}
@@ -41,6 +41,8 @@ export interface IUiTextInputProps {
41
41
  onIconAfter?: IUiTextInputIconAfterButton;
42
42
  /** Accessibility config forwarded to the input element. */
43
43
  accessibilityConfig?: IAccessibilityConfigBase;
44
+ /** Marks the field invalid: error-colored border plus `aria-invalid`. */
45
+ isError?: boolean;
44
46
  disabled?: boolean;
45
47
  autoFocus?: boolean;
46
48
  /** Forwarded to the input element. Use for autocomplete / combobox patterns. */
@@ -72,5 +74,5 @@ export interface IUiTextInputProps {
72
74
  *
73
75
  * @internal
74
76
  */
75
- export declare function UiTextInput({ type, value, onChange, label, placeholder, iconBefore, iconAfter, onIconAfter, accessibilityConfig, disabled, autoFocus, onKeyDown, onFocus, onBlur, onClick, dataTestId, inputRef, wrapperRef, name, autoComplete, autoCapitalize, autoCorrect }: IUiTextInputProps): import("react/jsx-runtime").JSX.Element;
77
+ export declare function UiTextInput({ type, value, onChange, label, placeholder, iconBefore, iconAfter, onIconAfter, accessibilityConfig, isError, disabled, autoFocus, onKeyDown, onFocus, onBlur, onClick, dataTestId, inputRef, wrapperRef, name, autoComplete, autoCapitalize, autoCorrect }: IUiTextInputProps): import("react/jsx-runtime").JSX.Element;
76
78
  //# sourceMappingURL=UiTextInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiTextInput.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiTextInput/UiTextInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,GAAG,EAEX,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAOlD;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IACxC,uCAAuC;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,sBAAsB;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IAC3C,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,mFAAmF;IACnF,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,SAAS,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACnD,sCAAsC;IACtC,OAAO,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,sCAAsC;IACtC,MAAM,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,sCAAsC;IACtC,OAAO,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACjC,yFAAyF;IACzF,UAAU,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EACxB,IAAa,EACb,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,QAAgB,EAChB,SAAiB,EACjB,SAAS,EACT,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,WAAW,EACd,EAAE,iBAAiB,2CA4DnB"}
1
+ {"version":3,"file":"UiTextInput.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiTextInput/UiTextInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,GAAG,EAEX,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAOlD;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IACxC,uCAAuC;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,sBAAsB;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IAC3C,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,mFAAmF;IACnF,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,SAAS,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACnD,sCAAsC;IACtC,OAAO,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,sCAAsC;IACtC,MAAM,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,sCAAsC;IACtC,OAAO,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACjC,yFAAyF;IACzF,UAAU,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EACxB,IAAa,EACb,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,OAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,SAAS,EACT,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,WAAW,EACd,EAAE,iBAAiB,2CA6DnB"}
@@ -13,12 +13,12 @@ const { b, e } = bem("gd-ui-kit-text-input");
13
13
  *
14
14
  * @internal
15
15
  */
16
- export function UiTextInput({ type = "text", value, onChange, label, placeholder, iconBefore, iconAfter, onIconAfter, accessibilityConfig, disabled = false, autoFocus = false, onKeyDown, onFocus, onBlur, onClick, dataTestId, inputRef, wrapperRef, name, autoComplete, autoCapitalize, autoCorrect, }) {
16
+ export function UiTextInput({ type = "text", value, onChange, label, placeholder, iconBefore, iconAfter, onIconAfter, accessibilityConfig, isError = false, disabled = false, autoFocus = false, onKeyDown, onFocus, onBlur, onClick, dataTestId, inputRef, wrapperRef, name, autoComplete, autoCapitalize, autoCorrect, }) {
17
17
  const id = useId();
18
18
  const { ariaLabel, ...restA11y } = accessibilityConfig ?? {};
19
19
  // When a visible <label> is present, the label provides the accessible name;
20
20
  // forwarding aria-label would override it (WCAG name-in-name mismatch).
21
21
  const inputA11y = label ? restA11y : { ...restA11y, ariaLabel };
22
- return (_jsxs("div", { ref: wrapperRef, className: b(), children: [label ? (_jsx("label", { className: e("label"), htmlFor: id, children: label })) : null, _jsxs("div", { className: e("field", { disabled }), children: [iconBefore ? (_jsx("span", { className: e("icon-before"), children: _jsx(UiIcon, { type: iconBefore, size: 14, color: "complementary-6" }) })) : null, _jsx("input", { ref: inputRef, id: id, name: name, type: type, className: e("input"), value: value, placeholder: placeholder, disabled: disabled, autoFocus: autoFocus, autoComplete: autoComplete, autoCapitalize: autoCapitalize, autoCorrect: autoCorrect, "data-testid": dataTestId, onChange: (event) => onChange(event.target.value), onKeyDown: onKeyDown, onFocus: onFocus, onBlur: onBlur, onClick: onClick, ...accessibilityConfigToAttributes(inputA11y) }), onIconAfter ? (_jsx("span", { className: e("icon-after"), children: _jsx(UiIconButton, { icon: onIconAfter.icon, size: "xsmall", variant: "tertiary", onClick: onIconAfter.onClick, isDisabled: disabled, label: onIconAfter.ariaLabel, iconColor: "complementary-6" }) })) : iconAfter ? (_jsx("span", { className: e("icon-after"), children: _jsx(UiIcon, { type: iconAfter, size: 14, color: "complementary-6" }) })) : null] })
22
+ return (_jsxs("div", { ref: wrapperRef, className: b(), children: [label ? (_jsx("label", { className: e("label"), htmlFor: id, children: label })) : null, _jsxs("div", { className: e("field", { disabled, error: isError }), children: [iconBefore ? (_jsx("span", { className: e("icon-before"), children: _jsx(UiIcon, { type: iconBefore, size: 14, color: "complementary-6" }) })) : null, _jsx("input", { ref: inputRef, id: id, name: name, type: type, className: e("input"), value: value, placeholder: placeholder, disabled: disabled, autoFocus: autoFocus, autoComplete: autoComplete, autoCapitalize: autoCapitalize, autoCorrect: autoCorrect, "data-testid": dataTestId, onChange: (event) => onChange(event.target.value), onKeyDown: onKeyDown, onFocus: onFocus, onBlur: onBlur, onClick: onClick, "aria-invalid": isError || undefined, ...accessibilityConfigToAttributes(inputA11y) }), onIconAfter ? (_jsx("span", { className: e("icon-after"), children: _jsx(UiIconButton, { icon: onIconAfter.icon, size: "xsmall", variant: "tertiary", onClick: onIconAfter.onClick, isDisabled: disabled, label: onIconAfter.ariaLabel, iconColor: "complementary-6" }) })) : iconAfter ? (_jsx("span", { className: e("icon-after"), children: _jsx(UiIcon, { type: iconAfter, size: 14, color: "complementary-6" }) })) : null] })
23
23
  ] }));
24
24
  }
@@ -1,4 +1,4 @@
1
- import { PureComponent, type KeyboardEvent as ReactKeyboardEvent, type ReactNode } from "react";
1
+ import { PureComponent, type KeyboardEvent as ReactKeyboardEvent } from "react";
2
2
  import { type WrappedComponentProps } from "react-intl";
3
3
  import { type WeekStart } from "@gooddata/sdk-model";
4
4
  import { type IAccessibilityConfigBase } from "../typings/accessibility.js";
@@ -25,58 +25,9 @@ export interface IDatePickerOwnProps {
25
25
  onDateInputKeyDown?: (e: ReactKeyboardEvent<HTMLInputElement>) => void;
26
26
  }
27
27
  export type DatePickerProps = IDatePickerOwnProps & WrappedComponentProps;
28
- interface IDatePickerState {
29
- align: string;
30
- selectedDate: Date | undefined;
31
- monthDate: Date | undefined;
32
- isOpen: boolean;
33
- inputValue: string;
34
- }
35
28
  export declare function parseDate(str: string, dateFormat: string): Date | undefined;
36
- export declare class WrappedDatePicker extends PureComponent<DatePickerProps, IDatePickerState> {
37
- private rootRef;
38
- private datePickerContainerRef;
39
- private inputRef;
40
- private datePickerId;
41
- static defaultProps: {
42
- className: string;
43
- date: Date;
44
- placeholder: string;
45
- onChange: () => void;
46
- onBlur: () => void;
47
- resetOnInvalidValue: boolean;
48
- size: string;
49
- tabIndex: number;
50
- alignPoints: {
51
- align: string;
52
- }[];
53
- onAlign: () => void;
54
- dateFormat: string;
55
- weekStart: "Sunday";
56
- };
57
- constructor(props: DatePickerProps);
58
- componentDidMount(): void;
59
- UNSAFE_componentWillReceiveProps(nextProps: DatePickerProps): void;
60
- componentWillUnmount(): void;
61
- private handleClickOutside;
62
- componentDidUpdate(_prevProps: DatePickerProps, prevState: IDatePickerState): void;
63
- private setComponentRef;
64
- private getInputClasses;
65
- private getComponentClasses;
66
- private getOverlayWrapperClasses;
67
- resizeHandler: import("lodash-es").DebouncedFunc<() => void>;
68
- private updateDate;
69
- private handleInputBlur;
70
- private handleInputChanged;
71
- private handleDayChanged;
72
- private handleMonthChanged;
73
- private handleCustomDayClick;
74
- private normalizeDate;
75
- private alignDatePicker;
76
- private onKeyDown;
77
- private handleWrapperClick;
78
- render(): ReactNode;
79
- }
29
+ declare function WrappedDatePickerCore({ accessibilityConfig, date: dateProp, className, placeholder, onChange, onBlur, onValidateInput, resetOnInvalidValue, size, tabIndex, alignPoints: alignPointsProp, onAlign, dateFormat: dateFormatProp, weekStart: weekStartProp, onDateInputKeyDown, intl }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare const WrappedDatePicker: import("react").MemoExoticComponent<typeof WrappedDatePickerCore>;
80
31
  /**
81
32
  * @internal
82
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Datepicker.d.ts","sourceRoot":"","sources":["../../src/Datepicker/Datepicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Datepicker.d.ts","sourceRoot":"","sources":["../../src/Datepicker/Datepicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGH,aAAa,EACb,KAAK,aAAa,IAAI,kBAAkB,EAS3C,MAAM,OAAO,CAAC;AA+Bf,OAAO,EAAE,KAAK,qBAAqB,EAAc,MAAM,YAAY,CAAC;AAGpE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIrD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAO7D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC1E;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAuC1E,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAuB3E;AA2BD,iBAAS,qBAAqB,CAAC,EAC3B,mBAAmB,EACnB,IAAI,EAAE,QAAQ,EACd,SAAc,EACd,WAAgB,EAChB,QAAQ,EACR,MAAM,EACN,eAAe,EACf,mBAA2B,EAC3B,IAAS,EACT,QAAY,EACZ,WAAW,EAAE,eAAe,EAC5B,OAAO,EACP,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,aAAa,EACxB,kBAAkB,EAClB,IAAI,EACP,EAAE,eAAe,2CAqQjB;AAED,eAAO,MAAM,iBAAiB,mEAA8B,CAAC;AAK7D;;GAEG;AACH,qBAAa,UAAW,SAAQ,aAAa,CAAC,mBAAmB,CAAC;IAC9C,MAAM,4CAMrB;CACJ"}