@hazelcast/ui 3.0.13 → 4.0.1-canary.10

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 (240) hide show
  1. package/README.md +1 -29
  2. package/lib/components/Alert.js +2 -2
  3. package/lib/components/Alert.js.map +1 -1
  4. package/lib/components/AppHeader/AppHeaderMenu/AppHeaderMenu.js +1 -1
  5. package/lib/components/AppHeader/AppHeaderMenu/AppHeaderMenu.js.map +1 -1
  6. package/lib/components/AppHeader/SelectCluster/SelectCluster.js +1 -1
  7. package/lib/components/AppHeader/SelectCluster/SelectCluster.js.map +1 -1
  8. package/lib/components/AppSidebar/AppSidebar.js +1 -1
  9. package/lib/components/AppSidebar/AppSidebar.js.map +1 -1
  10. package/lib/components/AppSidebar/AppSidebarFavoriteButton/AppSidebarFavoriteButton.js +1 -1
  11. package/lib/components/AppSidebar/AppSidebarFavoriteButton/AppSidebarFavoriteButton.js.map +1 -1
  12. package/lib/components/AppSidebar/AppSidebarItem/AppSidebarItem.d.ts +1 -3
  13. package/lib/components/AppSidebar/AppSidebarItem/AppSidebarItem.js +11 -10
  14. package/lib/components/AppSidebar/AppSidebarItem/AppSidebarItem.js.map +1 -1
  15. package/lib/components/AutocompleteField.d.ts +1 -3
  16. package/lib/components/AutocompleteField.js +4 -5
  17. package/lib/components/AutocompleteField.js.map +1 -1
  18. package/lib/components/AutocompleteField.module.css +183 -0
  19. package/lib/components/Badge.d.ts +1 -2
  20. package/lib/components/Badge.js +3 -7
  21. package/lib/components/Badge.js.map +1 -1
  22. package/lib/components/Badge.module.scss +18 -29
  23. package/lib/components/Button.d.ts +10 -33
  24. package/lib/components/Button.js +31 -51
  25. package/lib/components/Button.js.map +1 -1
  26. package/lib/components/Button.module.css +188 -0
  27. package/lib/components/ButtonGroup.d.ts +10 -0
  28. package/lib/components/ButtonGroup.js +6 -0
  29. package/lib/components/ButtonGroup.js.map +1 -0
  30. package/lib/components/ButtonGroup.module.css +29 -0
  31. package/lib/components/Calendar/components/CalendarTime.js +1 -1
  32. package/lib/components/Calendar/components/CalendarTime.js.map +1 -1
  33. package/lib/components/Checkbox.js +1 -1
  34. package/lib/components/Checkbox.js.map +1 -1
  35. package/lib/components/Checkbox.module.css +97 -0
  36. package/lib/components/Dialog.js +1 -1
  37. package/lib/components/Dialog.js.map +1 -1
  38. package/lib/components/Error.d.ts +2 -2
  39. package/lib/components/Help.d.ts +2 -2
  40. package/lib/components/Help.js +3 -2
  41. package/lib/components/Help.js.map +1 -1
  42. package/lib/components/IconButton.d.ts +8 -8
  43. package/lib/components/IconButton.js +24 -13
  44. package/lib/components/IconButton.js.map +1 -1
  45. package/lib/components/IconButton.module.css +145 -0
  46. package/lib/components/InteractiveList.d.ts +1 -1
  47. package/lib/components/InteractiveList.js +5 -5
  48. package/lib/components/InteractiveList.js.map +1 -1
  49. package/lib/components/InteractiveList.module.css +59 -0
  50. package/lib/components/Modal.d.ts +19 -2
  51. package/lib/components/Modal.js +56 -25
  52. package/lib/components/Modal.js.map +1 -1
  53. package/lib/components/Modal.module.css +222 -0
  54. package/lib/components/NumberField.d.ts +2 -3
  55. package/lib/components/NumberField.js +7 -10
  56. package/lib/components/NumberField.js.map +1 -1
  57. package/lib/components/NumberField.module.css +73 -0
  58. package/lib/components/Pagination.js +7 -7
  59. package/lib/components/Pagination.js.map +1 -1
  60. package/lib/components/PasswordField.d.ts +1 -2
  61. package/lib/components/PasswordField.js +2 -2
  62. package/lib/components/PasswordField.js.map +1 -1
  63. package/lib/components/PasswordField.module.scss +3 -0
  64. package/lib/components/Select/CheckableSelectField.d.ts +0 -1
  65. package/lib/components/Select/CheckableSelectField.js +12 -6
  66. package/lib/components/Select/CheckableSelectField.js.map +1 -1
  67. package/lib/components/Select/CheckableSelectField.module.css +112 -0
  68. package/lib/components/Select/Common.js +3 -3
  69. package/lib/components/Select/Common.js.map +1 -1
  70. package/lib/components/Select/Common.module.css +35 -0
  71. package/lib/components/Select/MultiSelectField.d.ts +1 -1
  72. package/lib/components/Select/MultiSelectField.js +3 -5
  73. package/lib/components/Select/MultiSelectField.js.map +1 -1
  74. package/lib/components/Select/MultiSelectField.module.css +60 -0
  75. package/lib/components/Select/SelectField.d.ts +2 -3
  76. package/lib/components/Select/SelectField.js +4 -6
  77. package/lib/components/Select/SelectField.js.map +1 -1
  78. package/lib/components/Select/SelectField.module.css +202 -0
  79. package/lib/components/SimpleTable.d.ts +25 -6
  80. package/lib/components/SimpleTable.js +27 -12
  81. package/lib/components/SimpleTable.js.map +1 -1
  82. package/lib/components/SimpleTable.module.css +80 -0
  83. package/lib/components/Table/Cell.js +6 -7
  84. package/lib/components/Table/Cell.js.map +1 -1
  85. package/lib/components/Tabs/Tab.js +1 -1
  86. package/lib/components/Tabs/Tab.js.map +1 -1
  87. package/lib/components/Tabs/Tab.module.css +58 -0
  88. package/lib/components/Tabs/TabList.js +1 -1
  89. package/lib/components/Tabs/TabList.js.map +1 -1
  90. package/lib/components/Tabs/TabList.module.css +9 -0
  91. package/lib/components/Tabs/TabPanel.js +1 -1
  92. package/lib/components/Tabs/TabPanel.js.map +1 -1
  93. package/lib/components/Tabs/TabPanel.module.css +7 -0
  94. package/lib/components/TextArea.js +1 -1
  95. package/lib/components/TextArea.js.map +1 -1
  96. package/lib/components/TextArea.module.css +109 -0
  97. package/lib/components/TextField.d.ts +2 -2
  98. package/lib/components/TextField.js +2 -2
  99. package/lib/components/TextField.js.map +1 -1
  100. package/lib/components/TextField.module.css +195 -0
  101. package/lib/components/Toast/Toast.d.ts +12 -0
  102. package/lib/components/Toast/Toast.js +26 -0
  103. package/lib/components/Toast/Toast.js.map +1 -0
  104. package/lib/components/Toast/Toast.module.css +98 -0
  105. package/lib/components/Toast/index.d.ts +4 -0
  106. package/lib/components/Toast/index.js +5 -0
  107. package/lib/components/Toast/index.js.map +1 -0
  108. package/lib/components/Toggle.js +2 -3
  109. package/lib/components/Toggle.js.map +1 -1
  110. package/lib/components/Toggle.module.css +120 -0
  111. package/lib/components/Tooltip.d.ts +35 -22
  112. package/lib/components/Tooltip.js +22 -47
  113. package/lib/components/Tooltip.js.map +1 -1
  114. package/lib/components/Tooltip.module.css +128 -0
  115. package/lib/components/TruncatedText.d.ts +2 -2
  116. package/lib/components/TruncatedText.js +3 -3
  117. package/lib/components/TruncatedText.js.map +1 -1
  118. package/lib/index.d.ts +1 -0
  119. package/lib/index.js.map +1 -1
  120. package/lib/old/AutocompleteField.d.ts +49 -0
  121. package/lib/old/AutocompleteField.js +166 -0
  122. package/lib/old/AutocompleteField.js.map +1 -0
  123. package/lib/old/AutocompleteFieldFormik.d.ts +9 -0
  124. package/lib/old/AutocompleteFieldFormik.js +19 -0
  125. package/lib/old/AutocompleteFieldFormik.js.map +1 -0
  126. package/lib/old/Button.d.ts +75 -0
  127. package/lib/old/Button.js +37 -0
  128. package/lib/old/Button.js.map +1 -0
  129. package/lib/{components/Button.module.scss → old/ButtonLegacy.module.scss} +2 -8
  130. package/lib/old/Checkbox.d.ts +35 -0
  131. package/lib/old/Checkbox.js +38 -0
  132. package/lib/old/Checkbox.js.map +1 -0
  133. package/lib/old/CheckboxFormik.d.ts +10 -0
  134. package/lib/old/CheckboxFormik.js +17 -0
  135. package/lib/old/CheckboxFormik.js.map +1 -0
  136. package/lib/old/IconButton.d.ts +49 -0
  137. package/lib/old/IconButton.js +25 -0
  138. package/lib/old/IconButton.js.map +1 -0
  139. package/lib/old/InteractiveList.d.ts +34 -0
  140. package/lib/old/InteractiveList.js +43 -0
  141. package/lib/old/InteractiveList.js.map +1 -0
  142. package/lib/old/InteractiveListFormik.d.ts +10 -0
  143. package/lib/old/InteractiveListFormik.js +75 -0
  144. package/lib/old/InteractiveListFormik.js.map +1 -0
  145. package/lib/old/Modal.d.ts +26 -0
  146. package/lib/old/Modal.js +41 -0
  147. package/lib/old/Modal.js.map +1 -0
  148. package/lib/old/NumberField.d.ts +33 -0
  149. package/lib/old/NumberField.js +141 -0
  150. package/lib/old/NumberField.js.map +1 -0
  151. package/lib/old/NumberFieldFormik.d.ts +10 -0
  152. package/lib/old/NumberFieldFormik.js +52 -0
  153. package/lib/old/NumberFieldFormik.js.map +1 -0
  154. package/lib/old/PasswordField.d.ts +29 -0
  155. package/lib/old/PasswordField.js +26 -0
  156. package/lib/old/PasswordField.js.map +1 -0
  157. package/lib/old/PasswordFieldFormik.d.ts +10 -0
  158. package/lib/old/PasswordFieldFormik.js +17 -0
  159. package/lib/old/PasswordFieldFormik.js.map +1 -0
  160. package/lib/old/PasswordFieldLegacy.module.scss +26 -0
  161. package/lib/old/Select/CheckableSelectField.d.ts +40 -0
  162. package/lib/old/Select/CheckableSelectField.js +77 -0
  163. package/lib/old/Select/CheckableSelectField.js.map +1 -0
  164. package/lib/old/Select/CheckableSelectFieldFormik.d.ts +10 -0
  165. package/lib/old/Select/CheckableSelectFieldFormik.js +19 -0
  166. package/lib/old/Select/CheckableSelectFieldFormik.js.map +1 -0
  167. package/lib/old/Select/Common.d.ts +5 -0
  168. package/lib/old/Select/Common.js +54 -0
  169. package/lib/old/Select/Common.js.map +1 -0
  170. package/lib/old/Select/MultiSelectField.d.ts +28 -0
  171. package/lib/old/Select/MultiSelectField.js +113 -0
  172. package/lib/old/Select/MultiSelectField.js.map +1 -0
  173. package/lib/old/Select/MultiSelectFieldFormik.d.ts +11 -0
  174. package/lib/old/Select/MultiSelectFieldFormik.js +19 -0
  175. package/lib/old/Select/MultiSelectFieldFormik.js.map +1 -0
  176. package/lib/old/Select/SelectField.d.ts +43 -0
  177. package/lib/old/Select/SelectField.js +103 -0
  178. package/lib/old/Select/SelectField.js.map +1 -0
  179. package/lib/old/Select/SelectFieldFormik.d.ts +10 -0
  180. package/lib/old/Select/SelectFieldFormik.js +19 -0
  181. package/lib/old/Select/SelectFieldFormik.js.map +1 -0
  182. package/lib/old/Select/helpers.d.ts +12 -0
  183. package/lib/old/Select/helpers.js +29 -0
  184. package/lib/old/Select/helpers.js.map +1 -0
  185. package/lib/old/SimpleTable.d.ts +11 -0
  186. package/lib/old/SimpleTable.js +26 -0
  187. package/lib/old/SimpleTable.js.map +1 -0
  188. package/lib/old/Tabs.d.ts +53 -0
  189. package/lib/old/Tabs.js +92 -0
  190. package/lib/old/Tabs.js.map +1 -0
  191. package/lib/{components/Tabs/Tab.module.scss → old/TabsLegacy.module.scss} +14 -6
  192. package/lib/old/TextArea.d.ts +19 -0
  193. package/lib/old/TextArea.js +25 -0
  194. package/lib/old/TextArea.js.map +1 -0
  195. package/lib/old/TextAreaFormik.d.ts +9 -0
  196. package/lib/old/TextAreaFormik.js +11 -0
  197. package/lib/old/TextAreaFormik.js.map +1 -0
  198. package/lib/old/TextField.d.ts +50 -0
  199. package/lib/old/TextField.js +65 -0
  200. package/lib/old/TextField.js.map +1 -0
  201. package/lib/old/TextFieldFormik.d.ts +11 -0
  202. package/lib/old/TextFieldFormik.js +23 -0
  203. package/lib/old/TextFieldFormik.js.map +1 -0
  204. package/lib/{components/TextField.module.scss → old/TextFieldLegacy.module.scss} +0 -1
  205. package/lib/{components → old}/Toast.js +2 -2
  206. package/lib/old/Toast.js.map +1 -0
  207. package/lib/old/Toggle.d.ts +21 -0
  208. package/lib/old/Toggle.js +22 -0
  209. package/lib/old/Toggle.js.map +1 -0
  210. package/lib/old/ToggleFormik.d.ts +9 -0
  211. package/lib/old/ToggleFormik.js +12 -0
  212. package/lib/old/ToggleFormik.js.map +1 -0
  213. package/lib/{components/Toggle.module.scss → old/ToggleLegacy.module.scss} +0 -2
  214. package/lib/old/Tooltip.d.ts +34 -0
  215. package/lib/old/Tooltip.js +57 -0
  216. package/lib/old/Tooltip.js.map +1 -0
  217. package/lib/old/Tooltip.module.scss +45 -0
  218. package/lib/old/index.d.ts +58 -0
  219. package/lib/old/index.js +34 -0
  220. package/lib/old/index.js.map +1 -0
  221. package/package.json +5 -11
  222. package/styles/constants/_colors.scss +18 -0
  223. package/styles/variables.css +162 -0
  224. package/lib/components/Tabs/TabList.module.scss +0 -3
  225. package/lib/components/Tabs/TabPanel.module.scss +0 -7
  226. package/lib/components/Toast.js.map +0 -1
  227. /package/lib/{components/AutocompleteField.module.scss → old/AutocompleteFieldLegacy.module.scss} +0 -0
  228. /package/lib/{components/Checkbox.module.scss → old/CheckboxLegacy.module.scss} +0 -0
  229. /package/lib/{components/IconButton.module.scss → old/IconButtonLegacy.module.scss} +0 -0
  230. /package/lib/{components/InteractiveList.module.scss → old/InteractiveListLegacy.module.scss} +0 -0
  231. /package/lib/{components/Modal.module.scss → old/ModalLegacy.module.scss} +0 -0
  232. /package/lib/{components/NumberField.module.scss → old/NumberFieldLegacy.module.scss} +0 -0
  233. /package/lib/{components/Select/CheckableSelectField.module.scss → old/Select/CheckableSelectFieldLegacy.module.scss} +0 -0
  234. /package/lib/{components/Select/Common.module.scss → old/Select/CommonLegacy.module.scss} +0 -0
  235. /package/lib/{components/Select/MultiSelectField.module.scss → old/Select/MultiSelectFieldLegacy.module.scss} +0 -0
  236. /package/lib/{components/Select/SelectField.module.scss → old/Select/SelectFieldLegacy.module.scss} +0 -0
  237. /package/lib/{components/SimpleTable.module.scss → old/SimpleTableLegacy.module.scss} +0 -0
  238. /package/lib/{components/TextArea.module.scss → old/TextAreaLegacy.module.scss} +0 -0
  239. /package/lib/{components → old}/Toast.d.ts +0 -0
  240. /package/lib/{components/Toast.module.scss → old/ToastLegacy.module.scss} +0 -0
@@ -1,34 +1,47 @@
1
- import { FC, ReactNode, CSSProperties, ReactElement } from 'react';
2
- import { Placement, ReferenceType } from '@floating-ui/react';
1
+ import React, { CSSProperties, ReactElement, ReactNode } from 'react';
2
+ export type TooltipSide = 'top' | 'right' | 'bottom' | 'left';
3
+ export type TooltipAlign = 'start' | 'center' | 'end';
3
4
  export type TooltipProps = {
5
+ /** The trigger element */
6
+ children: ReactElement;
7
+ /** Content displayed inside the tooltip */
4
8
  content: ReactNode;
5
- id?: string;
6
- offset?: number;
9
+ /** Preferred side relative to the trigger */
10
+ side?: TooltipSide;
11
+ /** Alignment along the side axis */
12
+ align?: TooltipAlign;
13
+ /** Distance in pixels between trigger and tooltip */
14
+ sideOffset?: number;
15
+ /** Automatically shift to avoid viewport overflow */
16
+ avoidCollisions?: boolean;
17
+ /** Controlled open state */
18
+ open?: boolean;
19
+ /** Delay in ms before the tooltip opens (default: 300) */
20
+ delayDuration?: number;
21
+ /** Show the arrow pointer */
7
22
  arrow?: boolean;
23
+ /** Color variant */
8
24
  color?: 'dark' | 'secondary';
9
- padding?: number;
10
- placement?: Placement;
11
- visible?: boolean;
12
- className?: string;
13
- children: (ref: (node: ReferenceType | null) => void) => ReactElement;
25
+ /** CSS word-break override */
14
26
  wordBreak?: CSSProperties['wordBreak'];
27
+ /** z-index for the tooltip portal */
15
28
  zIndex?: number;
16
- autoPlacement?: boolean;
29
+ /** Additional className on the tooltip content */
30
+ className?: string;
31
+ /** ID for aria-labelledby */
32
+ id?: string;
17
33
  };
18
34
  /**
19
35
  * ### Purpose
20
- * Useful when you need to display additional information/actionable content.
21
- * A tooltip with this content is displayed when user hovers over a target element.
22
- *
23
- * ### General info
24
- * - Tooltip automatically detects viewport overflow and changes placement to prevent it.
25
- * - Offset (space between a target and tooltip elements) can be also configured via "offset" property.
26
- * - If "content" property is undefined, tooltip element will be removed from DOM entirely.
27
- * - It's required to set the "id" property which will be assigned to the tooltip. This id parameter can be then used as a value of "aria-labelledby" attribute.
28
- * - Use `updateToken` prop to update the tooltip position.
29
- * - Use `tooltipContainer` prop to change the tooltip portal container. Defaults to `body`.
36
+ * Displays additional information when hovering over a trigger element.
30
37
  *
31
38
  * ### Usage
32
- * Wrap the target element with Tooltip component and use the "content" property to define what should be displayed inside the tooltip.
39
+ * Pass the trigger element as `children` and the tooltip text/content via `content`.
40
+ *
41
+ * ```tsx
42
+ * <Tooltip content="Save changes">
43
+ * <button>Save</button>
44
+ * </Tooltip>
45
+ * ```
33
46
  */
34
- export declare const Tooltip: FC<TooltipProps>;
47
+ export declare const Tooltip: ({ children, content, side, align, sideOffset, avoidCollisions, open, delayDuration, arrow: showArrow, color, wordBreak, zIndex, className, id, }: TooltipProps) => React.JSX.Element;
@@ -1,56 +1,31 @@
1
- import React, { useRef, cloneElement, useState } from 'react';
2
- import { FloatingArrow, offset, useFloating, arrow, useHover, useInteractions, autoUpdate, autoPlacement as autoPlacementMiddleware, FloatingPortal, safePolygon, } from '@floating-ui/react';
1
+ import React from 'react';
2
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
3
3
  import cn from 'classnames';
4
- import styles from './Tooltip.module.scss';
5
- import { canUseDOM } from '../utils/ssr';
4
+ import styles from './Tooltip.module.css';
6
5
  /**
7
6
  * ### Purpose
8
- * Useful when you need to display additional information/actionable content.
9
- * A tooltip with this content is displayed when user hovers over a target element.
10
- *
11
- * ### General info
12
- * - Tooltip automatically detects viewport overflow and changes placement to prevent it.
13
- * - Offset (space between a target and tooltip elements) can be also configured via "offset" property.
14
- * - If "content" property is undefined, tooltip element will be removed from DOM entirely.
15
- * - It's required to set the "id" property which will be assigned to the tooltip. This id parameter can be then used as a value of "aria-labelledby" attribute.
16
- * - Use `updateToken` prop to update the tooltip position.
17
- * - Use `tooltipContainer` prop to change the tooltip portal container. Defaults to `body`.
7
+ * Displays additional information when hovering over a trigger element.
18
8
  *
19
9
  * ### Usage
20
- * Wrap the target element with Tooltip component and use the "content" property to define what should be displayed inside the tooltip.
10
+ * Pass the trigger element as `children` and the tooltip text/content via `content`.
11
+ *
12
+ * ```tsx
13
+ * <Tooltip content="Save changes">
14
+ * <button>Save</button>
15
+ * </Tooltip>
16
+ * ```
21
17
  */
22
- export const Tooltip = ({ id, content, offset: offsetY = 10, padding = 10, placement = 'top', visible: visibilityOverride, children, wordBreak, zIndex = 20, arrow: showArrow = true, color, autoPlacement = true, className, }) => {
23
- const [isOpen, setIsOpen] = useState(false);
24
- const arrowRef = useRef(null);
25
- const { refs, floatingStyles, context } = useFloating({
26
- strategy: 'absolute',
27
- placement,
28
- whileElementsMounted: autoUpdate,
29
- open: isOpen,
30
- onOpenChange: setIsOpen,
31
- middleware: [
32
- ...(autoPlacement ? [autoPlacementMiddleware()] : []),
33
- offset(offsetY),
34
- ...(showArrow
35
- ? [
36
- arrow({
37
- element: arrowRef,
38
- padding,
39
- }),
40
- ]
41
- : []),
42
- ],
43
- });
44
- const hover = useHover(context, { handleClose: safePolygon() });
45
- const { getReferenceProps, getFloatingProps } = useInteractions([hover]);
46
- const isTooltipVisible = typeof visibilityOverride === 'boolean' ? visibilityOverride : isOpen;
47
- return (React.createElement(React.Fragment, null,
48
- cloneElement(children(refs.setReference), { ...getReferenceProps() }),
49
- content !== undefined && isTooltipVisible && (React.createElement(React.Fragment, null,
50
- React.createElement("span", { ...(id && { id }), className: cn(styles.tooltipSr, className), role: "tooltip", "data-test": "tooltip-sr" }, content),
51
- React.createElement(FloatingPortal, { root: canUseDOM ? document.body : null },
52
- React.createElement("span", { ref: refs.setFloating, className: cn(styles.overlay, color && [styles[color]], className), style: { ...floatingStyles, ...{ zIndex: context ? zIndex + 1 : zIndex }, wordBreak }, "data-test": "tooltip-overlay", ...getFloatingProps() },
18
+ export const Tooltip = ({ children, content, side = 'top', align = 'center', sideOffset = 10, avoidCollisions = true, open, delayDuration = 300, arrow: showArrow = true, color, wordBreak, zIndex = 20, className, id, }) => {
19
+ if (content === undefined) {
20
+ return React.createElement(React.Fragment, null, children);
21
+ }
22
+ const rootProps = typeof open === 'boolean' ? { open } : {};
23
+ return (React.createElement(TooltipPrimitive.Provider, { delayDuration: delayDuration },
24
+ React.createElement(TooltipPrimitive.Root, { ...rootProps },
25
+ React.createElement(TooltipPrimitive.Trigger, { asChild: true }, children),
26
+ React.createElement(TooltipPrimitive.Portal, null,
27
+ React.createElement(TooltipPrimitive.Content, { id: id, side: side, align: align, sideOffset: sideOffset, avoidCollisions: avoidCollisions, className: cn(styles.content, color && styles[color], className), style: { zIndex, wordBreak }, "data-test": "tooltip-overlay" },
53
28
  content,
54
- showArrow && React.createElement(FloatingArrow, { ref: arrowRef, context: context, className: styles.arrow })))))));
29
+ showArrow && React.createElement(TooltipPrimitive.Arrow, { className: styles.arrow }))))));
55
30
  };
56
31
  //# sourceMappingURL=Tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/components/Tooltip.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/components/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAA;AACrE,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,MAAM,MAAM,sBAAsB,CAAA;AAoCzC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACtB,QAAQ,EACR,OAAO,EACP,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,QAAQ,EAChB,UAAU,GAAG,EAAE,EACf,eAAe,GAAG,IAAI,EACtB,IAAI,EACJ,aAAa,GAAG,GAAG,EACnB,KAAK,EAAE,SAAS,GAAG,IAAI,EACvB,KAAK,EACL,SAAS,EACT,MAAM,GAAG,EAAE,EACX,SAAS,EACT,EAAE,GACW,EAAE,EAAE;IACjB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,0CAAG,QAAQ,CAAI,CAAA;IACxB,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAE3D,OAAO,CACL,oBAAC,gBAAgB,CAAC,QAAQ,IAAC,aAAa,EAAE,aAAa;QACrD,oBAAC,gBAAgB,CAAC,IAAI,OAAK,SAAS;YAClC,oBAAC,gBAAgB,CAAC,OAAO,IAAC,OAAO,UAAE,QAAQ,CAA4B;YACvE,oBAAC,gBAAgB,CAAC,MAAM;gBACtB,oBAAC,gBAAgB,CAAC,OAAO,IACvB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,EAChE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,eAClB,iBAAiB;oBAE1B,OAAO;oBACP,SAAS,IAAI,oBAAC,gBAAgB,CAAC,KAAK,IAAC,SAAS,EAAE,MAAM,CAAC,KAAK,GAAI,CACxC,CACH,CACJ,CACE,CAC7B,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,128 @@
1
+ /* ── Keyframes ───────────────────────────────────────────────────── */
2
+
3
+ @keyframes hive-tooltip-fade-in-down {
4
+ from {
5
+ opacity: 0;
6
+ transform: translateY(-6px);
7
+ }
8
+ to {
9
+ opacity: 1;
10
+ transform: translateY(0);
11
+ }
12
+ }
13
+
14
+ @keyframes hive-tooltip-fade-in-up {
15
+ from {
16
+ opacity: 0;
17
+ transform: translateY(6px);
18
+ }
19
+ to {
20
+ opacity: 1;
21
+ transform: translateY(0);
22
+ }
23
+ }
24
+
25
+ @keyframes hive-tooltip-fade-in-right {
26
+ from {
27
+ opacity: 0;
28
+ transform: translateX(-6px);
29
+ }
30
+ to {
31
+ opacity: 1;
32
+ transform: translateX(0);
33
+ }
34
+ }
35
+
36
+ @keyframes hive-tooltip-fade-in-left {
37
+ from {
38
+ opacity: 0;
39
+ transform: translateX(6px);
40
+ }
41
+ to {
42
+ opacity: 1;
43
+ transform: translateX(0);
44
+ }
45
+ }
46
+
47
+ @keyframes hive-tooltip-fade-out {
48
+ from {
49
+ opacity: 1;
50
+ }
51
+ to {
52
+ opacity: 0;
53
+ }
54
+ }
55
+
56
+ /* ── Base ────────────────────────────────────────────────────────── */
57
+
58
+ .content {
59
+ font-family: var(--hive-font-family-text);
60
+ font-size: var(--hive-font-size-body-small);
61
+ font-weight: var(--hive-font-weight-text-regular);
62
+ letter-spacing: var(--hive-letter-spacing-body-small);
63
+ line-height: var(--hive-line-height-body-small);
64
+
65
+ position: relative;
66
+ max-width: var(--hive-tooltip-max-width);
67
+ padding: calc(var(--hive-grid) * 3);
68
+ background: var(--hive-color-neutral-lighter);
69
+ border: var(--hive-border-width) solid var(--hive-color-neutral-light);
70
+ border-radius: var(--hive-border-radius);
71
+ color: var(--hive-color-text);
72
+ word-break: break-word;
73
+ text-align: center;
74
+
75
+ /* Arrow color — overridden per variant */
76
+ --tooltip-arrow-fill: var(--hive-color-neutral-light);
77
+
78
+ /* Smooth in */
79
+ will-change: transform, opacity;
80
+ }
81
+
82
+ /* ── Enter animations (per side) ─────────────────────────────────── */
83
+
84
+ .content[data-state='delayed-open'][data-side='bottom'],
85
+ .content[data-state='instant-open'][data-side='bottom'] {
86
+ animation: hive-tooltip-fade-in-down 180ms cubic-bezier(0.16, 1, 0.3, 1);
87
+ }
88
+
89
+ .content[data-state='delayed-open'][data-side='top'],
90
+ .content[data-state='instant-open'][data-side='top'] {
91
+ animation: hive-tooltip-fade-in-up 180ms cubic-bezier(0.16, 1, 0.3, 1);
92
+ }
93
+
94
+ .content[data-state='delayed-open'][data-side='right'],
95
+ .content[data-state='instant-open'][data-side='right'] {
96
+ animation: hive-tooltip-fade-in-right 180ms cubic-bezier(0.16, 1, 0.3, 1);
97
+ }
98
+
99
+ .content[data-state='delayed-open'][data-side='left'],
100
+ .content[data-state='instant-open'][data-side='left'] {
101
+ animation: hive-tooltip-fade-in-left 180ms cubic-bezier(0.16, 1, 0.3, 1);
102
+ }
103
+
104
+ /* ── Exit animation ──────────────────────────────────────────────── */
105
+
106
+ .content[data-state='closed'] {
107
+ animation: hive-tooltip-fade-out 120ms ease-out;
108
+ }
109
+
110
+ /* ── Color variants ──────────────────────────────────────────────── */
111
+
112
+ .content.secondary {
113
+ border: none;
114
+ color: var(--hive-color-neutral-white);
115
+ background-color: var(--hive-color-text-subdued);
116
+ --tooltip-arrow-fill: var(--hive-color-text-subdued);
117
+ }
118
+
119
+ .content.dark {
120
+ border: none;
121
+ color: var(--hive-color-brand-text);
122
+ background-color: var(--hive-color-brand-accent);
123
+ --tooltip-arrow-fill: var(--hive-color-brand-accent);
124
+ }
125
+
126
+ .arrow {
127
+ fill: var(--tooltip-arrow-fill);
128
+ }
@@ -1,6 +1,6 @@
1
1
  import { FC, ReactNode } from 'react';
2
2
  import { DataTestProp } from '../helpers/types';
3
- import { TooltipProps } from './Tooltip';
3
+ import { TooltipSide } from './Tooltip';
4
4
  interface TruncatedTextProps extends DataTestProp {
5
5
  text: ReactNode;
6
6
  forceUpdateToken?: string | number | boolean;
@@ -8,7 +8,7 @@ interface TruncatedTextProps extends DataTestProp {
8
8
  multiline?: boolean;
9
9
  tooltipVisible?: boolean;
10
10
  tooltipClassName?: string;
11
- tooltipPlacement?: TooltipProps['placement'];
11
+ tooltipPlacement?: TooltipSide;
12
12
  }
13
13
  export declare const TruncatedText: FC<TruncatedTextProps>;
14
14
  export {};
@@ -1,5 +1,4 @@
1
1
  import React, { useRef, useState } from 'react';
2
- import mergeRefs from 'react-merge-refs';
3
2
  import cn from 'classnames';
4
3
  import useIsomorphicLayoutEffect from 'react-use/lib/useIsomorphicLayoutEffect';
5
4
  import { useUID } from 'react-uid';
@@ -17,7 +16,8 @@ export const TruncatedText = ({ text, forceUpdateToken, className, tooltipVisibl
17
16
  // https://codepen.io/triple-j/pen/wadKQB
18
17
  setTooltip(span.offsetWidth < span.scrollWidth || span.offsetHeight < span.scrollHeight ? text : undefined);
19
18
  }, [text, forceUpdateToken]);
20
- return (React.createElement(Tooltip, { id: idTooltip, content: tooltip, visible: tooltipVisible, className: tooltipClassName, placement: tooltipPlacement }, (ref) => (React.createElement("div", { ref: mergeRefs([textRef, ref]), className: cn(styles.truncatedText, { [styles.multiline]: multiline }, className) },
21
- React.createElement("span", { "data-test": dataTest, "aria-labelledby": tooltip ? idTooltip : undefined }, text)))));
19
+ return (React.createElement(Tooltip, { id: idTooltip, content: tooltip, open: tooltipVisible, className: tooltipClassName, side: tooltipPlacement },
20
+ React.createElement("div", { ref: textRef, className: cn(styles.truncatedText, { [styles.multiline]: multiline }, className) },
21
+ React.createElement("span", { "data-test": dataTest, "aria-labelledby": tooltip ? idTooltip : undefined }, text))));
22
22
  };
23
23
  //# sourceMappingURL=TruncatedText.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TruncatedText.js","sourceRoot":"","sources":["../../src/components/TruncatedText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,MAAM,EAAE,QAAQ,EAAa,MAAM,OAAO,CAAA;AAC9D,OAAO,SAAS,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,yBAAyB,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC,OAAO,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAA;AAEjD,OAAO,MAAM,MAAM,6BAA6B,CAAA;AAahD,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,EACpD,IAAI,EACJ,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,gBAAgB,GAAG,KAAK,EACxB,SAAS,EACT,gBAAgB,EAChB,WAAW,EAAE,QAAQ,GACtB,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAyB,CAAA;IAC/D,MAAM,SAAS,GAAG,MAAM,EAAE,CAAA;IAE1B,yBAAyB,CAAC,GAAG,EAAE;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAA;QAE5B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QAED,yCAAyC;QACzC,UAAU,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC7G,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAE5B,OAAO,CACL,oBAAC,OAAO,IAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,IACxH,CAAC,GAAG,EAAE,EAAE,CAAC,CACR,6BAAK,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC;QACpH,2CAAiB,QAAQ,qBAAmB,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IACxE,IAAI,CACA,CACH,CACP,CACO,CACX,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"TruncatedText.js","sourceRoot":"","sources":["../../src/components/TruncatedText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,MAAM,EAAE,QAAQ,EAAa,MAAM,OAAO,CAAA;AAC9D,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,yBAAyB,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC,OAAO,EAAE,OAAO,EAAe,MAAM,WAAW,CAAA;AAEhD,OAAO,MAAM,MAAM,6BAA6B,CAAA;AAahD,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,EACpD,IAAI,EACJ,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,gBAAgB,GAAG,KAAK,EACxB,SAAS,EACT,gBAAgB,EAChB,WAAW,EAAE,QAAQ,GACtB,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAyB,CAAA;IAC/D,MAAM,SAAS,GAAG,MAAM,EAAE,CAAA;IAE1B,yBAAyB,CAAC,GAAG,EAAE;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAA;QAE5B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QAED,yCAAyC;QACzC,UAAU,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC7G,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAE5B,OAAO,CACL,oBAAC,OAAO,IAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB;QACjH,6BAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC;YAClG,2CAAiB,QAAQ,qBAAmB,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IACxE,IAAI,CACA,CACH,CACE,CACX,CAAA;AACH,CAAC,CAAA"}
package/lib/index.d.ts CHANGED
@@ -47,6 +47,7 @@ export { TextAreaFormik } from './components/TextAreaFormik';
47
47
  export { TextField } from './components/TextField';
48
48
  export { TextFieldFormik } from './components/TextFieldFormik';
49
49
  export { Toast } from './components/Toast';
50
+ export type { ToastProps, ToastVariant } from './components/Toast';
50
51
  export { Toggle } from './components/Toggle';
51
52
  export { ToggleFormik } from './components/ToggleFormik';
52
53
  export { Tooltip } from './components/Tooltip';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import React, { FocusEvent, ReactNode } from 'react';
2
+ import { FormatOptionLabelMeta } from 'react-select';
3
+ import { HelpProps } from '../components/Help';
4
+ import { SelectFieldSize } from './Select/SelectField';
5
+ import { FieldHeaderProps } from '../components/FieldHeader';
6
+ export type AutocompleteFieldOption = {
7
+ label: string;
8
+ value: string;
9
+ };
10
+ export type RenderOptionFunction<O = AutocompleteFieldOption> = (highlightedLabelText: ReactNode, option: O extends AutocompleteFieldOption ? O : never, labelMeta: FormatOptionLabelMeta<AutocompleteFieldOption>) => ReactNode;
11
+ export type AutocompleteFieldProps = {
12
+ 'data-test'?: string;
13
+ size?: SelectFieldSize;
14
+ className?: string;
15
+ disabled?: boolean;
16
+ error?: string;
17
+ errorClassName?: string;
18
+ isClearable?: boolean;
19
+ label?: string;
20
+ labelClassName?: string;
21
+ menuPortalTarget?: 'body' | 'self' | HTMLElement | null;
22
+ onChange?: (newValue: string) => void;
23
+ onInputChange?: (newInputValue: string) => void;
24
+ onBlur?: (e: FocusEvent<HTMLElement>) => void;
25
+ onFocus?: (e: FocusEvent<HTMLElement>) => void;
26
+ required?: boolean;
27
+ helperText?: HelpProps['helperText'];
28
+ renderOption?: RenderOptionFunction;
29
+ name: string;
30
+ options: AutocompleteFieldOption[];
31
+ value?: string | null;
32
+ placeholder?: string;
33
+ openMenuOnClick?: boolean;
34
+ } & Omit<FieldHeaderProps, 'id'>;
35
+ type GetSelectedOptionFromValueProps = {
36
+ value?: string | null;
37
+ optionsMap: {
38
+ [key: string]: AutocompleteFieldOption;
39
+ };
40
+ };
41
+ /**
42
+ * Transforms the value passed to the Autocomplete component so that it's in a format as underlying react-select expects
43
+ * @param value - single value or an array of values
44
+ * @param optionsMap - an object where option values are mapped to react-select expected objects
45
+ */
46
+ export declare function getSelectedOptionFromValue({ value, optionsMap }: GetSelectedOptionFromValueProps): AutocompleteFieldOption | null;
47
+ export declare const highlightOptionText: (labelText: string, inputValue: string | undefined) => ReactNode;
48
+ export declare const AutocompleteField: React.FC<AutocompleteFieldProps>;
49
+ export {};
@@ -0,0 +1,166 @@
1
+ import React, { useMemo, useState } from 'react';
2
+ import ReactSelect, { components } from 'react-select';
3
+ import { useUID } from 'react-uid';
4
+ import cn from 'classnames';
5
+ import { Search, X } from 'react-feather';
6
+ import useIsomorphicLayoutEffect from 'react-use/lib/useIsomorphicLayoutEffect';
7
+ import styles from './AutocompleteFieldLegacy.module.scss';
8
+ import { Error, errorId } from '../components/Error';
9
+ import { canUseDOM } from '../utils/ssr';
10
+ import { IconButton } from './IconButton';
11
+ import { FieldHeader } from '../components/FieldHeader';
12
+ /**
13
+ * Transforms the value passed to the Autocomplete component so that it's in a format as underlying react-select expects
14
+ * @param value - single value or an array of values
15
+ * @param optionsMap - an object where option values are mapped to react-select expected objects
16
+ */
17
+ export function getSelectedOptionFromValue({ value, optionsMap }) {
18
+ var _a;
19
+ let option = null;
20
+ if (value) {
21
+ option = (_a = optionsMap[value]) !== null && _a !== void 0 ? _a : { value: value, label: value };
22
+ }
23
+ return option;
24
+ }
25
+ const Input = (innerProps) => {
26
+ // autoComplete='off' is hard-coded inside SelectField, but doesn't work in Chrome.
27
+ // Having an invalid value hard-coded disabled it in all browsers.
28
+ const props = {
29
+ ...innerProps,
30
+ autoComplete: 'chrome-off',
31
+ };
32
+ return React.createElement(components.Input, { ...props });
33
+ };
34
+ const DropdownIndicator = (props) => {
35
+ return (React.createElement(components.DropdownIndicator, { ...props },
36
+ React.createElement(Search, { size: 20 })));
37
+ };
38
+ // innerProps set event handling
39
+ const ClearIndicator = ({ innerProps }) => {
40
+ // Visually impaired people will use the keyboard (backspace) to remove the value. We do not want to confuse them by allowing to focus this button.
41
+ // @ts-ignore
42
+ return React.createElement(IconButton, { ...innerProps, icon: X, ariaHidden: true, variant: "ghost", className: styles.clear, tabIndex: -1 });
43
+ };
44
+ export const highlightOptionText = (labelText, inputValue) => {
45
+ const separator = '<%>';
46
+ const query = inputValue || '';
47
+ return query
48
+ ? labelText
49
+ .replace(new RegExp(query, 'ig'), `${separator}$&${separator}`)
50
+ .split(separator)
51
+ .filter((val) => val)
52
+ .map((val, i) => (React.createElement("span", { className: cn({
53
+ 'hz-autocomplete-field__matched-option-text': val.toLowerCase() === query.toLowerCase(),
54
+ }), key: val + `${i}` }, val)))
55
+ : labelText;
56
+ };
57
+ export const AutocompleteField = ({ 'data-test': dataTest = 'autocomplete-field', className, disabled, error, errorClassName, isClearable, label, labelClassName, helperText, size = 'medium', menuPortalTarget = 'body', name, onChange, onFocus, onBlur, onInputChange, options, required, value, placeholder = 'Search...', showAriaLabel = false, renderOption, openMenuOnClick = true, ...rest }) => {
58
+ // when the user clicks on an input with the value, the value should disappear,
59
+ // but then it should appear after the user selects something or blurs the input
60
+ const [isValueHidden, setValueHidden] = useState(false);
61
+ const id = useUID();
62
+ useIsomorphicLayoutEffect(() => {
63
+ const menuContainer = getMenuContainer(menuPortalTarget);
64
+ if (menuContainer && !menuContainer.className.includes(styles.menuContainer)) {
65
+ menuContainer.className = `${menuContainer.className} ${styles.menuContainer}`;
66
+ }
67
+ }, [menuPortalTarget]);
68
+ const optionsMap = React.useMemo(() => options.reduce((acc, option) => {
69
+ acc[`${option.value}`] = option;
70
+ return acc;
71
+ }, {}), [options]);
72
+ const selectedOption = useMemo(() => getSelectedOptionFromValue({ value, optionsMap }), [optionsMap, value]);
73
+ const onChangeFn = React.useCallback((option) => {
74
+ setValueHidden(false);
75
+ onChange(option === null ? null : option.value);
76
+ }, [onChange]);
77
+ const onFocusFn = React.useCallback((e) => {
78
+ if (onFocus) {
79
+ onFocus(e);
80
+ }
81
+ if (!openMenuOnClick) {
82
+ setValueHidden(true);
83
+ }
84
+ }, [onFocus, openMenuOnClick]);
85
+ const onBlurFn = React.useCallback((e) => {
86
+ if (onBlur) {
87
+ onBlur(e);
88
+ }
89
+ setValueHidden(false);
90
+ }, [onBlur]);
91
+ const formatOptionLabelFn = React.useCallback((option, labelMeta) => {
92
+ const { inputValue } = labelMeta;
93
+ let optionText = option.label;
94
+ if (inputValue) {
95
+ optionText = highlightOptionText(option.label, inputValue);
96
+ }
97
+ return renderOption ? renderOption(optionText, option, labelMeta) : optionText;
98
+ }, [renderOption]);
99
+ const getMenuContainer = (menuPortalTarget) => {
100
+ if (menuPortalTarget == 'body') {
101
+ // There is no document is SSR environment
102
+ return canUseDOM ? document.body : undefined;
103
+ }
104
+ if (menuPortalTarget == 'self') {
105
+ return undefined;
106
+ }
107
+ return menuPortalTarget;
108
+ };
109
+ const props = {
110
+ inputId: id,
111
+ className: 'hz-autocomplete-field',
112
+ classNamePrefix: 'hz-autocomplete-field',
113
+ // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-invalid_attribute
114
+ 'aria-errormessage': error && errorId(id),
115
+ 'aria-invalid': !!error,
116
+ // @ts-ignore
117
+ 'aria-required': required,
118
+ error,
119
+ isClearable: isClearable !== null && isClearable !== void 0 ? isClearable : false,
120
+ isDisabled: disabled,
121
+ isSearchable: true,
122
+ isMulti: false,
123
+ name: name,
124
+ value: selectedOption,
125
+ placeholder,
126
+ options,
127
+ onChange: onChangeFn,
128
+ onFocus: onFocusFn,
129
+ onBlur: onBlurFn,
130
+ menuPortalTarget: getMenuContainer(menuPortalTarget),
131
+ components: {
132
+ DropdownIndicator,
133
+ ClearIndicator,
134
+ Input,
135
+ },
136
+ openMenuOnClick,
137
+ ...rest,
138
+ };
139
+ return (React.createElement("div", { "data-test": dataTest, className: cn(styles.container, {
140
+ [styles.withError]: 'error' in props,
141
+ [styles.disabled]: disabled,
142
+ [styles.hasError]: error,
143
+ [styles.small]: size === 'small',
144
+ [styles.empty]: !value,
145
+ },
146
+ // Menu container is either this select itself or any other element
147
+ // We can always add this class to the select itself because even if the menu container is any parent it won't break it
148
+ // However, if it is the select itself, it will properly add necessary specificity level to the menu styles.
149
+ styles.menuContainer, className) },
150
+ React.createElement(FieldHeader, { label: label, id: id, size: size, "data-test": dataTest, helperText: helperText, showAriaLabel: showAriaLabel, labelClassName: labelClassName }),
151
+ React.createElement("div", { className: styles.selectBlock },
152
+ React.createElement(ReactSelect, { onInputChange: onInputChange, formatOptionLabel: formatOptionLabelFn, styles: {
153
+ ...props.styles,
154
+ // @ts-ignore
155
+ singleValue: (base) => {
156
+ var _a;
157
+ return ({
158
+ ...base,
159
+ ...(_a = props.styles) === null || _a === void 0 ? void 0 : _a.singleValue,
160
+ visibility: isValueHidden ? 'hidden' : 'visible',
161
+ });
162
+ },
163
+ }, ...props })),
164
+ React.createElement(Error, { "data-test": `${dataTest}-error`, truncated: true, error: error, className: cn(styles.errorContainer, errorClassName), inputId: id })));
165
+ };
166
+ //# sourceMappingURL=AutocompleteField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutocompleteField.js","sourceRoot":"","sources":["../../src/old/AutocompleteField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ReactElement } from 'react';
2
+ import { AutocompleteFieldProps } from './AutocompleteField';
3
+ import { FieldValidatorGeneric } from '../utils/formik';
4
+ type AutocompleteFieldFormikProps = AutocompleteFieldProps & {
5
+ validate?: FieldValidatorGeneric<string | null>;
6
+ onChange?: (value: string | null) => void;
7
+ };
8
+ export declare const AutocompleteFieldFormik: ({ name, validate, onChange, ...props }: AutocompleteFieldFormikProps) => ReactElement;
9
+ export {};
@@ -0,0 +1,19 @@
1
+ import React, { useCallback, useMemo } from 'react';
2
+ import { useField } from 'formik';
3
+ import { AutocompleteField } from './AutocompleteField';
4
+ import { formikTouchAndUpdate, getFieldError } from '../utils/formik';
5
+ export const AutocompleteFieldFormik = ({ name, validate, onChange, ...props }) => {
6
+ const [{ value, onBlur }, meta, { setValue, setTouched }] = useField({
7
+ name,
8
+ validate,
9
+ });
10
+ const setFormikValue = useMemo(() => formikTouchAndUpdate(setValue, setTouched), [setValue, setTouched]);
11
+ const handleChange = useCallback((newValue) => {
12
+ if (onChange) {
13
+ onChange(newValue);
14
+ }
15
+ setFormikValue(newValue);
16
+ }, [setFormikValue, onChange]);
17
+ return React.createElement(AutocompleteField, { ...props, value: value, onChange: handleChange, name: name, onBlur: onBlur, error: getFieldError(meta) });
18
+ };
19
+ //# sourceMappingURL=AutocompleteFieldFormik.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutocompleteFieldFormik.js","sourceRoot":"","sources":["../../src/old/AutocompleteFieldFormik.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAgB,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAE,iBAAiB,EAA0B,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAyB,oBAAoB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAO5F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAgC,EAAgB,EAAE;IAC5H,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAgB;QAClF,IAAI;QACJ,QAAQ;KACT,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAgB,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IACvH,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,QAAgB,EAAE,EAAE;QACnB,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACpB,CAAC;QAED,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC,EACD,CAAC,cAAc,EAAE,QAAQ,CAAC,CAC3B,CAAA;IAED,OAAO,oBAAC,iBAAiB,OAAK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAI,CAAA;AACvI,CAAC,CAAA"}