@spscommerce/ds-react 6.16.0 → 6.17.2

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
@@ -2221,11 +2221,33 @@ const SpsOptionList = React.forwardRef((props2, ref2) => {
2221
2221
  const portal = usePortal("sps-option-list-portal");
2222
2222
  const portalContext = React.useContext(PortalContext);
2223
2223
  const [primePosition, altPosition] = positionOverride || [Position.BOTTOM_LEFT, Position.TOP_LEFT];
2224
- const [posStyle, openingUpward] = isOpen ? getPosition(rootRef, attachTo, primePosition, __spreadValues({
2225
- altPosition,
2226
- setMinWidth: !ignoreWidthStyles,
2227
- setWidth: !ignoreWidthStyles && conformWidth
2228
- }, portalContext)) : [{}, false];
2224
+ const [[posStyle, openingUpward], setPositionData] = React.useState([{}, false]);
2225
+ React.useEffect(() => {
2226
+ if (isOpen) {
2227
+ setPositionData(getPosition(rootRef, attachTo, primePosition, __spreadValues({
2228
+ altPosition,
2229
+ setMinWidth: !ignoreWidthStyles,
2230
+ setWidth: !ignoreWidthStyles && conformWidth
2231
+ }, portalContext)));
2232
+ } else {
2233
+ setPositionData([{}, false]);
2234
+ }
2235
+ }, [isOpen, primePosition, altPosition]);
2236
+ React.useEffect(() => {
2237
+ const onScroll = () => {
2238
+ if (isOpen) {
2239
+ setPositionData(getPosition(rootRef, attachTo, primePosition, __spreadValues({
2240
+ altPosition,
2241
+ setMinWidth: !ignoreWidthStyles,
2242
+ setWidth: !ignoreWidthStyles && conformWidth
2243
+ }, portalContext)));
2244
+ }
2245
+ };
2246
+ document.addEventListener("scroll", onScroll);
2247
+ return () => {
2248
+ document.removeEventListener("scroll", onScroll);
2249
+ };
2250
+ }, [isOpen]);
2229
2251
  const searchInputRef = React.useRef(null);
2230
2252
  const [
2231
2253
  searchElement,
@@ -21615,6 +21637,21 @@ function SpsTooltip({
21615
21637
  setPositionData([{}, false]);
21616
21638
  }
21617
21639
  }, [shown, position3, altPosition, offsets[0], offsets[1], children]);
21640
+ React.useEffect(() => {
21641
+ const onScroll = () => {
21642
+ if (shown) {
21643
+ setPositionData(getPosition(rootElement, forElementRef, position3, __spreadValues({
21644
+ altPosition,
21645
+ setMinWidth: false,
21646
+ offsets: [offsets[0] - CARET_SPACING_PX, offsets[1] + getSecondaryOffset(position3)]
21647
+ }, portalContext)));
21648
+ }
21649
+ };
21650
+ document.addEventListener("scroll", onScroll);
21651
+ return () => {
21652
+ document.removeEventListener("scroll", onScroll);
21653
+ };
21654
+ }, [shown]);
21618
21655
  const classes = clsx(unsafelyReplaceClassName || "sps-tooltip", "z-stratum-tip", `sps-tooltip--${kind}`, `sps-tooltip--pos-${(altPositionUsed ? altPosition : position3).replace(" ", "-")}`, shown && "sps-tooltip--shown", className);
21619
21656
  return portal(/* @__PURE__ */ React.createElement("div", {
21620
21657
  role: "tooltip",
@@ -24713,41 +24750,186 @@ Object.assign(SpsKeyValueListItem, {
24713
24750
  displayName: "SpsKeyValueListItem"
24714
24751
  });
24715
24752
  const SpsKeyValueListExamples = {
24716
- stacked: {
24717
- label: "Stacked",
24753
+ vertical: {
24754
+ label: "Vertical Key Value Sets",
24755
+ description: () => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("h5", null, "Use:"), /* @__PURE__ */ React__default.createElement("ul", null, /* @__PURE__ */ React__default.createElement("li", {
24756
+ className: "mb-2"
24757
+ }, "Vertical containers such as a side bar or general card")), /* @__PURE__ */ React__default.createElement("h5", null, "Do Not Use:"), /* @__PURE__ */ React__default.createElement("ul", null, /* @__PURE__ */ React__default.createElement("li", {
24758
+ className: "mb-2"
24759
+ }, "In Table cells or Description Lists")), /* @__PURE__ */ React__default.createElement("h5", null, "Usage Rules"), /* @__PURE__ */ React__default.createElement("ul", null, /* @__PURE__ */ React__default.createElement("li", {
24760
+ className: "mb-2"
24761
+ }, "Titles must be written in Title Case"), /* @__PURE__ */ React__default.createElement("li", {
24762
+ className: "mb-2"
24763
+ }, "Values can be written in Sentence Case or Title Case as best suits the content"), /* @__PURE__ */ React__default.createElement("li", {
24764
+ className: "mb-2"
24765
+ }, "Titles or Values can include hyperlinks and/or icons", /* @__PURE__ */ React__default.createElement("ul", null, /* @__PURE__ */ React__default.createElement("li", {
24766
+ className: "mb-2"
24767
+ }, "Icons should always appear on the left before any text content"))), /* @__PURE__ */ React__default.createElement("li", {
24768
+ className: "mb-2"
24769
+ }, "Values can include tags"), /* @__PURE__ */ React__default.createElement("li", {
24770
+ className: "mb-2"
24771
+ }, "Can include multiple values on additional lines"))),
24718
24772
  examples: {
24719
- stacked: {
24720
- jsx: code`
24721
- <SpsKeyValueList>
24722
- <SpsKeyValueListItem itemKey="Buying From">
24723
- 75 Companies
24724
- <span className="font-weight-light d-block">38 of 75 Operational</span>
24725
- </SpsKeyValueListItem>
24726
- <SpsKeyValueListItem itemKey="Some Other Key">Its Value</SpsKeyValueListItem>
24727
- </SpsKeyValueList>
24728
- `
24773
+ standard: {
24774
+ description: () => /* @__PURE__ */ React__default.createElement("h4", null, "Standard"),
24775
+ react: code`
24776
+ function DemoComponent() {
24777
+ return (
24778
+ <SpsKeyValueList>
24779
+ <SpsKeyValueListItem itemKey="Company">
24780
+ SPS Commerce
24781
+ </SpsKeyValueListItem>
24782
+ </SpsKeyValueList>
24783
+ )
24784
+ }
24785
+ `
24786
+ },
24787
+ multipleValues: {
24788
+ description: () => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("h4", null, "Multiple Values"), /* @__PURE__ */ React__default.createElement("p", null, /* @__PURE__ */ React__default.createElement("b", null, "Note:"), " There is no limit to the number of values that can be listed, but extensive lists should be avoided.")),
24789
+ react: code`
24790
+ function DemoComponent() {
24791
+ return (
24792
+ <SpsKeyValueList>
24793
+ <SpsKeyValueListItem itemKey="Program Requirements">
24794
+ Electronic Order
24795
+ <br />
24796
+ Fulfillment
24797
+ </SpsKeyValueListItem>
24798
+ </SpsKeyValueList>
24799
+ )
24800
+ }
24801
+ `
24802
+ },
24803
+ secondaryValues: {
24804
+ description: () => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("h5", null, "Secondary Values"), /* @__PURE__ */ React__default.createElement("p", null, /* @__PURE__ */ React__default.createElement("b", null, "Note:"), " When using a secondary value (styled in lighter grey text) the number of values listed should be limited to two (2).")),
24805
+ react: code`
24806
+ function DemoComponent() {
24807
+ return (
24808
+ <SpsKeyValueList>
24809
+ <SpsKeyValueListItem itemKey="Company">
24810
+ SPS Commerce
24811
+ <span className="font-weight-light d-block">Minneapolis, MN</span>
24812
+ </SpsKeyValueListItem>
24813
+ </SpsKeyValueList>
24814
+ )
24815
+ }
24816
+ `
24817
+ },
24818
+ tags: {
24819
+ description: ({ NavigateTo }) => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("h4", null, "Tags"), /* @__PURE__ */ React__default.createElement("p", null, /* @__PURE__ */ React__default.createElement("b", null, "Note:"), " Tags can appear inline or on individual lines as the length of content requires. Reference the ", /* @__PURE__ */ React__default.createElement(NavigateTo, {
24820
+ to: "tags"
24821
+ }, "Tag"), " component for spacing rules.")),
24822
+ react: code`
24823
+ function DemoComponent() {
24824
+ return (
24825
+ <SpsKeyValueList>
24826
+ <SpsKeyValueListItem itemKey="Accepted Documents">
24827
+ <SpsTag className="mr-1 mb-1">850</SpsTag>
24828
+ <SpsTag className="mr-1 mb-1">855</SpsTag>
24829
+ </SpsKeyValueListItem>
24830
+ </SpsKeyValueList>
24831
+ )
24832
+ }
24833
+ `
24834
+ },
24835
+ hyperlinksAndIcons: {
24836
+ description: () => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("h4", null, "Hyperlinks & Icons"), /* @__PURE__ */ React__default.createElement("p", null, /* @__PURE__ */ React__default.createElement("b", null, "Note:"), " Icons and Hyperlinks can be used independently of one another.")),
24837
+ react: code`
24838
+ function DemoComponent() {
24839
+ return (
24840
+ <SpsKeyValueList>
24841
+ <SpsKeyValueListItem itemKey="Company">
24842
+ <a href="#" target="_blank">SPS Commerce</a>
24843
+ <span className="font-weight-light d-block">Minneapolis, MN</span>
24844
+ </SpsKeyValueListItem>
24845
+ </SpsKeyValueList>
24846
+ )
24847
+ }
24848
+ `
24729
24849
  }
24730
24850
  }
24731
24851
  },
24732
- inline: {
24733
- label: "Inline",
24852
+ horizontal: {
24853
+ label: "Horizontal Key Value Sets",
24854
+ description: () => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("h5", null, "Use:"), /* @__PURE__ */ React__default.createElement("ul", null, /* @__PURE__ */ React__default.createElement("li", {
24855
+ className: "mb-2"
24856
+ }, "Horizontal containers such as a content row")), /* @__PURE__ */ React__default.createElement("h5", null, "Do Not Use:"), /* @__PURE__ */ React__default.createElement("ul", null, /* @__PURE__ */ React__default.createElement("li", {
24857
+ className: "mb-2"
24858
+ }, "In Table cells or Description Lists")), /* @__PURE__ */ React__default.createElement("h5", null, "Usage Rules"), /* @__PURE__ */ React__default.createElement("ul", null, /* @__PURE__ */ React__default.createElement("li", {
24859
+ className: "mb-2"
24860
+ }, "Titles must be written in Title Case"), /* @__PURE__ */ React__default.createElement("li", {
24861
+ className: "mb-2"
24862
+ }, "Values can be written in Sentence Case or Title Case as best suits the content"), /* @__PURE__ */ React__default.createElement("li", {
24863
+ className: "mb-2"
24864
+ }, "Titles or Values can include hyperlinks and/or icons", /* @__PURE__ */ React__default.createElement("ul", null, /* @__PURE__ */ React__default.createElement("li", {
24865
+ className: "mb-2"
24866
+ }, "Icons should always appear on the left before any text content"))), /* @__PURE__ */ React__default.createElement("li", {
24867
+ className: "mb-2"
24868
+ }, "Can be used individually or stacked on top of one another", /* @__PURE__ */ React__default.createElement("ul", null, /* @__PURE__ */ React__default.createElement("li", {
24869
+ className: "mb-2"
24870
+ }, "When stacking, the value sets should share a common category or theme"))))),
24734
24871
  examples: {
24735
- inline: {
24736
- jsx: code`
24737
- <SpsKeyValueList inline>
24738
- <SpsKeyValueListItem itemKey="Title">Sub copy goes here</SpsKeyValueListItem>
24739
- <SpsKeyValueListItem itemKey="Long Title">Sub copy</SpsKeyValueListItem>
24740
- <SpsKeyValueListItem itemKey="Tags">
24741
- <SpsTag kind={TagKind.INFO} className="mr-1 mb-1">Tag</SpsTag>
24742
- <SpsTag kind={TagKind.INFO} className="mr-1 mb-1">Another Tag</SpsTag>
24743
- <SpsTag kind={TagKind.INFO} className="mr-1 mb-1">Taggart McTaggerson</SpsTag>
24744
- <SpsTag kind={TagKind.INFO} className="mr-1 mb-1">Taggle Rock</SpsTag>
24745
- <SpsTag kind={TagKind.INFO} className="mr-1 mb-1">A Tag On Titan</SpsTag>
24746
- <SpsTag kind={TagKind.INFO} className="mr-1 mb-1">bröther may i have some tägs</SpsTag>
24747
- <SpsTag kind={TagKind.INFO} className="mr-1 mb-1">Tag Me Up, Tag Me Down</SpsTag>
24748
- </SpsKeyValueListItem>
24749
- </SpsKeyValueList>
24750
- `
24872
+ standard: {
24873
+ description: () => /* @__PURE__ */ React__default.createElement("h4", null, "Standard"),
24874
+ react: code`
24875
+ function DemoComponent() {
24876
+ return (
24877
+ <SpsKeyValueList inline>
24878
+ <SpsKeyValueListItem itemKey="Company">
24879
+ SPS Commerce
24880
+ </SpsKeyValueListItem>
24881
+ </SpsKeyValueList>
24882
+ )
24883
+ }
24884
+ `
24885
+ },
24886
+ stacked: {
24887
+ description: () => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("h4", null, "Stacked"), /* @__PURE__ */ React__default.createElement("p", null, /* @__PURE__ */ React__default.createElement("b", null, "Note:"), " There is no limit to the number of stacked listings, but more than three in a single container should be avoided."), /* @__PURE__ */ React__default.createElement("p", null, /* @__PURE__ */ React__default.createElement("b", null, "Note:"), " Titles are right-aligned in the horizontal Key Value Sets to optimize scanability of the values.")),
24888
+ react: code`
24889
+ function DemoComponent() {
24890
+ return (
24891
+ <div className="sfg-row">
24892
+ <div className="sfg-col-3">
24893
+ <SpsKeyValueList inline>
24894
+ <SpsKeyValueListItem itemKey="Title One">
24895
+ Value
24896
+ </SpsKeyValueListItem>
24897
+ <SpsKeyValueListItem itemKey="Title Two">
24898
+ Value that wraps to a second line
24899
+ </SpsKeyValueListItem>
24900
+ <SpsKeyValueListItem itemKey="Title Three">
24901
+ Value
24902
+ </SpsKeyValueListItem>
24903
+ </SpsKeyValueList>
24904
+ </div>
24905
+ </div>
24906
+ )
24907
+ }
24908
+ `
24909
+ },
24910
+ withLinks: {
24911
+ description: () => /* @__PURE__ */ React__default.createElement("h4", null, "With Links"),
24912
+ react: code`
24913
+ function DemoComponent() {
24914
+ return (
24915
+ <div className="sfg-row">
24916
+ <div className="sfg-col-3">
24917
+ <SpsKeyValueList inline>
24918
+ <SpsKeyValueListItem itemKey="Title One">
24919
+ Value
24920
+ </SpsKeyValueListItem>
24921
+ <SpsKeyValueListItem itemKey="Title Two">
24922
+ Value that wraps to a <a href="#" target="_blank">second line</a>
24923
+ </SpsKeyValueListItem>
24924
+ <SpsKeyValueListItem itemKey="Title Three">
24925
+ Value
24926
+ </SpsKeyValueListItem>
24927
+ </SpsKeyValueList>
24928
+ </div>
24929
+ </div>
24930
+ )
24931
+ }
24932
+ `
24751
24933
  }
24752
24934
  }
24753
24935
  }
@@ -37213,7 +37395,7 @@ function SpsFilterPanelCap(_ea) {
37213
37395
  }), /* @__PURE__ */ React.createElement("p", null, t2("design-system:filterPanel.title"))), /* @__PURE__ */ React.createElement(SpsButton, {
37214
37396
  kind: ButtonKind.LINK,
37215
37397
  onClick: onClear
37216
- }, t2("design-system:filterPanel.clear")));
37398
+ }, t2("design-system:filterPanel.clear")), children);
37217
37399
  }
37218
37400
  Object.assign(SpsFilterPanelCap, {
37219
37401
  props: propsDoc$6,
@@ -37895,6 +38077,7 @@ const MANIFEST = {
37895
38077
  examples: SpsInsightTileExamples
37896
38078
  },
37897
38079
  "Key Value Lists": {
38080
+ description: () => /* @__PURE__ */ React.createElement("p", null, "Key Value Sets consist of a title and value, or values, paired together visually. They are ideal for displaying details (a value or values) that require additional context (title)."),
37898
38081
  components: [SpsKeyValueList, SpsKeyValueListItem],
37899
38082
  examples: SpsKeyValueListExamples
37900
38083
  },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@spscommerce/ds-react",
3
3
  "description": "SPS Design System React components",
4
- "version": "6.16.0",
4
+ "version": "6.17.2",
5
5
  "author": "SPS Commerce",
6
6
  "license": "UNLICENSED",
7
7
  "repository": "https://github.com/spscommerce/design-system/tree/main/packages/@spscommerce/ds-react",
@@ -28,10 +28,10 @@
28
28
  },
29
29
  "peerDependencies": {
30
30
  "@react-stately/collections": "^3.3.3",
31
- "@spscommerce/ds-colors": "6.16.0",
32
- "@spscommerce/ds-illustrations": "6.16.0",
33
- "@spscommerce/ds-shared": "6.16.0",
34
- "@spscommerce/positioning": "6.16.0",
31
+ "@spscommerce/ds-colors": "6.17.2",
32
+ "@spscommerce/ds-illustrations": "6.17.2",
33
+ "@spscommerce/ds-shared": "6.17.2",
34
+ "@spscommerce/positioning": "6.17.2",
35
35
  "@spscommerce/utils": "^6.11.3",
36
36
  "moment": "^2.25.3",
37
37
  "moment-timezone": "^0.5.28",
@@ -40,10 +40,10 @@
40
40
  },
41
41
  "devDependencies": {
42
42
  "@react-stately/collections": "^3.3.3",
43
- "@spscommerce/ds-colors": "6.16.0",
44
- "@spscommerce/ds-illustrations": "6.16.0",
45
- "@spscommerce/ds-shared": "6.16.0",
46
- "@spscommerce/positioning": "6.16.0",
43
+ "@spscommerce/ds-colors": "6.17.2",
44
+ "@spscommerce/ds-illustrations": "6.17.2",
45
+ "@spscommerce/ds-shared": "6.17.2",
46
+ "@spscommerce/positioning": "6.17.2",
47
47
  "@spscommerce/utils": "^6.11.3",
48
48
  "@testing-library/react": "^9.3.2",
49
49
  "@types/prop-types": "^15.7.1",