sag_components 2.0.0-beta140 → 2.0.0-beta142

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 (28) hide show
  1. package/dist/index.d.ts +77 -2
  2. package/dist/index.esm.js +945 -123
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.js +955 -121
  5. package/dist/index.js.map +1 -1
  6. package/dist/types/components/MenuRoute/MenuIcons/AdvancedThresholds.d.ts +6 -0
  7. package/dist/types/components/MenuRoute/MenuIcons/Analytics.d.ts +6 -0
  8. package/dist/types/components/MenuRoute/MenuIcons/Budgets.d.ts +6 -0
  9. package/dist/types/components/MenuRoute/MenuIcons/Campaigns.d.ts +6 -0
  10. package/dist/types/components/MenuRoute/MenuIcons/Coupons.d.ts +6 -0
  11. package/dist/types/components/MenuRoute/MenuIcons/CustomerSegments.d.ts +6 -0
  12. package/dist/types/components/MenuRoute/MenuIcons/Dashboard.d.ts +6 -0
  13. package/dist/types/components/MenuRoute/MenuIcons/GroupBuilder.d.ts +6 -0
  14. package/dist/types/components/MenuRoute/MenuIcons/ItemsStores.d.ts +6 -0
  15. package/dist/types/components/MenuRoute/MenuIcons/PreTestWhatIf.d.ts +6 -0
  16. package/dist/types/components/MenuRoute/MenuIcons/RulesEngine.d.ts +6 -0
  17. package/dist/types/components/MenuRoute/MenuIcons/SampleRunEngine.d.ts +6 -0
  18. package/dist/types/components/MenuRoute/MenuRoute.stories.d.ts +118 -2
  19. package/dist/types/components/Table/CommentModal.d.ts +2 -0
  20. package/dist/types/components/Table/CommentModal.styles.d.ts +11 -0
  21. package/dist/types/components/Table/Table.d.ts +4 -2
  22. package/dist/types/components/Table/Table.stories.d.ts +23 -91
  23. package/dist/types/components/Table/TableBody.d.ts +31 -2
  24. package/dist/types/components/Table/TableBody.styles.d.ts +1 -0
  25. package/dist/types/components/Table/data.d.ts +206 -0
  26. package/dist/types/icons/CommentIcon.d.ts +7 -0
  27. package/dist/types/index.d.ts +12 -0
  28. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -10327,23 +10327,24 @@ const QuarterPopupPicker = ({
10327
10327
  };
10328
10328
 
10329
10329
  /* eslint-disable import/no-extraneous-dependencies */
10330
- const QuarterPicker = ({
10331
- availableQuarters,
10332
- // ["Q1-2024"]
10333
- label,
10334
- onChange,
10335
- borderRadius,
10336
- required,
10337
- width,
10338
- height,
10339
- placeholder,
10340
- disabled,
10341
- borderColor,
10342
- borderColorFocus,
10343
- textColor,
10344
- selectedValue,
10345
- startYear
10346
- }) => {
10330
+ const QuarterPicker = _ref => {
10331
+ let {
10332
+ availableQuarters,
10333
+ // ["Q1-2024"]
10334
+ label,
10335
+ onChange,
10336
+ borderRadius,
10337
+ required,
10338
+ width,
10339
+ height,
10340
+ placeholder,
10341
+ disabled,
10342
+ borderColor,
10343
+ borderColorFocus,
10344
+ textColor,
10345
+ selectedValue,
10346
+ startYear
10347
+ } = _ref;
10347
10348
  const [isFocused, setIsFocused] = React$1.useState(false);
10348
10349
  const [isOpen, setIsOpen] = React$1.useState(false);
10349
10350
  const [value, setValue] = React$1.useState('');
@@ -10785,22 +10786,23 @@ const MonthPopupPicker = ({
10785
10786
  };
10786
10787
 
10787
10788
  /* eslint-disable import/no-extraneous-dependencies */
10788
- const MonthPicker = ({
10789
- availableMonths,
10790
- label,
10791
- onChange,
10792
- borderRadius,
10793
- required,
10794
- width,
10795
- height,
10796
- placeholder,
10797
- disabled,
10798
- borderColor,
10799
- borderColorFocus,
10800
- textColor,
10801
- selectedValue,
10802
- startYear
10803
- }) => {
10789
+ const MonthPicker = _ref => {
10790
+ let {
10791
+ availableMonths,
10792
+ label,
10793
+ onChange,
10794
+ borderRadius,
10795
+ required,
10796
+ width,
10797
+ height,
10798
+ placeholder,
10799
+ disabled,
10800
+ borderColor,
10801
+ borderColorFocus,
10802
+ textColor,
10803
+ selectedValue,
10804
+ startYear
10805
+ } = _ref;
10804
10806
  const [isFocused, setIsFocused] = React$1.useState(false);
10805
10807
  const [isOpen, setIsOpen] = React$1.useState(false);
10806
10808
  const [value, setValue] = React$1.useState('');
@@ -13078,17 +13080,17 @@ const Modal$1 = styled__default["default"].div`
13078
13080
  margin: 0 auto;
13079
13081
  ${scrollableStyles$a}
13080
13082
  `;
13081
- const ModalHeader$1 = styled__default["default"].div`
13083
+ const ModalHeader$2 = styled__default["default"].div`
13082
13084
  display: flex;
13083
13085
  align-items: center;
13084
13086
  justify-content: space-between;
13085
13087
  margin-bottom: 32px;
13086
13088
  `;
13087
- const ModalBody$1 = styled__default["default"].div`
13089
+ const ModalBody$2 = styled__default["default"].div`
13088
13090
  ${scrollableStyles$a}
13089
13091
  max-height: 80vh;
13090
13092
  `;
13091
- const ModalTitle$2 = styled__default["default"].h5`
13093
+ const ModalTitle$3 = styled__default["default"].h5`
13092
13094
  font-family: 'Poppins', sans-serif;
13093
13095
  font-size: 32px;
13094
13096
  font-weight: 500;
@@ -13120,12 +13122,12 @@ const DialogOverlay$1 = props => {
13120
13122
  };
13121
13123
  return /*#__PURE__*/React.createElement(ModalWrapper$1, {
13122
13124
  className: className
13123
- }, /*#__PURE__*/React.createElement(Modal$1, null, /*#__PURE__*/React.createElement(ModalHeader$1, null, /*#__PURE__*/React.createElement(ModalTitle$2, null, title), /*#__PURE__*/React.createElement(ModalClose, {
13125
+ }, /*#__PURE__*/React.createElement(Modal$1, null, /*#__PURE__*/React.createElement(ModalHeader$2, null, /*#__PURE__*/React.createElement(ModalTitle$3, null, title), /*#__PURE__*/React.createElement(ModalClose, {
13124
13126
  type: "button",
13125
13127
  onClick: closeModal
13126
13128
  }, /*#__PURE__*/React.createElement(CloseXIcon, {
13127
13129
  fill: "white"
13128
- }))), /*#__PURE__*/React.createElement(ModalBody$1, {
13130
+ }))), /*#__PURE__*/React.createElement(ModalBody$2, {
13129
13131
  id: "modalBody"
13130
13132
  }, children)));
13131
13133
  };
@@ -23911,21 +23913,22 @@ const DeleteIcon = styled__default["default"].div`
23911
23913
  position: absolute;
23912
23914
  `;
23913
23915
 
23914
- const QuickFilterDropdownSingle = ({
23915
- label,
23916
- hoverColor,
23917
- options,
23918
- selectedValue,
23919
- placeHolder,
23920
- onChange,
23921
- disabled,
23922
- width,
23923
- error,
23924
- errorMessage,
23925
- xIconShow,
23926
- labelColor,
23927
- showLabelOnTop
23928
- }) => {
23916
+ const QuickFilterDropdownSingle = _ref => {
23917
+ let {
23918
+ label,
23919
+ hoverColor,
23920
+ options,
23921
+ selectedValue,
23922
+ placeHolder,
23923
+ onChange,
23924
+ disabled,
23925
+ width,
23926
+ error,
23927
+ errorMessage,
23928
+ xIconShow,
23929
+ labelColor,
23930
+ showLabelOnTop
23931
+ } = _ref;
23929
23932
  const [isFocused, setIsFocused] = React$1.useState(false);
23930
23933
  const [showOptions, setShowOptions] = React$1.useState(false);
23931
23934
  const [inputValue, setInputValue] = React$1.useState("");
@@ -24322,23 +24325,24 @@ const IconContainer$2 = styled__default["default"].div`
24322
24325
  cursor: pointer;
24323
24326
  `;
24324
24327
 
24325
- const QuickFilterDropdownMultiSelection = ({
24326
- label,
24327
- labelEmptyValue,
24328
- options,
24329
- selectedValue,
24330
- placeHolder,
24331
- onChange,
24332
- required,
24333
- disabled,
24334
- width,
24335
- error,
24336
- errorMessage,
24337
- labelColor,
24338
- xIconShow,
24339
- checkBoxColor,
24340
- showLabelOnTop
24341
- }) => {
24328
+ const QuickFilterDropdownMultiSelection = _ref => {
24329
+ let {
24330
+ label,
24331
+ labelEmptyValue,
24332
+ options,
24333
+ selectedValue,
24334
+ placeHolder,
24335
+ onChange,
24336
+ required,
24337
+ disabled,
24338
+ width,
24339
+ error,
24340
+ errorMessage,
24341
+ labelColor,
24342
+ xIconShow,
24343
+ checkBoxColor,
24344
+ showLabelOnTop
24345
+ } = _ref;
24342
24346
  const [isFocused, setIsFocused] = React$1.useState(false);
24343
24347
  const [showOptions, setShowOptions] = React$1.useState(false);
24344
24348
  const [inputValue, setInputValue] = React$1.useState('');
@@ -27215,7 +27219,7 @@ const scrollableStyles$6 = `
27215
27219
  }
27216
27220
  `;
27217
27221
  const MainContainer$1 = styled__default["default"].div``;
27218
- const ModalOverlay$1 = styled__default["default"].div`
27222
+ const ModalOverlay$2 = styled__default["default"].div`
27219
27223
  position: fixed;
27220
27224
  z-index: 100;
27221
27225
  top: 0;
@@ -27227,7 +27231,7 @@ const ModalOverlay$1 = styled__default["default"].div`
27227
27231
  justify-content: center;
27228
27232
  align-items: center;
27229
27233
  `;
27230
- const ModalContent$1 = styled__default["default"].div`
27234
+ const ModalContent$2 = styled__default["default"].div`
27231
27235
  font-family: "Poppins", sans-serif;
27232
27236
  font-weight: 500;
27233
27237
  font-size: 18px;
@@ -27457,10 +27461,10 @@ const PopupCharts = props => {
27457
27461
  }, displayChart(item)));
27458
27462
  return /*#__PURE__*/React__default["default"].createElement(MainContainer$1, {
27459
27463
  id: "MainContainer"
27460
- }, IsPopupChartsOpen && /*#__PURE__*/React__default["default"].createElement(ModalOverlay$1, {
27464
+ }, IsPopupChartsOpen && /*#__PURE__*/React__default["default"].createElement(ModalOverlay$2, {
27461
27465
  id: "ModalOverlay",
27462
27466
  className: "modal-overlay"
27463
- }, /*#__PURE__*/React__default["default"].createElement(ModalContent$1, {
27467
+ }, /*#__PURE__*/React__default["default"].createElement(ModalContent$2, {
27464
27468
  id: "ModalContent",
27465
27469
  ref: divRef,
27466
27470
  className: "modal-content",
@@ -33813,7 +33817,7 @@ const Overlay$2 = styled__default["default"].div`
33813
33817
  align-items: center;
33814
33818
  z-index: 999;
33815
33819
  `;
33816
- const ModalContent = styled__default["default"].div`
33820
+ const ModalContent$1 = styled__default["default"].div`
33817
33821
  position: absolute;
33818
33822
  width: 70%;
33819
33823
  height: 80%;
@@ -33839,7 +33843,7 @@ const Header$3 = styled__default["default"].div`
33839
33843
  align-items: flex-start;
33840
33844
  }
33841
33845
  `;
33842
- const CloseButton$1 = styled__default["default"].button`
33846
+ const CloseButton$2 = styled__default["default"].button`
33843
33847
  position: absolute;
33844
33848
  top: -10px;
33845
33849
  right: 0px;
@@ -34036,11 +34040,11 @@ const InsightsCarousel = _ref => {
34036
34040
  const nextIndex = (currentIndex + 1) % totalChildren;
34037
34041
  return /*#__PURE__*/React__default["default"].createElement(Overlay$2, {
34038
34042
  className: className
34039
- }, /*#__PURE__*/React__default["default"].createElement(ModalContent, null, /*#__PURE__*/React__default["default"].createElement(Header$3, null, /*#__PURE__*/React__default["default"].createElement(Title$8, {
34043
+ }, /*#__PURE__*/React__default["default"].createElement(ModalContent$1, null, /*#__PURE__*/React__default["default"].createElement(Header$3, null, /*#__PURE__*/React__default["default"].createElement(Title$8, {
34040
34044
  $titleColor: titleColor
34041
34045
  }, /*#__PURE__*/React__default["default"].cloneElement(icon, {
34042
34046
  fill: iconColor
34043
- }), title), /*#__PURE__*/React__default["default"].createElement(CloseButton$1, {
34047
+ }), title), /*#__PURE__*/React__default["default"].createElement(CloseButton$2, {
34044
34048
  onClick: () => onClose?.({
34045
34049
  label: "closeCarousel"
34046
34050
  }),
@@ -34357,7 +34361,7 @@ const Modal = styled__default["default"].div`
34357
34361
  border-radius: 12px;
34358
34362
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
34359
34363
  `;
34360
- const ModalHeader = styled__default["default"].div`
34364
+ const ModalHeader$1 = styled__default["default"].div`
34361
34365
  display: flex;
34362
34366
  justify-content: space-between;
34363
34367
  `;
@@ -34365,12 +34369,12 @@ const ModalButtons = styled__default["default"].div`
34365
34369
  display: flex;
34366
34370
  gap: 10px;
34367
34371
  `;
34368
- const ModalTitle$1 = styled__default["default"].h3`
34372
+ const ModalTitle$2 = styled__default["default"].h3`
34369
34373
  margin: 0;
34370
34374
  font-size: 24px;
34371
34375
  font-weight: 500;
34372
34376
  `;
34373
- const ModalBody = styled__default["default"].div`
34377
+ const ModalBody$1 = styled__default["default"].div`
34374
34378
  width: 100%;
34375
34379
  height: 100%;
34376
34380
  `;
@@ -34421,9 +34425,9 @@ const ModalWithOverlay = props => {
34421
34425
  width,
34422
34426
  height
34423
34427
  }
34424
- }, /*#__PURE__*/React__default["default"].createElement(ModalHeader, {
34428
+ }, /*#__PURE__*/React__default["default"].createElement(ModalHeader$1, {
34425
34429
  className: "modal-header"
34426
- }, /*#__PURE__*/React__default["default"].createElement(ModalTitle$1, null, title), /*#__PURE__*/React__default["default"].createElement(ModalButtons, {
34430
+ }, /*#__PURE__*/React__default["default"].createElement(ModalTitle$2, null, title), /*#__PURE__*/React__default["default"].createElement(ModalButtons, {
34427
34431
  className: "modal-buttons"
34428
34432
  }, showCancelButton && /*#__PURE__*/React__default["default"].createElement(Button$1, {
34429
34433
  size: "medium",
@@ -34470,7 +34474,7 @@ const ModalWithOverlay = props => {
34470
34474
  backgroundColor: okButtonColor,
34471
34475
  hoverBorderColor: okButtonHoverBackgroundColor,
34472
34476
  hoverBackgroundColor: okButtonHoverBackgroundColor
34473
- })))), /*#__PURE__*/React__default["default"].createElement(ModalBody, {
34477
+ })))), /*#__PURE__*/React__default["default"].createElement(ModalBody$1, {
34474
34478
  className: "modal-body"
34475
34479
  }, children)));
34476
34480
  };
@@ -35570,9 +35574,9 @@ const ToggleSlider = styled__default["default"].span`
35570
35574
  }
35571
35575
  `;
35572
35576
 
35573
- /**
35574
- * ToggleSwitch component for on/off states.
35575
- * Supports small/large sizes and disabled state.
35577
+ /**
35578
+ * ToggleSwitch component for on/off states.
35579
+ * Supports small/large sizes and disabled state.
35576
35580
  */
35577
35581
  function ToggleSwitch(_ref) {
35578
35582
  let {
@@ -35707,9 +35711,12 @@ const ContainerTable = props => {
35707
35711
 
35708
35712
  const MenuRouteContainer = styled__default["default"].div`
35709
35713
  font-family: 'Poppins', sans-serif;
35714
+ width: ${props => props.width || '100%'};
35710
35715
  `;
35711
35716
  const ButtonGroup = styled__default["default"].div`
35712
35717
  display: flex;
35718
+ flex-direction: ${props => props.layout === 'vertical' ? 'column' : 'row'};
35719
+ gap: ${props => props.layout === 'vertical' ? '20px' : '0px'};
35713
35720
  justify-content: ${props => {
35714
35721
  switch (props.pos) {
35715
35722
  case 'left':
@@ -35729,14 +35736,32 @@ const Button = styled__default["default"].button`
35729
35736
  display: flex;
35730
35737
  gap: 12px;
35731
35738
  align-items: center;
35732
- color: #212121;
35733
- padding: 0 24px 10px;
35734
- font-size: 16px;
35735
- font-weight: 600;
35739
+ color: ${props => props.notSelectedColor || '#212121'};
35740
+ padding: 12px 24px;
35741
+ font-family: 'Poppins', sans-serif;
35742
+ font-size: ${props => props.fontSize || '16px'};
35743
+ font-weight: ${props => props.fontWeight || '600'};
35744
+ border-radius: 8px;
35745
+ cursor: pointer;
35746
+ min-height: 44px;
35747
+ box-sizing: border-box;
35748
+ position: relative;
35736
35749
 
35737
35750
  &.active {
35738
35751
  color: ${props => props.color || '#066768'};
35739
- border-bottom: 3px solid ${props => props.color || '#066768'};
35752
+ background-color: ${props => props.selectedBackgroundColor || 'transparent'};
35753
+
35754
+ ${props => props.layout !== 'vertical' && `
35755
+ &::after {
35756
+ content: '';
35757
+ position: absolute;
35758
+ bottom: 0;
35759
+ left: 0;
35760
+ right: 0;
35761
+ height: 3px;
35762
+ background-color: ${props.color || '#066768'};
35763
+ }
35764
+ `}
35740
35765
  }
35741
35766
 
35742
35767
  &:disabled {
@@ -35748,6 +35773,14 @@ const Button = styled__default["default"].button`
35748
35773
  const MenuRoute = props => {
35749
35774
  const {
35750
35775
  tabsPosition,
35776
+ layout = 'horizontal',
35777
+ width = '100%',
35778
+ fontSize = '16px',
35779
+ fontWeight = '600',
35780
+ notSelectedColor = '#212121',
35781
+ selectedBackgroundColor = 'transparent',
35782
+ iconSize = '24',
35783
+ iconColor = '#212121',
35751
35784
  items,
35752
35785
  color,
35753
35786
  selecetIndex = 0,
@@ -35770,16 +35803,26 @@ const MenuRoute = props => {
35770
35803
  onTabClick(key);
35771
35804
  }
35772
35805
  };
35773
- return /*#__PURE__*/React__default["default"].createElement(MenuRouteContainer, null, /*#__PURE__*/React__default["default"].createElement(ButtonGroup, {
35774
- pos: tabsPosition
35806
+ return /*#__PURE__*/React__default["default"].createElement(MenuRouteContainer, {
35807
+ width: width
35808
+ }, /*#__PURE__*/React__default["default"].createElement(ButtonGroup, {
35809
+ pos: tabsPosition,
35810
+ layout: layout
35775
35811
  }, items.map(item => /*#__PURE__*/React__default["default"].createElement(Button, {
35776
35812
  key: item.key,
35777
35813
  onClick: () => handleItemClick(item.key, item),
35778
35814
  disabled: item.disabled,
35779
35815
  className: activeItem === item.key ? 'active' : '',
35780
- color: color
35816
+ color: color,
35817
+ layout: layout,
35818
+ fontSize: fontSize,
35819
+ fontWeight: fontWeight,
35820
+ notSelectedColor: notSelectedColor,
35821
+ selectedBackgroundColor: selectedBackgroundColor
35781
35822
  }, item.icon && /*#__PURE__*/React__default["default"].cloneElement(item.icon, {
35782
- fill: item.disabled ? '#717171' : activeItem === item.key ? color : item.icon.props.fill
35823
+ width: iconSize,
35824
+ height: iconSize,
35825
+ fill: item.disabled ? '#717171' : activeItem === item.key ? color : iconColor
35783
35826
  }), /*#__PURE__*/React__default["default"].isValidElement(item.label) ? item.label : item.label))));
35784
35827
  };
35785
35828
 
@@ -35856,6 +35899,380 @@ const Execute = _ref => {
35856
35899
  }));
35857
35900
  };
35858
35901
 
35902
+ const Dashboard = _ref => {
35903
+ let {
35904
+ width = '24',
35905
+ height = '24',
35906
+ fill = "#212121"
35907
+ } = _ref;
35908
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
35909
+ width: width,
35910
+ height: height,
35911
+ viewBox: "0 0 24 24",
35912
+ fill: "none",
35913
+ xmlns: "http://www.w3.org/2000/svg"
35914
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
35915
+ d: "M3 3H10V11H3V3ZM14 3H21V7H14V3ZM14 11H21V21H14V11ZM3 15H10V21H3V15Z",
35916
+ fill: fill
35917
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
35918
+ d: "M4 4V10H9V4H4ZM15 4V6H20V4H15ZM15 12V20H20V12H15ZM4 16V20H9V16H4Z",
35919
+ fill: "none",
35920
+ stroke: fill,
35921
+ strokeWidth: "0.5"
35922
+ }));
35923
+ };
35924
+
35925
+ const Campaigns = _ref => {
35926
+ let {
35927
+ width = '24',
35928
+ height = '24',
35929
+ fill = "#212121"
35930
+ } = _ref;
35931
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
35932
+ width: width,
35933
+ height: height,
35934
+ viewBox: "0 0 24 24",
35935
+ fill: "none",
35936
+ xmlns: "http://www.w3.org/2000/svg"
35937
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
35938
+ d: "M12 2L13.09 8.26L20.5 7L18.5 13.74L21 20L13.09 15.74L12 22L10.91 15.74L3 20L5.5 13.74L2.5 7L9.91 8.26L12 2Z",
35939
+ fill: fill
35940
+ }));
35941
+ };
35942
+
35943
+ const Budgets = _ref => {
35944
+ let {
35945
+ width = '24',
35946
+ height = '24',
35947
+ fill = "#212121"
35948
+ } = _ref;
35949
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
35950
+ width: width,
35951
+ height: height,
35952
+ viewBox: "0 0 24 24",
35953
+ fill: "none",
35954
+ xmlns: "http://www.w3.org/2000/svg"
35955
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
35956
+ d: "M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM13.5 6L15.5 7.5L14 9H16V11H13V13H16V15H13V17H11V15H9V13H10.5L12 11.5V9.5L10.5 8H9V6H11V4H13V6H13.5Z",
35957
+ fill: fill
35958
+ }));
35959
+ };
35960
+
35961
+ const SampleRunEngine = _ref => {
35962
+ let {
35963
+ width = '24',
35964
+ height = '24',
35965
+ fill = "#212121"
35966
+ } = _ref;
35967
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
35968
+ width: width,
35969
+ height: height,
35970
+ viewBox: "0 0 24 24",
35971
+ fill: "none",
35972
+ xmlns: "http://www.w3.org/2000/svg"
35973
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
35974
+ d: "M12 2L15.09 8.26L22 9L17 14L18.18 21L12 17.27L5.82 21L7 14L2 9L8.91 8.26L12 2Z",
35975
+ fill: "none",
35976
+ stroke: fill,
35977
+ strokeWidth: "1.5"
35978
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
35979
+ cx: "12",
35980
+ cy: "12",
35981
+ r: "3",
35982
+ fill: fill
35983
+ }));
35984
+ };
35985
+
35986
+ const Coupons = _ref => {
35987
+ let {
35988
+ width = '24',
35989
+ height = '24',
35990
+ fill = "#212121"
35991
+ } = _ref;
35992
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
35993
+ width: width,
35994
+ height: height,
35995
+ viewBox: "0 0 24 24",
35996
+ fill: "none",
35997
+ xmlns: "http://www.w3.org/2000/svg"
35998
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
35999
+ d: "M21 7V5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V7C4.1 7 5 7.9 5 9S4.1 11 3 11V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V11C19.9 11 19 10.1 19 9S19.9 7 21 7Z",
36000
+ fill: fill
36001
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36002
+ cx: "9",
36003
+ cy: "9",
36004
+ r: "1",
36005
+ fill: "white"
36006
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36007
+ cx: "15",
36008
+ cy: "9",
36009
+ r: "1",
36010
+ fill: "white"
36011
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36012
+ cx: "9",
36013
+ cy: "15",
36014
+ r: "1",
36015
+ fill: "white"
36016
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36017
+ cx: "15",
36018
+ cy: "15",
36019
+ r: "1",
36020
+ fill: "white"
36021
+ }));
36022
+ };
36023
+
36024
+ const RulesEngine = _ref => {
36025
+ let {
36026
+ width = '24',
36027
+ height = '24',
36028
+ fill = "#212121"
36029
+ } = _ref;
36030
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
36031
+ width: width,
36032
+ height: height,
36033
+ viewBox: "0 0 24 24",
36034
+ fill: "none",
36035
+ xmlns: "http://www.w3.org/2000/svg"
36036
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
36037
+ d: "M8 3L4 9L8 15H12L16 9L12 3H8Z",
36038
+ fill: fill
36039
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36040
+ d: "M13 21L9 15L13 9L17 15L13 21Z",
36041
+ fill: fill
36042
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36043
+ cx: "12",
36044
+ cy: "12",
36045
+ r: "2",
36046
+ fill: "white"
36047
+ }));
36048
+ };
36049
+
36050
+ const AdvancedThresholds = _ref => {
36051
+ let {
36052
+ width = '24',
36053
+ height = '24',
36054
+ fill = "#212121"
36055
+ } = _ref;
36056
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
36057
+ width: width,
36058
+ height: height,
36059
+ viewBox: "0 0 24 24",
36060
+ fill: "none",
36061
+ xmlns: "http://www.w3.org/2000/svg"
36062
+ }, /*#__PURE__*/React__default["default"].createElement("circle", {
36063
+ cx: "12",
36064
+ cy: "12",
36065
+ r: "9",
36066
+ fill: "none",
36067
+ stroke: fill,
36068
+ strokeWidth: "1.5"
36069
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36070
+ cx: "12",
36071
+ cy: "12",
36072
+ r: "6",
36073
+ fill: "none",
36074
+ stroke: fill,
36075
+ strokeWidth: "1.5"
36076
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36077
+ cx: "12",
36078
+ cy: "12",
36079
+ r: "3",
36080
+ fill: "none",
36081
+ stroke: fill,
36082
+ strokeWidth: "1.5"
36083
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36084
+ cx: "12",
36085
+ cy: "12",
36086
+ r: "1",
36087
+ fill: fill
36088
+ }));
36089
+ };
36090
+
36091
+ const PreTestWhatIf = _ref => {
36092
+ let {
36093
+ width = '24',
36094
+ height = '24',
36095
+ fill = "#212121"
36096
+ } = _ref;
36097
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
36098
+ width: width,
36099
+ height: height,
36100
+ viewBox: "0 0 24 24",
36101
+ fill: "none",
36102
+ xmlns: "http://www.w3.org/2000/svg"
36103
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
36104
+ d: "M12 2L2 7L12 12L22 7L12 2Z",
36105
+ fill: fill
36106
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36107
+ d: "M2 17L12 22L22 17",
36108
+ fill: "none",
36109
+ stroke: fill,
36110
+ strokeWidth: "1.5"
36111
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36112
+ d: "M2 12L12 17L22 12",
36113
+ fill: "none",
36114
+ stroke: fill,
36115
+ strokeWidth: "1.5"
36116
+ }));
36117
+ };
36118
+
36119
+ const CustomerSegments = _ref => {
36120
+ let {
36121
+ width = '24',
36122
+ height = '24',
36123
+ fill = "#212121"
36124
+ } = _ref;
36125
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
36126
+ width: width,
36127
+ height: height,
36128
+ viewBox: "0 0 24 24",
36129
+ fill: "none",
36130
+ xmlns: "http://www.w3.org/2000/svg"
36131
+ }, /*#__PURE__*/React__default["default"].createElement("circle", {
36132
+ cx: "9",
36133
+ cy: "7",
36134
+ r: "4",
36135
+ fill: fill
36136
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36137
+ d: "M3 21V19C3 16.79 4.79 15 7 15H11C13.21 15 15 16.79 15 19V21",
36138
+ fill: fill
36139
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36140
+ cx: "17",
36141
+ cy: "7",
36142
+ r: "3",
36143
+ fill: fill
36144
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36145
+ d: "M21 21V20C21 18.35 19.65 17 18 17H16C15.45 17 14.95 17.22 14.59 17.59",
36146
+ fill: fill
36147
+ }));
36148
+ };
36149
+
36150
+ const GroupBuilder = _ref => {
36151
+ let {
36152
+ width = '24',
36153
+ height = '24',
36154
+ fill = "#212121"
36155
+ } = _ref;
36156
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
36157
+ width: width,
36158
+ height: height,
36159
+ viewBox: "0 0 24 24",
36160
+ fill: "none",
36161
+ xmlns: "http://www.w3.org/2000/svg"
36162
+ }, /*#__PURE__*/React__default["default"].createElement("circle", {
36163
+ cx: "6",
36164
+ cy: "6",
36165
+ r: "3",
36166
+ fill: fill
36167
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36168
+ cx: "18",
36169
+ cy: "6",
36170
+ r: "3",
36171
+ fill: fill
36172
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36173
+ cx: "6",
36174
+ cy: "18",
36175
+ r: "3",
36176
+ fill: fill
36177
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36178
+ cx: "18",
36179
+ cy: "18",
36180
+ r: "3",
36181
+ fill: fill
36182
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36183
+ d: "M9 6H15",
36184
+ stroke: fill,
36185
+ strokeWidth: "1.5"
36186
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36187
+ d: "M6 9V15",
36188
+ stroke: fill,
36189
+ strokeWidth: "1.5"
36190
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36191
+ d: "M18 9V15",
36192
+ stroke: fill,
36193
+ strokeWidth: "1.5"
36194
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36195
+ d: "M9 18H15",
36196
+ stroke: fill,
36197
+ strokeWidth: "1.5"
36198
+ }));
36199
+ };
36200
+
36201
+ const ItemsStores = _ref => {
36202
+ let {
36203
+ width = '24',
36204
+ height = '24',
36205
+ fill = "#212121"
36206
+ } = _ref;
36207
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
36208
+ width: width,
36209
+ height: height,
36210
+ viewBox: "0 0 24 24",
36211
+ fill: "none",
36212
+ xmlns: "http://www.w3.org/2000/svg"
36213
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
36214
+ d: "M7 4V2C7 1.45 7.45 1 8 1H16C16.55 1 17 1.45 17 2V4H20C20.55 4 21 4.45 21 5S20.55 6 20 6H19V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V6H4C3.45 6 3 5.55 3 5S3.45 4 4 4H7Z",
36215
+ fill: fill
36216
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36217
+ d: "M9 8V17",
36218
+ stroke: "white",
36219
+ strokeWidth: "1"
36220
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36221
+ d: "M12 8V17",
36222
+ stroke: "white",
36223
+ strokeWidth: "1"
36224
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36225
+ d: "M15 8V17",
36226
+ stroke: "white",
36227
+ strokeWidth: "1"
36228
+ }));
36229
+ };
36230
+
36231
+ const Analytics = _ref => {
36232
+ let {
36233
+ width = '24',
36234
+ height = '24',
36235
+ fill = "#212121"
36236
+ } = _ref;
36237
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
36238
+ width: width,
36239
+ height: height,
36240
+ viewBox: "0 0 24 24",
36241
+ fill: "none",
36242
+ xmlns: "http://www.w3.org/2000/svg"
36243
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
36244
+ d: "M3 3V21H21",
36245
+ fill: "none",
36246
+ stroke: fill,
36247
+ strokeWidth: "1.5"
36248
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
36249
+ d: "M7 16L12 11L16 15L21 10",
36250
+ fill: "none",
36251
+ stroke: fill,
36252
+ strokeWidth: "1.5"
36253
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36254
+ cx: "7",
36255
+ cy: "16",
36256
+ r: "2",
36257
+ fill: fill
36258
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36259
+ cx: "12",
36260
+ cy: "11",
36261
+ r: "2",
36262
+ fill: fill
36263
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36264
+ cx: "16",
36265
+ cy: "15",
36266
+ r: "2",
36267
+ fill: fill
36268
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
36269
+ cx: "21",
36270
+ cy: "10",
36271
+ r: "2",
36272
+ fill: fill
36273
+ }));
36274
+ };
36275
+
35859
36276
  const scrollableStyles$1 = `
35860
36277
  &::-webkit-scrollbar {
35861
36278
  height: 8px;
@@ -37643,6 +38060,7 @@ const TableRow = styled__default["default"].tr`
37643
38060
  transition: all 0.3s ease;
37644
38061
  font-family: "Poppins", sans-serif;
37645
38062
  position: relative;
38063
+ background-color: ${props => props.isFocused ? props.selectedColor : "white"};
37646
38064
 
37647
38065
  &:hover {
37648
38066
  background-color: #e6f0f0;
@@ -37855,6 +38273,27 @@ const TrashIconWrapper = styled__default["default"].div`
37855
38273
  }
37856
38274
  }
37857
38275
  `;
38276
+ const CommentIconWrapper = styled__default["default"].div`
38277
+ cursor: pointer;
38278
+ transition: color 0.2s ease;
38279
+ display: inline-flex;
38280
+ align-items: center;
38281
+ justify-content: center;
38282
+ width: 100%;
38283
+ height: 100%;
38284
+ position: relative;
38285
+
38286
+ ${tooltipStyles}
38287
+
38288
+ /* Override tooltip position to move left */
38289
+ &[data-tooltip]:hover::before {
38290
+ left: calc(var(--tooltip-left, 0px) + var(--tooltip-width, 0px) / 2 - 50px);
38291
+ }
38292
+
38293
+ &[data-tooltip]:hover::after {
38294
+ left: calc(var(--tooltip-left, 0px) + var(--tooltip-width, 0px) / 2 - 50px);
38295
+ }
38296
+ `;
37858
38297
  const DisabledTrashIconWrapper = styled__default["default"].div`
37859
38298
  display: inline-flex;
37860
38299
  align-items: center;
@@ -37879,6 +38318,285 @@ const DisabledTrashIconWrapper = styled__default["default"].div`
37879
38318
  }
37880
38319
  `;
37881
38320
 
38321
+ // CommentModal.styles.js
38322
+ const ModalOverlay$1 = styled__default["default"].div`
38323
+ position: fixed;
38324
+ top: 0;
38325
+ left: 0;
38326
+ right: 0;
38327
+ bottom: 0;
38328
+ background-color: rgba(0, 0, 0, 0.5);
38329
+ display: flex;
38330
+ align-items: center;
38331
+ justify-content: center;
38332
+ z-index: 1000;
38333
+ `;
38334
+ const ModalContent = styled__default["default"].div`
38335
+ background: white;
38336
+ border-radius: 12px;
38337
+ width: 90%;
38338
+ max-width: 500px;
38339
+ max-height: 400px;
38340
+ display: flex;
38341
+ flex-direction: column;
38342
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
38343
+ animation: slideUp 0.3s ease-out;
38344
+
38345
+ @keyframes slideUp {
38346
+ from {
38347
+ opacity: 0;
38348
+ transform: translateY(20px) scale(0.95);
38349
+ }
38350
+ to {
38351
+ opacity: 1;
38352
+ transform: translateY(0) scale(1);
38353
+ }
38354
+ }
38355
+ `;
38356
+ const ModalHeader = styled__default["default"].div`
38357
+ display: flex;
38358
+ justify-content: space-between;
38359
+ align-items: center;
38360
+ padding: 12px 24px;
38361
+ border-bottom: 1px solid #D9D9D9;
38362
+ flex-shrink: 0;
38363
+ `;
38364
+ const ModalTitle$1 = styled__default["default"].h5`
38365
+ font-family: "Poppins", sans-serif;
38366
+ font-size: 18px;
38367
+ font-weight: 600;
38368
+ color: #212121;
38369
+ margin: 0;
38370
+ `;
38371
+ const CloseButton$1 = styled__default["default"].button`
38372
+ background: none;
38373
+ border: none;
38374
+ padding: 8px;
38375
+ cursor: pointer;
38376
+ color: #6b7280;
38377
+ border-radius: 6px;
38378
+ transition: all 0.2s ease;
38379
+ display: flex;
38380
+ align-items: center;
38381
+ justify-content: center;
38382
+
38383
+ &:hover {
38384
+ background-color: #f3f4f6;
38385
+ color: #374151;
38386
+ }
38387
+
38388
+ &:active {
38389
+ transform: scale(0.95);
38390
+ }
38391
+ `;
38392
+ const ModalBody = styled__default["default"].div`
38393
+ padding: 20px 24px 24px;
38394
+ flex: 1;
38395
+ display: flex;
38396
+ flex-direction: column;
38397
+ overflow: hidden;
38398
+ `;
38399
+ const TextareaWrapper = styled__default["default"].div`
38400
+ position: relative;
38401
+ display: flex;
38402
+ flex-direction: column;
38403
+ flex: 1;
38404
+ `;
38405
+ const TextareaLabel = styled__default["default"].label`
38406
+ position: absolute;
38407
+ font-size: 14px;
38408
+ font-weight: 400;
38409
+ top: -10px;
38410
+ left: 25px;
38411
+ padding: 0 4px;
38412
+ background-color: white;
38413
+ color: ${props => props.color};
38414
+ transition: all 0.2s ease;
38415
+ animation: slideInLabel 0.2s ease-out;
38416
+
38417
+ @keyframes slideInLabel {
38418
+ from {
38419
+ opacity: 0;
38420
+ transform: translateY(-4px);
38421
+ }
38422
+ to {
38423
+ opacity: 1;
38424
+ transform: translateY(0);
38425
+ }
38426
+ }
38427
+ `;
38428
+ const CommentTextarea = styled__default["default"].textarea`
38429
+ width: 100%;
38430
+ min-height: 120px;
38431
+ max-height: 200px;
38432
+ padding: 12px 16px;
38433
+ outline: none;
38434
+ border: 1px solid ${props => props.$hasValue ? props.color : '#8B8989'};
38435
+ border-radius: 12px;
38436
+ font-weight: 400;
38437
+ font-size: 14px;
38438
+ line-height: 1.5;
38439
+ resize: vertical;
38440
+ box-sizing: border-box;
38441
+ transition: all 0.2s ease;
38442
+ overflow-y: auto;
38443
+ font-family: "Poppins", sans-serif;
38444
+ resize: none;
38445
+
38446
+ &:focus {
38447
+ border: 1px solid ${props => props.color};
38448
+ }
38449
+
38450
+ &::placeholder {
38451
+ color: #9ca3af;
38452
+ }
38453
+
38454
+ /* Custom scrollbar */
38455
+ &::-webkit-scrollbar {
38456
+ width: 6px;
38457
+ }
38458
+
38459
+ &::-webkit-scrollbar-track {
38460
+ background: #f1f5f9;
38461
+ border-radius: 3px;
38462
+ }
38463
+
38464
+ &::-webkit-scrollbar-thumb {
38465
+ background: #cbd5e1;
38466
+ border-radius: 3px;
38467
+ }
38468
+
38469
+ &::-webkit-scrollbar-thumb:hover {
38470
+ background: #94a3b8;
38471
+ }
38472
+ `;
38473
+ const CharacterCount = styled__default["default"].div`
38474
+ margin-top: 8px;
38475
+ font-family: "Poppins", sans-serif;
38476
+ font-size: 12px;
38477
+ font-weight: 400;
38478
+ color: #6b7280;
38479
+ text-align: right;
38480
+ transition: color 0.2s ease;
38481
+ `;
38482
+ const ModalBottom = styled__default["default"].div`
38483
+ padding: 16px 24px;
38484
+ border-top: 1px solid #D9D9D9;
38485
+ display: flex;
38486
+ gap: 16px;
38487
+ justify-content: flex-end;
38488
+ align-items: center;
38489
+ `;
38490
+
38491
+ const CommentModal = props => {
38492
+ const {
38493
+ isOpen,
38494
+ onClose,
38495
+ onSave,
38496
+ maxLength = 150,
38497
+ color = "#066768",
38498
+ saveButtonHoverColor = "#388586",
38499
+ initialValue = ''
38500
+ } = props;
38501
+ const [commentText, setCommentText] = React$1.useState('');
38502
+ const [isFocused, setIsFocused] = React$1.useState(false);
38503
+ const [hasUserInteracted, setHasUserInteracted] = React$1.useState(false); // Track if user has started typing
38504
+ const [hasInitialValue, setHasInitialValue] = React$1.useState(false); // Track if there was initial text
38505
+
38506
+ // Update comment text when modal opens with initial value
38507
+ React$1.useEffect(() => {
38508
+ if (isOpen) {
38509
+ const initialText = initialValue || '';
38510
+ setCommentText(initialText);
38511
+ setHasInitialValue(Boolean(initialText.trim())); // Check if there's actual content
38512
+ setHasUserInteracted(false); // Reset interaction state
38513
+ }
38514
+ }, [isOpen, initialValue]);
38515
+ if (!isOpen) return null;
38516
+ const handleTextChange = e => {
38517
+ const text = e.target.value;
38518
+ if (text.length <= maxLength) {
38519
+ setCommentText(text);
38520
+ if (!hasUserInteracted) {
38521
+ setHasUserInteracted(true); // Mark that user has started interacting
38522
+ }
38523
+ }
38524
+ };
38525
+ const handleOverlayClick = e => {
38526
+ if (e.target === e.currentTarget) {
38527
+ onClose();
38528
+ }
38529
+ };
38530
+ const handleSave = () => {
38531
+ if (onSave) {
38532
+ onSave(commentText);
38533
+ }
38534
+ // Don't clear the text here - let the parent handle closing
38535
+ };
38536
+ const handleClose = () => {
38537
+ setCommentText('');
38538
+ setHasUserInteracted(false);
38539
+ setHasInitialValue(false);
38540
+ onClose();
38541
+ };
38542
+ const handleFocus = () => {
38543
+ setIsFocused(true);
38544
+ };
38545
+ const handleBlur = () => {
38546
+ setIsFocused(false);
38547
+ };
38548
+
38549
+ // Determine if save button should be enabled
38550
+ const isSaveEnabled = hasUserInteracted && (commentText.length > 0 || hasInitialValue);
38551
+ return /*#__PURE__*/React__default["default"].createElement(ModalOverlay$1, {
38552
+ onClick: handleOverlayClick
38553
+ }, /*#__PURE__*/React__default["default"].createElement(ModalContent, null, /*#__PURE__*/React__default["default"].createElement(ModalHeader, null, /*#__PURE__*/React__default["default"].createElement(ModalTitle$1, null, "Add Comment"), /*#__PURE__*/React__default["default"].createElement(CloseButton$1, {
38554
+ onClick: handleClose
38555
+ }, /*#__PURE__*/React__default["default"].createElement("svg", {
38556
+ width: "24",
38557
+ height: "24",
38558
+ viewBox: "0 0 24 24",
38559
+ fill: "none"
38560
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
38561
+ d: "M18 6L6 18M6 6l12 12",
38562
+ stroke: "currentColor",
38563
+ strokeWidth: "2",
38564
+ strokeLinecap: "round",
38565
+ strokeLinejoin: "round"
38566
+ })))), /*#__PURE__*/React__default["default"].createElement(ModalBody, null, /*#__PURE__*/React__default["default"].createElement(TextareaWrapper, null, (commentText.length > 0 || isFocused) && /*#__PURE__*/React__default["default"].createElement(TextareaLabel, {
38567
+ color: color
38568
+ }, "Comment"), /*#__PURE__*/React__default["default"].createElement(CommentTextarea, {
38569
+ value: commentText,
38570
+ onChange: handleTextChange,
38571
+ placeholder: "Type a Comment...",
38572
+ maxLength: maxLength,
38573
+ color: color,
38574
+ $hasValue: commentText.length > 0,
38575
+ onBlur: handleBlur,
38576
+ onFocus: handleFocus
38577
+ }), /*#__PURE__*/React__default["default"].createElement(CharacterCount, null, commentText.length, "/", maxLength))), /*#__PURE__*/React__default["default"].createElement(ModalBottom, null, /*#__PURE__*/React__default["default"].createElement(Button$1, {
38578
+ text: "Cancel",
38579
+ type: "secondary",
38580
+ size: "medium",
38581
+ borderColor: "#D3D3D3",
38582
+ hoverTextColor: "#212121",
38583
+ hoverBackgroundColor: "#E6F0F0",
38584
+ hoverBorderColor: "#D3D3D3",
38585
+ onClick: handleClose
38586
+ }), /*#__PURE__*/React__default["default"].createElement(Button$1, {
38587
+ text: "Save",
38588
+ size: "medium",
38589
+ disabled: !isSaveEnabled,
38590
+ hoverTextColor: "#ffffff",
38591
+ disabledTextColor: "#ffffff",
38592
+ borderColor: color,
38593
+ backgroundColor: color,
38594
+ hoverBorderColor: saveButtonHoverColor,
38595
+ hoverBackgroundColor: saveButtonHoverColor,
38596
+ onClick: handleSave
38597
+ }))));
38598
+ };
38599
+
37882
38600
  // OkIcon.jsx
37883
38601
  const OkIcon = _ref => {
37884
38602
  let {
@@ -37897,6 +38615,30 @@ const OkIcon = _ref => {
37897
38615
  }));
37898
38616
  };
37899
38617
 
38618
+ const CommentIcon = ({
38619
+ width = '15',
38620
+ height = '15',
38621
+ showCircle = false,
38622
+ circleColor = '#066768'
38623
+ }) => /*#__PURE__*/React__default["default"].createElement("svg", {
38624
+ xmlns: "http://www.w3.org/2000/svg",
38625
+ width: width,
38626
+ height: height,
38627
+ viewBox: "0 0 15 15",
38628
+ fill: "none"
38629
+ }, showCircle ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("path", {
38630
+ d: "M7.41699 1C7.2371 1.41164 7.1112 1.85196 7.04785 2.3125H1.75C1.5094 2.3125 1.31254 2.5094 1.3125 2.75V10.625C1.3125 10.8656 1.50937 11.0625 1.75 11.0625H4.375C5.09961 11.0625 5.6875 11.6513 5.6875 12.376V12.8135L7.66992 11.3252C7.89675 11.1558 8.17284 11.0626 8.45703 11.0625H12.25C12.4906 11.0625 12.6875 10.8656 12.6875 10.625V7.95117C13.148 7.88782 13.5884 7.76288 14 7.58301V10.625C14 11.5903 13.2152 12.376 12.25 12.376H8.45703L5.6875 14.4541L5.68164 14.459L5.54297 14.5635L5.0752 14.9131C4.94395 15.0115 4.76562 15.0279 4.61523 14.9541C4.46515 14.8803 4.37514 14.73 4.375 14.5635V12.376H1.75C0.784766 12.376 0 11.5903 0 10.625V2.75C4.08976e-05 1.78476 0.784791 1 1.75 1H7.41699Z",
38631
+ fill: "#212121"
38632
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
38633
+ cx: "12",
38634
+ cy: "3",
38635
+ r: "3",
38636
+ fill: circleColor
38637
+ })) : /*#__PURE__*/React__default["default"].createElement("path", {
38638
+ d: "M4.375 10.0629C5.09961 10.0629 5.6875 10.6509 5.6875 11.3755V11.813L7.66992 10.3254C7.89687 10.1559 8.17305 10.0629 8.45742 10.0629H12.25C12.4906 10.0629 12.6875 9.86605 12.6875 9.62541V1.75008C12.6875 1.50944 12.4906 1.31256 12.25 1.31256H1.75C1.50937 1.31256 1.3125 1.50944 1.3125 1.75008V9.62541C1.3125 9.86605 1.50937 10.0629 1.75 10.0629H4.375ZM5.6875 13.4537L5.68203 13.4592L5.54258 13.5631L5.075 13.9131C4.94375 14.0115 4.76602 14.0279 4.61562 13.9541C4.46523 13.8803 4.375 13.7299 4.375 13.5631V12.9806V12.8056V12.7974V12.688V11.3755H3.0625H1.75C0.784766 11.3755 0 10.5907 0 9.62541V1.75008C0 0.784799 0.784766 0 1.75 0H12.25C13.2152 0 14 0.784799 14 1.75008V9.62541C14 10.5907 13.2152 11.3755 12.25 11.3755H8.45742L5.6875 13.4537Z",
38639
+ fill: "#212121"
38640
+ }));
38641
+
37900
38642
  // TrashIcon.jsx
37901
38643
  const TrashIcon = ({
37902
38644
  width = "14",
@@ -37937,27 +38679,31 @@ const DisabledTrashIcon = ({
37937
38679
  };
37938
38680
 
37939
38681
  // TableBody.jsx
37940
- const TableBody = /*#__PURE__*/React$1.forwardRef(({
38682
+ const TableBody = ({
37941
38683
  columns,
37942
38684
  data,
37943
38685
  onRowClick,
37944
38686
  onSendClick,
37945
38687
  buttonColor,
37946
38688
  onDeleteClick,
38689
+ selectedColor,
37947
38690
  resetFocus = false,
37948
38691
  onFocusChange,
37949
- indexToShimmer = 0
37950
- }, ref) => {
38692
+ indexToShimmer = 0,
38693
+ onCommentSave = () => {},
38694
+ ref = null
38695
+ }) => {
37951
38696
  const [hoveredRowIndex, setHoveredRowIndex] = React$1.useState(null);
37952
38697
  const [focusedRowIndex, setFocusedRowIndex] = React$1.useState(null);
38698
+ const [isCommentModalOpen, setIsCommentModalOpen] = React$1.useState(false);
38699
+ const [currentCommentRow, setCurrentCommentRow] = React$1.useState(null); // Track which row is being edited
37953
38700
 
37954
- // Expose methods to parent components via ref
37955
- React$1.useImperativeHandle(ref, () => ({
37956
- clearFocus: () => setFocusedRowIndex(null),
37957
- getFocusedRowIndex: () => focusedRowIndex
37958
- }));
38701
+ // Expose methods to parent components via ref (if ref is provided)
38702
+ // useImperativeHandle(ref, () => ({
38703
+ // clearFocus: () => setFocusedRowIndex(null),
38704
+ // getFocusedRowIndex: () => focusedRowIndex
38705
+ // }), [focusedRowIndex]);
37959
38706
 
37960
- // Handle resetFocus prop
37961
38707
  React$1.useEffect(() => {
37962
38708
  if (resetFocus) {
37963
38709
  setFocusedRowIndex(null);
@@ -37965,11 +38711,11 @@ const TableBody = /*#__PURE__*/React$1.forwardRef(({
37965
38711
  }, [resetFocus]);
37966
38712
 
37967
38713
  // Notify parent of focus changes
37968
- React$1.useEffect(() => {
37969
- if (onFocusChange) {
37970
- onFocusChange(focusedRowIndex);
37971
- }
37972
- }, [focusedRowIndex, onFocusChange]);
38714
+ // useEffect(() => {
38715
+ // if (onFocusChange) {
38716
+ // onFocusChange(focusedRowIndex);
38717
+ // }
38718
+ // }, [focusedRowIndex, onFocusChange]);
37973
38719
 
37974
38720
  // Handle row click for focus state
37975
38721
  const handleRowClick = (row, rowIndex) => {
@@ -37979,6 +38725,21 @@ const TableBody = /*#__PURE__*/React$1.forwardRef(({
37979
38725
  }
37980
38726
  };
37981
38727
 
38728
+ // Handle comment save
38729
+ const handleCommentSave = commentText => {
38730
+ if (currentCommentRow !== null) {
38731
+ onCommentSave(currentCommentRow, commentText);
38732
+ }
38733
+ setCurrentCommentRow(null);
38734
+ setIsCommentModalOpen(false);
38735
+ };
38736
+
38737
+ // Handle comment modal close
38738
+ const handleCommentModalClose = () => {
38739
+ setCurrentCommentRow(null);
38740
+ setIsCommentModalOpen(false);
38741
+ };
38742
+
37982
38743
  // Function to calculate tooltip height based on text length
37983
38744
  const calculateTooltipOffset = (text, isRegularCell = false) => {
37984
38745
  if (!text) return {
@@ -38114,6 +38875,49 @@ const TableBody = /*#__PURE__*/React$1.forwardRef(({
38114
38875
  }), /*#__PURE__*/React__default["default"].createElement("span", null, "All Sent"));
38115
38876
  }
38116
38877
  return value;
38878
+ case 'comments':
38879
+ const commentText = value || '';
38880
+ const hasComments = commentText.trim().length > 0;
38881
+
38882
+ // Truncate tooltip text if longer than 150 characters
38883
+ const commentTooltipText = commentText.length > 150 ? commentText.substring(0, 147) + '...' : commentText;
38884
+ return /*#__PURE__*/React__default["default"].createElement(CommentIconWrapper, {
38885
+ $buttonColor: buttonColor,
38886
+ ref: el => {
38887
+ if (el) {
38888
+ if (hasComments) {
38889
+ // Add tooltip if there are comments
38890
+ const rect = el.getBoundingClientRect();
38891
+ const {
38892
+ offset,
38893
+ height
38894
+ } = calculateTooltipOffset(commentTooltipText);
38895
+ el.style.setProperty('--tooltip-top', `${rect.top}px`);
38896
+ el.style.setProperty('--tooltip-left', `${rect.left}px`);
38897
+ el.style.setProperty('--tooltip-width', `${rect.width}px`);
38898
+ el.style.setProperty('--tooltip-offset', `${offset}px`);
38899
+ el.style.setProperty('--tooltip-height', `${height}px`);
38900
+ el.setAttribute('data-tooltip', commentTooltipText);
38901
+ } else {
38902
+ // Remove tooltip if there are no comments
38903
+ el.removeAttribute('data-tooltip');
38904
+ el.style.removeProperty('--tooltip-top');
38905
+ el.style.removeProperty('--tooltip-left');
38906
+ el.style.removeProperty('--tooltip-width');
38907
+ el.style.removeProperty('--tooltip-offset');
38908
+ el.style.removeProperty('--tooltip-height');
38909
+ }
38910
+ }
38911
+ },
38912
+ onClick: e => {
38913
+ e.stopPropagation();
38914
+ setCurrentCommentRow(rowIndex);
38915
+ setIsCommentModalOpen(true);
38916
+ }
38917
+ }, /*#__PURE__*/React__default["default"].createElement(CommentIcon, {
38918
+ showCircle: hasComments,
38919
+ circleColor: "#066768"
38920
+ }));
38117
38921
  case 'trash':
38118
38922
  // Only show trash icon when row is hovered
38119
38923
  if (hoveredRowIndex !== rowIndex) {
@@ -38177,11 +38981,12 @@ const TableBody = /*#__PURE__*/React$1.forwardRef(({
38177
38981
  const shouldShowTooltip = (element, content) => {
38178
38982
  return element && element.scrollWidth > element.clientWidth;
38179
38983
  };
38180
- return /*#__PURE__*/React__default["default"].createElement(StyledTableBody, null, data.map((row, rowIndex) => /*#__PURE__*/React__default["default"].createElement(TableRow, {
38984
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(StyledTableBody, null, data.map((row, rowIndex) => /*#__PURE__*/React__default["default"].createElement(TableRow, {
38181
38985
  key: rowIndex,
38182
38986
  "data-row-index": rowIndex,
38183
38987
  className: indexToShimmer === rowIndex ? 'shimmer-row' : '',
38184
- $isFocused: focusedRowIndex === rowIndex,
38988
+ isFocused: focusedRowIndex === rowIndex,
38989
+ selectedColor: selectedColor,
38185
38990
  onMouseEnter: () => setHoveredRowIndex(rowIndex),
38186
38991
  onMouseLeave: () => setHoveredRowIndex(null),
38187
38992
  onClick: () => handleRowClick(row, rowIndex)
@@ -38210,8 +39015,13 @@ const TableBody = /*#__PURE__*/React$1.forwardRef(({
38210
39015
  $minWidth: column.minWidth,
38211
39016
  $maxWidth: column.maxWidth
38212
39017
  }, formattedValue);
38213
- }))));
38214
- });
39018
+ })))), /*#__PURE__*/React__default["default"].createElement(CommentModal, {
39019
+ isOpen: isCommentModalOpen,
39020
+ onClose: handleCommentModalClose,
39021
+ onSave: handleCommentSave,
39022
+ initialValue: currentCommentRow !== null ? data[currentCommentRow]?.Comments || '' : ''
39023
+ }));
39024
+ };
38215
39025
  TableBody.propTypes = {
38216
39026
  columns: PropTypes.array.isRequired,
38217
39027
  data: PropTypes.array.isRequired,
@@ -38221,7 +39031,9 @@ TableBody.propTypes = {
38221
39031
  onDeleteClick: PropTypes.func,
38222
39032
  resetFocus: PropTypes.bool,
38223
39033
  onFocusChange: PropTypes.func,
38224
- indexToShimmer: PropTypes.number
39034
+ indexToShimmer: PropTypes.number,
39035
+ onCommentSave: PropTypes.func,
39036
+ ref: PropTypes.object
38225
39037
  };
38226
39038
  TableBody.displayName = 'TableBody';
38227
39039
 
@@ -41392,7 +42204,7 @@ var Lottie = function Lottie(props) {
41392
42204
  };
41393
42205
 
41394
42206
  // Table.jsx
41395
- const Table = /*#__PURE__*/React$1.forwardRef((props, ref) => {
42207
+ const Table = props => {
41396
42208
  const {
41397
42209
  width = '100%',
41398
42210
  height = 'auto',
@@ -41403,7 +42215,6 @@ const Table = /*#__PURE__*/React$1.forwardRef((props, ref) => {
41403
42215
  onButtonClick = () => {},
41404
42216
  buttonColor = '#066768',
41405
42217
  buttonHoverColor = '#388586',
41406
- // Updated props for new table structure
41407
42218
  columns = [],
41408
42219
  onRowClick = () => {},
41409
42220
  onSort,
@@ -41413,6 +42224,7 @@ const Table = /*#__PURE__*/React$1.forwardRef((props, ref) => {
41413
42224
  onSideButtonClick = () => {},
41414
42225
  sideButtonColor = '#066768',
41415
42226
  sideButtonHoverColor = '#388586',
42227
+ selectedColor = '#B4D1D2',
41416
42228
  children = null,
41417
42229
  tableBodyHeight = '728px',
41418
42230
  isLoading = false,
@@ -41432,7 +42244,10 @@ const Table = /*#__PURE__*/React$1.forwardRef((props, ref) => {
41432
42244
  clearFocusOnOutsideClick = true,
41433
42245
  // NEW: Props for edit mode focus management
41434
42246
  isEditMode = false,
41435
- editRowIndex = -1
42247
+ editRowIndex = -1,
42248
+ onCommentSave = () => {},
42249
+ // Accept ref as a regular prop
42250
+ ref = null
41436
42251
  } = props;
41437
42252
  const scrollWrapperRef = React$1.useRef(null);
41438
42253
  const tableBodyRef = React$1.useRef(null);
@@ -41451,11 +42266,16 @@ const Table = /*#__PURE__*/React$1.forwardRef((props, ref) => {
41451
42266
  onTableFocusChange(focusedRowIndex);
41452
42267
  };
41453
42268
 
41454
- // Expose methods to parent components via ref
42269
+ // Handle comment save - pass through to parent
42270
+ const handleCommentSave = (rowIndex, commentText) => {
42271
+ onCommentSave(rowIndex, commentText);
42272
+ };
42273
+
42274
+ // Expose methods to parent components via ref (if ref is provided)
41455
42275
  React$1.useImperativeHandle(ref, () => ({
41456
42276
  clearTableFocus,
41457
42277
  getTableBodyRef: () => tableBodyRef.current
41458
- }));
42278
+ }), []);
41459
42279
  React$1.useEffect(() => {
41460
42280
  const scrollWrapper = scrollWrapperRef.current;
41461
42281
  if (!scrollWrapper || !onLastRowsReached) return;
@@ -41533,9 +42353,11 @@ const Table = /*#__PURE__*/React$1.forwardRef((props, ref) => {
41533
42353
  columns: columns,
41534
42354
  indexToShimmer: indexToShimmer,
41535
42355
  data: data,
42356
+ selectedColor: selectedColor,
41536
42357
  onRowClick: onRowClick,
41537
42358
  onSendClick: onSendClick,
41538
42359
  onDeleteClick: onDeleteClick,
42360
+ onCommentSave: handleCommentSave,
41539
42361
  buttonColor: buttonColor,
41540
42362
  resetFocus: resetTableFocus,
41541
42363
  onFocusChange: handleTableFocusChange
@@ -41557,7 +42379,7 @@ const Table = /*#__PURE__*/React$1.forwardRef((props, ref) => {
41557
42379
  animationData: LoadingAnimation,
41558
42380
  loop: true
41559
42381
  }), /*#__PURE__*/React__default["default"].createElement(LoadingText, null, isLoadingText)))));
41560
- });
42382
+ };
41561
42383
 
41562
42384
  // Add displayName for better debugging
41563
42385
  Table.displayName = 'Table';
@@ -52516,6 +53338,8 @@ const QuickFilterCards = _ref => {
52516
53338
  }));
52517
53339
  };
52518
53340
 
53341
+ exports.AdvancedThresholds = AdvancedThresholds;
53342
+ exports.Analytics = Analytics;
52519
53343
  exports.AreaChart = AreaChart;
52520
53344
  exports.BannerEventBoxList = BannerEventBoxList;
52521
53345
  exports.BarChart = BarChart;
@@ -52526,11 +53350,16 @@ exports.BatteryChart = BatteryChart;
52526
53350
  exports.BreakdownPanel = BreakdownPanel;
52527
53351
  exports.BrushChart = BrushChart;
52528
53352
  exports.BubbleChart = BubbleChart;
53353
+ exports.Budgets = Budgets;
52529
53354
  exports.Build = Build;
52530
53355
  exports.Button = Button$1;
53356
+ exports.Campaigns = Campaigns;
52531
53357
  exports.CollapseData = CollapseData;
52532
53358
  exports.CollapseHeader = CollapseHeader;
52533
53359
  exports.ContainerTable = ContainerTable;
53360
+ exports.Coupons = Coupons;
53361
+ exports.CustomerSegments = CustomerSegments;
53362
+ exports.Dashboard = Dashboard;
52534
53363
  exports.DialogOverlay = DialogOverlay$1;
52535
53364
  exports.DoubleBarSingleLine = DoubleBarSingleLine;
52536
53365
  exports.DoublePanelDataRow = DoublePanelDataRow;
@@ -52541,11 +53370,13 @@ exports.EventList = EventList;
52541
53370
  exports.Execute = Execute;
52542
53371
  exports.FilterPanel = FilterPanel;
52543
53372
  exports.FilterPop = FilterPop;
53373
+ exports.GroupBuilder = GroupBuilder;
52544
53374
  exports.Heatmap = Heatmap;
52545
53375
  exports.IconButton = IconButton$1;
52546
53376
  exports.Input = Input$2;
52547
53377
  exports.InsightsCarousel = InsightsCarousel;
52548
53378
  exports.ItemManagerPanel = ItemManagerPanel;
53379
+ exports.ItemsStores = ItemsStores;
52549
53380
  exports.LinkButton = LinkButton;
52550
53381
  exports.LinnerDataBox = LinnerDataBox;
52551
53382
  exports.MarketShareDescription = MarketShareDescription;
@@ -52558,11 +53389,14 @@ exports.OverlayDropdown = OverlayDropdown;
52558
53389
  exports.PerformanceAnalyticsLegend = PerformanceAnalyticsLegend;
52559
53390
  exports.PieChart = PieChart;
52560
53391
  exports.PopupCharts = PopupCharts;
53392
+ exports.PreTestWhatIf = PreTestWhatIf;
52561
53393
  exports.QuickFilter = QuickFilter;
52562
53394
  exports.QuickFilterCards = QuickFilterCards;
52563
53395
  exports.RangePicker = RangePicker;
52564
53396
  exports.RangePop = RangePop;
52565
53397
  exports.ReportTable = ReportTable;
53398
+ exports.RulesEngine = RulesEngine;
53399
+ exports.SampleRunEngine = SampleRunEngine;
52566
53400
  exports.SearchInput = SearchInput;
52567
53401
  exports.SingleBarLineCharts = SingleBarLineCharts;
52568
53402
  exports.SortPop = SortPop;