sag_components 2.0.0-beta314 → 2.0.0-beta316
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.esm.js +91 -56
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +91 -56
- package/dist/index.js.map +1 -1
- package/dist/types/components/Table/TableBody.styles.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -36225,19 +36225,15 @@ const ToggleInput = styled__default["default"].input`
|
|
|
36225
36225
|
const ToggleSlider = styled__default["default"].span`
|
|
36226
36226
|
display: block;
|
|
36227
36227
|
position: relative;
|
|
36228
|
-
background: ${
|
|
36229
|
-
|
|
36230
|
-
|
|
36231
|
-
|
|
36232
|
-
} = _ref;
|
|
36233
|
-
return checked ? "#006d6a" : disabled ? "#B1B1B1" : "#D0D0D0";
|
|
36234
|
-
}};
|
|
36228
|
+
background: ${({
|
|
36229
|
+
checked,
|
|
36230
|
+
disabled
|
|
36231
|
+
}) => checked ? "#006d6a" : disabled ? "#B1B1B1" : "#D0D0D0"};
|
|
36235
36232
|
border-radius: 999px;
|
|
36236
36233
|
transition: background 0.2s;
|
|
36237
|
-
${
|
|
36238
|
-
|
|
36239
|
-
|
|
36240
|
-
} = _ref2;
|
|
36234
|
+
${({
|
|
36235
|
+
size
|
|
36236
|
+
}) => {
|
|
36241
36237
|
switch (size) {
|
|
36242
36238
|
case "s":
|
|
36243
36239
|
return styled.css`width: 40px; height: 20px;`;
|
|
@@ -36253,18 +36249,14 @@ const ToggleSlider = styled__default["default"].span`
|
|
|
36253
36249
|
left: 3px;
|
|
36254
36250
|
top: 50%;
|
|
36255
36251
|
transform: translateY(-50%);
|
|
36256
|
-
background: ${
|
|
36257
|
-
|
|
36258
|
-
|
|
36259
|
-
} = _ref3;
|
|
36260
|
-
return disabled ? "#D0D0D0" : "#fff";
|
|
36261
|
-
}};
|
|
36252
|
+
background: ${({
|
|
36253
|
+
disabled
|
|
36254
|
+
}) => disabled ? "#D0D0D0" : "#fff"};
|
|
36262
36255
|
border-radius: 50%;
|
|
36263
36256
|
transition: left 0.2s, width 0.2s, height 0.2s;
|
|
36264
|
-
${
|
|
36265
|
-
|
|
36266
|
-
|
|
36267
|
-
} = _ref4;
|
|
36257
|
+
${({
|
|
36258
|
+
size
|
|
36259
|
+
}) => {
|
|
36268
36260
|
switch (size) {
|
|
36269
36261
|
case "s":
|
|
36270
36262
|
return styled.css`width: 14px; height: 14px;`;
|
|
@@ -36274,11 +36266,10 @@ const ToggleSlider = styled__default["default"].span`
|
|
|
36274
36266
|
return styled.css`width: 20px; height: 20px;`;
|
|
36275
36267
|
}
|
|
36276
36268
|
}}
|
|
36277
|
-
left: ${
|
|
36278
|
-
|
|
36279
|
-
|
|
36280
|
-
|
|
36281
|
-
} = _ref5;
|
|
36269
|
+
left: ${({
|
|
36270
|
+
checked,
|
|
36271
|
+
size
|
|
36272
|
+
}) => {
|
|
36282
36273
|
if (!checked) return "3px";
|
|
36283
36274
|
switch (size) {
|
|
36284
36275
|
case "s":
|
|
@@ -36292,9 +36283,9 @@ const ToggleSlider = styled__default["default"].span`
|
|
|
36292
36283
|
}
|
|
36293
36284
|
`;
|
|
36294
36285
|
|
|
36295
|
-
/**
|
|
36296
|
-
* ToggleSwitch component for on/off states.
|
|
36297
|
-
* Supports small/large sizes and disabled state.
|
|
36286
|
+
/**
|
|
36287
|
+
* ToggleSwitch component for on/off states.
|
|
36288
|
+
* Supports small/large sizes and disabled state.
|
|
36298
36289
|
*/
|
|
36299
36290
|
function ToggleSwitch(_ref) {
|
|
36300
36291
|
let {
|
|
@@ -42659,6 +42650,16 @@ const DropdownButton$1 = styled__default["default"].button`
|
|
|
42659
42650
|
white-space: nowrap;
|
|
42660
42651
|
text-align: left;
|
|
42661
42652
|
flex: 1;
|
|
42653
|
+
|
|
42654
|
+
/* Map --cell-* variables (set by Dropdown.jsx) to --tooltip-* variables (expected by tooltipStyles) */
|
|
42655
|
+
--tooltip-top: var(--cell-top);
|
|
42656
|
+
--tooltip-left: var(--cell-left);
|
|
42657
|
+
--tooltip-width: var(--cell-width);
|
|
42658
|
+
--tooltip-offset: calc(var(--cell-offset) + 20px); /* Add 20px to move tooltip up */
|
|
42659
|
+
--tooltip-height: var(--cell-height);
|
|
42660
|
+
|
|
42661
|
+
/* Import shared tooltip styles from TableBody */
|
|
42662
|
+
${tooltipStyles$1}
|
|
42662
42663
|
}
|
|
42663
42664
|
`;
|
|
42664
42665
|
const DropdownIcon = styled__default["default"].div`
|
|
@@ -42780,10 +42781,19 @@ const Dropdown = ({
|
|
|
42780
42781
|
showSelectAll = true // New prop to show/hide "Select All" option
|
|
42781
42782
|
}) => {
|
|
42782
42783
|
const [isDropdownHovered, setIsDropdownHovered] = React$1.useState(false);
|
|
42784
|
+
const displayTextRef = React$1.useRef(null);
|
|
42783
42785
|
|
|
42784
42786
|
// Normalize selectedValue to always be an array for consistency
|
|
42785
42787
|
const selectedValues = Array.isArray(selectedValue) ? selectedValue : selectedValue ? [selectedValue] : [];
|
|
42786
42788
|
|
|
42789
|
+
// Generate display text based on selections
|
|
42790
|
+
const getDisplayText = () => {
|
|
42791
|
+
if (selectedValues.length === 0) {
|
|
42792
|
+
return placeholder;
|
|
42793
|
+
}
|
|
42794
|
+
return `${selectedValues.map(val => options.find(opt => opt.value === val).label).join(', ')}`;
|
|
42795
|
+
};
|
|
42796
|
+
|
|
42787
42797
|
// Reset dropdown hover state when dropdown closes
|
|
42788
42798
|
React$1.useEffect(() => {
|
|
42789
42799
|
if (!isOpen) {
|
|
@@ -42791,6 +42801,46 @@ const Dropdown = ({
|
|
|
42791
42801
|
}
|
|
42792
42802
|
}, [isOpen]);
|
|
42793
42803
|
|
|
42804
|
+
// Apply tooltip when text overflows
|
|
42805
|
+
React$1.useEffect(() => {
|
|
42806
|
+
const element = displayTextRef.current;
|
|
42807
|
+
if (element) {
|
|
42808
|
+
const fullText = displayText || getDisplayText();
|
|
42809
|
+
|
|
42810
|
+
// Check if text overflows
|
|
42811
|
+
if (element.scrollWidth > element.clientWidth && fullText && fullText.trim() !== "") {
|
|
42812
|
+
try {
|
|
42813
|
+
const rect = element.getBoundingClientRect();
|
|
42814
|
+
if (rect.width > 0 && rect.height > 0) {
|
|
42815
|
+
const tooltipInfo = calculateTooltipOffset(fullText, true);
|
|
42816
|
+
if (tooltipInfo) {
|
|
42817
|
+
const {
|
|
42818
|
+
offset,
|
|
42819
|
+
height
|
|
42820
|
+
} = tooltipInfo;
|
|
42821
|
+
element.style.setProperty("--cell-top", `${rect.top}px`);
|
|
42822
|
+
element.style.setProperty("--cell-left", `${rect.left}px`);
|
|
42823
|
+
element.style.setProperty("--cell-width", `${rect.width}px`);
|
|
42824
|
+
element.style.setProperty("--cell-offset", `${offset}px`);
|
|
42825
|
+
element.style.setProperty("--cell-height", `${height}px`);
|
|
42826
|
+
element.setAttribute("data-tooltip", fullText);
|
|
42827
|
+
}
|
|
42828
|
+
}
|
|
42829
|
+
} catch (e) {
|
|
42830
|
+
console.warn("Error applying dropdown tooltip:", e);
|
|
42831
|
+
}
|
|
42832
|
+
} else {
|
|
42833
|
+
// Remove tooltip if text doesn't overflow
|
|
42834
|
+
element.removeAttribute("data-tooltip");
|
|
42835
|
+
element.style.removeProperty("--cell-top");
|
|
42836
|
+
element.style.removeProperty("--cell-left");
|
|
42837
|
+
element.style.removeProperty("--cell-width");
|
|
42838
|
+
element.style.removeProperty("--cell-offset");
|
|
42839
|
+
element.style.removeProperty("--cell-height");
|
|
42840
|
+
}
|
|
42841
|
+
}
|
|
42842
|
+
}, [displayText, selectedValues, options, placeholder]);
|
|
42843
|
+
|
|
42794
42844
|
// Check if an option is selected
|
|
42795
42845
|
const isOptionSelected = optionValue => {
|
|
42796
42846
|
return selectedValues.includes(optionValue);
|
|
@@ -42833,20 +42883,6 @@ const Dropdown = ({
|
|
|
42833
42883
|
}, e);
|
|
42834
42884
|
}
|
|
42835
42885
|
};
|
|
42836
|
-
|
|
42837
|
-
// Generate display text based on selections
|
|
42838
|
-
const getDisplayText = () => {
|
|
42839
|
-
if (selectedValues.length === 0) {
|
|
42840
|
-
return placeholder;
|
|
42841
|
-
}
|
|
42842
|
-
|
|
42843
|
-
// if (selectedValues.length === 1) {
|
|
42844
|
-
// const selectedOption = options.find(opt => opt.value === selectedValues[0]);
|
|
42845
|
-
// return selectedOption ? selectedOption.label : displayText;
|
|
42846
|
-
// }
|
|
42847
|
-
|
|
42848
|
-
return `${selectedValues.map(val => options.find(opt => opt.value === val).label).join(', ')}`;
|
|
42849
|
-
};
|
|
42850
42886
|
return /*#__PURE__*/React__default["default"].createElement(DropdownContainer$1, {
|
|
42851
42887
|
onMouseEnter: () => setIsDropdownHovered(true),
|
|
42852
42888
|
onMouseLeave: () => setIsDropdownHovered(false)
|
|
@@ -42856,7 +42892,9 @@ const Dropdown = ({
|
|
|
42856
42892
|
$isRowFocused: isRowFocused,
|
|
42857
42893
|
$isRowHovered: isRowHovered,
|
|
42858
42894
|
$selectedColor: selectedColor
|
|
42859
|
-
}, /*#__PURE__*/React__default["default"].createElement("span",
|
|
42895
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
42896
|
+
ref: displayTextRef
|
|
42897
|
+
}, displayText || getDisplayText()), /*#__PURE__*/React__default["default"].createElement(DropdownIcon, {
|
|
42860
42898
|
$isOpen: isOpen,
|
|
42861
42899
|
$isRowFocused: isRowFocused,
|
|
42862
42900
|
$isRowHovered: isRowHovered,
|
|
@@ -48002,23 +48040,19 @@ const NewItemList = ({
|
|
|
48002
48040
|
// - When searching with external/server-side search: show searchResults (can change length)
|
|
48003
48041
|
// - When searching with internal search: filter itemAndPackage locally
|
|
48004
48042
|
const filteredItems = React$1.useMemo(() => {
|
|
48005
|
-
// Safety check
|
|
48006
48043
|
if (!itemAndPackage || !Array.isArray(itemAndPackage)) {
|
|
48007
48044
|
return [];
|
|
48008
48045
|
}
|
|
48009
|
-
|
|
48010
|
-
// No search value = show static itemAndPackage list
|
|
48011
48046
|
if (!currentSearchValue) {
|
|
48012
48047
|
return itemAndPackage;
|
|
48013
48048
|
}
|
|
48014
|
-
|
|
48015
|
-
|
|
48016
|
-
|
|
48017
|
-
|
|
48018
|
-
|
|
48049
|
+
if (isExternalSearch) {
|
|
48050
|
+
if (serverSearchResults !== null) {
|
|
48051
|
+
return serverSearchResults;
|
|
48052
|
+
} else {
|
|
48053
|
+
return [];
|
|
48054
|
+
}
|
|
48019
48055
|
}
|
|
48020
|
-
|
|
48021
|
-
// Internal/client-side filtering of itemAndPackage
|
|
48022
48056
|
const searchLower = currentSearchValue.toLowerCase();
|
|
48023
48057
|
const results = [];
|
|
48024
48058
|
const startsWithResults = [];
|
|
@@ -48030,7 +48064,8 @@ const NewItemList = ({
|
|
|
48030
48064
|
results.push(itemAndPackage[i]);
|
|
48031
48065
|
}
|
|
48032
48066
|
}
|
|
48033
|
-
|
|
48067
|
+
const finalResults = [...startsWithResults, ...results];
|
|
48068
|
+
return finalResults;
|
|
48034
48069
|
}, [currentSearchValue, itemAndPackage, serverSearchResults, isExternalSearch]);
|
|
48035
48070
|
|
|
48036
48071
|
// ONLY ONE scroll detection useEffect
|
|
@@ -48104,7 +48139,7 @@ const NewItemList = ({
|
|
|
48104
48139
|
type: "search",
|
|
48105
48140
|
placeholder: "Search",
|
|
48106
48141
|
onChange: handleSearchChange
|
|
48107
|
-
}), /*#__PURE__*/React__default["default"].createElement(VendorSearchResult, null, isSearchLoading ? "Searching..." :
|
|
48142
|
+
}), /*#__PURE__*/React__default["default"].createElement(VendorSearchResult, null, currentSearchValue === "" ? " " : isSearchLoading ? "Searching..." : serverSearchResults === null ? "..." : `${filteredItems.length === 0 ? "No" : filteredItems.length} Vendors Found`)), /*#__PURE__*/React__default["default"].createElement(VendorListWrapper$1, {
|
|
48108
48143
|
ref: scrollWrapperRef,
|
|
48109
48144
|
headerHeight: headerHeight
|
|
48110
48145
|
}, FixedSizeList ? /*#__PURE__*/React__default["default"].createElement(FixedSizeList, {
|