@spscommerce/ds-react 6.0.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.es.js CHANGED
@@ -25640,6 +25640,68 @@ Object.assign(SpsListActionBar, {
25640
25640
  propTypes: propTypes$Z,
25641
25641
  displayName: "SpsListActionBar"
25642
25642
  });
25643
+ const SpsTableContext = React.createContext({
25644
+ resizeable: false,
25645
+ resizeState: {},
25646
+ setResizeState: () => {
25647
+ },
25648
+ setSingleResizeState: () => {
25649
+ },
25650
+ sort: [],
25651
+ setSort: () => {
25652
+ }
25653
+ });
25654
+ const SpsTableContextProvider = ({
25655
+ children,
25656
+ resizeable = false,
25657
+ resizeState,
25658
+ onResizeStateChange,
25659
+ sort,
25660
+ onSortChange
25661
+ }) => {
25662
+ const [currentResizeState, setCurrentResizeState] = React.useState(resizeState || {});
25663
+ const [currentSort, setCurrentSort] = React.useState(sort || []);
25664
+ const onSortChangeRef = React.useRef(onSortChange);
25665
+ onSortChangeRef.current = onSortChange;
25666
+ const onResizeStateChangeRef = React.useRef(onResizeStateChange);
25667
+ onResizeStateChangeRef.current = onResizeStateChange;
25668
+ const setSort = React.useCallback((newSort) => {
25669
+ var _a;
25670
+ setCurrentSort(newSort);
25671
+ (_a = onSortChangeRef.current) == null ? void 0 : _a.call(onSortChangeRef, newSort);
25672
+ }, []);
25673
+ const setResizeState = React.useCallback((newResizeState) => {
25674
+ var _a;
25675
+ setCurrentResizeState(newResizeState);
25676
+ (_a = onResizeStateChangeRef.current) == null ? void 0 : _a.call(onResizeStateChangeRef, newResizeState);
25677
+ }, []);
25678
+ const setSingleResizeState = React.useCallback((resizeKey, columnWidth) => {
25679
+ setCurrentResizeState((currentState) => {
25680
+ var _a;
25681
+ const newState = __spreadProps(__spreadValues({}, currentState), { [resizeKey]: columnWidth });
25682
+ (_a = onResizeStateChangeRef.current) == null ? void 0 : _a.call(onResizeStateChangeRef, newState);
25683
+ return newState;
25684
+ });
25685
+ }, []);
25686
+ const contextValue = React.useMemo(() => ({
25687
+ resizeable,
25688
+ resizeState: currentResizeState,
25689
+ setResizeState,
25690
+ setSingleResizeState,
25691
+ sort: currentSort,
25692
+ setSort
25693
+ }), [
25694
+ resizeable,
25695
+ currentResizeState,
25696
+ setResizeState,
25697
+ setSingleResizeState,
25698
+ currentSort,
25699
+ setSort
25700
+ ]);
25701
+ return /* @__PURE__ */ React.createElement(SpsTableContext.Provider, {
25702
+ value: contextValue
25703
+ }, children);
25704
+ };
25643
25705
  const getScrollParent = (node) => {
25644
25706
  const regex = /(auto|scroll)/;
25645
25707
  const parents = (_node, ps) => {
@@ -25698,7 +25760,10 @@ const usePinnedCellStyle = (isPinned, elementRef) => {
25698
25760
  };
25699
25761
  const usePinnedTableBackgroundStyle = (containerRef) => {
25700
25762
  React.useLayoutEffect(() => {
25701
- if (containerRef.current) {
25763
+ const applyBackgroundStyle = () => {
25764
+ if (!containerRef.current) {
25765
+ return;
25766
+ }
25702
25767
  const pinnedThs = containerRef.current.querySelectorAll("table > thead > tr:first-child > .sps-table__cell--pinned");
25703
25768
  const verticalScrollbarWidth = containerRef.current.offsetWidth - containerRef.current.clientWidth;
25704
25769
  const horizontalScrollbarHeight = containerRef.current.offsetHeight - containerRef.current.clientHeight;
@@ -25731,7 +25796,18 @@ const usePinnedTableBackgroundStyle = (containerRef) => {
25731
25796
  containerRef.current.style.backgroundPosition = `0 0, 100% 0, 0 ${-horizontalScrollbarHeight}px,
25732
25797
  calc(100% - ${verticalScrollbarWidth}px) ${-horizontalScrollbarHeight}px`;
25733
25798
  }
25799
+ };
25800
+ if (containerRef.current) {
25801
+ applyBackgroundStyle();
25802
+ containerRef.current.addEventListener("scroll", applyBackgroundStyle);
25803
+ window.addEventListener("scroll", applyBackgroundStyle);
25734
25804
  }
25805
+ return () => {
25806
+ if (containerRef.current) {
25807
+ containerRef.current.removeEventListener("scroll", applyBackgroundStyle);
25808
+ }
25809
+ window.removeEventListener("scroll", applyBackgroundStyle);
25810
+ };
25735
25811
  });
25736
25812
  };
25737
25813
  const usePinnedTableHeadStyle = (containerRef, maxHeight) => {
@@ -25889,49 +25965,241 @@ const useMaxHeightTableStyle = (containerRef, maxHeight) => {
25889
25965
  });
25890
25966
  };
25891
25967
  const propsDoc$X = {
25892
- controlCell: "boolean",
25893
- currentSort: "Array<SortedColumn>",
25968
+ sort: "SortedColumn",
25894
25969
  onSortChange: "SortChangeHandler",
25895
- sortKey: "string"
25970
+ selectable: "boolean",
25971
+ maxHeightPx: "number",
25972
+ maxHeightRem: "number",
25973
+ resizeable: "boolean",
25974
+ resizeState: "ResizeState",
25975
+ onResizeStateChange: "ResizeStateChangeHandler"
25896
25976
  };
25897
25977
  const propTypes$Y = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
25898
- controlCell: propTypes$1G.exports.bool,
25899
- currentSort: propTypes$1G.exports.arrayOf(impl()),
25900
25978
  onSortChange: fun(),
25979
+ sort: propTypes$1G.exports.arrayOf(impl()),
25980
+ selectable: propTypes$1G.exports.bool,
25981
+ maxHeightPx: propTypes$1G.exports.number,
25982
+ maxHeightRem: propTypes$1G.exports.number,
25983
+ resizeable: propTypes$1G.exports.bool,
25984
+ resizeState: impl(),
25985
+ onResizeStateChange: fun()
25986
+ });
25987
+ function SpsTable(_A) {
25988
+ var _B = _A, {
25989
+ children,
25990
+ className,
25991
+ onSortChange,
25992
+ sort,
25993
+ "data-testid": testId,
25994
+ unsafelyReplaceClassName,
25995
+ maxHeightPx,
25996
+ maxHeightRem,
25997
+ resizeable,
25998
+ resizeState,
25999
+ onResizeStateChange
26000
+ } = _B, rest = __objRest(_B, [
26001
+ "children",
26002
+ "className",
26003
+ "onSortChange",
26004
+ "sort",
26005
+ "data-testid",
26006
+ "unsafelyReplaceClassName",
26007
+ "maxHeightPx",
26008
+ "maxHeightRem",
26009
+ "resizeable",
26010
+ "resizeState",
26011
+ "onResizeStateChange"
26012
+ ]);
26013
+ const classes = clsx(unsafelyReplaceClassName || "sps-table-container", className);
26014
+ const maxHeight = maxHeightPx ? maxHeightPx / 16 : maxHeightRem;
26015
+ const tableContainerInlineStyles = maxHeight ? { maxHeight: `${maxHeight}rem` } : {};
26016
+ const containerRef = React.useRef(null);
26017
+ useMaxHeightTableStyle(containerRef, maxHeight);
26018
+ usePinnedTableBackgroundStyle(containerRef);
26019
+ usePinnedTableHeadStyle(containerRef, maxHeight);
26020
+ return /* @__PURE__ */ React.createElement(SpsTableContextProvider, {
26021
+ resizeable,
26022
+ resizeState,
26023
+ onResizeStateChange,
26024
+ sort,
26025
+ onSortChange
26026
+ }, /* @__PURE__ */ React.createElement("div", {
26027
+ ref: containerRef,
26028
+ className: classes,
26029
+ style: tableContainerInlineStyles
26030
+ }, /* @__PURE__ */ React.createElement("div", {
26031
+ className: "sps-table__shadow shadow--top"
26032
+ }), /* @__PURE__ */ React.createElement("div", {
26033
+ className: "sps-table__shadow shadow--bottom"
26034
+ }), /* @__PURE__ */ React.createElement("table", __spreadValues({
26035
+ className: "sps-table",
26036
+ role: "table",
26037
+ "data-testid": `${testId}`
26038
+ }, rest), children)));
26039
+ }
26040
+ Object.assign(SpsTable, {
26041
+ props: propsDoc$X,
26042
+ propTypes: propTypes$Y,
26043
+ displayName: "SpsTable"
26044
+ });
26045
+ function findTableElementParent(element) {
26046
+ if (!element || !element.parentElement) {
26047
+ return null;
26048
+ }
26049
+ let parent = element.parentElement;
26050
+ while (parent) {
26051
+ if (parent.tagName.toLowerCase() === "table") {
26052
+ return parent;
26053
+ }
26054
+ parent = parent.parentElement;
26055
+ }
26056
+ return null;
26057
+ }
26058
+ const useColumnResizer = ({
26059
+ tableHeaderRef,
26060
+ resizerRef,
26061
+ resizeKey
26062
+ }) => {
26063
+ const { resizeable, resizeState, setSingleResizeState } = React.useContext(SpsTableContext);
26064
+ const isResizeable = !!resizeable && !!resizeKey;
26065
+ const initialColumnWidth = isResizeable ? resizeState == null ? void 0 : resizeState[resizeKey] : void 0;
26066
+ React.useLayoutEffect(() => {
26067
+ let start = null;
26068
+ let currentColumnWidth = initialColumnWidth;
26069
+ const table = findTableElementParent(tableHeaderRef.current);
26070
+ function applyResize() {
26071
+ if (tableHeaderRef.current) {
26072
+ const width = currentColumnWidth ? `${currentColumnWidth}px` : null;
26073
+ tableHeaderRef.current.style.width = width;
26074
+ tableHeaderRef.current.style.maxWidth = width;
26075
+ tableHeaderRef.current.style.minWidth = width;
26076
+ tableHeaderRef.current.style.overflow = width ? "hidden" : null;
26077
+ tableHeaderRef.current.style.textOverflow = width ? "ellipsis" : null;
26078
+ if (start) {
26079
+ const resizer = tableHeaderRef.current.querySelector(".sps-table__column-resizer");
26080
+ if (resizer) {
26081
+ resizer.style.backgroundColor = colors.blue200;
26082
+ }
26083
+ }
26084
+ if (!tableHeaderRef.current.classList.contains("sps-table__cell--pinned")) {
26085
+ tableHeaderRef.current.style.position = "relative";
26086
+ }
26087
+ if (table) {
26088
+ const cells = table.querySelectorAll(`tbody > tr > td:nth-of-type(${tableHeaderRef.current.cellIndex + 1})`);
26089
+ for (let i2 = 0; i2 < cells.length; i2 += 1) {
26090
+ cells[i2].style.width = width;
26091
+ cells[i2].style.maxWidth = width;
26092
+ cells[i2].style.minWidth = width;
26093
+ cells[i2].style.overflow = width ? "hidden" : null;
26094
+ cells[i2].style.textOverflow = width ? "ellipsis" : null;
26095
+ if (!cells[i2].title) {
26096
+ cells[i2].title = cells[i2].textContent;
26097
+ }
26098
+ }
26099
+ }
26100
+ }
26101
+ }
26102
+ const dragStartListener = (event) => {
26103
+ if (!tableHeaderRef.current) {
26104
+ return;
26105
+ }
26106
+ start = event.clientX;
26107
+ currentColumnWidth = tableHeaderRef.current.clientWidth;
26108
+ applyResize();
26109
+ };
26110
+ const dragListener = (event) => {
26111
+ if (!start || !tableHeaderRef.current) {
26112
+ return;
26113
+ }
26114
+ const delta = Math.max(Math.min(start - event.clientX, 5), -5);
26115
+ if (delta !== 0) {
26116
+ start = event.clientX;
26117
+ currentColumnWidth = Math.max(tableHeaderRef.current.clientWidth - delta, 40);
26118
+ applyResize();
26119
+ }
26120
+ };
26121
+ const dragEndListener = () => {
26122
+ if (!tableHeaderRef.current) {
26123
+ return;
26124
+ }
26125
+ start = null;
26126
+ applyResize();
26127
+ setSingleResizeState(resizeKey, currentColumnWidth);
26128
+ const resizer = tableHeaderRef.current.querySelector(".sps-table__column-resizer");
26129
+ if (resizer) {
26130
+ resizer.style.backgroundColor = null;
26131
+ }
26132
+ };
26133
+ const doubleClickListener = () => {
26134
+ currentColumnWidth = null;
26135
+ applyResize();
26136
+ setSingleResizeState(resizeKey, currentColumnWidth);
26137
+ };
26138
+ if (isResizeable && resizerRef.current) {
26139
+ resizerRef.current.addEventListener("dragstart", dragStartListener);
26140
+ resizerRef.current.addEventListener("mousedown", dragStartListener);
26141
+ resizerRef.current.addEventListener("dblclick", doubleClickListener);
26142
+ window.addEventListener("mousemove", dragListener);
26143
+ window.addEventListener("dragend", dragEndListener);
26144
+ window.addEventListener("mouseup", dragEndListener);
26145
+ applyResize();
26146
+ }
26147
+ return () => {
26148
+ if (resizerRef.current) {
26149
+ resizerRef.current.removeEventListener("dragstart", dragStartListener);
26150
+ resizerRef.current.removeEventListener("mousedown", dragStartListener);
26151
+ resizerRef.current.removeEventListener("dblclick", doubleClickListener);
26152
+ }
26153
+ window.removeEventListener("mousemove", dragListener);
26154
+ window.removeEventListener("dragend", dragEndListener);
26155
+ window.removeEventListener("mouseup", dragEndListener);
26156
+ };
26157
+ }, [
26158
+ isResizeable,
26159
+ initialColumnWidth,
26160
+ resizeKey,
26161
+ setSingleResizeState
26162
+ ]);
26163
+ return { isResizeable };
26164
+ };
26165
+ const propsDoc$W = {
26166
+ controlCell: "boolean",
26167
+ sortKey: "string",
26168
+ resizeKey: "string",
26169
+ pinned: "boolean"
26170
+ };
26171
+ const propTypes$X = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
26172
+ controlCell: propTypes$1G.exports.bool,
25901
26173
  sortKey: propTypes$1G.exports.string,
26174
+ resizeKey: propTypes$1G.exports.string,
25902
26175
  pinned: propTypes$1G.exports.bool
25903
26176
  });
25904
- function SpsTableHeader(props2) {
25905
- const _a = props2, {
26177
+ function SpsTableHeader(_C) {
26178
+ var _D = _C, {
25906
26179
  children,
25907
26180
  className,
25908
26181
  controlCell,
25909
- currentSort,
25910
- onSortChange,
25911
26182
  sortKey,
26183
+ resizeKey,
25912
26184
  "data-testid": testId,
25913
26185
  unsafelyReplaceClassName,
25914
26186
  pinned
25915
- } = _a, rest = __objRest(_a, [
26187
+ } = _D, rest = __objRest(_D, [
25916
26188
  "children",
25917
26189
  "className",
25918
26190
  "controlCell",
25919
- "currentSort",
25920
- "onSortChange",
25921
26191
  "sortKey",
26192
+ "resizeKey",
25922
26193
  "data-testid",
25923
26194
  "unsafelyReplaceClassName",
25924
26195
  "pinned"
25925
26196
  ]);
25926
- const [sort, setSort] = React.useState();
25927
- React.useEffect(() => {
25928
- setSort(currentSort && currentSort[0].key === sortKey ? currentSort[0].direction : void 0);
25929
- }, [currentSort]);
26197
+ const { sort, setSort } = React.useContext(SpsTableContext);
26198
+ const currentSort = sort == null ? void 0 : sort.find((s) => s.key === sortKey);
25930
26199
  const flipSort = () => {
25931
26200
  if (sortKey && !controlCell) {
25932
- const curSort = sort === SortDirection.ASCENDING ? SortDirection.DESCENDING : SortDirection.ASCENDING;
25933
- setSort(curSort);
25934
- onSortChange([{ key: sortKey, direction: curSort }]);
26201
+ const direction = (currentSort == null ? void 0 : currentSort.direction) === SortDirection.ASCENDING ? SortDirection.DESCENDING : SortDirection.ASCENDING;
26202
+ setSort([{ key: sortKey, direction }]);
25935
26203
  }
25936
26204
  };
25937
26205
  const handleKeyEvent = (event) => {
@@ -25940,14 +26208,16 @@ function SpsTableHeader(props2) {
25940
26208
  flipSort();
25941
26209
  }
25942
26210
  };
25943
- const classes = clsx(unsafelyReplaceClassName || "sps-table__header", controlCell && "sps-table__header--control", !sortKey && "sps-table__header--sort-disabled", sort === SortDirection.ASCENDING && "sps-table__header--sorted-asc", sort === SortDirection.DESCENDING && "sps-table__header--sorted-desc", pinned && "sps-table__cell--pinned", className);
25944
26211
  const tableHeaderRef = React.useRef(null);
25945
26212
  usePinnedCellStyle(pinned, tableHeaderRef);
26213
+ const resizerRef = React.useRef(null);
26214
+ const { isResizeable } = useColumnResizer({ tableHeaderRef, resizerRef, resizeKey });
26215
+ const classes = clsx(unsafelyReplaceClassName || "sps-table__header", controlCell && "sps-table__header--control", !sortKey && "sps-table__header--sort-disabled", (currentSort == null ? void 0 : currentSort.direction) === SortDirection.ASCENDING && "sps-table__header--sorted-asc", (currentSort == null ? void 0 : currentSort.direction) === SortDirection.DESCENDING && "sps-table__header--sorted-desc", pinned && "sps-table__cell--pinned", isResizeable && "sps-table__header--resizeable", className);
25946
26216
  return /* @__PURE__ */ React.createElement("th", __spreadValues({
25947
26217
  className: classes,
25948
26218
  ref: tableHeaderRef,
25949
26219
  role: "columnheader",
25950
- "aria-sort": sort || "none",
26220
+ "aria-sort": (currentSort == null ? void 0 : currentSort.direction) || "none",
25951
26221
  "data-testid": `${testId}__header`
25952
26222
  }, rest), /* @__PURE__ */ React.createElement("span", {
25953
26223
  className: "sps-table__header-cell-body",
@@ -25955,115 +26225,49 @@ function SpsTableHeader(props2) {
25955
26225
  onClick: flipSort,
25956
26226
  tabIndex: sortKey ? 0 : null,
25957
26227
  onKeyDown: handleKeyEvent
25958
- }, children));
26228
+ }, children), isResizeable && /* @__PURE__ */ React.createElement("span", {
26229
+ ref: resizerRef,
26230
+ className: clsx("sps-table__column-resizer")
26231
+ }));
25959
26232
  }
25960
26233
  Object.assign(SpsTableHeader, {
25961
- props: propsDoc$X,
25962
- propTypes: propTypes$Y,
26234
+ props: propsDoc$W,
26235
+ propTypes: propTypes$X,
25963
26236
  displayName: "SpsTableHeader"
25964
26237
  });
25965
26238
  function SpsTh(props2) {
25966
26239
  return /* @__PURE__ */ React.createElement(SpsTableHeader, __spreadValues({}, props2));
25967
26240
  }
25968
26241
  Object.assign(SpsTh, {
25969
- props: propsDoc$X,
25970
- propTypes: propTypes$Y,
25971
- displayName: "SpsTh"
25972
- });
25973
- const propsDoc$W = {
25974
- currentSort: "Array<SortedColumn>",
25975
- onSortChange: "SortChangeHandler"
25976
- };
25977
- const propTypes$X = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
25978
- currentSort: propTypes$1G.exports.arrayOf(impl()),
25979
- onSortChange: fun()
25980
- });
25981
- function SpsTableRow(props2) {
25982
- const _a = props2, {
25983
- children,
25984
- className,
25985
- currentSort,
25986
- onSortChange,
25987
- "data-testid": testId,
25988
- unsafelyReplaceClassName
25989
- } = _a, rest = __objRest(_a, [
25990
- "children",
25991
- "className",
25992
- "currentSort",
25993
- "onSortChange",
25994
- "data-testid",
25995
- "unsafelyReplaceClassName"
25996
- ]);
25997
- const newProps = {
25998
- onSortChange,
25999
- currentSort
26000
- };
26001
- const classes = clsx(unsafelyReplaceClassName || "sps-table__row", className);
26002
- return /* @__PURE__ */ React.createElement("tr", __spreadValues({
26003
- className: classes,
26004
- role: "row",
26005
- "data-testid": `${testId}__row`
26006
- }, rest), React.Children.map(children, (child) => {
26007
- if (child && (child.type === SpsTableHeader || child.type === SpsTh)) {
26008
- return React.cloneElement(child, newProps);
26009
- }
26010
- return child;
26011
- }));
26012
- }
26013
- Object.assign(SpsTableRow, {
26014
26242
  props: propsDoc$W,
26015
26243
  propTypes: propTypes$X,
26016
- displayName: "SpsTableRow"
26017
- });
26018
- function SpsTr(props2) {
26019
- return /* @__PURE__ */ React.createElement(SpsTableRow, __spreadValues({}, props2));
26020
- }
26021
- Object.assign(SpsTr, {
26022
- props: propsDoc$W,
26023
- propTypes: propTypes$X,
26024
- displayName: "SpsTr"
26244
+ displayName: "SpsTh"
26025
26245
  });
26026
26246
  const propsDoc$V = {
26027
- currentSort: "Array<SortedColumn>",
26028
- onSortChange: "SortChangeHandler"
26247
+ pinned: "boolean"
26029
26248
  };
26030
26249
  const propTypes$W = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
26031
- onSortChange: fun(),
26032
- currentSort: propTypes$1G.exports.arrayOf(impl()),
26033
26250
  pinned: propTypes$1G.exports.bool
26034
26251
  });
26035
- function SpsTableHead(props2) {
26036
- const _a = props2, {
26252
+ function SpsTableHead(_E) {
26253
+ var _F = _E, {
26037
26254
  children,
26038
26255
  className,
26039
- currentSort,
26040
- onSortChange,
26041
26256
  "data-testid": testId,
26042
26257
  unsafelyReplaceClassName,
26043
26258
  pinned
26044
- } = _a, rest = __objRest(_a, [
26259
+ } = _F, rest = __objRest(_F, [
26045
26260
  "children",
26046
26261
  "className",
26047
- "currentSort",
26048
- "onSortChange",
26049
26262
  "data-testid",
26050
26263
  "unsafelyReplaceClassName",
26051
26264
  "pinned"
26052
26265
  ]);
26053
- const newProps = {
26054
- onSortChange,
26055
- currentSort
26056
- };
26057
26266
  const classes = clsx(unsafelyReplaceClassName || "sps-table__head", pinned && "sps-table__head--pinned", className);
26058
26267
  return /* @__PURE__ */ React.createElement("thead", __spreadValues({
26059
26268
  className: classes,
26060
26269
  "data-testid": `${testId}__head`
26061
- }, rest), React.Children.map(children, (child) => {
26062
- if (child && (child.type === SpsTableRow || child.type === SpsTr)) {
26063
- return React.cloneElement(child, newProps);
26064
- }
26065
- return child;
26066
- }));
26270
+ }, rest), children);
26067
26271
  }
26068
26272
  Object.assign(SpsTableHead, {
26069
26273
  props: propsDoc$V,
@@ -26078,89 +26282,39 @@ Object.assign(SpsThead, {
26078
26282
  propTypes: propTypes$W,
26079
26283
  displayName: "SpsThead"
26080
26284
  });
26081
- const propsDoc$U = {
26082
- sort: "SortedColumn",
26083
- onSortChange: "SortChangeHandler",
26084
- selectable: "boolean",
26085
- maxHeightPx: "number",
26086
- maxHeightRem: "number"
26087
- };
26088
- const propTypes$V = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
26089
- onSortChange: fun(),
26090
- sort: propTypes$1G.exports.arrayOf(impl()),
26091
- selectable: propTypes$1G.exports.bool,
26092
- maxHeightPx: propTypes$1G.exports.number,
26093
- maxHeightRem: propTypes$1G.exports.number
26094
- });
26095
- function SpsTable(props2) {
26096
- const _a = props2, {
26285
+ const propsDoc$U = {};
26286
+ const propTypes$V = __spreadValues({}, spsGlobalPropTypes);
26287
+ function SpsTableRow(_G) {
26288
+ var _H = _G, {
26097
26289
  children,
26098
26290
  className,
26099
- onSortChange,
26100
- sort,
26101
26291
  "data-testid": testId,
26102
- unsafelyReplaceClassName,
26103
- maxHeightPx,
26104
- maxHeightRem
26105
- } = _a, rest = __objRest(_a, [
26292
+ unsafelyReplaceClassName
26293
+ } = _H, rest = __objRest(_H, [
26106
26294
  "children",
26107
26295
  "className",
26108
- "onSortChange",
26109
- "sort",
26110
26296
  "data-testid",
26111
- "unsafelyReplaceClassName",
26112
- "maxHeightPx",
26113
- "maxHeightRem"
26297
+ "unsafelyReplaceClassName"
26114
26298
  ]);
26115
- const [currentSort, setSort] = React.useState(sort);
26116
- const updateSortingDisplay = (newSort) => {
26117
- const sortedColumn = newSort && newSort[0];
26118
- React.Children.map(children, (child) => React.Children.map(child.props.children, (c2) => React.Children.map(c2.props.children, (c22) => {
26119
- var _a2, _b;
26120
- if (sortedColumn && (((_a2 = c22 == null ? void 0 : c22.props) == null ? void 0 : _a2.sortKey) && ((_b = c22 == null ? void 0 : c22.props) == null ? void 0 : _b.sortKey) === sortedColumn.key)) {
26121
- setSort([sortedColumn]);
26122
- }
26123
- })));
26124
- };
26125
- const sortChange = (newSort) => {
26126
- setSort(newSort);
26127
- onSortChange(newSort);
26128
- updateSortingDisplay(newSort);
26129
- };
26130
- const newProps = {
26131
- onSortChange: sortChange,
26132
- currentSort
26133
- };
26134
- const classes = clsx(unsafelyReplaceClassName || "sps-table-container", className);
26135
- const maxHeight = maxHeightPx ? maxHeightPx / 16 : maxHeightRem;
26136
- const tableContainerInlineStyles = maxHeight ? { maxHeight: `${maxHeight}rem` } : {};
26137
- const containerRef = React.useRef(null);
26138
- useMaxHeightTableStyle(containerRef, maxHeight);
26139
- usePinnedTableBackgroundStyle(containerRef);
26140
- usePinnedTableHeadStyle(containerRef, maxHeight);
26141
- return /* @__PURE__ */ React.createElement("div", {
26142
- ref: containerRef,
26299
+ const classes = clsx(unsafelyReplaceClassName || "sps-table__row", className);
26300
+ return /* @__PURE__ */ React.createElement("tr", __spreadValues({
26143
26301
  className: classes,
26144
- style: tableContainerInlineStyles
26145
- }, /* @__PURE__ */ React.createElement("div", {
26146
- className: "sps-table__shadow shadow--top"
26147
- }), /* @__PURE__ */ React.createElement("div", {
26148
- className: "sps-table__shadow shadow--bottom"
26149
- }), /* @__PURE__ */ React.createElement("table", __spreadValues({
26150
- className: "sps-table",
26151
- role: "table",
26152
- "data-testid": `${testId}`
26153
- }, rest), React.Children.map(children, (child) => {
26154
- if (child.type === SpsTableHead || child.type === SpsThead) {
26155
- return React.cloneElement(child, newProps);
26156
- }
26157
- return child;
26158
- })));
26302
+ role: "row",
26303
+ "data-testid": `${testId}__row`
26304
+ }, rest), children);
26159
26305
  }
26160
- Object.assign(SpsTable, {
26306
+ Object.assign(SpsTableRow, {
26161
26307
  props: propsDoc$U,
26162
26308
  propTypes: propTypes$V,
26163
- displayName: "SpsTable"
26309
+ displayName: "SpsTableRow"
26310
+ });
26311
+ function SpsTr(props2) {
26312
+ return /* @__PURE__ */ React.createElement(SpsTableRow, __spreadValues({}, props2));
26313
+ }
26314
+ Object.assign(SpsTr, {
26315
+ props: propsDoc$U,
26316
+ propTypes: propTypes$V,
26317
+ displayName: "SpsTr"
26164
26318
  });
26165
26319
  const propsDoc$T = {};
26166
26320
  const propTypes$U = __spreadValues({}, spsGlobalPropTypes);
@@ -26198,7 +26352,8 @@ Object.assign(SpsTbody, {
26198
26352
  const propsDoc$S = {
26199
26353
  buttonCell: "boolean",
26200
26354
  controlCell: "boolean",
26201
- wrap: "SpsTableCellWrapWidth"
26355
+ wrap: "SpsTableCellWrapWidth",
26356
+ pinned: "boolean"
26202
26357
  };
26203
26358
  const propTypes$T = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
26204
26359
  buttonCell: propTypes$1G.exports.bool,
@@ -26258,11 +26413,11 @@ Object.assign(SpsTd, {
26258
26413
  const propsDoc$R = {};
26259
26414
  const propTypes$S = __spreadValues({}, spsGlobalPropTypes);
26260
26415
  const CSS_BLOCK$1 = "sps-icon-button-panel";
26261
- function SpsIconButtonPanel(_A) {
26262
- var _B = _A, {
26416
+ function SpsIconButtonPanel(_I) {
26417
+ var _J = _I, {
26263
26418
  children,
26264
26419
  className
26265
- } = _B, rest = __objRest(_B, [
26420
+ } = _J, rest = __objRest(_J, [
26266
26421
  "children",
26267
26422
  "className"
26268
26423
  ]);
@@ -27301,6 +27456,146 @@ const SpsTableExamples = {
27301
27456
  `
27302
27457
  }
27303
27458
  }
27459
+ },
27460
+ resizeableColumns: {
27461
+ label: "Resizeable Columns",
27462
+ examples: {
27463
+ basic: {
27464
+ react: code`
27465
+ function DemoComponent() {
27466
+ const [resizeState, setResizeState] = React.useState({});
27467
+
27468
+ const items = [
27469
+ {
27470
+ spine: 2,
27471
+ title: "Seven Samurai",
27472
+ year: 1954,
27473
+ director: "Akira Kurosawa",
27474
+ runtime: 207,
27475
+ aspect_ratio: "1.33:1",
27476
+ countries: "Japan",
27477
+ languages: "Japanese",
27478
+ price: "$39.96"
27479
+ },
27480
+ {
27481
+ spine: 29,
27482
+ title: "Picnic at Hanging Rock",
27483
+ year: 1975,
27484
+ director: "Peter Weir",
27485
+ runtime: 107,
27486
+ aspect_ratio: "1.78:1",
27487
+ countries: "Australia",
27488
+ languages: "English",
27489
+ price: "$39.95"
27490
+ },
27491
+ {
27492
+ spine: 62,
27493
+ title: "The Passion of Joan of Arc",
27494
+ year: 1928,
27495
+ director: "Carl Theodor Dreyer",
27496
+ runtime: 81,
27497
+ aspect_ratio: "1.33:1",
27498
+ countries: "France",
27499
+ languages: "French",
27500
+ price: "$31.96"
27501
+ },
27502
+ {
27503
+ spine: 484,
27504
+ title: "Jeanne Dielman, 23, quai du Commerce, 1080 Bruxelles",
27505
+ year: 1975,
27506
+ director: "Chantal Akerman",
27507
+ runtime: 201,
27508
+ aspect_ratio: "1.66:1",
27509
+ countries: "France, Belgium",
27510
+ languages: "French",
27511
+ price: "$31.96"
27512
+ },
27513
+ {
27514
+ spine: 701,
27515
+ title: "Persona",
27516
+ year: 1966,
27517
+ director: "Ingmar Bergman",
27518
+ runtime: 83,
27519
+ aspect_ratio: "1.37:1",
27520
+ countries: "Sweden",
27521
+ languages: "Swedish",
27522
+ price: "$31.96"
27523
+ },
27524
+ {
27525
+ spine: 740,
27526
+ title: "The Bitter Tears of Petra von Kant",
27527
+ year: 1972,
27528
+ director: "Rainer Werner Fassbinder",
27529
+ runtime: 125,
27530
+ aspect_ratio: "1.37:1",
27531
+ countries: "West Germany",
27532
+ languages: "German",
27533
+ price: "$31.96"
27534
+ },
27535
+ {
27536
+ spine: 782,
27537
+ title: "The Apu Trilogy",
27538
+ year: 1959,
27539
+ director: "Satyajit Ray",
27540
+ aspect_ratio: "1.37:1",
27541
+ countries: "India",
27542
+ languages: "Bengali",
27543
+ price: "$79.96"
27544
+ },
27545
+ {
27546
+ spine: 888,
27547
+ title: "Stalker",
27548
+ year: 1979,
27549
+ director: "Andrei Tarkovsky",
27550
+ runtime: 161,
27551
+ aspect_ratio: "1.37:1",
27552
+ countries: "Soviet Union",
27553
+ languages: "Russian",
27554
+ price: "$31.96"
27555
+ }
27556
+ ];
27557
+
27558
+ return (
27559
+ <>
27560
+ <SpsTable resizeable resizeState={resizeState} onResizeStateChange={setResizeState}>
27561
+ <SpsTableHead>
27562
+ <SpsTableRow>
27563
+ <SpsTableHeader resizeKey="spine">Spine#</SpsTableHeader>
27564
+ <SpsTableHeader resizeKey="title">Title</SpsTableHeader>
27565
+ <SpsTableHeader resizeKey="year">Year</SpsTableHeader>
27566
+ <SpsTableHeader resizeKey="director">Director</SpsTableHeader>
27567
+ <SpsTableHeader resizeKey="runtime">Runtime</SpsTableHeader>
27568
+ <SpsTableHeader resizeKey="aspect_ratio">Aspect Ratio</SpsTableHeader>
27569
+ <SpsTableHeader resizeKey="countries">Countries</SpsTableHeader>
27570
+ <SpsTableHeader resizeKey="languages">Languages</SpsTableHeader>
27571
+ <SpsTableHeader resizeKey="price" className="text-right">Price</SpsTableHeader>
27572
+ </SpsTableRow>
27573
+ </SpsTableHead>
27574
+ <SpsTableBody>
27575
+ {items.map((row, index) => {
27576
+ return (
27577
+ <SpsTableRow key={index}>
27578
+ <SpsTableCell>{row["spine"]}</SpsTableCell>
27579
+ <SpsTableCell>{row["title"]}</SpsTableCell>
27580
+ <SpsTableCell>{row["year"]}</SpsTableCell>
27581
+ <SpsTableCell>{row["director"]}</SpsTableCell>
27582
+ <SpsTableCell>{row["runtime"]}</SpsTableCell>
27583
+ <SpsTableCell>{row["aspect_ratio"]}</SpsTableCell>
27584
+ <SpsTableCell>{row["countries"]}</SpsTableCell>
27585
+ <SpsTableCell>{row["languages"]}</SpsTableCell>
27586
+ <SpsTableCell className="text-right">{row["price"]}</SpsTableCell>
27587
+ </SpsTableRow>
27588
+ );
27589
+ })}
27590
+ </SpsTableBody>
27591
+ </SpsTable>
27592
+ {JSON.stringify({ resizeState })}
27593
+ </>
27594
+ );
27595
+ }
27596
+ `
27597
+ }
27598
+ }
27304
27599
  }
27305
27600
  };
27306
27601
  const SpsTagExamples = {
@@ -27820,8 +28115,8 @@ const propTypes$O = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
27820
28115
  formMeta: impl(),
27821
28116
  stacked: propTypes$1G.exports.bool
27822
28117
  });
27823
- function SpsInputGroup(_C) {
27824
- var _D = _C, {
28118
+ function SpsInputGroup(_K) {
28119
+ var _L = _K, {
27825
28120
  children,
27826
28121
  className,
27827
28122
  formArray: formArray2,
@@ -27830,7 +28125,7 @@ function SpsInputGroup(_C) {
27830
28125
  stacked,
27831
28126
  "data-testid": testId,
27832
28127
  unsafelyReplaceClassName
27833
- } = _D, rest = __objRest(_D, [
28128
+ } = _L, rest = __objRest(_L, [
27834
28129
  "children",
27835
28130
  "className",
27836
28131
  "formArray",
@@ -28998,8 +29293,8 @@ Object.assign(SpsModalFooter, {
28998
29293
  propTypes: {},
28999
29294
  displayName: "SpsModalFooter"
29000
29295
  });
29001
- function SpsModal(_E) {
29002
- var _F = _E, {
29296
+ function SpsModal(_M) {
29297
+ var _N = _M, {
29003
29298
  children,
29004
29299
  className,
29005
29300
  id: idProp,
@@ -29008,7 +29303,7 @@ function SpsModal(_E) {
29008
29303
  onClose,
29009
29304
  focusElementOnOpen,
29010
29305
  title
29011
- } = _F, rest = __objRest(_F, [
29306
+ } = _N, rest = __objRest(_N, [
29012
29307
  "children",
29013
29308
  "className",
29014
29309
  "id",
@@ -29633,8 +29928,8 @@ const propTypes$H = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
29633
29928
  maxHeightOptionListRem: propTypes$1G.exports.number,
29634
29929
  disableOptionsMemoization: propTypes$1G.exports.bool
29635
29930
  });
29636
- function SpsMultiSelect(_G) {
29637
- var _H = _G, {
29931
+ function SpsMultiSelect(_O) {
29932
+ var _P = _O, {
29638
29933
  action,
29639
29934
  captionKey,
29640
29935
  className,
@@ -29662,7 +29957,7 @@ function SpsMultiSelect(_G) {
29662
29957
  maxHeightOptionListRem,
29663
29958
  disableOptionsMemoization,
29664
29959
  "data-testid": testId
29665
- } = _H, rest = __objRest(_H, [
29960
+ } = _P, rest = __objRest(_P, [
29666
29961
  "action",
29667
29962
  "captionKey",
29668
29963
  "className",
@@ -32091,8 +32386,8 @@ const propTypes$x = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
32091
32386
  ref: ref(),
32092
32387
  value: propTypes$1G.exports.any
32093
32388
  });
32094
- function SpsRadioButton(_I) {
32095
- var _J = _I, {
32389
+ function SpsRadioButton(_Q) {
32390
+ var _R = _Q, {
32096
32391
  checked,
32097
32392
  className,
32098
32393
  "data-testid": testId,
@@ -32107,7 +32402,7 @@ function SpsRadioButton(_I) {
32107
32402
  ref: ref2,
32108
32403
  unsafelyReplaceClassName,
32109
32404
  value
32110
- } = _J, rest = __objRest(_J, [
32405
+ } = _R, rest = __objRest(_R, [
32111
32406
  "checked",
32112
32407
  "className",
32113
32408
  "data-testid",
@@ -33116,8 +33411,8 @@ const propTypes$v = __spreadValues({
33116
33411
  widthPx: propTypes$1G.exports.number,
33117
33412
  widthRem: propTypes$1G.exports.number
33118
33413
  }, spsGlobalPropTypes);
33119
- function SpsSortingHeaderCell(_K) {
33120
- var _L = _K, {
33414
+ function SpsSortingHeaderCell(_S) {
33415
+ var _T = _S, {
33121
33416
  className,
33122
33417
  "data-testid": testId,
33123
33418
  unsafelyReplaceClassName,
@@ -33130,7 +33425,7 @@ function SpsSortingHeaderCell(_K) {
33130
33425
  widthPx,
33131
33426
  widthRem,
33132
33427
  style: style2
33133
- } = _L, rest = __objRest(_L, [
33428
+ } = _T, rest = __objRest(_T, [
33134
33429
  "className",
33135
33430
  "data-testid",
33136
33431
  "unsafelyReplaceClassName",
@@ -33187,15 +33482,15 @@ const propTypes$u = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
33187
33482
  sort: propTypes$1G.exports.arrayOf(impl()),
33188
33483
  onSortChange: fun()
33189
33484
  });
33190
- function SpsSortingHeader(_M) {
33191
- var _N = _M, {
33485
+ function SpsSortingHeader(_U) {
33486
+ var _V = _U, {
33192
33487
  className,
33193
33488
  "data-testid": testId,
33194
33489
  unsafelyReplaceClassName,
33195
33490
  sort,
33196
33491
  onSortChange,
33197
33492
  children
33198
- } = _N, rest = __objRest(_N, [
33493
+ } = _V, rest = __objRest(_V, [
33199
33494
  "className",
33200
33495
  "data-testid",
33201
33496
  "unsafelyReplaceClassName",
@@ -33942,8 +34237,8 @@ const propTypes$o = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
33942
34237
  onClearCompleted: fun(),
33943
34238
  suppressTooltips: propTypes$1G.exports.bool
33944
34239
  });
33945
- function SpsTaskQueue(_O) {
33946
- var _P = _O, {
34240
+ function SpsTaskQueue(_W) {
34241
+ var _X = _W, {
33947
34242
  tasks = [],
33948
34243
  taskQueuePosition = Position.BOTTOM_RIGHT,
33949
34244
  notificationText,
@@ -33955,7 +34250,7 @@ function SpsTaskQueue(_O) {
33955
34250
  "data-testid": testId,
33956
34251
  unsafelyReplaceClassName,
33957
34252
  suppressTooltips = false
33958
- } = _P, rest = __objRest(_P, [
34253
+ } = _X, rest = __objRest(_X, [
33959
34254
  "tasks",
33960
34255
  "taskQueuePosition",
33961
34256
  "notificationText",
@@ -34488,8 +34783,8 @@ const propTypes$n = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
34488
34783
  value: propTypes$1G.exports.string,
34489
34784
  additionalText: propTypes$1G.exports.string
34490
34785
  });
34491
- const SpsTextInput = React.forwardRef((_Q, ref2) => {
34492
- var _R = _Q, {
34786
+ const SpsTextInput = React.forwardRef((_Y, ref2) => {
34787
+ var _Z = _Y, {
34493
34788
  className,
34494
34789
  disabled = false,
34495
34790
  formControl: formControl2,
@@ -34504,7 +34799,7 @@ const SpsTextInput = React.forwardRef((_Q, ref2) => {
34504
34799
  unsafelyReplaceClassName,
34505
34800
  value = "",
34506
34801
  additionalText
34507
- } = _R, rest = __objRest(_R, [
34802
+ } = _Z, rest = __objRest(_Z, [
34508
34803
  "className",
34509
34804
  "disabled",
34510
34805
  "formControl",
@@ -34719,8 +35014,8 @@ const propTypes$m = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
34719
35014
  value: propTypes$1G.exports.string,
34720
35015
  additionalText: propTypes$1G.exports.string
34721
35016
  });
34722
- function SpsTextarea(_S) {
34723
- var _T = _S, {
35017
+ function SpsTextarea(__) {
35018
+ var _$ = __, {
34724
35019
  className,
34725
35020
  disabled = false,
34726
35021
  formControl: formControl2,
@@ -34735,7 +35030,7 @@ function SpsTextarea(_S) {
34735
35030
  unsafelyReplaceClassName,
34736
35031
  value = "",
34737
35032
  additionalText
34738
- } = _T, rest = __objRest(_T, [
35033
+ } = _$, rest = __objRest(_$, [
34739
35034
  "className",
34740
35035
  "disabled",
34741
35036
  "formControl",
@@ -34930,8 +35225,10 @@ const propsDoc$l = {
34930
35225
  href: "string",
34931
35226
  icon: { type: "ReactNodeOrRenderFn", required: "true" },
34932
35227
  error: "boolean",
35228
+ errorIcon: "ReactNodeOrRenderFn",
34933
35229
  title: { type: "string", required: "true" },
34934
35230
  warning: "boolean",
35231
+ warningIcon: "ReactNodeOrRenderFn",
34935
35232
  disabled: "boolean"
34936
35233
  };
34937
35234
  const propTypes$l = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
@@ -34939,8 +35236,10 @@ const propTypes$l = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
34939
35236
  target: propTypes$1G.exports.string,
34940
35237
  icon: nodeOrRenderFn.isRequired,
34941
35238
  error: propTypes$1G.exports.bool,
35239
+ errorIcon: nodeOrRenderFn,
34942
35240
  title: propTypes$1G.exports.string.isRequired,
34943
35241
  warning: propTypes$1G.exports.bool,
35242
+ warningIcon: nodeOrRenderFn,
34944
35243
  disabled: propTypes$1G.exports.bool
34945
35244
  });
34946
35245
  function SpsTile(props2) {
@@ -34950,9 +35249,11 @@ function SpsTile(props2) {
34950
35249
  target,
34951
35250
  icon,
34952
35251
  error = false,
35252
+ errorIcon,
34953
35253
  title,
34954
35254
  unsafelyReplaceClassName,
34955
35255
  warning = false,
35256
+ warningIcon,
34956
35257
  disabled = false
34957
35258
  } = _a, rest = __objRest(_a, [
34958
35259
  "className",
@@ -34960,9 +35261,11 @@ function SpsTile(props2) {
34960
35261
  "target",
34961
35262
  "icon",
34962
35263
  "error",
35264
+ "errorIcon",
34963
35265
  "title",
34964
35266
  "unsafelyReplaceClassName",
34965
35267
  "warning",
35268
+ "warningIcon",
34966
35269
  "disabled"
34967
35270
  ]);
34968
35271
  const classes = clsx(unsafelyReplaceClassName || "sps-tile", className, error && "sps-tile--error", warning && "sps-tile--warning", disabled && "sps-tile--disabled");
@@ -34980,11 +35283,11 @@ function SpsTile(props2) {
34980
35283
  rel: target === "_blank" ? "noopener noreferrer" : void 0
34981
35284
  }, rest), (warning || error) && /* @__PURE__ */ React.createElement("div", {
34982
35285
  className: "sps-tile--icon"
34983
- }, warning && /* @__PURE__ */ React.createElement("i", {
35286
+ }, warning && (warningIcon ? contentOf(warningIcon) : /* @__PURE__ */ React.createElement("i", {
34984
35287
  className: clsx("sps-icon", "sps-icon-status-warning")
34985
- }), error && /* @__PURE__ */ React.createElement("i", {
35288
+ })), error && (errorIcon ? contentOf(errorIcon) : /* @__PURE__ */ React.createElement("i", {
34986
35289
  className: clsx("sps-icon", "sps-icon-ban")
34987
- })), /* @__PURE__ */ React.createElement("div", {
35290
+ }))), /* @__PURE__ */ React.createElement("div", {
34988
35291
  className: "sps-tile--content"
34989
35292
  }, /* @__PURE__ */ React.createElement("div", {
34990
35293
  className: "sps-tile--image"
@@ -36329,8 +36632,8 @@ function Component() {
36329
36632
  };
36330
36633
  const propsDoc$7 = {};
36331
36634
  const propTypes$7 = __spreadValues({}, spsGlobalPropTypes);
36332
- function SpsFilterPanel(_U) {
36333
- var _V = _U, { children, className } = _V, rest = __objRest(_V, ["children", "className"]);
36635
+ function SpsFilterPanel(_aa) {
36636
+ var _ba = _aa, { children, className } = _ba, rest = __objRest(_ba, ["children", "className"]);
36334
36637
  return /* @__PURE__ */ React.createElement("div", __spreadValues({
36335
36638
  className: clsx("sps-filter-panel", className)
36336
36639
  }, rest), children);
@@ -36356,8 +36659,8 @@ const propTypes$6 = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
36356
36659
  onExpand: fun(),
36357
36660
  onCollapse: fun()
36358
36661
  });
36359
- function SpsFilterPanelSection(_W) {
36360
- var _X = _W, {
36662
+ function SpsFilterPanelSection(_ca) {
36663
+ var _da = _ca, {
36361
36664
  children,
36362
36665
  className,
36363
36666
  title,
@@ -36366,7 +36669,7 @@ function SpsFilterPanelSection(_W) {
36366
36669
  heightRem,
36367
36670
  onExpand,
36368
36671
  onCollapse
36369
- } = _X, rest = __objRest(_X, [
36672
+ } = _da, rest = __objRest(_da, [
36370
36673
  "children",
36371
36674
  "className",
36372
36675
  "title",
@@ -36419,12 +36722,12 @@ const propsDoc$5 = {
36419
36722
  const propTypes$5 = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
36420
36723
  onClear: fun()
36421
36724
  });
36422
- function SpsFilterPanelCap(_Y) {
36423
- var _Z = _Y, {
36725
+ function SpsFilterPanelCap(_ea) {
36726
+ var _fa = _ea, {
36424
36727
  children,
36425
36728
  className,
36426
36729
  onClear
36427
- } = _Z, rest = __objRest(_Z, [
36730
+ } = _fa, rest = __objRest(_fa, [
36428
36731
  "children",
36429
36732
  "className",
36430
36733
  "onClear"
@@ -36783,14 +37086,14 @@ const propTypes$4 = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
36783
37086
  formMeta: impl(),
36784
37087
  onFilterChange: fun()
36785
37088
  });
36786
- function SpsFilterPanelFilterBox(__) {
36787
- var _$ = __, {
37089
+ function SpsFilterPanelFilterBox(_ga) {
37090
+ var _ha = _ga, {
36788
37091
  className,
36789
37092
  value,
36790
37093
  placeholder,
36791
37094
  formMeta,
36792
37095
  onFilterChange
36793
- } = _$, rest = __objRest(_$, [
37096
+ } = _ha, rest = __objRest(_ha, [
36794
37097
  "className",
36795
37098
  "value",
36796
37099
  "placeholder",
@@ -36819,12 +37122,12 @@ const propsDoc$3 = {
36819
37122
  const propTypes$3 = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
36820
37123
  showCondition: propTypes$1G.exports.bool
36821
37124
  });
36822
- function SpsConditionalField(_aa) {
36823
- var _ba = _aa, {
37125
+ function SpsConditionalField(_ia) {
37126
+ var _ja = _ia, {
36824
37127
  showCondition = true,
36825
37128
  children,
36826
37129
  className
36827
- } = _ba, rest = __objRest(_ba, [
37130
+ } = _ja, rest = __objRest(_ja, [
36828
37131
  "showCondition",
36829
37132
  "children",
36830
37133
  "className"
@@ -37304,6 +37607,23 @@ const MANIFEST = {
37304
37607
  examples: SpsZeroStateExamples
37305
37608
  }
37306
37609
  };
37610
+ const SpsContextBar = function({
37611
+ viewing,
37612
+ in: inProp,
37613
+ onChange
37614
+ }) {
37615
+ return /* @__PURE__ */ React.createElement("div", {
37616
+ className: "sps-context-bar"
37617
+ }, "Viewing", /* @__PURE__ */ React.createElement("span", {
37618
+ className: "sps-context-bar__emphasized"
37619
+ }, viewing), Boolean(inProp) && /* @__PURE__ */ React.createElement(React.Fragment, null, "in", /* @__PURE__ */ React.createElement("span", {
37620
+ className: "sps-context-bar__emphasized"
37621
+ }, inProp)), Boolean(onChange) && /* @__PURE__ */ React.createElement(SpsButton, {
37622
+ className: "sps-context-bar__change-button",
37623
+ kind: ButtonKind.LINK,
37624
+ onClick: onChange
37625
+ }, "Change"));
37626
+ };
37307
37627
  const propsDoc$2 = {
37308
37628
  disabled: "boolean",
37309
37629
  formMeta: "SpsFormFieldMeta<number>",
@@ -37325,8 +37645,8 @@ function strToDollars(str) {
37325
37645
  function dollarsToStr(dollars) {
37326
37646
  return typeof dollars === "number" ? dollars.toFixed(2) : "";
37327
37647
  }
37328
- function SpsCurrencyInput(_ca) {
37329
- var _da = _ca, {
37648
+ function SpsCurrencyInput(_ka) {
37649
+ var _la = _ka, {
37330
37650
  className,
37331
37651
  disabled = false,
37332
37652
  formMeta,
@@ -37336,7 +37656,7 @@ function SpsCurrencyInput(_ca) {
37336
37656
  ref: ref2,
37337
37657
  title,
37338
37658
  value
37339
- } = _da, rest = __objRest(_da, [
37659
+ } = _la, rest = __objRest(_la, [
37340
37660
  "className",
37341
37661
  "disabled",
37342
37662
  "formMeta",
@@ -37681,4 +38001,4 @@ Object.assign(SpsVr, {
37681
38001
  propTypes,
37682
38002
  displayName: "SpsDescriptionListTerm / SpsDt"
37683
38003
  });
37684
- export { AsTypingErrorKeys, ContentOrderExample, DEFAULT_PRESETS, FauxChangeEvent, I18nContext, MANIFEST, OnBlurErrorKeys, OnSubmitErrorKeys, PortalContext, PreventativeErrorKeys, Provide, SimpleDateUtils, SpsAddRemoveFormRowExamples, SpsAdvancedSearch, SpsAdvancedSearchExamples, SpsApp, SpsAutocomplete, SpsAutocompleteExamples, SpsButton, SpsButtonExamples, SpsButtonGroup, SpsCard, SpsCardExamples, SpsCardTabbedPane, SpsCardV2, SpsCardV2Footer, SpsCardV2Header, SpsCardV2Title, SpsCheckbox, SpsCheckboxDropdown, SpsCheckboxExamples, SpsClickableTag, SpsClickableTagExamples, SpsColumnChooser, SpsColumnChooserColumn, SpsColumnChooserExamples, SpsConditionalField, SpsConditionalFieldExamples, SpsContentRow, SpsContentRowCol, SpsContentRowExamples, SpsContentRowExpansion, SpsCurrencyInput, SpsCurrencyInputExamples, SpsDateRangePicker, SpsDateRangePickerExamples, SpsDateTime, SpsDatepicker, SpsDatepickerExamples, SpsDatetimeExamples, SpsDd, SpsDescriptionList, SpsDescriptionListDefinition, SpsDescriptionListExamples, SpsDescriptionListTerm, SpsDl, SpsDropdown, SpsDropdownExamples, SpsDt, SpsFeedbackBlock, SpsFeedbackBlockExamples, SpsFieldset, SpsFieldsetExamples, SpsFilterPanel, SpsFilterPanelCap, SpsFilterPanelExamples, SpsFilterPanelFilterBox, SpsFilterPanelSection, SpsFilterTile, SpsFilterTileList, SpsFilterTileListExamples, SpsFocusedTask, SpsFocusedTaskActions, SpsFocusedTaskExamples, SpsForm, SpsFormArrayMeta, SpsFormComponentWrapper, SpsFormExamples, SpsFormFieldMeta, SpsFormGroupMeta, SpsFormMetaBase, SpsFormSetMeta, SpsGrowler, SpsGrowlerExamples, SpsI, SpsIconButtonPanel, SpsIncrementor, SpsIncrementorExamples, SpsInputGroup, SpsInsightTile, SpsInsights, SpsKeyValueList, SpsKeyValueListExamples, SpsKeyValueListItem, SpsKeyValueTag, SpsKeyValueTagExamples, SpsLabel, SpsLabelExamples, SpsListActionBar, SpsListActionBarExamples, SpsListToolbar, SpsListToolbarExamples, SpsListToolbarSearch, SpsListToolbarSearchInfo, SpsListToolbarSortBy, SpsMicroBlock, SpsMicroBlockExamples, SpsMicroZeroState, SpsModal, SpsModalExamples, SpsModalFooter, SpsMultiSelect, SpsMultiSelectExamples, SpsPageSelector, SpsPageSubtitle, SpsPageTitle, SpsPageTitleExamples, SpsPagination, SpsPaginationExamples, SpsProductBar, SpsProductBarExamples, SpsProductBarTab, SpsProgressBar, SpsProgressBarExamples, SpsProgressRing, SpsRadioButton, SpsRadioButtonExamples, SpsScrollableContainer, SpsScrollableContainerExamples, SpsSearchResultsBar, SpsSearchResultsBarExamples, SpsSearchResultsBarV2, SpsSelect, SpsSelectExamples, SpsSideNav, SpsSideNavExamples, SpsSlackLink, SpsSlackLinkExamples, SpsSortingHeader, SpsSortingHeaderCell, SpsSortingHeaderExamples, SpsSpinner, SpsSpinnerExamples, SpsSplitButton, SpsSplitButtonExamples, SpsSteppedProgressBar, SpsSteppedProgressBarExamples, SpsSummaryListColumn, SpsSummaryListExamples, SpsSummaryListExpansion, SpsSummaryListRow, SpsTab, SpsTabPanel, SpsTable, SpsTableBody, SpsTableCell, SpsTableExamples, SpsTableHead, SpsTableHeader, SpsTableRow, SpsTabsV2, SpsTag, SpsTagExamples, SpsTaskQueue, SpsTaskQueueExamples, SpsTbody, SpsTd, SpsTextInput, SpsTextInputExamples, SpsTextarea, SpsTextareaExamples, SpsTh, SpsThead, SpsTile, SpsTileList, SpsTileListExamples, SpsToggle, SpsToggleExamples, SpsTooltip, SpsTooltipExamples, SpsTooltipTitle, SpsTr, SpsValidators, SpsVerticalRule, SpsVr, SpsWf, SpsWfDoc, SpsWfDs, SpsWfStep, SpsWizardExamples, SpsWizardSidebar, SpsWizardSubstep, SpsWorkflow, SpsWorkflowDocument, SpsWorkflowDocumentStatus, SpsWorkflowExamples, SpsWorkflowStep, SpsZeroState, SpsZeroStateExamples, TooltipVisibility, ValidationMode, addOnChangeErrorKey, addOnSubmitErrorKey, bindProps, contentOf, date, dateConstraint, dateRange, findParentBranches, flipPosition, formArray, formControl, formGroup, getMember, getPosition, selectChildren, toggleTooltipState, useCheckDeprecatedProps, useCustomValidator, useDidUpdateEffect, useDocumentEventListener, useElementId, useForm, useGrowlers, useInputPopup, usePatchReducer, usePortal, useServerSideValidation, useSpsAction, useSpsForm, validate };
38004
+ export { AsTypingErrorKeys, ContentOrderExample, DEFAULT_PRESETS, FauxChangeEvent, I18nContext, MANIFEST, OnBlurErrorKeys, OnSubmitErrorKeys, PortalContext, PreventativeErrorKeys, Provide, SimpleDateUtils, SpsAddRemoveFormRowExamples, SpsAdvancedSearch, SpsAdvancedSearchExamples, SpsApp, SpsAutocomplete, SpsAutocompleteExamples, SpsButton, SpsButtonExamples, SpsButtonGroup, SpsCard, SpsCardExamples, SpsCardTabbedPane, SpsCardV2, SpsCardV2Footer, SpsCardV2Header, SpsCardV2Title, SpsCheckbox, SpsCheckboxDropdown, SpsCheckboxExamples, SpsClickableTag, SpsClickableTagExamples, SpsColumnChooser, SpsColumnChooserColumn, SpsColumnChooserExamples, SpsConditionalField, SpsConditionalFieldExamples, SpsContentRow, SpsContentRowCol, SpsContentRowExamples, SpsContentRowExpansion, SpsContextBar, SpsCurrencyInput, SpsCurrencyInputExamples, SpsDateRangePicker, SpsDateRangePickerExamples, SpsDateTime, SpsDatepicker, SpsDatepickerExamples, SpsDatetimeExamples, SpsDd, SpsDescriptionList, SpsDescriptionListDefinition, SpsDescriptionListExamples, SpsDescriptionListTerm, SpsDl, SpsDropdown, SpsDropdownExamples, SpsDt, SpsFeedbackBlock, SpsFeedbackBlockExamples, SpsFieldset, SpsFieldsetExamples, SpsFilterPanel, SpsFilterPanelCap, SpsFilterPanelExamples, SpsFilterPanelFilterBox, SpsFilterPanelSection, SpsFilterTile, SpsFilterTileList, SpsFilterTileListExamples, SpsFocusedTask, SpsFocusedTaskActions, SpsFocusedTaskExamples, SpsForm, SpsFormArrayMeta, SpsFormComponentWrapper, SpsFormExamples, SpsFormFieldMeta, SpsFormGroupMeta, SpsFormMetaBase, SpsFormSetMeta, SpsGrowler, SpsGrowlerExamples, SpsI, SpsIconButtonPanel, SpsIncrementor, SpsIncrementorExamples, SpsInputGroup, SpsInsightTile, SpsInsights, SpsKeyValueList, SpsKeyValueListExamples, SpsKeyValueListItem, SpsKeyValueTag, SpsKeyValueTagExamples, SpsLabel, SpsLabelExamples, SpsListActionBar, SpsListActionBarExamples, SpsListToolbar, SpsListToolbarExamples, SpsListToolbarSearch, SpsListToolbarSearchInfo, SpsListToolbarSortBy, SpsMicroBlock, SpsMicroBlockExamples, SpsMicroZeroState, SpsModal, SpsModalExamples, SpsModalFooter, SpsMultiSelect, SpsMultiSelectExamples, SpsPageSelector, SpsPageSubtitle, SpsPageTitle, SpsPageTitleExamples, SpsPagination, SpsPaginationExamples, SpsProductBar, SpsProductBarExamples, SpsProductBarTab, SpsProgressBar, SpsProgressBarExamples, SpsProgressRing, SpsRadioButton, SpsRadioButtonExamples, SpsScrollableContainer, SpsScrollableContainerExamples, SpsSearchResultsBar, SpsSearchResultsBarExamples, SpsSearchResultsBarV2, SpsSelect, SpsSelectExamples, SpsSideNav, SpsSideNavExamples, SpsSlackLink, SpsSlackLinkExamples, SpsSortingHeader, SpsSortingHeaderCell, SpsSortingHeaderExamples, SpsSpinner, SpsSpinnerExamples, SpsSplitButton, SpsSplitButtonExamples, SpsSteppedProgressBar, SpsSteppedProgressBarExamples, SpsSummaryListColumn, SpsSummaryListExamples, SpsSummaryListExpansion, SpsSummaryListRow, SpsTab, SpsTabPanel, SpsTable, SpsTableBody, SpsTableCell, SpsTableExamples, SpsTableHead, SpsTableHeader, SpsTableRow, SpsTabsV2, SpsTag, SpsTagExamples, SpsTaskQueue, SpsTaskQueueExamples, SpsTbody, SpsTd, SpsTextInput, SpsTextInputExamples, SpsTextarea, SpsTextareaExamples, SpsTh, SpsThead, SpsTile, SpsTileList, SpsTileListExamples, SpsToggle, SpsToggleExamples, SpsTooltip, SpsTooltipExamples, SpsTooltipTitle, SpsTr, SpsValidators, SpsVerticalRule, SpsVr, SpsWf, SpsWfDoc, SpsWfDs, SpsWfStep, SpsWizardExamples, SpsWizardSidebar, SpsWizardSubstep, SpsWorkflow, SpsWorkflowDocument, SpsWorkflowDocumentStatus, SpsWorkflowExamples, SpsWorkflowStep, SpsZeroState, SpsZeroStateExamples, TooltipVisibility, ValidationMode, addOnChangeErrorKey, addOnSubmitErrorKey, bindProps, contentOf, date, dateConstraint, dateRange, findParentBranches, flipPosition, formArray, formControl, formGroup, getMember, getPosition, selectChildren, toggleTooltipState, useCheckDeprecatedProps, useColumnResizer, useCustomValidator, useDidUpdateEffect, useDocumentEventListener, useElementId, useForm, useGrowlers, useInputPopup, usePatchReducer, usePortal, useServerSideValidation, useSpsAction, useSpsForm, validate };