@geneui/components 3.0.0-next-1f133a9-25072025 → 3.0.0-next-e06ec94-05082025

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 (44) hide show
  1. package/ButtonGroup.js +6 -3
  2. package/Checkbox.js +3 -2
  3. package/Copy.js +1 -1
  4. package/ErrorFilled-f4226310.js +23 -0
  5. package/GeneUIProvider.js +1 -1
  6. package/GlobalHeader.js +4 -4
  7. package/HelperText.js +2 -20
  8. package/Info.js +1 -1
  9. package/KeyValue.js +1 -1
  10. package/Label.js +2 -2
  11. package/Logo.js +1 -1
  12. package/Menu.js +3 -3
  13. package/Modal.js +100 -0
  14. package/Navigation.js +4 -4
  15. package/Notification.js +131 -0
  16. package/Pagination.js +3 -2
  17. package/Pill.js +2 -2
  18. package/Popover.js +3 -3
  19. package/{PopoverBody-7cf8eaac.js → PopoverBody-7437f3ac.js} +2 -2
  20. package/Products.js +3 -3
  21. package/Profile.js +4 -4
  22. package/ProgressBar.js +3 -2
  23. package/QRCode.js +1 -1
  24. package/Radio.js +3 -2
  25. package/Rate.js +3 -2
  26. package/Spreadsheet.js +2 -2
  27. package/Switch.js +3 -2
  28. package/Tag.js +2 -2
  29. package/Text.js +2 -2
  30. package/TextField.js +3 -2
  31. package/Timeline.js +2 -2
  32. package/Tooltip.js +2 -2
  33. package/components/atoms/Text/Text.d.ts +5 -0
  34. package/components/molecules/Modal/Modal.d.ts +89 -0
  35. package/components/molecules/Modal/index.d.ts +1 -0
  36. package/components/molecules/Notification/Notification.d.ts +66 -0
  37. package/components/molecules/Notification/index.d.ts +1 -0
  38. package/{index-436ef692.js → index-b29adba3.js} +1 -1
  39. package/{index-508c4ed1.js → index-bb41315f.js} +1 -1
  40. package/{index-7f9888f0.js → index-d9a2e208.js} +1 -1
  41. package/index.d.ts +2 -0
  42. package/index.js +8 -5
  43. package/package.json +2 -2
  44. package/{useEllipsisDetection-4fcad8fc.js → useEllipsisDetection-36ecf9df.js} +1 -1
package/ButtonGroup.js CHANGED
@@ -6,16 +6,16 @@ import { Menu, MenuItem } from './Menu.js';
6
6
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
7
7
  import './ActivityRecent-b88e2ba8.js';
8
8
  import './Loader.js';
9
- import './PopoverBody-7cf8eaac.js';
9
+ import './PopoverBody-7437f3ac.js';
10
10
  import './floating-ui.react-a6c3b969.js';
11
11
  import 'react-dom';
12
12
  import './Info-0f0741e0.js';
13
13
  import './X-20da3b4a.js';
14
- import './index-436ef692.js';
14
+ import './index-b29adba3.js';
15
15
  import './Scrollbar.js';
16
16
  import 'prop-types';
17
17
  import './useDebounceCallback-999deae7.js';
18
- import './index-7f9888f0.js';
18
+ import './index-d9a2e208.js';
19
19
  import './index-a2688a52.js';
20
20
  import './CheckMark-34798545.js';
21
21
  import './ChevronRight-8074ab2e.js';
@@ -46,6 +46,7 @@ const ButtonGroup = ({ className, children, size = "medium" }) => {
46
46
  setChildArray(childrenArray);
47
47
  if (Array.isArray(clonedChildren) && (clonedChildren === null || clonedChildren === void 0 ? void 0 : clonedChildren.length) <= MAX_VISIBLE_BUTTONS) {
48
48
  setSplitChildren(clonedChildren);
49
+ setMenuData([]);
49
50
  }
50
51
  else {
51
52
  const visibleChildren = childrenArray.slice(0, MAX_VISIBLE_BUTTONS);
@@ -67,6 +68,8 @@ const ButtonGroup = ({ className, children, size = "medium" }) => {
67
68
  (_b = (_a = selectedChild.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a);
68
69
  }
69
70
  };
71
+ if (childArray.length === 0)
72
+ return null;
70
73
  return (React__default.createElement("div", { className: classNames("buttonGroup", className) },
71
74
  splitChildren,
72
75
  menuData.length > 0 && (React__default.createElement(React__default.Fragment, null,
package/Checkbox.js CHANGED
@@ -5,14 +5,15 @@ import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b
5
5
  import HelperText from './HelperText.js';
6
6
  import Label from './Label.js';
7
7
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
8
+ import './ErrorFilled-f4226310.js';
8
9
  import './TriangleAlert-ba250f4c.js';
9
10
  import './Tooltip.js';
10
11
  import './floating-ui.react-a6c3b969.js';
11
12
  import 'react-dom';
12
13
  import './index-a2688a52.js';
13
- import './index-7f9888f0.js';
14
+ import './index-d9a2e208.js';
14
15
  import './useDebounceCallback-999deae7.js';
15
- import './useEllipsisDetection-4fcad8fc.js';
16
+ import './useEllipsisDetection-36ecf9df.js';
16
17
  import './Info.js';
17
18
  import './Info-0f0741e0.js';
18
19
 
package/Copy.js CHANGED
@@ -9,7 +9,7 @@ import './style-inject.es-746bb8ed.js';
9
9
  import './floating-ui.react-a6c3b969.js';
10
10
  import 'react-dom';
11
11
  import './index-a2688a52.js';
12
- import './index-7f9888f0.js';
12
+ import './index-d9a2e208.js';
13
13
  import './useDebounceCallback-999deae7.js';
14
14
 
15
15
  var _excluded = ["size", "color"];
@@ -0,0 +1,23 @@
1
+ import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b88e2ba8.js';
2
+ import React__default from 'react';
3
+
4
+ var _excluded = ["size", "color"];
5
+ var SvgErrorFilled = function SvgErrorFilled(_ref) {
6
+ var _ref$size = _ref.size,
7
+ size = _ref$size === void 0 ? 24 : _ref$size,
8
+ _ref$color = _ref.color,
9
+ color = _ref$color === void 0 ? "currentColor" : _ref$color,
10
+ props = _objectWithoutProperties(_ref, _excluded);
11
+ return /*#__PURE__*/React__default.createElement("svg", _extends({
12
+ width: size,
13
+ height: size,
14
+ viewBox: "0 0 24 24",
15
+ fill: color,
16
+ xmlns: "http://www.w3.org/2000/svg"
17
+ }, props), /*#__PURE__*/React__default.createElement("path", {
18
+ d: "M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-.75 5.758a.75.75 0 1 1 1.5 0v5.243a.75.75 0 1 1-1.5 0v-5.243Zm.75 9.235a.915.915 0 1 1 0-1.83.915.915 0 0 1 0 1.83Z",
19
+ fill: color
20
+ }));
21
+ };
22
+
23
+ export { SvgErrorFilled as S };
package/GeneUIProvider.js CHANGED
@@ -1,4 +1,4 @@
1
- export { a as GeneUIDesignSystemContext, G as default } from './index-7f9888f0.js';
1
+ export { a as GeneUIDesignSystemContext, G as default } from './index-d9a2e208.js';
2
2
  import 'react';
3
3
  import './useDebounceCallback-999deae7.js';
4
4
  import './style-inject.es-746bb8ed.js';
package/GlobalHeader.js CHANGED
@@ -5,14 +5,14 @@ import Button from './Button.js';
5
5
  import Divider from './Divider.js';
6
6
  import Logo from './Logo.js';
7
7
  import { Products, ProductsMainSection, Product, ProductsSecondarySection } from './Products.js';
8
- import { S as SvgCaretDownFilled, P as Profile } from './index-508c4ed1.js';
8
+ import { S as SvgCaretDownFilled, P as Profile } from './index-bb41315f.js';
9
9
  import Text from './Text.js';
10
10
  import Loader from './Loader.js';
11
- import { P as Popover, a as PopoverBody } from './PopoverBody-7cf8eaac.js';
11
+ import { P as Popover, a as PopoverBody } from './PopoverBody-7437f3ac.js';
12
12
  import Scrollbar from './Scrollbar.js';
13
- import { a as useClickOutside } from './index-436ef692.js';
13
+ import { a as useClickOutside } from './index-b29adba3.js';
14
14
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
15
- import { a as GeneUIDesignSystemContext } from './index-7f9888f0.js';
15
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
16
16
  import './useDebounceCallback-999deae7.js';
17
17
  import './Badge.js';
18
18
  import './floating-ui.react-a6c3b969.js';
package/HelperText.js CHANGED
@@ -1,27 +1,9 @@
1
1
  import React__default from 'react';
2
2
  import { c as classNames } from './index-ce02421b.js';
3
- import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b88e2ba8.js';
3
+ import { S as SvgErrorFilled } from './ErrorFilled-f4226310.js';
4
4
  import { S as SvgTriangleAlert } from './TriangleAlert-ba250f4c.js';
5
5
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
6
-
7
- var _excluded = ["size", "color"];
8
- var SvgErrorFilled = function SvgErrorFilled(_ref) {
9
- var _ref$size = _ref.size,
10
- size = _ref$size === void 0 ? 24 : _ref$size,
11
- _ref$color = _ref.color,
12
- color = _ref$color === void 0 ? "currentColor" : _ref$color,
13
- props = _objectWithoutProperties(_ref, _excluded);
14
- return /*#__PURE__*/React__default.createElement("svg", _extends({
15
- width: size,
16
- height: size,
17
- viewBox: "0 0 24 24",
18
- fill: color,
19
- xmlns: "http://www.w3.org/2000/svg"
20
- }, props), /*#__PURE__*/React__default.createElement("path", {
21
- d: "M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-.75 5.758a.75.75 0 1 1 1.5 0v5.243a.75.75 0 1 1-1.5 0v-5.243Zm.75 9.235a.915.915 0 1 1 0-1.83.915.915 0 0 1 0 1.83Z",
22
- fill: color
23
- }));
24
- };
6
+ import './ActivityRecent-b88e2ba8.js';
25
7
 
26
8
  var css_248z = ".helperText{display:inline-flex;gap:var(--guit-ref-spacing-3xsmall);max-width:100%}.helperText_size_medium .helperText__text{font-family:var(--guit-sem-font-label-medium-default-semibold-font-family);font-size:var(--guit-sem-font-label-medium-default-semibold-font-size);font-weight:var(--guit-sem-font-label-medium-default-medium-font-weight);line-height:var(--guit-sem-font-label-medium-default-semibold-line-height)}.helperText_size_small .helperText__text{font-family:var(--guit-sem-font-label-small-default-medium-font-family);font-size:var(--guit-sem-font-label-small-default-medium-font-size);font-weight:var(--guit-sem-font-label-small-default-medium-font-weight);line-height:var(--guit-sem-font-label-small-default-medium-line-height)}.helperText_type_rest{color:var(--guit-sem-color-foreground-neutral-2)}.helperText_type_error{color:var(--guit-sem-color-foreground-error)}.helperText_type_warning{color:var(--guit-sem-color-foreground-neutral-2)}.helperText_type_warning .helperText__icon{color:var(--guit-sem-color-foreground-warning)}.helperText_disabled,.helperText_disabled .helperText__icon{color:var(--guit-sem-color-foreground-disabled)}.helperText__icon{flex:0 0 auto}";
27
9
  styleInject(css_248z);
package/Info.js CHANGED
@@ -7,7 +7,7 @@ import './ActivityRecent-b88e2ba8.js';
7
7
  import './floating-ui.react-a6c3b969.js';
8
8
  import 'react-dom';
9
9
  import './index-a2688a52.js';
10
- import './index-7f9888f0.js';
10
+ import './index-d9a2e208.js';
11
11
  import './useDebounceCallback-999deae7.js';
12
12
 
13
13
  var css_248z = ".info{border-radius:var(--guit-ref-radius-3xsmall);line-height:0}.info_appearance_default{color:var(--guit-sem-color-foreground-neutral-2)}.info_appearance_brand{color:var(--guit-sem-color-foreground-brand)}.info_appearance_inverse{color:var(--guit-sem-color-foreground-inverse)}.info_disabled{color:var(--guit-sem-color-foreground-disabled);pointer-events:none}";
package/KeyValue.js CHANGED
@@ -8,7 +8,7 @@ import './Tooltip.js';
8
8
  import './floating-ui.react-a6c3b969.js';
9
9
  import 'react-dom';
10
10
  import './index-a2688a52.js';
11
- import './index-7f9888f0.js';
11
+ import './index-d9a2e208.js';
12
12
  import './useDebounceCallback-999deae7.js';
13
13
 
14
14
  var css_248z = ".keyValue{display:inline-flex;max-width:100%}.keyValue_direction_vertical{flex-direction:column}.keyValue_direction_horizontal.keyValue_spaceBetween{width:100%}.keyValue__content{align-items:center;color:var(--guit-sem-color-foreground-neutral-2);display:flex;flex:1}.keyValue__value{color:var(--guit-sem-color-foreground-neutral-1);word-break:break-word}.keyValue_size_large{gap:var(--guit-ref-spacing-medium)}.keyValue_size_large .keyValue__content{gap:var(--guit-ref-spacing-xsmall)}.keyValue_size_large .keyValue__title,.keyValue_size_large .keyValue__value{font-family:var(--guit-sem-font-label-large-default-medium-font-family),sans-serif;font-size:var(--guit-sem-font-label-large-default-semibold-font-size);font-weight:var(--guit-sem-font-label-large-default-medium-font-weight);line-height:var(--guit-sem-font-label-large-default-semibold-line-height)}.keyValue_size_medium{gap:var(--guit-ref-spacing-medium)}.keyValue_size_medium .keyValue__content{gap:var(--guit-ref-spacing-xsmall)}.keyValue_size_medium .keyValue__title,.keyValue_size_medium .keyValue__value{font-family:var(--guit-sem-font-label-medium-default-semibold-font-family),sans-serif;font-size:var(--guit-sem-font-label-medium-default-semibold-font-size);font-weight:var(--guit-sem-font-label-medium-default-medium-font-weight);line-height:var(--guit-sem-font-label-medium-default-semibold-line-height)}";
package/Label.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import React__default, { useRef } from 'react';
2
2
  import { c as classNames } from './index-ce02421b.js';
3
3
  import Tooltip from './Tooltip.js';
4
- import { u as useEllipsisDetection } from './useEllipsisDetection-4fcad8fc.js';
4
+ import { u as useEllipsisDetection } from './useEllipsisDetection-36ecf9df.js';
5
5
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
6
6
  import Info from './Info.js';
7
7
  import './floating-ui.react-a6c3b969.js';
8
8
  import 'react-dom';
9
9
  import './index-a2688a52.js';
10
- import './index-7f9888f0.js';
10
+ import './index-d9a2e208.js';
11
11
  import './useDebounceCallback-999deae7.js';
12
12
  import './Info-0f0741e0.js';
13
13
  import './ActivityRecent-b88e2ba8.js';
package/Logo.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import React__default, { useContext } from 'react';
2
2
  import { c as classNames } from './index-ce02421b.js';
3
- import { a as GeneUIDesignSystemContext } from './index-7f9888f0.js';
3
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
4
4
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
5
5
  import './useDebounceCallback-999deae7.js';
6
6
 
package/Menu.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import React__default, { createContext, useState, useRef, useContext, useEffect, useMemo, Children, cloneElement } from 'react';
2
2
  import { c as classNames } from './index-ce02421b.js';
3
3
  import Loader from './Loader.js';
4
- import { P as Popover, a as PopoverBody } from './PopoverBody-7cf8eaac.js';
4
+ import { P as Popover, a as PopoverBody } from './PopoverBody-7437f3ac.js';
5
5
  import Scrollbar from './Scrollbar.js';
6
- import { a as GeneUIDesignSystemContext } from './index-7f9888f0.js';
7
- import { a as useClickOutside } from './index-436ef692.js';
6
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
7
+ import { a as useClickOutside } from './index-b29adba3.js';
8
8
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
9
9
  import { r as reactIsExports } from './index-a2688a52.js';
10
10
  import { S as SvgCheckMark } from './CheckMark-34798545.js';
package/Modal.js ADDED
@@ -0,0 +1,100 @@
1
+ import React__default, { useContext, useRef, useEffect } from 'react';
2
+ import { createPortal } from 'react-dom';
3
+ import { c as classNames } from './index-ce02421b.js';
4
+ import { S as SvgErrorFilled } from './ErrorFilled-f4226310.js';
5
+ import { S as SvgInfo } from './Info-0f0741e0.js';
6
+ import { S as SvgTriangleAlert } from './TriangleAlert-ba250f4c.js';
7
+ import { S as SvgX } from './X-20da3b4a.js';
8
+ import Button from './Button.js';
9
+ import Scrollbar from './Scrollbar.js';
10
+ import Text from './Text.js';
11
+ import ButtonGroup from './ButtonGroup.js';
12
+ import Tooltip from './Tooltip.js';
13
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
14
+ import { u as useEllipsisDetection } from './useEllipsisDetection-36ecf9df.js';
15
+ import { s as styleInject } from './style-inject.es-746bb8ed.js';
16
+ import './ActivityRecent-b88e2ba8.js';
17
+ import './Loader.js';
18
+ import 'prop-types';
19
+ import './useDebounceCallback-999deae7.js';
20
+ import './ThreeDotsHorizontal-479c2b4b.js';
21
+ import './Menu.js';
22
+ import './PopoverBody-7437f3ac.js';
23
+ import './floating-ui.react-a6c3b969.js';
24
+ import './index-b29adba3.js';
25
+ import './index-a2688a52.js';
26
+ import './CheckMark-34798545.js';
27
+ import './ChevronRight-8074ab2e.js';
28
+ import './Divider.js';
29
+
30
+ var css_248z = ".modal{background-color:var(--guit-sem-color-background-transparent-overlay-notheme-1);display:flex;height:100%;justify-content:center;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:1}.modal:not(.modal_position_top){align-items:center}.modal:not(.modal_position_top).modal_device_desktop{padding:var(--guit-ref-spacing-8xlarge)}.modal:not(.modal_position_top).modal_device_mobile:not(.modal_size_xxLarge){padding:var(--guit-ref-spacing-large)}.modal:not(.modal_position_top) .modal__wrapper{border-color:var(--guit-sem-color-border-neutral-2);border-radius:var(--guit-ref-radius-2xsmall);border-style:var(--guit-ref-border-style-solid);border-width:var(--guit-ref-border-width-thin)}.modal__header{background-color:var(--guit-sem-color-background-neutral-1-nudge);border-bottom:var(--guit-ref-border-width-thin) var(--guit-ref-border-style-solid) var(--guit-sem-color-border-neutral-2);height:var(--guit-sem-dimension-height-2xlarge);justify-content:space-between;padding:var(--guit-ref-spacing-large);width:100%}.modal__header,.modal__headerContent{align-items:center;display:flex;gap:var(--guit-ref-spacing-xsmall);min-width:1rem}.modal__icon{flex:0 0 auto}.modal__body{background-color:var(--guit-sem-color-background-neutral-1-nudge);height:100%;min-height:0;min-width:0;width:100%}.modal__content{height:100%;max-height:68.8rem;width:100%}.modal__footer{align-items:center;background-color:var(--guit-sem-color-background-neutral-1-nudge);border-top:var(--guit-ref-border-width-thin) var(--guit-ref-border-style-solid) var(--guit-sem-color-border-neutral-2);display:flex;gap:var(--guit-ref-spacing-medium);height:var(--guit-sem-dimension-height-2xlarge);padding:var(--guit-ref-spacing-medium) var(--guit-ref-spacing-large);width:100%}.modal__footer:has(.modal__buttonGroup:only-child){justify-content:flex-end}.modal__footer:not(:has(.modal__buttonGroup:only-child)){justify-content:space-between}.modal__title{text-transform:capitalize}.modal__paragraph,.modal__title{color:var(--guit-sem-color-foreground-neutral-2)}.modal__paragraph:not(:last-of-type){margin-bottom:var(--guit-sem-font-body-large-default-medium-paragraph-spacing)}.modal_device_desktop.modal_size_xxLarge .modal__wrapper{max-width:144rem}.modal_device_desktop.modal_size_xLarge .modal__wrapper{max-width:108rem}.modal_device_desktop.modal_size_large .modal__wrapper{max-width:72rem}.modal_device_desktop.modal_size_medium .modal__wrapper{max-width:48rem}.modal_device_desktop.modal_size_small .modal__wrapper{max-width:36rem}.modal_device_mobile.modal_size_xxLarge .modal__wrapper{border:none;border-radius:0;height:100%}.modal_device_mobile.modal_size_xxLarge .modal__content{max-height:100%}.modal_device_mobile.modal_size_small .modal__wrapper{max-width:32.8rem}.modal_position_top{align-items:flex-start}.modal_position_top.modal_device_desktop{padding:0 var(--guit-ref-spacing-8xlarge) var(--guit-ref-spacing-8xlarge) var(--guit-ref-spacing-8xlarge)}.modal_position_top.modal_device_mobile{padding:0 var(--guit-ref-spacing-large) var(--guit-ref-spacing-large) var(--guit-ref-spacing-large)}.modal_position_top .modal__wrapper{border-end-end-radius:var(--guit-ref-radius-2xsmall);border-end-start-radius:var(--guit-ref-radius-2xsmall);border-top-width:0}.modal_withPadding .modal__content{padding:var(--guit-ref-spacing-large)}.modal__wrapper{box-shadow:var(--guit-sem-shadow-floating-3-position-x-1) var(--guit-sem-shadow-floating-3-position-y-1) var(--guit-sem-shadow-floating-3-blur-1) var(--guit-sem-shadow-floating-3-spread-1) var(--guit-sem-color-floating-3-rgba-1),var(--guit-sem-shadow-floating-3-position-x-2) var(--guit-sem-shadow-floating-3-position-y-2) var(--guit-sem-shadow-floating-3-position-y-1) var(--guit-sem-shadow-floating-3-spread-2) var(--guit-sem-color-floating-3-rgba-2);display:grid;grid-template-columns:12fr;grid-template-rows:auto 10fr auto;max-height:100%;overflow:hidden;width:100%}.modal_status_informative{color:var(--guit-sem-color-foreground-neutral-2)}.modal_status_warning{color:var(--guit-sem-color-foreground-warning)}.modal_status_error{color:var(--guit-sem-color-foreground-error)}";
31
+ styleInject(css_248z);
32
+
33
+ const STATUS_ICONS = {
34
+ informative: SvgInfo,
35
+ warning: SvgTriangleAlert,
36
+ error: SvgErrorFilled
37
+ };
38
+ /**
39
+ * Modal component displays content in a layer above the main application, effectively focusing the user's attention on a specific task or information. It is often used for actions that require user input, such as confirmation dialogs, forms, or important notifications.
40
+ */
41
+ const Modal = ({ className, open, title, hasCloseButton, shouldCloseOnEscapePress = false, shouldCloseOnOverlayClick = false, onClose, status, children, size = "medium", withPadding = true, position = "center", footerContent, actions, lockBodyScroll }) => {
42
+ const { geneUIProviderRef, breakpoint } = useContext(GeneUIDesignSystemContext);
43
+ const providerCurrent = geneUIProviderRef.current;
44
+ const titleRef = useRef(null);
45
+ const isMobileBreakpoint = breakpoint === null || breakpoint === void 0 ? void 0 : breakpoint.isMobileBreakpoint;
46
+ const isTruncated = useEllipsisDetection(titleRef);
47
+ const sizeMap = {
48
+ xxLarge: "xxLarge",
49
+ xLarge: isMobileBreakpoint ? "xxLarge" : "xLarge",
50
+ large: isMobileBreakpoint ? "small" : "large",
51
+ medium: isMobileBreakpoint ? "small" : "medium",
52
+ small: "small"
53
+ };
54
+ useEffect(() => {
55
+ const handleKeyDown = (event) => {
56
+ if (shouldCloseOnEscapePress && event.key === "Escape") {
57
+ onClose === null || onClose === void 0 ? void 0 : onClose();
58
+ }
59
+ };
60
+ if (open) {
61
+ document.addEventListener("keydown", handleKeyDown);
62
+ if (lockBodyScroll) {
63
+ document.body.style.overflow = "hidden";
64
+ }
65
+ }
66
+ return () => {
67
+ document.removeEventListener("keydown", handleKeyDown);
68
+ if (lockBodyScroll) {
69
+ document.body.style.overflow = "unset";
70
+ }
71
+ };
72
+ }, [open, shouldCloseOnEscapePress, onClose]);
73
+ const handleOverlayClick = (event) => {
74
+ if (shouldCloseOnOverlayClick && event.target === event.currentTarget) {
75
+ onClose === null || onClose === void 0 ? void 0 : onClose();
76
+ }
77
+ };
78
+ const IconComponent = status ? STATUS_ICONS[status] : null;
79
+ const modalContent = (React__default.createElement("div", { className: classNames(`modal modal_device_${isMobileBreakpoint ? "mobile" : "desktop"} modal_size_${sizeMap[size]} `, `modal_position_${isMobileBreakpoint && (size === "xxLarge" || size === "xLarge") ? "center" : position}`, className), onClick: handleOverlayClick, role: "presentation" },
80
+ React__default.createElement("div", { className: classNames("modal__wrapper", { modal_withPadding: withPadding }), role: "dialog", "aria-modal": "true", "aria-labelledby": title ? "modal-title" : undefined },
81
+ (hasCloseButton || title) && (React__default.createElement("div", { className: "modal__header" },
82
+ React__default.createElement("div", { className: "modal__headerContent" }, title && (React__default.createElement(React__default.Fragment, null,
83
+ IconComponent && (React__default.createElement(IconComponent, { className: `modal_status_${status} modal__icon`, size: 20 })),
84
+ React__default.createElement(Tooltip, { text: title, isVisible: isTruncated },
85
+ React__default.createElement(Text, { id: "modal-title", variant: "labelLargeSemibold", className: "modal__title ellipsis-text", as: "h1", ref: titleRef }, title))))),
86
+ hasCloseButton && (React__default.createElement(Button, { size: "small", Icon: SvgX, type: "button", layout: "text", appearance: "secondary", onClick: onClose })))),
87
+ React__default.createElement("div", { className: "modal__body" },
88
+ React__default.createElement(Scrollbar, null,
89
+ React__default.createElement("div", { className: "modal__content" }, typeof children === "string" ? (React__default.createElement(Text, { variant: "bodyLargeMedium", className: "modal__paragraph", as: "p" }, children)) : (children)))),
90
+ (actions || footerContent) && (React__default.createElement("div", { className: "modal__footer" },
91
+ footerContent && React__default.createElement("div", { className: "modal__footerContent" }, footerContent),
92
+ actions && actions.length > 0 && (React__default.createElement(ButtonGroup, { className: "modal__buttonGroup", size: "medium" }, actions.map((action) => {
93
+ const { children: buttonChildren } = action;
94
+ const key = `action-${buttonChildren}`;
95
+ return buttonChildren ? (React__default.createElement(Button, Object.assign({ key: key }, action), buttonChildren)) : null;
96
+ }))))))));
97
+ return React__default.createElement(React__default.Fragment, null, providerCurrent && open ? createPortal(modalContent, providerCurrent) : null);
98
+ };
99
+
100
+ export { Modal as default };
package/Navigation.js CHANGED
@@ -4,20 +4,20 @@ import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b
4
4
  import { S as SvgThreeDotsHorizontal } from './ThreeDotsHorizontal-479c2b4b.js';
5
5
  import { S as SvgX } from './X-20da3b4a.js';
6
6
  import Button from './Button.js';
7
- import { P as Popover, a as PopoverBody } from './PopoverBody-7cf8eaac.js';
7
+ import { P as Popover, a as PopoverBody } from './PopoverBody-7437f3ac.js';
8
8
  import Scrollbar from './Scrollbar.js';
9
9
  import { Menu, MenuItem } from './Menu.js';
10
10
  import { a as SvgChevronRight } from './ChevronRight-8074ab2e.js';
11
11
  import Text from './Text.js';
12
12
  import Tooltip from './Tooltip.js';
13
- import { u as useEllipsisDetection } from './useEllipsisDetection-4fcad8fc.js';
14
- import { a as GeneUIDesignSystemContext, u as useWindowSize } from './index-7f9888f0.js';
13
+ import { u as useEllipsisDetection } from './useEllipsisDetection-36ecf9df.js';
14
+ import { a as GeneUIDesignSystemContext, u as useWindowSize } from './index-d9a2e208.js';
15
15
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
16
16
  import './Loader.js';
17
17
  import './floating-ui.react-a6c3b969.js';
18
18
  import 'react-dom';
19
19
  import './Info-0f0741e0.js';
20
- import './index-436ef692.js';
20
+ import './index-b29adba3.js';
21
21
  import 'prop-types';
22
22
  import './useDebounceCallback-999deae7.js';
23
23
  import './index-a2688a52.js';
@@ -0,0 +1,131 @@
1
+ import React__default, { useContext } from 'react';
2
+ import { createPortal } from 'react-dom';
3
+ import { c as classNames } from './index-ce02421b.js';
4
+ import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b88e2ba8.js';
5
+ import { S as SvgErrorFilled } from './ErrorFilled-f4226310.js';
6
+ import { S as SvgTriangleAlert } from './TriangleAlert-ba250f4c.js';
7
+ import { S as SvgX } from './X-20da3b4a.js';
8
+ import Button from './Button.js';
9
+ import Text from './Text.js';
10
+ import ButtonGroup from './ButtonGroup.js';
11
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
12
+ import { s as styleInject } from './style-inject.es-746bb8ed.js';
13
+ import './Loader.js';
14
+ import './ThreeDotsHorizontal-479c2b4b.js';
15
+ import './Menu.js';
16
+ import './PopoverBody-7437f3ac.js';
17
+ import './floating-ui.react-a6c3b969.js';
18
+ import './Info-0f0741e0.js';
19
+ import './index-b29adba3.js';
20
+ import './Scrollbar.js';
21
+ import 'prop-types';
22
+ import './useDebounceCallback-999deae7.js';
23
+ import './index-a2688a52.js';
24
+ import './CheckMark-34798545.js';
25
+ import './ChevronRight-8074ab2e.js';
26
+ import './Divider.js';
27
+
28
+ var _excluded$2 = ["size", "color"];
29
+ var SvgCheckMarkCircleFilled = function SvgCheckMarkCircleFilled(_ref) {
30
+ var _ref$size = _ref.size,
31
+ size = _ref$size === void 0 ? 24 : _ref$size,
32
+ _ref$color = _ref.color,
33
+ color = _ref$color === void 0 ? "currentColor" : _ref$color,
34
+ props = _objectWithoutProperties(_ref, _excluded$2);
35
+ return /*#__PURE__*/React__default.createElement("svg", _extends({
36
+ width: size,
37
+ height: size,
38
+ viewBox: "0 0 24 24",
39
+ fill: color,
40
+ xmlns: "http://www.w3.org/2000/svg"
41
+ }, props), /*#__PURE__*/React__default.createElement("path", {
42
+ d: "M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm4.139 8.192-5.18 6.083a.737.737 0 0 1-.555.258h-.005a.73.73 0 0 1-.551-.25l-2.55-2.896a.733.733 0 1 1 1.101-.97l1.99 2.259 4.63-5.437a.735.735 0 1 1 1.12.953Z",
43
+ fill: color
44
+ }));
45
+ };
46
+
47
+ var _excluded$1 = ["size", "color"];
48
+ var SvgCircleInfo = function SvgCircleInfo(_ref) {
49
+ var _ref$size = _ref.size,
50
+ size = _ref$size === void 0 ? 24 : _ref$size,
51
+ _ref$color = _ref.color,
52
+ color = _ref$color === void 0 ? "currentColor" : _ref$color,
53
+ props = _objectWithoutProperties(_ref, _excluded$1);
54
+ return /*#__PURE__*/React__default.createElement("svg", _extends({
55
+ width: size,
56
+ height: size,
57
+ viewBox: "0 0 24 24",
58
+ fill: color,
59
+ xmlns: "http://www.w3.org/2000/svg"
60
+ }, props), /*#__PURE__*/React__default.createElement("path", {
61
+ d: "M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm.75 14.243a.75.75 0 1 1-1.5 0v-5.243a.75.75 0 1 1 1.5 0v5.243Zm-.75-7.406a.914.914 0 1 1 0-1.829.914.914 0 0 1 0 1.829Z",
62
+ fill: color
63
+ }));
64
+ };
65
+
66
+ var _excluded = ["size", "color"];
67
+ var SvgLightBulb = function SvgLightBulb(_ref) {
68
+ var _ref$size = _ref.size,
69
+ size = _ref$size === void 0 ? 24 : _ref$size,
70
+ _ref$color = _ref.color,
71
+ color = _ref$color === void 0 ? "currentColor" : _ref$color,
72
+ props = _objectWithoutProperties(_ref, _excluded);
73
+ return /*#__PURE__*/React__default.createElement("svg", _extends({
74
+ width: size,
75
+ height: size,
76
+ viewBox: "0 0 24 24",
77
+ fill: color,
78
+ xmlns: "http://www.w3.org/2000/svg"
79
+ }, props), /*#__PURE__*/React__default.createElement("path", {
80
+ d: "m8.751 20.256.046.167a2.25 2.25 0 0 0 2.147 1.576h2.11l.175-.007a2.248 2.248 0 0 0 2.018-1.735l.291-1.258h-7.077l.29 1.257Z",
81
+ fill: color
82
+ }), /*#__PURE__*/React__default.createElement("path", {
83
+ d: "M12 2.001a7.25 7.25 0 0 0-7.25 7.25 7.97 7.97 0 0 0 2.767 5.84c.035.034.06.078.071.125l.526 2.283h7.772l.528-2.283a.24.24 0 0 1 .071-.124 7.976 7.976 0 0 0 2.765-5.84 7.25 7.25 0 0 0-7.25-7.25Z",
84
+ fill: color
85
+ }));
86
+ };
87
+
88
+ var css_248z = ".notification{border-inline-start:var(--guit-ref-border-width-thicker) var(--guit-ref-border-style-solid);border-radius:var(--guit-ref-radius-3xsmall);display:flex;flex-direction:column;gap:var(--guit-ref-spacing-medium);max-width:32rem;overflow:hidden;padding:var(--guit-ref-spacing-large);width:100%}.notification_variant_sectionMessage{min-width:16rem}.notification_variant_sectionMessage.notification_status_informative{background-color:var(--guit-sem-color-background-informative)}.notification_variant_sectionMessage.notification_status_success{background-color:var(--guit-sem-color-background-success-1)}.notification_variant_sectionMessage.notification_status_warning{background-color:var(--guit-sem-color-background-warning-1)}.notification_variant_sectionMessage.notification_status_error{background-color:var(--guit-sem-color-background-error-1)}.notification_variant_sectionMessage.notification_status_insight{background-color:var(--guit-sem-color-background-recommendation-1)}.notification_variant_toast{background-color:var(--guit-sem-color-background-neutral-1);box-shadow:var(--guit-sem-shadow-floating-3-position-x-1) var(--guit-sem-shadow-floating-3-position-y-1) var(--guit-sem-shadow-floating-3-blur-1) var(--guit-sem-shadow-floating-3-spread-1) var(--guit-sem-color-floating-3-rgba-1),var(--guit-sem-shadow-floating-3-position-x-2) var(--guit-sem-shadow-floating-3-position-y-2) var(--guit-sem-shadow-floating-3-blur-2) var(--guit-sem-shadow-floating-3-spread-2) var(--guit-sem-color-floating-3-rgba-2);max-width:32rem;min-width:24rem;position:fixed;right:0;top:0}.notification_status_informative{border-inline-start-color:var(--guit-sem-color-border-informative)}.notification_status_informative .notification__icon{color:var(--guit-sem-color-foreground-informative)}.notification_status_success{border-inline-start-color:var(--guit-sem-color-border-success)}.notification_status_success .notification__icon{color:var(--guit-sem-color-foreground-success)}.notification_status_warning{border-inline-start-color:var(--guit-sem-color-border-warning)}.notification_status_warning .notification__icon{color:var(--guit-sem-color-foreground-warning)}.notification_status_error{border-inline-start-color:var(--guit-sem-color-border-error)}.notification_status_error .notification__icon{color:var(--guit-sem-color-foreground-error)}.notification_status_insight{border-inline-start-color:var(--guit-sem-color-border-recommendation)}.notification_status_insight .notification__icon{color:var(--guit-sem-color-foreground-recommendation)}.notification__wrapper{align-items:flex-start;display:flex;gap:var(--guit-ref-spacing-medium);width:100%}.notification__button,.notification__icon{align-items:center;display:flex;flex:0 0 auto;justify-content:center}.notification__icon{height:var(--guit-sem-dimension-height-small-nudge);width:var(--guit-sem-dimension-width-small-nudge)}.notification__actions{display:flex;justify-content:flex-end}.notification__content{align-items:flex-start;display:flex;gap:var(--guit-ref-spacing-xsmall);width:100%}.notification__textGroup{display:flex;flex-direction:column;gap:var(--guit-ref-spacing-3xsmall);width:100%}.notification__description,.notification__title{color:var(--guit-sem-color-foreground-neutral-2)}";
89
+ styleInject(css_248z);
90
+
91
+ const STATUS_ICONS = {
92
+ informative: SvgCircleInfo,
93
+ success: SvgCheckMarkCircleFilled,
94
+ warning: SvgTriangleAlert,
95
+ error: SvgErrorFilled,
96
+ insight: SvgLightBulb
97
+ };
98
+ /**
99
+ * Notification component encompasses various types of messages, including toast notifications and section messages, to provide feedback to users in a clear and structured manner. Notifications inform users about system events, updates, or the status of their actions, ensuring that important information is communicated effectively.
100
+ */
101
+ const Notification = ({ className, open, variant = "toast", onClose, status = "informative", title, description, primaryActionText, secondaryActionText, onPrimaryActionClick, onSecondaryActionClick, actionsButtonsSize }) => {
102
+ const { geneUIProviderRef } = useContext(GeneUIDesignSystemContext);
103
+ const finalStatus = variant === "toast" && status === "insight" ? "informative" : status;
104
+ const IconComponent = STATUS_ICONS[finalStatus];
105
+ const notificationContent = (React__default.createElement("div", { role: "alert", "aria-live": "assertive", className: classNames(`notification notification_variant_${variant} notification_status_${finalStatus}`, className) },
106
+ React__default.createElement("div", { className: "notification__wrapper" },
107
+ React__default.createElement("div", { className: "notification__content" },
108
+ React__default.createElement(IconComponent, { className: "notification__icon" }),
109
+ React__default.createElement("div", { className: "notification__textGroup" },
110
+ title && (React__default.createElement(Text, { as: "h6", variant: "labelMediumSemibold", className: "notification__title" }, title)),
111
+ description && (React__default.createElement(Text, { as: "p", variant: "bodyMediumMedium", className: "notification__description" }, description)))),
112
+ React__default.createElement(Button, { appearance: "secondary", layout: "text", size: "small", className: "notification__button", onClick: onClose, Icon: SvgX })),
113
+ React__default.createElement(ButtonGroup, { className: "notification__actions", size: actionsButtonsSize },
114
+ !!secondaryActionText && (React__default.createElement(Button, { appearance: "secondary", className: "notification__button", onClick: onSecondaryActionClick, layout: "text" }, secondaryActionText)),
115
+ !!primaryActionText && (React__default.createElement(Button, { appearance: "primary", className: "notification__button", onClick: onPrimaryActionClick }, primaryActionText)))));
116
+ if (!open)
117
+ return null;
118
+ if (variant === "toast") {
119
+ const providerCurrent = geneUIProviderRef.current;
120
+ if (providerCurrent) {
121
+ return createPortal(notificationContent, providerCurrent);
122
+ }
123
+ return null;
124
+ }
125
+ if (variant === "sectionMessage") {
126
+ return notificationContent;
127
+ }
128
+ return null;
129
+ };
130
+
131
+ export { Notification as default };
package/Pagination.js CHANGED
@@ -9,15 +9,16 @@ import { s as styleInject } from './style-inject.es-746bb8ed.js';
9
9
  import './Loader.js';
10
10
  import './X-20da3b4a.js';
11
11
  import './HelperText.js';
12
+ import './ErrorFilled-f4226310.js';
12
13
  import './TriangleAlert-ba250f4c.js';
13
14
  import './Label.js';
14
15
  import './Tooltip.js';
15
16
  import './floating-ui.react-a6c3b969.js';
16
17
  import 'react-dom';
17
18
  import './index-a2688a52.js';
18
- import './index-7f9888f0.js';
19
+ import './index-d9a2e208.js';
19
20
  import './useDebounceCallback-999deae7.js';
20
- import './useEllipsisDetection-4fcad8fc.js';
21
+ import './useEllipsisDetection-36ecf9df.js';
21
22
  import './Info.js';
22
23
  import './Info-0f0741e0.js';
23
24
  import './Text.js';
package/Pill.js CHANGED
@@ -2,13 +2,13 @@ import React__default, { useState, useRef, useEffect } from 'react';
2
2
  import { c as classNames } from './index-ce02421b.js';
3
3
  import { S as SvgCircleFilled } from './CircleFilled-19a9ec62.js';
4
4
  import Tooltip from './Tooltip.js';
5
- import { u as useEllipsisDetection } from './useEllipsisDetection-4fcad8fc.js';
5
+ import { u as useEllipsisDetection } from './useEllipsisDetection-36ecf9df.js';
6
6
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
7
7
  import './ActivityRecent-b88e2ba8.js';
8
8
  import './floating-ui.react-a6c3b969.js';
9
9
  import 'react-dom';
10
10
  import './index-a2688a52.js';
11
- import './index-7f9888f0.js';
11
+ import './index-d9a2e208.js';
12
12
  import './useDebounceCallback-999deae7.js';
13
13
 
14
14
  var css_248z = ".pill{align-items:center;display:inline-flex;max-width:100%;vertical-align:top}.pill_icon_after{flex-direction:row-reverse}.pill_size_medium:not(.pill_icon_only){gap:var(--guit-ref-spacing-xsmall);padding-bottom:var(--guit-ref-spacing-2xsmall);padding-top:var(--guit-ref-spacing-2xsmall)}.pill_size_medium:not(.pill_icon_before,.pill_size_medium.pill_icon_after,.pill_size_medium.pill_icon_only){min-width:var(--guit-sem-dimension-width-large);padding-inline-end:var(--guit-ref-spacing-medium);padding-inline-start:var(--guit-ref-spacing-medium)}.pill_size_medium.pill_icon_after,.pill_size_medium.pill_icon_before{min-width:var(--guit-sem-dimension-width-3xlarge)}.pill_size_medium.pill_icon_before{padding-inline-end:var(--guit-ref-spacing-medium);padding-inline-start:var(--guit-ref-spacing-xsmall)}.pill_size_medium.pill_icon_after{padding-inline-end:var(--guit-ref-spacing-xsmall);padding-inline-start:var(--guit-ref-spacing-medium)}.pill_size_medium.pill_icon_only{min-width:var(--guit-sem-dimension-width-medium);padding:var(--guit-ref-spacing-2xsmall)}.pill_size_small:not(.pill_icon_only){gap:var(--guit-ref-spacing-2xsmall);padding-bottom:var(--guit-ref-spacing-4xsmall);padding-top:var(--guit-ref-spacing-4xsmall)}.pill_size_small:not(.pill_icon_before,.pill_size_small.pill_icon_after,.pill_size_small.pill_icon_only){min-width:var(--guit-sem-dimension-width-large);padding-inline-end:var(--guit-ref-spacing-medium);padding-inline-start:var(--guit-ref-spacing-medium)}.pill_size_small.pill_icon_after,.pill_size_small.pill_icon_before{min-width:var(--guit-sem-dimension-width-3xlarge)}.pill_size_small.pill_icon_before{padding-inline-end:var(--guit-ref-spacing-medium);padding-inline-start:var(--guit-ref-spacing-xsmall)}.pill_size_small.pill_icon_after{padding-inline-end:var(--guit-ref-spacing-xsmall);padding-inline-start:var(--guit-ref-spacing-medium)}.pill_size_small.pill_icon_only{min-width:var(--guit-sem-dimension-width-small);padding:var(--guit-ref-spacing-4xsmall)}.pill_size_medium:not(.pill_icon_only),.pill_size_small:not(.pill_icon_only){font-family:var(--guit-sem-font-label-medium-default-semibold-font-family);font-size:var(--guit-sem-font-label-medium-default-semibold-font-size);font-weight:var(--guit-sem-font-label-medium-default-medium-font-weight);line-height:var(--guit-sem-font-label-medium-default-semibold-line-height)}.pill_size_smallNudge{gap:var(--guit-ref-spacing-3xsmall);padding-bottom:var(--guit-ref-spacing-4xsmall);padding-top:var(--guit-ref-spacing-4xsmall)}.pill_size_smallNudge:not(.pill_icon_only){font-family:var(--guit-sem-font-label-small-default-medium-font-family);font-size:var(--guit-sem-font-label-small-default-medium-font-size);font-weight:var(--guit-sem-font-label-small-default-medium-font-weight);line-height:var(--guit-sem-font-label-small-default-medium-line-height)}.pill_size_smallNudge:not(.pill_icon_before,.pill_size_smallNudge.pill_icon_after,.pill_size_smallNudge.pill_icon_only){min-width:var(--guit-sem-dimension-width-medium);padding-inline-end:var(--guit-ref-spacing-xsmall);padding-inline-start:var(--guit-ref-spacing-xsmall)}.pill_size_smallNudge.pill_icon_after,.pill_size_smallNudge.pill_icon_before{min-width:var(--guit-sem-dimension-width-large)}.pill_size_smallNudge.pill_icon_before{padding-inline-end:var(--guit-ref-spacing-xsmall);padding-inline-start:var(--guit-ref-spacing-3xsmall)}.pill_size_smallNudge.pill_icon_after{padding-inline-end:var(--guit-ref-spacing-3xsmall);padding-inline-start:var(--guit-ref-spacing-xsmall)}.pill_size_smallNudge.pill_icon_only{min-width:var(--guit-sem-dimension-width-small-nudge);padding:var(--guit-ref-spacing-4xsmall)}.pill_fill.pill_size_medium,.pill_fill.pill_size_small{border-radius:var(--guit-ref-radius-3xsmall)}.pill_fill.pill_size_smallNudge{border-radius:var(--guit-ref-radius-4xsmall)}.pill_fill.pill_color_informative{background-color:var(--guit-sem-color-background-informative)}.pill_fill.pill_color_neutral{background-color:var(--guit-sem-color-background-neutral-3)}.pill_fill.pill_color_error{background-color:var(--guit-sem-color-background-error-1)}.pill_fill.pill_color_success{background-color:var(--guit-sem-color-background-success-1)}.pill_fill.pill_color_warning{background-color:var(--guit-sem-color-background-warning-1)}.pill_fill.pill_color_purple{background-color:var(--guit-sem-color-background-accent-purple-1)}.pill_fill.pill_color_lagoon{background-color:var(--guit-sem-color-background-accent-lagoon-1)}.pill_fill.pill_color_magenta{background-color:var(--guit-sem-color-background-accent-magenta-1)}.pill_fill.pill_color_slate{background-color:var(--guit-sem-color-background-accent-slate-1)}.pill_fill.pill_color_inverse{background-color:var(--guit-sem-color-background-inverse);color:var(--guit-sem-color-foreground-neutral-2)}.pill_color_informative{color:var(--guit-sem-color-foreground-informative)}.pill_color_neutral{color:var(--guit-sem-color-foreground-neutral-2)}.pill_color_error{color:var(--guit-sem-color-foreground-error)}.pill_color_success{color:var(--guit-sem-color-foreground-success)}.pill_color_warning{color:var(--guit-sem-color-foreground-warning)}.pill_color_purple{color:var(--guit-sem-color-foreground-accent-purple)}.pill_color_lagoon{color:var(--guit-sem-color-foreground-accent-lagoon)}.pill_color_magenta{color:var(--guit-sem-color-foreground-accent-magenta)}.pill_color_slate{color:var(--guit-sem-color-foreground-accent-slate)}.pill:not(.pill_fill).pill_color_inverse{color:var(--guit-sem-color-foreground-inverse)}.pill__text{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}.pill__icon{flex:0 0 auto}";
package/Popover.js CHANGED
@@ -1,4 +1,4 @@
1
- export { P as Popover, a as PopoverBody } from './PopoverBody-7cf8eaac.js';
1
+ export { P as Popover, a as PopoverBody } from './PopoverBody-7437f3ac.js';
2
2
  import React__default from 'react';
3
3
  import './floating-ui.react-a6c3b969.js';
4
4
  import 'react-dom';
@@ -9,11 +9,11 @@ import './X-20da3b4a.js';
9
9
  import './Button.js';
10
10
  import './Loader.js';
11
11
  import './style-inject.es-746bb8ed.js';
12
- import './index-436ef692.js';
12
+ import './index-b29adba3.js';
13
13
  import './Scrollbar.js';
14
14
  import 'prop-types';
15
15
  import './useDebounceCallback-999deae7.js';
16
- import './index-7f9888f0.js';
16
+ import './index-d9a2e208.js';
17
17
 
18
18
  const PopoverFooter = ({ children }) => {
19
19
  return React__default.createElement("div", { className: "popover__footer" }, children);
@@ -4,8 +4,8 @@ import { c as classNames } from './index-ce02421b.js';
4
4
  import { S as SvgInfo } from './Info-0f0741e0.js';
5
5
  import { S as SvgX } from './X-20da3b4a.js';
6
6
  import Button from './Button.js';
7
- import { S as Spreadsheet } from './index-436ef692.js';
8
- import { a as GeneUIDesignSystemContext } from './index-7f9888f0.js';
7
+ import { S as Spreadsheet } from './index-b29adba3.js';
8
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
9
9
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
10
10
  import Scrollbar from './Scrollbar.js';
11
11
 
package/Products.js CHANGED
@@ -2,9 +2,9 @@ import React__default, { createContext, useContext, useState, useRef, useMemo }
2
2
  import { c as classNames } from './index-ce02421b.js';
3
3
  import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b88e2ba8.js';
4
4
  import Button from './Button.js';
5
- import { P as Popover, a as PopoverBody } from './PopoverBody-7cf8eaac.js';
6
- import { a as GeneUIDesignSystemContext } from './index-7f9888f0.js';
7
- import { a as useClickOutside } from './index-436ef692.js';
5
+ import { P as Popover, a as PopoverBody } from './PopoverBody-7437f3ac.js';
6
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
7
+ import { a as useClickOutside } from './index-b29adba3.js';
8
8
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
9
9
  import Badge from './Badge.js';
10
10
  import Text from './Text.js';
package/Profile.js CHANGED
@@ -1,4 +1,4 @@
1
- export { P as default } from './index-508c4ed1.js';
1
+ export { P as default } from './index-bb41315f.js';
2
2
  import 'react';
3
3
  import './index-ce02421b.js';
4
4
  import './ActivityRecent-b88e2ba8.js';
@@ -6,17 +6,17 @@ import './index-0b9e90da.js';
6
6
  import './style-inject.es-746bb8ed.js';
7
7
  import './Menu.js';
8
8
  import './Loader.js';
9
- import './PopoverBody-7cf8eaac.js';
9
+ import './PopoverBody-7437f3ac.js';
10
10
  import './floating-ui.react-a6c3b969.js';
11
11
  import 'react-dom';
12
12
  import './Info-0f0741e0.js';
13
13
  import './X-20da3b4a.js';
14
14
  import './Button.js';
15
- import './index-436ef692.js';
15
+ import './index-b29adba3.js';
16
16
  import './Scrollbar.js';
17
17
  import 'prop-types';
18
18
  import './useDebounceCallback-999deae7.js';
19
- import './index-7f9888f0.js';
19
+ import './index-d9a2e208.js';
20
20
  import './index-a2688a52.js';
21
21
  import './CheckMark-34798545.js';
22
22
  import './ChevronRight-8074ab2e.js';
package/ProgressBar.js CHANGED
@@ -3,15 +3,16 @@ import { c as classNames } from './index-ce02421b.js';
3
3
  import HelperText from './HelperText.js';
4
4
  import Label from './Label.js';
5
5
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
6
+ import './ErrorFilled-f4226310.js';
6
7
  import './ActivityRecent-b88e2ba8.js';
7
8
  import './TriangleAlert-ba250f4c.js';
8
9
  import './Tooltip.js';
9
10
  import './floating-ui.react-a6c3b969.js';
10
11
  import 'react-dom';
11
12
  import './index-a2688a52.js';
12
- import './index-7f9888f0.js';
13
+ import './index-d9a2e208.js';
13
14
  import './useDebounceCallback-999deae7.js';
14
- import './useEllipsisDetection-4fcad8fc.js';
15
+ import './useEllipsisDetection-36ecf9df.js';
15
16
  import './Info.js';
16
17
  import './Info-0f0741e0.js';
17
18
 
package/QRCode.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import React__default, { useRef, useContext, useMemo } from 'react';
2
2
  import { c as classNames } from './index-ce02421b.js';
3
3
  import Logo from './Logo.js';
4
- import { a as GeneUIDesignSystemContext } from './index-7f9888f0.js';
4
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
5
5
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
6
6
  import './useDebounceCallback-999deae7.js';
7
7
 
package/Radio.js CHANGED
@@ -5,14 +5,15 @@ import HelperText from './HelperText.js';
5
5
  import Label from './Label.js';
6
6
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
7
7
  import './ActivityRecent-b88e2ba8.js';
8
+ import './ErrorFilled-f4226310.js';
8
9
  import './TriangleAlert-ba250f4c.js';
9
10
  import './Tooltip.js';
10
11
  import './floating-ui.react-a6c3b969.js';
11
12
  import 'react-dom';
12
13
  import './index-a2688a52.js';
13
- import './index-7f9888f0.js';
14
+ import './index-d9a2e208.js';
14
15
  import './useDebounceCallback-999deae7.js';
15
- import './useEllipsisDetection-4fcad8fc.js';
16
+ import './useEllipsisDetection-36ecf9df.js';
16
17
  import './Info.js';
17
18
  import './Info-0f0741e0.js';
18
19
 
package/Rate.js CHANGED
@@ -4,14 +4,15 @@ import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b
4
4
  import HelperText from './HelperText.js';
5
5
  import Label from './Label.js';
6
6
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
7
+ import './ErrorFilled-f4226310.js';
7
8
  import './TriangleAlert-ba250f4c.js';
8
9
  import './Tooltip.js';
9
10
  import './floating-ui.react-a6c3b969.js';
10
11
  import 'react-dom';
11
12
  import './index-a2688a52.js';
12
- import './index-7f9888f0.js';
13
+ import './index-d9a2e208.js';
13
14
  import './useDebounceCallback-999deae7.js';
14
- import './useEllipsisDetection-4fcad8fc.js';
15
+ import './useEllipsisDetection-36ecf9df.js';
15
16
  import './Info.js';
16
17
  import './Info-0f0741e0.js';
17
18
 
package/Spreadsheet.js CHANGED
@@ -1,4 +1,4 @@
1
- export { S as default } from './index-436ef692.js';
1
+ export { S as default } from './index-b29adba3.js';
2
2
  import 'react';
3
3
  import 'react-dom';
4
4
  import './index-ce02421b.js';
@@ -6,4 +6,4 @@ import './Scrollbar.js';
6
6
  import 'prop-types';
7
7
  import './useDebounceCallback-999deae7.js';
8
8
  import './style-inject.es-746bb8ed.js';
9
- import './index-7f9888f0.js';
9
+ import './index-d9a2e208.js';
package/Switch.js CHANGED
@@ -3,15 +3,16 @@ import { c as classNames } from './index-ce02421b.js';
3
3
  import HelperText from './HelperText.js';
4
4
  import Label from './Label.js';
5
5
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
6
+ import './ErrorFilled-f4226310.js';
6
7
  import './ActivityRecent-b88e2ba8.js';
7
8
  import './TriangleAlert-ba250f4c.js';
8
9
  import './Tooltip.js';
9
10
  import './floating-ui.react-a6c3b969.js';
10
11
  import 'react-dom';
11
12
  import './index-a2688a52.js';
12
- import './index-7f9888f0.js';
13
+ import './index-d9a2e208.js';
13
14
  import './useDebounceCallback-999deae7.js';
14
- import './useEllipsisDetection-4fcad8fc.js';
15
+ import './useEllipsisDetection-36ecf9df.js';
15
16
  import './Info.js';
16
17
  import './Info-0f0741e0.js';
17
18
 
package/Tag.js CHANGED
@@ -4,11 +4,11 @@ import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b
4
4
  import { S as SvgTriangleAlert } from './TriangleAlert-ba250f4c.js';
5
5
  import { S as SvgX } from './X-20da3b4a.js';
6
6
  import Button from './Button.js';
7
- import { u as useEllipsisDetection } from './useEllipsisDetection-4fcad8fc.js';
7
+ import { u as useEllipsisDetection } from './useEllipsisDetection-36ecf9df.js';
8
8
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
9
9
  import Tooltip from './Tooltip.js';
10
10
  import './Loader.js';
11
- import './index-7f9888f0.js';
11
+ import './index-d9a2e208.js';
12
12
  import './useDebounceCallback-999deae7.js';
13
13
  import './floating-ui.react-a6c3b969.js';
14
14
  import 'react-dom';
package/Text.js CHANGED
@@ -8,13 +8,13 @@ styleInject(css_248z);
8
8
  /**
9
9
  * Text component which has predefined tokens
10
10
  */
11
- const Text = forwardRef(({ className, variant = "bodyMediumMedium", children, as, alignment = "start" }, ref) => {
11
+ const Text = forwardRef(({ className, variant = "bodyMediumMedium", children, as, alignment = "start", id }, ref) => {
12
12
  const Component = as;
13
13
  const computedClassNames = classNames("text", {
14
14
  [`text_variant_${variant}`]: variant,
15
15
  [`text_alignment_${alignment}`]: alignment
16
16
  }, className);
17
- return (React__default.createElement(Component, { className: computedClassNames, ref: ref }, children));
17
+ return (React__default.createElement(Component, { className: computedClassNames, ref: ref, id: id }, children));
18
18
  });
19
19
 
20
20
  export { Text as default };
package/TextField.js CHANGED
@@ -8,14 +8,15 @@ import Label from './Label.js';
8
8
  import Text from './Text.js';
9
9
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
10
10
  import './Loader.js';
11
+ import './ErrorFilled-f4226310.js';
11
12
  import './TriangleAlert-ba250f4c.js';
12
13
  import './Tooltip.js';
13
14
  import './floating-ui.react-a6c3b969.js';
14
15
  import 'react-dom';
15
16
  import './index-a2688a52.js';
16
- import './index-7f9888f0.js';
17
+ import './index-d9a2e208.js';
17
18
  import './useDebounceCallback-999deae7.js';
18
- import './useEllipsisDetection-4fcad8fc.js';
19
+ import './useEllipsisDetection-36ecf9df.js';
19
20
  import './Info.js';
20
21
  import './Info-0f0741e0.js';
21
22
 
package/Timeline.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import React__default, { createContext, useContext, useMemo, useRef } from 'react';
2
2
  import { c as classNames } from './index-ce02421b.js';
3
- import { a as GeneUIDesignSystemContext } from './index-7f9888f0.js';
3
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
4
4
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
5
5
  import { S as SvgCircleFilled } from './CircleFilled-19a9ec62.js';
6
6
  import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b88e2ba8.js';
7
7
  import Divider from './Divider.js';
8
8
  import Tooltip from './Tooltip.js';
9
- import { u as useEllipsisDetection } from './useEllipsisDetection-4fcad8fc.js';
9
+ import { u as useEllipsisDetection } from './useEllipsisDetection-36ecf9df.js';
10
10
  import './useDebounceCallback-999deae7.js';
11
11
  import './floating-ui.react-a6c3b969.js';
12
12
  import 'react-dom';
package/Tooltip.js CHANGED
@@ -2,11 +2,11 @@ import React__default, { useContext, useState, useRef, useEffect, Children, isVa
2
2
  import { u as useFloating, p as platform, i as offset, j as flip, a as arrow, k as shift, b as autoUpdate, g as useHover, h as useInteractions, F as FloatingPortal } from './floating-ui.react-a6c3b969.js';
3
3
  import { r as reactIsExports } from './index-a2688a52.js';
4
4
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
5
- import { a as GeneUIDesignSystemContext } from './index-7f9888f0.js';
5
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
6
6
  import 'react-dom';
7
7
  import './useDebounceCallback-999deae7.js';
8
8
 
9
- var css_248z = ".tooltip{align-items:flex-start;border-radius:var(--guit-ref-radius-3xsmall);box-shadow:var(--guit-sem-shadow-floating-2-position-x-1) var(--guit-sem-shadow-floating-2-position-y-1) var(--guit-sem-shadow-floating-2-blur-1) var(--guit-sem-shadow-floating-2-spread-1) var(--guit-sem-color-floating-2-rgba-1),var(--guit-sem-shadow-floating-2-position-x-2) var(--guit-sem-shadow-floating-2-position-y-2) var(--guit-sem-shadow-floating-2-blur-2) var(--guit-sem-shadow-floating-2-spread-2) var(--guit-sem-color-floating-2-rgba-2);display:flex;font-family:var(--guit-sem-font-caption-large-medium-font-family),sans-serif;font-size:var(--guit-sem-font-caption-large-medium-font-size);font-weight:var(--guit-sem-font-caption-large-medium-font-weight);gap:var(--guit-ref-spacing-3xsmall);justify-content:space-between;letter-spacing:var(--guit-sem-font-caption-large-medium-letter-spacing);line-height:var(--guit-sem-font-caption-large-medium-line-height);max-width:24rem;min-width:var(--guit-sem-dimension-width-3xlarge);padding:var(--guit-ref-spacing-xsmall) var(--guit-ref-spacing-medium)}.tooltip_position_top .tooltip__arrow{transform:rotate(0deg)}.tooltip_position_bottom .tooltip__arrow{transform:rotate(180deg)}.tooltip_position_left .tooltip__arrow{transform:rotate(-90deg)}.tooltip_position_right .tooltip__arrow{transform:rotate(90deg)}.tooltip_color_default{background-color:var(--guit-sem-color-background-neutral-5)}.tooltip_color_default .tooltip__arrowPath{fill:var(--guit-sem-color-background-neutral-5)}.tooltip_color_default .tooltip__icon,.tooltip_color_default .tooltip__text{color:var(--guit-sem-color-foreground-inverse-notheme)}.tooltip_color_inverse{background-color:var(--guit-sem-color-background-neutral-1-nudge)}.tooltip_color_inverse .tooltip__arrowPath{fill:var(--guit-sem-color-background-neutral-1-nudge)}.tooltip_color_inverse .tooltip__icon,.tooltip_color_inverse .tooltip__text{color:var(--guit-sem-color-foreground-neutral-2)}.tooltip__arrow{align-items:center;display:flex;height:.4rem;justify-content:center;position:absolute;width:1.2rem}.tooltip__textWrapper{display:flex;flex-direction:column;gap:var(--guit-sem-font-caption-large-medium-paragraph-spacing)}.tooltip__text{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;overflow:hidden;word-break:break-word}.tooltip__icon{flex:0 0 auto}";
9
+ var css_248z = ".tooltip{align-items:flex-start;border-radius:var(--guit-ref-radius-3xsmall);box-shadow:var(--guit-sem-shadow-floating-2-position-x-1) var(--guit-sem-shadow-floating-2-position-y-1) var(--guit-sem-shadow-floating-2-blur-1) var(--guit-sem-shadow-floating-2-spread-1) var(--guit-sem-color-floating-2-rgba-1),var(--guit-sem-shadow-floating-2-position-x-2) var(--guit-sem-shadow-floating-2-position-y-2) var(--guit-sem-shadow-floating-2-blur-2) var(--guit-sem-shadow-floating-2-spread-2) var(--guit-sem-color-floating-2-rgba-2);display:flex;font-family:var(--guit-sem-font-caption-large-medium-font-family),sans-serif;font-size:var(--guit-sem-font-caption-large-medium-font-size);font-weight:var(--guit-sem-font-caption-large-medium-font-weight);gap:var(--guit-ref-spacing-3xsmall);justify-content:space-between;letter-spacing:var(--guit-sem-font-caption-large-medium-letter-spacing);line-height:var(--guit-sem-font-caption-large-medium-line-height);max-width:24rem;min-width:var(--guit-sem-dimension-width-3xlarge);padding:var(--guit-ref-spacing-xsmall) var(--guit-ref-spacing-medium);z-index:1}.tooltip_position_top .tooltip__arrow{transform:rotate(0deg)}.tooltip_position_bottom .tooltip__arrow{transform:rotate(180deg)}.tooltip_position_left .tooltip__arrow{transform:rotate(-90deg)}.tooltip_position_right .tooltip__arrow{transform:rotate(90deg)}.tooltip_color_default{background-color:var(--guit-sem-color-background-neutral-5)}.tooltip_color_default .tooltip__arrowPath{fill:var(--guit-sem-color-background-neutral-5)}.tooltip_color_default .tooltip__icon,.tooltip_color_default .tooltip__text{color:var(--guit-sem-color-foreground-inverse-notheme)}.tooltip_color_inverse{background-color:var(--guit-sem-color-background-neutral-1-nudge)}.tooltip_color_inverse .tooltip__arrowPath{fill:var(--guit-sem-color-background-neutral-1-nudge)}.tooltip_color_inverse .tooltip__icon,.tooltip_color_inverse .tooltip__text{color:var(--guit-sem-color-foreground-neutral-2)}.tooltip__arrow{align-items:center;display:flex;height:.4rem;justify-content:center;position:absolute;width:1.2rem}.tooltip__textWrapper{display:flex;flex-direction:column;gap:var(--guit-sem-font-caption-large-medium-paragraph-spacing)}.tooltip__text{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;overflow:hidden;word-break:break-word}.tooltip__icon{flex:0 0 auto}";
10
10
  styleInject(css_248z);
11
11
 
12
12
  const positions = [
@@ -49,6 +49,11 @@ interface ITextProps {
49
49
  * Text content
50
50
  */
51
51
  children: string;
52
+ /**
53
+ * A unique identifier for the text element.
54
+ * Useful for accessibility purposes, like `aria-labelledby`.
55
+ */
56
+ id?: string;
52
57
  }
53
58
  /**
54
59
  * Text component which has predefined tokens
@@ -0,0 +1,89 @@
1
+ import { FC, ReactNode } from "react";
2
+ import { IButtonProps } from "@components/atoms/Button";
3
+ import "./Modal.scss";
4
+ interface IModalProps {
5
+ /**
6
+ * Additional class for the parent element.
7
+ * This prop should be used to set placement properties for the element relative to its parent using BEM conventions.
8
+ */
9
+ className?: string;
10
+ /**
11
+ * Controls the visibility of the modal. Set to `true` to show and `false` to hide.
12
+ */
13
+ open?: boolean;
14
+ /**
15
+ * Determines whether the close (X) button is displayed in the modal's header.
16
+ * @default false
17
+ */
18
+ hasCloseButton?: boolean;
19
+ /**
20
+ * Callback function triggered when the modal is requested to be closed (e.g., via the close button, Escape key, or overlay click).
21
+ */
22
+ onClose?: () => void;
23
+ /**
24
+ * When `true`, allows the modal to be closed by pressing the Escape key.
25
+ * Calls `onClose`.
26
+ * @default false
27
+ */
28
+ shouldCloseOnEscapePress?: boolean;
29
+ /**
30
+ * When `true`, allows the modal to be closed by clicking on the semi-transparent background overlay.
31
+ * Calls `onClose`.
32
+ * @default false
33
+ */
34
+ shouldCloseOnOverlayClick?: boolean;
35
+ /**
36
+ * The title text displayed in the modal's header.
37
+ */
38
+ title?: string;
39
+ /**
40
+ * Adds a corresponding status icon next to the title.
41
+ */
42
+ status?: "informative" | "warning" | "error";
43
+ /**
44
+ * The main content of the modal, displayed between the header and footer.
45
+ */
46
+ children?: ReactNode;
47
+ /**
48
+ * Defines the width of the modal. The effective size adapts for mobile viewports:
49
+ * - 'large' and 'medium' sizes become 'small' on mobile.
50
+ * - 'xLarge' becomes 'xxLarge' on mobile.
51
+ * @default "medium"
52
+ */
53
+ size?: "xxLarge" | "xLarge" | "large" | "medium" | "small";
54
+ /**
55
+ * Toggles the padding around the modal's content area.
56
+ * @default true
57
+ */
58
+ withPadding?: boolean;
59
+ /**
60
+ * Sets the vertical alignment of the modal in the viewport.
61
+ * @default "center"
62
+ */
63
+ position?: "top" | "center";
64
+ /**
65
+ * Custom content or component to be displayed in the footer, typically to the left of the action buttons.
66
+ */
67
+ footerContent?: ReactNode;
68
+ /**
69
+ * An array of action button objects to display in the modal's footer.
70
+ * The rendered buttons are automatically wrapped in a `ButtonGroup` component to ensure proper spacing and alignment.
71
+ * Each object conforms to the `IButtonProps` interface, allowing full customization of each button.
72
+ * @example
73
+ * actions={[
74
+ * { children: 'Cancel', appearance: 'secondary', onClick: handleCancel },
75
+ * { children: 'Submit', appearance: 'primary', onClick: handleSubmit }
76
+ * ]}
77
+ */
78
+ actions?: IButtonProps[];
79
+ /**
80
+ * If `true`, disables scrolling on the `body` element when the modal is open.
81
+ * @default true
82
+ */
83
+ lockBodyScroll?: boolean;
84
+ }
85
+ /**
86
+ * Modal component displays content in a layer above the main application, effectively focusing the user's attention on a specific task or information. It is often used for actions that require user input, such as confirmation dialogs, forms, or important notifications.
87
+ */
88
+ declare const Modal: FC<IModalProps>;
89
+ export { IModalProps, Modal as default };
@@ -0,0 +1 @@
1
+ export { IModalProps, default } from "./Modal";
@@ -0,0 +1,66 @@
1
+ import { FC } from "react";
2
+ import "./Notification.scss";
3
+ interface INotificationProps {
4
+ /**
5
+ * Additional class for the parent element.
6
+ * This prop should be used to set placement properties for the element relative to its parent using BEM conventions.
7
+ */
8
+ className?: string;
9
+ /**
10
+ * Controls the visibility of the notification. Set to `true` to show and `false` to hide.
11
+ */
12
+ open?: boolean;
13
+ /**
14
+ * Determines the rendering style of the notification.
15
+ * - `toast`: A floating, temporary notification that appears on top of other content (rendered via a portal).
16
+ * - `sectionMessage`: An inline notification that is part of the page's content flow.
17
+ */
18
+ variant?: "toast" | "sectionMessage";
19
+ /**
20
+ * Defines the semantic meaning and visual style (color, icon) of the notification.
21
+ * Note: The `insight` status is a special case and should only be used with the `sectionMessage` variant.
22
+ */
23
+ status?: "informative" | "success" | "warning" | "error" | "insight";
24
+ /**
25
+ * The main heading or title for the notification.
26
+ */
27
+ title?: string;
28
+ /**
29
+ * The main body content or description of the notification.
30
+ */
31
+ description?: string;
32
+ /**
33
+ * The size to be applied to the action buttons within the notification.
34
+ * Possible values: `large | medium | small `
35
+ */
36
+ actionsButtonsSize?: "large" | "medium" | "small";
37
+ /**
38
+ * The text to display on the primary action button.
39
+ * **Note: The primary action button will not be rendered if this prop is not provided.**
40
+ */
41
+ primaryActionText?: string;
42
+ /**
43
+ * The text to display on the secondary action button.
44
+ * **Note: The secondary action button will not be rendered if this prop is not provided.**
45
+ */
46
+ secondaryActionText?: string;
47
+ /**
48
+ * Callback function triggered when the close (X) button is clicked.
49
+ */
50
+ onClose?: () => void;
51
+ /**
52
+ * Callback function for the primary action button.
53
+ * This is only relevant if `primaryActionText` is also provided.
54
+ */
55
+ onPrimaryActionClick?: () => void;
56
+ /**
57
+ * Callback function for the secondary action button.
58
+ * This is only relevant if `secondaryActionText` is also provided.
59
+ */
60
+ onSecondaryActionClick?: () => void;
61
+ }
62
+ /**
63
+ * Notification component encompasses various types of messages, including toast notifications and section messages, to provide feedback to users in a clear and structured manner. Notifications inform users about system events, updates, or the status of their actions, ensuring that important information is communicated effectively.
64
+ */
65
+ declare const Notification: FC<INotificationProps>;
66
+ export { INotificationProps, Notification as default };
@@ -0,0 +1 @@
1
+ export { INotificationProps, default } from "./Notification";
@@ -2,7 +2,7 @@ import React__default, { useRef, useCallback, useEffect, useContext } from 'reac
2
2
  import { createPortal } from 'react-dom';
3
3
  import { c as classNames } from './index-ce02421b.js';
4
4
  import Scrollbar from './Scrollbar.js';
5
- import { a as GeneUIDesignSystemContext } from './index-7f9888f0.js';
5
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
6
6
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
7
7
 
8
8
  const useClickOutside = (callback, relativeElements) => {
@@ -3,7 +3,7 @@ import { c as classNames } from './index-ce02421b.js';
3
3
  import { _ as _objectWithoutProperties, a as _extends } from './ActivityRecent-b88e2ba8.js';
4
4
  import { A as Avatar, S as SvgPersonFilled } from './index-0b9e90da.js';
5
5
  import { Menu, MenuItem } from './Menu.js';
6
- import { a as GeneUIDesignSystemContext } from './index-7f9888f0.js';
6
+ import { a as GeneUIDesignSystemContext } from './index-d9a2e208.js';
7
7
  import { s as styleInject } from './style-inject.es-746bb8ed.js';
8
8
 
9
9
  var _excluded = ["size", "color"];
@@ -1464,7 +1464,7 @@ var dependencies = {
1464
1464
  "@floating-ui/react": "^0.26.16",
1465
1465
  "@floating-ui/react-dom": "^2.1.2",
1466
1466
  "@floating-ui/utils": "^0.2.8",
1467
- "@geneui/icons": "^1.4.2",
1467
+ "@geneui/icons": "^1.4.3",
1468
1468
  "@geneui/tokens": "^1.0.2",
1469
1469
  classnames: "^2.3.2",
1470
1470
  "qrcode.react": "^4.2.0",
package/index.d.ts CHANGED
@@ -33,6 +33,8 @@ export { default as Profile, IProfileProps, IProfileData } from "./components/mo
33
33
  export { default as Pagination } from "./components/molecules/Pagination";
34
34
  export { default as TextField } from "./components/molecules/TextField";
35
35
  export { default as ButtonGroup } from "./components/molecules/ButtonGroup";
36
+ export { default as Notification } from "./components/molecules/Notification";
37
+ export { default as Modal } from "./components/molecules/Modal";
36
38
  export { default as GlobalHeader, IGlobalHeaderProps, IAction, IProducts } from "./components/organisms/GlobalHeader";
37
39
  export { default as GeneUIProvider, GeneUIDesignSystemContext, IGeneUIDesignSystemContext, IGeneUIProviderProps } from "./components/providers/GeneUIProvider";
38
40
  export { default as useDebounce } from "./hooks/useDebounceCallback";
package/index.js CHANGED
@@ -11,13 +11,13 @@ export { default as Rate } from './Rate.js';
11
11
  export { default as Radio } from './Radio.js';
12
12
  export { default as Text } from './Text.js';
13
13
  export { default as TextLink } from './TextLink.js';
14
- export { P as Popover, a as PopoverBody } from './PopoverBody-7cf8eaac.js';
14
+ export { P as Popover, a as PopoverBody } from './PopoverBody-7437f3ac.js';
15
15
  export { PopoverFooter, PopoverFooterActions } from './Popover.js';
16
16
  export { default as Badge } from './Badge.js';
17
17
  export { default as Scrollbar } from './Scrollbar.js';
18
18
  export { Col, Grid, Row } from './Grid.js';
19
19
  export { default as Skeleton } from './Skeleton.js';
20
- export { S as Spreadsheet, a as useClickOutside, u as useScrollLock } from './index-436ef692.js';
20
+ export { S as Spreadsheet, a as useClickOutside, u as useScrollLock } from './index-b29adba3.js';
21
21
  export { default as Copy } from './Copy.js';
22
22
  export { default as Tooltip } from './Tooltip.js';
23
23
  export { default as ProgressBar } from './ProgressBar.js';
@@ -30,18 +30,21 @@ export { Key, KeyValue, Value } from './KeyValue.js';
30
30
  export { Menu, MenuItem } from './Menu.js';
31
31
  export { default as Navigation } from './Navigation.js';
32
32
  export { default as Checkbox } from './Checkbox.js';
33
- export { P as Profile } from './index-508c4ed1.js';
33
+ export { P as Profile } from './index-bb41315f.js';
34
34
  export { default as Pagination } from './Pagination.js';
35
35
  export { default as TextField } from './TextField.js';
36
36
  export { default as ButtonGroup } from './ButtonGroup.js';
37
+ export { default as Notification } from './Notification.js';
38
+ export { default as Modal } from './Modal.js';
37
39
  export { default as GlobalHeader } from './GlobalHeader.js';
38
- export { a as GeneUIDesignSystemContext, G as GeneUIProvider, c as useBreakpoint, b as useDeviceInfo, u as useWindowSize } from './index-7f9888f0.js';
40
+ export { a as GeneUIDesignSystemContext, G as GeneUIProvider, c as useBreakpoint, b as useDeviceInfo, u as useWindowSize } from './index-d9a2e208.js';
39
41
  export { u as useDebounce } from './useDebounceCallback-999deae7.js';
40
- export { u as useEllipsisDetection } from './useEllipsisDetection-4fcad8fc.js';
42
+ export { u as useEllipsisDetection } from './useEllipsisDetection-36ecf9df.js';
41
43
  import 'react';
42
44
  import './index-ce02421b.js';
43
45
  import './ActivityRecent-b88e2ba8.js';
44
46
  import './style-inject.es-746bb8ed.js';
47
+ import './ErrorFilled-f4226310.js';
45
48
  import './TriangleAlert-ba250f4c.js';
46
49
  import './CircleFilled-19a9ec62.js';
47
50
  import './Info-0f0741e0.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@geneui/components",
3
3
  "description": "The Gene UI components library designed for BI tools",
4
- "version": "3.0.0-next-1f133a9-25072025",
4
+ "version": "3.0.0-next-e06ec94-05082025",
5
5
  "author": "SoftConstruct",
6
6
  "homepage": "https://github.com/softconstruct/gene-ui-components#readme",
7
7
  "repository": {
@@ -172,7 +172,7 @@
172
172
  "@floating-ui/react": "^0.26.16",
173
173
  "@floating-ui/react-dom": "^2.1.2",
174
174
  "@floating-ui/utils": "^0.2.8",
175
- "@geneui/icons": "^1.4.2",
175
+ "@geneui/icons": "^1.4.3",
176
176
  "@geneui/tokens": "^1.0.2",
177
177
  "classnames": "^2.3.2",
178
178
  "qrcode.react": "^4.2.0",
@@ -1,5 +1,5 @@
1
1
  import { useState, useEffect } from 'react';
2
- import { u as useWindowSize } from './index-7f9888f0.js';
2
+ import { u as useWindowSize } from './index-d9a2e208.js';
3
3
 
4
4
  const EQUAL_HEIGHT_DIFF = 3;
5
5
  const useEllipsisDetection = (ref, externalDependencies = []) => {