sag_components 2.0.0-beta173 → 2.0.0-beta174

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.
package/dist/index.js CHANGED
@@ -10439,23 +10439,24 @@ const QuarterPopupPicker = ({
10439
10439
  };
10440
10440
 
10441
10441
  /* eslint-disable import/no-extraneous-dependencies */
10442
- const QuarterPicker = ({
10443
- availableQuarters,
10444
- // ["Q1-2024"]
10445
- label,
10446
- onChange,
10447
- borderRadius,
10448
- required,
10449
- width,
10450
- height,
10451
- placeholder,
10452
- disabled,
10453
- borderColor,
10454
- borderColorFocus,
10455
- textColor,
10456
- selectedValue,
10457
- startYear
10458
- }) => {
10442
+ const QuarterPicker = _ref => {
10443
+ let {
10444
+ availableQuarters,
10445
+ // ["Q1-2024"]
10446
+ label,
10447
+ onChange,
10448
+ borderRadius,
10449
+ required,
10450
+ width,
10451
+ height,
10452
+ placeholder,
10453
+ disabled,
10454
+ borderColor,
10455
+ borderColorFocus,
10456
+ textColor,
10457
+ selectedValue,
10458
+ startYear
10459
+ } = _ref;
10459
10460
  const [isFocused, setIsFocused] = React$1.useState(false);
10460
10461
  const [isOpen, setIsOpen] = React$1.useState(false);
10461
10462
  const [value, setValue] = React$1.useState('');
@@ -10897,22 +10898,23 @@ const MonthPopupPicker = ({
10897
10898
  };
10898
10899
 
10899
10900
  /* eslint-disable import/no-extraneous-dependencies */
10900
- const MonthPicker = ({
10901
- availableMonths,
10902
- label,
10903
- onChange,
10904
- borderRadius,
10905
- required,
10906
- width,
10907
- height,
10908
- placeholder,
10909
- disabled,
10910
- borderColor,
10911
- borderColorFocus,
10912
- textColor,
10913
- selectedValue,
10914
- startYear
10915
- }) => {
10901
+ const MonthPicker = _ref => {
10902
+ let {
10903
+ availableMonths,
10904
+ label,
10905
+ onChange,
10906
+ borderRadius,
10907
+ required,
10908
+ width,
10909
+ height,
10910
+ placeholder,
10911
+ disabled,
10912
+ borderColor,
10913
+ borderColorFocus,
10914
+ textColor,
10915
+ selectedValue,
10916
+ startYear
10917
+ } = _ref;
10916
10918
  const [isFocused, setIsFocused] = React$1.useState(false);
10917
10919
  const [isOpen, setIsOpen] = React$1.useState(false);
10918
10920
  const [value, setValue] = React$1.useState('');
@@ -38741,13 +38743,13 @@ const ExpandedContent = styled__default["default"].div`
38741
38743
  `;
38742
38744
 
38743
38745
  // DROPDOWN STYLES
38744
- const DropdownContainer$1 = styled__default["default"].div`
38746
+ styled__default["default"].div`
38745
38747
  position: relative;
38746
38748
  display: inline-block;
38747
38749
  width: 100%;
38748
38750
  font-family: "Poppins", sans-serif;
38749
38751
  `;
38750
- const DropdownButton$1 = styled__default["default"].button`
38752
+ styled__default["default"].button`
38751
38753
  display: flex;
38752
38754
  align-items: center;
38753
38755
  justify-content: space-between;
@@ -38780,7 +38782,7 @@ const DropdownButton$1 = styled__default["default"].button`
38780
38782
  flex: 1;
38781
38783
  }
38782
38784
  `;
38783
- const DropdownIcon = styled__default["default"].div`
38785
+ styled__default["default"].div`
38784
38786
  display: flex;
38785
38787
  align-items: center;
38786
38788
  justify-content: center;
@@ -38795,7 +38797,7 @@ const DropdownIcon = styled__default["default"].div`
38795
38797
  transform: rotate(180deg);
38796
38798
  `}
38797
38799
  `;
38798
- const DropdownMenu = styled__default["default"].div`
38800
+ styled__default["default"].div`
38799
38801
  position: absolute;
38800
38802
  top: calc(100%);
38801
38803
  left: 0;
@@ -38828,7 +38830,7 @@ const DropdownMenu = styled__default["default"].div`
38828
38830
  background: #94a3b8;
38829
38831
  }
38830
38832
  `;
38831
- const DropdownOption = styled__default["default"].div`
38833
+ styled__default["default"].div`
38832
38834
  display: flex;
38833
38835
  align-items: center;
38834
38836
  justify-content: space-between;
@@ -39076,6 +39078,177 @@ const DisabledTrashIcon = ({
39076
39078
  }));
39077
39079
  };
39078
39080
 
39081
+ // DROPDOWN STYLES
39082
+ const DropdownContainer$1 = styled__default["default"].div`
39083
+ position: relative;
39084
+ display: inline-block;
39085
+ width: 100%;
39086
+ font-family: "Poppins", sans-serif;
39087
+ `;
39088
+ const DropdownButton$1 = styled__default["default"].button`
39089
+ display: flex;
39090
+ align-items: center;
39091
+ justify-content: space-between;
39092
+ width: 100%;
39093
+ min-width: 120px;
39094
+ background-color: ${props => props.$isRowFocused || props.$isRowHovered ? props.$selectedColor : "white"};
39095
+ border: none;
39096
+ border-radius: 0;
39097
+ font-family: "Poppins", sans-serif;
39098
+ font-size: 14px;
39099
+ font-weight: 400;
39100
+ color: #212121;
39101
+ cursor: pointer;
39102
+ transition: all 0.2s ease;
39103
+
39104
+ &:hover {
39105
+ background-color: #D1E7E7;
39106
+ }
39107
+
39108
+ &:focus {
39109
+ outline: none;
39110
+ background-color: #E6F0F0;
39111
+ }
39112
+
39113
+ span {
39114
+ overflow: hidden;
39115
+ text-overflow: ellipsis;
39116
+ white-space: nowrap;
39117
+ text-align: left;
39118
+ flex: 1;
39119
+ }
39120
+ `;
39121
+ const DropdownIcon = styled__default["default"].div`
39122
+ display: flex;
39123
+ align-items: center;
39124
+ justify-content: center;
39125
+ width: 20px;
39126
+ height: 20px;
39127
+ background-color: ${props => props.$isRowFocused || props.$isRowHovered ? '#B4D1D2' : 'white'};
39128
+ border-radius: 4px;
39129
+ margin-left: 8px;
39130
+ transition: all 0.2s ease;
39131
+
39132
+ ${props => props.$isOpen && `
39133
+ transform: rotate(180deg);
39134
+ `}
39135
+ `;
39136
+ const DropdownMenu = styled__default["default"].div`
39137
+ position: absolute;
39138
+ top: calc(100%);
39139
+ left: 0;
39140
+ right: 0;
39141
+ z-index: 1000;
39142
+ background-color: white;
39143
+ border: none;
39144
+ border-radius: 0;
39145
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
39146
+ font-family: "Poppins", sans-serif;
39147
+ max-height: ${props => props.$maxDropdownHeight || '200px'};
39148
+ overflow-y: auto;
39149
+ padding: 16px;
39150
+
39151
+ /* Custom scrollbar */
39152
+ &::-webkit-scrollbar {
39153
+ width: 4px;
39154
+ }
39155
+
39156
+ &::-webkit-scrollbar-track {
39157
+ background: transparent;
39158
+ }
39159
+
39160
+ &::-webkit-scrollbar-thumb {
39161
+ background: #cbd5e1;
39162
+ border-radius: 2px;
39163
+ }
39164
+
39165
+ &::-webkit-scrollbar-thumb:hover {
39166
+ background: #94a3b8;
39167
+ }
39168
+ `;
39169
+ const DropdownOption = styled__default["default"].div`
39170
+ display: flex;
39171
+ align-items: center;
39172
+ justify-content: space-between;
39173
+ padding: 8px;
39174
+ font-size: 14px;
39175
+ font-weight: 400;
39176
+ color: #374151;
39177
+ cursor: pointer;
39178
+ transition: all 0.15s ease;
39179
+ border-radius: 0;
39180
+ border-left: 3px solid transparent;
39181
+ background-color: white;
39182
+
39183
+ &:hover {
39184
+ background-color: #E6F0F0;
39185
+ }
39186
+
39187
+ ${props => props.$isSelected && `
39188
+ background-color: #B4D1D2;
39189
+ color: #374151;
39190
+ font-weight: 500;
39191
+ border-left: 3px solid #066768;
39192
+
39193
+ &:hover {
39194
+ background-color: #A3C9CA;
39195
+ }
39196
+ `}
39197
+ `;
39198
+
39199
+ const Dropdown = ({
39200
+ isOpen,
39201
+ options,
39202
+ selectedValue,
39203
+ displayText,
39204
+ onToggle,
39205
+ onOptionSelect,
39206
+ maxDropdownHeight,
39207
+ isRowFocused = false,
39208
+ isRowHovered = false,
39209
+ selectedColor
39210
+ }) => {
39211
+ return /*#__PURE__*/React__default["default"].createElement(DropdownContainer$1, null, /*#__PURE__*/React__default["default"].createElement(DropdownButton$1, {
39212
+ onClick: onToggle,
39213
+ $isOpen: isOpen,
39214
+ $isRowFocused: isRowFocused,
39215
+ $selectedColor: selectedColor
39216
+ }, /*#__PURE__*/React__default["default"].createElement("span", null, displayText), /*#__PURE__*/React__default["default"].createElement(DropdownIcon, {
39217
+ $isOpen: isOpen,
39218
+ $isRowFocused: isRowFocused,
39219
+ $isRowHovered: isRowHovered
39220
+ }, /*#__PURE__*/React__default["default"].createElement(MenuItemOpenIcon, {
39221
+ width: "10",
39222
+ height: "6",
39223
+ color: "#212121"
39224
+ }))), isOpen && /*#__PURE__*/React__default["default"].createElement(DropdownMenu, {
39225
+ $maxDropdownHeight: maxDropdownHeight
39226
+ }, options.map((option, index) => /*#__PURE__*/React__default["default"].createElement(DropdownOption, {
39227
+ key: index,
39228
+ onClick: e => onOptionSelect(option, e),
39229
+ $isSelected: option.value === selectedValue
39230
+ }, /*#__PURE__*/React__default["default"].createElement("span", null, option.label), option.value === selectedValue && /*#__PURE__*/React__default["default"].createElement(OkIcon, {
39231
+ width: "24",
39232
+ height: "24",
39233
+ color: "#066768"
39234
+ })))));
39235
+ };
39236
+ Dropdown.propTypes = {
39237
+ isOpen: PropTypes.bool.isRequired,
39238
+ options: PropTypes.arrayOf(PropTypes.shape({
39239
+ value: PropTypes.string.isRequired,
39240
+ label: PropTypes.string.isRequired
39241
+ })).isRequired,
39242
+ selectedValue: PropTypes.string,
39243
+ displayText: PropTypes.string.isRequired,
39244
+ onToggle: PropTypes.func.isRequired,
39245
+ onOptionSelect: PropTypes.func.isRequired,
39246
+ maxDropdownHeight: PropTypes.string,
39247
+ isRowFocused: PropTypes.bool,
39248
+ isRowHovered: PropTypes.bool,
39249
+ selectedColor: PropTypes.string
39250
+ };
39251
+
39079
39252
  // TableBody.jsx
39080
39253
  const TableBody = ({
39081
39254
  columns,
@@ -39465,30 +39638,18 @@ const TableBody = ({
39465
39638
  // Find the current selected option to display its label
39466
39639
  const currentOption = dropdownOptions.find(option => option.value === value);
39467
39640
  const displayText = currentOption ? currentOption.label : value || 'Select...';
39468
- return /*#__PURE__*/React__default["default"].createElement(DropdownContainer$1, null, /*#__PURE__*/React__default["default"].createElement(DropdownButton$1, {
39469
- onClick: e => handleDropdownClick(rowIndex, column.key, e),
39470
- $isOpen: isOpen,
39471
- $isRowFocused: focusedRowIndex === rowIndex,
39472
- $selectedColor: selectedColor
39473
- }, /*#__PURE__*/React__default["default"].createElement("span", null, displayText), /*#__PURE__*/React__default["default"].createElement(DropdownIcon, {
39474
- $isOpen: isOpen,
39475
- $isRowFocused: focusedRowIndex === rowIndex,
39476
- $isRowHovered: hoveredRowIndex === rowIndex
39477
- }, /*#__PURE__*/React__default["default"].createElement(MenuItemOpenIcon, {
39478
- width: "10",
39479
- height: "6",
39480
- color: "#212121"
39481
- }))), isOpen && /*#__PURE__*/React__default["default"].createElement(DropdownMenu, {
39482
- $maxDropdownHeight: maxDropdownHeight
39483
- }, dropdownOptions.map((option, index) => /*#__PURE__*/React__default["default"].createElement(DropdownOption, {
39484
- key: index,
39485
- onClick: e => handleDropdownOptionClick(row, rowIndex, column.key, option, e),
39486
- $isSelected: option.value === value
39487
- }, /*#__PURE__*/React__default["default"].createElement("span", null, option.label), option.value === value && /*#__PURE__*/React__default["default"].createElement(OkIcon, {
39488
- width: "24",
39489
- height: "24",
39490
- color: "#066768"
39491
- })))));
39641
+ return /*#__PURE__*/React__default["default"].createElement(Dropdown, {
39642
+ isOpen: isOpen,
39643
+ options: dropdownOptions,
39644
+ selectedValue: value,
39645
+ displayText: displayText,
39646
+ onToggle: e => handleDropdownClick(rowIndex, column.key, e),
39647
+ onOptionSelect: (option, e) => handleDropdownOptionClick(row, rowIndex, column.key, option, e),
39648
+ maxDropdownHeight: maxDropdownHeight,
39649
+ isRowFocused: focusedRowIndex === rowIndex,
39650
+ isRowHovered: hoveredRowIndex === rowIndex,
39651
+ selectedColor: selectedColor
39652
+ });
39492
39653
  default:
39493
39654
  // Treat default as text
39494
39655
  return value.toString();
@@ -39529,9 +39690,9 @@ const TableBody = ({
39529
39690
  [dropdownKey]: false
39530
39691
  }));
39531
39692
 
39532
- // Fire the onDropdownSelected event
39693
+ // Fire the onDropdownSelected event with columnKey instead of columnName
39533
39694
  if (onDropdownSelected) {
39534
- onDropdownSelected(row, selectedOption);
39695
+ onDropdownSelected(row, selectedOption, columnKey);
39535
39696
  }
39536
39697
  };
39537
39698