@sps-woodland/buttons 8.2.2 → 8.3.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 +2 -2
- package/lib/index.es.js +507 -506
- package/lib/style.css +1 -1
- package/package.json +5 -5
package/lib/index.cjs.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const v=require("react"),W=require("@sps-woodland/core"),g=require("@spscommerce/utils"),Re=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function Ue(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const ce=Re(v),d=Ue(v);function De(e){var t,n,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=De(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function Ve(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=De(e))&&(o&&(o+=" "),o+=t);return o}const ue=typeof document<"u"?ce.default.useLayoutEffect:()=>{};function R(e){const t=v.useRef(null);return ue(()=>{t.current=e},[e]),v.useCallback((...n)=>{const o=t.current;return o(...n)},[])}let ge=new Map;function Ge(e,t){if(e===t)return e;let n=ge.get(e);if(n)return n(t),t;let o=ge.get(t);return o?(o(e),e):t}function We(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}const D=e=>{var t;return(t=e==null?void 0:e.ownerDocument)!==null&&t!==void 0?t:document},oe=e=>e&&"window"in e&&e.window===e?e:D(e).defaultView||window;function G(...e){let t={...e[0]};for(let n=1;n<e.length;n++){let o=e[n];for(let s in o){let u=t[s],c=o[s];typeof u=="function"&&typeof c=="function"&&s[0]==="o"&&s[1]==="n"&&s.charCodeAt(2)>=65&&s.charCodeAt(2)<=90?t[s]=We(u,c):(s==="className"||s==="UNSAFE_className")&&typeof u=="string"&&typeof c=="string"?t[s]=Ve(u,c):s==="id"&&u&&c?t.id=Ge(u,c):t[s]=c!==void 0?c:u}}return t}const He=new Set(["id"]),je=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),ze=new Set(["href","target","rel","download","ping","referrerPolicy"]),Ye=/^(data-.*)$/;function qe(e,t={}){let{labelable:n,isLink:o,propNames:s}=t,u={};for(const c in e)Object.prototype.hasOwnProperty.call(e,c)&&(He.has(c)||n&&je.has(c)||o&&ze.has(c)||(s==null?void 0:s.has(c))||Ye.test(c))&&(u[c]=e[c]);return u}function K(e){if(Xe())e.focus({preventScroll:!0});else{let t=Je(e);e.focus(),Qe(t)}}let q=null;function Xe(){if(q==null){q=!1;try{var e=document.createElement("div");e.focus({get preventScroll(){return q=!0,!0}})}catch{}}return q}function Je(e){for(var t=e.parentNode,n=[],o=document.scrollingElement||document.documentElement;t instanceof HTMLElement&&t!==o;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&n.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return o instanceof HTMLElement&&n.push({element:o,scrollTop:o.scrollTop,scrollLeft:o.scrollLeft}),n}function Qe(e){for(let{element:t,scrollTop:n,scrollLeft:o}of e)t.scrollTop=n,t.scrollLeft=o}function ee(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(n=>e.test(n.brand)))||e.test(window.navigator.userAgent)}function de(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 H(){return de(/^Mac/i)}function Ze(){return de(/^iPhone/i)}function Oe(){return de(/^iPad/i)||H()&&navigator.maxTouchPoints>1}function Ce(){return Ze()||Oe()}function et(){return ee(/AppleWebKit/i)&&!tt()}function tt(){return ee(/Chrome/i)}function _e(){return ee(/Android/i)}function nt(){return ee(/Firefox/i)}function j(e,t,n=!0){var o,s;let{metaKey:u,ctrlKey:c,altKey:m,shiftKey:p}=t;nt()&&((s=window.event)===null||s===void 0||(o=s.type)===null||o===void 0?void 0:o.startsWith("key"))&&e.target==="_blank"&&(H()?u=!0:c=!0);let h=et()&&H()&&!Oe()?new KeyboardEvent("keydown",{keyIdentifier:"Enter",metaKey:u,ctrlKey:c,altKey:m,shiftKey:p}):new MouseEvent("click",{metaKey:u,ctrlKey:c,altKey:m,shiftKey:p,bubbles:!0,cancelable:!0});j.isOpening=n,K(e),e.dispatchEvent(h),j.isOpening=!1}j.isOpening=!1;let U=new Map,se=new Set;function ve(){if(typeof window>"u")return;let e=n=>{let o=U.get(n.target);o||(o=new Set,U.set(n.target,o),n.target.addEventListener("transitioncancel",t)),o.add(n.propertyName)},t=n=>{let o=U.get(n.target);if(!!o&&(o.delete(n.propertyName),o.size===0&&(n.target.removeEventListener("transitioncancel",t),U.delete(n.target)),U.size===0)){for(let s of se)s();se.clear()}};document.body.addEventListener("transitionrun",e),document.body.addEventListener("transitionend",t)}typeof document<"u"&&(document.readyState!=="loading"?ve():document.addEventListener("DOMContentLoaded",ve));function Ke(e){requestAnimationFrame(()=>{U.size===0?e():se.add(e)})}function rt(){let e=v.useRef(new Map),t=v.useCallback((s,u,c,m)=>{let p=m!=null&&m.once?(...h)=>{e.current.delete(c),c(...h)}:c;e.current.set(c,{type:u,eventTarget:s,fn:p,options:m}),s.addEventListener(u,c,m)},[]),n=v.useCallback((s,u,c,m)=>{var p;let h=((p=e.current.get(c))===null||p===void 0?void 0:p.fn)||c;s.removeEventListener(u,h,m),e.current.delete(c)},[]),o=v.useCallback(()=>{e.current.forEach((s,u)=>{n(s.eventTarget,s.type,u,s.options)})},[n]);return v.useEffect(()=>o,[o]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:o}}function Le(e,t){ue(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref.current=null}})}function ae(e){return e.mozInputSource===0&&e.isTrusted?!0:_e()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function ot(e){return!_e()&&e.width===0&&e.height===0||e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"}function st(e,t){return t.get?t.get.call(e):t.value}function Ie(e,t,n){if(!t.has(e))throw new TypeError("attempted to "+n+" private field on non-instance");return t.get(e)}function at(e,t){var n=Ie(e,t,"get");return st(e,n)}function it(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function lt(e,t,n){it(e,t),t.set(e,n)}function ct(e,t,n){if(t.set)t.set.call(e,n);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=n}}function ye(e,t,n){var o=Ie(e,t,"set");return ct(e,o,n),n}let V="default",ie="",Z=new WeakMap;function he(e){if(Ce()){if(V==="default"){const t=D(e);ie=t.documentElement.style.webkitUserSelect,t.documentElement.style.webkitUserSelect="none"}V="disabled"}else(e instanceof HTMLElement||e instanceof SVGElement)&&(Z.set(e,e.style.userSelect),e.style.userSelect="none")}function X(e){if(Ce()){if(V!=="disabled")return;V="restoring",setTimeout(()=>{Ke(()=>{if(V==="restoring"){const t=D(e);t.documentElement.style.webkitUserSelect==="none"&&(t.documentElement.style.webkitUserSelect=ie||""),ie="",V="default"}})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&Z.has(e)){let t=Z.get(e);e.style.userSelect==="none"&&t&&(e.style.userSelect=t),e.getAttribute("style")===""&&e.removeAttribute("style"),Z.delete(e)}}const Me=ce.default.createContext({register:()=>{}});Me.displayName="PressResponderContext";function ut(e){let t=v.useContext(Me);if(t){let{register:n,...o}=t;e=G(o,e),n()}return Le(t,e.ref),e}var J=new WeakMap;class Q{continuePropagation(){ye(this,J,!1)}get shouldStopPropagation(){return at(this,J)}constructor(t,n,o){lt(this,J,{writable:!0,value:void 0}),ye(this,J,!0),this.type=t,this.pointerType=n,this.target=o.currentTarget,this.shiftKey=o.shiftKey,this.metaKey=o.metaKey,this.ctrlKey=o.ctrlKey,this.altKey=o.altKey}}const $e=Symbol("linkClicked");function dt(e){let{onPress:t,onPressChange:n,onPressStart:o,onPressEnd:s,onPressUp:u,isDisabled:c,isPressed:m,preventFocusOnPress:p,shouldCancelOnPointerExit:h,allowTextSelectionOnPress:k,ref:I,...O}=ut(e),[C,M]=v.useState(!1),P=v.useRef({isPressed:!1,ignoreEmulatedMouseEvents:!1,ignoreClickAfterPress:!1,didFirePressStart:!1,isTriggeringEvent:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null}),{addGlobalListener:w,removeAllGlobalListeners:S}=rt(),T=R((r,f)=>{let x=P.current;if(c||x.didFirePressStart)return!1;let l=!0;if(x.isTriggeringEvent=!0,o){let b=new Q("pressstart",f,r);o(b),l=b.shouldStopPropagation}return n&&n(!0),x.isTriggeringEvent=!1,x.didFirePressStart=!0,M(!0),l}),y=R((r,f,x=!0)=>{let l=P.current;if(!l.didFirePressStart)return!1;l.ignoreClickAfterPress=!0,l.didFirePressStart=!1,l.isTriggeringEvent=!0;let b=!0;if(s){let a=new Q("pressend",f,r);s(a),b=a.shouldStopPropagation}if(n&&n(!1),M(!1),t&&x&&!c){let a=new Q("press",f,r);t(a),b&&(b=a.shouldStopPropagation)}return l.isTriggeringEvent=!1,b}),B=R((r,f)=>{let x=P.current;if(c)return!1;if(u){x.isTriggeringEvent=!0;let l=new Q("pressup",f,r);return u(l),x.isTriggeringEvent=!1,l.shouldStopPropagation}return!0}),E=R(r=>{let f=P.current;f.isPressed&&f.target&&(f.isOverTarget&&f.pointerType!=null&&y(N(f.target,r),f.pointerType,!1),f.isPressed=!1,f.isOverTarget=!1,f.activePointerId=null,f.pointerType=null,S(),k||X(f.target))}),_=R(r=>{h&&E(r)}),Fe=v.useMemo(()=>{let r=P.current,f={onKeyDown(l){if(ne(l.nativeEvent,l.currentTarget)&&l.currentTarget.contains(l.target)){var b;we(l.target,l.key)&&l.preventDefault();let a=!0;!r.isPressed&&!l.repeat&&(r.target=l.currentTarget,r.isPressed=!0,a=T(l,"keyboard"),w(D(l.currentTarget),"keyup",x,!1)),a&&l.stopPropagation(),l.metaKey&&H()&&((b=r.metaKeyEvents)===null||b===void 0||b.set(l.key,l.nativeEvent))}else l.key==="Meta"&&(r.metaKeyEvents=new Map)},onKeyUp(l){ne(l.nativeEvent,l.currentTarget)&&!l.repeat&&l.currentTarget.contains(l.target)&&r.target&&B(N(r.target,l),"keyboard")},onClick(l){if(!(l&&!l.currentTarget.contains(l.target))&&l&&l.button===0&&!r.isTriggeringEvent&&!j.isOpening){let b=!0;if(c&&l.preventDefault(),!r.ignoreClickAfterPress&&!r.ignoreEmulatedMouseEvents&&!r.isPressed&&(r.pointerType==="virtual"||ae(l.nativeEvent))){!c&&!p&&K(l.currentTarget);let a=T(l,"virtual"),i=B(l,"virtual"),$=y(l,"virtual");b=a&&i&&$}r.ignoreEmulatedMouseEvents=!1,r.ignoreClickAfterPress=!1,b&&l.stopPropagation()}}},x=l=>{var b;if(r.isPressed&&r.target&&ne(l,r.target)){var a;we(l.target,l.key)&&l.preventDefault();let $=l.target,te=y(N(r.target,l),"keyboard",r.target.contains($));S(),te&&l.stopPropagation(),l.key!=="Enter"&&pe(r.target)&&r.target.contains($)&&!l[$e]&&(l[$e]=!0,j(r.target,l,!1)),r.isPressed=!1,(a=r.metaKeyEvents)===null||a===void 0||a.delete(l.key)}else if(l.key==="Meta"&&((b=r.metaKeyEvents)===null||b===void 0?void 0:b.size)){var i;let $=r.metaKeyEvents;r.metaKeyEvents=void 0;for(let te of $.values())(i=r.target)===null||i===void 0||i.dispatchEvent(new KeyboardEvent("keyup",te))}};if(typeof PointerEvent<"u"){f.onPointerDown=i=>{if(i.button!==0||!i.currentTarget.contains(i.target))return;if(ot(i.nativeEvent)){r.pointerType="virtual";return}re(i.currentTarget)&&i.preventDefault(),r.pointerType=i.pointerType;let $=!0;r.isPressed||(r.isPressed=!0,r.isOverTarget=!0,r.activePointerId=i.pointerId,r.target=i.currentTarget,!c&&!p&&K(i.currentTarget),k||he(r.target),$=T(i,r.pointerType),w(D(i.currentTarget),"pointermove",l,!1),w(D(i.currentTarget),"pointerup",b,!1),w(D(i.currentTarget),"pointercancel",a,!1)),$&&i.stopPropagation()},f.onMouseDown=i=>{!i.currentTarget.contains(i.target)||i.button===0&&(re(i.currentTarget)&&i.preventDefault(),i.stopPropagation())},f.onPointerUp=i=>{!i.currentTarget.contains(i.target)||r.pointerType==="virtual"||i.button===0&&A(i,i.currentTarget)&&B(i,r.pointerType||i.pointerType)};let l=i=>{i.pointerId===r.activePointerId&&(r.target&&A(i,r.target)?!r.isOverTarget&&r.pointerType!=null&&(r.isOverTarget=!0,T(N(r.target,i),r.pointerType)):r.target&&r.isOverTarget&&r.pointerType!=null&&(r.isOverTarget=!1,y(N(r.target,i),r.pointerType,!1),_(i)))},b=i=>{i.pointerId===r.activePointerId&&r.isPressed&&i.button===0&&r.target&&(A(i,r.target)&&r.pointerType!=null?y(N(r.target,i),r.pointerType):r.isOverTarget&&r.pointerType!=null&&y(N(r.target,i),r.pointerType,!1),r.isPressed=!1,r.isOverTarget=!1,r.activePointerId=null,r.pointerType=null,S(),k||X(r.target))},a=i=>{E(i)};f.onDragStart=i=>{!i.currentTarget.contains(i.target)||E(i)}}else{f.onMouseDown=a=>{if(a.button!==0||!a.currentTarget.contains(a.target))return;if(re(a.currentTarget)&&a.preventDefault(),r.ignoreEmulatedMouseEvents){a.stopPropagation();return}r.isPressed=!0,r.isOverTarget=!0,r.target=a.currentTarget,r.pointerType=ae(a.nativeEvent)?"virtual":"mouse",!c&&!p&&K(a.currentTarget),T(a,r.pointerType)&&a.stopPropagation(),w(D(a.currentTarget),"mouseup",l,!1)},f.onMouseEnter=a=>{if(!a.currentTarget.contains(a.target))return;let i=!0;r.isPressed&&!r.ignoreEmulatedMouseEvents&&r.pointerType!=null&&(r.isOverTarget=!0,i=T(a,r.pointerType)),i&&a.stopPropagation()},f.onMouseLeave=a=>{if(!a.currentTarget.contains(a.target))return;let i=!0;r.isPressed&&!r.ignoreEmulatedMouseEvents&&r.pointerType!=null&&(r.isOverTarget=!1,i=y(a,r.pointerType,!1),_(a)),i&&a.stopPropagation()},f.onMouseUp=a=>{!a.currentTarget.contains(a.target)||!r.ignoreEmulatedMouseEvents&&a.button===0&&B(a,r.pointerType||"mouse")};let l=a=>{if(a.button===0){if(r.isPressed=!1,S(),r.ignoreEmulatedMouseEvents){r.ignoreEmulatedMouseEvents=!1;return}r.target&&A(a,r.target)&&r.pointerType!=null?y(N(r.target,a),r.pointerType):r.target&&r.isOverTarget&&r.pointerType!=null&&y(N(r.target,a),r.pointerType,!1),r.isOverTarget=!1}};f.onTouchStart=a=>{if(!a.currentTarget.contains(a.target))return;let i=pt(a.nativeEvent);if(!i)return;r.activePointerId=i.identifier,r.ignoreEmulatedMouseEvents=!0,r.isOverTarget=!0,r.isPressed=!0,r.target=a.currentTarget,r.pointerType="touch",!c&&!p&&K(a.currentTarget),k||he(r.target),T(a,r.pointerType)&&a.stopPropagation(),w(oe(a.currentTarget),"scroll",b,!0)},f.onTouchMove=a=>{if(!a.currentTarget.contains(a.target))return;if(!r.isPressed){a.stopPropagation();return}let i=ke(a.nativeEvent,r.activePointerId),$=!0;i&&A(i,a.currentTarget)?!r.isOverTarget&&r.pointerType!=null&&(r.isOverTarget=!0,$=T(a,r.pointerType)):r.isOverTarget&&r.pointerType!=null&&(r.isOverTarget=!1,$=y(a,r.pointerType,!1),_(a)),$&&a.stopPropagation()},f.onTouchEnd=a=>{if(!a.currentTarget.contains(a.target))return;if(!r.isPressed){a.stopPropagation();return}let i=ke(a.nativeEvent,r.activePointerId),$=!0;i&&A(i,a.currentTarget)&&r.pointerType!=null?(B(a,r.pointerType),$=y(a,r.pointerType)):r.isOverTarget&&r.pointerType!=null&&($=y(a,r.pointerType,!1)),$&&a.stopPropagation(),r.isPressed=!1,r.activePointerId=null,r.isOverTarget=!1,r.ignoreEmulatedMouseEvents=!0,r.target&&!k&&X(r.target),S()},f.onTouchCancel=a=>{!a.currentTarget.contains(a.target)||(a.stopPropagation(),r.isPressed&&E(a))};let b=a=>{r.isPressed&&a.target.contains(r.target)&&E({currentTarget:r.target,shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1})};f.onDragStart=a=>{!a.currentTarget.contains(a.target)||E(a)}}return f},[w,c,p,S,k,E,_,y,T,B]);return v.useEffect(()=>()=>{var r;k||X((r=P.current.target)!==null&&r!==void 0?r:void 0)},[k]),{isPressed:m||C,pressProps:G(O,Fe)}}function pe(e){return e.tagName==="A"&&e.hasAttribute("href")}function ne(e,t){const{key:n,code:o}=e,s=t,u=s.getAttribute("role");return(n==="Enter"||n===" "||n==="Spacebar"||o==="Space")&&!(s instanceof oe(s).HTMLInputElement&&!Ae(s,n)||s instanceof oe(s).HTMLTextAreaElement||s.isContentEditable)&&!((u==="link"||!u&&pe(s))&&n!=="Enter")}function pt(e){const{targetTouches:t}=e;return t.length>0?t[0]:null}function ke(e,t){const n=e.changedTouches;for(let o=0;o<n.length;o++){const s=n[o];if(s.identifier===t)return s}return null}function N(e,t){return{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey}}function ft(e){let t=0,n=0;return e.width!==void 0?t=e.width/2:e.radiusX!==void 0&&(t=e.radiusX),e.height!==void 0?n=e.height/2:e.radiusY!==void 0&&(n=e.radiusY),{top:e.clientY-n,right:e.clientX+t,bottom:e.clientY+n,left:e.clientX-t}}function mt(e,t){return!(e.left>t.right||t.left>e.right||e.top>t.bottom||t.top>e.bottom)}function A(e,t){let n=t.getBoundingClientRect(),o=ft(e);return mt(n,o)}function re(e){return!(e instanceof HTMLElement)||!e.hasAttribute("draggable")}function we(e,t){return e instanceof HTMLInputElement?!Ae(e,t):e instanceof HTMLButtonElement?e.type!=="submit"&&e.type!=="reset":!pe(e)}const bt=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function Ae(e,t){return e.type==="checkbox"||e.type==="radio"?t===" ":bt.has(e.type)}class gt{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,n){this.nativeEvent=n,this.target=n.target,this.currentTarget=n.currentTarget,this.relatedTarget=n.relatedTarget,this.bubbles=n.bubbles,this.cancelable=n.cancelable,this.defaultPrevented=n.defaultPrevented,this.eventPhase=n.eventPhase,this.isTrusted=n.isTrusted,this.timeStamp=n.timeStamp,this.type=t}}function vt(e){let t=v.useRef({isFocused:!1,observer:null});ue(()=>{const o=t.current;return()=>{o.observer&&(o.observer.disconnect(),o.observer=null)}},[]);let n=R(o=>{e==null||e(o)});return v.useCallback(o=>{if(o.target instanceof HTMLButtonElement||o.target instanceof HTMLInputElement||o.target instanceof HTMLTextAreaElement||o.target instanceof HTMLSelectElement){t.current.isFocused=!0;let s=o.target,u=c=>{t.current.isFocused=!1,s.disabled&&n(new gt("blur",c)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};s.addEventListener("focusout",u,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&s.disabled){var c;(c=t.current.observer)===null||c===void 0||c.disconnect();let m=s===document.activeElement?null:document.activeElement;s.dispatchEvent(new FocusEvent("blur",{relatedTarget:m})),s.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:m}))}}),t.current.observer.observe(s,{attributes:!0,attributeFilter:["disabled"]})}},[n])}function yt(e){let{isDisabled:t,onFocus:n,onBlur:o,onFocusChange:s}=e;const u=v.useCallback(p=>{if(p.target===p.currentTarget)return o&&o(p),s&&s(!1),!0},[o,s]),c=vt(u),m=v.useCallback(p=>{p.target===p.currentTarget&&document.activeElement===p.target&&(n&&n(p),s&&s(!0),c(p))},[s,n,c]);return{focusProps:{onFocus:!t&&(n||s||o)?m:void 0,onBlur:!t&&(o||s)?u:void 0}}}let z=null,ht=new Set,Te=!1,L=!1,le=!1;function fe(e,t){for(let n of ht)n(e,t)}function $t(e){return!(e.metaKey||!H()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function Pe(e){L=!0,$t(e)&&(z="keyboard",fe("keyboard",e))}function F(e){z="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(L=!0,fe("pointer",e))}function kt(e){ae(e)&&(L=!0,z="virtual")}function wt(e){e.target===window||e.target===document||(!L&&!le&&(z="virtual",fe("virtual",e)),L=!1,le=!1)}function Tt(){L=!1,le=!0}function Be(){if(typeof window>"u"||Te)return;let e=HTMLElement.prototype.focus;HTMLElement.prototype.focus=function(){L=!0,e.apply(this,arguments)},document.addEventListener("keydown",Pe,!0),document.addEventListener("keyup",Pe,!0),document.addEventListener("click",kt,!0),window.addEventListener("focus",wt,!0),window.addEventListener("blur",Tt,!1),typeof PointerEvent<"u"?(document.addEventListener("pointerdown",F,!0),document.addEventListener("pointermove",F,!0),document.addEventListener("pointerup",F,!0)):(document.addEventListener("mousedown",F,!0),document.addEventListener("mousemove",F,!0),document.addEventListener("mouseup",F,!0)),Te=!0}typeof document<"u"&&(document.readyState!=="loading"?Be():document.addEventListener("DOMContentLoaded",Be));function Pt(){return z}function Ee(e){if(!e)return;let t=!0;return n=>{let o={...n,preventDefault(){n.preventDefault()},isDefaultPrevented(){return n.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(o),t&&n.stopPropagation()}}function Bt(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:Ee(e.onKeyDown),onKeyUp:Ee(e.onKeyUp)}}}function Et(e){if(Pt()==="virtual"){let t=document.activeElement;Ke(()=>{document.activeElement===t&&document.contains(e)&&K(e)})}else K(e)}function xt(e,t){return!e||!t?!1:t.some(n=>n.contains(e))}class me{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,n,o){let s=this.fastMap.get(n!=null?n:null);if(!s)return;let u=new xe({scopeRef:t});s.addChild(u),u.parent=s,this.fastMap.set(t,u),o&&(u.nodeToRestore=o)}addNode(t){this.fastMap.set(t.scopeRef,t)}removeTreeNode(t){if(t===null)return;let n=this.fastMap.get(t);if(!n)return;let o=n.parent;for(let u of this.traverse())u!==n&&n.nodeToRestore&&u.nodeToRestore&&n.scopeRef&&n.scopeRef.current&&xt(u.nodeToRestore,n.scopeRef.current)&&(u.nodeToRestore=n.nodeToRestore);let s=n.children;o&&(o.removeChild(n),s.size>0&&s.forEach(u=>o&&o.addChild(u))),this.fastMap.delete(n.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.size>0)for(let n of t.children)yield*this.traverse(n)}clone(){var t;let n=new me;var o;for(let s of this.traverse())n.addTreeNode(s.scopeRef,(o=(t=s.parent)===null||t===void 0?void 0:t.scopeRef)!==null&&o!==void 0?o:null,s.nodeToRestore);return n}constructor(){this.fastMap=new Map,this.root=new xe({scopeRef:null}),this.fastMap.set(null,this.root)}}class xe{addChild(t){this.children.add(t),t.parent=this}removeChild(t){this.children.delete(t),t.parent=void 0}constructor(t){this.children=new Set,this.contain=!1,this.scopeRef=t.scopeRef}}new me;let St=ce.default.createContext(null);function Nt(e){let t=v.useContext(St)||{};Le(t,e);let{ref:n,...o}=t;return o}function Dt(e,t){let{focusProps:n}=yt(e),{keyboardProps:o}=Bt(e),s=G(n,o),u=Nt(t),c=e.isDisabled?{}:u,m=v.useRef(e.autoFocus);return v.useEffect(()=>{m.current&&t.current&&Et(t.current),m.current=!1},[t]),{focusableProps:G({...s,tabIndex:e.excludeFromTabOrder&&!e.isDisabled?-1:void 0},c)}}function Ot(e,t){let{elementType:n="button",isDisabled:o,onPress:s,onPressStart:u,onPressEnd:c,onPressUp:m,onPressChange:p,preventFocusOnPress:h,allowFocusWhenDisabled:k,onClick:I,href:O,target:C,rel:M,type:P="button"}=e,w;n==="button"?w={type:P,disabled:o}:w={role:"button",tabIndex:o?void 0:0,href:n==="a"&&o?void 0:O,target:n==="a"?C:void 0,type:n==="input"?P:void 0,disabled:n==="input"?o:void 0,"aria-disabled":!o||n==="input"?void 0:o,rel:n==="a"?M:void 0};let{pressProps:S,isPressed:T}=dt({onPressStart:u,onPressEnd:c,onPressChange:p,onPress:s,onPressUp:m,isDisabled:o,preventFocusOnPress:h,ref:t}),{focusableProps:y}=Dt(e,t);k&&(y.tabIndex=o?-1:y.tabIndex);let B=G(y,S,qe(e,{labelable:!0}));return{isPressed:T,buttonProps:G(w,B,{"aria-haspopup":e["aria-haspopup"],"aria-expanded":e["aria-expanded"],"aria-controls":e["aria-controls"],"aria-pressed":e["aria-pressed"],onClick:E=>{I&&(I(E),console.warn("onClick is deprecated, please use onPress"))}})}}function Ct(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Se(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,o)}return n}function Ne(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Se(Object(n),!0).forEach(function(o){Ct(e,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Se(Object(n)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(n,o))})}return e}var _t=(e,t,n)=>{for(var o of Object.keys(e)){var s;if(e[o]!==((s=t[o])!==null&&s!==void 0?s:n[o]))return!1}return!0},Y=e=>t=>{var n=e.defaultClassName,o=Ne(Ne({},e.defaultVariants),t);for(var s in o){var u,c=(u=o[s])!==null&&u!==void 0?u:e.defaultVariants[s];if(c!=null){var m=c;typeof m=="boolean"&&(m=m===!0?"true":"false");var p=e.variantClassNames[s][m];p&&(n+=" "+p)}}for(var[h,k]of e.compoundVariants)_t(h,o,e.defaultVariants)&&(n+=" "+k);return n},Kt=Y({defaultClassName:"_125pcxy0",variantClassNames:{disabled:{true:"_125pcxy1",false:"_125pcxy2"},kind:{default:"_125pcxy3",link:"_125pcxy4",confirm:"_125pcxy5",delete:"_125pcxy6",key:"_125pcxy7",icon:"_125pcxy8"},spinning:{true:"_125pcxy9",false:"_125pcxya"}},defaultVariants:{disabled:!1,kind:"default",spinning:!1},compoundVariants:[[{kind:"icon",spinning:!0},"_125pcxyb"],[{kind:"default",spinning:!0},"_125pcxyc"],[{kind:"confirm",spinning:!0},"_125pcxyd"],[{kind:"delete",spinning:!0},"_125pcxye"],[{kind:"key",spinning:!0},"_125pcxyf"],[{disabled:!0,spinning:!1},"_125pcxyg"]]}),Lt=Y({defaultClassName:"_125pcxyh",variantClassNames:{disabled:{true:"_125pcxyi",false:"_125pcxyj"},kind:{icon:"_125pcxyk",default:"_125pcxyl",delete:"_125pcxym",key:"_125pcxyn",confirm:"_125pcxyo",link:"_125pcxyp"},spinning:{true:"_125pcxyq",false:"_125pcxyr"}},defaultVariants:{disabled:!1,kind:"default",spinning:!1},compoundVariants:[]}),It=Y({defaultClassName:"_125pcxyv",variantClassNames:{kind:{icon:"_125pcxyw",default:"_125pcxyx",key:"_125pcxyy",delete:"_125pcxyz",confirm:"_125pcxy10",link:"_125pcxy11"}},defaultVariants:{kind:"default"},compoundVariants:[]}),Mt=Y({defaultClassName:"_125pcxy12",variantClassNames:{spinning:{true:"_125pcxy13",false:"_125pcxy14"}},defaultVariants:{spinning:!1},compoundVariants:[]}),At=Y({defaultClassName:"_125pcxys",variantClassNames:{spinning:{true:"_125pcxyt",false:"_125pcxyu"}},defaultVariants:{spinning:!1},compoundVariants:[]});const be=d.forwardRef(({onClick:e,onPress:t,children:n,className:o,isDisabled:s,disabled:u,href:c,icon:m,kind:p="default",spinning:h,spinningTitle:k,title:I,...O},C)=>{var _;const M={onPress:t!=null?t:e,isDisabled:(_=u!=null?u:s)!=null?_:h,...O},{"data-testid":P}=O,w=C!=null?C:d.useRef(null),{buttonProps:S}=Ot(M,w),{t:T}=d.useContext(W.I18nContext),y=m&&d.createElement(W.Icon,{className:It({kind:p}),icon:m,"aria-hidden":"true","data-testid":`${P}__${m}-icon`});let B;p==="default"||p==="icon"||p==="link"?B="dark":B="light";const E=h&&d.createElement(W.Spinner,{color:B,className:Mt({spinning:h}),title:k||T("design-system:button.spinningTitle"),"data-testid":`${P}__spinner`});return d.createElement("div",{className:W.cl(Kt({disabled:s||u,kind:p,spinning:h}),o)},c?d.createElement("a",{className:At({spinning:h}),...O,href:c,title:I},y,n,E):d.createElement(d.Fragment,null,d.createElement("button",{className:Lt({disabled:s||u,kind:p,spinning:h}),disabled:s,...S,ref:w,title:I},y,n,E)))});W.Metadata.set(be,{name:"Buttons",props:{disabled:"boolean",href:"string",icon:"IconName",kind:{type:'"default" | "link" | "icon" | "confirm" | "delete" | "key"',default:'"default"'},spinning:"boolean",spinningTitle:"string",type:{type:'"button" | "submit"',default:'"button"'}}});const Ft={components:[be],description:()=>d.createElement(d.Fragment,null,d.createElement("div",{className:"sps-body-14"},"Buttons are used to initiate events or actions. The labels and/or icons describe what the button will do."),d.createElement("br",null),d.createElement("h5",null,"Variants"),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"Default: "),"For tertiary actions or actions of lower importance on a page."),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"Key: "),"For primary or important actions on a page."),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"Confirm: "),"For the main call to action on a page. There should only be one Confirm button per screen."),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"Delete: "),"For deleting information or another destructive action. These should always be paired with a Delete Confirmation Modal."),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"Disabled: "),"For actions that are not permitted in a particular state. These can be accompanied by a Tooltip on hover describing why it\u2019s disabled."),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"With an Icon: "),"For further illustrating the action. Example: Pencil icon in an Edit button. There can also be Icon Buttons without text.")),examples:{basic:{label:"Basic Buttons",description:({NavigateTo:e})=>d.createElement(d.Fragment,null,d.createElement("p",null,"The most common type of button that can be used in most cases. Example: Basic Buttons in a ",d.createElement(e,{to:"modals"},"Modal"),".")),examples:{withoutIcons:{description:"Without Icons",react:g.code`
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const v=require("react"),H=require("@sps-woodland/core"),g=require("@spscommerce/utils"),We=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function He(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const de=We(v),d=He(v);function Oe(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=Oe(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function ze(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=Oe(e))&&(r&&(r+=" "),r+=t);return r}const pe=typeof document<"u"?de.default.useLayoutEffect:()=>{};function U(e){const t=v.useRef(null);return pe(()=>{t.current=e},[e]),v.useCallback((...n)=>{const r=t.current;return r==null?void 0:r(...n)},[])}let ye=new Map;function Ye(e,t){if(e===t)return e;let n=ye.get(e);if(n)return n(t),t;let r=ye.get(t);return r?(r(e),e):t}function De(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}const S=e=>{var t;return(t=e==null?void 0:e.ownerDocument)!==null&&t!==void 0?t:document},j=e=>e&&"window"in e&&e.window===e?e:S(e).defaultView||window;function W(...e){let t={...e[0]};for(let n=1;n<e.length;n++){let r=e[n];for(let s in r){let l=t[s],c=r[s];typeof l=="function"&&typeof c=="function"&&s[0]==="o"&&s[1]==="n"&&s.charCodeAt(2)>=65&&s.charCodeAt(2)<=90?t[s]=De(l,c):(s==="className"||s==="UNSAFE_className")&&typeof l=="string"&&typeof c=="string"?t[s]=ze(l,c):s==="id"&&l&&c?t.id=Ye(l,c):t[s]=c!==void 0?c:l}}return t}const qe=new Set(["id"]),Xe=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),Je=new Set(["href","target","rel","download","ping","referrerPolicy"]),Qe=/^(data-.*)$/;function Ze(e,t={}){let{labelable:n,isLink:r,propNames:s}=t,l={};for(const c in e)Object.prototype.hasOwnProperty.call(e,c)&&(qe.has(c)||n&&Xe.has(c)||r&&Je.has(c)||(s==null?void 0:s.has(c))||Qe.test(c))&&(l[c]=e[c]);return l}function K(e){if(et())e.focus({preventScroll:!0});else{let t=tt(e);e.focus(),nt(t)}}let Q=null;function et(){if(Q==null){Q=!1;try{document.createElement("div").focus({get preventScroll(){return Q=!0,!0}})}catch{}}return Q}function tt(e){let t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&n.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return r instanceof HTMLElement&&n.push({element:r,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft}),n}function nt(e){for(let{element:t,scrollTop:n,scrollLeft:r}of e)t.scrollTop=n,t.scrollLeft=r}function oe(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(n=>e.test(n.brand)))||e.test(window.navigator.userAgent)}function fe(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 Y(){return fe(/^Mac/i)}function rt(){return fe(/^iPhone/i)}function Ce(){return fe(/^iPad/i)||Y()&&navigator.maxTouchPoints>1}function _e(){return rt()||Ce()}function ot(){return oe(/AppleWebKit/i)&&!st()}function st(){return oe(/Chrome/i)}function Le(){return oe(/Android/i)}function at(){return oe(/Firefox/i)}function q(e,t,n=!0){var r,s;let{metaKey:l,ctrlKey:c,altKey:m,shiftKey:p}=t;at()&&((s=window.event)===null||s===void 0||(r=s.type)===null||r===void 0?void 0:r.startsWith("key"))&&e.target==="_blank"&&(Y()?l=!0:c=!0);let $=ot()&&Y()&&!Ce()?new KeyboardEvent("keydown",{keyIdentifier:"Enter",metaKey:l,ctrlKey:c,altKey:m,shiftKey:p}):new MouseEvent("click",{metaKey:l,ctrlKey:c,altKey:m,shiftKey:p,bubbles:!0,cancelable:!0});q.isOpening=n,K(e),e.dispatchEvent($),q.isOpening=!1}q.isOpening=!1;let V=new Map,ie=new Set;function he(){if(typeof window>"u")return;function e(r){return"propertyName"in r}let t=r=>{if(!e(r)||!r.target)return;let s=V.get(r.target);s||(s=new Set,V.set(r.target,s),r.target.addEventListener("transitioncancel",n,{once:!0})),s.add(r.propertyName)},n=r=>{if(!e(r)||!r.target)return;let s=V.get(r.target);if(!!s&&(s.delete(r.propertyName),s.size===0&&(r.target.removeEventListener("transitioncancel",n),V.delete(r.target)),V.size===0)){for(let l of ie)l();ie.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",n)}typeof document<"u"&&(document.readyState!=="loading"?he():document.addEventListener("DOMContentLoaded",he));function Ke(e){requestAnimationFrame(()=>{V.size===0?e():ie.add(e)})}function it(){let e=v.useRef(new Map),t=v.useCallback((s,l,c,m)=>{let p=m!=null&&m.once?(...$)=>{e.current.delete(c),c(...$)}:c;e.current.set(c,{type:l,eventTarget:s,fn:p,options:m}),s.addEventListener(l,c,m)},[]),n=v.useCallback((s,l,c,m)=>{var p;let $=((p=e.current.get(c))===null||p===void 0?void 0:p.fn)||c;s.removeEventListener(l,$,m),e.current.delete(c)},[]),r=v.useCallback(()=>{e.current.forEach((s,l)=>{n(s.eventTarget,s.type,l,s.options)})},[n]);return v.useEffect(()=>r,[r]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:r}}function Ie(e,t){pe(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref&&(e.ref.current=null)}})}function le(e){return e.mozInputSource===0&&e.isTrusted?!0:Le()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function lt(e){return!Le()&&e.width===0&&e.height===0||e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"}function ct(e,t){return t.get?t.get.call(e):t.value}function Me(e,t,n){if(!t.has(e))throw new TypeError("attempted to "+n+" private field on non-instance");return t.get(e)}function ut(e,t){var n=Me(e,t,"get");return ct(e,n)}function dt(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function pt(e,t,n){dt(e,t),t.set(e,n)}function ft(e,t,n){if(t.set)t.set.call(e,n);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=n}}function $e(e,t,n){var r=Me(e,t,"set");return ft(e,r,n),n}let G="default",ce="",ne=new WeakMap;function ke(e){if(_e()){if(G==="default"){const t=S(e);ce=t.documentElement.style.webkitUserSelect,t.documentElement.style.webkitUserSelect="none"}G="disabled"}else(e instanceof HTMLElement||e instanceof SVGElement)&&(ne.set(e,e.style.userSelect),e.style.userSelect="none")}function Z(e){if(_e()){if(G!=="disabled")return;G="restoring",setTimeout(()=>{Ke(()=>{if(G==="restoring"){const t=S(e);t.documentElement.style.webkitUserSelect==="none"&&(t.documentElement.style.webkitUserSelect=ce||""),ce="",G="default"}})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&ne.has(e)){let t=ne.get(e);e.style.userSelect==="none"&&(e.style.userSelect=t),e.getAttribute("style")===""&&e.removeAttribute("style"),ne.delete(e)}}const Ae=de.default.createContext({register:()=>{}});Ae.displayName="PressResponderContext";function mt(e){let t=v.useContext(Ae);if(t){let{register:n,...r}=t;e=W(r,e),n()}return Ie(t,e.ref),e}var ee=new WeakMap;class te{continuePropagation(){$e(this,ee,!1)}get shouldStopPropagation(){return ut(this,ee)}constructor(t,n,r){pt(this,ee,{writable:!0,value:void 0}),$e(this,ee,!0),this.type=t,this.pointerType=n,this.target=r.currentTarget,this.shiftKey=r.shiftKey,this.metaKey=r.metaKey,this.ctrlKey=r.ctrlKey,this.altKey=r.altKey}}const we=Symbol("linkClicked");function bt(e){let{onPress:t,onPressChange:n,onPressStart:r,onPressEnd:s,onPressUp:l,isDisabled:c,isPressed:m,preventFocusOnPress:p,shouldCancelOnPointerExit:$,allowTextSelectionOnPress:k,ref:M,...C}=mt(e),[_,A]=v.useState(!1),T=v.useRef({isPressed:!1,ignoreEmulatedMouseEvents:!1,ignoreClickAfterPress:!1,didFirePressStart:!1,isTriggeringEvent:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null}),{addGlobalListener:w,removeAllGlobalListeners:O}=it(),E=U((o,f)=>{let N=T.current;if(c||N.didFirePressStart)return!1;let u=!0;if(N.isTriggeringEvent=!0,r){let b=new te("pressstart",f,o);r(b),u=b.shouldStopPropagation}return n&&n(!0),N.isTriggeringEvent=!1,N.didFirePressStart=!0,A(!0),u}),y=U((o,f,N=!0)=>{let u=T.current;if(!u.didFirePressStart)return!1;u.ignoreClickAfterPress=!0,u.didFirePressStart=!1,u.isTriggeringEvent=!0;let b=!0;if(s){let a=new te("pressend",f,o);s(a),b=a.shouldStopPropagation}if(n&&n(!1),A(!1),t&&N&&!c){let a=new te("press",f,o);t(a),b&&(b=a.shouldStopPropagation)}return u.isTriggeringEvent=!1,b}),P=U((o,f)=>{let N=T.current;if(c)return!1;if(l){N.isTriggeringEvent=!0;let u=new te("pressup",f,o);return l(u),N.isTriggeringEvent=!1,u.shouldStopPropagation}return!0}),B=U(o=>{let f=T.current;f.isPressed&&f.target&&(f.isOverTarget&&f.pointerType!=null&&y(D(f.target,o),f.pointerType,!1),f.isPressed=!1,f.isOverTarget=!1,f.activePointerId=null,f.pointerType=null,O(),k||Z(f.target))}),L=U(o=>{$&&B(o)}),je=v.useMemo(()=>{let o=T.current,f={onKeyDown(u){if(se(u.nativeEvent,u.currentTarget)&&u.currentTarget.contains(u.target)){var b;Te(u.target,u.key)&&u.preventDefault();let a=!0;if(!o.isPressed&&!u.repeat){o.target=u.currentTarget,o.isPressed=!0,a=E(u,"keyboard");let i=u.currentTarget,h=F=>{se(F,i)&&!F.repeat&&i.contains(F.target)&&o.target&&P(D(o.target,F),"keyboard")};w(S(u.currentTarget),"keyup",De(h,N),!0)}a&&u.stopPropagation(),u.metaKey&&Y()&&((b=o.metaKeyEvents)===null||b===void 0||b.set(u.key,u.nativeEvent))}else u.key==="Meta"&&(o.metaKeyEvents=new Map)},onClick(u){if(!(u&&!u.currentTarget.contains(u.target))&&u&&u.button===0&&!o.isTriggeringEvent&&!q.isOpening){let b=!0;if(c&&u.preventDefault(),!o.ignoreClickAfterPress&&!o.ignoreEmulatedMouseEvents&&!o.isPressed&&(o.pointerType==="virtual"||le(u.nativeEvent))){!c&&!p&&K(u.currentTarget);let a=E(u,"virtual"),i=P(u,"virtual"),h=y(u,"virtual");b=a&&i&&h}o.ignoreEmulatedMouseEvents=!1,o.ignoreClickAfterPress=!1,b&&u.stopPropagation()}}},N=u=>{var b;if(o.isPressed&&o.target&&se(u,o.target)){var a;Te(u.target,u.key)&&u.preventDefault();let h=u.target;y(D(o.target,u),"keyboard",o.target.contains(h)),O(),u.key!=="Enter"&&me(o.target)&&o.target.contains(h)&&!u[we]&&(u[we]=!0,q(o.target,u,!1)),o.isPressed=!1,(a=o.metaKeyEvents)===null||a===void 0||a.delete(u.key)}else if(u.key==="Meta"&&((b=o.metaKeyEvents)===null||b===void 0?void 0:b.size)){var i;let h=o.metaKeyEvents;o.metaKeyEvents=void 0;for(let F of h.values())(i=o.target)===null||i===void 0||i.dispatchEvent(new KeyboardEvent("keyup",F))}};if(typeof PointerEvent<"u"){f.onPointerDown=i=>{if(i.button!==0||!i.currentTarget.contains(i.target))return;if(lt(i.nativeEvent)){o.pointerType="virtual";return}ae(i.currentTarget)&&i.preventDefault(),o.pointerType=i.pointerType;let h=!0;o.isPressed||(o.isPressed=!0,o.isOverTarget=!0,o.activePointerId=i.pointerId,o.target=i.currentTarget,!c&&!p&&K(i.currentTarget),k||ke(o.target),h=E(i,o.pointerType),w(S(i.currentTarget),"pointermove",u,!1),w(S(i.currentTarget),"pointerup",b,!1),w(S(i.currentTarget),"pointercancel",a,!1)),h&&i.stopPropagation()},f.onMouseDown=i=>{!i.currentTarget.contains(i.target)||i.button===0&&(ae(i.currentTarget)&&i.preventDefault(),i.stopPropagation())},f.onPointerUp=i=>{!i.currentTarget.contains(i.target)||o.pointerType==="virtual"||i.button===0&&R(i,i.currentTarget)&&P(i,o.pointerType||i.pointerType)};let u=i=>{i.pointerId===o.activePointerId&&(o.target&&R(i,o.target)?!o.isOverTarget&&o.pointerType!=null&&(o.isOverTarget=!0,E(D(o.target,i),o.pointerType)):o.target&&o.isOverTarget&&o.pointerType!=null&&(o.isOverTarget=!1,y(D(o.target,i),o.pointerType,!1),L(i)))},b=i=>{i.pointerId===o.activePointerId&&o.isPressed&&i.button===0&&o.target&&(R(i,o.target)&&o.pointerType!=null?y(D(o.target,i),o.pointerType):o.isOverTarget&&o.pointerType!=null&&y(D(o.target,i),o.pointerType,!1),o.isPressed=!1,o.isOverTarget=!1,o.activePointerId=null,o.pointerType=null,O(),k||Z(o.target))},a=i=>{B(i)};f.onDragStart=i=>{!i.currentTarget.contains(i.target)||B(i)}}else{f.onMouseDown=a=>{if(a.button!==0||!a.currentTarget.contains(a.target))return;if(ae(a.currentTarget)&&a.preventDefault(),o.ignoreEmulatedMouseEvents){a.stopPropagation();return}o.isPressed=!0,o.isOverTarget=!0,o.target=a.currentTarget,o.pointerType=le(a.nativeEvent)?"virtual":"mouse",!c&&!p&&K(a.currentTarget),E(a,o.pointerType)&&a.stopPropagation(),w(S(a.currentTarget),"mouseup",u,!1)},f.onMouseEnter=a=>{if(!a.currentTarget.contains(a.target))return;let i=!0;o.isPressed&&!o.ignoreEmulatedMouseEvents&&o.pointerType!=null&&(o.isOverTarget=!0,i=E(a,o.pointerType)),i&&a.stopPropagation()},f.onMouseLeave=a=>{if(!a.currentTarget.contains(a.target))return;let i=!0;o.isPressed&&!o.ignoreEmulatedMouseEvents&&o.pointerType!=null&&(o.isOverTarget=!1,i=y(a,o.pointerType,!1),L(a)),i&&a.stopPropagation()},f.onMouseUp=a=>{!a.currentTarget.contains(a.target)||!o.ignoreEmulatedMouseEvents&&a.button===0&&P(a,o.pointerType||"mouse")};let u=a=>{if(a.button===0){if(o.isPressed=!1,O(),o.ignoreEmulatedMouseEvents){o.ignoreEmulatedMouseEvents=!1;return}o.target&&R(a,o.target)&&o.pointerType!=null?y(D(o.target,a),o.pointerType):o.target&&o.isOverTarget&&o.pointerType!=null&&y(D(o.target,a),o.pointerType,!1),o.isOverTarget=!1}};f.onTouchStart=a=>{if(!a.currentTarget.contains(a.target))return;let i=gt(a.nativeEvent);if(!i)return;o.activePointerId=i.identifier,o.ignoreEmulatedMouseEvents=!0,o.isOverTarget=!0,o.isPressed=!0,o.target=a.currentTarget,o.pointerType="touch",!c&&!p&&K(a.currentTarget),k||ke(o.target),E(a,o.pointerType)&&a.stopPropagation(),w(j(a.currentTarget),"scroll",b,!0)},f.onTouchMove=a=>{if(!a.currentTarget.contains(a.target))return;if(!o.isPressed){a.stopPropagation();return}let i=Ee(a.nativeEvent,o.activePointerId),h=!0;i&&R(i,a.currentTarget)?!o.isOverTarget&&o.pointerType!=null&&(o.isOverTarget=!0,h=E(a,o.pointerType)):o.isOverTarget&&o.pointerType!=null&&(o.isOverTarget=!1,h=y(a,o.pointerType,!1),L(a)),h&&a.stopPropagation()},f.onTouchEnd=a=>{if(!a.currentTarget.contains(a.target))return;if(!o.isPressed){a.stopPropagation();return}let i=Ee(a.nativeEvent,o.activePointerId),h=!0;i&&R(i,a.currentTarget)&&o.pointerType!=null?(P(a,o.pointerType),h=y(a,o.pointerType)):o.isOverTarget&&o.pointerType!=null&&(h=y(a,o.pointerType,!1)),h&&a.stopPropagation(),o.isPressed=!1,o.activePointerId=null,o.isOverTarget=!1,o.ignoreEmulatedMouseEvents=!0,o.target&&!k&&Z(o.target),O()},f.onTouchCancel=a=>{!a.currentTarget.contains(a.target)||(a.stopPropagation(),o.isPressed&&B(a))};let b=a=>{o.isPressed&&a.target.contains(o.target)&&B({currentTarget:o.target,shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1})};f.onDragStart=a=>{!a.currentTarget.contains(a.target)||B(a)}}return f},[w,c,p,O,k,B,L,y,E,P]);return v.useEffect(()=>()=>{var o;k||Z((o=T.current.target)!==null&&o!==void 0?o:void 0)},[k]),{isPressed:m||_,pressProps:W(C,je)}}function me(e){return e.tagName==="A"&&e.hasAttribute("href")}function se(e,t){const{key:n,code:r}=e,s=t,l=s.getAttribute("role");return(n==="Enter"||n===" "||n==="Spacebar"||r==="Space")&&!(s instanceof j(s).HTMLInputElement&&!Fe(s,n)||s instanceof j(s).HTMLTextAreaElement||s.isContentEditable)&&!((l==="link"||!l&&me(s))&&n!=="Enter")}function gt(e){const{targetTouches:t}=e;return t.length>0?t[0]:null}function Ee(e,t){const n=e.changedTouches;for(let r=0;r<n.length;r++){const s=n[r];if(s.identifier===t)return s}return null}function D(e,t){return{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey}}function vt(e){let t=0,n=0;return e.width!==void 0?t=e.width/2:e.radiusX!==void 0&&(t=e.radiusX),e.height!==void 0?n=e.height/2:e.radiusY!==void 0&&(n=e.radiusY),{top:e.clientY-n,right:e.clientX+t,bottom:e.clientY+n,left:e.clientX-t}}function yt(e,t){return!(e.left>t.right||t.left>e.right||e.top>t.bottom||t.top>e.bottom)}function R(e,t){let n=t.getBoundingClientRect(),r=vt(e);return yt(n,r)}function ae(e){return!(e instanceof HTMLElement)||!e.hasAttribute("draggable")}function Te(e,t){return e instanceof HTMLInputElement?!Fe(e,t):e instanceof HTMLButtonElement?e.type!=="submit"&&e.type!=="reset":!me(e)}const ht=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function Fe(e,t){return e.type==="checkbox"||e.type==="radio"?t===" ":ht.has(e.type)}class $t{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,n){this.nativeEvent=n,this.target=n.target,this.currentTarget=n.currentTarget,this.relatedTarget=n.relatedTarget,this.bubbles=n.bubbles,this.cancelable=n.cancelable,this.defaultPrevented=n.defaultPrevented,this.eventPhase=n.eventPhase,this.isTrusted=n.isTrusted,this.timeStamp=n.timeStamp,this.type=t}}function kt(e){let t=v.useRef({isFocused:!1,observer:null});pe(()=>{const r=t.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]);let n=U(r=>{e==null||e(r)});return v.useCallback(r=>{if(r.target instanceof HTMLButtonElement||r.target instanceof HTMLInputElement||r.target instanceof HTMLTextAreaElement||r.target instanceof HTMLSelectElement){t.current.isFocused=!0;let s=r.target,l=c=>{t.current.isFocused=!1,s.disabled&&n(new $t("blur",c)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};s.addEventListener("focusout",l,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&s.disabled){var c;(c=t.current.observer)===null||c===void 0||c.disconnect();let m=s===document.activeElement?null:document.activeElement;s.dispatchEvent(new FocusEvent("blur",{relatedTarget:m})),s.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:m}))}}),t.current.observer.observe(s,{attributes:!0,attributeFilter:["disabled"]})}},[n])}function wt(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:s}=e;const l=v.useCallback(p=>{if(p.target===p.currentTarget)return r&&r(p),s&&s(!1),!0},[r,s]),c=kt(l),m=v.useCallback(p=>{p.target===p.currentTarget&&document.activeElement===p.target&&(n&&n(p),s&&s(!0),c(p))},[s,n,c]);return{focusProps:{onFocus:!t&&(n||s||r)?m:void 0,onBlur:!t&&(r||s)?l:void 0}}}let X=null,Et=new Set,z=new Map,I=!1,ue=!1;function be(e,t){for(let n of Et)n(e,t)}function Tt(e){return!(e.metaKey||!Y()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function re(e){I=!0,Tt(e)&&(X="keyboard",be("keyboard",e))}function x(e){X="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(I=!0,be("pointer",e))}function Re(e){le(e)&&(I=!0,X="virtual")}function Ue(e){e.target===window||e.target===document||(!I&&!ue&&(X="virtual",be("virtual",e)),I=!1,ue=!1)}function Ve(){I=!1,ue=!0}function Pe(e){if(typeof window>"u"||z.get(j(e)))return;const t=j(e),n=S(e);let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){I=!0,r.apply(this,arguments)},n.addEventListener("keydown",re,!0),n.addEventListener("keyup",re,!0),n.addEventListener("click",Re,!0),t.addEventListener("focus",Ue,!0),t.addEventListener("blur",Ve,!1),typeof PointerEvent<"u"?(n.addEventListener("pointerdown",x,!0),n.addEventListener("pointermove",x,!0),n.addEventListener("pointerup",x,!0)):(n.addEventListener("mousedown",x,!0),n.addEventListener("mousemove",x,!0),n.addEventListener("mouseup",x,!0)),t.addEventListener("beforeunload",()=>{Ge(e)},{once:!0}),z.set(t,{focus:r})}const Ge=(e,t)=>{const n=j(e),r=S(e);t&&r.removeEventListener("DOMContentLoaded",t),z.has(n)&&(n.HTMLElement.prototype.focus=z.get(n).focus,r.removeEventListener("keydown",re,!0),r.removeEventListener("keyup",re,!0),r.removeEventListener("click",Re,!0),n.removeEventListener("focus",Ue,!0),n.removeEventListener("blur",Ve,!1),typeof PointerEvent<"u"?(r.removeEventListener("pointerdown",x,!0),r.removeEventListener("pointermove",x,!0),r.removeEventListener("pointerup",x,!0)):(r.removeEventListener("mousedown",x,!0),r.removeEventListener("mousemove",x,!0),r.removeEventListener("mouseup",x,!0)),z.delete(n))};function Pt(e){const t=S(e);let n;return t.readyState!=="loading"?Pe(e):(n=()=>{Pe(e)},t.addEventListener("DOMContentLoaded",n)),()=>Ge(e,n)}typeof document<"u"&&Pt();function Bt(){return X}function Be(e){if(!e)return;let t=!0;return n=>{let r={...n,preventDefault(){n.preventDefault()},isDefaultPrevented(){return n.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(r),t&&n.stopPropagation()}}function xt(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:Be(e.onKeyDown),onKeyUp:Be(e.onKeyUp)}}}function St(e){const t=S(e);if(Bt()==="virtual"){let n=t.activeElement;Ke(()=>{t.activeElement===n&&e.isConnected&&K(e)})}else K(e)}function Nt(e,t){return!e||!t?!1:t.some(n=>n.contains(e))}class ge{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,n,r){let s=this.fastMap.get(n!=null?n:null);if(!s)return;let l=new xe({scopeRef:t});s.addChild(l),l.parent=s,this.fastMap.set(t,l),r&&(l.nodeToRestore=r)}addNode(t){this.fastMap.set(t.scopeRef,t)}removeTreeNode(t){if(t===null)return;let n=this.fastMap.get(t);if(!n)return;let r=n.parent;for(let l of this.traverse())l!==n&&n.nodeToRestore&&l.nodeToRestore&&n.scopeRef&&n.scopeRef.current&&Nt(l.nodeToRestore,n.scopeRef.current)&&(l.nodeToRestore=n.nodeToRestore);let s=n.children;r&&(r.removeChild(n),s.size>0&&s.forEach(l=>r&&r.addChild(l))),this.fastMap.delete(n.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.size>0)for(let n of t.children)yield*this.traverse(n)}clone(){var t;let n=new ge;var r;for(let s of this.traverse())n.addTreeNode(s.scopeRef,(r=(t=s.parent)===null||t===void 0?void 0:t.scopeRef)!==null&&r!==void 0?r:null,s.nodeToRestore);return n}constructor(){this.fastMap=new Map,this.root=new xe({scopeRef:null}),this.fastMap.set(null,this.root)}}class xe{addChild(t){this.children.add(t),t.parent=this}removeChild(t){this.children.delete(t),t.parent=void 0}constructor(t){this.children=new Set,this.contain=!1,this.scopeRef=t.scopeRef}}new ge;let Ot=de.default.createContext(null);function Dt(e){let t=v.useContext(Ot)||{};Ie(t,e);let{ref:n,...r}=t;return r}function Ct(e,t){let{focusProps:n}=wt(e),{keyboardProps:r}=xt(e),s=W(n,r),l=Dt(t),c=e.isDisabled?{}:l,m=v.useRef(e.autoFocus);return v.useEffect(()=>{m.current&&t.current&&St(t.current),m.current=!1},[t]),{focusableProps:W({...s,tabIndex:e.excludeFromTabOrder&&!e.isDisabled?-1:void 0},c)}}function _t(e,t){let{elementType:n="button",isDisabled:r,onPress:s,onPressStart:l,onPressEnd:c,onPressUp:m,onPressChange:p,preventFocusOnPress:$,allowFocusWhenDisabled:k,onClick:M,href:C,target:_,rel:A,type:T="button"}=e,w;n==="button"?w={type:T,disabled:r}:w={role:"button",tabIndex:r?void 0:0,href:n==="a"&&r?void 0:C,target:n==="a"?_:void 0,type:n==="input"?T:void 0,disabled:n==="input"?r:void 0,"aria-disabled":!r||n==="input"?void 0:r,rel:n==="a"?A:void 0};let{pressProps:O,isPressed:E}=bt({onPressStart:l,onPressEnd:c,onPressChange:p,onPress:s,onPressUp:m,isDisabled:r,preventFocusOnPress:$,ref:t}),{focusableProps:y}=Ct(e,t);k&&(y.tabIndex=r?-1:y.tabIndex);let P=W(y,O,Ze(e,{labelable:!0}));return{isPressed:E,buttonProps:W(w,P,{"aria-haspopup":e["aria-haspopup"],"aria-expanded":e["aria-expanded"],"aria-controls":e["aria-controls"],"aria-pressed":e["aria-pressed"],onClick:B=>{M&&(M(B),console.warn("onClick is deprecated, please use onPress"))}})}}function Lt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Se(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function Ne(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Se(Object(n),!0).forEach(function(r){Lt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Se(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}var Kt=(e,t,n)=>{for(var r of Object.keys(e)){var s;if(e[r]!==((s=t[r])!==null&&s!==void 0?s:n[r]))return!1}return!0},J=e=>t=>{var n=e.defaultClassName,r=Ne(Ne({},e.defaultVariants),t);for(var s in r){var l,c=(l=r[s])!==null&&l!==void 0?l:e.defaultVariants[s];if(c!=null){var m=c;typeof m=="boolean"&&(m=m===!0?"true":"false");var p=e.variantClassNames[s][m];p&&(n+=" "+p)}}for(var[$,k]of e.compoundVariants)Kt($,r,e.defaultVariants)&&(n+=" "+k);return n},It=J({defaultClassName:"_125pcxy0",variantClassNames:{disabled:{true:"_125pcxy1",false:"_125pcxy2"},kind:{default:"_125pcxy3",link:"_125pcxy4",confirm:"_125pcxy5",delete:"_125pcxy6",key:"_125pcxy7",icon:"_125pcxy8"},spinning:{true:"_125pcxy9",false:"_125pcxya"}},defaultVariants:{disabled:!1,kind:"default",spinning:!1},compoundVariants:[[{kind:"icon",spinning:!0},"_125pcxyb"],[{kind:"default",spinning:!0},"_125pcxyc"],[{kind:"confirm",spinning:!0},"_125pcxyd"],[{kind:"delete",spinning:!0},"_125pcxye"],[{kind:"key",spinning:!0},"_125pcxyf"],[{disabled:!0,spinning:!1},"_125pcxyg"]]}),Mt=J({defaultClassName:"_125pcxyh",variantClassNames:{disabled:{true:"_125pcxyi",false:"_125pcxyj"},kind:{icon:"_125pcxyk",default:"_125pcxyl",delete:"_125pcxym",key:"_125pcxyn",confirm:"_125pcxyo",link:"_125pcxyp"},spinning:{true:"_125pcxyq",false:"_125pcxyr"}},defaultVariants:{disabled:!1,kind:"default",spinning:!1},compoundVariants:[]}),At=J({defaultClassName:"_125pcxyv",variantClassNames:{kind:{icon:"_125pcxyw",default:"_125pcxyx",key:"_125pcxyy",delete:"_125pcxyz",confirm:"_125pcxy10",link:"_125pcxy11"}},defaultVariants:{kind:"default"},compoundVariants:[]}),Ft=J({defaultClassName:"_125pcxy12",variantClassNames:{spinning:{true:"_125pcxy13",false:"_125pcxy14"}},defaultVariants:{spinning:!1},compoundVariants:[]}),Rt=J({defaultClassName:"_125pcxys",variantClassNames:{spinning:{true:"_125pcxyt",false:"_125pcxyu"}},defaultVariants:{spinning:!1},compoundVariants:[]});const ve=d.forwardRef(({onClick:e,onPress:t,children:n,className:r,isDisabled:s,disabled:l,href:c,icon:m,kind:p="default",spinning:$,spinningTitle:k,title:M,...C},_)=>{var L;const A={onPress:t!=null?t:e,isDisabled:(L=l!=null?l:s)!=null?L:$,...C},{"data-testid":T}=C,w=_!=null?_:d.useRef(null),{buttonProps:O}=_t(A,w),{t:E}=d.useContext(H.I18nContext),y=m&&d.createElement(H.Icon,{className:At({kind:p}),icon:m,"aria-hidden":"true","data-testid":`${T}__${m}-icon`});let P;p==="default"||p==="icon"||p==="link"?P="dark":P="light";const B=$&&d.createElement(H.Spinner,{color:P,className:Ft({spinning:$}),title:k||E("design-system:button.spinningTitle"),"data-testid":`${T}__spinner`});return d.createElement("div",{className:H.cl(It({disabled:s||l,kind:p,spinning:$}),r)},c?d.createElement("a",{className:Rt({spinning:$}),...C,href:c,title:M},y,n,B):d.createElement(d.Fragment,null,d.createElement("button",{className:Mt({disabled:s||l,kind:p,spinning:$}),disabled:s,...O,ref:w,title:M},y,n,B)))});H.Metadata.set(ve,{name:"Buttons",props:{disabled:"boolean",href:"string",icon:"IconName",kind:{type:'"default" | "link" | "icon" | "confirm" | "delete" | "key"',default:'"default"'},spinning:"boolean",spinningTitle:"string",type:{type:'"button" | "submit"',default:'"button"'}}});const Ut={components:[ve],description:()=>d.createElement(d.Fragment,null,d.createElement("div",{className:"sps-body-14"},"Buttons are used to initiate events or actions. The labels and/or icons describe what the button will do."),d.createElement("br",null),d.createElement("h5",null,"Variants"),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"Default: "),"For tertiary actions or actions of lower importance on a page."),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"Key: "),"For primary or important actions on a page."),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"Confirm: "),"For the main call to action on a page. There should only be one Confirm button per screen."),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"Delete: "),"For deleting information or another destructive action. These should always be paired with a Delete Confirmation Modal."),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"Disabled: "),"For actions that are not permitted in a particular state. These can be accompanied by a Tooltip on hover describing why it\u2019s disabled."),d.createElement("div",{className:"sps-body-14"},d.createElement("span",{className:"sps-text-semibold"},"With an Icon: "),"For further illustrating the action. Example: Pencil icon in an Edit button. There can also be Icon Buttons without text.")),examples:{basic:{label:"Basic Buttons",description:({NavigateTo:e})=>d.createElement(d.Fragment,null,d.createElement("p",null,"The most common type of button that can be used in most cases. Example: Basic Buttons in a ",d.createElement(e,{to:"modals"},"Modal"),".")),examples:{withoutIcons:{description:"Without Icons",react:g.code`
|
2
2
|
import { Button } from "@sps-woodland/buttons";
|
3
3
|
import { sprinkles } from "@sps-woodland/tokens";
|
4
4
|
|
@@ -423,4 +423,4 @@
|
|
423
423
|
</>
|
424
424
|
)
|
425
425
|
}
|
426
|
-
`}}}}},
|
426
|
+
`}}}}},Vt={Buttons:Ut};exports.Button=ve;exports.MANIFEST=Vt;
|