@sps-woodland/product-bar 7.0.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/README.md ADDED
@@ -0,0 +1,3 @@
1
+ ## [@sps-woodland/product-bar](https://github.com/SPSCommerce/woodland/tree/master/packages/@sps-woodland/product-bar#readme)
2
+
3
+ SPS Woodland Design System product bar component
@@ -0,0 +1,159 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("react"),y=require("@sps-woodland/core"),I=require("@spscommerce/utils"),Oe=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function Ke(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const ee=Oe(b),p=Ke(b);function De(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ce(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,a)}return r}function le(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ce(Object(r),!0).forEach(function(a){De(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ce(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}var Fe=(e,t,r)=>{for(var a of Object.keys(e)){var s;if(e[a]!==((s=t[a])!==null&&s!==void 0?s:r[a]))return!1}return!0},$e=e=>t=>{var r=e.defaultClassName,a=le(le({},e.defaultVariants),t);for(var s in a){var l,u=(l=a[s])!==null&&l!==void 0?l:e.defaultVariants[s];if(u!=null){var f=u;typeof f=="boolean"&&(f=f===!0?"true":"false");var d=e.variantClassNames[s][f];d&&(r+=" "+d)}}for(var[$,m]of e.compoundVariants)Fe($,a,e.defaultVariants)&&(r+=" "+m);return r},Ne=$e({defaultClassName:"_1gzyg118",variantClassNames:{active:{true:"_1gzyg119",false:"_1gzyg11a"},disabled:{true:"_1gzyg11b",false:"_1gzyg11c"}},defaultVariants:{active:!1,disabled:!1},compoundVariants:[]}),Ae=$e({defaultClassName:"_1gzyg111",variantClassNames:{fullWidth:{true:"_1gzyg112",false:"_1gzyg113"}},defaultVariants:{fullWidth:!1},compoundVariants:[]}),Re="_1gzyg114",ze="_1gzyg115",Ie="_1gzyg116",_e="_1gzyg110",He="_1gzyg117",Ue="_1gzyg11e",je="_1gzyg11d";function Te(e){var t,r,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(r=Te(e[t]))&&(a&&(a+=" "),a+=r);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}function Ge(){for(var e,t,r=0,a="";r<arguments.length;)(e=arguments[r++])&&(t=Te(e))&&(a&&(a+=" "),a+=t);return a}const he=typeof window<"u"?ee.default.useLayoutEffect:()=>{};let ue=new Map;function Ve(e,t){if(e===t)return e;let r=ue.get(e);if(r)return r(t),t;let a=ue.get(t);return a?(a(e),e):t}function We(...e){return(...t)=>{for(let r of e)typeof r=="function"&&r(...t)}}function K(...e){let t={...e[0]};for(let r=1;r<e.length;r++){let a=e[r];for(let s in a){let l=t[s],u=a[s];typeof l=="function"&&typeof u=="function"&&s[0]==="o"&&s[1]==="n"&&s.charCodeAt(2)>=65&&s.charCodeAt(2)<=90?t[s]=We(l,u):(s==="className"||s==="UNSAFE_className")&&typeof l=="string"&&typeof u=="string"?t[s]=Ge(l,u):s==="id"&&l&&u?t.id=Ve(l,u):t[s]=u!==void 0?u:l}}return t}const qe=new Set(["id"]),Ye=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),Xe=/^(data-.*)$/;function Je(e,t={}){let{labelable:r,propNames:a}=t,s={};for(const l in e)Object.prototype.hasOwnProperty.call(e,l)&&(qe.has(l)||r&&Ye.has(l)||(a==null?void 0:a.has(l))||Xe.test(l))&&(s[l]=e[l]);return s}function M(e){if(Qe())e.focus({preventScroll:!0});else{let t=Ze(e);e.focus(),et(t)}}let R=null;function Qe(){if(R==null){R=!1;try{var e=document.createElement("div");e.focus({get preventScroll(){return R=!0,!0}})}catch{}}return R}function Ze(e){for(var t=e.parentNode,r=[],a=document.scrollingElement||document.documentElement;t instanceof HTMLElement&&t!==a;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&r.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return a instanceof HTMLElement&&r.push({element:a,scrollTop:a.scrollTop,scrollLeft:a.scrollLeft}),r}function et(e){for(let{element:t,scrollTop:r,scrollLeft:a}of e)t.scrollTop=r,t.scrollLeft=a}let x=new Map,Y=new Set;function fe(){if(typeof window>"u")return;let e=r=>{let a=x.get(r.target);a||(a=new Set,x.set(r.target,a),r.target.addEventListener("transitioncancel",t)),a.add(r.propertyName)},t=r=>{let a=x.get(r.target);if(!!a&&(a.delete(r.propertyName),a.size===0&&(r.target.removeEventListener("transitioncancel",t),x.delete(r.target)),x.size===0)){for(let s of Y)s();Y.clear()}};document.body.addEventListener("transitionrun",e),document.body.addEventListener("transitionend",t)}typeof document<"u"&&(document.readyState!=="loading"?fe():document.addEventListener("DOMContentLoaded",fe));function Ee(e){requestAnimationFrame(()=>{x.size===0?e():Y.add(e)})}function tt(){let e=b.useRef(new Map),t=b.useCallback((s,l,u,f)=>{let d=f!=null&&f.once?(...$)=>{e.current.delete(u),u(...$)}:u;e.current.set(u,{type:l,eventTarget:s,fn:d,options:f}),s.addEventListener(l,u,f)},[]),r=b.useCallback((s,l,u,f)=>{var d;let $=((d=e.current.get(u))===null||d===void 0?void 0:d.fn)||u;s.removeEventListener(l,$,f),e.current.delete(u)},[]),a=b.useCallback(()=>{e.current.forEach((s,l)=>{r(s.eventTarget,s.type,l,s.options)})},[r]);return b.useEffect(()=>a,[a]),{addGlobalListener:t,removeGlobalListener:r,removeAllGlobalListeners:a}}function Be(e,t){he(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref.current=null}},[e,t])}function rt(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(r=>e.test(r.brand)))||e.test(window.navigator.userAgent)}function te(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.platform)||window.navigator.platform):!1}function we(){return te(/^Mac/i)}function nt(){return te(/^iPhone/i)}function at(){return te(/^iPad/i)||we()&&navigator.maxTouchPoints>1}function Se(){return nt()||at()}function ot(){return rt(/Android/i)}function X(e){return e.mozInputSource===0&&e.isTrusted?!0:ot()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function st(e){return e.width===0&&e.height===0||e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"}let O="default",J="",_=new WeakMap;function de(e){Se()?(O==="default"&&(J=document.documentElement.style.webkitUserSelect,document.documentElement.style.webkitUserSelect="none"),O="disabled"):(e instanceof HTMLElement||e instanceof SVGElement)&&(_.set(e,e.style.userSelect),e.style.userSelect="none")}function z(e){if(Se()){if(O!=="disabled")return;O="restoring",setTimeout(()=>{Ee(()=>{O==="restoring"&&(document.documentElement.style.webkitUserSelect==="none"&&(document.documentElement.style.webkitUserSelect=J||""),J="",O="default")})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&_.has(e)){let t=_.get(e);e.style.userSelect==="none"&&(e.style.userSelect=t),e.getAttribute("style")===""&&e.removeAttribute("style"),_.delete(e)}}const ke=ee.default.createContext(null);ke.displayName="PressResponderContext";function it(e){let t=b.useContext(ke);if(t){let{register:r,...a}=t;e=K(a,e),r()}return Be(t,e.ref),e}function ct(e){let{onPress:t,onPressChange:r,onPressStart:a,onPressEnd:s,onPressUp:l,isDisabled:u,isPressed:f,preventFocusOnPress:d,shouldCancelOnPointerExit:$,allowTextSelectionOnPress:m,ref:j,...G}=it(e),T=b.useRef(null);T.current={onPress:t,onPressChange:r,onPressStart:a,onPressEnd:s,onPressUp:l,isDisabled:u,shouldCancelOnPointerExit:$};let[V,D]=b.useState(!1),se=b.useRef({isPressed:!1,ignoreEmulatedMouseEvents:!1,ignoreClickAfterPress:!1,didFirePressStart:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null}),{addGlobalListener:w,removeAllGlobalListeners:k}=tt(),Ce=b.useMemo(()=>{let n=se.current,E=(i,v)=>{let{onPressStart:o,onPressChange:c,isDisabled:A}=T.current;A||n.didFirePressStart||(o&&o({type:"pressstart",pointerType:v,target:i.currentTarget,shiftKey:i.shiftKey,metaKey:i.metaKey,ctrlKey:i.ctrlKey,altKey:i.altKey}),c&&c(!0),n.didFirePressStart=!0,D(!0))},P=(i,v,o=!0)=>{let{onPressEnd:c,onPressChange:A,onPress:ie,isDisabled:Me}=T.current;!n.didFirePressStart||(n.ignoreClickAfterPress=!0,n.didFirePressStart=!1,c&&c({type:"pressend",pointerType:v,target:i.currentTarget,shiftKey:i.shiftKey,metaKey:i.metaKey,ctrlKey:i.ctrlKey,altKey:i.altKey}),A&&A(!1),D(!1),ie&&o&&!Me&&ie({type:"press",pointerType:v,target:i.currentTarget,shiftKey:i.shiftKey,metaKey:i.metaKey,ctrlKey:i.ctrlKey,altKey:i.altKey}))},F=(i,v)=>{let{onPressUp:o,isDisabled:c}=T.current;c||o&&o({type:"pressup",pointerType:v,target:i.currentTarget,shiftKey:i.shiftKey,metaKey:i.metaKey,ctrlKey:i.ctrlKey,altKey:i.altKey})},B=i=>{n.isPressed&&(n.isOverTarget&&P(h(n.target,i),n.pointerType,!1),n.isPressed=!1,n.isOverTarget=!1,n.activePointerId=null,n.pointerType=null,k(),m||z(n.target))},g={onKeyDown(i){W(i.nativeEvent,i.currentTarget)&&i.currentTarget.contains(i.target)?(be(i.target,i.key)&&i.preventDefault(),i.stopPropagation(),!n.isPressed&&!i.repeat&&(n.target=i.currentTarget,n.isPressed=!0,E(i,"keyboard"),w(document,"keyup",xe,!1))):i.key==="Enter"&&Q(i.currentTarget)&&i.stopPropagation()},onKeyUp(i){W(i.nativeEvent,i.currentTarget)&&!i.repeat&&i.currentTarget.contains(i.target)&&F(h(n.target,i),"keyboard")},onClick(i){i&&!i.currentTarget.contains(i.target)||i&&i.button===0&&(i.stopPropagation(),u&&i.preventDefault(),!n.ignoreClickAfterPress&&!n.ignoreEmulatedMouseEvents&&(n.pointerType==="virtual"||X(i.nativeEvent))&&(!u&&!d&&M(i.currentTarget),E(i,"virtual"),F(i,"virtual"),P(i,"virtual")),n.ignoreEmulatedMouseEvents=!1,n.ignoreClickAfterPress=!1)}},xe=i=>{if(n.isPressed&&W(i,n.target)){be(i.target,i.key)&&i.preventDefault(),i.stopPropagation(),n.isPressed=!1;let v=i.target;P(h(n.target,i),"keyboard",n.target.contains(v)),k(),n.target instanceof HTMLElement&&n.target.contains(v)&&(Q(n.target)||n.target.getAttribute("role")==="link")&&n.target.click()}};if(typeof PointerEvent<"u"){g.onPointerDown=c=>{if(!(c.button!==0||!c.currentTarget.contains(c.target))){if(st(c.nativeEvent)){n.pointerType="virtual";return}q(c.currentTarget)&&c.preventDefault(),n.pointerType=c.pointerType,c.stopPropagation(),n.isPressed||(n.isPressed=!0,n.isOverTarget=!0,n.activePointerId=c.pointerId,n.target=c.currentTarget,!u&&!d&&M(c.currentTarget),m||de(n.target),E(c,n.pointerType),w(document,"pointermove",i,!1),w(document,"pointerup",v,!1),w(document,"pointercancel",o,!1))}},g.onMouseDown=c=>{!c.currentTarget.contains(c.target)||c.button===0&&(q(c.currentTarget)&&c.preventDefault(),c.stopPropagation())},g.onPointerUp=c=>{!c.currentTarget.contains(c.target)||n.pointerType==="virtual"||c.button===0&&L(c,c.currentTarget)&&F(c,n.pointerType||c.pointerType)};let i=c=>{c.pointerId===n.activePointerId&&(L(c,n.target)?n.isOverTarget||(n.isOverTarget=!0,E(h(n.target,c),n.pointerType)):n.isOverTarget&&(n.isOverTarget=!1,P(h(n.target,c),n.pointerType,!1),T.current.shouldCancelOnPointerExit&&B(c)))},v=c=>{c.pointerId===n.activePointerId&&n.isPressed&&c.button===0&&(L(c,n.target)?P(h(n.target,c),n.pointerType):n.isOverTarget&&P(h(n.target,c),n.pointerType,!1),n.isPressed=!1,n.isOverTarget=!1,n.activePointerId=null,n.pointerType=null,k(),m||z(n.target))},o=c=>{B(c)};g.onDragStart=c=>{!c.currentTarget.contains(c.target)||B(c)}}else{g.onMouseDown=o=>{o.button!==0||!o.currentTarget.contains(o.target)||(q(o.currentTarget)&&o.preventDefault(),o.stopPropagation(),!n.ignoreEmulatedMouseEvents&&(n.isPressed=!0,n.isOverTarget=!0,n.target=o.currentTarget,n.pointerType=X(o.nativeEvent)?"virtual":"mouse",!u&&!d&&M(o.currentTarget),E(o,n.pointerType),w(document,"mouseup",i,!1)))},g.onMouseEnter=o=>{!o.currentTarget.contains(o.target)||(o.stopPropagation(),n.isPressed&&!n.ignoreEmulatedMouseEvents&&(n.isOverTarget=!0,E(o,n.pointerType)))},g.onMouseLeave=o=>{!o.currentTarget.contains(o.target)||(o.stopPropagation(),n.isPressed&&!n.ignoreEmulatedMouseEvents&&(n.isOverTarget=!1,P(o,n.pointerType,!1),T.current.shouldCancelOnPointerExit&&B(o)))},g.onMouseUp=o=>{!o.currentTarget.contains(o.target)||!n.ignoreEmulatedMouseEvents&&o.button===0&&F(o,n.pointerType)};let i=o=>{if(o.button===0){if(n.isPressed=!1,k(),n.ignoreEmulatedMouseEvents){n.ignoreEmulatedMouseEvents=!1;return}L(o,n.target)?P(h(n.target,o),n.pointerType):n.isOverTarget&&P(h(n.target,o),n.pointerType,!1),n.isOverTarget=!1}};g.onTouchStart=o=>{if(!o.currentTarget.contains(o.target))return;o.stopPropagation();let c=lt(o.nativeEvent);!c||(n.activePointerId=c.identifier,n.ignoreEmulatedMouseEvents=!0,n.isOverTarget=!0,n.isPressed=!0,n.target=o.currentTarget,n.pointerType="touch",!u&&!d&&M(o.currentTarget),m||de(n.target),E(o,n.pointerType),w(window,"scroll",v,!0))},g.onTouchMove=o=>{if(!o.currentTarget.contains(o.target)||(o.stopPropagation(),!n.isPressed))return;let c=pe(o.nativeEvent,n.activePointerId);c&&L(c,o.currentTarget)?n.isOverTarget||(n.isOverTarget=!0,E(o,n.pointerType)):n.isOverTarget&&(n.isOverTarget=!1,P(o,n.pointerType,!1),T.current.shouldCancelOnPointerExit&&B(o))},g.onTouchEnd=o=>{if(!o.currentTarget.contains(o.target)||(o.stopPropagation(),!n.isPressed))return;let c=pe(o.nativeEvent,n.activePointerId);c&&L(c,o.currentTarget)?(F(o,n.pointerType),P(o,n.pointerType)):n.isOverTarget&&P(o,n.pointerType,!1),n.isPressed=!1,n.activePointerId=null,n.isOverTarget=!1,n.ignoreEmulatedMouseEvents=!0,m||z(n.target),k()},g.onTouchCancel=o=>{!o.currentTarget.contains(o.target)||(o.stopPropagation(),n.isPressed&&B(o))};let v=o=>{n.isPressed&&o.target.contains(n.target)&&B({currentTarget:n.target,shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1})};g.onDragStart=o=>{!o.currentTarget.contains(o.target)||B(o)}}return g},[w,u,d,k,m]);return b.useEffect(()=>()=>{m||z(se.current.target)},[m]),{isPressed:f||V,pressProps:K(G,Ce)}}function Q(e){return e.tagName==="A"&&e.hasAttribute("href")}function W(e,t){const{key:r,code:a}=e,s=t,l=s.getAttribute("role");return(r==="Enter"||r===" "||r==="Spacebar"||a==="Space")&&!(s instanceof HTMLInputElement&&!Le(s,r)||s instanceof HTMLTextAreaElement||s.isContentEditable)&&(!Q(s)||l==="button"&&r!=="Enter")&&!(l==="link"&&r!=="Enter")}function lt(e){const{targetTouches:t}=e;return t.length>0?t[0]:null}function pe(e,t){const r=e.changedTouches;for(let a=0;a<r.length;a++){const s=r[a];if(s.identifier===t)return s}return null}function h(e,t){return{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey}}function ut(e){let t=e.width/2||e.radiusX||0,r=e.height/2||e.radiusY||0;return{top:e.clientY-r,right:e.clientX+t,bottom:e.clientY+r,left:e.clientX-t}}function ft(e,t){return!(e.left>t.right||t.left>e.right||e.top>t.bottom||t.top>e.bottom)}function L(e,t){let r=t.getBoundingClientRect(),a=ut(e);return ft(r,a)}function q(e){return!(e instanceof HTMLElement)||!e.draggable}function be(e,t){return e instanceof HTMLInputElement?!Le(e,t):e instanceof HTMLButtonElement?e.type!=="submit":!0}const dt=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function Le(e,t){return e.type==="checkbox"||e.type==="radio"?t===" ":dt.has(e.type)}class pt{isDefaultPrevented(){return this.nativeEvent.defaultPrevented}preventDefault(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}stopPropagation(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=()=>!0}isPropagationStopped(){return!1}persist(){}constructor(t,r){this.nativeEvent=r,this.target=r.target,this.currentTarget=r.currentTarget,this.relatedTarget=r.relatedTarget,this.bubbles=r.bubbles,this.cancelable=r.cancelable,this.defaultPrevented=r.defaultPrevented,this.eventPhase=r.eventPhase,this.isTrusted=r.isTrusted,this.timeStamp=r.timeStamp,this.type=t}}function bt(e){let t=b.useRef({isFocused:!1,onBlur:e,observer:null});return t.current.onBlur=e,he(()=>{const r=t.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]),b.useCallback(r=>{if(r.target instanceof HTMLButtonElement||r.target instanceof HTMLInputElement||r.target instanceof HTMLTextAreaElement||r.target instanceof HTMLSelectElement){t.current.isFocused=!0;let a=r.target,s=l=>{var u,f;t.current.isFocused=!1,a.disabled&&((f=(u=t.current).onBlur)===null||f===void 0||f.call(u,new pt("blur",l))),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};a.addEventListener("focusout",s,{once:!0}),t.current.observer=new MutationObserver(()=>{t.current.isFocused&&a.disabled&&(t.current.observer.disconnect(),a.dispatchEvent(new FocusEvent("blur")),a.dispatchEvent(new FocusEvent("focusout",{bubbles:!0})))}),t.current.observer.observe(a,{attributes:!0,attributeFilter:["disabled"]})}},[])}function gt(e){let{isDisabled:t,onFocus:r,onBlur:a,onFocusChange:s}=e;const l=b.useCallback(d=>{if(d.target===d.currentTarget)return a&&a(d),s&&s(!1),!0},[a,s]),u=bt(l),f=b.useCallback(d=>{d.target===d.currentTarget&&(r&&r(d),s&&s(!0),u(d))},[s,r,u]);return{focusProps:{onFocus:!t&&(r||s||a)?f:void 0,onBlur:!t&&(a||s)?l:null}}}let N=null,vt=new Set,ge=!1,S=!1,Z=!1;function re(e,t){for(let r of vt)r(e,t)}function mt(e){return!(e.metaKey||!we()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function ve(e){S=!0,mt(e)&&(N="keyboard",re("keyboard",e))}function C(e){N="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(S=!0,re("pointer",e))}function Pt(e){X(e)&&(S=!0,N="virtual")}function yt(e){e.target===window||e.target===document||(!S&&!Z&&(N="virtual",re("virtual",e)),S=!1,Z=!1)}function $t(){S=!1,Z=!0}function me(){if(typeof window>"u"||ge)return;let e=HTMLElement.prototype.focus;HTMLElement.prototype.focus=function(){S=!0,e.apply(this,arguments)},document.addEventListener("keydown",ve,!0),document.addEventListener("keyup",ve,!0),document.addEventListener("click",Pt,!0),window.addEventListener("focus",yt,!0),window.addEventListener("blur",$t,!1),typeof PointerEvent<"u"?(document.addEventListener("pointerdown",C,!0),document.addEventListener("pointermove",C,!0),document.addEventListener("pointerup",C,!0)):(document.addEventListener("mousedown",C,!0),document.addEventListener("mousemove",C,!0),document.addEventListener("mouseup",C,!0)),ge=!0}typeof document<"u"&&(document.readyState!=="loading"?me():document.addEventListener("DOMContentLoaded",me));function Tt(){return N}function Pe(e){if(!e)return;let t=!0;return r=>{let a={...r,preventDefault(){r.preventDefault()},isDefaultPrevented(){return r.isDefaultPrevented()},stopPropagation(){console.error("stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.")},continuePropagation(){t=!1}};e(a),t&&r.stopPropagation()}}function ht(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:Pe(e.onKeyDown),onKeyUp:Pe(e.onKeyUp)}}}function Et(e){if(Tt()==="virtual"){let t=document.activeElement;Ee(()=>{document.activeElement===t&&document.contains(e)&&M(e)})}else M(e)}function Bt(e,t){return t.some(r=>r.contains(e))}class ne{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,r,a){let s=this.fastMap.get(r!=null?r:null),l=new ye({scopeRef:t});s.addChild(l),l.parent=s,this.fastMap.set(t,l),a&&(l.nodeToRestore=a)}removeTreeNode(t){if(t===null)return;let r=this.fastMap.get(t),a=r.parent;for(let l of this.traverse())l!==r&&r.nodeToRestore&&l.nodeToRestore&&r.scopeRef.current&&Bt(l.nodeToRestore,r.scopeRef.current)&&(l.nodeToRestore=r.nodeToRestore);let s=r.children;a.removeChild(r),s.length>0&&s.forEach(l=>a.addChild(l)),this.fastMap.delete(r.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.length>0)for(let r of t.children)yield*this.traverse(r)}clone(){let t=new ne;for(let r of this.traverse())t.addTreeNode(r.scopeRef,r.parent.scopeRef,r.nodeToRestore);return t}constructor(){this.fastMap=new Map,this.root=new ye({scopeRef:null}),this.fastMap.set(null,this.root)}}class ye{addChild(t){this.children.push(t),t.parent=this}removeChild(t){this.children.splice(this.children.indexOf(t),1),t.parent=void 0}constructor(t){this.children=[],this.contain=!1,this.scopeRef=t.scopeRef}}new ne;let wt=ee.default.createContext(null);function St(e){let t=b.useContext(wt)||{};Be(t,e);let{ref:r,...a}=t;return a}function kt(e,t){let{focusProps:r}=gt(e),{keyboardProps:a}=ht(e),s=K(r,a),l=St(t),u=e.isDisabled?{}:l,f=b.useRef(e.autoFocus);return b.useEffect(()=>{f.current&&t.current&&Et(t.current),f.current=!1},[t]),{focusableProps:K({...s,tabIndex:e.excludeFromTabOrder&&!e.isDisabled?-1:void 0},u)}}function Lt(e,t){let{elementType:r="a",onPress:a,onPressStart:s,onPressEnd:l,onClick:u,isDisabled:f,...d}=e,$;r!=="a"&&($={role:"link",tabIndex:f?void 0:0});let{focusableProps:m}=kt(e,t),{pressProps:j,isPressed:G}=ct({onPress:a,onPressStart:s,onPressEnd:l,isDisabled:f,ref:t}),T=Je(d,{labelable:!0}),V=K(m,j);return{isPressed:G,linkProps:K(T,{...V,...$,"aria-disabled":f||void 0,onClick:D=>{j.onClick(D),u&&(u(D),console.warn("onClick is deprecated, please use onPress"))}})}}function H(e){let t=p.useRef(null),{linkProps:r}=Lt(e,t);const a={...r,ref:t,className:y.cl(Ne({active:e.active,disabled:!1}),e.className)};return p.createElement(p.Fragment,null,e.href?p.createElement("a",{...a,href:e.href},e.children):p.createElement("span",{...a},e.children))}y.Metadata.set(H,{name:"Product Bar Tab",props:{active:{type:"boolean",required:!0},href:{type:"string"}}});function U({children:e,className:t,name:r,logoSrc:a,...s}){return p.createElement(p.Fragment,null,p.createElement("a",{className:y.cl(Re,t),...s},a&&p.createElement("img",{className:ze,src:a,"aria-hidden":"true",alt:`${r} Logo`}),r&&p.createElement("span",{className:Ie},r)),p.createElement("span",{className:je}))}y.Metadata.set(U,{name:"Product Bar Name",props:{name:{type:"string"},logoSrc:{type:"string"}}});function ae({fullWidth:e,children:t,className:r,...a}){const s=p.useRef(null),[l,u,f]=y.selectChildren(t,[{type:U},{type:H}]);return p.createElement("div",{className:y.cl(_e,r),...a,ref:s},p.createElement("nav",{className:Ae({fullWidth:e})},l,p.createElement("div",{className:Ue},u),p.createElement("div",{className:He},p.createElement(y.PortalContext.Provider,{value:{parentElementRef:s,fixed:!0}},f))))}y.Metadata.set(ae,{name:"ProductBar",props:{fullWidth:{type:"boolean"}}});var Ct="r7f8id0",xt="r7f8id1";function oe({channelId:e,className:t,...r}){const{t:a}=p.useContext(y.I18nContext);return p.createElement("a",{className:y.cl(Ct,t),target:"_blank",rel:"noreferrer",href:`https://spscommerce.slack.com/archives/${e}`,...r},p.createElement(y.Icon,{className:xt,icon:"conversation","aria-hidden":"true"}),p.createElement("span",null,a("design-system:slackLink.label")))}y.Metadata.set(oe,{name:"Slack Link",props:{channelId:{type:"string",required:!0}}});const Mt={components:[ae,U,H],examples:{basic:{label:"Basic",description:"Product navigation bar",examples:{basic:{react:I.code`
2
+ import { ProductBar, ProductBarName, ProductBarTab } from "@sps-woodland/product-bar";
3
+ import { SpsButton } from "@spscommerce/ds-react";
4
+
5
+ function Component() {
6
+ const [activeTab, setActiveTab] = React.useState("Bar");
7
+
8
+ return (
9
+ <ProductBar
10
+ fullWidth
11
+ style={{ position: "relative", zIndex: "auto" }} // display this example in its place instead of at the top
12
+ >
13
+ <ProductBarName
14
+ name="My Product"
15
+ logoSrc="https://cdn.prod.spsc.io/web/framework/assets/17.08.01/icons/cube/cube.svg"
16
+ />
17
+ <ProductBarTab
18
+ active={activeTab === "Foo"}
19
+ onPress={() => {
20
+ setActiveTab("Foo");
21
+ console.log("Foo!");
22
+ }}
23
+ >
24
+ Foo
25
+ </ProductBarTab>
26
+ <ProductBarTab
27
+ active={activeTab === "Bar"}
28
+ onPress={() => {
29
+ setActiveTab("Bar");
30
+ console.log("Bar!");
31
+ }}
32
+ >
33
+ Bar
34
+ </ProductBarTab>
35
+ <ProductBarTab
36
+ active={activeTab === "Baz"}
37
+ onPress={() => {
38
+ setActiveTab("Baz");
39
+ console.log("Baz!");
40
+ }}
41
+ >
42
+ Baz
43
+ </ProductBarTab>
44
+ <SpsButton>do the thing</SpsButton>
45
+ </ProductBar>
46
+ )
47
+ }
48
+ `}}},action:{label:"Action",examples:{basic:{react:I.code`
49
+ import { ProductBar, ProductBarName, ProductBarTab } from "@sps-woodland/product-bar";
50
+ import { SpsButton } from "@spscommerce/ds-react";
51
+
52
+ function Component() {
53
+ const [activeTab, setActiveTab] = React.useState("Bar");
54
+
55
+ return (
56
+ <ProductBar
57
+ fullWidth
58
+ style={{ position: "relative", zIndex: "auto" }} // display this example in its place instead of at the top
59
+ >
60
+ <ProductBarName
61
+ name="My Product"
62
+ logoSrc="https://cdn.prod.spsc.io/web/framework/assets/17.08.01/icons/cube/cube.svg"
63
+ onClick={() => console.log("product name clicked")}
64
+ />
65
+ <ProductBarTab
66
+ active={activeTab === "Foo"}
67
+ onPress={() => {
68
+ setActiveTab("Foo");
69
+ console.log("Foo!");
70
+ }}
71
+ >
72
+ Foo
73
+ </ProductBarTab>
74
+ <ProductBarTab
75
+ active={activeTab === "Bar"}
76
+ onPress={() => {
77
+ setActiveTab("Bar");
78
+ console.log("Bar!");
79
+ }}
80
+ >
81
+ Bar
82
+ </ProductBarTab>
83
+ <ProductBarTab
84
+ active={activeTab === "Baz"}
85
+ onPress={() => {
86
+ setActiveTab("Baz");
87
+ console.log("Baz!");
88
+ }}
89
+ >
90
+ Baz
91
+ </ProductBarTab>
92
+ <SpsButton>do the thing</SpsButton>
93
+ </ProductBar>
94
+ )
95
+ }
96
+ `}}},link:{label:"Link",examples:{basic:{react:I.code`
97
+ import { ProductBar, ProductBarName, ProductBarTab } from "@sps-woodland/product-bar";
98
+ import { SpsButton } from "@spscommerce/ds-react";
99
+
100
+ function Component() {
101
+ const [activeTab, setActiveTab] = React.useState("Bar");
102
+
103
+ return (
104
+ <ProductBar
105
+ fullWidth
106
+ style={{ position: "relative", zIndex: "auto" }} // display this example in its place instead of at the top
107
+ >
108
+ <ProductBarName
109
+ name="My Product"
110
+ logoSrc="https://cdn.prod.spsc.io/web/framework/assets/17.08.01/icons/cube/cube.svg"
111
+ href="https://www.google.com"
112
+ />
113
+ <ProductBarTab
114
+ active={activeTab === "Foo"}
115
+ onPress={() => {
116
+ setActiveTab("Foo");
117
+ console.log("Foo!");
118
+ }}
119
+ >
120
+ Foo
121
+ </ProductBarTab>
122
+ <ProductBarTab
123
+ active={activeTab === "Bar"}
124
+ onPress={() => {
125
+ setActiveTab("Bar");
126
+ console.log("Bar!");
127
+ }}
128
+ >
129
+ Bar
130
+ </ProductBarTab>
131
+ <ProductBarTab
132
+ active={activeTab === "Baz"}
133
+ onPress={() => {
134
+ setActiveTab("Baz");
135
+ console.log("Baz!");
136
+ }}
137
+ >
138
+ Baz
139
+ </ProductBarTab>
140
+ <SpsButton>do the thing</SpsButton>
141
+ </ProductBar>
142
+ )
143
+ }
144
+ `}}}}},Ot={components:[oe],examples:{basic:{examples:{basic:{react:I.code`
145
+ import { SlackLink } from "@sps-woodland/slack-link";
146
+ import { ProductBar } from "@sps-woodland/product-bar";
147
+
148
+ function Component() {
149
+ return (
150
+ <ProductBar productName="My Product"
151
+ productLogoSrc="https://cdn.prod.spsc.io/web/framework/assets/17.08.01/icons/cube/cube.svg"
152
+ tabs={["Foo", "Bar", "Baz"]}
153
+ activeTab="Bar"
154
+ fullWidth
155
+ style={{ position: "relative" }} // display this example in its place instead of at the top
156
+ ><SlackLink channelId="CELEGDK4Y" /></ProductBar>
157
+ );
158
+ }
159
+ `}}}}},Kt={"Product Bar":Mt,"Slack Link":Ot};exports.MANIFEST=Kt;exports.ProductBar=ae;exports.ProductBarName=U;exports.ProductBarTab=H;exports.SlackLink=oe;
package/lib/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export * from "./product-bar/ProductBar";
2
+ export * from "./product-bar-tab/ProductBarTab";
3
+ export * from "./product-bar-name/ProductBarName";
4
+ export * from "./slack-link/SlackLink";
5
+ export * from "./manifest";