@spscommerce/ds-react 7.4.0 → 7.4.1

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.cjs.js CHANGED
@@ -1582,7 +1582,7 @@ Valid keys: `+JSON.stringify(Object.keys(F),null," "));var Te=xe(ie,ne,te,Q,U+"
1582
1582
  </div>
1583
1583
  );
1584
1584
  }
1585
- `}}}},HD={disabled:"boolean",formMeta:"SpsFormFieldMeta<SimpleDateRange | DatePreset>",maxDate:"SimpleDate",minDate:"SimpleDate",onChange:"(newDateRange: SimpleDateRange | DatePreset) => void",presets:"Array<DatePreset>",value:"SimpleDateRange | DatePreset"},pd="sps-datepicker",yo=[{definition:"P0D",label:"design-system:datepicker.preset.today"},{definition:"P7D",label:"design-system:datepicker.preset.sevenDays"},{definition:"P30D",label:"design-system:datepicker.preset.thirtyDays"},{definition:"P60D",label:"design-system:datepicker.preset.sixtyDays"},{definition:"P90D",label:"design-system:datepicker.preset.ninetyDays"},{definition:"P1Y",label:"design-system:datepicker.preset.oneYear"}];function Ti({children:e,className:t,disabled:n,formMeta:a,id:s,maxDate:i,minDate:l,onChange:c,presets:u=yo,value:p,"data-testid":f,...m}){const{t:h}=r.useContext(Le),{wrapperId:S,controlId:y}=bt(s,a),T=r.useRef(null),C=r.useRef(null),D=r.useRef(null),[N,I]=r.useState(Array.isArray(p)?me.toStringRange(p):""),[b,k]=r.useState(null),[O,x]=r.useState(),{showPopup:L,doShowPopup:A,doHidePopup:G}=Fa(T,D);function _(F){a&&(a.setValue(F),a.markAsDirty()),c&&c(F)}function W(F){const H=p||[];let q;!H[0]||H[1]||me.isBefore(F,H[0])?q=[F,null]:(q=[H[0],F],G(!0),C&&C.current&&C.current.focus()),_(q),I(me.toStringRange(q)),x(void 0),k(null)}function M(F){I(F.target.value);const H=me.createRangeFrom(F.target.value);_(H),x(void 0)}function B(){I(""),_(),x(void 0),k(null)}function J(F){switch(F.key){case"Tab":G();break;case"Backspace":F.target.selectionStart===0&&p&&!Array.isArray(p)&&B();break}}function ee(F){if(!F){k(null),_(void 0);return}I(""),k(F);const H=me.createRangeFromPreset(F);JSON.stringify(p)!==JSON.stringify(H)&&_(H)}r.useEffect(()=>{if(!!p&&u!==yo&&Array.isArray(p)){const F=me.toStringRange(p),H=u.find(q=>F===me.toStringRange(me.createRangeFromPreset(q)));H?ee(H):k(null)}},[p]),r.useEffect(()=>{p?Array.isArray(p)&&!b?(p.every(F=>me.isValid(F))&&I(me.toStringRange(p)),x(void 0)):Array.isArray(p)&&b&&I(""):B()},[p,b]);function j(F){return F&&/^design-system:/.test(F.label)?h(F.label):F.label}const re=K(pd,"sps-text-input",L&&`${pd}--open`,t);return r.createElement(r.Fragment,null,r.createElement(et,{id:S,className:re,formMeta:a,inputRef:C,focusInputOnClick:!0,ref:T},r.createElement("div",{className:K("sps-form-control",n&&"disabled")},r.createElement("i",{className:K("sps-text-input__icon","sps-icon","sps-icon-calendar")}),b&&r.createElement("div",{"data-testid":`${f}_selected_preset`,className:"sps-datepicker__selected-preset"},r.createElement("span",{className:"sps-tag sps-tag--info"},j(b))),r.createElement("input",{type:"text",ref:C,className:"sps-text-input__input","data-testid":`${f}_date_input`,id:y,placeholder:!N&&!b?Br:void 0,onChange:M,onClick:A,onFocus:A,onKeyDown:J,value:N,disabled:n,...m}),p&&!n&&r.createElement("i",{className:"sps-icon sps-icon-x-circle sps-form-control__clear-btn",onClick:B}))),r.createElement(yi,{isOpen:L,attachTo:T,ref:D},r.createElement("div",{className:"sps-datepicker__presets"},r.createElement("fieldset",null,r.createElement("legend",{className:"sps-datepicker__presets-label"},h("design-system:datepicker.presetsLabel")),r.createElement("div",{className:"sps-custom-control sps-custom-radio sps-custom-control--no-error"},r.createElement("input",{"data-testid":`${f}_presets_custom_input`,type:"radio",id:`sps-date-range-picker-${S}__range-custom`,className:"sps-custom-control__input",checked:!b,name:`sps-date-range-picker-${S}__range`,onChange:()=>ee()}),r.createElement("label",{className:"sps-custom-control__label",htmlFor:`sps-date-range-picker-${S}__range-custom`},h("design-system:datepicker.preset.custom"))),u.map((F,H)=>r.createElement("div",{key:j(F),className:"sps-custom-control sps-custom-radio sps-custom-control--no-error"},r.createElement("input",{type:"radio","data-testid":`${f}_preset_option_${F.label}`,id:`sps-date-range-picker-${S}__range-${H}`,name:`sps-date-range-picker-${S}__range`,onChange:()=>ee(F),checked:b!=null&&b.definition?b.definition===F.definition:!1,className:"sps-custom-control__input"}),r.createElement("label",{className:"sps-custom-control__label",htmlFor:`sps-date-range-picker-${S}__range-${H}`},j(F)))))),r.createElement(vi,{"data-testid":`${f}_calendar`,selectedRange:Array.isArray(p)?p:O,onNewSelection:W,minDate:l,maxDate:i})))}Object.assign(Ti,{props:HD,displayName:"SpsDateRangePicker"});const Hp={basic:{label:"Basic",examples:{basic:{react:E.code`
1585
+ `}}}},HD={disabled:"boolean",formMeta:"SpsFormFieldMeta<SimpleDateRange | DatePreset>",maxDate:"SimpleDate",minDate:"SimpleDate",onChange:"(newDateRange: SimpleDateRange | DatePreset) => void",presets:"Array<DatePreset>",value:"SimpleDateRange | DatePreset"},pd="sps-datepicker",yo=[{definition:"P0D",label:"design-system:datepicker.preset.today"},{definition:"P7D",label:"design-system:datepicker.preset.sevenDays"},{definition:"P30D",label:"design-system:datepicker.preset.thirtyDays"},{definition:"P60D",label:"design-system:datepicker.preset.sixtyDays"},{definition:"P90D",label:"design-system:datepicker.preset.ninetyDays"},{definition:"P1Y",label:"design-system:datepicker.preset.oneYear"}];function Ti({children:e,className:t,disabled:n,formMeta:a,id:s,maxDate:i,minDate:l,onChange:c,presets:u=yo,value:p,"data-testid":f,...m}){const{t:h}=r.useContext(Le),{wrapperId:S,controlId:y}=bt(s,a),T=r.useRef(null),C=r.useRef(null),D=r.useRef(null),[N,I]=r.useState(Array.isArray(p)?me.toStringRange(p):""),[b,k]=r.useState(null),[O,x]=r.useState(),{showPopup:L,doShowPopup:A,doHidePopup:G}=Fa(T,D);function _(F){a&&(a.setValue(F),a.markAsDirty()),c&&c(F)}function W(F){const H=p||[];let q;!H[0]||H[1]||me.isBefore(F,H[0])?q=[F,null]:(q=[H[0],F],G(!0),C&&C.current&&C.current.focus()),_(q),I(me.toStringRange(q)),x(void 0),k(null)}function M(F){I(F.target.value);const H=me.createRangeFrom(F.target.value);_(H),x(void 0)}function B(){I(""),_(),x(void 0),k(null)}function J(F){switch(F.key){case"Tab":G();break;case"Backspace":F.target.selectionStart===0&&p&&!Array.isArray(p)&&B();break}}function ee(F){if(!F){k(null),_(void 0);return}I(""),k(F);const H=me.createRangeFromPreset(F);JSON.stringify(p)!==JSON.stringify(H)&&_(H)}r.useEffect(()=>{if(!!p&&u!==yo&&Array.isArray(p)){const F=me.toStringRange(p),H=u.find(q=>F===me.toStringRange(me.createRangeFromPreset(q)));H?ee(H):k(null)}},[p]),r.useEffect(()=>{p?Array.isArray(p)&&!b?(p.every(F=>me.isValid(F)||F===null)&&I(me.toStringRange(p)),x(void 0)):Array.isArray(p)&&b&&I(""):B()},[p,b]);function j(F){return F&&/^design-system:/.test(F.label)?h(F.label):F.label}const re=K(pd,"sps-text-input",L&&`${pd}--open`,t);return r.createElement(r.Fragment,null,r.createElement(et,{id:S,className:re,formMeta:a,inputRef:C,focusInputOnClick:!0,ref:T},r.createElement("div",{className:K("sps-form-control",n&&"disabled")},r.createElement("i",{className:K("sps-text-input__icon","sps-icon","sps-icon-calendar")}),b&&r.createElement("div",{"data-testid":`${f}_selected_preset`,className:"sps-datepicker__selected-preset"},r.createElement("span",{className:"sps-tag sps-tag--info"},j(b))),r.createElement("input",{type:"text",ref:C,className:"sps-text-input__input","data-testid":`${f}_date_input`,id:y,placeholder:!N&&!b?Br:void 0,onChange:M,onClick:A,onFocus:A,onKeyDown:J,value:N,disabled:n,...m}),p&&!n&&r.createElement("i",{className:"sps-icon sps-icon-x-circle sps-form-control__clear-btn",onClick:B}))),r.createElement(yi,{isOpen:L,attachTo:T,ref:D},r.createElement("div",{className:"sps-datepicker__presets"},r.createElement("fieldset",null,r.createElement("legend",{className:"sps-datepicker__presets-label"},h("design-system:datepicker.presetsLabel")),r.createElement("div",{className:"sps-custom-control sps-custom-radio sps-custom-control--no-error"},r.createElement("input",{"data-testid":`${f}_presets_custom_input`,type:"radio",id:`sps-date-range-picker-${S}__range-custom`,className:"sps-custom-control__input",checked:!b,name:`sps-date-range-picker-${S}__range`,onChange:()=>ee()}),r.createElement("label",{className:"sps-custom-control__label",htmlFor:`sps-date-range-picker-${S}__range-custom`},h("design-system:datepicker.preset.custom"))),u.map((F,H)=>r.createElement("div",{key:j(F),className:"sps-custom-control sps-custom-radio sps-custom-control--no-error"},r.createElement("input",{type:"radio","data-testid":`${f}_preset_option_${F.label}`,id:`sps-date-range-picker-${S}__range-${H}`,name:`sps-date-range-picker-${S}__range`,onChange:()=>ee(F),checked:b!=null&&b.definition?b.definition===F.definition:!1,className:"sps-custom-control__input"}),r.createElement("label",{className:"sps-custom-control__label",htmlFor:`sps-date-range-picker-${S}__range-${H}`},j(F)))))),r.createElement(vi,{"data-testid":`${f}_calendar`,selectedRange:Array.isArray(p)?p:O,onNewSelection:W,minDate:l,maxDate:i})))}Object.assign(Ti,{props:HD,displayName:"SpsDateRangePicker"});const Hp={basic:{label:"Basic",examples:{basic:{react:E.code`
1586
1586
  function Component() {
1587
1587
  const { formValue, formMeta, updateForm } = useSpsForm({
1588
1588
  dateRange: [
package/lib/index.es.js CHANGED
@@ -11954,7 +11954,7 @@ function ap({
11954
11954
  V ? X(V) : k(null);
11955
11955
  }
11956
11956
  }, [p]), r.useEffect(() => {
11957
- p ? Array.isArray(p) && !S ? (p.every((F) => me.isValid(F)) && I(me.toStringRange(p)), x(void 0)) : Array.isArray(p) && S && I("") : B();
11957
+ p ? Array.isArray(p) && !S ? (p.every((F) => me.isValid(F) || F === null) && I(me.toStringRange(p)), x(void 0)) : Array.isArray(p) && S && I("") : B();
11958
11958
  }, [p, S]);
11959
11959
  function U(F) {
11960
11960
  return F && /^design-system:/.test(F.label) ? h(F.label) : F.label;
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": "7.4.0",
4
+ "version": "7.4.1",
5
5
  "author": "SPS Commerce",
6
6
  "license": "UNLICENSED",
7
7
  "repository": "https://github.com/spscommerce/woodland/tree/main/packages/@spscommerce/ds-react",
@@ -40,11 +40,11 @@
40
40
  },
41
41
  "peerDependencies": {
42
42
  "@react-stately/collections": "^3.6.0",
43
- "@sps-woodland/illustrations": "7.4.0",
44
- "@sps-woodland/tabs": "7.4.0",
45
- "@spscommerce/ds-colors": "7.4.0",
46
- "@spscommerce/ds-shared": "7.4.0",
47
- "@spscommerce/positioning": "7.4.0",
43
+ "@sps-woodland/illustrations": "7.4.1",
44
+ "@sps-woodland/tabs": "7.4.1",
45
+ "@spscommerce/ds-colors": "7.4.1",
46
+ "@spscommerce/ds-shared": "7.4.1",
47
+ "@spscommerce/positioning": "7.4.1",
48
48
  "@spscommerce/utils": "^6.11.3",
49
49
  "moment": "^2.25.3",
50
50
  "moment-timezone": "^0.5.28",
@@ -58,11 +58,11 @@
58
58
  "@react-types/select": "^3.6.1",
59
59
  "@react-types/shared": "^3.8.0",
60
60
  "@react-types/tabs": "^3.0.1",
61
- "@sps-woodland/illustrations": "7.4.0",
62
- "@sps-woodland/tabs": "7.4.0",
63
- "@spscommerce/ds-colors": "7.4.0",
64
- "@spscommerce/ds-shared": "7.4.0",
65
- "@spscommerce/positioning": "7.4.0",
61
+ "@sps-woodland/illustrations": "7.4.1",
62
+ "@sps-woodland/tabs": "7.4.1",
63
+ "@spscommerce/ds-colors": "7.4.1",
64
+ "@spscommerce/ds-shared": "7.4.1",
65
+ "@spscommerce/positioning": "7.4.1",
66
66
  "@spscommerce/utils": "^6.12.1",
67
67
  "@testing-library/dom": "^8.17.1",
68
68
  "@testing-library/react": "^10.0.0",
@@ -76,7 +76,7 @@
76
76
  "raf-stub": "^2.0.2",
77
77
  "react": "^16.9.0",
78
78
  "react-dom": "^16.9.0",
79
- "test": "7.4.0"
79
+ "test": "7.4.1"
80
80
  },
81
81
  "scripts": {
82
82
  "build": "pnpm run build:js && pnpm run build:types",