@telegraph/modal 0.0.81 → 0.0.83
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/CHANGELOG.md +20 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.mjs +208 -185
- package/dist/esm/index.mjs.map +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @telegraph/modal
|
|
2
2
|
|
|
3
|
+
## 0.0.83
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`def8e98`](https://github.com/knocklabs/telegraph/commit/def8e983fe8d90d3d35f8ffe81ceb9daa46e1b30)]:
|
|
8
|
+
- @telegraph/style-engine@0.1.12
|
|
9
|
+
- @telegraph/layout@0.1.19
|
|
10
|
+
- @telegraph/button@0.0.81
|
|
11
|
+
- @telegraph/helpers@0.0.12
|
|
12
|
+
- @telegraph/icon@0.0.54
|
|
13
|
+
|
|
14
|
+
## 0.0.82
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies [[`45d2fe1`](https://github.com/knocklabs/telegraph/commit/45d2fe1284b97f984fb08f118e25a9d6bc58c353)]:
|
|
19
|
+
- @telegraph/layout@0.1.18
|
|
20
|
+
- @telegraph/button@0.0.80
|
|
21
|
+
- @telegraph/icon@0.0.53
|
|
22
|
+
|
|
3
23
|
## 0.0.81
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),G=require("@radix-ui/react-dialog"),g=require("react"),J=require("react-dom"),Q=require("@radix-ui/react-focus-scope"),ee=require("@radix-ui/react-portal"),te=require("@radix-ui/react-visually-hidden"),ne=require("@telegraph/button"),re=require("@telegraph/helpers"),se=require("@telegraph/icon"),m=require("@telegraph/layout"),w=require("framer-motion");function C(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const b=C(G),i=C(g),oe=C(J),ie=C(ee),ae=C(te);function T(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}function M(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function q(...e){return t=>{let n=!1;const s=e.map(r=>{const o=M(r,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let r=0;r<s.length;r++){const o=s[r];typeof o=="function"?o():M(e[r],null)}}}}function I(...e){return i.useCallback(q(...e),e)}var z=i.forwardRef((e,t)=>{const{children:n,...s}=e,r=i.Children.toArray(n),o=r.find(le);if(o){const a=o.props.children,c=r.map(p=>p===o?i.Children.count(a)>1?i.Children.only(null):i.isValidElement(a)?a.props.children:null:p);return d.jsx(k,{...s,ref:t,children:i.isValidElement(a)?i.cloneElement(a,void 0,c):null})}return d.jsx(k,{...s,ref:t,children:n})});z.displayName="Slot";var k=i.forwardRef((e,t)=>{const{children:n,...s}=e;if(i.isValidElement(n)){const r=de(n),o=ue(s,n.props);return n.type!==i.Fragment&&(o.ref=t?q(t,r):r),i.cloneElement(n,o)}return i.Children.count(n)>1?i.Children.only(null):null});k.displayName="SlotClone";var ce=({children:e})=>d.jsx(d.Fragment,{children:e});function le(e){return i.isValidElement(e)&&e.type===ce}function ue(e,t){const n={...t};for(const s in t){const r=e[s],o=t[s];/^on[A-Z]/.test(s)?r&&o?n[s]=(...c)=>{o(...c),r(...c)}:r&&(n[s]=r):s==="style"?n[s]={...r,...o}:s==="className"&&(n[s]=[r,o].filter(Boolean).join(" "))}return{...e,...n}}function de(e){var s,r;let t=(s=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(r=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var fe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],U=fe.reduce((e,t)=>{const n=i.forwardRef((s,r)=>{const{asChild:o,...a}=s,c=o?z:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),d.jsx(c,{...a,ref:r})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function pe(e,t){e&&oe.flushSync(()=>e.dispatchEvent(t))}function P(e){const t=i.useRef(e);return i.useEffect(()=>{t.current=e}),i.useMemo(()=>(...n)=>{var s;return(s=t.current)==null?void 0:s.call(t,...n)},[])}function ye(e,t=globalThis==null?void 0:globalThis.document){const n=P(e);i.useEffect(()=>{const s=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",s,{capture:!0}),()=>t.removeEventListener("keydown",s,{capture:!0})},[n,t])}var he="DismissableLayer",B="dismissableLayer.update",ve="dismissableLayer.pointerDownOutside",me="dismissableLayer.focusOutside",F,V=i.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),$=i.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:s,onPointerDownOutside:r,onFocusOutside:o,onInteractOutside:a,onDismiss:c,...p}=e,l=i.useContext(V),[u,y]=i.useState(null),h=(u==null?void 0:u.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,R]=i.useState({}),E=I(t,f=>y(f)),x=Array.from(l.layers),[L]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),v=x.indexOf(L),S=u?x.indexOf(u):-1,O=l.layersWithOutsidePointerEventsDisabled.size>0,N=S>=v,Z=Ee(f=>{const j=f.target,_=[...l.branches].some(D=>D.contains(j));!N||_||(r==null||r(f),a==null||a(f),f.defaultPrevented||c==null||c())},h),W=xe(f=>{const j=f.target;[...l.branches].some(D=>D.contains(j))||(o==null||o(f),a==null||a(f),f.defaultPrevented||c==null||c())},h);return ye(f=>{S===l.layers.size-1&&(s==null||s(f),!f.defaultPrevented&&c&&(f.preventDefault(),c()))},h),i.useEffect(()=>{if(u)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(F=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(u)),l.layers.add(u),A(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=F)}},[u,h,n,l]),i.useEffect(()=>()=>{u&&(l.layers.delete(u),l.layersWithOutsidePointerEventsDisabled.delete(u),A())},[u,l]),i.useEffect(()=>{const f=()=>R({});return document.addEventListener(B,f),()=>document.removeEventListener(B,f)},[]),d.jsx(U.div,{...p,ref:E,style:{pointerEvents:O?N?"auto":"none":void 0,...e.style},onFocusCapture:T(e.onFocusCapture,W.onFocusCapture),onBlurCapture:T(e.onBlurCapture,W.onBlurCapture),onPointerDownCapture:T(e.onPointerDownCapture,Z.onPointerDownCapture)})});$.displayName=he;var ge="DismissableLayerBranch",be=i.forwardRef((e,t)=>{const n=i.useContext(V),s=i.useRef(null),r=I(t,s);return i.useEffect(()=>{const o=s.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),d.jsx(U.div,{...e,ref:r})});be.displayName=ge;function Ee(e,t=globalThis==null?void 0:globalThis.document){const n=P(e),s=i.useRef(!1),r=i.useRef(()=>{});return i.useEffect(()=>{const o=c=>{if(c.target&&!s.current){let p=function(){K(ve,n,l,{discrete:!0})};const l={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=p,t.addEventListener("click",r.current,{once:!0})):p()}else t.removeEventListener("click",r.current);s.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",o),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>s.current=!0}}function xe(e,t=globalThis==null?void 0:globalThis.document){const n=P(e),s=i.useRef(!1);return i.useEffect(()=>{const r=o=>{o.target&&!s.current&&K(me,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>s.current=!0,onBlurCapture:()=>s.current=!1}}function A(){const e=new CustomEvent(B);document.dispatchEvent(e)}function K(e,t,n,{discrete:s}){const r=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),s?pe(r,o):r.dispatchEvent(o)}function Ce({prop:e,defaultProp:t,onChange:n=()=>{}}){const[s,r]=Pe({defaultProp:t,onChange:n}),o=e!==void 0,a=o?e:s,c=P(n),p=i.useCallback(l=>{if(o){const y=typeof l=="function"?l(e):l;y!==e&&c(y)}else r(l)},[o,e,r,c]);return[a,p]}function Pe({defaultProp:e,onChange:t}){const n=i.useState(e),[s]=n,r=i.useRef(s),o=P(t);return i.useEffect(()=>{r.current!==s&&(o(s),r.current=s)},[s,r,o]),n}const H=g.createContext({layers:[],setLayers:()=>{},addLayer:()=>{},removeLayer:()=>{},removeTopLayer:()=>{}}),Le=({children:e})=>{const[t,n]=g.useState([]),s=a=>{n(c=>[...c,a])},r=a=>{n(t.filter(c=>c!==a))},o=()=>{const a=t[t.length-1];a&&r(a)};return d.jsx(H.Provider,{value:{layers:t,setLayers:n,addLayer:s,removeLayer:r,removeTopLayer:o},children:e})},X=()=>g.useContext(H),Oe=({defaultOpen:e,open:t,onOpenChange:n,...s})=>{const[r,o]=Ce({prop:t,onChange:n,defaultProp:e}),a=X(),c=s.a11yTitle;if(g.useEffect(()=>{!r&&a.layers.includes(c)&&a.removeLayer(c)},[c,a,r]),!!r)return d.jsx(je,{open:r,onOpenChange:o,...s})},je=({open:e,onOpenChange:t,a11yTitle:n,a11yDescription:s,children:r,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:c,...p})=>{var x,L;const l=n,u=X();g.useEffect(()=>{!u||!e||u.layers.includes(l)||u.addLayer(l)},[l,u,e]);const y=((x=u.layers)==null?void 0:x.indexOf(l))||0,h=((L=u.layers)==null?void 0:L.length)||0,R=y!==0,E=l===u.layers[u.layers.length-1];return d.jsx($,{onEscapeKeyDown:v=>{E&&(v.preventDefault(),u.removeTopLayer(),t(!1))},onPointerDownOutside:v=>{E&&(v.preventDefault(),u.removeTopLayer(),t(!1))},children:d.jsxs(b.Root,{open:e,onOpenChange:v=>{var O;if(((O=u==null?void 0:u.layers)==null?void 0:O.length)>0)return v===!1&&l===u.layers[u.layers.length-1]?(u.removeLayer(l),t(!1)):void 0;t(v)},children:[d.jsxs(ae.Root,{children:[d.jsx(b.Title,{children:n}),s&&d.jsx(b.Description,{children:s})]}),d.jsx(w.AnimatePresence,{children:e&&d.jsx(ie.Root,{className:"tgph",children:d.jsx(we,{layer:y,children:d.jsx(Q.FocusScope,{trapped:typeof o=="boolean"?o:E,onMountAutoFocus:a,onUnmountAutoFocus:c,asChild:!0,children:d.jsx(re.RefToTgphRef,{children:d.jsx(m.Stack,{as:w.motion.div,initial:{top:`calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${h-1})`},animate:{top:R?`calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${y} )`:"var(--tgph-spacing-16)"},exit:{top:0},transition:{type:"spring",duration:.3,bounce:0},w:"full",justify:"center",style:{position:"fixed",left:0,maxHeight:"calc(100vh - var(--tgph-spacing-32))",maxWidth:"calc(100vw - var(--tgph-spacing-8))",zIndex:`calc(var(--tgph-zIndex-modal) + ${y})`},children:d.jsx(m.Stack,{direction:"column",as:w.motion.div,animate:{scale:1.02-Math.abs(h-y)*.02,transformOrigin:"center center"},transition:{duration:.2,bounce:0,type:"spring"},maxW:p.maxW??"160",w:p.w??"full",bg:"surface-1",border:"px",rounded:"4",shadow:"3",...p,children:r},`content-${l}`)},`container-${l}`)})})})})})]},l)})},we=({layer:e,children:t})=>e>0?t:d.jsxs(b.Overlay,{children:[d.jsx(m.Box,{as:w.motion.div,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3,bounce:0,type:"spring"},bg:"alpha-black-6",w:"full",h:"full",zIndex:"overlay",style:{position:"fixed",cursor:"pointer",inset:"0px"}}),t]}),Re=g.forwardRef(({children:e,...t},n)=>d.jsx(b.Content,{ref:n,asChild:!0,...t,children:d.jsx(m.Stack,{direction:"column",h:"full",...t,children:e})})),Se=({size:e="1",variant:t="ghost",...n})=>d.jsx(b.Close,{asChild:!0,children:d.jsx(ne.Button,{icon:{icon:se.Lucide.X,alt:"Close Modal"},variant:t,size:e,...n})}),De=({style:e,children:t,...n})=>d.jsx(m.Stack,{direction:"column",px:"6",py:"4",style:{overflowY:"auto",...e},...n,children:t}),Te=({children:e,...t})=>d.jsx(m.Stack,{direction:"row",justify:"space-between",align:"center",px:"6",py:"4",borderBottom:"px",...t,children:e}),ke=({children:e,...t})=>d.jsx(m.Stack,{direction:"row",align:"center",justify:"flex-end",gap:"2",px:"6",py:"4",borderTop:"px",...t,children:e}),Y={};Object.assign(Y,{Root:Oe,Content:Re,Close:Se,Body:De,Header:Te,Footer:ke});exports.Modal=Y;exports.ModalStackingProvider=Le;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),G=require("@radix-ui/react-dialog"),g=require("react"),J=require("react-dom"),Q=require("@radix-ui/react-focus-scope"),ee=require("@radix-ui/react-portal"),te=require("@radix-ui/react-visually-hidden"),ne=require("@telegraph/button"),re=require("@telegraph/helpers"),se=require("@telegraph/icon"),m=require("@telegraph/layout"),R=require("framer-motion");function C(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const E=C(G),i=C(g),oe=C(J),ie=C(ee),ae=C(te);function D(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}function M(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function I(...e){return t=>{let n=!1;const s=e.map(r=>{const o=M(r,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let r=0;r<s.length;r++){const o=s[r];typeof o=="function"?o():M(e[r],null)}}}}function q(...e){return i.useCallback(I(...e),e)}var $=i.forwardRef((e,t)=>{const{children:n,...s}=e,r=i.Children.toArray(n),o=r.find(le);if(o){const a=o.props.children,l=r.map(y=>y===o?i.Children.count(a)>1?i.Children.only(null):i.isValidElement(a)?a.props.children:null:y);return u.jsx(T,{...s,ref:t,children:i.isValidElement(a)?i.cloneElement(a,void 0,l):null})}return u.jsx(T,{...s,ref:t,children:n})});$.displayName="Slot";var T=i.forwardRef((e,t)=>{const{children:n,...s}=e;if(i.isValidElement(n)){const r=de(n),o=ue(s,n.props);return n.type!==i.Fragment&&(o.ref=t?I(t,r):r),i.cloneElement(n,o)}return i.Children.count(n)>1?i.Children.only(null):null});T.displayName="SlotClone";var ce=({children:e})=>u.jsx(u.Fragment,{children:e});function le(e){return i.isValidElement(e)&&e.type===ce}function ue(e,t){const n={...t};for(const s in t){const r=e[s],o=t[s];/^on[A-Z]/.test(s)?r&&o?n[s]=(...l)=>{o(...l),r(...l)}:r&&(n[s]=r):s==="style"?n[s]={...r,...o}:s==="className"&&(n[s]=[r,o].filter(Boolean).join(" "))}return{...e,...n}}function de(e){var s,r;let t=(s=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(r=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var fe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],z=fe.reduce((e,t)=>{const n=i.forwardRef((s,r)=>{const{asChild:o,...a}=s,l=o?$:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...a,ref:r})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function pe(e,t){e&&oe.flushSync(()=>e.dispatchEvent(t))}function B(e){const t=i.useRef(e);return i.useEffect(()=>{t.current=e}),i.useMemo(()=>(...n)=>{var s;return(s=t.current)==null?void 0:s.call(t,...n)},[])}function ye(e,t=globalThis==null?void 0:globalThis.document){const n=B(e);i.useEffect(()=>{const s=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",s,{capture:!0}),()=>t.removeEventListener("keydown",s,{capture:!0})},[n,t])}var he="DismissableLayer",k="dismissableLayer.update",ve="dismissableLayer.pointerDownOutside",me="dismissableLayer.focusOutside",F,U=i.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),V=i.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:s,onPointerDownOutside:r,onFocusOutside:o,onInteractOutside:a,onDismiss:l,...y}=e,d=i.useContext(U),[c,h]=i.useState(null),p=(c==null?void 0:c.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,P]=i.useState({}),b=q(t,f=>h(f)),x=Array.from(d.layers),[L]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),v=x.indexOf(L),j=c?x.indexOf(c):-1,w=d.layersWithOutsidePointerEventsDisabled.size>0,N=j>=v,Z=be(f=>{const O=f.target,_=[...d.branches].some(S=>S.contains(O));!N||_||(r==null||r(f),a==null||a(f),f.defaultPrevented||l==null||l())},p),W=xe(f=>{const O=f.target;[...d.branches].some(S=>S.contains(O))||(o==null||o(f),a==null||a(f),f.defaultPrevented||l==null||l())},p);return ye(f=>{j===d.layers.size-1&&(s==null||s(f),!f.defaultPrevented&&l&&(f.preventDefault(),l()))},p),i.useEffect(()=>{if(c)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(F=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(c)),d.layers.add(c),A(),()=>{n&&d.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=F)}},[c,p,n,d]),i.useEffect(()=>()=>{c&&(d.layers.delete(c),d.layersWithOutsidePointerEventsDisabled.delete(c),A())},[c,d]),i.useEffect(()=>{const f=()=>P({});return document.addEventListener(k,f),()=>document.removeEventListener(k,f)},[]),u.jsx(z.div,{...y,ref:b,style:{pointerEvents:w?N?"auto":"none":void 0,...e.style},onFocusCapture:D(e.onFocusCapture,W.onFocusCapture),onBlurCapture:D(e.onBlurCapture,W.onBlurCapture),onPointerDownCapture:D(e.onPointerDownCapture,Z.onPointerDownCapture)})});V.displayName=he;var ge="DismissableLayerBranch",Ee=i.forwardRef((e,t)=>{const n=i.useContext(U),s=i.useRef(null),r=q(t,s);return i.useEffect(()=>{const o=s.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),u.jsx(z.div,{...e,ref:r})});Ee.displayName=ge;function be(e,t=globalThis==null?void 0:globalThis.document){const n=B(e),s=i.useRef(!1),r=i.useRef(()=>{});return i.useEffect(()=>{const o=l=>{if(l.target&&!s.current){let y=function(){K(ve,n,d,{discrete:!0})};const d={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=y,t.addEventListener("click",r.current,{once:!0})):y()}else t.removeEventListener("click",r.current);s.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",o),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>s.current=!0}}function xe(e,t=globalThis==null?void 0:globalThis.document){const n=B(e),s=i.useRef(!1);return i.useEffect(()=>{const r=o=>{o.target&&!s.current&&K(me,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>s.current=!0,onBlurCapture:()=>s.current=!1}}function A(){const e=new CustomEvent(k);document.dispatchEvent(e)}function K(e,t,n,{discrete:s}){const r=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),s?pe(r,o):r.dispatchEvent(o)}var Ce=globalThis!=null&&globalThis.document?i.useLayoutEffect:()=>{},Pe=i[" useInsertionEffect ".trim().toString()]||Ce;function Le({prop:e,defaultProp:t,onChange:n=()=>{},caller:s}){const[r,o,a]=we({defaultProp:t,onChange:n}),l=e!==void 0,y=l?e:r;{const c=i.useRef(e!==void 0);i.useEffect(()=>{const h=c.current;h!==l&&console.warn(`${s} is changing from ${h?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),c.current=l},[l,s])}const d=i.useCallback(c=>{var h;if(l){const p=Oe(c)?c(e):c;p!==e&&((h=a.current)==null||h.call(a,p))}else o(c)},[l,e,o,a]);return[y,d]}function we({defaultProp:e,onChange:t}){const[n,s]=i.useState(e),r=i.useRef(n),o=i.useRef(t);return Pe(()=>{o.current=t},[t]),i.useEffect(()=>{var a;r.current!==n&&((a=o.current)==null||a.call(o,n),r.current=n)},[n,r]),[n,s,o]}function Oe(e){return typeof e=="function"}const H=g.createContext({layers:[],setLayers:()=>{},addLayer:()=>{},removeLayer:()=>{},removeTopLayer:()=>{}}),Re=({children:e})=>{const[t,n]=g.useState([]),s=a=>{n(l=>[...l,a])},r=a=>{n(t.filter(l=>l!==a))},o=()=>{const a=t[t.length-1];a&&r(a)};return u.jsx(H.Provider,{value:{layers:t,setLayers:n,addLayer:s,removeLayer:r,removeTopLayer:o},children:e})},X=()=>g.useContext(H),je=({defaultOpen:e,open:t,onOpenChange:n,...s})=>{const[r,o]=Le({prop:t,onChange:n,defaultProp:e}),a=X(),l=s.a11yTitle;if(g.useEffect(()=>{!r&&a.layers.includes(l)&&a.removeLayer(l)},[l,a,r]),!!r)return u.jsx(Se,{open:r,onOpenChange:o,...s})},Se=({open:e,onOpenChange:t,a11yTitle:n,a11yDescription:s,children:r,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:l,...y})=>{var x,L;const d=n,c=X();g.useEffect(()=>{!c||!e||c.layers.includes(d)||c.addLayer(d)},[d,c,e]);const h=((x=c.layers)==null?void 0:x.indexOf(d))||0,p=((L=c.layers)==null?void 0:L.length)||0,P=h!==0,b=d===c.layers[c.layers.length-1];return u.jsx(V,{onEscapeKeyDown:v=>{b&&(v.preventDefault(),c.removeTopLayer(),t(!1))},onPointerDownOutside:v=>{b&&(v.preventDefault(),c.removeTopLayer(),t(!1))},children:u.jsxs(E.Root,{open:e,onOpenChange:v=>{var w;if(((w=c==null?void 0:c.layers)==null?void 0:w.length)>0)return v===!1&&d===c.layers[c.layers.length-1]?(c.removeLayer(d),t(!1)):void 0;t(v)},children:[u.jsxs(ae.Root,{children:[u.jsx(E.Title,{children:n}),s&&u.jsx(E.Description,{children:s})]}),u.jsx(R.AnimatePresence,{children:e&&u.jsx(ie.Root,{className:"tgph",children:u.jsx(De,{layer:h,children:u.jsx(Q.FocusScope,{trapped:typeof o=="boolean"?o:b,onMountAutoFocus:a,onUnmountAutoFocus:l,asChild:!0,children:u.jsx(re.RefToTgphRef,{children:u.jsx(m.Stack,{as:R.motion.div,initial:{top:`calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${p-1})`},animate:{top:P?`calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${h} )`:"var(--tgph-spacing-16)"},exit:{top:0},transition:{type:"spring",duration:.3,bounce:0},w:"full",justify:"center",style:{position:"fixed",left:0,maxHeight:"calc(100vh - var(--tgph-spacing-32))",maxWidth:"calc(100vw - var(--tgph-spacing-8))",zIndex:`calc(var(--tgph-zIndex-modal) + ${h})`},children:u.jsx(m.Stack,{direction:"column",as:R.motion.div,animate:{scale:1.02-Math.abs(p-h)*.02,transformOrigin:"center center"},transition:{duration:.2,bounce:0,type:"spring"},maxW:y.maxW??"160",w:y.w??"full",bg:"surface-1",border:"px",rounded:"4",shadow:"3",...y,children:r},`content-${d}`)},`container-${d}`)})})})})})]},d)})},De=({layer:e,children:t})=>e>0?t:u.jsxs(E.Overlay,{children:[u.jsx(m.Box,{as:R.motion.div,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3,bounce:0,type:"spring"},bg:"alpha-black-6",w:"full",h:"full",zIndex:"overlay",style:{position:"fixed",cursor:"pointer",inset:"0px"}}),t]}),Te=g.forwardRef(({children:e,...t},n)=>u.jsx(E.Content,{ref:n,asChild:!0,...t,children:u.jsx(m.Stack,{direction:"column",h:"full",...t,children:e})})),ke=({size:e="1",variant:t="ghost",...n})=>u.jsx(E.Close,{asChild:!0,children:u.jsx(ne.Button,{icon:{icon:se.Lucide.X,alt:"Close Modal"},variant:t,size:e,...n})}),Be=({style:e,children:t,...n})=>u.jsx(m.Stack,{direction:"column",px:"6",py:"4",style:{overflowY:"auto",...e},...n,children:t}),Ne=({children:e,...t})=>u.jsx(m.Stack,{direction:"row",justify:"space-between",align:"center",px:"6",py:"4",borderBottom:"px",...t,children:e}),We=({children:e,...t})=>u.jsx(m.Stack,{direction:"row",align:"center",justify:"flex-end",gap:"2",px:"6",py:"4",borderTop:"px",...t,children:e}),Y={};Object.assign(Y,{Root:je,Content:Te,Close:ke,Body:Be,Header:Ne,Footer:We});exports.Modal=Y;exports.ModalStackingProvider=Re;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/@radix-ui/primitive/dist/index.mjs","../../../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../../node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../../node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../../node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../src/Modal/ModalStacking.tsx","../../src/Modal/Modal.tsx"],"sourcesContent":["// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dismissable-layer/src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","import React from \"react\";\n\nconst ModalStackingContext = React.createContext<{\n layers: Array<string>;\n setLayers: React.Dispatch<React.SetStateAction<Array<string>>>;\n addLayer: (id: string) => void;\n removeLayer: (id: string) => void;\n removeTopLayer: () => void;\n}>({\n layers: [],\n setLayers: () => {},\n addLayer: () => {},\n removeLayer: () => {},\n removeTopLayer: () => {},\n});\n\ntype ModalStackingProviderProps = {\n children: React.ReactNode;\n};\n\nconst ModalStackingProvider = ({ children }: ModalStackingProviderProps) => {\n const [layers, setLayers] = React.useState<Array<string>>([]);\n\n const addLayer = (id: string) => {\n setLayers((current) => [...current, id]);\n };\n\n const removeLayer = (id: string) => {\n setLayers(layers.filter((layer) => layer !== id));\n };\n\n const removeTopLayer = () => {\n const id = layers[layers.length - 1];\n if (!id) return;\n removeLayer(id);\n };\n\n return (\n <ModalStackingContext.Provider\n value={{ layers, setLayers, addLayer, removeLayer, removeTopLayer }}\n >\n {children}\n </ModalStackingContext.Provider>\n );\n};\n\nconst useModalStacking = () => {\n return React.useContext(ModalStackingContext);\n};\n\nexport { ModalStackingProvider, useModalStacking };\n","import * as Dialog from \"@radix-ui/react-dialog\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport * as Portal from \"@radix-ui/react-portal\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\nimport { Button } from \"@telegraph/button\";\nimport { RefToTgphRef } from \"@telegraph/helpers\";\nimport type {\n PolymorphicProps,\n TgphComponentProps,\n TgphElement,\n} from \"@telegraph/helpers\";\nimport { Lucide } from \"@telegraph/icon\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport React from \"react\";\n\nimport { useModalStacking } from \"./ModalStacking\";\n\ntype RootProps = Omit<\n React.ComponentPropsWithoutRef<typeof Dialog.Root>,\n \"modal\"\n> &\n React.ComponentPropsWithoutRef<typeof FocusScope> &\n TgphComponentProps<typeof Stack> & {\n a11yTitle: string;\n a11yDescription?: string;\n layer?: number;\n };\n\nconst Root = ({\n defaultOpen: defaultOpenProp,\n open: openProp,\n onOpenChange: onOpenChangeProp,\n ...props\n}: RootProps) => {\n const [open, onOpenChange] = useControllableState({\n prop: openProp,\n onChange: onOpenChangeProp,\n defaultProp: defaultOpenProp,\n });\n\n const stacking = useModalStacking();\n const id = props.a11yTitle;\n\n React.useEffect(() => {\n if (!open && stacking.layers.includes(id)) {\n stacking.removeLayer(id);\n }\n }, [id, stacking, open]);\n\n // Prevent rendering anything within the modal if it is not open\n if (!open) return;\n\n return <RootComponent open={open} onOpenChange={onOpenChange} {...props} />;\n};\n\ntype RootComponentProps = RootProps & {\n open: boolean;\n onOpenChange: (value: boolean) => void;\n};\n\nconst RootComponent = ({\n open,\n onOpenChange,\n a11yTitle,\n a11yDescription,\n children,\n // Focus scope props\n trapped,\n onMountAutoFocus,\n onUnmountAutoFocus,\n ...props\n}: RootComponentProps) => {\n // We use the a11yTitle as the id for the modal as it is unique\n // and can be used to identify the modal in the stacking context.\n // Without the need to generate a random id and manage between\n // different modal rendering patterns.\n const id = a11yTitle;\n const stacking = useModalStacking();\n React.useEffect(() => {\n if (!stacking || !open || stacking.layers.includes(id)) return;\n stacking.addLayer(id);\n }, [id, stacking, open]);\n\n const layer = stacking.layers?.indexOf(id) || 0;\n const layersLength = stacking.layers?.length || 0;\n const isStacked = layer !== 0;\n const isTopLayer = id === stacking.layers[stacking.layers.length - 1];\n\n return (\n <DismissableLayer\n onEscapeKeyDown={(event) => {\n if (!isTopLayer) return;\n event.preventDefault();\n stacking.removeTopLayer();\n onOpenChange(false);\n }}\n onPointerDownOutside={(event) => {\n if (!isTopLayer) return;\n event.preventDefault();\n stacking.removeTopLayer();\n onOpenChange(false);\n }}\n >\n <Dialog.Root\n open={open}\n onOpenChange={(value) => {\n const hasLayers = stacking?.layers?.length > 0;\n\n if (hasLayers) {\n if (\n value === false &&\n id === stacking.layers[stacking.layers.length - 1]\n ) {\n stacking.removeLayer(id);\n return onOpenChange(false);\n }\n // If the modal is not the top layer, do not call onOpenChange\n // when we are stacking the modals\n return;\n }\n\n onOpenChange(value);\n }}\n key={id}\n >\n <VisuallyHidden.Root>\n <Dialog.Title>{a11yTitle}</Dialog.Title>\n {a11yDescription && (\n <Dialog.Description>{a11yDescription}</Dialog.Description>\n )}\n </VisuallyHidden.Root>\n <AnimatePresence>\n {open && (\n // We add the className \"tgph\" here so that styles within\n // the portal get scoped properly to telegraph\n <Portal.Root className=\"tgph\">\n <Overlay layer={layer}>\n <FocusScope\n trapped={typeof trapped === \"boolean\" ? trapped : isTopLayer}\n onMountAutoFocus={onMountAutoFocus}\n onUnmountAutoFocus={onUnmountAutoFocus}\n asChild\n >\n <RefToTgphRef>\n <Stack\n as={motion.div}\n initial={{\n top: `calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${layersLength - 1})`,\n }}\n animate={{\n top: isStacked\n ? `calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${layer} )`\n : \"var(--tgph-spacing-16)\",\n }}\n exit={{ top: 0 }}\n transition={{ type: \"spring\", duration: 0.3, bounce: 0 }}\n w=\"full\"\n justify=\"center\"\n style={{\n position: \"fixed\",\n left: 0,\n maxHeight: \"calc(100vh - var(--tgph-spacing-32))\",\n maxWidth: \"calc(100vw - var(--tgph-spacing-8))\",\n zIndex: `calc(var(--tgph-zIndex-modal) + ${layer})`,\n }}\n key={`container-${id}`}\n >\n <Stack\n direction=\"column\"\n as={motion.div}\n animate={{\n scale: 1.02 - Math.abs(layersLength - layer) * 0.02,\n transformOrigin: \"center center\",\n }}\n transition={{\n duration: 0.2,\n bounce: 0,\n type: \"spring\",\n }}\n maxW={props.maxW ?? \"160\"}\n w={props.w ?? \"full\"}\n bg=\"surface-1\"\n border=\"px\"\n rounded=\"4\"\n shadow=\"3\"\n key={`content-${id}`}\n {...props}\n >\n {children}\n </Stack>\n </Stack>\n </RefToTgphRef>\n </FocusScope>\n </Overlay>\n </Portal.Root>\n )}\n </AnimatePresence>\n </Dialog.Root>\n </DismissableLayer>\n );\n};\n\ntype OverlayProps = TgphComponentProps<typeof Box> & {\n layer: number;\n};\n\nconst Overlay = ({ layer, children }: OverlayProps) => {\n // If the layer is greater than 0, we don't want to show this\n // overlay as to not stack the overlays on top of each other.\n if (layer > 0) return children;\n return (\n <Dialog.Overlay>\n <Box\n as={motion.div}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3, bounce: 0, type: \"spring\" }}\n bg=\"alpha-black-6\"\n w=\"full\"\n h=\"full\"\n zIndex=\"overlay\"\n style={{\n position: \"fixed\",\n cursor: \"pointer\",\n inset: \"0px\",\n }}\n />\n {children}\n </Dialog.Overlay>\n );\n};\n\ntype ContentProps = React.ComponentPropsWithoutRef<typeof Dialog.Content> &\n TgphComponentProps<typeof Stack>;\ntype ContentRef = React.ElementRef<typeof Dialog.Content>;\n\nconst Content = React.forwardRef<ContentRef, ContentProps>(\n ({ children, ...props }, forwardedRef) => {\n return (\n <Dialog.Content ref={forwardedRef} asChild {...props}>\n <Stack direction=\"column\" h=\"full\" {...props}>\n {children}\n </Stack>\n </Dialog.Content>\n );\n },\n);\n\ntype CloseProps<T extends TgphElement> = TgphComponentProps<typeof Button<T>> &\n Omit<React.ComponentPropsWithoutRef<typeof Dialog.Close>, \"color\">;\nconst Close = <T extends TgphElement>({\n size = \"1\",\n variant = \"ghost\",\n ...props\n}: CloseProps<T>) => {\n return (\n <Dialog.Close asChild>\n <Button\n icon={{ icon: Lucide.X, alt: \"Close Modal\" }}\n variant={variant}\n size={size}\n {...props}\n />\n </Dialog.Close>\n );\n};\n\ntype BodyProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Body = <T extends TgphElement>({\n style,\n children,\n ...props\n}: BodyProps<T>) => {\n return (\n <Stack\n direction=\"column\"\n px=\"6\"\n py=\"4\"\n style={{\n overflowY: \"auto\",\n ...style,\n }}\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\ntype HeaderProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Header = <T extends TgphElement>({\n children,\n ...props\n}: HeaderProps<T>) => {\n return (\n <Stack\n direction=\"row\"\n justify=\"space-between\"\n align=\"center\"\n px=\"6\"\n py=\"4\"\n borderBottom=\"px\"\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\ntype FooterProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Footer = <T extends TgphElement>({\n children,\n ...props\n}: FooterProps<T>) => {\n return (\n <Stack\n direction=\"row\"\n align=\"center\"\n justify=\"flex-end\"\n gap=\"2\"\n px=\"6\"\n py=\"4\"\n borderTop=\"px\"\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\nconst Modal = {} as {\n Root: typeof Root;\n Content: typeof Content;\n Close: typeof Close;\n Body: typeof Body;\n Header: typeof Header;\n Footer: typeof Footer;\n};\n\nObject.assign(Modal, {\n Root,\n Content,\n Close,\n Body,\n Header,\n Footer,\n});\n\nexport { Modal };\n"],"names":["composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","setRef","ref","value","composeRefs","refs","node","hasCleanup","cleanups","cleanup","i","useComposedRefs","React","Slot","props","forwardedRef","children","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","jsx","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","args","element","getter","_a","mayWarn","_b","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","dispatchDiscreteCustomEvent","target","ReactDOM","useCallbackRef","callback","callbackRef","useEscapeKeydown","onEscapeKeyDownProp","ownerDocument","onEscapeKeyDown","handleKeyDown","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","context","setNode","force","composedRefs","node2","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","index","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","branch","focusOutside","useFocusOutside","dispatchUpdate","handleUpdate","BRANCH_NAME","DismissableLayerBranch","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent2","handleAndDispatchCustomEvent","eventDetail","timerId","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","name","handler","detail","discrete","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","ModalStackingContext","ModalStackingProvider","setLayers","addLayer","id","current","removeLayer","layer","removeTopLayer","useModalStacking","Root","defaultOpenProp","openProp","onOpenChangeProp","open","onOpenChange","stacking","RootComponent","a11yTitle","a11yDescription","trapped","onMountAutoFocus","onUnmountAutoFocus","layersLength","isStacked","isTopLayer","jsxs","Dialog","VisuallyHidden","AnimatePresence","Portal","Overlay","FocusScope","RefToTgphRef","Stack","motion","Box","Content","Close","size","variant","Button","Lucide","Body","style","Header","Footer","Modal"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/primitive/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../../node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../../../../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../../../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../src/Modal/ModalStacking.tsx","../../src/Modal/Modal.tsx"],"sourcesContent":["// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dismissable-layer/src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n },\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (true) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (true) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","import React from \"react\";\n\nconst ModalStackingContext = React.createContext<{\n layers: Array<string>;\n setLayers: React.Dispatch<React.SetStateAction<Array<string>>>;\n addLayer: (id: string) => void;\n removeLayer: (id: string) => void;\n removeTopLayer: () => void;\n}>({\n layers: [],\n setLayers: () => {},\n addLayer: () => {},\n removeLayer: () => {},\n removeTopLayer: () => {},\n});\n\ntype ModalStackingProviderProps = {\n children: React.ReactNode;\n};\n\nconst ModalStackingProvider = ({ children }: ModalStackingProviderProps) => {\n const [layers, setLayers] = React.useState<Array<string>>([]);\n\n const addLayer = (id: string) => {\n setLayers((current) => [...current, id]);\n };\n\n const removeLayer = (id: string) => {\n setLayers(layers.filter((layer) => layer !== id));\n };\n\n const removeTopLayer = () => {\n const id = layers[layers.length - 1];\n if (!id) return;\n removeLayer(id);\n };\n\n return (\n <ModalStackingContext.Provider\n value={{ layers, setLayers, addLayer, removeLayer, removeTopLayer }}\n >\n {children}\n </ModalStackingContext.Provider>\n );\n};\n\nconst useModalStacking = () => {\n return React.useContext(ModalStackingContext);\n};\n\nexport { ModalStackingProvider, useModalStacking };\n","import * as Dialog from \"@radix-ui/react-dialog\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport * as Portal from \"@radix-ui/react-portal\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\nimport { Button } from \"@telegraph/button\";\nimport { RefToTgphRef } from \"@telegraph/helpers\";\nimport type {\n PolymorphicProps,\n TgphComponentProps,\n TgphElement,\n} from \"@telegraph/helpers\";\nimport { Lucide } from \"@telegraph/icon\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport React from \"react\";\n\nimport { useModalStacking } from \"./ModalStacking\";\n\ntype RootProps = Omit<\n React.ComponentPropsWithoutRef<typeof Dialog.Root>,\n \"modal\"\n> &\n React.ComponentPropsWithoutRef<typeof FocusScope> &\n TgphComponentProps<typeof Stack> & {\n a11yTitle: string;\n a11yDescription?: string;\n layer?: number;\n };\n\nconst Root = ({\n defaultOpen: defaultOpenProp,\n open: openProp,\n onOpenChange: onOpenChangeProp,\n ...props\n}: RootProps) => {\n const [open, onOpenChange] = useControllableState({\n prop: openProp,\n onChange: onOpenChangeProp,\n defaultProp: defaultOpenProp,\n });\n\n const stacking = useModalStacking();\n const id = props.a11yTitle;\n\n React.useEffect(() => {\n if (!open && stacking.layers.includes(id)) {\n stacking.removeLayer(id);\n }\n }, [id, stacking, open]);\n\n // Prevent rendering anything within the modal if it is not open\n if (!open) return;\n\n return <RootComponent open={open} onOpenChange={onOpenChange} {...props} />;\n};\n\ntype RootComponentProps = RootProps & {\n open: boolean;\n onOpenChange: (value: boolean) => void;\n};\n\nconst RootComponent = ({\n open,\n onOpenChange,\n a11yTitle,\n a11yDescription,\n children,\n // Focus scope props\n trapped,\n onMountAutoFocus,\n onUnmountAutoFocus,\n ...props\n}: RootComponentProps) => {\n // We use the a11yTitle as the id for the modal as it is unique\n // and can be used to identify the modal in the stacking context.\n // Without the need to generate a random id and manage between\n // different modal rendering patterns.\n const id = a11yTitle;\n const stacking = useModalStacking();\n React.useEffect(() => {\n if (!stacking || !open || stacking.layers.includes(id)) return;\n stacking.addLayer(id);\n }, [id, stacking, open]);\n\n const layer = stacking.layers?.indexOf(id) || 0;\n const layersLength = stacking.layers?.length || 0;\n const isStacked = layer !== 0;\n const isTopLayer = id === stacking.layers[stacking.layers.length - 1];\n\n return (\n <DismissableLayer\n onEscapeKeyDown={(event) => {\n if (!isTopLayer) return;\n event.preventDefault();\n stacking.removeTopLayer();\n onOpenChange(false);\n }}\n onPointerDownOutside={(event) => {\n if (!isTopLayer) return;\n event.preventDefault();\n stacking.removeTopLayer();\n onOpenChange(false);\n }}\n >\n <Dialog.Root\n open={open}\n onOpenChange={(value) => {\n const hasLayers = stacking?.layers?.length > 0;\n\n if (hasLayers) {\n if (\n value === false &&\n id === stacking.layers[stacking.layers.length - 1]\n ) {\n stacking.removeLayer(id);\n return onOpenChange(false);\n }\n // If the modal is not the top layer, do not call onOpenChange\n // when we are stacking the modals\n return;\n }\n\n onOpenChange(value);\n }}\n key={id}\n >\n <VisuallyHidden.Root>\n <Dialog.Title>{a11yTitle}</Dialog.Title>\n {a11yDescription && (\n <Dialog.Description>{a11yDescription}</Dialog.Description>\n )}\n </VisuallyHidden.Root>\n <AnimatePresence>\n {open && (\n // We add the className \"tgph\" here so that styles within\n // the portal get scoped properly to telegraph\n <Portal.Root className=\"tgph\">\n <Overlay layer={layer}>\n <FocusScope\n trapped={typeof trapped === \"boolean\" ? trapped : isTopLayer}\n onMountAutoFocus={onMountAutoFocus}\n onUnmountAutoFocus={onUnmountAutoFocus}\n asChild\n >\n <RefToTgphRef>\n <Stack\n as={motion.div}\n initial={{\n top: `calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${layersLength - 1})`,\n }}\n animate={{\n top: isStacked\n ? `calc(var(--tgph-spacing-16) + var(--tgph-spacing-4) * ${layer} )`\n : \"var(--tgph-spacing-16)\",\n }}\n exit={{ top: 0 }}\n transition={{ type: \"spring\", duration: 0.3, bounce: 0 }}\n w=\"full\"\n justify=\"center\"\n style={{\n position: \"fixed\",\n left: 0,\n maxHeight: \"calc(100vh - var(--tgph-spacing-32))\",\n maxWidth: \"calc(100vw - var(--tgph-spacing-8))\",\n zIndex: `calc(var(--tgph-zIndex-modal) + ${layer})`,\n }}\n key={`container-${id}`}\n >\n <Stack\n direction=\"column\"\n as={motion.div}\n animate={{\n scale: 1.02 - Math.abs(layersLength - layer) * 0.02,\n transformOrigin: \"center center\",\n }}\n transition={{\n duration: 0.2,\n bounce: 0,\n type: \"spring\",\n }}\n maxW={props.maxW ?? \"160\"}\n w={props.w ?? \"full\"}\n bg=\"surface-1\"\n border=\"px\"\n rounded=\"4\"\n shadow=\"3\"\n key={`content-${id}`}\n {...props}\n >\n {children}\n </Stack>\n </Stack>\n </RefToTgphRef>\n </FocusScope>\n </Overlay>\n </Portal.Root>\n )}\n </AnimatePresence>\n </Dialog.Root>\n </DismissableLayer>\n );\n};\n\ntype OverlayProps = TgphComponentProps<typeof Box> & {\n layer: number;\n};\n\nconst Overlay = ({ layer, children }: OverlayProps) => {\n // If the layer is greater than 0, we don't want to show this\n // overlay as to not stack the overlays on top of each other.\n if (layer > 0) return children;\n return (\n <Dialog.Overlay>\n <Box\n as={motion.div}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3, bounce: 0, type: \"spring\" }}\n bg=\"alpha-black-6\"\n w=\"full\"\n h=\"full\"\n zIndex=\"overlay\"\n style={{\n position: \"fixed\",\n cursor: \"pointer\",\n inset: \"0px\",\n }}\n />\n {children}\n </Dialog.Overlay>\n );\n};\n\ntype ContentProps = React.ComponentPropsWithoutRef<typeof Dialog.Content> &\n TgphComponentProps<typeof Stack>;\ntype ContentRef = React.ElementRef<typeof Dialog.Content>;\n\nconst Content = React.forwardRef<ContentRef, ContentProps>(\n ({ children, ...props }, forwardedRef) => {\n return (\n <Dialog.Content ref={forwardedRef} asChild {...props}>\n <Stack direction=\"column\" h=\"full\" {...props}>\n {children}\n </Stack>\n </Dialog.Content>\n );\n },\n);\n\ntype CloseProps<T extends TgphElement> = TgphComponentProps<typeof Button<T>> &\n Omit<React.ComponentPropsWithoutRef<typeof Dialog.Close>, \"color\">;\nconst Close = <T extends TgphElement>({\n size = \"1\",\n variant = \"ghost\",\n ...props\n}: CloseProps<T>) => {\n return (\n <Dialog.Close asChild>\n <Button\n icon={{ icon: Lucide.X, alt: \"Close Modal\" }}\n variant={variant}\n size={size}\n {...props}\n />\n </Dialog.Close>\n );\n};\n\ntype BodyProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Body = <T extends TgphElement>({\n style,\n children,\n ...props\n}: BodyProps<T>) => {\n return (\n <Stack\n direction=\"column\"\n px=\"6\"\n py=\"4\"\n style={{\n overflowY: \"auto\",\n ...style,\n }}\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\ntype HeaderProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Header = <T extends TgphElement>({\n children,\n ...props\n}: HeaderProps<T>) => {\n return (\n <Stack\n direction=\"row\"\n justify=\"space-between\"\n align=\"center\"\n px=\"6\"\n py=\"4\"\n borderBottom=\"px\"\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\ntype FooterProps<T extends TgphElement> = PolymorphicProps<T> &\n TgphComponentProps<typeof Stack>;\n\nconst Footer = <T extends TgphElement>({\n children,\n ...props\n}: FooterProps<T>) => {\n return (\n <Stack\n direction=\"row\"\n align=\"center\"\n justify=\"flex-end\"\n gap=\"2\"\n px=\"6\"\n py=\"4\"\n borderTop=\"px\"\n {...props}\n >\n {children}\n </Stack>\n );\n};\n\nconst Modal = {} as {\n Root: typeof Root;\n Content: typeof Content;\n Close: typeof Close;\n Body: typeof Body;\n Header: typeof Header;\n Footer: typeof Footer;\n};\n\nObject.assign(Modal, {\n Root,\n Content,\n Close,\n Body,\n Header,\n Footer,\n});\n\nexport { Modal };\n"],"names":["composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","setRef","ref","value","composeRefs","refs","node","hasCleanup","cleanups","cleanup","i","useComposedRefs","React","Slot","props","forwardedRef","children","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","jsx","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","args","element","getter","_a","mayWarn","_b","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","dispatchDiscreteCustomEvent","target","ReactDOM","useCallbackRef","callback","callbackRef","useEscapeKeydown","onEscapeKeyDownProp","ownerDocument","onEscapeKeyDown","handleKeyDown","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","context","setNode","force","composedRefs","node2","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","index","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","branch","focusOutside","useFocusOutside","dispatchUpdate","handleUpdate","BRANCH_NAME","DismissableLayerBranch","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent2","handleAndDispatchCustomEvent","eventDetail","timerId","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","name","handler","detail","discrete","useLayoutEffect2","useInsertionEffect","useLayoutEffect","useControllableState","prop","defaultProp","onChange","caller","uncontrolledProp","setUncontrolledProp","onChangeRef","useUncontrolledState","isControlled","isControlledRef","wasControlled","setValue","nextValue","value2","isFunction","prevValueRef","ModalStackingContext","ModalStackingProvider","setLayers","addLayer","id","current","removeLayer","layer","removeTopLayer","useModalStacking","Root","defaultOpenProp","openProp","onOpenChangeProp","open","onOpenChange","stacking","RootComponent","a11yTitle","a11yDescription","trapped","onMountAutoFocus","onUnmountAutoFocus","layersLength","isStacked","isTopLayer","jsxs","Dialog","VisuallyHidden","AnimatePresence","Portal","Overlay","FocusScope","RefToTgphRef","Stack","motion","Box","Content","Close","size","variant","Button","Lucide","Body","style","Header","Footer","Modal"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}
|