module.exports=[66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},30100,33671,68538,30665,a=>{"use strict";let b;var c,d,e,f,g=a.i(6155),h=a.i(54297),i=a.i(8895),j=a.i(59580),k=a.i(85801),l=a.i(98414),m=a.i(90247),n=a.i(68771),o=a.i(33293),p=a.i(58011),q=a.i(18607),r=a.i(85549),s=a.i(9478),u=a.i(11842),v=a.i(73538),w=a.i(92806),x=a.i(39622),y="Radio",[z,A]=(0,p.createContextScope)(y),[B,C]=z(y),D=h.forwardRef((a,b)=>{let{__scopeRadio:c,name:d,checked:e=!1,required:f,disabled:i,value:j="on",onCheck:k,form:l,...m}=a,[p,r]=h.useState(null),s=(0,o.useComposedRefs)(b,a=>r(a)),u=h.useRef(!1),v=!p||l||!!p.closest("form");return(0,g.jsxs)(B,{scope:c,checked:e,disabled:i,children:[(0,g.jsx)(q.Primitive.button,{type:"button",role:"radio","aria-checked":e,"data-state":H(e),"data-disabled":i?"":void 0,disabled:i,value:j,...m,ref:s,onClick:(0,n.composeEventHandlers)(a.onClick,a=>{e||k?.(),v&&(u.current=a.isPropagationStopped(),u.current||a.stopPropagation())})}),v&&(0,g.jsx)(G,{control:p,bubbles:!u.current,name:d,value:j,checked:e,required:f,disabled:i,form:l,style:{transform:"translateX(-100%)"}})]})});D.displayName=y;var E="RadioIndicator",F=h.forwardRef((a,b)=>{let{__scopeRadio:c,forceMount:d,...e}=a,f=C(E,c);return(0,g.jsx)(x.Presence,{present:d||f.checked,children:(0,g.jsx)(q.Primitive.span,{"data-state":H(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:b})})});F.displayName=E;var G=a=>{let{control:b,checked:c,bubbles:d=!0,...e}=a,f=h.useRef(null),i=(0,w.usePrevious)(c),j=(0,v.useSize)(b);return h.useEffect(()=>{let a=f.current,b=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(i!==c&&b){let e=new Event("click",{bubbles:d});b.call(a,c),a.dispatchEvent(e)}},[i,c,d]),(0,g.jsx)("input",{type:"radio","aria-hidden":!0,defaultChecked:c,...e,tabIndex:-1,ref:f,style:{...a.style,...j,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function H(a){return a?"checked":"unchecked"}var I=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],J="RadioGroup",[K,L]=(0,p.createContextScope)(J,[r.createRovingFocusGroupScope,A]),M=(0,r.createRovingFocusGroupScope)(),N=A(),[O,P]=K(J),Q=h.forwardRef((a,b)=>{let{__scopeRadioGroup:c,name:d,defaultValue:e,value:f,required:h=!1,disabled:i=!1,orientation:j,dir:k,loop:l=!0,onValueChange:m,...n}=a,o=M(c),p=(0,u.useDirection)(k),[v,w]=(0,s.useControllableState)({prop:f,defaultProp:e,onChange:m});return(0,g.jsx)(O,{scope:c,name:d,required:h,disabled:i,value:v,onValueChange:w,children:(0,g.jsx)(r.Root,{asChild:!0,...o,orientation:j,dir:p,loop:l,children:(0,g.jsx)(q.Primitive.div,{role:"radiogroup","aria-required":h,"aria-orientation":j,"data-disabled":i?"":void 0,dir:p,...n,ref:b})})})});Q.displayName=J;var R="RadioGroupItem",S=h.forwardRef((a,b)=>{let{__scopeRadioGroup:c,disabled:d,...e}=a,f=P(R,c),i=f.disabled||d,j=M(c),k=N(c),l=h.useRef(null),m=(0,o.useComposedRefs)(b,l),p=f.value===e.value,q=h.useRef(!1);return h.useEffect(()=>{let a=a=>{I.includes(a.key)&&(q.current=!0)},b=()=>q.current=!1;return document.addEventListener("keydown",a),document.addEventListener("keyup",b),()=>{document.removeEventListener("keydown",a),document.removeEventListener("keyup",b)}},[]),(0,g.jsx)(r.Item,{asChild:!0,...j,focusable:!i,active:p,children:(0,g.jsx)(D,{disabled:i,required:f.required,checked:p,...k,...e,name:f.name,ref:m,onCheck:()=>f.onValueChange(e.value),onKeyDown:(0,n.composeEventHandlers)(a=>{"Enter"===a.key&&a.preventDefault()}),onFocus:(0,n.composeEventHandlers)(e.onFocus,()=>{q.current&&l.current?.click()})})})});S.displayName=R;var T=h.forwardRef((a,b)=>{let{__scopeRadioGroup:c,...d}=a,e=N(c);return(0,g.jsx)(F,{...e,...d,ref:b})});T.displayName="RadioGroupIndicator";var U=a.i(43057),V=a.i(12348);function W({className:a,...b}){return(0,g.jsx)(Q,{"data-slot":"radio-group",className:(0,V.cn)("grid gap-3",a),...b})}function X({className:a,...b}){return(0,g.jsx)(S,{"data-slot":"radio-group-item",className:(0,V.cn)("border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,g.jsx)(T,{"data-slot":"radio-group-indicator",className:"relative flex items-center justify-center",children:(0,g.jsx)(U.CircleIcon,{className:"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"})})})}var Y=a.i(57003),Y=Y,Z=a.i(51038),$=a.i(37111);let _=(0,$.default)("Scroll",[["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);var aa=a.i(18951),ab=a.i(80218),ac=a.i(38076),ad=a.i(99766),ae=a.i(78802),af=a.i(87240),ag=a.i(57624),ah=a.i(47058),ai=a.i(92412);let aj=(0,$.default)("Crop",[["path",{d:"M6 2v14a2 2 0 0 0 2 2h14",key:"ron5a4"}],["path",{d:"M18 22V8a2 2 0 0 0-2-2H2",key:"7s9ehn"}]]);var ak=h,al=Object.defineProperty,am=(a,b,c)=>{let d;return(d="symbol"!=typeof b?b+"":b)in a?al(a,d,{enumerable:!0,configurable:!0,writable:!0,value:c}):a[d]=c};let an={x:0,y:0,width:0,height:0,unit:"px"},ao=(a,b,c)=>Math.min(Math.max(a,b),c),ap=(a,b)=>a===b||a.width===b.width&&a.height===b.height&&a.x===b.x&&a.y===b.y&&a.unit===b.unit;function aq(a,b,c){return"%"===a.unit?{...an,...a,unit:"%"}:{unit:"%",x:a.x?a.x/b*100:0,y:a.y?a.y/c*100:0,width:a.width?a.width/b*100:0,height:a.height?a.height/c*100:0}}function ar(a,b,c){return a.unit?"px"===a.unit?{...an,...a,unit:"px"}:{unit:"px",x:a.x?a.x*b/100:0,y:a.y?a.y*c/100:0,width:a.width?a.width*b/100:0,height:a.height?a.height*c/100:0}:{...an,...a,unit:"px"}}function as(a,b,c,d,e,f=0,g=0,h=d,i=e){let j={...a},k=Math.min(f,d),l=Math.min(g,e),m=Math.min(h,d),n=Math.min(i,e);b&&(b>1?(l=(k=g?g*b:k)/b,m=h*b):(k=(l=f?f/b:l)*b,n=i/b)),j.y<0&&(j.height=Math.max(j.height+j.y,l),j.y=0),j.x<0&&(j.width=Math.max(j.width+j.x,k),j.x=0);let o=d-(j.x+j.width);o<0&&(j.x=Math.min(j.x,d-k),j.width+=o);let p=e-(j.y+j.height);if(p<0&&(j.y=Math.min(j.y,e-l),j.height+=p),j.widthm&&(("sw"===c||"nw"==c)&&(j.x-=m-j.width),j.width=m),j.height>n&&(("nw"===c||"ne"==c)&&(j.y-=n-j.height),j.height=n),b){let a=j.width/j.height;if(ab){let a=Math.max(j.height*b,k);("sw"===c||"nw"==c)&&(j.x-=a-j.width),j.width=a}}return j}let at={capture:!0,passive:!1},au=0,av=class a extends ak.PureComponent{constructor(){super(...arguments),am(this,"docMoveBound",!1),am(this,"mouseDownOnCrop",!1),am(this,"dragStarted",!1),am(this,"evData",{startClientX:0,startClientY:0,startCropX:0,startCropY:0,clientX:0,clientY:0,isResize:!0}),am(this,"componentRef",(0,ak.createRef)()),am(this,"mediaRef",(0,ak.createRef)()),am(this,"resizeObserver"),am(this,"initChangeCalled",!1),am(this,"instanceId",`rc-${au++}`),am(this,"state",{cropIsActive:!1,newCropIsBeingDrawn:!1}),am(this,"onCropPointerDown",a=>{let{crop:b,disabled:c}=this.props,d=this.getBox();if(!b)return;let e=ar(b,d.width,d.height);if(c)return;a.cancelable&&a.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let f=a.target.dataset.ord,g=a.clientX,h=a.clientY,i=e.x,j=e.y;if(f){let b=a.clientX-d.x,c=a.clientY-d.y,k=0,l=0;"ne"===f||"e"==f?(k=b-(e.x+e.width),l=c-e.y,i=e.x,j=e.y+e.height):"se"===f||"s"===f?(k=b-(e.x+e.width),l=c-(e.y+e.height),i=e.x,j=e.y):"sw"===f||"w"==f?(k=b-e.x,l=c-(e.y+e.height),i=e.x+e.width,j=e.y):("nw"===f||"n"==f)&&(k=b-e.x,l=c-e.y,i=e.x+e.width,j=e.y+e.height),g=i+d.x+k,h=j+d.y+l}this.evData={startClientX:g,startClientY:h,startCropX:i,startCropY:j,clientX:a.clientX,clientY:a.clientY,isResize:!!f,ord:f},this.mouseDownOnCrop=!0,this.setState({cropIsActive:!0})}),am(this,"onComponentPointerDown",a=>{let{crop:b,disabled:c,locked:d,keepSelection:e,onChange:f}=this.props,g=this.getBox();if(c||d||e&&b)return;a.cancelable&&a.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let h=a.clientX-g.x,i=a.clientY-g.y,j={unit:"px",x:h,y:i,width:0,height:0};this.evData={startClientX:a.clientX,startClientY:a.clientY,startCropX:h,startCropY:i,clientX:a.clientX,clientY:a.clientY,isResize:!0},this.mouseDownOnCrop=!0,f(ar(j,g.width,g.height),aq(j,g.width,g.height)),this.setState({cropIsActive:!0,newCropIsBeingDrawn:!0})}),am(this,"onDocPointerMove",a=>{let b,{crop:c,disabled:d,onChange:e,onDragStart:f}=this.props,g=this.getBox();if(d||!c||!this.mouseDownOnCrop)return;a.cancelable&&a.preventDefault(),this.dragStarted||(this.dragStarted=!0,f&&f(a));let{evData:h}=this;h.clientX=a.clientX,h.clientY=a.clientY,ap(c,b=h.isResize?this.resizeCrop():this.dragCrop())||e(ar(b,g.width,g.height),aq(b,g.width,g.height))}),am(this,"onComponentKeyDown",b=>{let{crop:c,disabled:d,onChange:e,onComplete:f}=this.props;if(d)return;let g=b.key,h=!1;if(!c)return;let i=this.getBox(),j=this.makePixelCrop(i),k=(navigator.platform.match("Mac")?b.metaKey:b.ctrlKey)?a.nudgeStepLarge:b.shiftKey?a.nudgeStepMedium:a.nudgeStep;if("ArrowLeft"===g?(j.x-=k,h=!0):"ArrowRight"===g?(j.x+=k,h=!0):"ArrowUp"===g?(j.y-=k,h=!0):"ArrowDown"===g&&(j.y+=k,h=!0),h){b.cancelable&&b.preventDefault(),j.x=ao(j.x,0,i.width-j.width),j.y=ao(j.y,0,i.height-j.height);let a=ar(j,i.width,i.height),c=aq(j,i.width,i.height);e(a,c),f&&f(a,c)}}),am(this,"onHandlerKeyDown",(b,c)=>{var d,e;let f,{aspect:g=0,crop:h,disabled:i,minWidth:j=0,minHeight:k=0,maxWidth:l,maxHeight:m,onChange:n,onComplete:o}=this.props,p=this.getBox();if(i||!h||"ArrowUp"!==b.key&&"ArrowDown"!==b.key&&"ArrowLeft"!==b.key&&"ArrowRight"!==b.key)return;b.stopPropagation(),b.preventDefault();let q=(navigator.platform.match("Mac")?b.metaKey:b.ctrlKey)?a.nudgeStepLarge:b.shiftKey?a.nudgeStepMedium:a.nudgeStep,r=as((d=ar(h,p.width,p.height),e=b.key,f={...d},"ArrowLeft"===e?"nw"===c?(f.x-=q,f.y-=q,f.width+=q,f.height+=q):"w"===c?(f.x-=q,f.width+=q):"sw"===c?(f.x-=q,f.width+=q,f.height+=q):"ne"===c?(f.y+=q,f.width-=q,f.height-=q):"e"===c?f.width-=q:"se"===c&&(f.width-=q,f.height-=q):"ArrowRight"===e&&("nw"===c?(f.x+=q,f.y+=q,f.width-=q,f.height-=q):"w"===c?(f.x+=q,f.width-=q):"sw"===c?(f.x+=q,f.width-=q,f.height-=q):"ne"===c?(f.y-=q,f.width+=q,f.height+=q):"e"===c?f.width+=q:"se"===c&&(f.width+=q,f.height+=q)),"ArrowUp"===e?"nw"===c?(f.x-=q,f.y-=q,f.width+=q,f.height+=q):"n"===c?(f.y-=q,f.height+=q):"ne"===c?(f.y-=q,f.width+=q,f.height+=q):"sw"===c?(f.x+=q,f.width-=q,f.height-=q):"s"===c?f.height-=q:"se"===c&&(f.width-=q,f.height-=q):"ArrowDown"===e&&("nw"===c?(f.x+=q,f.y+=q,f.width-=q,f.height-=q):"n"===c?(f.y+=q,f.height-=q):"ne"===c?(f.y+=q,f.width-=q,f.height-=q):"sw"===c?(f.x-=q,f.width+=q,f.height+=q):"s"===c?f.height+=q:"se"===c&&(f.width+=q,f.height+=q)),f),g,c,p.width,p.height,j,k,l,m);if(!ap(h,r)){let a=aq(r,p.width,p.height);n(r,a),o&&o(r,a)}}),am(this,"onDocPointerDone",a=>{let{crop:b,disabled:c,onComplete:d,onDragEnd:e}=this.props,f=this.getBox();this.unbindDocMove(),!(c||!b)&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,e&&e(a),d&&d(ar(b,f.width,f.height),aq(b,f.width,f.height)),this.setState({cropIsActive:!1,newCropIsBeingDrawn:!1}))}),am(this,"onDragFocus",()=>{var a;null==(a=this.componentRef.current)||a.scrollTo(0,0)})}get document(){return document}getBox(){let a=this.mediaRef.current;if(!a)return{x:0,y:0,width:0,height:0};let{x:b,y:c,width:d,height:e}=a.getBoundingClientRect();return{x:b,y:c,width:d,height:e}}componentDidUpdate(a){let{crop:b,onComplete:c}=this.props;if(c&&!a.crop&&b){let{width:a,height:d}=this.getBox();a&&d&&c(ar(b,a,d),aq(b,a,d))}}componentWillUnmount(){this.resizeObserver&&this.resizeObserver.disconnect(),this.unbindDocMove()}bindDocMove(){this.docMoveBound||(this.document.addEventListener("pointermove",this.onDocPointerMove,at),this.document.addEventListener("pointerup",this.onDocPointerDone,at),this.document.addEventListener("pointercancel",this.onDocPointerDone,at),this.docMoveBound=!0)}unbindDocMove(){this.docMoveBound&&(this.document.removeEventListener("pointermove",this.onDocPointerMove,at),this.document.removeEventListener("pointerup",this.onDocPointerDone,at),this.document.removeEventListener("pointercancel",this.onDocPointerDone,at),this.docMoveBound=!1)}getCropStyle(){let{crop:a}=this.props;if(a)return{top:`${a.y}${a.unit}`,left:`${a.x}${a.unit}`,width:`${a.width}${a.unit}`,height:`${a.height}${a.unit}`}}dragCrop(){let{evData:a}=this,b=this.getBox(),c=this.makePixelCrop(b),d=a.clientX-a.startClientX,e=a.clientY-a.startClientY;return c.x=ao(a.startCropX+d,0,b.width-c.width),c.y=ao(a.startCropY+e,0,b.height-c.height),c}getPointRegion(a,b,c,d){let e,{evData:f}=this,g=f.clientX-a.x,h=f.clientY-a.y;return e=d&&b?"nw"===b||"n"===b||"ne"===b:h1?e?[e,e/b]:[f*b,f]:f?[f*b,f]:[e,e/b]:[e,f]}resizeCrop(){let{evData:b}=this,{aspect:c=0,maxWidth:d,maxHeight:e}=this.props,f=this.getBox(),[g,h]=this.resolveMinDimensions(f,c,this.props.minWidth,this.props.minHeight),i=this.makePixelCrop(f),j=this.getPointRegion(f,b.ord,g,h),k=b.ord||j,l=b.clientX-b.startClientX,m=b.clientY-b.startClientY;(g&&"nw"===k||"w"===k||"sw"===k)&&(l=Math.min(l,-g)),(h&&"nw"===k||"n"===k||"ne"===k)&&(m=Math.min(m,-h));let n={unit:"px",x:0,y:0,width:0,height:0};"ne"===j?(n.x=b.startCropX,n.width=l,c?n.height=n.width/c:n.height=Math.abs(m),n.y=b.startCropY-n.height):"se"===j?(n.x=b.startCropX,n.y=b.startCropY,n.width=l,c?n.height=n.width/c:n.height=m):"sw"===j?(n.x=b.startCropX+l,n.y=b.startCropY,n.width=Math.abs(l),c?n.height=n.width/c:n.height=m):"nw"===j&&(n.x=b.startCropX+l,n.width=Math.abs(l),c?(n.height=n.width/c,n.y=b.startCropY-n.height):(n.height=Math.abs(m),n.y=b.startCropY+m));let o=as(n,c,j,f.width,f.height,g,h,d,e);return c||a.xyOrds.indexOf(k)>-1?i=o:a.xOrds.indexOf(k)>-1?(i.x=o.x,i.width=o.width):a.yOrds.indexOf(k)>-1&&(i.y=o.y,i.height=o.height),i.x=ao(i.x,0,f.width-i.width),i.y=ao(i.y,0,f.height-i.height),i}renderCropSelection(){let{ariaLabels:b=a.defaultProps.ariaLabels,disabled:c,locked:d,renderSelectionAddon:e,ruleOfThirds:f,crop:g}=this.props,h=this.getCropStyle();if(g)return ak.default.createElement("div",{style:h,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":b.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group"},!c&&!d&&ak.default.createElement("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus},ak.default.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),ak.default.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),ak.default.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),ak.default.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),ak.default.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw",tabIndex:0,"aria-label":b.nwDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"nw"),role:"button"}),ak.default.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n",tabIndex:0,"aria-label":b.nDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"n"),role:"button"}),ak.default.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne",tabIndex:0,"aria-label":b.neDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"ne"),role:"button"}),ak.default.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e",tabIndex:0,"aria-label":b.eDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"e"),role:"button"}),ak.default.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se",tabIndex:0,"aria-label":b.seDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"se"),role:"button"}),ak.default.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s",tabIndex:0,"aria-label":b.sDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"s"),role:"button"}),ak.default.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw",tabIndex:0,"aria-label":b.swDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"sw"),role:"button"}),ak.default.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w",tabIndex:0,"aria-label":b.wDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"w"),role:"button"})),e&&ak.default.createElement("div",{className:"ReactCrop__selection-addon",onPointerDown:a=>a.stopPropagation()},e(this.state)),f&&ak.default.createElement(ak.default.Fragment,null,ak.default.createElement("div",{className:"ReactCrop__rule-of-thirds-hz"}),ak.default.createElement("div",{className:"ReactCrop__rule-of-thirds-vt"})))}makePixelCrop(a){return ar({...an,...this.props.crop||{}},a.width,a.height)}render(){let{aspect:a,children:b,circularCrop:c,className:d,crop:e,disabled:f,locked:g,style:h,ruleOfThirds:i}=this.props,{cropIsActive:j,newCropIsBeingDrawn:k}=this.state,l=e?this.renderCropSelection():null,m=((...a)=>a.filter(a=>a&&"string"==typeof a).join(" "))("ReactCrop",d,j&&"ReactCrop--active",f&&"ReactCrop--disabled",g&&"ReactCrop--locked",k&&"ReactCrop--new-crop",e&&a&&"ReactCrop--fixed-aspect",e&&c&&"ReactCrop--circular-crop",e&&i&&"ReactCrop--rule-of-thirds",!this.dragStarted&&e&&!e.width&&!e.height&&"ReactCrop--invisible-crop",c&&"ReactCrop--no-animate");return ak.default.createElement("div",{ref:this.componentRef,className:m,style:h},ak.default.createElement("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown},b),e?ak.default.createElement("svg",{className:"ReactCrop__crop-mask",width:"100%",height:"100%"},ak.default.createElement("defs",null,ak.default.createElement("mask",{id:`hole-${this.instanceId}`},ak.default.createElement("rect",{width:"100%",height:"100%",fill:"white"}),c?ak.default.createElement("ellipse",{cx:`${e.x+e.width/2}${e.unit}`,cy:`${e.y+e.height/2}${e.unit}`,rx:`${e.width/2}${e.unit}`,ry:`${e.height/2}${e.unit}`,fill:"black"}):ak.default.createElement("rect",{x:`${e.x}${e.unit}`,y:`${e.y}${e.unit}`,width:`${e.width}${e.unit}`,height:`${e.height}${e.unit}`,fill:"black"}))),ak.default.createElement("rect",{fill:"black",fillOpacity:.5,width:"100%",height:"100%",mask:`url(#hole-${this.instanceId})`})):void 0,l)}};function aw(a,b){return new Promise(function(c,d){let e;return ax(a).then(function(a){try{return e=a,c(new Blob([b.slice(0,2),e,b.slice(2)],{type:"image/jpeg"}))}catch(a){return d(a)}},d)})}am(av,"xOrds",["e","w"]),am(av,"yOrds",["n","s"]),am(av,"xyOrds",["nw","ne","se","sw"]),am(av,"nudgeStep",1),am(av,"nudgeStepMedium",10),am(av,"nudgeStepLarge",100),am(av,"defaultProps",{ariaLabels:{cropArea:"Use the arrow keys to move the crop selection area",nwDragHandle:"Use the arrow keys to move the north west drag handle to change the crop selection area",nDragHandle:"Use the up and down arrow keys to move the north drag handle to change the crop selection area",neDragHandle:"Use the arrow keys to move the north east drag handle to change the crop selection area",eDragHandle:"Use the up and down arrow keys to move the east drag handle to change the crop selection area",seDragHandle:"Use the arrow keys to move the south east drag handle to change the crop selection area",sDragHandle:"Use the up and down arrow keys to move the south drag handle to change the crop selection area",swDragHandle:"Use the arrow keys to move the south west drag handle to change the crop selection area",wDragHandle:"Use the up and down arrow keys to move the west drag handle to change the crop selection area"}});let ax=a=>new Promise((b,c)=>{let d=new FileReader;d.addEventListener("load",({target:{result:a}})=>{let d=new DataView(a),e=0;if(65496!==d.getUint16(e))return c("not a valid JPEG");for(e+=2;;){let f=d.getUint16(e);if(65498===f)break;let g=d.getUint16(e+2);if(65505===f&&0x45786966===d.getUint32(e+4)){let f,h=e+10;switch(d.getUint16(h)){case 18761:f=!0;break;case 19789:f=!1;break;default:return c("TIFF header contains invalid endian")}if(42!==d.getUint16(h+2,f))return c("TIFF header contains invalid version");let i=d.getUint32(h+4,f),j=h+i+2+12*d.getUint16(h+i,f);for(let a=h+i+2;a>>24&255,d[c+1]=f>>>16&255,d[c+2]=f>>>8&255,d[c+3]=f>>>0&255,new Uint8Array(d.buffer,0,c+4)},e.deflateRaw=function(a,b){null==b&&(b={level:6});var c=new Uint8Array(50+Math.floor(1.1*a.length)),d=e.F.deflateRaw(a,c,d,b.level);return new Uint8Array(c.buffer,0,d)},e.encode=function(a,b){null==b&&(b=!1);var c=0,d=e.bin.writeUint,f=e.bin.writeUshort,g={};for(var h in a){var i=!e._noNeed(h)&&!b,j=a[h],k=e.crc.crc(j,0,j.length);g[h]={cpr:i,usize:j.length,crc:k,file:i?e.deflateRaw(j):j}}for(var h in g)c+=g[h].file.length+30+46+2*e.bin.sizeUTF8(h);var l=new Uint8Array(c+=22),m=0,n=[];for(var h in g){var o=g[h];n.push(m),m=e._writeHeader(l,m,h,o,0)}var p=0,q=m;for(var h in g)o=g[h],n.push(m),m=e._writeHeader(l,m,h,o,1,n[p++]);var r=m-q;return d(l,m,0x6054b50),m+=4,f(l,m+=4,p),f(l,m+=2,p),d(l,m+=2,r),d(l,m+=4,q),m+=4,m+=2,l.buffer},e._noNeed=function(a){var b=a.split(".").pop().toLowerCase();return -1!="png,jpg,jpeg,zip".indexOf(b)},e._writeHeader=function(a,b,c,d,f,g){var h=e.bin.writeUint,i=e.bin.writeUshort,j=d.file;return h(a,b,0==f?0x4034b50:0x2014b50),b+=4,1==f&&(b+=2),i(a,b,20),i(a,b+=2,0),i(a,b+=2,8*!!d.cpr),h(a,b+=2,0),h(a,b+=4,d.crc),h(a,b+=4,j.length),h(a,b+=4,d.usize),i(a,b+=4,e.bin.sizeUTF8(c)),i(a,b+=2,0),b+=2,1==f&&(b+=2,b+=2,h(a,b+=6,g),b+=4),b+=e.bin.writeUTF8(a,b,c),0==f&&(a.set(j,b),b+=j.length),b},e.crc={table:function(){for(var a=new Uint32Array(256),b=0;b<256;b++){for(var c=b,d=0;d<8;d++)1&c?c=0xedb88320^c>>>1:c>>>=1;a[b]=c}return a}(),update:function(a,b,c,d){for(var f=0;f>>8;return a},crc:function(a,b,c){return 0xffffffff^e.crc.update(0xffffffff,a,b,c)}},e.adler=function(a,b,c){for(var d=1,e=0,f=b,g=b+c;f>8&255},readUint:function(a,b){return 0x1000000*a[b+3]+(a[b+2]<<16|a[b+1]<<8|a[b])},writeUint:function(a,b,c){a[b]=255&c,a[b+1]=c>>8&255,a[b+2]=c>>16&255,a[b+3]=c>>24&255},readASCII:function(a,b,c){for(var d="",e=0;e>6,a[b+e+1]=128|63&g,e+=2;else if(0==(0xffff0000&g))a[b+e]=224|g>>12,a[b+e+1]=128|g>>6&63,a[b+e+2]=128|63&g,e+=3;else{if(0!=(0xffe00000&g))throw"e";a[b+e]=240|g>>18,a[b+e+1]=128|g>>12&63,a[b+e+2]=128|g>>6&63,a[b+e+3]=128|63&g,e+=4}}return e},sizeUTF8:function(a){for(var b=a.length,c=0,d=0;d>>3}var n=g.lits,o=g.strt,p=g.prev,q=0,r=0,s=0,u=0,v=0,w=0;for(m>2&&(o[w=e.F._hash(a,0)]=0),j=0;j14e3||r>26697)&&m-j>100&&(l>>16,A=65535&y;if(0!=y){A=65535&y;var B=h(z=y>>>16,g.of0);g.lhst[257+B]++;var C=h(A,g.df0);g.dhst[C]++,u+=g.exb[B]+g.dxb[C],n[q]=z<<23|j-l,n[q+1]=A<<16|B<<8|C,q+=2,l=j+z}else g.lhst[a[j]]++;r++}}for(s==j&&0!=a.length||(l>>3},e.F._bestMatch=function(a,b,c,d,f,g){var h=32767&b,i=c[h],j=h-i+32768&32767;if(i==h||d!=e.F._hash(a,b-j))return 0;for(var k=0,l=0,m=Math.min(32767,b);j<=m&&0!=--g&&i!=h;){if(0==k||a[b+k]==a[b+k-j]){var n=e.F._howLong(a,b,j);if(n>k){if(l=j,(k=n)>=f)break;j+2o&&(o=r,i=q)}}}j+=(h=i)-(i=c[h])+32768&32767}return k<<16|l},e.F._howLong=function(a,b,c){if(a[b]!=a[b-c]||a[b+1]!=a[b+1-c]||a[b+2]!=a[b+2-c])return 0;var d=b,e=Math.min(a.length,b+258);for(b+=3;b>>23,J=F+(8388607&H);F>16,M=K>>8&255,N=255&K;y(i,j=e.F._writeLit(257+M,k,i,j),I-w.of0[M]),j+=w.exb[M],x(i,j=e.F._writeLit(N,l,i,j),L-w.df0[N]),j+=w.dxb[N],F+=I}}j=e.F._writeLit(256,k,i,j)}return j},e.F._copyExact=function(a,b,c,d,e){var f=e>>>3;return d[f]=c,d[f+1]=c>>>8,d[f+2]=255-d[f],d[f+3]=255-d[f+1],f+=4,d.set(new Uint8Array(a.buffer,b,c),f),e+(c+4<<3)},e.F.getTrees=function(){for(var a=e.F.U,b=e.F._hufTree(a.lhst,a.ltree,15),c=e.F._hufTree(a.dhst,a.dtree,15),d=[],f=e.F._lenCodes(a.ltree,d),g=[],h=e.F._lenCodes(a.dtree,g),i=0;i4&&0==a.itree[1+(a.ordr[k-1]<<1)];)k--;return[b,c,j,f,h,k,d,g]},e.F.getSecond=function(a){for(var b=[],c=0;c>1)+",");return b},e.F.contSize=function(a,b){for(var c=0,d=0;d15&&(e.F._putsE(c,d,h,i),d+=i)}return d},e.F._lenCodes=function(a,b){for(var c=a.length;2!=c&&0==a[c-1];)c-=2;for(var d=0;d>>1,138))<11?b.push(17,j-3):b.push(18,j-11),d+=2*j-2}else if(e==h&&f==e&&g==e){for(i=d+5;i+2>>1,6);b.push(16,j-3),d+=2*j-2}else b.push(e,0)}return c>>>1},e.F._hufTree=function(a,b,c){var d=[],f=a.length,g=b.length,h=0;for(h=0;hc&&(e.F.restrictDepth(j,c,q),q=c),h=0;hb;d++){var g=a[d].d;a[d].d=b,f+=e-(1<>>=c-b;f>0;)(g=a[d].d)=0;d--)a[d].d==b&&f<0&&(a[d].d--,f++);0!=f&&console.log("debt left")},e.F._goodIndex=function(a,b){var c=0;return b[16]<=a&&(c|=16),b[8|c]<=a&&(c|=8),b[4|c]<=a&&(c|=4),b[2|c]<=a&&(c|=2),b[1|c]<=a&&(c|=1),c},e.F._writeLit=function(a,b,c,d){return e.F._putsF(c,d,b[a<<1]),d+b[1+(a<<1)]},e.F.inflate=function(a,b){var c=Uint8Array;if(3==a[0]&&0==a[1])return b||new c(0);var d=e.F,f=d._bitsF,g=d._bitsE,h=d._decodeTiny,i=d.makeCodes,j=d.codes2map,k=d._get17,l=d.U,m=null==b;m&&(b=new c(a.length>>>2<<3));for(var n,o,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0;0==p;)if(p=f(a,y,1),q=f(a,y+1,2),y+=3,0!=q){if(m&&(b=e.F._check(b,x+131072)),1==q&&(n=l.flmap,o=l.fdmap,v=511,w=31),2==q){r=g(a,y,5)+257,s=g(a,y+5,5)+1,u=g(a,y+10,4)+4,y+=14;for(var z=0;z<38;z+=2)l.itree[z]=0,l.itree[z+1]=0;var A=1;for(z=0;zA&&(A=B)}y+=3*u,i(l.itree,A),j(l.itree,A,l.imap),n=l.lmap,o=l.dmap,y=h(l.imap,(1<>>4;if(F>>>8==0)b[x++]=F;else{if(256==F)break;var G=x+F-254;if(F>264){var H=l.ldef[F-257];G=x+(H>>>3)+g(a,y,7&H),y+=7&H}var I=o[k(a,y)&w];y+=15&I;var J=I>>>4,K=l.ddef[J],L=(K>>>4)+f(a,y,15&K);for(y+=15&K,m&&(b=e.F._check(b,x+131072));x>>3),N=a[M-4]|a[M-3]<<8;m&&(b=e.F._check(b,x+N)),b.set(new c(a.buffer,a.byteOffset+M,N),x),y=M+N<<3,x+=N}return b.length==x?b:b.slice(0,x)},e.F._check=function(a,b){var c=a.length;if(b<=c)return a;var d=new Uint8Array(Math.max(c<<1,b));return d.set(a,0),d},e.F._decodeTiny=function(a,b,c,d,f,g){for(var h=e.F._bitsE,i=e.F._get17,j=0;j>>4;if(l<=15)g[j]=l,j++;else{var m=0,n=0;16==l?(n=3+h(d,f,2),f+=2,m=g[j-1]):17==l?(n=3+h(d,f,3),f+=3):18==l&&(n=11+h(d,f,7),f+=7);for(var o=j+n;j>>1;fe&&(e=h),f++}for(;f>1,i=a[g+1],j=h<<4|i,k=b-i,l=a[g]<>>15-b]=j,l++},e.F.revCodes=function(a,b){for(var c=e.F.U.rev15,d=15-b,f=0;f>>d}},e.F._putsE=function(a,b,c){c<<=7&b;var d=b>>>3;a[d]|=c,a[d+1]|=c>>>8},e.F._putsF=function(a,b,c){c<<=7&b;var d=b>>>3;a[d]|=c,a[d+1]|=c>>>8,a[d+2]|=c>>>16},e.F._bitsE=function(a,b,c){return(a[b>>>3]|a[1+(b>>>3)]<<8)>>>(7&b)&(1<>>3]|a[1+(b>>>3)]<<8|a[2+(b>>>3)]<<16)>>>(7&b)&(1<>>3]|a[1+(b>>>3)]<<8|a[2+(b>>>3)]<<16)>>>(7&b)},e.F._get25=function(a,b){return(a[b>>>3]|a[1+(b>>>3)]<<8|a[2+(b>>>3)]<<16|a[3+(b>>>3)]<<24)>>>(7&b)},e.F.U=(c=Uint16Array,d=Uint32Array,{next_code:new c(16),bl_count:new c(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new c(32),df0:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new d(32),flmap:new c(512),fltree:[],fdmap:new c(32),fdtree:[],lmap:new c(32768),ltree:[],ttree:[],dmap:new c(32768),dtree:[],imap:new c(512),itree:[],rev15:new c(32768),lhst:new d(286),dhst:new d(30),ihst:new d(19),lits:new d(15e3),strt:new c(65536),prev:new c(32768)}),function(){for(var a=e.F.U,b=0;b<32768;b++){var c=b;c=(0xff00ff00&(c=(0xf0f0f0f0&(c=(0xcccccccc&(c=(0xaaaaaaaa&c)>>>1|(0x55555555&c)<<1))>>>2|(0x33333333&c)<<2))>>>4|(0xf0f0f0f&c)<<4))>>>8|(0xff00ff&c)<<8,a.rev15[b]=(c>>>16|c<<16)>>>17}function d(a,b,c){for(;0!=b--;)a.push(0,c)}for(b=0;b<32;b++)a.ldef[b]=a.of0[b]<<3|a.exb[b],a.ddef[b]=a.df0[b]<<4|a.dxb[b];d(a.fltree,144,8),d(a.fltree,112,9),d(a.fltree,24,7),d(a.fltree,8,8),e.F.makeCodes(a.fltree,9),e.F.codes2map(a.fltree,9,a.flmap),e.F.revCodes(a.fltree,9),d(a.fdtree,32,5),e.F.makeCodes(a.fdtree,5),e.F.codes2map(a.fdtree,5,a.fdmap),e.F.revCodes(a.fdtree,5),d(a.itree,19,0),d(a.ltree,286,0),d(a.dtree,30,0),d(a.ttree,320,0)}();var az=(f={__proto__:null,default:ay},[ay].forEach(function(a){a&&"string"!=typeof a&&!Array.isArray(a)&&Object.keys(a).forEach(function(b){if("default"!==b&&!(b in f)){var c=Object.getOwnPropertyDescriptor(a,b);Object.defineProperty(f,b,c.get?c:{enumerable:!0,get:function(){return a[b]}})}})}),Object.freeze(f));let aA=function(){let a,b,c;var d={nextZero(a,b){for(;0!=a[b];)b++;return b},readUshort:(a,b)=>a[b]<<8|a[b+1],writeUshort(a,b,c){a[b]=c>>8&255,a[b+1]=255&c},readUint:(a,b)=>0x1000000*a[b]+(a[b+1]<<16|a[b+2]<<8|a[b+3]),writeUint(a,b,c){a[b]=c>>24&255,a[b+1]=c>>16&255,a[b+2]=c>>8&255,a[b+3]=255&c},readASCII(a,b,c){let d="";for(let e=0;ea.length<2?`0${a}`:a,readUTF8(a,b,c){let e,f="";for(let e=0;e>3)]>>7-(7&n)&1);h[q]=d[w],h[q+1]=d[w+1],h[q+2]=d[w+2],h[q+3]=r>2)]>>6-((3&n)<<1)&3),h[q]=d[w],h[q+1]=d[w+1],h[q+2]=d[w+2],h[q+3]=r>1)]>>4-((1&n)<<2)&15),h[q]=d[w],h[q+1]=d[w+1],h[q+2]=d[w+2],h[q+3]=r>>3)]>>>7-(7&z)&1))!=255*p);j[d+z]=A<<24|y<<16|y<<8|y}else if(2==l)for(z=0;z>>2)]>>>6-((3&z)<<1)&3))!=85*p),j[d+z]=A<<24|y<<16|y<<8|y;else if(4==l)for(z=0;z>>1)]>>>4-((1&z)<<2)&15))!=17*p),j[d+z]=A<<24|y<<16|y<<8|y;else if(8==l)for(z=0;z>3,g=Math.ceil(c*e/8),h=new Uint8Array(d*g),k=0,l=[0,0,4,0,2,0,1],m=[0,4,0,2,0,1,0],n=[8,8,8,4,4,2,2],o=[8,8,4,4,2,2,1],p=0;for(;p<7;){let i=n[p],r=o[p],s=0,u=0,v=l[p];for(;v>3])>>7-(7&d)&1,h[z*g+(b>>3)]|=q<<7-(7&b)),2==e&&(q=(q=a[d>>3])>>6-(7&d)&3,h[z*g+(b>>2)]|=q<<6-((3&b)<<1)),4==e&&(q=(q=a[d>>3])>>4-(7&d)&15,h[z*g+(b>>1)]|=q<<4-((1&b)<<2)),e>=8){let c=z*g+b*f;for(let b=0;b>3)+b]}d+=e,b+=r}y++,z+=i}s*u!=0&&(k+=u*(1+x)),p+=1}return h}(b,a)),b}function g(a,b){return h(new Uint8Array(a.buffer,2,a.length-6),b)}var h=((a={}).N=function(b,c){let d=Uint8Array,e,f,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(3==b[0]&&0==b[1])return c||new d(0);let p=a.b,q=a.e,r=a.R,s=a.n,u=a.A,v=a.Z,w=a.m,x=null==c;for(x&&(c=new d(b.length>>>2<<5));0==g;)if(g=p(b,o,1),h=p(b,o+1,2),o+=3,0!=h){if(x&&(c=a.W(c,n+131072)),1==h&&(e=w.J,f=w.h,l=511,m=31),2==h){i=q(b,o,5)+257,j=q(b,o+5,5)+1,k=q(b,o+10,4)+4,o+=14;let c=1;for(var y=0;y<38;y+=2)w.Q[y]=0,w.Q[y+1]=0;for(y=0;yc&&(c=a)}o+=3*k,s(w.Q,c),u(w.Q,c,w.u),e=w.w,f=w.d,o=r(w.u,(1<>>4;if(d>>>8==0)c[n++]=d;else{if(256==d)break;{let a=n+d-254;if(d>264){let c=w.q[d-257];a=n+(c>>>3)+q(b,o,7&c),o+=7&c}let e=f[v(b,o)&m];o+=15&e;let g=e>>>4,h=w.c[g],i=(h>>>4)+p(b,o,15&h);for(o+=15&h;n>>3),f=b[e-4]|b[e-3]<<8;x&&(c=a.W(c,n+f)),c.set(new d(b.buffer,b.byteOffset+e,f),n),o=e+f<<3,n+=f}return c.length==n?c:c.slice(0,n)},a.W=function(a,b){let c=a.length;if(b<=c)return a;let d=new Uint8Array(c<<1);return d.set(a,0),d},a.R=function(b,c,d,e,f,g){let h=a.e,i=a.Z,j=0;for(;j>>4;if(d<=15)g[j]=d,j++;else{let a=0,b=0;16==d?(b=3+h(e,f,2),f+=2,a=g[j-1]):17==d?(b=3+h(e,f,3),f+=3):18==d&&(b=11+h(e,f,7),f+=7);let c=j+b;for(;j>>1;for(;fe&&(e=c),f++}for(;f>1,g=b[a+1],h=e<<4|g,i=c-g,j=b[a]<>>15-c]=h,j++}},a.l=function(b,c){let d=a.m.r,e=15-c;for(let a=0;a>>e}},a.M=function(a,b,c){c<<=7&b;let d=b>>>3;a[d]|=c,a[d+1]|=c>>>8},a.I=function(a,b,c){c<<=7&b;let d=b>>>3;a[d]|=c,a[d+1]|=c>>>8,a[d+2]|=c>>>16},a.e=function(a,b,c){return(a[b>>>3]|a[1+(b>>>3)]<<8)>>>(7&b)&(1<>>3]|a[1+(b>>>3)]<<8|a[2+(b>>>3)]<<16)>>>(7&b)&(1<>>3]|a[1+(b>>>3)]<<8|a[2+(b>>>3)]<<16)>>>(7&b)},a.i=function(a,b){return(a[b>>>3]|a[1+(b>>>3)]<<8|a[2+(b>>>3)]<<16|a[3+(b>>>3)]<<24)>>>(7&b)},b=Uint16Array,c=Uint32Array,a.m={K:new b(16),j:new b(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new b(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new c(32),J:new b(512),_:[],h:new b(32),$:[],w:new b(32768),C:[],v:[],d:new b(32768),D:[],u:new b(512),Q:[],r:new b(32768),s:new c(286),Y:new c(30),a:new c(19),t:new c(15e3),k:new b(65536),g:new b(32768)},function(){let b=a.m;for(var c=0;c<32768;c++){let a=c;a=(0xff00ff00&(a=(0xf0f0f0f0&(a=(0xcccccccc&(a=(0xaaaaaaaa&a)>>>1|(0x55555555&a)<<1))>>>2|(0x33333333&a)<<2))>>>4|(0xf0f0f0f&a)<<4))>>>8|(0xff00ff&a)<<8,b.r[c]=(a>>>16|a<<16)>>>17}function d(a,b,c){for(;0!=b--;)a.push(0,c)}for(c=0;c<32;c++)b.q[c]=b.S[c]<<3|b.T[c],b.c[c]=b.p[c]<<4|b.z[c];d(b._,144,8),d(b._,112,9),d(b._,24,7),d(b._,8,8),a.n(b._,9),a.A(b._,9,b.J),a.l(b._,9),d(b.$,32,5),a.n(b.$,5),a.A(b.$,5,b.h),a.l(b.$,5),d(b.Q,19,0),d(b.C,286,0),d(b.D,30,0),d(b.v,320,0)}(),a.N);function i(a){return[1,null,3,1,2,null,4][a.ctype]*a.depth}function j(a,b,c,d,e){let f,g,h=i(b),j=Math.ceil(d*h/8);h=Math.ceil(h/8);let l=a[c],m=0;if(l>1&&(a[c]=[0,0,1][l-2]),3==l)for(m=h;m>>1)&255;for(let b=0;b>>1);for(;m>>1)}else{for(;m=0&&h>=0?(l=c*b+f<<2,m=(h+c)*e+g+f<<2):(l=(-h+c)*b-g+f<<2,m=c*e+f<<2),0==i)d[m]=a[l],d[m+1]=a[l+1],d[m+2]=a[l+2],d[m+3]=a[l+3];else if(1==i){var n=a[l+3]*(1/255),o=a[l]*n,p=a[l+1]*n,q=a[l+2]*n,r=d[m+3]*(1/255),s=d[m]*r,u=d[m+1]*r,v=d[m+2]*r;let b=1-n,c=n+r*b,e=0==c?0:1/c;d[m+3]=255*c,d[m+0]=(o+s*b)*e,d[m+1]=(p+u*b)*e,d[m+2]=(q+v*b)*e}else if(2==i)n=a[l+3],o=a[l],p=a[l+1],q=a[l+2],r=d[m+3],s=d[m],u=d[m+1],v=d[m+2],n==r&&o==s&&p==u&&q==v?(d[m]=0,d[m+1]=0,d[m+2]=0,d[m+3]=0):(d[m]=o,d[m+1]=p,d[m+2]=q,d[m+3]=n);else if(3==i){if(n=a[l+3],o=a[l],p=a[l+1],q=a[l+2],r=d[m+3],s=d[m],u=d[m+1],v=d[m+2],n==r&&o==s&&p==u&&q==v)continue;if(n<220&&r>20)return!1}return!0}return{decode:function(a){let b=new Uint8Array(a),c=8,e=d.readUshort,i=d.readUint,j={tabs:{},frames:[]},k=new Uint8Array(b.length),l,m=0,n=0,o=[137,80,78,71,13,10,26,10];for(var p,q=0;q<8;q++)if(b[q]!=o[q])throw"The input is not a PNG file!";for(;c>>1:c>>>=1;a[b]=c}return a}(),update(a,b,c,e){for(let f=0;f>>8;return a},crc:(a,b,c)=>0xffffffff^d.update(0xffffffff,a,b,c)};function e(a,b,c,d){b[c]+=a[0]*d>>4,b[c+1]+=a[1]*d>>4,b[c+2]+=a[2]*d>>4,b[c+3]+=a[3]*d>>4}function f(a){return Math.max(0,Math.min(255,a))}function g(a,b){let c=a[0]-b[0],d=a[1]-b[1],e=a[2]-b[2],f=a[3]-b[3];return c*c+d*d+e*e+f*f}function h(a,b,c,d,h,i,j){null==j&&(j=1);let k=d.length,l=[];for(var m,n=0;n>>0&255,a>>>8&255,a>>>16&255,a>>>24&255])}for(n=0;n>2]=o,r[n>>2]=d[o]}}function i(a,c,e,f,g){null==g&&(g={});let{crc:h}=d,i=b.writeUint,j=b.writeUshort,k=b.writeASCII,l=8,m=a.frames.length>1,n,o=!1,p=33+20*!!m;if(null!=g.sRGB&&(p+=13),null!=g.pHYs&&(p+=21),null!=g.iCCP&&(p+=21+(n=pako.deflate(g.iCCP)).length+4),3==a.ctype){for(var q=a.plte.length,r=0;r>>24!=255&&(o=!0);p+=8+3*q+4+(o?8+ +q+4:0)}for(var s=0;s>>8&255,f=c>>>16&255;u[l+b+0]=d,u[l+b+1]=e,u[l+b+2]=f}if(i(u,l+=3*q,h(u,l-3*q-4,3*q+4)),l+=4,o){for(i(u,l,q),k(u,l+=4,"tRNS"),l+=4,r=0;r>>24&255;i(u,l+=q,h(u,l-q-4,q+4)),l+=4}}let w=0;for(s=0;s5e5||1==d)&&(k=[0]),h&&(j={level:0});for(var l=0;l>1)+256&255;if(4==g)for(j=f;j>1)&255;for(j=f;j>1)&255}if(4==g){for(j=0;ji&&(i=b),am&&(m=a));-1==i&&(g=h=i=m=0),f&&(1==(1&g)&&g--,1==(1&h)&&h--);let u=(i-g+1)*(m-h+1);u>2,a>>2);B.push(C);let d=new Uint8Array(b.abuf,c,a);p&&h(D.img,D.rect.width,D.rect.height,A,d,C),D.img.set(d),c+=a}}else for(u=0;uE&&b==a[w-E])C[w]=C[w-E];else{let a=z[b];if(null==a&&(z[b]=a=A.length,A.push(b),A.length>=300))break;C[w]=a}}}let F=A.length;for(F<=256&&0==o&&(r=Math.max(r=F<=2?1:F<=4?2:F<=16?4:8,k)),u=0;u>1)]|=e[a+H]<<4-4*(1&H);else if(2==r)for(H=0;H>2)]|=e[a+H]<<6-2*(3&H);else if(1==r)for(H=0;H>3)]|=e[a+H]<<7-(7&H)}b=G,q=3,d=1}else if(0==x&&1==y.length){G=new Uint8Array(E*a*3);let e=E*a;for(w=0;ws&&(s=d),hu&&(u=h))}-1==s&&(q=r=s=u=0),h&&(1==(1&q)&&q--,1==(1&r)&&r--),g={x:q,y:r,width:s-q+1,height:u-r+1};let v=e[f];v.rect=g,v.blend=1,v.img=new Uint8Array(g.width*g.height*4),0==e[f-1].dispose?(a(k,c,d,v.img,g.width,g.height,-g.x,-g.y,0),m(o,c,d,v.img,g)):a(o,c,d,v.img,g.width,g.height,-g.x,-g.y,0)}function m(b,c,d,e,f){a(b,c,d,e,f.width,f.height,-f.x,-f.y,2)}function n(a,b){let c,d=new Uint8Array(a),e=d.slice(0),f=new Uint32Array(e.buffer),g=o(e,b),h=g[0],i=g[1],j=d.length,k=new Uint8Array(j>>2);if(d.length<2e7)for(var l=0;l>2]=c.ind,f[l>>2]=c.est.rgba;else for(l=0;l=q(c.est,m,n,r,s)?c.left:c.right;k[l>>2]=c.ind,f[l>>2]=c.est.rgba}return{abuf:e.buffer,inds:k,plte:i}}function o(a,b,c){null==c&&(c=1e-4);let d=new Uint32Array(a.buffer),e={i0:0,i1:a.length,bst:null,est:null,tdst:0,left:null,right:null};e.bst=s(a,e.i0,e.i1),e.est=u(e.bst);let f=[e];for(;f.lengthb&&(b=f[g].est.L,e=g);if(bf;)d-=4;if(c>=d)break;let g=b[c>>2];b[c>>2]=b[d>>2],b[d>>2]=g,c+=4,d-=4}for(;r(a,c,e)>f;)c-=4;return c+4}(a,d,h.i0,h.i1,h.est.e,h.est.eMq255);if(h.i0>=i||h.i1<=i){h.est.L=0;continue}let j={i0:h.i0,i1:i,bst:null,est:null,tdst:0,left:null,right:null};j.bst=s(a,j.i0,j.i1),j.est=u(j.bst);let k={i0:i,i1:h.i1,bst:null,est:null,tdst:0,left:null,right:null};for(g=0,k.bst={R:[],m:[],N:h.bst.N-j.bst.N};g<16;g++)k.bst.R[g]=h.bst.R[g]-j.bst.R[g];for(g=0;g<4;g++)k.bst.m[g]=h.bst.m[g]-j.bst.m[g];k.est=u(k.bst),h.left=j,h.right=k,f[e]=j,f.push(k)}for(f.sort((a,b)=>b.bst.N-a.bst.N),g=0;g0&&(h=a.right,i=a.left);let j=p(h,b,c,d,e);if(j.tdst<=g*g)return j;let k=p(i,b,c,d,e);return k.tdst>2}}function u(a){let{R:b}=a,{m:c}=a,{N:d}=a,e=c[0],f=c[1],g=c[2],h=c[3],i=0==d?0:1/d,j=[b[0]-e*e*i,b[1]-e*f*i,b[2]-e*g*i,b[3]-e*h*i,b[4]-f*e*i,b[5]-f*f*i,b[6]-f*g*i,b[7]-f*h*i,b[8]-g*e*i,b[9]-g*f*i,b[10]-g*g*i,b[11]-g*h*i,b[12]-h*e*i,b[13]-h*f*i,b[14]-h*g*i,b[15]-h*h*i],k=[Math.random(),Math.random(),Math.random(),Math.random()],l=0,m=0;if(0!=d)for(let a=0;a<16&&(k=v.multVec(j,k),m=Math.sqrt(v.dot(k,k)),k=v.sml(1/m,k),!(0!=a&&1e-9>Math.abs(m-l)));a++)l=m;let n=[e*i,f*i,g*i,h*i];return{Cov:j,q:n,e:k,L:l,eMq255:v.dot(v.sml(255,n),k),eMq:v.dot(k,n),rgba:(Math.round(255*n[3])<<24|Math.round(255*n[2])<<16|Math.round(255*n[1])<<8|(0|Math.round(255*n[0])))>>>0}}var v={multVec:(a,b)=>[a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3],a[4]*b[0]+a[5]*b[1]+a[6]*b[2]+a[7]*b[3],a[8]*b[0]+a[9]*b[1]+a[10]*b[2]+a[11]*b[3],a[12]*b[0]+a[13]*b[1]+a[14]*b[2]+a[15]*b[3]],dot:(a,b)=>a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3],sml:(a,b)=>[a*b[0],a*b[1],a*b[2],a*b[3]]};aA.encode=function(a,b,c,d,e,f,g){null==d&&(d=0),null==g&&(g=!1);let h=k(a,b,c,d,[!1,!1,!1,0,g,!1]);return j(h,-1),i(h,b,c,e,f)},aA.encodeLL=function(a,b,c,d,e,f,g,h){let k={ctype:0+2*(1!=d)+4*(0!=e),depth:f,frames:[]},l=(d+e)*f,m=l*b;for(let d=0;d>>0),u(1),u(32),v(3),v(h),v(2835),v(2835),r+=8,v(0xff0000),v(65280),v(255),v(0xff000000),v(0x57696e20),function a(){for(;q0;){for(o=122+q*g,l=0;l>>24,k.setUint32(o+l,m<<8|n),l+=4;q++}s{b(new Blob([a],{type:"image/bmp"}))})},_dly:9};var aC={CHROME:"CHROME",FIREFOX:"FIREFOX",DESKTOP_SAFARI:"DESKTOP_SAFARI",IE:"IE",IOS:"IOS",ETC:"ETC"},aD={[aC.CHROME]:16384,[aC.FIREFOX]:11180,[aC.DESKTOP_SAFARI]:16384,[aC.IE]:8192,[aC.IOS]:4096,[aC.ETC]:8192};let aE="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,aF=aE&&"undefined"!=typeof File&&File,aG=aE&&"undefined"!=typeof FileReader&&FileReader;function aH(a,b,c=Date.now()){return new Promise(d=>{let e=a.split(","),f=e[0].match(/:(.*?);/)[1],g=globalThis.atob(e[1]),h=g.length,i=new Uint8Array(h);for(;h--;)i[h]=g.charCodeAt(h);let j=new Blob([i],{type:f});j.name=b,j.lastModified=c,d(j)})}function aI(a){return new Promise((b,c)=>{let d=new aG;d.onload=()=>b(d.result),d.onerror=a=>c(a),d.readAsDataURL(a)})}function aJ(a){return new Promise((b,c)=>{let d=new Image;d.onload=()=>b(d),d.onerror=a=>c(a),d.src=a})}function aK(){if(void 0!==aK.cachedResult)return aK.cachedResult;let a=aC.ETC,{userAgent:b}=navigator;return/Chrom(e|ium)/i.test(b)?a=aC.CHROME:/iP(ad|od|hone)/i.test(b)&&/WebKit/i.test(b)?a=aC.IOS:/Safari/i.test(b)?a=aC.DESKTOP_SAFARI:/Firefox/i.test(b)?a=aC.FIREFOX:(/MSIE/i.test(b)||!0==!!document.documentMode)&&(a=aC.IE),aK.cachedResult=a,aK.cachedResult}function aL(a,b){let c=aD[aK()],d=a,e=b,f=d*e,g=d>e?e/d:d/e;for(;f>c*c;){let a=(c+d)/2,b=(c+e)/2;aaB.toBlob(a,b)).then((function(a){try{return(h=a).name=c,h.lastModified=d,j.call(this)}catch(a){return g(a)}}).bind(this),g);if("function"==typeof OffscreenCanvas&&a instanceof OffscreenCanvas)return a.convertToBlob({type:b,quality:e}).then((function(a){try{return(h=a).name=c,h.lastModified=d,i.call(this)}catch(a){return g(a)}}).bind(this),g);return aH(a.toDataURL(b,e),c,d).then((function(a){try{return h=a,i.call(this)}catch(a){return g(a)}}).bind(this),g);function i(){return j.call(this)}function j(){return k.call(this)}function k(){return f(h)}})}function aR(a){a.width=0,a.height=0}function aS(){return new Promise(function(a,b){let c,d,e,f;return void 0!==aS.cachedResult?a(aS.cachedResult):aH("data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/xABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAAAAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==","test.jpg",Date.now()).then(function(g){try{return c=g,aP(c).then(function(g){try{return d=g[1],aQ(d,c.type,c.name,c.lastModified).then(function(c){try{return e=c,aR(d),aP(e).then(function(c){try{return f=c[0],aS.cachedResult=1===f.width&&2===f.height,a(aS.cachedResult)}catch(a){return b(a)}},b)}catch(a){return b(a)}},b)}catch(a){return b(a)}},b)}catch(a){return b(a)}},b)})}function aT(a){return new Promise((b,c)=>{let d=new aG;d.onload=a=>{let c=new DataView(a.target.result);if(65496!=c.getUint16(0,!1))return b(-2);let d=c.byteLength,e=2;for(;e=c.getUint16(e+2,!1));){let a=c.getUint16(e,!1);if(e+=2,65505==a){if(0x45786966!=c.getUint32(e+=2,!1))return b(-1);let a=18761==c.getUint16(e+=6,!1);e+=c.getUint32(e+4,a);let d=c.getUint16(e,a);e+=2;for(let f=0;fc(a),d.readAsArrayBuffer(a)})}function aU(a,b){let{width:c}=a,{height:d}=a,{maxWidthOrHeight:e}=b,f,g=a;return isFinite(e)&&(c>e||d>e)&&([g,f]=aM(c,d),c>d?(g.width=e,g.height=d/c*e):(g.width=c/d*e,g.height=e),f.drawImage(a,0,0,g.width,g.height),aR(a)),g}function aV(a,b){let{width:c}=a,{height:d}=a,[e,f]=aM(c,d);switch(b>4&&b<9?(e.width=d,e.height=c):(e.width=c,e.height=d),b){case 2:f.transform(-1,0,0,1,c,0);break;case 3:f.transform(-1,0,0,-1,c,d);break;case 4:f.transform(1,0,0,-1,0,d);break;case 5:f.transform(0,1,1,0,0,0);break;case 6:f.transform(0,1,-1,0,d,0);break;case 7:f.transform(0,-1,-1,0,d,c);break;case 8:f.transform(0,-1,1,0,0,c)}return f.drawImage(a,0,0,c,d),aR(a),e}function aW(a,b,c=0){return new Promise(function(d,e){let f,g,h,i,j,k,l,m,n,o,p,q,r,s,u,v,w,x,y,z;function A(a=5){if(b.signal&&b.signal.aborted)throw b.signal.reason;f+=a,b.onProgress(Math.min(f,100))}function B(a){if(b.signal&&b.signal.aborted)throw b.signal.reason;f=Math.min(Math.max(a,f),100),b.onProgress(f)}return f=c,g=b.maxIteration||10,h=1024*b.maxSizeMB*1024,A(),aP(a,b).then((function(c){try{return[,i]=c,A(),j=aU(i,b),A(),new Promise(function(c,d){var e;if(!(e=b.exifOrientation))return aT(a).then((function(a){try{return e=a,f.call(this)}catch(a){return d(a)}}).bind(this),d);function f(){return c(e)}return f.call(this)}).then((function(c){try{return k=c,A(),aS().then((function(c){try{return l=c?j:aV(j,k),A(),m=b.initialQuality||1,n=b.fileType||a.type,aQ(l,n,a.name,a.lastModified,m).then((function(c){try{var f;if(o=c,A(),p=o.size>h,q=o.size>a.size,!p&&!q)return B(100),d(o);function k(){if(g--&&(u>h||u>r)){let b,c;return b=z?.95*y.width:y.width,c=z?.95*y.height:y.height,[w,x]=aM(b,c),x.drawImage(y,0,0,b,c),m*="image/png"===n?.85:.95,aQ(w,n,a.name,a.lastModified,m).then(function(a){try{return v=a,aR(y),y=w,u=v.size,B(Math.min(99,Math.floor((s-u)/(s-h)*100))),k}catch(a){return e(a)}},e)}return[1]}return r=a.size,u=s=o.size,y=l,z=!b.alwaysKeepResolution&&p,(f=(function(a){for(;a;){if(a.then)return void a.then(f,e);try{if(a.pop){if(a.length)return a.pop()?C.call(this):a;a=k}else a=a.call(this)}catch(a){return e(a)}}}).bind(this))(k);function C(){return aR(y),aR(w),aR(j),aR(l),aR(i),B(100),d(v)}}catch(a){return e(a)}}).bind(this),e)}catch(a){return e(a)}}).bind(this),e)}catch(a){return e(a)}}).bind(this),e)}catch(a){return e(a)}}).bind(this),e)})}function aX(a,c){return new Promise(function(d,e){let f,g,h,i,j,k;if(f={...c},h=0,{onProgress:i}=f,f.maxSizeMB=f.maxSizeMB||1/0,j="boolean"!=typeof f.useWebWorker||f.useWebWorker,delete f.useWebWorker,f.onProgress=a=>{h=a,"function"==typeof i&&i(h)},!(a instanceof Blob||a instanceof aF))return e(Error("The file given is not an instance of Blob or File"));if(!/^image/.test(a.type))return e(Error("The file given is not an image"));if(k="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,!j||"function"!=typeof Worker||k)return aW(a,f).then((function(a){try{return g=a,n.call(this)}catch(a){return e(a)}}).bind(this),e);var l=(function(){try{return n.call(this)}catch(a){return e(a)}}).bind(this),m=function(b){try{return aW(a,f).then(function(a){try{return g=a,l()}catch(a){return e(a)}},e)}catch(a){return e(a)}};try{return f.libURL=f.libURL||"https://cdn.jsdelivr.net/npm/browser-image-compression@2.0.2/dist/browser-image-compression.js",new Promise((c,d)=>{var e;let g;b||(g=[],"function"==typeof(e="\nlet scriptImported = false\nself.addEventListener('message', async (e) => {\n const { file, id, imageCompressionLibUrl, options } = e.data\n options.onProgress = (progress) => self.postMessage({ progress, id })\n try {\n if (!scriptImported) {\n // console.log('[worker] importScripts', imageCompressionLibUrl)\n self.importScripts(imageCompressionLibUrl)\n scriptImported = true\n }\n // console.log('[worker] self', self)\n const compressedFile = await imageCompression(file, options)\n self.postMessage({ file: compressedFile, id })\n } catch (e) {\n // console.error('[worker] error', e)\n self.postMessage({ error: e.message + '\\n' + e.stack, id })\n }\n})\n")?g.push(`(${e})()`):g.push(e),b=URL.createObjectURL(new Blob(g)));let h=new Worker(b);h.addEventListener("message",function(a){if(f.signal&&f.signal.aborted)h.terminate();else if(void 0===a.data.progress){if(a.data.error)return d(Error(a.data.error)),void h.terminate();c(a.data.file),h.terminate()}else f.onProgress(a.data.progress)}),h.addEventListener("error",d),f.signal&&f.signal.addEventListener("abort",()=>{d(f.signal.reason),h.terminate()}),h.postMessage({file:a,imageCompressionLibUrl:f.libURL,options:{...f,onProgress:void 0,signal:void 0}})}).then(function(a){try{return g=a,l()}catch(a){return m()}},m)}catch(a){m()}function n(){try{g.name=a.name,g.lastModified=a.lastModified}catch(a){}try{f.preserveExif&&"image/jpeg"===a.type&&(!f.fileType||f.fileType&&f.fileType===a.type)&&(g=aw(a,g))}catch(a){}return d(g)}})}function aY({value:a,onChange:b,className:c}){let[d,e]=(0,h.useState)(void 0),[f,j]=(0,h.useState)(!1),[k,l]=(0,h.useState)(!1),[m,n]=(0,h.useState)(null),[o,p]=(0,h.useState)(),[q,r]=(0,h.useState)(),s=(0,h.useRef)(null),u=(0,h.useRef)(null);(0,h.useEffect)(()=>{a?e(a):e(void 0)},[a]);let v=async a=>{let b=a.target.files?.[0];if(b)try{if(!b.type.startsWith("image/"))return void alert("请选择图片文件");let a=await aX(b,{maxSizeMB:1,maxWidthOrHeight:1024,useWebWorker:!0}),c=new FileReader;c.onload=()=>{n(c.result),l(!0)},c.readAsDataURL(a)}catch(a){console.error("Failed to process image:",a),alert("图片处理失败")}finally{u.current&&(u.current.value="")}},w=async()=>{if(!q||!s.current)return void await x(m);try{j(!0);let a=document.createElement("canvas"),b=s.current.naturalWidth/s.current.width,c=s.current.naturalHeight/s.current.height;a.width=q.width,a.height=q.height;let d=a.getContext("2d");d&&d.drawImage(s.current,q.x*b,q.y*c,q.width*b,q.height*c,0,0,q.width,q.height),a.toBlob(async a=>{a&&await x(URL.createObjectURL(a),a)},"image/jpeg",.9)}catch(a){console.error("Failed to crop image:",a),alert("图片裁剪失败")}finally{j(!1),l(!1),n(null)}},x=async(a,c)=>{try{j(!0);let d=c;if(!d){let b=await fetch(a);d=await b.blob()}let e=new FormData;e.append("file",d,"avatar.jpg");let f=await fetch("/api/upload",{method:"POST",body:e});if(!f.ok){let a=await f.json();throw Error(a.error||"上传失败")}let{url:g}=await f.json();b(g),l(!1),n(null)}catch(a){console.error("Failed to save image:",a),alert("图片保存失败: "+(a instanceof Error?a.message:"未知错误"))}finally{j(!1)}};return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("div",{className:`flex items-center gap-4 ${c}`,children:[(0,g.jsxs)(ae.Avatar,{className:"h-20 w-20 border-2 border-dashed border-muted-foreground/50",children:[(0,g.jsx)(ae.AvatarImage,{src:d,className:"object-cover"}),(0,g.jsx)(ae.AvatarFallback,{className:"bg-transparent",children:f?(0,g.jsx)(ai.Loader2,{className:"h-6 w-6 animate-spin"}):(0,g.jsx)(ag.Upload,{className:"h-6 w-6 text-muted-foreground"})})]}),(0,g.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,g.jsx)("input",{type:"file",ref:u,className:"hidden",accept:"image/*",onChange:v}),(0,g.jsx)(i.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>u.current?.click(),disabled:f,children:a?"更换头像":"上传头像"}),a&&(0,g.jsxs)(i.Button,{type:"button",variant:"ghost",size:"sm",className:"text-destructive hover:text-destructive",onClick:()=>{b(void 0)},children:[(0,g.jsx)(ah.X,{className:"mr-2 h-3 w-3"})," 移除"]})]})]}),(0,g.jsx)(af.Dialog,{open:k,onOpenChange:l,children:(0,g.jsxs)(af.DialogContent,{className:"max-w-3xl",children:[(0,g.jsx)(af.DialogHeader,{children:(0,g.jsxs)(af.DialogTitle,{className:"flex items-center gap-2",children:[(0,g.jsx)(aj,{className:"h-5 w-5"}),"裁剪图片"]})}),(0,g.jsx)("div",{className:"max-h-[60vh] overflow-auto",children:m&&(0,g.jsx)(av,{crop:o,onChange:a=>p(a),onComplete:a=>r(a),aspect:1,circularCrop:!0,children:(0,g.jsx)("img",{ref:s,src:m,alt:"待裁剪图片",className:"max-w-full"})})}),(0,g.jsxs)(af.DialogFooter,{children:[(0,g.jsx)(i.Button,{variant:"outline",onClick:()=>{l(!1),n(null)},children:"取消"}),(0,g.jsxs)(i.Button,{onClick:w,disabled:f,children:[f?(0,g.jsx)(ai.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):null,q?"确认裁剪":"跳过裁剪"]})]})]})})]})}aX.getDataUrlFromFile=aI,aX.getFilefromDataUrl=aH,aX.loadImage=aJ,aX.drawImageInCanvas=aN,aX.drawFileInCanvas=aP,aX.canvasToFile=aQ,aX.getExifOrientation=aT,aX.handleMaxWidthOrHeight=aU,aX.followExifOrientation=aV,aX.cleanupCanvasMemory=aR,aX.isAutoOrientationInBrowser=aS,aX.approximateBelowMaximumCanvasSizeOfBrowser=aL,aX.copyExifWithoutOrientation=aw,aX.getBrowserName=aK,aX.version="2.0.2";var aZ=a.i(67650),a$=a.i(76715),a_=a.i(6364);function a0({photoIds:a=[],onChange:b,readonly:c=!1}){let{showAlert:d,showConfirm:e}=(0,a_.useDialog)(),[f,j]=(0,h.useState)([]),[k,l]=(0,h.useState)(null),[m,n]=(0,h.useState)(!1);(0,h.useEffect)(()=>{j(a.map(a=>({id:a,url:a})))},[a]);let o=async c=>{let e=c.target.files;if(e&&0!==e.length){n(!0);try{let c=[];for(let a of Array.from(e)){if(!a.type.startsWith("image/"))continue;let b={maxSizeMB:2,maxWidthOrHeight:1920,useWebWorker:!0},d=await aX(a,b),e=new FormData;e.append("file",d);let f=await fetch("/api/upload",{method:"POST",body:e});if(!f.ok)throw Error("上传失败");let{url:g}=await f.json();c.push(g)}b([...a,...c])}catch(a){console.error("上传照片失败:",a),await d("上传照片失败","错误")}finally{n(!1),c.target.value=""}}},p=async c=>{await e("确定要删除这张照片吗?","删除照片")&&b(a.filter(a=>a!==c))};return(0,g.jsxs)("div",{className:"space-y-4",children:[(0,g.jsxs)("div",{className:"flex items-center justify-between",children:[(0,g.jsxs)("h3",{className:"text-sm font-medium",children:["照片墙 (",f.length,")"]}),!c&&(0,g.jsxs)("label",{children:[(0,g.jsx)("input",{type:"file",multiple:!0,accept:"image/*",className:"hidden",onChange:o,disabled:m}),(0,g.jsx)(i.Button,{type:"button",variant:"outline",size:"sm",disabled:m,asChild:!0,children:(0,g.jsxs)("span",{children:[(0,g.jsx)(aZ.Plus,{className:"mr-2 h-4 w-4"}),m?"上传中...":"添加照片"]})})]})]}),f.length>0?(0,g.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",children:f.map(a=>(0,g.jsxs)("div",{className:"relative group aspect-square",children:[(0,g.jsx)("img",{src:a.url,alt:"家族照片",className:"w-full h-full object-cover rounded-lg border border-border cursor-pointer hover:opacity-90 transition-opacity",onClick:()=>l(a.url)}),!c&&(0,g.jsx)(i.Button,{type:"button",variant:"destructive",size:"icon",className:"absolute top-2 right-2 h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity",onClick:()=>p(a.id),children:(0,g.jsx)(ah.X,{className:"h-3 w-3"})}),(0,g.jsx)(i.Button,{type:"button",variant:"secondary",size:"icon",className:"absolute bottom-2 right-2 h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity",onClick:()=>l(a.url),children:(0,g.jsx)(a$.ZoomIn,{className:"h-3 w-3"})})]},a.id))}):(0,g.jsx)("div",{className:"text-center py-8 text-muted-foreground text-sm border border-dashed rounded-lg",children:"暂无照片"}),(0,g.jsx)(af.Dialog,{open:!!k,onOpenChange:()=>l(null),children:(0,g.jsxs)(af.DialogContent,{className:"max-w-4xl",children:[(0,g.jsx)(af.DialogHeader,{children:(0,g.jsx)(af.DialogTitle,{children:"照片预览"})}),k&&(0,g.jsx)("img",{src:k,alt:"照片预览",className:"w-full h-auto max-h-[70vh] object-contain"})]})})]})}a.s(["PhotoGallery",()=>a0],33671);var a1=a.i(75525);let a2=(0,$.default)("Trash",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]]);a.s(["Trash",()=>a2],68538);var a3=a.i(18116),a4=a.i(66680);let a5={randomUUID:a4.randomUUID},a6=new Uint8Array(256),a7=a6.length,a8=[];for(let a=0;a<256;++a)a8.push((a+256).toString(16).slice(1));let a9=function(a,b,c){if(a5.randomUUID&&!b&&!a)return a5.randomUUID();var d=a,e=c;let f=(d=d||{}).random??d.rng?.()??(a7>a6.length-16&&((0,a4.randomFillSync)(a6),a7=0),a6.slice(a7,a7+=16));if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((e=e||0)<0||e+16>b.length)throw RangeError(`UUID byte range ${e}:${e+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[e+a]=f[a];return b}return function(a,b=0){return(a8[a[b+0]]+a8[a[b+1]]+a8[a[b+2]]+a8[a[b+3]]+"-"+a8[a[b+4]]+a8[a[b+5]]+"-"+a8[a[b+6]]+a8[a[b+7]]+"-"+a8[a[b+8]]+a8[a[b+9]]+"-"+a8[a[b+10]]+a8[a[b+11]]+a8[a[b+12]]+a8[a[b+13]]+a8[a[b+14]]+a8[a[b+15]]).toLowerCase()}(f)};function ba({stories:a=[],onChange:b,readonly:c=!1}){let{showAlert:d,showConfirm:e}=(0,a_.useDialog)(),[f,m]=(0,h.useState)(!1),[n,o]=(0,h.useState)(null),[p,q]=(0,h.useState)({title:"",content:"",date:""}),r=async c=>{await e("确定要删除这个故事吗?","删除故事")&&b(a.filter(a=>a.id!==c))},s=async()=>{if(!p.title||!p.content)return void await d("请填写标题和内容","提示");let c=new Date().toISOString();n?b(a.map(a=>a.id===n.id?{...a,...p,updatedAt:c}:a)):b([...a,{id:a9(),title:p.title,content:p.content,date:p.date,imageIds:p.imageIds||[],createdAt:c,updatedAt:c}]),m(!1),q({title:"",content:"",date:""})};return(0,g.jsxs)("div",{className:"space-y-4",children:[(0,g.jsxs)("div",{className:"flex items-center justify-between",children:[(0,g.jsxs)("h3",{className:"text-sm font-medium flex items-center gap-2",children:[(0,g.jsx)(ac.BookOpen,{className:"h-4 w-4"}),"家族故事 (",a.length,")"]}),!c&&(0,g.jsxs)(i.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{o(null),q({title:"",content:"",date:""}),m(!0)},children:[(0,g.jsx)(aZ.Plus,{className:"mr-2 h-4 w-4"}),"添加故事"]})]}),a.length>0?(0,g.jsx)("div",{className:"space-y-4",children:a.sort((a,b)=>new Date(b.createdAt).getTime()-new Date(a.createdAt).getTime()).map(a=>(0,g.jsxs)(ad.Card,{className:"hover:shadow-md transition-shadow",children:[(0,g.jsx)(ad.CardHeader,{className:"pb-3",children:(0,g.jsxs)("div",{className:"flex items-start justify-between",children:[(0,g.jsxs)("div",{className:"flex-1",children:[(0,g.jsx)(ad.CardTitle,{className:"text-lg font-serif",children:a.title}),a.date&&(0,g.jsxs)("div",{className:"flex items-center gap-1 text-sm text-muted-foreground mt-1",children:[(0,g.jsx)(a3.Calendar,{className:"h-3 w-3"}),a.date]})]}),!c&&(0,g.jsxs)("div",{className:"flex gap-1",children:[(0,g.jsx)(i.Button,{type:"button",variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>{o(a),q(a),m(!0)},children:(0,g.jsx)(a1.Edit,{className:"h-3 w-3"})}),(0,g.jsx)(i.Button,{type:"button",variant:"ghost",size:"icon",className:"h-8 w-8 text-destructive hover:text-destructive",onClick:()=>r(a.id),children:(0,g.jsx)(a2,{className:"h-3 w-3"})})]})]})}),(0,g.jsxs)(ad.CardContent,{children:[(0,g.jsx)("p",{className:"text-sm text-muted-foreground whitespace-pre-line leading-relaxed",children:a.content}),(0,g.jsxs)("div",{className:"mt-2 text-xs text-muted-foreground",children:["创建于 ",new Date(a.createdAt).toLocaleDateString("zh-CN")]})]})]},a.id))}):(0,g.jsx)("div",{className:"text-center py-8 text-muted-foreground text-sm border border-dashed rounded-lg",children:"暂无家族故事"}),(0,g.jsx)(af.Dialog,{open:f,onOpenChange:m,children:(0,g.jsxs)(af.DialogContent,{className:"max-w-2xl",children:[(0,g.jsx)(af.DialogHeader,{children:(0,g.jsx)(af.DialogTitle,{children:n?"编辑故事":"添加故事"})}),(0,g.jsxs)("div",{className:"space-y-4",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"story-title",children:"故事标题 *"}),(0,g.jsx)(j.Input,{id:"story-title",placeholder:"例如:爷爷的创业故事",value:p.title||"",onChange:a=>q({...p,title:a.target.value})})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"story-date",children:"发生日期(可选)"}),(0,g.jsx)(j.Input,{id:"story-date",type:"date",value:p.date||"",onChange:a=>q({...p,date:a.target.value})})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"story-content",children:"故事内容 *"}),(0,g.jsx)(l.Textarea,{id:"story-content",placeholder:"记录家族的珍贵故事...",className:"min-h-[200px]",value:p.content||"",onChange:a=>q({...p,content:a.target.value})})]})]}),(0,g.jsxs)(af.DialogFooter,{children:[(0,g.jsx)(i.Button,{variant:"outline",onClick:()=>m(!1),children:"取消"}),(0,g.jsx)(i.Button,{onClick:s,children:n?"保存":"添加"})]})]})})]})}a.s(["StoryManager",()=>ba],30665);var bb=a.i(17160);function bc({label:a,value:b,isLunar:c=!1,onChange:d,onLunarChange:e,id:f,showLunarToggle:i=!0}){let[l,m]=(0,h.useState)("");return(0,h.useEffect)(()=>{if(!b)return void m("");let a=(0,bb.parseDate)(b);if(!a)return void m("");try{let b=(0,bb.solar2lunar)(a);if(b)m(b.toString());else{let b=a.getFullYear();m(`⚠️ 农历转换仅支持1900-2100年 (当前: ${b}年)`)}}catch(a){console.error("日期转换错误:",a),m("")}},[b]),(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsx)(k.Label,{htmlFor:f,className:"text-base font-medium",children:a}),(0,g.jsxs)("div",{className:"relative",children:[(0,g.jsx)(j.Input,{id:f,type:"date",value:b||"",onChange:a=>d(a.target.value),className:"pr-10"}),(0,g.jsx)(a3.Calendar,{className:"absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none"})]}),l&&(0,g.jsx)("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-3",children:(0,g.jsxs)("div",{className:"flex items-start gap-2",children:[(0,g.jsx)(a3.Calendar,{className:"h-4 w-4 text-amber-600 mt-0.5 flex-shrink-0"}),(0,g.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,g.jsx)("div",{className:"text-sm font-medium text-amber-900",children:"农历对照"}),(0,g.jsx)("div",{className:"text-sm text-amber-800",children:l})]})]})}),i&&b&&l&&!l.includes("⚠️")&&e&&(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{className:"text-sm font-medium",children:"纪念日计算方式"}),(0,g.jsxs)(W,{value:c?"lunar":"solar",onValueChange:a=>e("lunar"===a),className:"flex flex-row gap-6",children:[(0,g.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,g.jsx)(X,{value:"solar",id:`${f}-solar`}),(0,g.jsx)(k.Label,{htmlFor:`${f}-solar`,className:"text-sm font-normal cursor-pointer",children:"按公历 (每年固定日期)"})]}),(0,g.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,g.jsx)(X,{value:"lunar",id:`${f}-lunar`}),(0,g.jsx)(k.Label,{htmlFor:`${f}-lunar`,className:"text-sm font-normal cursor-pointer",children:"按农历 (对应农历日期)"})]})]}),(0,g.jsx)("p",{className:"text-xs text-muted-foreground",children:c?"💡 将按农历日期计算每年的纪念日,如生日、祭日等":"💡 将按公历日期计算每年的纪念日"})]})]})}var bd=a.i(26269);function be({initialData:a,existingMembers:b=[],onSubmit:c,onCancel:d,isFounder:e=!1}){let f=b.length>0?Math.max(...b.map(a=>a.generation||1)):1,n=b.find(a=>1===a.generation)?.surname||"",o=e?"border-2 border-amber-400 shadow-md":"",[p,q]=(0,h.useState)(()=>{let b={id:"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"===a?b:3&b|8).toString(16)}),surname:n,givenName:"",fullName:"",gender:"MALE",generation:f,spouseIds:[],childrenIds:[],tags:[]};return a?{...b,...a,gender:(a.gender||"MALE").toUpperCase(),spouseIds:a.spouseIds||[],childrenIds:a.childrenIds||[],tags:a.tags||[],fatherId:a.fatherId||void 0,motherId:a.motherId||void 0}:b}),[r,s]=(0,h.useState)([]),u=(a,c)=>{q(d=>{let e={...d,[a]:c};if(("surname"===a||"givenName"===a)&&(e.fullName=(e.surname||"")+(e.givenName||"")),"fatherId"===a&&c){let a=b.find(a=>a.id===c);a&&a.spouseIds&&a.spouseIds.length>0&&(e.motherId=a.spouseIds[0])}if("motherId"===a&&c){let a=b.find(a=>a.id===c);a&&a.spouseIds&&a.spouseIds.length>0&&(e.fatherId=a.spouseIds[0])}return e}),r.length>0&&s([])},v=b.filter(a=>a.id!==p.id);return(0,g.jsxs)("form",{onSubmit:a=>{a.preventDefault(),(()=>{let a=[];p.birthDate&&p.deathDate&&new Date(p.birthDate)>new Date(p.deathDate)&&a.push("出生日期不能晚于逝世日期");let c=p.birthDate?new Date(p.birthDate).getFullYear():null;if(c){if(p.fatherId){let d=b.find(a=>a.id===p.fatherId);if(d?.birthDate){let b=new Date(d.birthDate).getFullYear();c-b<15&&a.push(`与父亲的年龄差过小 (${c-b}岁),请确认`),ca.id===p.motherId);if(d?.birthDate){let b=new Date(d.birthDate).getFullYear();c-b<15&&a.push(`与母亲的年龄差过小 (${c-b}岁),请确认`),ca.id===p.fatherId);c&&p.generation!==c.generation+1&&a.push(`世系错误:父亲是第 ${c.generation} 世,子女应为第 ${c.generation+1} 世`)}if(p.fatherId||p.motherId){let c=new Set,d=a=>{if(a===p.id)return!0;if(c.has(a))return!1;c.add(a);let e=b.find(b=>b.id===a);return!!e&&!!(e.fatherId&&d(e.fatherId)||e.motherId&&d(e.motherId))};p.fatherId&&d(p.fatherId)&&a.push("检测到循环引用:不能将自己的后代设置为父亲"),p.motherId&&d(p.motherId)&&a.push("检测到循环引用:不能将自己的后代设置为母亲")}return p.fatherId===p.id&&a.push("不能将自己设置为自己的父亲"),p.motherId===p.id&&a.push("不能将自己设置为自己的母亲"),p.spouseIds?.includes(p.id||"")&&a.push("不能将自己设置为自己的配偶"),s(a),0===a.length})()&&c(p)},className:"space-y-8 max-w-4xl mx-auto p-6",children:[r.length>0&&(0,g.jsxs)("div",{className:"bg-destructive/15 text-destructive px-4 py-3 rounded-md border border-destructive/20",children:[(0,g.jsx)("p",{className:"font-bold mb-1",children:"请检查以下问题:"}),(0,g.jsx)("ul",{className:"list-disc list-inside text-sm",children:r.map((a,b)=>(0,g.jsx)("li",{children:a},b))})]}),(0,g.jsxs)("div",{className:"space-y-6",children:[(0,g.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,g.jsxs)(ad.Card,{className:o,children:[(0,g.jsx)(ad.CardHeader,{children:(0,g.jsxs)(ad.CardTitle,{className:"flex items-center gap-2 text-lg font-serif",children:[(0,g.jsx)(Z.User,{className:"h-5 w-5"}),"基本信息"]})}),(0,g.jsxs)(ad.CardContent,{className:"space-y-4",children:[(0,g.jsx)("div",{className:"flex justify-center mb-4",children:(0,g.jsx)(aY,{value:p.avatarUrl,onChange:a=>u("avatarUrl",a||null)})}),(0,g.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"surname",children:"姓 (Surname)"}),(0,g.jsx)(j.Input,{id:"surname",value:p.surname,onChange:a=>u("surname",a.target.value)})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"givenName",children:"名 (Given Name)"}),(0,g.jsx)(j.Input,{id:"givenName",value:p.givenName,onChange:a=>u("givenName",a.target.value)})]})]}),(0,g.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"gender",children:"性别"}),(0,g.jsxs)(m.Select,{value:p.gender,onValueChange:a=>u("gender",a),children:[(0,g.jsx)(m.SelectTrigger,{children:(0,g.jsx)(m.SelectValue,{})}),(0,g.jsxs)(m.SelectContent,{children:[(0,g.jsx)(m.SelectItem,{value:"MALE",children:"男"}),(0,g.jsx)(m.SelectItem,{value:"FEMALE",children:"女"})]})]})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"generation",children:"世系"}),(0,g.jsx)(j.Input,{id:"generation",type:"number",value:p.generation,onChange:a=>u("generation",Number.parseInt(a.target.value))})]})]})]})]}),(0,g.jsxs)(ad.Card,{className:o,children:[(0,g.jsx)(ad.CardHeader,{children:(0,g.jsxs)(ad.CardTitle,{className:"flex items-center gap-2 text-lg font-serif",children:[(0,g.jsx)(aa.Users,{className:"h-5 w-5"}),"家庭关系"]})}),(0,g.jsxs)(ad.CardContent,{className:"space-y-4",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"fatherId",children:"父亲"}),e?(0,g.jsx)(j.Input,{placeholder:"填写父亲姓名",value:p.spouseFatherName||"",onChange:a=>u("spouseFatherName",a.target.value)}):(0,g.jsxs)("div",{className:"flex gap-2",children:[(0,g.jsxs)(m.Select,{value:p.fatherId||"none",onValueChange:a=>u("fatherId","none"===a?void 0:a),children:[(0,g.jsx)(m.SelectTrigger,{className:"flex-1",children:(0,g.jsx)(m.SelectValue,{placeholder:"选择父亲"})}),(0,g.jsxs)(m.SelectContent,{children:[(0,g.jsx)(m.SelectItem,{value:"none",children:"无"}),v.filter(a=>"MALE"===a.gender&&a.generation===(p.generation||1)-1).map(a=>(0,g.jsxs)(m.SelectItem,{value:a.id,children:[(0,g.jsx)(bd.MemberNameWithStatus,{name:a.fullName,isDead:!!a.deathDate})," (",a.generation,"世)"]},a.id))]})]}),!p.fatherId&&(0,g.jsx)(j.Input,{placeholder:"非家族成员填写姓名",value:p.spouseFatherName||"",onChange:a=>u("spouseFatherName",a.target.value),className:"flex-1"})]})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"motherId",children:"母亲"}),e?(0,g.jsx)(j.Input,{placeholder:"填写母亲姓名",value:p.spouseMotherName||"",onChange:a=>u("spouseMotherName",a.target.value)}):(0,g.jsxs)("div",{className:"flex gap-2",children:[(0,g.jsxs)(m.Select,{value:p.motherId||"none",onValueChange:a=>u("motherId","none"===a?void 0:a),children:[(0,g.jsx)(m.SelectTrigger,{className:"flex-1",children:(0,g.jsx)(m.SelectValue,{placeholder:"选择母亲"})}),(0,g.jsxs)(m.SelectContent,{children:[(0,g.jsx)(m.SelectItem,{value:"none",children:"无"}),v.filter(a=>"FEMALE"===a.gender&&a.generation===(p.generation||1)-1).map(a=>(0,g.jsxs)(m.SelectItem,{value:a.id,children:[(0,g.jsx)(bd.MemberNameWithStatus,{name:a.fullName,isDead:!!a.deathDate})," (",a.generation,"世)"]},a.id))]})]}),!p.motherId&&(0,g.jsx)(j.Input,{placeholder:"非家族成员填写姓名",value:p.spouseMotherName||"",onChange:a=>u("spouseMotherName",a.target.value),className:"flex-1"})]})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"spouseId",children:"配偶"}),(0,g.jsxs)(m.Select,{value:"none",onValueChange:a=>{a&&"none"!==a&&q(b=>{let c=b.spouseIds||[];return c.includes(a)?b:{...b,spouseIds:[...c,a]}})},children:[(0,g.jsx)(m.SelectTrigger,{children:(0,g.jsx)(m.SelectValue,{placeholder:"添加配偶..."})}),(0,g.jsxs)(m.SelectContent,{children:[(0,g.jsx)(m.SelectItem,{value:"none",children:"选择配偶"}),v.filter(a=>!(a.generation!==p.generation||a.gender===p.gender||p.spouseIds?.includes(a.id)||"MALE"===p.gender&&a.spouseIds&&a.spouseIds.length>0||a.id===p.fatherId||a.id===p.motherId||p.childrenIds?.includes(a.id))&&(!p.fatherId||a.fatherId!==p.fatherId)&&(!p.motherId||a.motherId!==p.motherId)).map(a=>(0,g.jsxs)(m.SelectItem,{value:a.id,children:[(0,g.jsx)(bd.MemberNameWithStatus,{name:a.fullName,isDead:!!a.deathDate})," (",a.generation,"世)"]},a.id))]})]}),p.spouseIds&&p.spouseIds.length>0&&(0,g.jsx)("div",{className:"mt-2 space-y-2",children:p.spouseIds.map((a,c)=>{let d=b.find(b=>b.id===a);return d?(0,g.jsxs)("div",{className:"flex items-center justify-between p-2 bg-muted rounded",children:[(0,g.jsxs)("span",{className:"text-sm",children:[c+1,". ",(0,g.jsx)(bd.MemberNameWithStatus,{name:d.fullName,isDead:!!d.deathDate})," (第",d.generation,"世)"]}),(0,g.jsx)(i.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>{q(b=>({...b,spouseIds:(b.spouseIds||[]).filter(b=>b!==a)}))},className:"h-6 w-6 p-0 hover:bg-destructive hover:text-destructive-foreground",children:"×"})]},a):null})})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"childId",children:"子女"}),(0,g.jsxs)(m.Select,{value:"none",onValueChange:a=>{a&&"none"!==a&&q(b=>{let c=b.childrenIds||[];return c.includes(a)?b:{...b,childrenIds:[...c,a]}})},children:[(0,g.jsx)(m.SelectTrigger,{children:(0,g.jsx)(m.SelectValue,{placeholder:"添加子女..."})}),(0,g.jsxs)(m.SelectContent,{children:[(0,g.jsx)(m.SelectItem,{value:"none",children:"选择子女"}),v.filter(a=>{if(a.generation!==(p.generation||1)+1||p.childrenIds?.includes(a.id)||p.spouseIds?.includes(a.id)||!a.fatherId&&!a.motherId&&a.spouseIds&&a.spouseIds.length>0)return!1;if("MALE"===p.gender){if(a.fatherId)return!1}else if("FEMALE"===p.gender&&a.motherId)return!1;return!0}).map(a=>(0,g.jsxs)(m.SelectItem,{value:a.id,children:[(0,g.jsx)(bd.MemberNameWithStatus,{name:a.fullName,isDead:!!a.deathDate})," (",a.generation,"世)"]},a.id))]})]}),p.childrenIds&&p.childrenIds.length>0&&(0,g.jsx)("div",{className:"mt-2 space-y-2",children:p.childrenIds.map((a,c)=>{let d=b.find(b=>b.id===a);return d?(0,g.jsxs)("div",{className:"flex items-center justify-between p-2 bg-muted rounded",children:[(0,g.jsxs)("span",{className:"text-sm",children:[c+1,". ",(0,g.jsx)(bd.MemberNameWithStatus,{name:d.fullName,isDead:!!d.deathDate})," (第",d.generation,"世)"]}),(0,g.jsx)(i.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>{q(b=>({...b,childrenIds:(b.childrenIds||[]).filter(b=>b!==a)}))},className:"h-6 w-6 p-0 hover:bg-destructive hover:text-destructive-foreground",children:"×"})]},a):null})})]})]})]})]}),(0,g.jsxs)(ad.Card,{className:o,children:[(0,g.jsx)(ad.CardHeader,{children:(0,g.jsxs)(ad.CardTitle,{className:"flex items-center gap-2 text-lg font-serif",children:[(0,g.jsx)(_,{className:"h-5 w-5"}),"传统称谓"]})}),(0,g.jsxs)(ad.CardContent,{className:"space-y-4",children:[(0,g.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"courtesyName",children:"字"}),(0,g.jsx)(j.Input,{id:"courtesyName",value:p.courtesyName||"",onChange:a=>u("courtesyName",a.target.value),placeholder:"例如:伯虎"})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"artName",children:"号"}),(0,g.jsx)(j.Input,{id:"artName",value:p.artName||"",onChange:a=>u("artName",a.target.value),placeholder:"例如:六如居士"})]})]}),(0,g.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"generationName",children:"字辈"}),(0,g.jsx)(j.Input,{id:"generationName",value:p.generationName||"",onChange:a=>u("generationName",a.target.value)})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"posthumousName",children:"谥号"}),(0,g.jsx)(j.Input,{id:"posthumousName",value:p.posthumousName||"",onChange:a=>u("posthumousName",a.target.value)})]})]})]})]}),(0,g.jsxs)(ad.Card,{className:o,children:[(0,g.jsx)(ad.CardHeader,{children:(0,g.jsxs)(ad.CardTitle,{className:"flex items-center gap-2 text-lg font-serif",children:[(0,g.jsx)(Y.default,{className:"h-5 w-5"}),"生平与地点"]})}),(0,g.jsxs)(ad.CardContent,{className:"space-y-4",children:[(0,g.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[(0,g.jsx)(bc,{id:"birthDate",label:"出生日期",value:p.birthDate||"",isLunar:p.isLunarDate||!1,onChange:a=>u("birthDate",a),showLunarToggle:!1}),(0,g.jsx)(bc,{id:"deathDate",label:"逝世日期",value:p.deathDate||"",isLunar:p.isLunarDate||!1,onChange:a=>u("deathDate",a),showLunarToggle:!1})]}),(p.birthDate||p.deathDate)&&(0,g.jsxs)("div",{className:"space-y-2 pt-2",children:[(0,g.jsx)(k.Label,{className:"text-sm font-medium",children:"纪念日计算方式"}),(0,g.jsxs)(W,{value:p.isLunarDate?"lunar":"solar",onValueChange:a=>u("isLunarDate","lunar"===a),className:"flex flex-row gap-6",children:[(0,g.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,g.jsx)(X,{value:"solar",id:"date-type-solar"}),(0,g.jsx)(k.Label,{htmlFor:"date-type-solar",className:"text-sm font-normal cursor-pointer",children:"按公历 (每年固定日期)"})]}),(0,g.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,g.jsx)(X,{value:"lunar",id:"date-type-lunar"}),(0,g.jsx)(k.Label,{htmlFor:"date-type-lunar",className:"text-sm font-normal cursor-pointer",children:"按农历 (对应农历日期)"})]})]}),(0,g.jsx)("p",{className:"text-xs text-muted-foreground",children:p.isLunarDate?"💡 将按农历日期计算每年的纪念日,如生日、祭日等":"💡 将按公历日期计算每年的纪念日"})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"ancestralHome",children:"籍贯"}),(0,g.jsx)(j.Input,{id:"ancestralHome",value:p.ancestralHome||"",onChange:a=>u("ancestralHome",a.target.value),placeholder:"例如:福建省泉州市"})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"burialPlace",children:"葬地"}),(0,g.jsx)(j.Input,{id:"burialPlace",value:p.burialPlace||"",onChange:a=>u("burialPlace",a.target.value)})]})]})]}),(0,g.jsxs)(ad.Card,{className:o,children:[(0,g.jsxs)(ad.CardHeader,{children:[(0,g.jsxs)(ad.CardTitle,{className:"flex items-center gap-2 text-lg font-serif",children:[(0,g.jsx)(Z.User,{className:"h-5 w-5"}),"联系方式"]}),(0,g.jsx)(ad.CardDescription,{children:"在世成员的联系方式"})]}),(0,g.jsxs)(ad.CardContent,{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"phone",children:"手机号"}),(0,g.jsx)(j.Input,{id:"phone",type:"tel",value:p.phone||"",onChange:a=>u("phone",a.target.value),placeholder:"例如:13800138000"})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"telephone",children:"固定电话"}),(0,g.jsx)(j.Input,{id:"telephone",type:"tel",value:p.telephone||"",onChange:a=>u("telephone",a.target.value),placeholder:"例如:0592-1234567"})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)(k.Label,{htmlFor:"email",children:"邮箱"}),(0,g.jsx)(j.Input,{id:"email",type:"email",value:p.email||"",onChange:a=>u("email",a.target.value),placeholder:"例如:example@email.com"})]}),(0,g.jsxs)("div",{className:"space-y-2 md:col-span-2",children:[(0,g.jsx)(k.Label,{htmlFor:"address",children:"现居地址"}),(0,g.jsx)(j.Input,{id:"address",value:p.address||"",onChange:a=>u("address",a.target.value),placeholder:"例如:福建省厦门市思明区XX路XX号"})]})]})]}),(0,g.jsxs)(ad.Card,{className:o,children:[(0,g.jsx)(ad.CardHeader,{children:(0,g.jsxs)(ad.CardTitle,{className:"flex items-center gap-2 text-lg font-serif",children:[(0,g.jsx)(_,{className:"h-5 w-5"}),"生平事迹"]})}),(0,g.jsx)(ad.CardContent,{className:"space-y-4",children:(0,g.jsx)(l.Textarea,{className:"min-h-[200px]",placeholder:"记录生平事迹...",value:p.bio||"",onChange:a=>u("bio",a.target.value)})})]}),(0,g.jsxs)(ad.Card,{className:o,children:[(0,g.jsxs)(ad.CardHeader,{children:[(0,g.jsxs)(ad.CardTitle,{className:"flex items-center gap-2 text-lg font-serif",children:[(0,g.jsx)(_,{className:"h-5 w-5"}),"标签"]}),(0,g.jsx)(ad.CardDescription,{children:"添加标签以便分类和搜索(按回车添加)"})]}),(0,g.jsx)(ad.CardContent,{className:"space-y-4",children:(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsx)("div",{className:"flex gap-2",children:(0,g.jsx)(j.Input,{placeholder:"输入标签,按回车添加...",onKeyDown:a=>{if("Enter"===a.key){a.preventDefault();let b=a.currentTarget,c=b.value.trim();c&&!(p.tags||[]).includes(c)&&(u("tags",[...p.tags||[],c]),b.value="")}}})}),p.tags&&p.tags.length>0&&(0,g.jsx)("div",{className:"flex flex-wrap gap-2",children:p.tags.map((a,b)=>(0,g.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-1 bg-primary/10 text-primary text-sm rounded-md border border-primary/20",children:[a,(0,g.jsx)("button",{type:"button",onClick:()=>{u("tags",p.tags?.filter((a,c)=>c!==b)||[])},className:"ml-1 hover:text-destructive",children:"×"})]},b))})]})})]}),(0,g.jsxs)(ad.Card,{className:o,children:[(0,g.jsxs)(ad.CardHeader,{children:[(0,g.jsxs)(ad.CardTitle,{className:"flex items-center gap-2 text-lg font-serif",children:[(0,g.jsx)(ab.Images,{className:"h-5 w-5"}),"照片墙"]}),(0,g.jsx)(ad.CardDescription,{children:"上传多张照片记录珍贵时刻"})]}),(0,g.jsx)(ad.CardContent,{children:(0,g.jsx)(a0,{photoIds:p.photoIds||[],onChange:a=>u("photoIds",a)})})]}),(0,g.jsxs)(ad.Card,{className:o,children:[(0,g.jsxs)(ad.CardHeader,{children:[(0,g.jsxs)(ad.CardTitle,{className:"flex items-center gap-2 text-lg font-serif",children:[(0,g.jsx)(ac.BookOpen,{className:"h-5 w-5"}),"家族故事"]}),(0,g.jsx)(ad.CardDescription,{children:"记录与此成员相关的家族故事"})]}),(0,g.jsx)(ad.CardContent,{children:(0,g.jsx)(ba,{stories:p.stories||[],onChange:a=>u("stories",a)})})]})]}),(0,g.jsxs)("div",{className:"flex justify-end gap-4 sticky bottom-4 bg-background/90 p-4 border-t border-border backdrop-blur rounded-lg",children:[(0,g.jsx)(i.Button,{type:"button",variant:"outline",onClick:d,children:"取消"}),(0,g.jsx)(i.Button,{type:"submit",className:"bg-primary text-primary-foreground hover:bg-primary/90",children:"保存成员"})]})]})}a.s(["MemberForm",()=>be],30100)}]; //# sourceMappingURL=%5Broot-of-the-server%5D__61395524._.js.map