@purpurds/drawer 5.35.0 → 6.0.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/dist/LICENSE.txt +3 -3
- package/dist/drawer.cjs.js +1 -1
- package/dist/drawer.cjs.js.map +1 -1
- package/dist/drawer.es.js +21 -33
- package/dist/drawer.es.js.map +1 -1
- package/package.json +6 -6
- package/src/drawer-header.tsx +2 -2
package/dist/LICENSE.txt
CHANGED
|
@@ -457,21 +457,21 @@ SOFTWARE.
|
|
|
457
457
|
---
|
|
458
458
|
|
|
459
459
|
Name: @purpurds/button
|
|
460
|
-
Version:
|
|
460
|
+
Version: 6.0.0
|
|
461
461
|
License: AGPL-3.0-only
|
|
462
462
|
Private: false
|
|
463
463
|
|
|
464
464
|
---
|
|
465
465
|
|
|
466
466
|
Name: @purpurds/heading
|
|
467
|
-
Version:
|
|
467
|
+
Version: 6.0.0
|
|
468
468
|
License: AGPL-3.0-only
|
|
469
469
|
Private: false
|
|
470
470
|
|
|
471
471
|
---
|
|
472
472
|
|
|
473
473
|
Name: @purpurds/icon
|
|
474
|
-
Version:
|
|
474
|
+
Version: 6.0.0
|
|
475
475
|
License: AGPL-3.0-only
|
|
476
476
|
Private: false
|
|
477
477
|
|
package/dist/drawer.cjs.js
CHANGED
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
Copyright (c) 2018 Jed Watson.
|
|
59
59
|
Licensed under the MIT License (MIT), see
|
|
60
60
|
http://jedwatson.github.io/classnames
|
|
61
|
-
*/(function(e){(function(){var r={}.hasOwnProperty;function t(){for(var n="",i=0;i<arguments.length;i++){var c=arguments[i];c&&(n=a(n,o.call(this,c)))}return n}function o(n){if(typeof n=="string"||typeof n=="number")return this&&this[n]||n;if(typeof n!="object")return"";if(Array.isArray(n))return t.apply(this,n);if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]"))return n.toString();var i="";for(var c in n)r.call(n,c)&&n[c]&&(i=a(i,this&&this[c]||c));return i}function a(n,i){return i?n?n+" "+i:n+i:n}e.exports?(t.default=t,e.exports=t):window.classNames=t})()})(Ot);var vo=Ot.exports;const ho=po(vo),mo={"purpur-icon":"_purpur-icon_8u1lq_1","purpur-icon--xxs":"_purpur-icon--xxs_8u1lq_4","purpur-icon--xs":"_purpur-icon--xs_8u1lq_8","purpur-icon--sm":"_purpur-icon--sm_8u1lq_12","purpur-icon--md":"_purpur-icon--md_8u1lq_16","purpur-icon--lg":"_purpur-icon--lg_8u1lq_20","purpur-icon--xl":"_purpur-icon--xl_8u1lq_24"},bo={name:"arrow-left",svg:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M3.1 12a.9.9 0 0 1 .264-.636l5.5-5.5a.9.9 0 0 1 1.272 1.272L6.173 11.1H20a.9.9 0 0 1 0 1.8H6.173l3.963 3.964a.9.9 0 1 1-1.272 1.272l-5.5-5.5A.9.9 0 0 1 3.1 12Z" clip-rule="evenodd"/></svg>',keywords:["arrow-left"],category:"utility"},go={name:"close",svg:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M4.864 4.864a.9.9 0 0 1 1.273 0L12 10.727l5.864-5.863a.9.9 0 0 1 1.272 1.272L13.273 12l5.863 5.864a.9.9 0 1 1-1.272 1.272L12 13.273l-5.863 5.863a.9.9 0 0 1-1.273-1.272L10.727 12 4.864 6.136a.9.9 0 0 1 0-1.272Z" clip-rule="evenodd"/></svg>',keywords:["close"],category:"utility"},Lt=e=>m.jsx(He,{...e,svg:bo});Lt.displayName="IconArrowLeft";const jt=e=>m.jsx(He,{...e,svg:go});jt.displayName="IconClose";const _o=ho.bind(mo),it="purpur-icon",$o="md",wo=e=>e.filter(r=>Object.keys(r).length>=1).map(r=>`${r.name}="${r.value}"`).join(" "),yo=({content:e="",title:r}={})=>{const t=[{name:"xmlns",value:"http://www.w3.org/2000/svg"},{name:"fill",value:"currentColor"},{name:"viewBox",value:"0 0 24 24"},r?{name:"role",value:"img"}:{name:"aria-hidden",value:"true"}],o=r?`<title>${r}</title>`:"";return`<svg ${wo(t)}>${o}${e}</svg>`},Eo=e=>e.replace(/<(\/?)svg([^>]*)>/g,"").trim(),He=({["data-testid"]:e,svg:r,allyTitle:t,className:o,size:a=$o,...n})=>{const i=yo({content:Eo(r.svg),title:t}),c=_o(o,it,`${it}--${a}`);return m.jsx("span",{"aria-label":t,className:c,"data-testid":e,dangerouslySetInnerHTML:{__html:i},...n})};He.displayName="Icon";const So={"purpur-drawer-header__row":"_purpur-drawer-header__row_1yg5w_1","purpur-drawer-header__row--with-back-button":"_purpur-drawer-header__row--with-back-button_1yg5w_6","purpur-drawer-header__left":"_purpur-drawer-header__left_1yg5w_9","purpur-drawer-header__right":"_purpur-drawer-header__right_1yg5w_12","purpur-drawer-header__close-button":"_purpur-drawer-header__close-button_1yg5w_15","purpur-drawer-header__back-button--only-icon":"_purpur-drawer-header__back-button--only-icon_1yg5w_18"},Y=X.bind(So),F="purpur-drawer-header",Mt=s.forwardRef(({["data-testid"]:e="purpur-drawer-header",backButton:r,backButtonText:t,backButtonOnlyIcon:o,className:a,closeButtonText:n,onBackButtonClick:i,title:c,...u},l)=>{const d=Y([a,F]);return m.jsxs("div",{className:d,"data-testid":e,ref:l,...u,children:[m.jsxs("div",{className:Y([`${F}__row`,{[`${F}__row--with-back-button`]:r&&t&&i}]),"data-testid":`${e}-row`,children:[m.jsx("div",{className:Y(`${F}__left`),children:r&&t&&i?m.jsxs(Me,{"aria-label":o?t:"",className:Y([`${F}__back-button`,{[`${F}__back-button--only-icon`]:o}]),"data-testid":`${e}-back-button`,iconOnly:o,onClick:i,size:"sm",variant:o?De.TERTIARY_PURPLE:De.TEXT,children:[m.jsx(Lt,{size:"sm"}),!o&&t]}):m.jsx(ot,{asChild:!0,children:m.jsx(ke,{"data-testid":`${e}-title`,tag:"h2",variant:Ie.TITLE200,children:c})})}),m.jsx("div",{className:Y(`${F}__right`),children:m.jsx(On,{asChild:!0,children:m.jsx(Me,{"aria-label":n,className:Y(`${F}__close-button`),iconOnly:!0,size:"sm",variant:De.TERTIARY_PURPLE,children:m.jsx(jt,{size:"sm"})})})})]}),r&&t&&i&&m.jsx(ot,{asChild:!0,children:m.jsx(ke,{className:Y(`${F}__heading`),"data-testid":`${e}-title-with-back-button`,tag:"h2",variant:Ie.TITLE200,children:c})})]})});Mt.displayName="DrawerHeader";const xo=s.createContext(void 0);function Co(e){const r=s.useContext(xo);return e||r||"ltr"}function Po(e,[r,t]){return Math.min(t,Math.max(r,e))}function To(e,r){return s.useReducer((t,o)=>{const a=r[t][o];return a??t},e)}const It="ScrollArea",[kt,Jo]=ut(It),[Ao,k]=kt(It),Ro=s.forwardRef((e,r)=>{const{__scopeScrollArea:t,type:o="hover",dir:a,scrollHideDelay:n=600,...i}=e,[c,u]=s.useState(null),[l,d]=s.useState(null),[f,p]=s.useState(null),[h,g]=s.useState(null),[v,b]=s.useState(null),[_,C]=s.useState(0),[y,E]=s.useState(0),[P,N]=s.useState(!1),[T,S]=s.useState(!1),x=O(r,M=>u(M)),R=Co(a);return s.createElement(Ao,{scope:t,type:o,dir:R,scrollHideDelay:n,scrollArea:c,viewport:l,onViewportChange:d,content:f,onContentChange:p,scrollbarX:h,onScrollbarXChange:g,scrollbarXEnabled:P,onScrollbarXEnabledChange:N,scrollbarY:v,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:S,onCornerWidthChange:C,onCornerHeightChange:E},s.createElement(L.div,w({dir:R},i,{ref:x,style:{position:"relative","--radix-scroll-area-corner-width":_+"px","--radix-scroll-area-corner-height":y+"px",...e.style}})))}),Do="ScrollAreaViewport",No=s.forwardRef((e,r)=>{const{__scopeScrollArea:t,children:o,...a}=e,n=k(Do,t),i=s.useRef(null),c=O(r,i,n.onViewportChange);return s.createElement(s.Fragment,null,s.createElement("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"}}),s.createElement(L.div,w({"data-radix-scroll-area-viewport":""},a,{ref:c,style:{overflowX:n.scrollbarXEnabled?"scroll":"hidden",overflowY:n.scrollbarYEnabled?"scroll":"hidden",...e.style}}),s.createElement("div",{ref:n.onContentChange,style:{minWidth:"100%",display:"table"}},o)))}),z="ScrollAreaScrollbar",Oo=s.forwardRef((e,r)=>{const{forceMount:t,...o}=e,a=k(z,e.__scopeScrollArea),{onScrollbarXEnabledChange:n,onScrollbarYEnabledChange:i}=a,c=e.orientation==="horizontal";return s.useEffect(()=>(c?n(!0):i(!0),()=>{c?n(!1):i(!1)}),[c,n,i]),a.type==="hover"?s.createElement(Lo,w({},o,{ref:r,forceMount:t})):a.type==="scroll"?s.createElement(jo,w({},o,{ref:r,forceMount:t})):a.type==="auto"?s.createElement(Ft,w({},o,{ref:r,forceMount:t})):a.type==="always"?s.createElement(Ye,w({},o,{ref:r})):null}),Lo=s.forwardRef((e,r)=>{const{forceMount:t,...o}=e,a=k(z,e.__scopeScrollArea),[n,i]=s.useState(!1);return s.useEffect(()=>{const c=a.scrollArea;let u=0;if(c){const l=()=>{window.clearTimeout(u),i(!0)},d=()=>{u=window.setTimeout(()=>i(!1),a.scrollHideDelay)};return c.addEventListener("pointerenter",l),c.addEventListener("pointerleave",d),()=>{window.clearTimeout(u),c.removeEventListener("pointerenter",l),c.removeEventListener("pointerleave",d)}}},[a.scrollArea,a.scrollHideDelay]),s.createElement(q,{present:t||n},s.createElement(Ft,w({"data-state":n?"visible":"hidden"},o,{ref:r})))}),jo=s.forwardRef((e,r)=>{const{forceMount:t,...o}=e,a=k(z,e.__scopeScrollArea),n=e.orientation==="horizontal",i=$e(()=>u("SCROLL_END"),100),[c,u]=To("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return s.useEffect(()=>{if(c==="idle"){const l=window.setTimeout(()=>u("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(l)}},[c,a.scrollHideDelay,u]),s.useEffect(()=>{const l=a.viewport,d=n?"scrollLeft":"scrollTop";if(l){let f=l[d];const p=()=>{const h=l[d];f!==h&&(u("SCROLL"),i()),f=h};return l.addEventListener("scroll",p),()=>l.removeEventListener("scroll",p)}},[a.viewport,n,u,i]),s.createElement(q,{present:t||c!=="hidden"},s.createElement(Ye,w({"data-state":c==="hidden"?"hidden":"visible"},o,{ref:r,onPointerEnter:A(e.onPointerEnter,()=>u("POINTER_ENTER")),onPointerLeave:A(e.onPointerLeave,()=>u("POINTER_LEAVE"))})))}),Ft=s.forwardRef((e,r)=>{const t=k(z,e.__scopeScrollArea),{forceMount:o,...a}=e,[n,i]=s.useState(!1),c=e.orientation==="horizontal",u=$e(()=>{if(t.viewport){const l=t.viewport.offsetWidth<t.viewport.scrollWidth,d=t.viewport.offsetHeight<t.viewport.scrollHeight;i(c?l:d)}},10);return be(t.viewport,u),be(t.content,u),s.createElement(q,{present:o||n},s.createElement(Ye,w({"data-state":n?"visible":"hidden"},a,{ref:r})))}),Ye=s.forwardRef((e,r)=>{const{orientation:t="vertical",...o}=e,a=k(z,e.__scopeScrollArea),n=s.useRef(null),i=s.useRef(0),[c,u]=s.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=Ut(c.viewport,c.content),d={...o,sizes:c,onSizesChange:u,hasThumb:l>0&&l<1,onThumbChange:p=>n.current=p,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:p=>i.current=p};function f(p,h){return Wo(p,i.current,c,h)}return t==="horizontal"?s.createElement(Mo,w({},d,{ref:r,onThumbPositionChange:()=>{if(a.viewport&&n.current){const p=a.viewport.scrollLeft,h=st(p,c,a.dir);n.current.style.transform=`translate3d(${h}px, 0, 0)`}},onWheelScroll:p=>{a.viewport&&(a.viewport.scrollLeft=p)},onDragScroll:p=>{a.viewport&&(a.viewport.scrollLeft=f(p,a.dir))}})):t==="vertical"?s.createElement(Io,w({},d,{ref:r,onThumbPositionChange:()=>{if(a.viewport&&n.current){const p=a.viewport.scrollTop,h=st(p,c);n.current.style.transform=`translate3d(0, ${h}px, 0)`}},onWheelScroll:p=>{a.viewport&&(a.viewport.scrollTop=p)},onDragScroll:p=>{a.viewport&&(a.viewport.scrollTop=f(p))}})):null}),Mo=s.forwardRef((e,r)=>{const{sizes:t,onSizesChange:o,...a}=e,n=k(z,e.__scopeScrollArea),[i,c]=s.useState(),u=s.useRef(null),l=O(r,u,n.onScrollbarXChange);return s.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),s.createElement(Wt,w({"data-orientation":"horizontal"},a,{ref:l,sizes:t,style:{bottom:0,left:n.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:n.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":_e(t)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,f)=>{if(n.viewport){const p=n.viewport.scrollLeft+d.deltaX;e.onWheelScroll(p),Ht(p,f)&&d.preventDefault()}},onResize:()=>{u.current&&n.viewport&&i&&o({content:n.viewport.scrollWidth,viewport:n.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:me(i.paddingLeft),paddingEnd:me(i.paddingRight)}})}}))}),Io=s.forwardRef((e,r)=>{const{sizes:t,onSizesChange:o,...a}=e,n=k(z,e.__scopeScrollArea),[i,c]=s.useState(),u=s.useRef(null),l=O(r,u,n.onScrollbarYChange);return s.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),s.createElement(Wt,w({"data-orientation":"vertical"},a,{ref:l,sizes:t,style:{top:0,right:n.dir==="ltr"?0:void 0,left:n.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":_e(t)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,f)=>{if(n.viewport){const p=n.viewport.scrollTop+d.deltaY;e.onWheelScroll(p),Ht(p,f)&&d.preventDefault()}},onResize:()=>{u.current&&n.viewport&&i&&o({content:n.viewport.scrollHeight,viewport:n.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:me(i.paddingTop),paddingEnd:me(i.paddingBottom)}})}}))}),[ko,zt]=kt(z),Wt=s.forwardRef((e,r)=>{const{__scopeScrollArea:t,sizes:o,hasThumb:a,onThumbChange:n,onThumbPointerUp:i,onThumbPointerDown:c,onThumbPositionChange:u,onDragScroll:l,onWheelScroll:d,onResize:f,...p}=e,h=k(z,t),[g,v]=s.useState(null),b=O(r,x=>v(x)),_=s.useRef(null),C=s.useRef(""),y=h.viewport,E=o.content-o.viewport,P=D(d),N=D(u),T=$e(f,10);function S(x){if(_.current){const R=x.clientX-_.current.left,M=x.clientY-_.current.top;l({x:R,y:M})}}return s.useEffect(()=>{const x=R=>{const M=R.target;(g==null?void 0:g.contains(M))&&P(R,E)};return document.addEventListener("wheel",x,{passive:!1}),()=>document.removeEventListener("wheel",x,{passive:!1})},[y,g,E,P]),s.useEffect(N,[o,N]),be(g,T),be(h.content,T),s.createElement(ko,{scope:t,scrollbar:g,hasThumb:a,onThumbChange:D(n),onThumbPointerUp:D(i),onThumbPositionChange:N,onThumbPointerDown:D(c)},s.createElement(L.div,w({},p,{ref:b,style:{position:"absolute",...p.style},onPointerDown:A(e.onPointerDown,x=>{x.button===0&&(x.target.setPointerCapture(x.pointerId),_.current=g.getBoundingClientRect(),C.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",h.viewport&&(h.viewport.style.scrollBehavior="auto"),S(x))}),onPointerMove:A(e.onPointerMove,S),onPointerUp:A(e.onPointerUp,x=>{const R=x.target;R.hasPointerCapture(x.pointerId)&&R.releasePointerCapture(x.pointerId),document.body.style.webkitUserSelect=C.current,h.viewport&&(h.viewport.style.scrollBehavior=""),_.current=null})})))}),Fe="ScrollAreaThumb",Fo=s.forwardRef((e,r)=>{const{forceMount:t,...o}=e,a=zt(Fe,e.__scopeScrollArea);return s.createElement(q,{present:t||a.hasThumb},s.createElement(zo,w({ref:r},o)))}),zo=s.forwardRef((e,r)=>{const{__scopeScrollArea:t,style:o,...a}=e,n=k(Fe,t),i=zt(Fe,t),{onThumbPositionChange:c}=i,u=O(r,f=>i.onThumbChange(f)),l=s.useRef(),d=$e(()=>{l.current&&(l.current(),l.current=void 0)},100);return s.useEffect(()=>{const f=n.viewport;if(f){const p=()=>{if(d(),!l.current){const h=Uo(f,c);l.current=h,c()}};return c(),f.addEventListener("scroll",p),()=>f.removeEventListener("scroll",p)}},[n.viewport,d,c]),s.createElement(L.div,w({"data-state":i.hasThumb?"visible":"hidden"},a,{ref:u,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...o},onPointerDownCapture:A(e.onPointerDownCapture,f=>{const h=f.target.getBoundingClientRect(),g=f.clientX-h.left,v=f.clientY-h.top;i.onThumbPointerDown({x:g,y:v})}),onPointerUp:A(e.onPointerUp,i.onThumbPointerUp)}))});function me(e){return e?parseInt(e,10):0}function Ut(e,r){const t=e/r;return isNaN(t)?0:t}function _e(e){const r=Ut(e.viewport,e.content),t=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,o=(e.scrollbar.size-t)*r;return Math.max(o,18)}function Wo(e,r,t,o="ltr"){const a=_e(t),n=a/2,i=r||n,c=a-i,u=t.scrollbar.paddingStart+i,l=t.scrollbar.size-t.scrollbar.paddingEnd-c,d=t.content-t.viewport,f=o==="ltr"?[0,d]:[d*-1,0];return qt([u,l],f)(e)}function st(e,r,t="ltr"){const o=_e(r),a=r.scrollbar.paddingStart+r.scrollbar.paddingEnd,n=r.scrollbar.size-a,i=r.content-r.viewport,c=n-o,u=t==="ltr"?[0,i]:[i*-1,0],l=Po(e,u);return qt([0,i],[0,c])(l)}function qt(e,r){return t=>{if(e[0]===e[1]||r[0]===r[1])return r[0];const o=(r[1]-r[0])/(e[1]-e[0]);return r[0]+o*(t-e[0])}}function Ht(e,r){return e>0&&e<r}const Uo=(e,r=()=>{})=>{let t={left:e.scrollLeft,top:e.scrollTop},o=0;return function a(){const n={left:e.scrollLeft,top:e.scrollTop},i=t.left!==n.left,c=t.top!==n.top;(i||c)&&r(),t=n,o=window.requestAnimationFrame(a)}(),()=>window.cancelAnimationFrame(o)};function $e(e,r){const t=D(e),o=s.useRef(0);return s.useEffect(()=>()=>window.clearTimeout(o.current),[]),s.useCallback(()=>{window.clearTimeout(o.current),o.current=window.setTimeout(t,r)},[t,r])}function be(e,r){const t=D(r);he(()=>{let o=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(o),o=window.requestAnimationFrame(t)});return a.observe(e),()=>{window.cancelAnimationFrame(o),a.unobserve(e)}}},[e,t])}const qo=Ro,Ho=No,Yo=Oo,Xo=Fo,Bo={"purpur-drawer-scroll-area__root":"_purpur-drawer-scroll-area__root_1p63i_1","purpur-drawer-scroll-area__viewport":"_purpur-drawer-scroll-area__viewport_1p63i_4","purpur-drawer-scroll-area__scrollbar":"_purpur-drawer-scroll-area__scrollbar_1p63i_7","purpur-drawer-scroll-area__thumb":"_purpur-drawer-scroll-area__thumb_1p63i_18"},te=X.bind(Bo),re="purpur-drawer-scroll-area",ze=s.forwardRef(({["data-testid"]:e="purpur-drawer-scroll-area",children:r,className:t,...o},a)=>{const n=te([t,re]);return m.jsx("div",{className:n,"data-testid":e,ref:a,...o,children:m.jsxs(qo,{className:te(`${re}__root`),children:[m.jsx(Ho,{className:te(`${re}__viewport`),children:r}),m.jsx(Yo,{className:te(`${re}__scrollbar`),orientation:"vertical",children:m.jsx(Xo,{className:te(`${re}__thumb`)})})]})})});ze.displayName="DrawerScrollArea";const G=X.bind(Hn),W="purpur-drawer-frame",Yt=s.forwardRef(({["data-testid"]:e="purpur-drawer-frame",backButton:r,backButtonText:t,backButtonOnlyIcon:o,children:a,className:n,closeButtonText:i,footerContent:c,onAnimationEnd:u,onBackButtonClick:l,onSwipeStart:d,onSwipeMove:f,onSwipeCancel:p,onSwipeEnd:h,title:g,stickyFooter:v,...b},_)=>{const C=G([n,W,{[`${W}--sticky-footer`]:v}]);return m.jsxs("div",{className:C,"data-testid":e,ref:_,onAnimationEnd:u,...b,children:[m.jsx(At,{onSwipeStart:d,onSwipeMove:f,onSwipeCancel:p,onSwipeEnd:h}),m.jsx(Z,{className:G(`${W}__header`),variant:"header",stickyFooter:v,children:m.jsx(Mt,{title:g,backButtonOnlyIcon:o,backButton:r,backButtonText:t,closeButtonText:i,onBackButtonClick:l})}),v?m.jsxs(m.Fragment,{children:[m.jsx(ze,{className:G(`${W}__body`),"data-testid":`${e}-sticky-footer-scroll-area`,children:m.jsx(Z,{stickyFooter:!0,children:a})}),c&&m.jsx(Z,{className:G(`${W}__footer`),"data-testid":`${e}-sticky-footer`,variant:"footer",stickyFooter:v,children:c})]}):m.jsx(ze,{className:G(`${W}__body`),"data-testid":`${e}-scroll-area`,children:m.jsxs("div",{className:G([`${W}__content-container`,{[`${W}__content-container--no-footer`]:!c}]),children:[m.jsx(Z,{stickyFooter:v,children:a}),c&&m.jsx(Z,{"data-testid":`${e}-footer`,stickyFooter:v,variant:"footer",children:c})]})})]})});Yt.displayName="DrawerFrame";const Vo=(e,r)=>({onAnimationEnd:c=>{c.currentTarget.getAttribute("data-swipe")==="end"&&r(!1)},onSwipeStart:()=>{e.current&&e.current.setAttribute("data-swipe","start")},onSwipeMove:c=>{if(!e.current)return;const{y:u}=c.delta;e.current.setAttribute("data-swipe","move"),e.current.style.setProperty("--purpur-drawer-swipe-move-y",`${u}px`)},onSwipeCancel:()=>{e.current&&(e.current.setAttribute("data-swipe","cancel"),e.current.style.removeProperty("--purpur-drawer-swipe-move-y"),e.current.style.removeProperty("--purpur-drawer-swipe-end-y"))},onSwipeEnd:c=>{if(!e.current)return;const{y:u}=c.delta;e.current.setAttribute("data-swipe","end"),e.current.style.removeProperty("--purpur-drawer-swipe-move-y"),e.current.style.setProperty("--purpur-drawer-swipe-end-y",`${u}px`)}}),ne=X.bind(Wn),fe="purpur-drawer-content",Xt=s.forwardRef(({["data-testid"]:e="purpur-drawer-content",backButton:r=!1,backButtonText:t,backButtonOnlyIcon:o=!1,bodyText:a,children:n,className:i,closeButtonText:c,disableCloseOnClickOutside:u=!1,footerContent:l,onBackButtonClick:d,stickyFooter:f=!1,title:p,zIndex:h,...g},v)=>{const b=ne([i,fe]),_=s.useRef(null),C=s.useContext(Tt),{onAnimationEnd:y,onSwipeStart:E,onSwipeMove:P,onSwipeCancel:N,onSwipeEnd:T}=Vo(_,C),S=x=>{u&&x.preventDefault()};return m.jsx(An,{children:m.jsx(Rn,{className:ne("purpur-drawer-overlay"),style:h?{zIndex:h}:void 0,"data-testid":`${e}-overlay`,children:m.jsx(Dn,{onPointerDownOutside:S,className:b,"data-testid":e,ref:v,...g,children:m.jsx(Yt,{backButton:r,backButtonText:t,backButtonOnlyIcon:o,closeButtonText:c,className:ne(`${fe}__drawer-frame`),footerContent:l,ref:_,onAnimationEnd:y,onBackButtonClick:d,onSwipeStart:E,onSwipeMove:P,onSwipeCancel:N,onSwipeEnd:T,stickyFooter:f,title:p,children:a?m.jsxs("div",{className:ne(`${fe}__content-container`),children:[m.jsx(Nn,{className:ne(`${fe}__description`),"data-testid":`${e}-description`,children:a}),m.jsx("div",{children:n})]}):n})})})})});Xt.displayName="DrawerContent";const Bt=s.forwardRef(({["data-testid"]:e="purpur-drawer-trigger",children:r,className:t,...o},a)=>m.jsx(Tn,{asChild:!0,className:t,"data-testid":e,ref:a,...o,children:r}));Bt.displayName="DrawerTrigger";const Ko=X.bind(Mn),Go="purpur-drawer",we=({["data-testid"]:e="purpur-drawer",children:r,className:t,onOpenChange:o,open:a=!1,...n})=>{const[i,c]=s.useState(a),u=Ko([t,Go]),l=d=>{c(d),o==null||o(d)};return s.useEffect(()=>{c(a)},[a]),m.jsx(Tt.Provider,{value:l,children:m.jsx("div",{className:u,"data-testid":e,...n,children:m.jsx(Pn,{open:i,onOpenChange:l,children:r})})})};we.Trigger=Bt;we.Content=Xt;we.displayName="Drawer";exports.Drawer=we;
|
|
61
|
+
*/(function(e){(function(){var r={}.hasOwnProperty;function t(){for(var n="",i=0;i<arguments.length;i++){var c=arguments[i];c&&(n=a(n,o.call(this,c)))}return n}function o(n){if(typeof n=="string"||typeof n=="number")return this&&this[n]||n;if(typeof n!="object")return"";if(Array.isArray(n))return t.apply(this,n);if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]"))return n.toString();var i="";for(var c in n)r.call(n,c)&&n[c]&&(i=a(i,this&&this[c]||c));return i}function a(n,i){return i?n?n+" "+i:n+i:n}e.exports?(t.default=t,e.exports=t):window.classNames=t})()})(Ot);var vo=Ot.exports;const ho=po(vo),mo={"purpur-icon":"_purpur-icon_8u1lq_1","purpur-icon--xxs":"_purpur-icon--xxs_8u1lq_4","purpur-icon--xs":"_purpur-icon--xs_8u1lq_8","purpur-icon--sm":"_purpur-icon--sm_8u1lq_12","purpur-icon--md":"_purpur-icon--md_8u1lq_16","purpur-icon--lg":"_purpur-icon--lg_8u1lq_20","purpur-icon--xl":"_purpur-icon--xl_8u1lq_24"},bo=ho.bind(mo),it="purpur-icon",go="md",_o=e=>e.filter(r=>Object.keys(r).length>=1).map(r=>`${r.name}="${r.value}"`).join(" "),$o=({content:e="",title:r}={})=>{const t=[{name:"xmlns",value:"http://www.w3.org/2000/svg"},{name:"fill",value:"currentColor"},{name:"viewBox",value:"0 0 24 24"},r?{name:"role",value:"img"}:{name:"aria-hidden",value:"true"}],o=r?`<title>${r}</title>`:"";return`<svg ${_o(t)}>${o}${e}</svg>`},wo=e=>e.replace(/<(\/?)svg([^>]*)>/g,"").trim(),He=({["data-testid"]:e,svg:r,allyTitle:t,className:o,size:a=go,...n})=>{const i=$o({content:wo(r.svg),title:t}),c=bo(o,it,`${it}--${a}`);return m.jsx("span",{"aria-label":t,className:c,"data-testid":e,dangerouslySetInnerHTML:{__html:i},...n})};He.displayName="Icon";const yo={name:"arrow-left",svg:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M3.1 12a.9.9 0 0 1 .264-.636l5.5-5.5a.9.9 0 0 1 1.272 1.272L6.173 11.1H20a.9.9 0 0 1 0 1.8H6.173l3.963 3.964a.9.9 0 1 1-1.272 1.272l-5.5-5.5A.9.9 0 0 1 3.1 12Z" clip-rule="evenodd"/></svg>',keywords:["arrow-left"],category:"utility"},Lt=e=>m.jsx(He,{...e,svg:yo});Lt.displayName="IconArrowLeft";const Eo={name:"close",svg:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M4.864 4.864a.9.9 0 0 1 1.273 0L12 10.727l5.864-5.863a.9.9 0 0 1 1.272 1.272L13.273 12l5.863 5.864a.9.9 0 1 1-1.272 1.272L12 13.273l-5.863 5.863a.9.9 0 0 1-1.273-1.272L10.727 12 4.864 6.136a.9.9 0 0 1 0-1.272Z" clip-rule="evenodd"/></svg>',keywords:["close"],category:"utility"},jt=e=>m.jsx(He,{...e,svg:Eo});jt.displayName="IconClose";const So={"purpur-drawer-header__row":"_purpur-drawer-header__row_1yg5w_1","purpur-drawer-header__row--with-back-button":"_purpur-drawer-header__row--with-back-button_1yg5w_6","purpur-drawer-header__left":"_purpur-drawer-header__left_1yg5w_9","purpur-drawer-header__right":"_purpur-drawer-header__right_1yg5w_12","purpur-drawer-header__close-button":"_purpur-drawer-header__close-button_1yg5w_15","purpur-drawer-header__back-button--only-icon":"_purpur-drawer-header__back-button--only-icon_1yg5w_18"},Y=X.bind(So),F="purpur-drawer-header",Mt=s.forwardRef(({["data-testid"]:e="purpur-drawer-header",backButton:r,backButtonText:t,backButtonOnlyIcon:o,className:a,closeButtonText:n,onBackButtonClick:i,title:c,...u},l)=>{const d=Y([a,F]);return m.jsxs("div",{className:d,"data-testid":e,ref:l,...u,children:[m.jsxs("div",{className:Y([`${F}__row`,{[`${F}__row--with-back-button`]:r&&t&&i}]),"data-testid":`${e}-row`,children:[m.jsx("div",{className:Y(`${F}__left`),children:r&&t&&i?m.jsxs(Me,{"aria-label":o?t:"",className:Y([`${F}__back-button`,{[`${F}__back-button--only-icon`]:o}]),"data-testid":`${e}-back-button`,iconOnly:o,onClick:i,size:"sm",variant:o?De.TERTIARY_PURPLE:De.TEXT,children:[m.jsx(Lt,{size:"sm"}),!o&&t]}):m.jsx(ot,{asChild:!0,children:m.jsx(ke,{"data-testid":`${e}-title`,tag:"h2",variant:Ie.TITLE200,children:c})})}),m.jsx("div",{className:Y(`${F}__right`),children:m.jsx(On,{asChild:!0,children:m.jsx(Me,{"aria-label":n,className:Y(`${F}__close-button`),iconOnly:!0,size:"sm",variant:De.TERTIARY_PURPLE,children:m.jsx(jt,{size:"sm"})})})})]}),r&&t&&i&&m.jsx(ot,{asChild:!0,children:m.jsx(ke,{className:Y(`${F}__heading`),"data-testid":`${e}-title-with-back-button`,tag:"h2",variant:Ie.TITLE200,children:c})})]})});Mt.displayName="DrawerHeader";const xo=s.createContext(void 0);function Co(e){const r=s.useContext(xo);return e||r||"ltr"}function Po(e,[r,t]){return Math.min(t,Math.max(r,e))}function To(e,r){return s.useReducer((t,o)=>{const a=r[t][o];return a??t},e)}const It="ScrollArea",[kt,Jo]=ut(It),[Ao,k]=kt(It),Ro=s.forwardRef((e,r)=>{const{__scopeScrollArea:t,type:o="hover",dir:a,scrollHideDelay:n=600,...i}=e,[c,u]=s.useState(null),[l,d]=s.useState(null),[f,p]=s.useState(null),[h,g]=s.useState(null),[v,b]=s.useState(null),[_,C]=s.useState(0),[y,E]=s.useState(0),[P,N]=s.useState(!1),[T,S]=s.useState(!1),x=O(r,M=>u(M)),R=Co(a);return s.createElement(Ao,{scope:t,type:o,dir:R,scrollHideDelay:n,scrollArea:c,viewport:l,onViewportChange:d,content:f,onContentChange:p,scrollbarX:h,onScrollbarXChange:g,scrollbarXEnabled:P,onScrollbarXEnabledChange:N,scrollbarY:v,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:S,onCornerWidthChange:C,onCornerHeightChange:E},s.createElement(L.div,w({dir:R},i,{ref:x,style:{position:"relative","--radix-scroll-area-corner-width":_+"px","--radix-scroll-area-corner-height":y+"px",...e.style}})))}),Do="ScrollAreaViewport",No=s.forwardRef((e,r)=>{const{__scopeScrollArea:t,children:o,...a}=e,n=k(Do,t),i=s.useRef(null),c=O(r,i,n.onViewportChange);return s.createElement(s.Fragment,null,s.createElement("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"}}),s.createElement(L.div,w({"data-radix-scroll-area-viewport":""},a,{ref:c,style:{overflowX:n.scrollbarXEnabled?"scroll":"hidden",overflowY:n.scrollbarYEnabled?"scroll":"hidden",...e.style}}),s.createElement("div",{ref:n.onContentChange,style:{minWidth:"100%",display:"table"}},o)))}),z="ScrollAreaScrollbar",Oo=s.forwardRef((e,r)=>{const{forceMount:t,...o}=e,a=k(z,e.__scopeScrollArea),{onScrollbarXEnabledChange:n,onScrollbarYEnabledChange:i}=a,c=e.orientation==="horizontal";return s.useEffect(()=>(c?n(!0):i(!0),()=>{c?n(!1):i(!1)}),[c,n,i]),a.type==="hover"?s.createElement(Lo,w({},o,{ref:r,forceMount:t})):a.type==="scroll"?s.createElement(jo,w({},o,{ref:r,forceMount:t})):a.type==="auto"?s.createElement(Ft,w({},o,{ref:r,forceMount:t})):a.type==="always"?s.createElement(Ye,w({},o,{ref:r})):null}),Lo=s.forwardRef((e,r)=>{const{forceMount:t,...o}=e,a=k(z,e.__scopeScrollArea),[n,i]=s.useState(!1);return s.useEffect(()=>{const c=a.scrollArea;let u=0;if(c){const l=()=>{window.clearTimeout(u),i(!0)},d=()=>{u=window.setTimeout(()=>i(!1),a.scrollHideDelay)};return c.addEventListener("pointerenter",l),c.addEventListener("pointerleave",d),()=>{window.clearTimeout(u),c.removeEventListener("pointerenter",l),c.removeEventListener("pointerleave",d)}}},[a.scrollArea,a.scrollHideDelay]),s.createElement(q,{present:t||n},s.createElement(Ft,w({"data-state":n?"visible":"hidden"},o,{ref:r})))}),jo=s.forwardRef((e,r)=>{const{forceMount:t,...o}=e,a=k(z,e.__scopeScrollArea),n=e.orientation==="horizontal",i=$e(()=>u("SCROLL_END"),100),[c,u]=To("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return s.useEffect(()=>{if(c==="idle"){const l=window.setTimeout(()=>u("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(l)}},[c,a.scrollHideDelay,u]),s.useEffect(()=>{const l=a.viewport,d=n?"scrollLeft":"scrollTop";if(l){let f=l[d];const p=()=>{const h=l[d];f!==h&&(u("SCROLL"),i()),f=h};return l.addEventListener("scroll",p),()=>l.removeEventListener("scroll",p)}},[a.viewport,n,u,i]),s.createElement(q,{present:t||c!=="hidden"},s.createElement(Ye,w({"data-state":c==="hidden"?"hidden":"visible"},o,{ref:r,onPointerEnter:A(e.onPointerEnter,()=>u("POINTER_ENTER")),onPointerLeave:A(e.onPointerLeave,()=>u("POINTER_LEAVE"))})))}),Ft=s.forwardRef((e,r)=>{const t=k(z,e.__scopeScrollArea),{forceMount:o,...a}=e,[n,i]=s.useState(!1),c=e.orientation==="horizontal",u=$e(()=>{if(t.viewport){const l=t.viewport.offsetWidth<t.viewport.scrollWidth,d=t.viewport.offsetHeight<t.viewport.scrollHeight;i(c?l:d)}},10);return be(t.viewport,u),be(t.content,u),s.createElement(q,{present:o||n},s.createElement(Ye,w({"data-state":n?"visible":"hidden"},a,{ref:r})))}),Ye=s.forwardRef((e,r)=>{const{orientation:t="vertical",...o}=e,a=k(z,e.__scopeScrollArea),n=s.useRef(null),i=s.useRef(0),[c,u]=s.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=Ut(c.viewport,c.content),d={...o,sizes:c,onSizesChange:u,hasThumb:l>0&&l<1,onThumbChange:p=>n.current=p,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:p=>i.current=p};function f(p,h){return Wo(p,i.current,c,h)}return t==="horizontal"?s.createElement(Mo,w({},d,{ref:r,onThumbPositionChange:()=>{if(a.viewport&&n.current){const p=a.viewport.scrollLeft,h=st(p,c,a.dir);n.current.style.transform=`translate3d(${h}px, 0, 0)`}},onWheelScroll:p=>{a.viewport&&(a.viewport.scrollLeft=p)},onDragScroll:p=>{a.viewport&&(a.viewport.scrollLeft=f(p,a.dir))}})):t==="vertical"?s.createElement(Io,w({},d,{ref:r,onThumbPositionChange:()=>{if(a.viewport&&n.current){const p=a.viewport.scrollTop,h=st(p,c);n.current.style.transform=`translate3d(0, ${h}px, 0)`}},onWheelScroll:p=>{a.viewport&&(a.viewport.scrollTop=p)},onDragScroll:p=>{a.viewport&&(a.viewport.scrollTop=f(p))}})):null}),Mo=s.forwardRef((e,r)=>{const{sizes:t,onSizesChange:o,...a}=e,n=k(z,e.__scopeScrollArea),[i,c]=s.useState(),u=s.useRef(null),l=O(r,u,n.onScrollbarXChange);return s.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),s.createElement(Wt,w({"data-orientation":"horizontal"},a,{ref:l,sizes:t,style:{bottom:0,left:n.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:n.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":_e(t)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,f)=>{if(n.viewport){const p=n.viewport.scrollLeft+d.deltaX;e.onWheelScroll(p),Ht(p,f)&&d.preventDefault()}},onResize:()=>{u.current&&n.viewport&&i&&o({content:n.viewport.scrollWidth,viewport:n.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:me(i.paddingLeft),paddingEnd:me(i.paddingRight)}})}}))}),Io=s.forwardRef((e,r)=>{const{sizes:t,onSizesChange:o,...a}=e,n=k(z,e.__scopeScrollArea),[i,c]=s.useState(),u=s.useRef(null),l=O(r,u,n.onScrollbarYChange);return s.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),s.createElement(Wt,w({"data-orientation":"vertical"},a,{ref:l,sizes:t,style:{top:0,right:n.dir==="ltr"?0:void 0,left:n.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":_e(t)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,f)=>{if(n.viewport){const p=n.viewport.scrollTop+d.deltaY;e.onWheelScroll(p),Ht(p,f)&&d.preventDefault()}},onResize:()=>{u.current&&n.viewport&&i&&o({content:n.viewport.scrollHeight,viewport:n.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:me(i.paddingTop),paddingEnd:me(i.paddingBottom)}})}}))}),[ko,zt]=kt(z),Wt=s.forwardRef((e,r)=>{const{__scopeScrollArea:t,sizes:o,hasThumb:a,onThumbChange:n,onThumbPointerUp:i,onThumbPointerDown:c,onThumbPositionChange:u,onDragScroll:l,onWheelScroll:d,onResize:f,...p}=e,h=k(z,t),[g,v]=s.useState(null),b=O(r,x=>v(x)),_=s.useRef(null),C=s.useRef(""),y=h.viewport,E=o.content-o.viewport,P=D(d),N=D(u),T=$e(f,10);function S(x){if(_.current){const R=x.clientX-_.current.left,M=x.clientY-_.current.top;l({x:R,y:M})}}return s.useEffect(()=>{const x=R=>{const M=R.target;(g==null?void 0:g.contains(M))&&P(R,E)};return document.addEventListener("wheel",x,{passive:!1}),()=>document.removeEventListener("wheel",x,{passive:!1})},[y,g,E,P]),s.useEffect(N,[o,N]),be(g,T),be(h.content,T),s.createElement(ko,{scope:t,scrollbar:g,hasThumb:a,onThumbChange:D(n),onThumbPointerUp:D(i),onThumbPositionChange:N,onThumbPointerDown:D(c)},s.createElement(L.div,w({},p,{ref:b,style:{position:"absolute",...p.style},onPointerDown:A(e.onPointerDown,x=>{x.button===0&&(x.target.setPointerCapture(x.pointerId),_.current=g.getBoundingClientRect(),C.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",h.viewport&&(h.viewport.style.scrollBehavior="auto"),S(x))}),onPointerMove:A(e.onPointerMove,S),onPointerUp:A(e.onPointerUp,x=>{const R=x.target;R.hasPointerCapture(x.pointerId)&&R.releasePointerCapture(x.pointerId),document.body.style.webkitUserSelect=C.current,h.viewport&&(h.viewport.style.scrollBehavior=""),_.current=null})})))}),Fe="ScrollAreaThumb",Fo=s.forwardRef((e,r)=>{const{forceMount:t,...o}=e,a=zt(Fe,e.__scopeScrollArea);return s.createElement(q,{present:t||a.hasThumb},s.createElement(zo,w({ref:r},o)))}),zo=s.forwardRef((e,r)=>{const{__scopeScrollArea:t,style:o,...a}=e,n=k(Fe,t),i=zt(Fe,t),{onThumbPositionChange:c}=i,u=O(r,f=>i.onThumbChange(f)),l=s.useRef(),d=$e(()=>{l.current&&(l.current(),l.current=void 0)},100);return s.useEffect(()=>{const f=n.viewport;if(f){const p=()=>{if(d(),!l.current){const h=Uo(f,c);l.current=h,c()}};return c(),f.addEventListener("scroll",p),()=>f.removeEventListener("scroll",p)}},[n.viewport,d,c]),s.createElement(L.div,w({"data-state":i.hasThumb?"visible":"hidden"},a,{ref:u,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...o},onPointerDownCapture:A(e.onPointerDownCapture,f=>{const h=f.target.getBoundingClientRect(),g=f.clientX-h.left,v=f.clientY-h.top;i.onThumbPointerDown({x:g,y:v})}),onPointerUp:A(e.onPointerUp,i.onThumbPointerUp)}))});function me(e){return e?parseInt(e,10):0}function Ut(e,r){const t=e/r;return isNaN(t)?0:t}function _e(e){const r=Ut(e.viewport,e.content),t=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,o=(e.scrollbar.size-t)*r;return Math.max(o,18)}function Wo(e,r,t,o="ltr"){const a=_e(t),n=a/2,i=r||n,c=a-i,u=t.scrollbar.paddingStart+i,l=t.scrollbar.size-t.scrollbar.paddingEnd-c,d=t.content-t.viewport,f=o==="ltr"?[0,d]:[d*-1,0];return qt([u,l],f)(e)}function st(e,r,t="ltr"){const o=_e(r),a=r.scrollbar.paddingStart+r.scrollbar.paddingEnd,n=r.scrollbar.size-a,i=r.content-r.viewport,c=n-o,u=t==="ltr"?[0,i]:[i*-1,0],l=Po(e,u);return qt([0,i],[0,c])(l)}function qt(e,r){return t=>{if(e[0]===e[1]||r[0]===r[1])return r[0];const o=(r[1]-r[0])/(e[1]-e[0]);return r[0]+o*(t-e[0])}}function Ht(e,r){return e>0&&e<r}const Uo=(e,r=()=>{})=>{let t={left:e.scrollLeft,top:e.scrollTop},o=0;return function a(){const n={left:e.scrollLeft,top:e.scrollTop},i=t.left!==n.left,c=t.top!==n.top;(i||c)&&r(),t=n,o=window.requestAnimationFrame(a)}(),()=>window.cancelAnimationFrame(o)};function $e(e,r){const t=D(e),o=s.useRef(0);return s.useEffect(()=>()=>window.clearTimeout(o.current),[]),s.useCallback(()=>{window.clearTimeout(o.current),o.current=window.setTimeout(t,r)},[t,r])}function be(e,r){const t=D(r);he(()=>{let o=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(o),o=window.requestAnimationFrame(t)});return a.observe(e),()=>{window.cancelAnimationFrame(o),a.unobserve(e)}}},[e,t])}const qo=Ro,Ho=No,Yo=Oo,Xo=Fo,Bo={"purpur-drawer-scroll-area__root":"_purpur-drawer-scroll-area__root_1p63i_1","purpur-drawer-scroll-area__viewport":"_purpur-drawer-scroll-area__viewport_1p63i_4","purpur-drawer-scroll-area__scrollbar":"_purpur-drawer-scroll-area__scrollbar_1p63i_7","purpur-drawer-scroll-area__thumb":"_purpur-drawer-scroll-area__thumb_1p63i_18"},te=X.bind(Bo),re="purpur-drawer-scroll-area",ze=s.forwardRef(({["data-testid"]:e="purpur-drawer-scroll-area",children:r,className:t,...o},a)=>{const n=te([t,re]);return m.jsx("div",{className:n,"data-testid":e,ref:a,...o,children:m.jsxs(qo,{className:te(`${re}__root`),children:[m.jsx(Ho,{className:te(`${re}__viewport`),children:r}),m.jsx(Yo,{className:te(`${re}__scrollbar`),orientation:"vertical",children:m.jsx(Xo,{className:te(`${re}__thumb`)})})]})})});ze.displayName="DrawerScrollArea";const G=X.bind(Hn),W="purpur-drawer-frame",Yt=s.forwardRef(({["data-testid"]:e="purpur-drawer-frame",backButton:r,backButtonText:t,backButtonOnlyIcon:o,children:a,className:n,closeButtonText:i,footerContent:c,onAnimationEnd:u,onBackButtonClick:l,onSwipeStart:d,onSwipeMove:f,onSwipeCancel:p,onSwipeEnd:h,title:g,stickyFooter:v,...b},_)=>{const C=G([n,W,{[`${W}--sticky-footer`]:v}]);return m.jsxs("div",{className:C,"data-testid":e,ref:_,onAnimationEnd:u,...b,children:[m.jsx(At,{onSwipeStart:d,onSwipeMove:f,onSwipeCancel:p,onSwipeEnd:h}),m.jsx(Z,{className:G(`${W}__header`),variant:"header",stickyFooter:v,children:m.jsx(Mt,{title:g,backButtonOnlyIcon:o,backButton:r,backButtonText:t,closeButtonText:i,onBackButtonClick:l})}),v?m.jsxs(m.Fragment,{children:[m.jsx(ze,{className:G(`${W}__body`),"data-testid":`${e}-sticky-footer-scroll-area`,children:m.jsx(Z,{stickyFooter:!0,children:a})}),c&&m.jsx(Z,{className:G(`${W}__footer`),"data-testid":`${e}-sticky-footer`,variant:"footer",stickyFooter:v,children:c})]}):m.jsx(ze,{className:G(`${W}__body`),"data-testid":`${e}-scroll-area`,children:m.jsxs("div",{className:G([`${W}__content-container`,{[`${W}__content-container--no-footer`]:!c}]),children:[m.jsx(Z,{stickyFooter:v,children:a}),c&&m.jsx(Z,{"data-testid":`${e}-footer`,stickyFooter:v,variant:"footer",children:c})]})})]})});Yt.displayName="DrawerFrame";const Vo=(e,r)=>({onAnimationEnd:c=>{c.currentTarget.getAttribute("data-swipe")==="end"&&r(!1)},onSwipeStart:()=>{e.current&&e.current.setAttribute("data-swipe","start")},onSwipeMove:c=>{if(!e.current)return;const{y:u}=c.delta;e.current.setAttribute("data-swipe","move"),e.current.style.setProperty("--purpur-drawer-swipe-move-y",`${u}px`)},onSwipeCancel:()=>{e.current&&(e.current.setAttribute("data-swipe","cancel"),e.current.style.removeProperty("--purpur-drawer-swipe-move-y"),e.current.style.removeProperty("--purpur-drawer-swipe-end-y"))},onSwipeEnd:c=>{if(!e.current)return;const{y:u}=c.delta;e.current.setAttribute("data-swipe","end"),e.current.style.removeProperty("--purpur-drawer-swipe-move-y"),e.current.style.setProperty("--purpur-drawer-swipe-end-y",`${u}px`)}}),ne=X.bind(Wn),fe="purpur-drawer-content",Xt=s.forwardRef(({["data-testid"]:e="purpur-drawer-content",backButton:r=!1,backButtonText:t,backButtonOnlyIcon:o=!1,bodyText:a,children:n,className:i,closeButtonText:c,disableCloseOnClickOutside:u=!1,footerContent:l,onBackButtonClick:d,stickyFooter:f=!1,title:p,zIndex:h,...g},v)=>{const b=ne([i,fe]),_=s.useRef(null),C=s.useContext(Tt),{onAnimationEnd:y,onSwipeStart:E,onSwipeMove:P,onSwipeCancel:N,onSwipeEnd:T}=Vo(_,C),S=x=>{u&&x.preventDefault()};return m.jsx(An,{children:m.jsx(Rn,{className:ne("purpur-drawer-overlay"),style:h?{zIndex:h}:void 0,"data-testid":`${e}-overlay`,children:m.jsx(Dn,{onPointerDownOutside:S,className:b,"data-testid":e,ref:v,...g,children:m.jsx(Yt,{backButton:r,backButtonText:t,backButtonOnlyIcon:o,closeButtonText:c,className:ne(`${fe}__drawer-frame`),footerContent:l,ref:_,onAnimationEnd:y,onBackButtonClick:d,onSwipeStart:E,onSwipeMove:P,onSwipeCancel:N,onSwipeEnd:T,stickyFooter:f,title:p,children:a?m.jsxs("div",{className:ne(`${fe}__content-container`),children:[m.jsx(Nn,{className:ne(`${fe}__description`),"data-testid":`${e}-description`,children:a}),m.jsx("div",{children:n})]}):n})})})})});Xt.displayName="DrawerContent";const Bt=s.forwardRef(({["data-testid"]:e="purpur-drawer-trigger",children:r,className:t,...o},a)=>m.jsx(Tn,{asChild:!0,className:t,"data-testid":e,ref:a,...o,children:r}));Bt.displayName="DrawerTrigger";const Ko=X.bind(Mn),Go="purpur-drawer",we=({["data-testid"]:e="purpur-drawer",children:r,className:t,onOpenChange:o,open:a=!1,...n})=>{const[i,c]=s.useState(a),u=Ko([t,Go]),l=d=>{c(d),o==null||o(d)};return s.useEffect(()=>{c(a)},[a]),m.jsx(Tt.Provider,{value:l,children:m.jsx("div",{className:u,"data-testid":e,...n,children:m.jsx(Pn,{open:i,onOpenChange:l,children:r})})})};we.Trigger=Bt;we.Content=Xt;we.displayName="Drawer";exports.Drawer=we;
|
|
62
62
|
//# sourceMappingURL=drawer.cjs.js.map
|