@ilo-org/react 0.9.0 → 0.10.0

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 (85) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/lib/cjs/components/Checkbox/Checkbox.js +1 -1
  3. package/lib/cjs/components/Checkbox/index.js +1 -1
  4. package/lib/cjs/components/DatePicker/DatePicker.js +1 -1
  5. package/lib/cjs/components/DatePicker/index.js +1 -1
  6. package/lib/cjs/components/Dropdown/Dropdown.js +1 -1
  7. package/lib/cjs/components/Dropdown/index.js +1 -1
  8. package/lib/cjs/components/Fieldset/Fieldset.js +1 -1
  9. package/lib/cjs/components/Fieldset/index.js +1 -1
  10. package/lib/cjs/components/FileUpload/FileUpload.js +1 -1
  11. package/lib/cjs/components/FileUpload/index.js +1 -1
  12. package/lib/cjs/components/FormControl/FormControl.js +1 -1
  13. package/lib/cjs/components/FormControl/index.js +1 -1
  14. package/lib/cjs/components/Hero/Hero.js +6 -4
  15. package/lib/cjs/components/Hero/index.js +1 -1
  16. package/lib/cjs/components/Input/Input.js +1 -1
  17. package/lib/cjs/components/Input/index.js +1 -1
  18. package/lib/cjs/components/Navigation/Navigation.js +1 -1
  19. package/lib/cjs/components/Navigation/index.js +1 -1
  20. package/lib/cjs/components/NumberPicker/NumberPicker.js +1 -1
  21. package/lib/cjs/components/NumberPicker/index.js +1 -1
  22. package/lib/cjs/components/Profile/Profile.js +4 -2
  23. package/lib/cjs/components/Radio/Radio.js +1 -1
  24. package/lib/cjs/components/Radio/index.js +1 -1
  25. package/lib/cjs/components/SearchField/SearchField.js +1 -1
  26. package/lib/cjs/components/SearchField/index.js +1 -1
  27. package/lib/cjs/components/TextInput/TextInput.js +1 -1
  28. package/lib/cjs/components/TextInput/index.js +1 -1
  29. package/lib/cjs/components/Textarea/Textarea.js +1 -1
  30. package/lib/cjs/components/Textarea/index.js +1 -1
  31. package/lib/cjs/components/Toggle/Toggle.js +1 -1
  32. package/lib/cjs/components/Toggle/index.js +1 -1
  33. package/lib/cjs/components/Tooltip/Tooltip.js +42 -72
  34. package/lib/cjs/components/Tooltip/index.js +1 -1
  35. package/lib/cjs/components/index.js +1 -0
  36. package/lib/cjs/index.js +1 -0
  37. package/lib/esm/components/Checkbox/Checkbox.js +1 -1
  38. package/lib/esm/components/Checkbox/index.js +1 -1
  39. package/lib/esm/components/DatePicker/DatePicker.js +1 -1
  40. package/lib/esm/components/DatePicker/index.js +1 -1
  41. package/lib/esm/components/Dropdown/Dropdown.js +1 -1
  42. package/lib/esm/components/Dropdown/index.js +1 -1
  43. package/lib/esm/components/Fieldset/Fieldset.js +1 -1
  44. package/lib/esm/components/Fieldset/index.js +1 -1
  45. package/lib/esm/components/FileUpload/FileUpload.js +1 -1
  46. package/lib/esm/components/FileUpload/index.js +1 -1
  47. package/lib/esm/components/FormControl/FormControl.js +1 -1
  48. package/lib/esm/components/FormControl/index.js +1 -1
  49. package/lib/esm/components/Hero/Hero.js +7 -5
  50. package/lib/esm/components/Hero/index.js +1 -1
  51. package/lib/esm/components/Input/Input.js +1 -1
  52. package/lib/esm/components/Input/index.js +1 -1
  53. package/lib/esm/components/Navigation/Navigation.js +1 -1
  54. package/lib/esm/components/Navigation/index.js +1 -1
  55. package/lib/esm/components/NumberPicker/NumberPicker.js +1 -1
  56. package/lib/esm/components/NumberPicker/index.js +1 -1
  57. package/lib/esm/components/Profile/Profile.js +4 -2
  58. package/lib/esm/components/Radio/Radio.js +1 -1
  59. package/lib/esm/components/Radio/index.js +1 -1
  60. package/lib/esm/components/SearchField/SearchField.js +1 -1
  61. package/lib/esm/components/SearchField/index.js +1 -1
  62. package/lib/esm/components/TextInput/TextInput.js +1 -1
  63. package/lib/esm/components/TextInput/index.js +1 -1
  64. package/lib/esm/components/Textarea/Textarea.js +1 -1
  65. package/lib/esm/components/Textarea/index.js +1 -1
  66. package/lib/esm/components/Toggle/Toggle.js +1 -1
  67. package/lib/esm/components/Toggle/index.js +1 -1
  68. package/lib/esm/components/Tooltip/Tooltip.js +42 -72
  69. package/lib/esm/components/Tooltip/index.js +1 -1
  70. package/lib/esm/components/index.js +1 -0
  71. package/lib/esm/index.js +1 -0
  72. package/lib/types/react/src/components/Hero/Hero.props.d.ts +4 -0
  73. package/lib/types/react/src/components/Profile/Profile.props.d.ts +9 -0
  74. package/lib/types/react/src/components/Tooltip/Tooltip.props.d.ts +3 -11
  75. package/lib/types/react/src/types/index.d.ts +1 -0
  76. package/package.json +16 -16
  77. package/src/components/Hero/Hero.args.ts +28 -0
  78. package/src/components/Hero/Hero.props.ts +5 -0
  79. package/src/components/Hero/Hero.tsx +15 -6
  80. package/src/components/Profile/Profile.props.ts +12 -0
  81. package/src/components/Profile/Profile.tsx +19 -11
  82. package/src/components/Tooltip/Tooltip.args.ts +1 -1
  83. package/src/components/Tooltip/Tooltip.props.ts +3 -13
  84. package/src/components/Tooltip/Tooltip.tsx +68 -91
  85. package/src/types/index.ts +1 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @ilo-org/react
2
2
 
3
+ ## 0.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 4630eea87: Upgrade react storybook to 7.6.6
8
+
9
+ ### Patch Changes
10
+
11
+ - d20d3c750: Sync tooltip with twig
12
+ - 857b7b57b: Sync profile with twig
13
+ - Updated dependencies [08a2141cc]
14
+ - Updated dependencies [dea2d0a07]
15
+ - @ilo-org/styles@0.13.1
16
+
17
+ ## 0.9.1
18
+
19
+ ### Patch Changes
20
+
21
+ - afb53cabb: Sync hero with twig implementation
22
+ - Updated dependencies [df7080c80]
23
+ - Updated dependencies [c5eaabd55]
24
+ - Updated dependencies [720825342]
25
+ - Updated dependencies [6f86e7a94]
26
+ - Updated dependencies [94b03b9be]
27
+ - Updated dependencies [c54ce9923]
28
+ - Updated dependencies [6fe60e0d6]
29
+ - Updated dependencies [9ed7b873d]
30
+ - Updated dependencies [c173ec9f8]
31
+ - @ilo-org/styles@0.13.0
32
+
3
33
  ## 0.9.0
4
34
 
5
35
  ### Minor Changes
@@ -10,7 +10,7 @@ var components_FormControl_FormControl = require('../FormControl/FormControl.js'
10
10
  var hooks_usePrevious = require('../../hooks/usePrevious.js');
11
11
  require('../../GlobalCtx-97e4b433.js');
12
12
  require('../Tooltip/Tooltip.js');
13
- require('react-dom');
13
+ require('@popperjs/core');
14
14
  require('nanoid');
15
15
 
16
16
  const Checkbox = require$$0.forwardRef((props, ref) => {
@@ -9,7 +9,7 @@ require('../../hooks/useGlobalSettings.js');
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('../Fieldset/Fieldset.js');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
  require('../FormControl/FormControl.js');
14
14
  require('nanoid');
15
15
  require('../../hooks/usePrevious.js');
@@ -9,7 +9,7 @@ var components_FormControl_FormControl = require('../FormControl/FormControl.js'
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('nanoid');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
 
14
14
  const DatePicker = require$$0.forwardRef((props, ref) => {
15
15
  const { onChange, onBlur, disabled = false, error, id, name, placeholder, required, max, min, step, } = props;
@@ -10,7 +10,7 @@ require('../../GlobalCtx-97e4b433.js');
10
10
  require('../FormControl/FormControl.js');
11
11
  require('nanoid');
12
12
  require('../Tooltip/Tooltip.js');
13
- require('react-dom');
13
+ require('@popperjs/core');
14
14
 
15
15
 
16
16
 
@@ -9,7 +9,7 @@ var components_FormControl_FormControl = require('../FormControl/FormControl.js'
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('nanoid');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
 
14
14
  const Dropdown = require$$0.forwardRef((props, ref) => {
15
15
  const { autocomplete, onChange, onBlur, disabled = false, error, id, name, options, required, value, form, multiple, selectSize, } = props;
@@ -10,7 +10,7 @@ require('../../GlobalCtx-97e4b433.js');
10
10
  require('../FormControl/FormControl.js');
11
11
  require('nanoid');
12
12
  require('../Tooltip/Tooltip.js');
13
- require('react-dom');
13
+ require('@popperjs/core');
14
14
 
15
15
 
16
16
 
@@ -9,7 +9,7 @@ var classNames = require('classnames');
9
9
  var hooks_useGlobalSettings = require('../../hooks/useGlobalSettings.js');
10
10
  var components_Tooltip_Tooltip = require('../Tooltip/Tooltip.js');
11
11
  require('../../GlobalCtx-97e4b433.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
 
14
14
  // Create a new context for the error state
15
15
  const FieldsetErrorContext = require$$0.createContext({
@@ -8,7 +8,7 @@ require('classnames');
8
8
  require('../../hooks/useGlobalSettings.js');
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('../Tooltip/Tooltip.js');
11
- require('react-dom');
11
+ require('@popperjs/core');
12
12
 
13
13
 
14
14
 
@@ -9,7 +9,7 @@ var components_FormControl_FormControl = require('../FormControl/FormControl.js'
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('nanoid');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
 
14
14
  function formatBytes(bytes, decimals = 2) {
15
15
  if (!+bytes)
@@ -10,7 +10,7 @@ require('../../GlobalCtx-97e4b433.js');
10
10
  require('../FormControl/FormControl.js');
11
11
  require('nanoid');
12
12
  require('../Tooltip/Tooltip.js');
13
- require('react-dom');
13
+ require('@popperjs/core');
14
14
 
15
15
 
16
16
 
@@ -10,7 +10,7 @@ var hooks_useGlobalSettings = require('../../hooks/useGlobalSettings.js');
10
10
  var components_Tooltip_Tooltip = require('../Tooltip/Tooltip.js');
11
11
  require('tslib');
12
12
  require('../../GlobalCtx-97e4b433.js');
13
- require('react-dom');
13
+ require('@popperjs/core');
14
14
 
15
15
  // Calculates unique IDs for the internal accessibility elements
16
16
  // TODO: When we upgrade to React 8, this should use useId instead
@@ -9,7 +9,7 @@ require('../../hooks/useGlobalSettings.js');
9
9
  require('tslib');
10
10
  require('../../GlobalCtx-97e4b433.js');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
 
14
14
 
15
15
 
@@ -12,7 +12,7 @@ require('../../GlobalCtx-97e4b433.js');
12
12
  require('../SocialMedia/SocialMedia.js');
13
13
  require('../SocialMedia/index.js');
14
14
  require('../ContextMenu/ContextMenu.js');
15
- require('react-dom');
15
+ require('@popperjs/core');
16
16
 
17
17
  const HeroImage = ({ url, alt }) => {
18
18
  const { prefix } = hooks_useGlobalSettings();
@@ -22,14 +22,16 @@ const HeroImage = ({ url, alt }) => {
22
22
  const defaultSrc = sortedUrls[sortedUrls.length - 1].src;
23
23
  return (jsxRuntime.jsx("figure", Object.assign({ className: "hero--image" }, { children: jsxRuntime.jsxs("picture", { children: [sortedUrls.map((img) => (jsxRuntime.jsx("source", { srcSet: img.src, media: `(min-width: ${img.breakpoint}px)` }, img.breakpoint))), jsxRuntime.jsx("img", { className: imageClass, src: defaultSrc, alt: alt })] }) })));
24
24
  };
25
- const Hero = ({ justify = "start", align = "baseline", cardSize = "small", posterSize = "large", image, breadcrumb, heroCard, caption, }) => {
25
+ const Hero = ({ justify = "start", align = "baseline", cardSize = "small", posterSize = "large", theme = "dark", image, breadcrumb, heroCard, caption, gap, }) => {
26
26
  const baseClass = "hero";
27
27
  const justifyClass = `${baseClass}__card-justify__${justify}`;
28
28
  const alignClass = `${baseClass}__card-align__${align}`;
29
29
  const cardSizeClass = `${baseClass}__card-size__${cardSize}`;
30
30
  const posterSizeClass = `${baseClass}__poster-size__${posterSize}`;
31
- const heroClasses = classNames(baseClass, justifyClass, alignClass, cardSizeClass, posterSizeClass);
32
- return (jsxRuntime.jsxs("div", Object.assign({ className: heroClasses }, { children: [jsxRuntime.jsx("div", Object.assign({ className: "hero--background" }, { children: image && jsxRuntime.jsx(HeroImage, Object.assign({}, image)) })), breadcrumb && (jsxRuntime.jsx("div", Object.assign({ className: "hero--breadcrumbs" }, { children: jsxRuntime.jsx("div", Object.assign({ className: "hero--breadcrumbs--wrapper" }, { children: jsxRuntime.jsx(components_Breadcrumb_Breadcrumb, Object.assign({}, breadcrumb)) })) }))), jsxRuntime.jsx("div", Object.assign({ className: "hero--card" }, { children: jsxRuntime.jsx(components_Hero_HeroCard, Object.assign({}, heroCard)) })), caption && (jsxRuntime.jsx("div", Object.assign({ className: "hero--caption" }, { children: jsxRuntime.jsx("div", Object.assign({ className: "hero--caption--wrapper" }, { children: jsxRuntime.jsx(components_Tooltip_Tooltip, Object.assign({}, caption)) })) })))] })));
31
+ const themeClass = `${baseClass}__card-theme__${theme}`;
32
+ const gapClass = `${baseClass}__gap__${gap}`;
33
+ const heroClasses = classNames(baseClass, justifyClass, alignClass, cardSizeClass, posterSizeClass, themeClass, { [gapClass]: !!gap });
34
+ return (jsxRuntime.jsxs("div", Object.assign({ className: heroClasses }, { children: [jsxRuntime.jsx("div", Object.assign({ className: "hero--background" }, { children: image && jsxRuntime.jsx(HeroImage, Object.assign({}, image)) })), breadcrumb && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("div", Object.assign({ className: "hero--breadcrumbs" }, { children: jsxRuntime.jsx("div", Object.assign({ className: "hero--breadcrumbs--wrapper" }, { children: jsxRuntime.jsx(components_Breadcrumb_Breadcrumb, Object.assign({}, breadcrumb)) })) })) })), jsxRuntime.jsx("div", { className: "hero--card-offset" }), jsxRuntime.jsx("div", Object.assign({ className: "hero--card" }, { children: jsxRuntime.jsx(components_Hero_HeroCard, Object.assign({}, heroCard)) })), caption && (jsxRuntime.jsx("div", Object.assign({ className: "hero--caption" }, { children: jsxRuntime.jsx("div", Object.assign({ className: "hero--caption--wrapper" }, { children: jsxRuntime.jsx(components_Tooltip_Tooltip, Object.assign({}, caption)) })) })))] })));
33
35
  };
34
36
 
35
37
  module.exports = Hero;
@@ -11,7 +11,7 @@ require('../../GlobalCtx-97e4b433.js');
11
11
  require('../Breadcrumb/Breadcrumb.js');
12
12
  require('../ContextMenu/ContextMenu.js');
13
13
  require('../Tooltip/Tooltip.js');
14
- require('react-dom');
14
+ require('@popperjs/core');
15
15
  require('../SocialMedia/SocialMedia.js');
16
16
  require('../SocialMedia/index.js');
17
17
 
@@ -9,7 +9,7 @@ require('tslib');
9
9
  require('react');
10
10
  require('../../GlobalCtx-97e4b433.js');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
 
14
14
  const Input = ({ callback, disabled = false, error, helper, id, label, name, placeholder, required, tooltip, type = "text", }) => {
15
15
  const { prefix } = hooks_useGlobalSettings();
@@ -9,7 +9,7 @@ require('react');
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('../Fieldset/Fieldset.js');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
  require('../FormElement/FormElement.js');
14
14
 
15
15
 
@@ -11,7 +11,7 @@ require('../../GlobalCtx-97e4b433.js');
11
11
  require('../Input/Input.js');
12
12
  require('../Fieldset/Fieldset.js');
13
13
  require('../Tooltip/Tooltip.js');
14
- require('react-dom');
14
+ require('@popperjs/core');
15
15
  require('../FormElement/FormElement.js');
16
16
 
17
17
  const Navigation = ({ logo, mobilelogo, siteurl, tagline, primarynav, subnav, menulabel, menucloselabel, searchlabel, searchfield, languagelabel, languagecontextmenu, }) => {
@@ -12,7 +12,7 @@ require('../SearchField/SearchField.js');
12
12
  require('../Input/Input.js');
13
13
  require('../Fieldset/Fieldset.js');
14
14
  require('../Tooltip/Tooltip.js');
15
- require('react-dom');
15
+ require('@popperjs/core');
16
16
  require('../FormElement/FormElement.js');
17
17
 
18
18
 
@@ -9,7 +9,7 @@ var components_FormControl_FormControl = require('../FormControl/FormControl.js'
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('nanoid');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
 
14
14
  const NumberPicker = require$$0.forwardRef(({ onChange, onBlur, disabled = false, error, id, name, placeholder, required, max, min, step, }, ref) => {
15
15
  const { prefix } = hooks_useGlobalSettings();
@@ -10,7 +10,7 @@ require('../../GlobalCtx-97e4b433.js');
10
10
  require('../FormControl/FormControl.js');
11
11
  require('nanoid');
12
12
  require('../Tooltip/Tooltip.js');
13
- require('react-dom');
13
+ require('@popperjs/core');
14
14
 
15
15
 
16
16
 
@@ -7,13 +7,15 @@ require('tslib');
7
7
  require('react');
8
8
  require('../../GlobalCtx-97e4b433.js');
9
9
 
10
- const Profile = ({ avatar, className, description, link, name, role, }) => {
10
+ const Profile = ({ avatar, className, description, link, name, role, theme = "light", size = "large", }) => {
11
11
  const { prefix } = hooks_useGlobalSettings();
12
12
  const baseClass = `${prefix}--profile`;
13
13
  const profileClasses = classNames(className, {
14
14
  [baseClass]: true,
15
+ [`${baseClass}__theme__${theme}`]: theme,
16
+ [`${baseClass}__size__${size}`]: size,
15
17
  });
16
- return (jsxRuntime.jsxs("figure", Object.assign({ className: profileClasses }, { children: [jsxRuntime.jsx("img", { className: `${baseClass}--avatar`, src: avatar, alt: `Avatar for ${name}` }), jsxRuntime.jsxs("figcaption", Object.assign({ className: `${baseClass}--contents` }, { children: [jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--name id` }, { children: name })), role && jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--role id` }, { children: role })), description && (jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--description info` }, { children: description }))), link && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--link info`, href: link.url }, { children: jsxRuntime.jsx("span", { children: link.label }) })))] }))] })));
18
+ return (jsxRuntime.jsxs("figure", Object.assign({ className: profileClasses }, { children: [jsxRuntime.jsx("img", { className: `${baseClass}--avatar`, src: avatar, alt: `Avatar for ${name}` }), jsxRuntime.jsx("figcaption", { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--figcaption--content` }, { children: [jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--name` }, { children: name })), role && jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--role` }, { children: role }))] })) }), description && (jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--description` }, { children: description }))), link && (jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--link` }, { children: jsxRuntime.jsx("a", Object.assign({ href: link.url, target: "__blank", rel: "noopener noreferrer" }, { children: jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--link--label` }, { children: link.label })) })) })))] })));
17
19
  };
18
20
 
19
21
  module.exports = Profile;
@@ -10,7 +10,7 @@ var components_FormControl_FormControl = require('../FormControl/FormControl.js'
10
10
  var hooks_usePrevious = require('../../hooks/usePrevious.js');
11
11
  require('../../GlobalCtx-97e4b433.js');
12
12
  require('../Tooltip/Tooltip.js');
13
- require('react-dom');
13
+ require('@popperjs/core');
14
14
  require('nanoid');
15
15
 
16
16
  const Radio = require$$0.forwardRef(({ onChange, onBlur, disabled = false, error, id, name, required, checked, defaultChecked = false, value, }, ref) => {
@@ -9,7 +9,7 @@ require('../../hooks/useGlobalSettings.js');
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('../Fieldset/Fieldset.js');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
  require('../FormControl/FormControl.js');
14
14
  require('nanoid');
15
15
  require('../../hooks/usePrevious.js');
@@ -9,7 +9,7 @@ require('react');
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('../Fieldset/Fieldset.js');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
  require('../FormElement/FormElement.js');
14
14
 
15
15
  const SearchField = ({ action, callback, className, input, }) => {
@@ -10,7 +10,7 @@ require('../../GlobalCtx-97e4b433.js');
10
10
  require('../Input/Input.js');
11
11
  require('../Fieldset/Fieldset.js');
12
12
  require('../Tooltip/Tooltip.js');
13
- require('react-dom');
13
+ require('@popperjs/core');
14
14
  require('../FormElement/FormElement.js');
15
15
 
16
16
 
@@ -9,7 +9,7 @@ var components_FormControl_FormControl = require('../FormControl/FormControl.js'
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('nanoid');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
 
14
14
  const TextInput = require$$0.forwardRef(({ onChange, onBlur, error, id, name, placeholder, required, pattern, disabled = false, type = "text", }, ref) => {
15
15
  const { prefix } = hooks_useGlobalSettings();
@@ -10,7 +10,7 @@ require('../../GlobalCtx-97e4b433.js');
10
10
  require('../FormControl/FormControl.js');
11
11
  require('nanoid');
12
12
  require('../Tooltip/Tooltip.js');
13
- require('react-dom');
13
+ require('@popperjs/core');
14
14
 
15
15
  const basic = {
16
16
  disabled: false,
@@ -9,7 +9,7 @@ var components_FormControl_FormControl = require('../FormControl/FormControl.js'
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('nanoid');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
 
14
14
  const Textarea = require$$0.forwardRef((_a, ref) => {
15
15
  var { error, className, name, id } = _a, props = tslib.__rest(_a, ["error", "className", "name", "id"]);
@@ -10,7 +10,7 @@ require('../../GlobalCtx-97e4b433.js');
10
10
  require('../FormControl/FormControl.js');
11
11
  require('nanoid');
12
12
  require('../Tooltip/Tooltip.js');
13
- require('react-dom');
13
+ require('@popperjs/core');
14
14
 
15
15
  const placeholder = "It was a cold day in April and the clocks were striking thirteen....";
16
16
  const basic = {
@@ -9,7 +9,7 @@ var components_FormControl_FormControl = require('../FormControl/FormControl.js'
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
  require('nanoid');
11
11
  require('../Tooltip/Tooltip.js');
12
- require('react-dom');
12
+ require('@popperjs/core');
13
13
 
14
14
  const Toggle = require$$0.forwardRef(({ size = "medium", error = false, disabled = false, defaultChecked = false, required = false, id, name, onChange, onBlur, onClick, checked, className, }, ref) => {
15
15
  const { prefix } = hooks_useGlobalSettings();
@@ -10,7 +10,7 @@ require('classnames');
10
10
  require('../FormControl/FormControl.js');
11
11
  require('nanoid');
12
12
  require('../Tooltip/Tooltip.js');
13
- require('react-dom');
13
+ require('@popperjs/core');
14
14
 
15
15
  const Default = {
16
16
  defaultChecked: false,
@@ -4,100 +4,70 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var require$$0 = require('react');
5
5
  var classNames = require('classnames');
6
6
  var hooks_useGlobalSettings = require('../../hooks/useGlobalSettings.js');
7
- var ReactDOM = require('react-dom');
7
+ var core = require('@popperjs/core');
8
8
  require('tslib');
9
9
  require('../../GlobalCtx-97e4b433.js');
10
10
 
11
- const Tooltip = ({ className, children, icon, label, theme, id, }) => {
11
+ const Tooltip = ({ className, children, icon, label, iconTheme, theme, id, }) => {
12
12
  const { prefix } = hooks_useGlobalSettings();
13
13
  const baseClass = `${prefix}--tooltip`;
14
14
  const [isVisible, setIsVisible] = require$$0.useState(false);
15
- const [position, setPosition] = require$$0.useState({
16
- x: 0,
17
- y: 0,
18
- });
19
- const [arrowPlacement, setArrowPlacement] = require$$0.useState("center");
20
- const [arrowAlignment, setArrowAlignment] = require$$0.useState("left");
21
15
  const tooltipRef = require$$0.useRef(null);
16
+ const popperInstanceRef = require$$0.useRef(null);
17
+ const isLongTooltip = () => {
18
+ var _a, _b;
19
+ const tooltipText = (((_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.textContent) ||
20
+ ((_b = tooltipRef.current) === null || _b === void 0 ? void 0 : _b.innerText) ||
21
+ "").trim();
22
+ return tooltipText.length > 50;
23
+ };
22
24
  const tooltipClasses = classNames(className, {
23
25
  [baseClass]: true,
24
26
  [`${baseClass}--${theme}`]: theme,
25
- [`${baseClass}--alignment-${arrowAlignment}`]: arrowAlignment,
26
27
  [`${baseClass}--visible`]: isVisible,
28
+ [`${baseClass}--long`]: isLongTooltip(),
27
29
  });
28
- const tooltipArrowClasses = classNames(className, {
29
- [`${baseClass}--arrow`]: true,
30
- [`${baseClass}--arrow--placement-${arrowPlacement}`]: arrowPlacement,
30
+ const tooltipArrowClasses = classNames(`${baseClass}--arrow`, `${baseClass}--arrow--placement-negative`);
31
+ const iconClasses = classNames(className, `${baseClass}--wrapper`, {
32
+ [`${baseClass}--wrapper__icon ${baseClass}--wrapper__icon__theme__${theme}`]: icon,
33
+ [`${baseClass}--wrapper__icon__theme__${theme}`]: iconTheme,
31
34
  });
32
35
  const handleOnMouseOver = (e) => {
33
- // get hovered element reference
34
36
  const target = e.currentTarget;
35
- if (target) {
36
- const rect = target.getBoundingClientRect();
37
+ if (target && tooltipRef.current) {
38
+ const popperInstance = core.createPopper(target, tooltipRef.current, {
39
+ placement: "top",
40
+ modifiers: [
41
+ {
42
+ name: "offset",
43
+ options: {
44
+ offset: [0, 12], // Adjust offset as needed
45
+ },
46
+ },
47
+ {
48
+ name: "flip",
49
+ enabled: true,
50
+ },
51
+ {
52
+ name: "preventOverflow",
53
+ enabled: true,
54
+ },
55
+ ],
56
+ });
57
+ popperInstanceRef.current = popperInstance;
37
58
  setIsVisible(true);
38
- postMouseOver(rect);
39
- }
40
- };
41
- const postMouseOver = (hoverRect) => {
42
- // position the tooltip after showing it
43
- let placement = "center";
44
- let alignment = "left";
45
- const ttNode = ReactDOM.findDOMNode(tooltipRef.current);
46
- if (ttNode != null) {
47
- let x = 0, y = 0;
48
- const docWidth = document.documentElement.clientWidth, docHeight = document.documentElement.clientHeight;
49
- const rx = hoverRect.x + hoverRect.width, // most right x
50
- lx = hoverRect.x, // most left x
51
- ty = hoverRect.y, // most top y
52
- by = hoverRect.y + hoverRect.height; // most bottom y
53
- // tool tip rectange
54
- const ttRect = ttNode.getBoundingClientRect();
55
- const bRight = rx + ttRect.width <= window.scrollX + docWidth &&
56
- ty + ttRect.height <= window.scrollY + docHeight;
57
- const bLeft = lx - ttRect.width >= 0 &&
58
- ty + ttRect.height <= window.scrollY + docHeight;
59
- const bAbove = ty - ttRect.height >= 0;
60
- const bBellow = by + ttRect.height <= window.scrollY + docHeight;
61
- // the tooltip doesn't fit to the left
62
- if (bRight) {
63
- x = hoverRect.width + 16;
64
- y = icon ? -8 : 0;
65
- placement = "negative";
66
- alignment = "right";
67
- }
68
- else if (bBellow) {
69
- x = icon ? -8 : 0;
70
- y = hoverRect.height + 16;
71
- placement = "center";
72
- alignment = "bottom";
73
- }
74
- else if (bLeft) {
75
- x = -ttRect.width - 16;
76
- y = icon ? -8 : 0;
77
- placement = "negative";
78
- alignment = "left";
79
- }
80
- else if (bAbove) {
81
- x = icon ? -8 : 0;
82
- y = -ttRect.height - 16;
83
- placement = "center";
84
- alignment = "top";
85
- }
86
- setPosition({ x: x, y: y });
87
- setArrowPlacement(placement);
88
- setArrowAlignment(alignment);
89
59
  }
90
60
  };
91
61
  const handleOnMouseOut = () => {
62
+ if (popperInstanceRef.current) {
63
+ popperInstanceRef.current.destroy();
64
+ }
92
65
  setIsVisible(false);
93
66
  };
94
- const style = {
95
- // left: ((position.x + window.scrollX) + 'px'),
96
- // top: ((position.y + window.scrollY) + 'px')
97
- left: position.x + "px",
98
- top: position.y + "px",
67
+ const handleOnFocus = (e) => {
68
+ handleOnMouseOver(e);
99
69
  };
100
- return (jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--wrapper ${icon && "has-icon"}`, onMouseOver: handleOnMouseOver, onFocus: handleOnMouseOver, onMouseOut: handleOnMouseOut, onBlur: handleOnMouseOut, id: id }, { children: [!icon && jsxRuntime.jsx(jsxRuntime.Fragment, { children: children }), jsxRuntime.jsxs("span", Object.assign({ className: tooltipClasses, style: style, ref: tooltipRef }, { children: [jsxRuntime.jsx("span", { className: tooltipArrowClasses, role: "presentation" }), label] }))] })));
70
+ return (jsxRuntime.jsxs("div", Object.assign({ className: iconClasses, onMouseOver: handleOnMouseOver, onFocus: handleOnFocus, onMouseOut: handleOnMouseOut, onBlur: handleOnMouseOut, id: id }, { children: [!icon && jsxRuntime.jsx(jsxRuntime.Fragment, { children: children }), jsxRuntime.jsxs("span", Object.assign({ className: tooltipClasses, ref: tooltipRef, "data-id": id, id: "tooltip", role: "tooltip", "aria-hidden": !isVisible }, { children: [jsxRuntime.jsx("span", { "data-popper-arrow": true, className: tooltipArrowClasses, "data-placement": "negative", role: "presentation" }), label] }))] })));
101
71
  };
102
72
 
103
73
  module.exports = Tooltip;
@@ -7,7 +7,7 @@ require('classnames');
7
7
  require('../../hooks/useGlobalSettings.js');
8
8
  require('tslib');
9
9
  require('../../GlobalCtx-97e4b433.js');
10
- require('react-dom');
10
+ require('@popperjs/core');
11
11
 
12
12
 
13
13
 
@@ -69,6 +69,7 @@ require('../utils/triggerBrowserReflow.js');
69
69
  require('./FormControl/FormControl.js');
70
70
  require('nanoid');
71
71
  require('../hooks/usePrevious.js');
72
+ require('@popperjs/core');
72
73
  require('./Hero/HeroCard.js');
73
74
  require('./SocialMedia/SocialMedia.js');
74
75
  require('./Input/Input.js');
package/lib/cjs/index.js CHANGED
@@ -68,6 +68,7 @@ require('./utils/transitionEndListener.js');
68
68
  require('./utils/triggerBrowserReflow.js');
69
69
  require('./components/FormControl/FormControl.js');
70
70
  require('nanoid');
71
+ require('@popperjs/core');
71
72
  require('./hooks/usePrevious.js');
72
73
  require('@ilo-org/icons-react');
73
74
  require('./components/Hero/HeroCard.js');
@@ -8,7 +8,7 @@ import FormControl, { useFormControl } from '../FormControl/FormControl.js';
8
8
  import { usePrevious } from '../../hooks/usePrevious.js';
9
9
  import '../../GlobalCtx-7fb23cfa.js';
10
10
  import '../Tooltip/Tooltip.js';
11
- import 'react-dom';
11
+ import '@popperjs/core';
12
12
  import 'nanoid';
13
13
 
14
14
  const Checkbox = forwardRef((props, ref) => {
@@ -7,7 +7,7 @@ import '../../hooks/useGlobalSettings.js';
7
7
  import '../../GlobalCtx-7fb23cfa.js';
8
8
  import '../Fieldset/Fieldset.js';
9
9
  import '../Tooltip/Tooltip.js';
10
- import 'react-dom';
10
+ import '@popperjs/core';
11
11
  import '../FormControl/FormControl.js';
12
12
  import 'nanoid';
13
13
  import '../../hooks/usePrevious.js';
@@ -7,7 +7,7 @@ import FormControl, { useFormControl } from '../FormControl/FormControl.js';
7
7
  import '../../GlobalCtx-7fb23cfa.js';
8
8
  import 'nanoid';
9
9
  import '../Tooltip/Tooltip.js';
10
- import 'react-dom';
10
+ import '@popperjs/core';
11
11
 
12
12
  const DatePicker = forwardRef((props, ref) => {
13
13
  const { onChange, onBlur, disabled = false, error, id, name, placeholder, required, max, min, step, } = props;
@@ -8,4 +8,4 @@ import '../../GlobalCtx-7fb23cfa.js';
8
8
  import '../FormControl/FormControl.js';
9
9
  import 'nanoid';
10
10
  import '../Tooltip/Tooltip.js';
11
- import 'react-dom';
11
+ import '@popperjs/core';
@@ -7,7 +7,7 @@ import FormControl, { useFormControl } from '../FormControl/FormControl.js';
7
7
  import '../../GlobalCtx-7fb23cfa.js';
8
8
  import 'nanoid';
9
9
  import '../Tooltip/Tooltip.js';
10
- import 'react-dom';
10
+ import '@popperjs/core';
11
11
 
12
12
  const Dropdown = forwardRef((props, ref) => {
13
13
  const { autocomplete, onChange, onBlur, disabled = false, error, id, name, options, required, value, form, multiple, selectSize, } = props;
@@ -8,4 +8,4 @@ import '../../GlobalCtx-7fb23cfa.js';
8
8
  import '../FormControl/FormControl.js';
9
9
  import 'nanoid';
10
10
  import '../Tooltip/Tooltip.js';
11
- import 'react-dom';
11
+ import '@popperjs/core';
@@ -5,7 +5,7 @@ import classNames from 'classnames';
5
5
  import useGlobalSettings from '../../hooks/useGlobalSettings.js';
6
6
  import Tooltip from '../Tooltip/Tooltip.js';
7
7
  import '../../GlobalCtx-7fb23cfa.js';
8
- import 'react-dom';
8
+ import '@popperjs/core';
9
9
 
10
10
  // Create a new context for the error state
11
11
  const FieldsetErrorContext = createContext({