11 lines
40 KiB
JavaScript
11 lines
40 KiB
JavaScript
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,92879,e=>{"use strict";var t=e.i(36792),n=e.i(34346),r=e.i(87830),o=e.i(69074);let a=(0,n.createContext)(void 0);function i({children:e}){let{data:i,status:s}=(0,r.useSession)(),u=(0,o.useSearchParams)(),[l,c]=(0,n.useState)([]),[d,f]=(0,n.useState)(!0),[m,p]=(0,n.useState)(null),[v,h]=(0,n.useState)({rootId:"",members:{}}),[g,y]=(0,n.useState)(null),b=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=new AbortController,t=e.signal;return(async()=>{let e=u.get("treeId");if("loading"===s)return;if(!i?.user?.id){t.aborted||(y(null),h({rootId:"",members:{}}),f(!1),b.current=null);return}let n=e||"first";if(b.current===n||e&&e===g?.id)return;b.current=n,t.aborted||f(!0);let r="first"===n?"/api/trees":`/api/trees/${n}`;try{let e=await fetch(r,{signal:t});if(!e.ok)throw Error(`HTTP error! status: ${e.status}`);let o=await e.json();if(t.aborted)return;let a=null;if(a="first"===n?o.trees?.[0]:o.tree){y(a);try{let e=await fetch(`/api/trees/${a.id}/members`,{signal:t});if(!e.ok)throw Error(`Failed to load members: ${e.status}`);let n=await e.json();if(t.aborted)return;if(n.members){let e=n.members.reduce((e,t)=>(e[t.id]=t,e),{});h({rootId:n.rootId||"",members:e})}}catch(e){if("AbortError"===e.name)return;console.error("加载成员数据失败:",e),h({rootId:"",members:{}})}}else y(null),h({rootId:"",members:{}})}catch(e){if("AbortError"===e.name||"Failed to fetch"===e.message||e.toString().includes("Failed to fetch"))return;console.error("加载家族树失败:",e.message||e),y(null),h({rootId:"",members:{}})}finally{t.aborted||(f(!1),b.current=null)}})(),()=>{e.abort()}},[u,i?.user?.id,s]);let E=(0,n.useCallback)(e=>v.members[e],[v]),w=(0,n.useCallback)(async e=>{if(!g?.id)throw Error("没有选择家族树");let t=await fetch(`/api/trees/${g.id}/members`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json()).error||"添加成员失败");let n=await t.json();h(e=>({...e,members:{...e.members,[n.member.id]:n.member}}))},[g?.id]),x=(0,n.useCallback)(async(e,t)=>{if(!g?.id)throw Error("没有选择家族树");let n=await fetch(`/api/trees/${g.id}/members/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw Error((await n.json()).error||"更新成员失败");let r=await n.json();h(t=>({...t,members:{...t.members,[e]:r.member}}))},[g?.id]),C=(0,n.useCallback)(async e=>{if(!g?.id)throw Error("没有选择家族树");let t=await fetch(`/api/trees/${g.id}/members/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json()).error||"删除成员失败");h(t=>{let n={...t.members};return delete n[e],{...t,members:n}})},[g?.id]),N=(0,n.useCallback)(async e=>{if(!g?.id)throw Error("没有选择家族树");let t=await fetch(`/api/trees/${g.id}/import`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json()).error||"导入数据失败");let n=await fetch(`/api/trees/${g.id}/members`),r=await n.json();if(r.members){let e=r.members.reduce((e,t)=>(e[t.id]=t,e),{});h({rootId:r.rootId||"",members:e})}},[g?.id]),R=(0,n.useCallback)(async()=>{h({rootId:"",members:{}})},[]),j=(0,n.useCallback)(e=>{if(!e.trim())return void c([]);let t=e.toLowerCase();c(Object.values(v.members).filter(e=>e.fullName.includes(t)||e.givenName.includes(t)||e.courtesyName?.includes(t)||e.artName?.includes(t)))},[v]);return(0,n.useEffect)(()=>{let e=e=>{N(e.detail)};return window.addEventListener("family-data-import",e),()=>window.removeEventListener("family-data-import",e)},[N]),(0,t.jsx)(a.Provider,{value:{treeData:v,currentTree:g,getMember:E,addMember:w,updateMember:x,deleteMember:C,searchResults:l,searchMembers:j,loadData:N,resetData:R,isLoading:d,highlightedMemberId:m,setHighlightedMemberId:p},children:e})}function s({children:e}){return(0,t.jsx)(n.Suspense,{fallback:(0,t.jsx)("div",{children:"Loading..."}),children:(0,t.jsx)(i,{children:e})})}function u(){let e=(0,n.useContext)(a);if(void 0===e)throw Error("useFamily must be used within a FamilyProvider");return e}e.s(["FamilyProvider",()=>s,"useFamily",()=>u])},57213,e=>{"use strict";var t=e.i(34346),n=e.i(36792);function r(e,r){let o=t.createContext(r),a=e=>{let{children:r,...a}=e,i=t.useMemo(()=>a,Object.values(a));return(0,n.jsx)(o.Provider,{value:i,children:r})};return a.displayName=e+"Provider",[a,function(n){let a=t.useContext(o);if(a)return a;if(void 0!==r)return r;throw Error(`\`${n}\` must be used within \`${e}\``)}]}function o(e,r=[]){let a=[],i=()=>{let n=a.map(e=>t.createContext(e));return function(r){let o=r?.[e]||n;return t.useMemo(()=>({[`__scope${e}`]:{...r,[e]:o}}),[r,o])}};return i.scopeName=e,[function(r,o){let i=t.createContext(o),s=a.length;a=[...a,o];let u=r=>{let{scope:o,children:a,...u}=r,l=o?.[e]?.[s]||i,c=t.useMemo(()=>u,Object.values(u));return(0,n.jsx)(l.Provider,{value:c,children:a})};return u.displayName=r+"Provider",[u,function(n,a){let u=a?.[e]?.[s]||i,l=t.useContext(u);if(l)return l;if(void 0!==o)return o;throw Error(`\`${n}\` must be used within \`${r}\``)}]},function(...e){let n=e[0];if(1===e.length)return n;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let o=r.reduce((t,{useScope:n,scopeName:r})=>{let o=n(e)[`__scope${r}`];return{...t,...o}},{});return t.useMemo(()=>({[`__scope${n.scopeName}`]:o}),[o])}};return r.scopeName=n.scopeName,r}(i,...r)]}e.s(["createContext",()=>r,"createContextScope",()=>o])},82502,e=>{"use strict";function t(e,n,{checkForDefaultPrevented:r=!0}={}){return function(t){if(e?.(t),!1===r||!t.defaultPrevented)return n?.(t)}}e.s(["composeEventHandlers",()=>t])},42668,e=>{"use strict";var t=e.i(34346),n=globalThis?.document?t.useLayoutEffect:()=>{};e.s(["useLayoutEffect",()=>n])},21471,e=>{"use strict";var t=e.i(34346),n=e.i(42668),r=t["useId".toString()]||(()=>void 0),o=0;function a(e){let[a,i]=t.useState(r());return(0,n.useLayoutEffect)(()=>{e||i(e=>e??String(o++))},[e]),e||(a?`radix-${a}`:"")}e.s(["useId",()=>a])},60515,e=>{"use strict";var t=e.i(34346);function n(e){let n=t.useRef(e);return t.useEffect(()=>{n.current=e}),t.useMemo(()=>(...e)=>n.current?.(...e),[])}e.s(["useCallbackRef",()=>n])},53607,28698,e=>{"use strict";var t,n=e.i(34346),r=e.i(60515);function o({prop:e,defaultProp:t,onChange:o=()=>{}}){let[a,i]=function({defaultProp:e,onChange:t}){let o=n.useState(e),[a]=o,i=n.useRef(a),s=(0,r.useCallbackRef)(t);return n.useEffect(()=>{i.current!==a&&(s(a),i.current=a)},[a,i,s]),o}({defaultProp:t,onChange:o}),s=void 0!==e,u=s?e:a,l=(0,r.useCallbackRef)(o);return[u,n.useCallback(t=>{if(s){let n="function"==typeof t?t(e):t;n!==e&&l(n)}else i(t)},[s,e,i,l])]}e.s(["useControllableState",()=>o],53607);var a=e.i(82502),i=e.i(14268),s=e.i(6580),u=e.i(36792),l="dismissableLayer.update",c=n.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),d=n.forwardRef((e,o)=>{let{disableOutsidePointerEvents:d=!1,onEscapeKeyDown:p,onPointerDownOutside:v,onFocusOutside:h,onInteractOutside:g,onDismiss:y,...b}=e,E=n.useContext(c),[w,x]=n.useState(null),C=w?.ownerDocument??globalThis?.document,[,N]=n.useState({}),R=(0,s.useComposedRefs)(o,e=>x(e)),j=Array.from(E.layers),[S]=[...E.layersWithOutsidePointerEventsDisabled].slice(-1),P=j.indexOf(S),D=w?j.indexOf(w):-1,T=E.layersWithOutsidePointerEventsDisabled.size>0,O=D>=P,k=function(e,t=globalThis?.document){let o=(0,r.useCallbackRef)(e),a=n.useRef(!1),i=n.useRef(()=>{});return n.useEffect(()=>{let e=e=>{if(e.target&&!a.current){let n=function(){m("dismissableLayer.pointerDownOutside",o,r,{discrete:!0})},r={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",i.current),i.current=n,t.addEventListener("click",i.current,{once:!0})):n()}else t.removeEventListener("click",i.current);a.current=!1},n=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(n),t.removeEventListener("pointerdown",e),t.removeEventListener("click",i.current)}},[t,o]),{onPointerDownCapture:()=>a.current=!0}}(e=>{let t=e.target,n=[...E.branches].some(e=>e.contains(t));O&&!n&&(v?.(e),g?.(e),e.defaultPrevented||y?.())},C),A=function(e,t=globalThis?.document){let o=(0,r.useCallbackRef)(e),a=n.useRef(!1);return n.useEffect(()=>{let e=e=>{e.target&&!a.current&&m("dismissableLayer.focusOutside",o,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,o]),{onFocusCapture:()=>a.current=!0,onBlurCapture:()=>a.current=!1}}(e=>{let t=e.target;![...E.branches].some(e=>e.contains(t))&&(h?.(e),g?.(e),e.defaultPrevented||y?.())},C);return!function(e,t=globalThis?.document){let o=(0,r.useCallbackRef)(e);n.useEffect(()=>{let e=e=>{"Escape"===e.key&&o(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[o,t])}(e=>{D===E.layers.size-1&&(p?.(e),!e.defaultPrevented&&y&&(e.preventDefault(),y()))},C),n.useEffect(()=>{if(w)return d&&(0===E.layersWithOutsidePointerEventsDisabled.size&&(t=C.body.style.pointerEvents,C.body.style.pointerEvents="none"),E.layersWithOutsidePointerEventsDisabled.add(w)),E.layers.add(w),f(),()=>{d&&1===E.layersWithOutsidePointerEventsDisabled.size&&(C.body.style.pointerEvents=t)}},[w,C,d,E]),n.useEffect(()=>()=>{w&&(E.layers.delete(w),E.layersWithOutsidePointerEventsDisabled.delete(w),f())},[w,E]),n.useEffect(()=>{let e=()=>N({});return document.addEventListener(l,e),()=>document.removeEventListener(l,e)},[]),(0,u.jsx)(i.Primitive.div,{...b,ref:R,style:{pointerEvents:T?O?"auto":"none":void 0,...e.style},onFocusCapture:(0,a.composeEventHandlers)(e.onFocusCapture,A.onFocusCapture),onBlurCapture:(0,a.composeEventHandlers)(e.onBlurCapture,A.onBlurCapture),onPointerDownCapture:(0,a.composeEventHandlers)(e.onPointerDownCapture,k.onPointerDownCapture)})});function f(){let e=new CustomEvent(l);document.dispatchEvent(e)}function m(e,t,n,{discrete:r}){let o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?(0,i.dispatchDiscreteCustomEvent)(o,a):o.dispatchEvent(a)}d.displayName="DismissableLayer",n.forwardRef((e,t)=>{let r=n.useContext(c),o=n.useRef(null),a=(0,s.useComposedRefs)(t,o);return n.useEffect(()=>{let e=o.current;if(e)return r.branches.add(e),()=>{r.branches.delete(e)}},[r.branches]),(0,u.jsx)(i.Primitive.div,{...e,ref:a})}).displayName="DismissableLayerBranch",e.s(["DismissableLayer",()=>d],28698)},76400,e=>{"use strict";let t;var n=e.i(34346),r=e.i(6580),o=e.i(14268),a=e.i(60515),i=e.i(36792),s="focusScope.autoFocusOnMount",u="focusScope.autoFocusOnUnmount",l={bubbles:!1,cancelable:!0},c=n.forwardRef((e,t)=>{let{loop:c=!1,trapped:v=!1,onMountAutoFocus:h,onUnmountAutoFocus:g,...y}=e,[b,E]=n.useState(null),w=(0,a.useCallbackRef)(h),x=(0,a.useCallbackRef)(g),C=n.useRef(null),N=(0,r.useComposedRefs)(t,e=>E(e)),R=n.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;n.useEffect(()=>{if(v){let e=function(e){if(R.paused||!b)return;let t=e.target;b.contains(t)?C.current=t:m(C.current,{select:!0})},t=function(e){if(R.paused||!b)return;let t=e.relatedTarget;null!==t&&(b.contains(t)||m(C.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let n=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&m(b)});return b&&n.observe(b,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),n.disconnect()}}},[v,b,R.paused]),n.useEffect(()=>{if(b){p.add(R);let e=document.activeElement;if(!b.contains(e)){let t=new CustomEvent(s,l);b.addEventListener(s,w),b.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(m(r,{select:t}),document.activeElement!==n)return}(d(b).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&m(b))}return()=>{b.removeEventListener(s,w),setTimeout(()=>{let t=new CustomEvent(u,l);b.addEventListener(u,x),b.dispatchEvent(t),t.defaultPrevented||m(e??document.body,{select:!0}),b.removeEventListener(u,x),p.remove(R)},0)}}},[b,w,x,R]);let j=n.useCallback(e=>{if(!c&&!v||R.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=document.activeElement;if(t&&n){var r;let t,o=e.currentTarget,[a,i]=[f(t=d(r=o),r),f(t.reverse(),r)];a&&i?e.shiftKey||n!==i?e.shiftKey&&n===a&&(e.preventDefault(),c&&m(i,{select:!0})):(e.preventDefault(),c&&m(a,{select:!0})):n===o&&e.preventDefault()}},[c,v,R.paused]);return(0,i.jsx)(o.Primitive.div,{tabIndex:-1,...y,ref:N,onKeyDown:j})});function d(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function f(e,t){for(let n of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(n,{upTo:t}))return n}function m(e,{select:t=!1}={}){if(e&&e.focus){var n;let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&(n=e)instanceof HTMLInputElement&&"select"in n&&t&&e.select()}}c.displayName="FocusScope";var p=(t=[],{add(e){let n=t[0];e!==n&&n?.pause(),(t=v(t,e)).unshift(e)},remove(e){t=v(t,e),t[0]?.resume()}});function v(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}e.s(["FocusScope",()=>c])},61896,19594,e=>{"use strict";var t=e.i(34346),n=e.i(76124),r=e.i(14268),o=e.i(42668),a=e.i(36792),i=t.forwardRef((e,i)=>{let{container:s,...u}=e,[l,c]=t.useState(!1);(0,o.useLayoutEffect)(()=>c(!0),[]);let d=s||l&&globalThis?.document?.body;return d?n.default.createPortal((0,a.jsx)(r.Primitive.div,{...u,ref:i}),d):null});i.displayName="Portal",e.s(["Portal",()=>i],61896);var s=e.i(6580),u=e=>{var n;let r,a,{present:i,children:u}=e,c=function(e){var n,r;let[a,i]=t.useState(),s=t.useRef({}),u=t.useRef(e),c=t.useRef("none"),[d,f]=(n=e?"mounted":"unmounted",r={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},t.useReducer((e,t)=>r[e][t]??e,n));return t.useEffect(()=>{let e=l(s.current);c.current="mounted"===d?e:"none"},[d]),(0,o.useLayoutEffect)(()=>{let t=s.current,n=u.current;if(n!==e){let r=c.current,o=l(t);e?f("MOUNT"):"none"===o||t?.display==="none"?f("UNMOUNT"):n&&r!==o?f("ANIMATION_OUT"):f("UNMOUNT"),u.current=e}},[e,f]),(0,o.useLayoutEffect)(()=>{if(a){let e,t=a.ownerDocument.defaultView??window,n=n=>{let r=l(s.current).includes(n.animationName);if(n.target===a&&r&&(f("ANIMATION_END"),!u.current)){let n=a.style.animationFillMode;a.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===a.style.animationFillMode&&(a.style.animationFillMode=n)})}},r=e=>{e.target===a&&(c.current=l(s.current))};return a.addEventListener("animationstart",r),a.addEventListener("animationcancel",n),a.addEventListener("animationend",n),()=>{t.clearTimeout(e),a.removeEventListener("animationstart",r),a.removeEventListener("animationcancel",n),a.removeEventListener("animationend",n)}}f("ANIMATION_END")},[a,f]),{isPresent:["mounted","unmountSuspended"].includes(d),ref:t.useCallback(e=>{e&&(s.current=getComputedStyle(e)),i(e)},[])}}(i),d="function"==typeof u?u({present:c.isPresent}):t.Children.only(u),f=(0,s.useComposedRefs)(c.ref,(n=d,(a=(r=Object.getOwnPropertyDescriptor(n.props,"ref")?.get)&&"isReactWarning"in r&&r.isReactWarning)?n.ref:(a=(r=Object.getOwnPropertyDescriptor(n,"ref")?.get)&&"isReactWarning"in r&&r.isReactWarning)?n.props.ref:n.props.ref||n.ref));return"function"==typeof u||c.isPresent?t.cloneElement(d,{ref:f}):null};function l(e){return e?.animationName||"none"}u.displayName="Presence",e.s(["Presence",()=>u],19594)},49989,e=>{"use strict";var t=e.i(34346),n=0;function r(){t.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??o()),document.body.insertAdjacentElement("beforeend",e[1]??o()),n++,()=>{1===n&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),n--}},[])}function o(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}e.s(["useFocusGuards",()=>r])},19706,e=>{"use strict";var t,n,r,o,a,i,s,u=function(){return(u=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function l(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)0>t.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}var c=("function"==typeof SuppressedError&&SuppressedError,e.i(34346)),d="right-scroll-bar-position",f="width-before-scroll-bar";function m(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var p="undefined"!=typeof window?c.useLayoutEffect:c.useEffect,v=new WeakMap,h=(void 0===t&&(t={}),(void 0===n&&(n=function(e){return e}),r=[],o=!1,a={read:function(){if(o)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:null},useMedium:function(e){var t=n(e,o);return r.push(t),function(){r=r.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(o=!0;r.length;){var t=r;r=[],t.forEach(e)}r={push:function(t){return e(t)},filter:function(){return r}}},assignMedium:function(e){o=!0;var t=[];if(r.length){var n=r;r=[],n.forEach(e),t=r}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),r={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),r}}}}).options=u({async:!0,ssr:!1},t),a),g=function(){},y=c.forwardRef(function(e,t){var n,r,o,a,i=c.useRef(null),s=c.useState({onScrollCapture:g,onWheelCapture:g,onTouchMoveCapture:g}),d=s[0],f=s[1],y=e.forwardProps,b=e.children,E=e.className,w=e.removeScrollBar,x=e.enabled,C=e.shards,N=e.sideCar,R=e.noRelative,j=e.noIsolation,S=e.inert,P=e.allowPinchZoom,D=e.as,T=e.gapMode,O=l(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),k=(n=[i,t],r=function(e){return n.forEach(function(t){return m(t,e)})},(o=(0,c.useState)(function(){return{value:null,callback:r,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=r,a=o.facade,p(function(){var e=v.get(a);if(e){var t=new Set(e),r=new Set(n),o=a.current;t.forEach(function(e){r.has(e)||m(e,null)}),r.forEach(function(e){t.has(e)||m(e,o)})}v.set(a,n)},[n]),a),A=u(u({},O),d);return c.createElement(c.Fragment,null,x&&c.createElement(N,{sideCar:h,removeScrollBar:w,shards:C,noRelative:R,noIsolation:j,inert:S,setCallbacks:f,allowPinchZoom:!!P,lockRef:i,gapMode:T}),y?c.cloneElement(c.Children.only(b),u(u({},A),{ref:k})):c.createElement(void 0===D?"div":D,u({},A,{className:E,ref:k}),b))});y.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},y.classNames={fullWidth:f,zeroRight:d};var b=function(e){var t=e.sideCar,n=l(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error("Sidecar medium not found");return c.createElement(r,u({},n))};b.isSideCarExport=!0;var E=function(){var e=0,t=null;return{add:function(n){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=s||("undefined"!=typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var r,o;(r=t).styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n)),o=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},w=function(){var e=E();return function(t,n){c.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},x=function(){var e=w();return function(t){return e(t.styles,t.dynamic),null}},C={left:0,top:0,right:0,gap:0},N=function(e){return parseInt(e||"",10)||0},R=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[N(n),N(r),N(o)]},j=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return C;var t=R(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},S=x(),P="data-scroll-locked",D=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,s=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(s,"px ").concat(r,";\n }\n body[").concat(P,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(s,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(d," {\n right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat(f," {\n margin-right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat(d," .").concat(d," {\n right: 0 ").concat(r,";\n }\n \n .").concat(f," .").concat(f," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(P,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(s,"px;\n }\n")},T=function(){var e=parseInt(document.body.getAttribute(P)||"0",10);return isFinite(e)?e:0},O=function(){c.useEffect(function(){return document.body.setAttribute(P,(T()+1).toString()),function(){var e=T()-1;e<=0?document.body.removeAttribute(P):document.body.setAttribute(P,e.toString())}},[])},k=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;O();var a=c.useMemo(function(){return j(o)},[o]);return c.createElement(S,{styles:D(a,!t,o,n?"":"!important")})},A=!1;if("undefined"!=typeof window)try{var L=Object.defineProperty({},"passive",{get:function(){return A=!0,!0}});window.addEventListener("test",L,L),window.removeEventListener("test",L,L)}catch(e){A=!1}var I=!!A&&{passive:!1},M=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&(n.overflowY!==n.overflowX||"TEXTAREA"===e.tagName||"visible"!==n[t])},F=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),_(e,r)){var o=W(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body)return!1},_=function(e,t){return"v"===e?M(t,"overflowY"):M(t,"overflowX")},W=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},$=function(e,t,n,r,o){var a,i=(a=window.getComputedStyle(t).direction,"h"===e&&"rtl"===a?-1:1),s=i*r,u=n.target,l=t.contains(u),c=!1,d=s>0,f=0,m=0;do{if(!u)break;var p=W(e,u),v=p[0],h=p[1]-p[2]-i*v;(v||h)&&_(e,u)&&(f+=h,m+=v);var g=u.parentNode;u=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!l&&u!==document.body||l&&(t.contains(u)||t===u))return d&&(o&&1>Math.abs(f)||!o&&s>f)?c=!0:!d&&(o&&1>Math.abs(m)||!o&&-s>m)&&(c=!0),c},B=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},U=function(e){return[e.deltaX,e.deltaY]},H=function(e){return e&&"current"in e?e.current:e},K=0,z=[];let Y=(i=function(e){var t=c.useRef([]),n=c.useRef([0,0]),r=c.useRef(),o=c.useState(K++)[0],a=c.useState(x)[0],i=c.useRef(e);c.useEffect(function(){i.current=e},[e]),c.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,n){if(n||2==arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(H),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var s=c.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var o,a=B(e),s=n.current,u="deltaX"in e?e.deltaX:s[0]-a[0],l="deltaY"in e?e.deltaY:s[1]-a[1],c=e.target,d=Math.abs(u)>Math.abs(l)?"h":"v";if("touches"in e&&"h"===d&&"range"===c.type)return!1;var f=F(d,c);if(!f)return!0;if(f?o=d:(o="v"===d?"h":"v",f=F(d,c)),!f)return!1;if(!r.current&&"changedTouches"in e&&(u||l)&&(r.current=o),!o)return!0;var m=r.current||o;return $(m,t,e,"h"===m?u:l,!0)},[]),u=c.useCallback(function(e){if(z.length&&z[z.length-1]===a){var n="deltaY"in e?U(e):B(e),r=t.current.filter(function(t){var r;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(r=t.delta,r[0]===n[0]&&r[1]===n[1])})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var o=(i.current.shards||[]).map(H).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?s(e,o[0]):!i.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),l=c.useCallback(function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),d=c.useCallback(function(e){n.current=B(e),r.current=void 0},[]),f=c.useCallback(function(t){l(t.type,U(t),t.target,s(t,e.lockRef.current))},[]),m=c.useCallback(function(t){l(t.type,B(t),t.target,s(t,e.lockRef.current))},[]);c.useEffect(function(){return z.push(a),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:m}),document.addEventListener("wheel",u,I),document.addEventListener("touchmove",u,I),document.addEventListener("touchstart",d,I),function(){z=z.filter(function(e){return e!==a}),document.removeEventListener("wheel",u,I),document.removeEventListener("touchmove",u,I),document.removeEventListener("touchstart",d,I)}},[]);var p=e.removeScrollBar,v=e.inert;return c.createElement(c.Fragment,null,v?c.createElement(a,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,p?c.createElement(k,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},h.useMedium(i),b);var X=c.forwardRef(function(e,t){return c.createElement(y,u({},e,{ref:t,sideCar:Y}))});X.classNames=y.classNames,e.s(["RemoveScroll",0,X],19706)},89123,e=>{"use strict";var t=new WeakMap,n=new WeakMap,r={},o=0,a=function(e){return e&&(e.host||a(e.parentNode))},i=function(e,i,s,u){var l=(Array.isArray(e)?e:[e]).map(function(e){if(i.contains(e))return e;var t=a(e);return t&&i.contains(t)?t:(console.error("aria-hidden",e,"in not contained inside",i,". Doing nothing"),null)}).filter(function(e){return!!e});r[s]||(r[s]=new WeakMap);var c=r[s],d=[],f=new Set,m=new Set(l),p=function(e){!e||f.has(e)||(f.add(e),p(e.parentNode))};l.forEach(p);var v=function(e){!e||m.has(e)||Array.prototype.forEach.call(e.children,function(e){if(f.has(e))v(e);else try{var r=e.getAttribute(u),o=null!==r&&"false"!==r,a=(t.get(e)||0)+1,i=(c.get(e)||0)+1;t.set(e,a),c.set(e,i),d.push(e),1===a&&o&&n.set(e,!0),1===i&&e.setAttribute(s,"true"),o||e.setAttribute(u,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return v(i),f.clear(),o++,function(){d.forEach(function(e){var r=t.get(e)-1,o=c.get(e)-1;t.set(e,r),c.set(e,o),r||(n.has(e)||e.removeAttribute(u),n.delete(e)),o||e.removeAttribute(s)}),--o||(t=new WeakMap,t=new WeakMap,n=new WeakMap,r={})}},s=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||("undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),i(r,o,n,"aria-hidden")):function(){return null}};e.s(["hideOthers",()=>s])},75212,97185,e=>{"use strict";var t=e.i(36792),n=e.i(34346),r=e.i(57213),o=e.i(6580),a=e.i(82502),i=e.i(21471),s=e.i(53607),u=e.i(28698),l=e.i(76400),c=e.i(61896),d=e.i(19594),f=e.i(14268),m=e.i(49989),p=e.i(19706),v=e.i(89123),h=e.i(22436),g="Dialog",[y,b]=(0,r.createContextScope)(g),[E,w]=y(g),x=e=>{let{__scopeDialog:r,children:o,open:a,defaultOpen:u,onOpenChange:l,modal:c=!0}=e,d=n.useRef(null),f=n.useRef(null),[m=!1,p]=(0,s.useControllableState)({prop:a,defaultProp:u,onChange:l});return(0,t.jsx)(E,{scope:r,triggerRef:d,contentRef:f,contentId:(0,i.useId)(),titleId:(0,i.useId)(),descriptionId:(0,i.useId)(),open:m,onOpenChange:p,onOpenToggle:n.useCallback(()=>p(e=>!e),[p]),modal:c,children:o})};x.displayName=g;var C="DialogTrigger",N=n.forwardRef((e,n)=>{let{__scopeDialog:r,...i}=e,s=w(C,r),u=(0,o.useComposedRefs)(n,s.triggerRef);return(0,t.jsx)(f.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.contentId,"data-state":H(s.open),...i,ref:u,onClick:(0,a.composeEventHandlers)(e.onClick,s.onOpenToggle)})});N.displayName=C;var R="DialogPortal",[j,S]=y(R,{forceMount:void 0}),P=e=>{let{__scopeDialog:r,forceMount:o,children:a,container:i}=e,s=w(R,r);return(0,t.jsx)(j,{scope:r,forceMount:o,children:n.Children.map(a,e=>(0,t.jsx)(d.Presence,{present:o||s.open,children:(0,t.jsx)(c.Portal,{asChild:!0,container:i,children:e})}))})};P.displayName=R;var D="DialogOverlay",T=n.forwardRef((e,n)=>{let r=S(D,e.__scopeDialog),{forceMount:o=r.forceMount,...a}=e,i=w(D,e.__scopeDialog);return i.modal?(0,t.jsx)(d.Presence,{present:o||i.open,children:(0,t.jsx)(O,{...a,ref:n})}):null});T.displayName=D;var O=n.forwardRef((e,n)=>{let{__scopeDialog:r,...o}=e,a=w(D,r);return(0,t.jsx)(p.RemoveScroll,{as:h.Slot,allowPinchZoom:!0,shards:[a.contentRef],children:(0,t.jsx)(f.Primitive.div,{"data-state":H(a.open),...o,ref:n,style:{pointerEvents:"auto",...o.style}})})}),k="DialogContent",A=n.forwardRef((e,n)=>{let r=S(k,e.__scopeDialog),{forceMount:o=r.forceMount,...a}=e,i=w(k,e.__scopeDialog);return(0,t.jsx)(d.Presence,{present:o||i.open,children:i.modal?(0,t.jsx)(L,{...a,ref:n}):(0,t.jsx)(I,{...a,ref:n})})});A.displayName=k;var L=n.forwardRef((e,r)=>{let i=w(k,e.__scopeDialog),s=n.useRef(null),u=(0,o.useComposedRefs)(r,i.contentRef,s);return n.useEffect(()=>{let e=s.current;if(e)return(0,v.hideOthers)(e)},[]),(0,t.jsx)(M,{...e,ref:u,trapFocus:i.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,a.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),i.triggerRef.current?.focus()}),onPointerDownOutside:(0,a.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:(0,a.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault())})}),I=n.forwardRef((e,r)=>{let o=w(k,e.__scopeDialog),a=n.useRef(!1),i=n.useRef(!1);return(0,t.jsx)(M,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(a.current||o.triggerRef.current?.focus(),t.preventDefault()),a.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(a.current=!0,"pointerdown"===t.detail.originalEvent.type&&(i.current=!0));let n=t.target;o.triggerRef.current?.contains(n)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),M=n.forwardRef((e,r)=>{let{__scopeDialog:a,trapFocus:i,onOpenAutoFocus:s,onCloseAutoFocus:c,...d}=e,f=w(k,a),p=n.useRef(null),v=(0,o.useComposedRefs)(r,p);return(0,m.useFocusGuards)(),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.FocusScope,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:s,onUnmountAutoFocus:c,children:(0,t.jsx)(u.DismissableLayer,{role:"dialog",id:f.contentId,"aria-describedby":f.descriptionId,"aria-labelledby":f.titleId,"data-state":H(f.open),...d,ref:v,onDismiss:()=>f.onOpenChange(!1)})}),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(X,{titleId:f.titleId}),(0,t.jsx)(q,{contentRef:p,descriptionId:f.descriptionId})]})]})}),F="DialogTitle",_=n.forwardRef((e,n)=>{let{__scopeDialog:r,...o}=e,a=w(F,r);return(0,t.jsx)(f.Primitive.h2,{id:a.titleId,...o,ref:n})});_.displayName=F;var W="DialogDescription",$=n.forwardRef((e,n)=>{let{__scopeDialog:r,...o}=e,a=w(W,r);return(0,t.jsx)(f.Primitive.p,{id:a.descriptionId,...o,ref:n})});$.displayName=W;var B="DialogClose",U=n.forwardRef((e,n)=>{let{__scopeDialog:r,...o}=e,i=w(B,r);return(0,t.jsx)(f.Primitive.button,{type:"button",...o,ref:n,onClick:(0,a.composeEventHandlers)(e.onClick,()=>i.onOpenChange(!1))})});function H(e){return e?"open":"closed"}U.displayName=B;var K="DialogTitleWarning",[z,Y]=(0,r.createContext)(K,{contentName:k,titleName:F,docsSlug:"dialog"}),X=({titleId:e})=>{let t=Y(K),r=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
|
|
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
|
|
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return n.useEffect(()=>{e&&(document.getElementById(e)||console.error(r))},[r,e]),null},q=({contentRef:e,descriptionId:t})=>{let r=Y("DialogDescriptionWarning"),o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${r.contentName}}.`;return n.useEffect(()=>{let n=e.current?.getAttribute("aria-describedby");t&&n&&(document.getElementById(t)||console.warn(o))},[o,e,t]),null};e.s(["Close",()=>U,"Content",()=>A,"Description",()=>$,"Overlay",()=>T,"Portal",()=>P,"Root",()=>x,"Title",()=>_,"Trigger",()=>N,"WarningProvider",()=>z,"createDialogScope",()=>b],97185);var Z="AlertDialog",[V,G]=(0,r.createContextScope)(Z,[b]),J=b(),Q=e=>{let{__scopeAlertDialog:n,...r}=e,o=J(n);return(0,t.jsx)(x,{...o,...r,modal:!0})};Q.displayName=Z,n.forwardRef((e,n)=>{let{__scopeAlertDialog:r,...o}=e,a=J(r);return(0,t.jsx)(N,{...a,...o,ref:n})}).displayName="AlertDialogTrigger";var ee=e=>{let{__scopeAlertDialog:n,...r}=e,o=J(n);return(0,t.jsx)(P,{...o,...r})};ee.displayName="AlertDialogPortal";var et=n.forwardRef((e,n)=>{let{__scopeAlertDialog:r,...o}=e,a=J(r);return(0,t.jsx)(T,{...a,...o,ref:n})});et.displayName="AlertDialogOverlay";var en="AlertDialogContent",[er,eo]=V(en),ea=n.forwardRef((e,r)=>{let{__scopeAlertDialog:i,children:s,...u}=e,l=J(i),c=n.useRef(null),d=(0,o.useComposedRefs)(r,c),f=n.useRef(null);return(0,t.jsx)(z,{contentName:en,titleName:ei,docsSlug:"alert-dialog",children:(0,t.jsx)(er,{scope:i,cancelRef:f,children:(0,t.jsxs)(A,{role:"alertdialog",...l,...u,ref:d,onOpenAutoFocus:(0,a.composeEventHandlers)(u.onOpenAutoFocus,e=>{e.preventDefault(),f.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,t.jsx)(h.Slottable,{children:s}),(0,t.jsx)(em,{contentRef:c})]})})})});ea.displayName=en;var ei="AlertDialogTitle",es=n.forwardRef((e,n)=>{let{__scopeAlertDialog:r,...o}=e,a=J(r);return(0,t.jsx)(_,{...a,...o,ref:n})});es.displayName=ei;var eu="AlertDialogDescription",el=n.forwardRef((e,n)=>{let{__scopeAlertDialog:r,...o}=e,a=J(r);return(0,t.jsx)($,{...a,...o,ref:n})});el.displayName=eu;var ec=n.forwardRef((e,n)=>{let{__scopeAlertDialog:r,...o}=e,a=J(r);return(0,t.jsx)(U,{...a,...o,ref:n})});ec.displayName="AlertDialogAction";var ed="AlertDialogCancel",ef=n.forwardRef((e,n)=>{let{__scopeAlertDialog:r,...a}=e,{cancelRef:i}=eo(ed,r),s=J(r),u=(0,o.useComposedRefs)(n,i);return(0,t.jsx)(U,{...s,...a,ref:u})});ef.displayName=ed;var em=({contentRef:e})=>{let t=`\`${en}\` requires a description for the component to be accessible for screen reader users.
|
|
|
|
You can add a description to the \`${en}\` by passing a \`${eu}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
|
|
|
|
Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${en}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
|
|
|
|
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return n.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},ep=e.i(69744),ev=e.i(9991);function eh({...e}){return(0,t.jsx)(Q,{"data-slot":"alert-dialog",...e})}function eg({...e}){return(0,t.jsx)(ee,{"data-slot":"alert-dialog-portal",...e})}function ey({className:e,...n}){return(0,t.jsx)(et,{"data-slot":"alert-dialog-overlay",className:(0,ep.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...n})}function eb({className:e,...n}){return(0,t.jsxs)(eg,{children:[(0,t.jsx)(ey,{}),(0,t.jsx)(ea,{"data-slot":"alert-dialog-content",className:(0,ep.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",e),...n})]})}function eE({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,ep.cn)("flex flex-col gap-2 text-center sm:text-left",e),...n})}function ew({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,ep.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...n})}function ex({className:e,...n}){return(0,t.jsx)(es,{"data-slot":"alert-dialog-title",className:(0,ep.cn)("text-lg font-semibold",e),...n})}function eC({className:e,...n}){return(0,t.jsx)(el,{"data-slot":"alert-dialog-description",className:(0,ep.cn)("text-muted-foreground text-sm",e),...n})}function eN({className:e,...n}){return(0,t.jsx)(ec,{className:(0,ep.cn)((0,ev.buttonVariants)(),e),...n})}function eR({className:e,...n}){return(0,t.jsx)(ef,{className:(0,ep.cn)((0,ev.buttonVariants)({variant:"outline"}),e),...n})}var ej=e.i(77627),eS=e.i(75985);let eP=(0,n.createContext)(void 0);function eD({children:e}){let[r,o]=(0,n.useState)(!1),[a,i]=(0,n.useState)(null),[s,u]=(0,n.useState)(""),l=()=>{a?.type==="prompt"?a.onConfirm?.(s):a?.onConfirm?.()};return(0,t.jsxs)(eP.Provider,{value:{showAlert:(e,t)=>new Promise(n=>{i({type:"alert",title:t||"提示",message:e,confirmText:"确定",onConfirm:()=>{o(!1),n()}}),o(!0)}),showConfirm:(e,t,n="default")=>new Promise(r=>{i({type:"confirm",title:t||"确认",message:e,confirmText:"确定",cancelText:"取消",variant:n,onConfirm:()=>{o(!1),r(!0)},onCancel:()=>{o(!1),r(!1)}}),o(!0)}),showPrompt:(e,t="",n)=>new Promise(r=>{u(t),i({type:"prompt",title:n||"输入",message:e,defaultValue:t,confirmText:"确定",cancelText:"取消",onConfirm:e=>{o(!1),r(e||null)},onCancel:()=>{o(!1),r(null)}}),o(!0)})},children:[e,(0,t.jsx)(eh,{open:r,onOpenChange:o,children:(0,t.jsxs)(eb,{children:[(0,t.jsxs)(eE,{children:[(0,t.jsx)(ex,{children:a?.title}),(0,t.jsx)(eC,{className:"whitespace-pre-wrap",children:a?.message})]}),a?.type==="prompt"&&(0,t.jsxs)("div",{className:"py-4",children:[(0,t.jsx)(eS.Label,{htmlFor:"prompt-input",className:"sr-only",children:"输入值"}),(0,t.jsx)(ej.Input,{id:"prompt-input",value:s,onChange:e=>u(e.target.value),onKeyDown:e=>{"Enter"===e.key&&l()},autoFocus:!0})]}),(0,t.jsxs)(ew,{children:[a?.type!=="alert"&&(0,t.jsx)(eR,{onClick:()=>{a?.onCancel?.()},children:a?.cancelText||"取消"}),(0,t.jsx)(eN,{onClick:l,className:a?.variant==="destructive"?"bg-destructive text-destructive-foreground hover:bg-destructive/90":"",children:a?.confirmText||"确定"})]})]})})]})}function eT(){let e=(0,n.useContext)(eP);if(!e)throw Error("useDialog must be used within a DialogProvider");return e}e.s(["DialogProvider",()=>eD,"useDialog",()=>eT],75212)}]); |