@coffer-org/web 1.8.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-n93t21jb.js";import{C as n,S as r,i,w as a,x as o}from"./button-Dlm2GmQs.js";import{t as s}from"./jsx-dev-runtime-CSfA-jUb.js";import{i as c,o as l,s as u,t as d}from"./dist-DkJnaE0X.js";import{t as f}from"./jsx-runtime-JUshM5qe.js";import{a as p,b as ee,c as te,i as m,l as ne,n as h,o as g,r as re,s as _,u as v,v as y,x as ie,y as ae}from"./json-2IEVhd4i.js";import{C as b}from"./field-frame-GkHj6Ywy.js";import{p as oe}from"./shelf-e7xL1R3N.js";var x=s(),S=e(t(),1),C=f(),w=`Popover`,[T,se]=l(w,[v]),E=v(),[ce,D]=T(w),O=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=E(t),c=S.useRef(null),[l,u]=S.useState(!1),[f,p]=d({prop:r,defaultProp:i??!1,onChange:a,caller:w});return(0,C.jsx)(ne,{...s,children:(0,C.jsx)(ce,{scope:t,contentId:y(),triggerRef:c,open:f,onOpenChange:p,onOpenToggle:S.useCallback(()=>p(e=>!e),[p]),hasCustomAnchor:l,onCustomAnchorAdd:S.useCallback(()=>u(!0),[]),onCustomAnchorRemove:S.useCallback(()=>u(!1),[]),modal:o,children:n})})};O.displayName=w;var k=`PopoverAnchor`,A=S.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=D(k,n),a=E(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:s}=i;return S.useEffect(()=>(o(),()=>s()),[o,s]),(0,C.jsx)(g,{...a,...r,ref:t})});A.displayName=k;var j=`PopoverTrigger`,M=S.forwardRef((e,t)=>{let{__scopePopover:n,...i}=e,a=D(j,n),o=E(n),s=r(t,a.triggerRef),l=(0,C.jsx)(c.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":G(a.open),...i,ref:s,onClick:u(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?l:(0,C.jsx)(g,{asChild:!0,...o,children:l})});M.displayName=j;var N=`PopoverPortal`,[le,ue]=T(N,{forceMount:void 0}),P=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=D(N,t);return(0,C.jsx)(le,{scope:t,forceMount:n,children:(0,C.jsx)(m,{present:n||a.open,children:(0,C.jsx)(p,{asChild:!0,container:i,children:r})})})};P.displayName=N;var F=`PopoverContent`,I=S.forwardRef((e,t)=>{let n=ue(F,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=D(F,e.__scopePopover);return(0,C.jsx)(m,{present:r||a.open,children:a.modal?(0,C.jsx)(R,{...i,ref:t}):(0,C.jsx)(z,{...i,ref:t})})});I.displayName=F;var L=o(`PopoverContent.RemoveScroll`),R=S.forwardRef((e,t)=>{let n=D(F,e.__scopePopover),i=S.useRef(null),a=r(t,i),o=S.useRef(!1);return S.useEffect(()=>{let e=i.current;if(e)return re(e)},[]),(0,C.jsx)(h,{as:L,allowPinchZoom:!0,children:(0,C.jsx)(B,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:u(e.onCloseAutoFocus,e=>{e.preventDefault(),o.current||n.triggerRef.current?.focus()}),onPointerDownOutside:u(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;o.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:u(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),z=S.forwardRef((e,t)=>{let n=D(F,e.__scopePopover),r=S.useRef(!1),i=S.useRef(!1);return(0,C.jsx)(B,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),B=S.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...d}=e,f=D(F,n),p=E(n);return ee(),(0,C.jsx)(ae,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,C.jsx)(ie,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>f.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,C.jsx)(te,{"data-state":G(f.open),role:`dialog`,id:f.contentId,...p,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})}),V=`PopoverClose`,H=S.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=D(V,n);return(0,C.jsx)(c.button,{type:`button`,...r,ref:t,onClick:u(e.onClick,()=>i.onOpenChange(!1))})});H.displayName=V;var U=`PopoverArrow`,W=S.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=E(n);return(0,C.jsx)(_,{...i,...r,ref:t})});W.displayName=U;function G(e){return e?`open`:`closed`}var de=O,fe=A,pe=M,me=P,he=I,K=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/popover.tsx`;function q({...e}){return(0,x.jsxDEV)(de,{"data-slot":`popover`,...e},void 0,!1,{fileName:K,lineNumber:7,columnNumber:10},this)}function J({...e}){return(0,x.jsxDEV)(pe,{"data-slot":`popover-trigger`,...e},void 0,!1,{fileName:K,lineNumber:11,columnNumber:10},this)}function Y({className:e,align:t=`center`,sideOffset:r=4,...i}){return(0,x.jsxDEV)(me,{children:(0,x.jsxDEV)(he,{"data-slot":`popover-content`,align:t,sideOffset:r,className:n(`z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-xl border border-border bg-popover p-4 text-popover-foreground shadow-xl outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...i},void 0,!1,{fileName:K,lineNumber:22,columnNumber:7},this)},void 0,!1,{fileName:K,lineNumber:21,columnNumber:5},this)}function ge({...e}){return(0,x.jsxDEV)(fe,{"data-slot":`popover-anchor`,...e},void 0,!1,{fileName:K,lineNumber:37,columnNumber:10},this)}function _e(e){if(e==null||e===``)return[];if(Array.isArray(e))return e.map(String).filter(Boolean);if(typeof e==`string`){if(e.startsWith(`[`))try{let t=JSON.parse(e);if(Array.isArray(t))return t.map(String).filter(Boolean)}catch{}return e?[e]:[]}return[String(e)]}function ve(e){return e.kind===`tags`||e.hints?.multiple===!0}var X=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/dispatch.tsx`;function Z(e){let t=b(e.field);return t?(0,x.jsxDEV)(t.Page,{...e},void 0,!1,{fileName:X,lineNumber:15,columnNumber:10},this):(console.warn(`[render] немає рендера для`,e.field.kind),(0,x.jsxDEV)(`span`,{children:String(e.value)},void 0,!1,{fileName:X,lineNumber:13,columnNumber:12},this))}function ye({field:e,value:t,height:n}){let r=b(e),i=r?.Inline?(0,x.jsxDEV)(r.Inline,{field:e,value:t,height:n},void 0,!1,{fileName:X,lineNumber:26,columnNumber:5},this):(0,x.jsxDEV)(`span`,{className:`truncate`,children:String(t??``)},void 0,!1,{fileName:X,lineNumber:28,columnNumber:5},this);return n?(0,x.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center font-medium`,style:{fontSize:Math.round(n*.7),lineHeight:1.15},children:i},void 0,!1,{fileName:X,lineNumber:32,columnNumber:5},this):i}function be(e,t,n){let r=b(e),i=t=>r?.keys?r.keys(t,e,n):t==null||t===``?[]:[{value:String(t),rawValue:t,label:String(t)}],a=ve(e)?_e(t):[t],o=new Set,s=[];for(let e of a)for(let t of i(e))o.has(t.value)||(o.add(t.value),s.push(t));return s}var xe=20,Q=new Map;function Se(e){let t=Q.get(e);if(t)return Q.delete(e),Q.set(e,t),t}function Ce(e,t){for(Q.delete(e),Q.set(e,{rows:t,ts:Date.now()});Q.size>xe;){let e=Q.keys().next();if(e.done)break;Q.delete(e.value)}}function we(e){for(let t of[...Q.keys()])(t===e||t.startsWith(`${e}?`))&&Q.delete(t)}var $=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ExtendReasonInfo.tsx`;function
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-n93t21jb.js";import{C as n,S as r,i,w as a,x as o}from"./button-Dlm2GmQs.js";import{t as s}from"./jsx-dev-runtime-CSfA-jUb.js";import{i as c,o as l,s as u,t as d}from"./dist-DkJnaE0X.js";import{t as f}from"./jsx-runtime-JUshM5qe.js";import{a as p,b as ee,c as te,i as m,l as ne,n as h,o as g,r as re,s as _,u as v,v as y,x as ie,y as ae}from"./json-2IEVhd4i.js";import{C as b}from"./field-frame-GkHj6Ywy.js";import{p as oe}from"./shelf-e7xL1R3N.js";var x=s(),S=e(t(),1),C=f(),w=`Popover`,[T,se]=l(w,[v]),E=v(),[ce,D]=T(w),O=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=E(t),c=S.useRef(null),[l,u]=S.useState(!1),[f,p]=d({prop:r,defaultProp:i??!1,onChange:a,caller:w});return(0,C.jsx)(ne,{...s,children:(0,C.jsx)(ce,{scope:t,contentId:y(),triggerRef:c,open:f,onOpenChange:p,onOpenToggle:S.useCallback(()=>p(e=>!e),[p]),hasCustomAnchor:l,onCustomAnchorAdd:S.useCallback(()=>u(!0),[]),onCustomAnchorRemove:S.useCallback(()=>u(!1),[]),modal:o,children:n})})};O.displayName=w;var k=`PopoverAnchor`,A=S.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=D(k,n),a=E(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:s}=i;return S.useEffect(()=>(o(),()=>s()),[o,s]),(0,C.jsx)(g,{...a,...r,ref:t})});A.displayName=k;var j=`PopoverTrigger`,M=S.forwardRef((e,t)=>{let{__scopePopover:n,...i}=e,a=D(j,n),o=E(n),s=r(t,a.triggerRef),l=(0,C.jsx)(c.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":G(a.open),...i,ref:s,onClick:u(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?l:(0,C.jsx)(g,{asChild:!0,...o,children:l})});M.displayName=j;var N=`PopoverPortal`,[le,ue]=T(N,{forceMount:void 0}),P=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=D(N,t);return(0,C.jsx)(le,{scope:t,forceMount:n,children:(0,C.jsx)(m,{present:n||a.open,children:(0,C.jsx)(p,{asChild:!0,container:i,children:r})})})};P.displayName=N;var F=`PopoverContent`,I=S.forwardRef((e,t)=>{let n=ue(F,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=D(F,e.__scopePopover);return(0,C.jsx)(m,{present:r||a.open,children:a.modal?(0,C.jsx)(R,{...i,ref:t}):(0,C.jsx)(z,{...i,ref:t})})});I.displayName=F;var L=o(`PopoverContent.RemoveScroll`),R=S.forwardRef((e,t)=>{let n=D(F,e.__scopePopover),i=S.useRef(null),a=r(t,i),o=S.useRef(!1);return S.useEffect(()=>{let e=i.current;if(e)return re(e)},[]),(0,C.jsx)(h,{as:L,allowPinchZoom:!0,children:(0,C.jsx)(B,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:u(e.onCloseAutoFocus,e=>{e.preventDefault(),o.current||n.triggerRef.current?.focus()}),onPointerDownOutside:u(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;o.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:u(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),z=S.forwardRef((e,t)=>{let n=D(F,e.__scopePopover),r=S.useRef(!1),i=S.useRef(!1);return(0,C.jsx)(B,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),B=S.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...d}=e,f=D(F,n),p=E(n);return ee(),(0,C.jsx)(ae,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,C.jsx)(ie,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>f.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,C.jsx)(te,{"data-state":G(f.open),role:`dialog`,id:f.contentId,...p,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})}),V=`PopoverClose`,H=S.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=D(V,n);return(0,C.jsx)(c.button,{type:`button`,...r,ref:t,onClick:u(e.onClick,()=>i.onOpenChange(!1))})});H.displayName=V;var U=`PopoverArrow`,W=S.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=E(n);return(0,C.jsx)(_,{...i,...r,ref:t})});W.displayName=U;function G(e){return e?`open`:`closed`}var de=O,fe=A,pe=M,me=P,he=I,K=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/popover.tsx`;function q({...e}){return(0,x.jsxDEV)(de,{"data-slot":`popover`,...e},void 0,!1,{fileName:K,lineNumber:7,columnNumber:10},this)}function J({...e}){return(0,x.jsxDEV)(pe,{"data-slot":`popover-trigger`,...e},void 0,!1,{fileName:K,lineNumber:11,columnNumber:10},this)}function Y({className:e,align:t=`center`,sideOffset:r=4,...i}){return(0,x.jsxDEV)(me,{children:(0,x.jsxDEV)(he,{"data-slot":`popover-content`,align:t,sideOffset:r,className:n(`z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-xl border border-border bg-popover p-4 text-popover-foreground shadow-xl outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...i},void 0,!1,{fileName:K,lineNumber:22,columnNumber:7},this)},void 0,!1,{fileName:K,lineNumber:21,columnNumber:5},this)}function ge({...e}){return(0,x.jsxDEV)(fe,{"data-slot":`popover-anchor`,...e},void 0,!1,{fileName:K,lineNumber:37,columnNumber:10},this)}function _e(e){if(e==null||e===``)return[];if(Array.isArray(e))return e.map(String).filter(Boolean);if(typeof e==`string`){if(e.startsWith(`[`))try{let t=JSON.parse(e);if(Array.isArray(t))return t.map(String).filter(Boolean)}catch{}return e?[e]:[]}return[String(e)]}function ve(e){return e.kind===`tags`||e.hints?.multiple===!0}var X=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/dispatch.tsx`;function Z(e){let t=b(e.field);return t?(0,x.jsxDEV)(t.Page,{...e},void 0,!1,{fileName:X,lineNumber:15,columnNumber:10},this):(console.warn(`[render] немає рендера для`,e.field.kind),(0,x.jsxDEV)(`span`,{children:String(e.value)},void 0,!1,{fileName:X,lineNumber:13,columnNumber:12},this))}function ye({field:e,value:t,height:n}){let r=b(e),i=r?.Inline?(0,x.jsxDEV)(r.Inline,{field:e,value:t,height:n},void 0,!1,{fileName:X,lineNumber:26,columnNumber:5},this):(0,x.jsxDEV)(`span`,{className:`truncate`,children:String(t??``)},void 0,!1,{fileName:X,lineNumber:28,columnNumber:5},this);return n?(0,x.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center font-medium`,style:{fontSize:Math.round(n*.7),lineHeight:1.15},children:i},void 0,!1,{fileName:X,lineNumber:32,columnNumber:5},this):i}function be(e,t,n){let r=b(e),i=t=>r?.keys?r.keys(t,e,n):t==null||t===``?[]:[{value:String(t),rawValue:t,label:String(t)}],a=ve(e)?_e(t):[t],o=new Set,s=[];for(let e of a)for(let t of i(e))o.has(t.value)||(o.add(t.value),s.push(t));return s}var xe=20,Q=new Map;function Se(e){let t=Q.get(e);if(t)return Q.delete(e),Q.set(e,t),t}function Ce(e,t){for(Q.delete(e),Q.set(e,{rows:t,ts:Date.now()});Q.size>xe;){let e=Q.keys().next();if(e.done)break;Q.delete(e.value)}}function we(e){for(let t of[...Q.keys()])(t===e||t.startsWith(`${e}?`))&&Q.delete(t)}function Te(e,t){let n=String(t.id??``);if(n)for(let[r,i]of Q){if(r!==e&&!r.startsWith(`${e}?`))continue;let a=!1,o=i.rows.map(e=>{if(String(e.id)!==n)return e;a=!0;let r={...e};for(let n of Object.keys(e))n in t&&(r[n]=t[n]);return r});a&&Q.set(r,{rows:o,ts:i.ts})}}var $=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ExtendReasonInfo.tsx`;function Ee({ext:e,fieldLabel:t,valueLabel:n}){let{t:r}=a(),o=oe(e.showWhen,t,n);return o.length===0?null:(0,x.jsxDEV)(q,{children:[(0,x.jsxDEV)(J,{type:`button`,"aria-label":r(`extend.shownWhen`),className:`inline-flex items-center text-muted hover:text-text`,children:(0,x.jsxDEV)(i,{name:`lucide:info`,size:14},void 0,!1,{fileName:$,lineNumber:30,columnNumber:9},this)},void 0,!1,{fileName:$,lineNumber:25,columnNumber:7},this),(0,x.jsxDEV)(Y,{align:`start`,className:`w-auto max-w-xs text-sm`,children:[(0,x.jsxDEV)(`p`,{className:`text-muted mb-1`,children:r(`extend.shownWhen`)},void 0,!1,{fileName:$,lineNumber:33,columnNumber:9},this),(0,x.jsxDEV)(`p`,{children:o.join(`; `)},void 0,!1,{fileName:$,lineNumber:34,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:32,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:24,columnNumber:5},this)}export{Ce as a,be as c,Y as d,J as f,Se as i,q as l,we as n,ye as o,Te as r,Z as s,Ee as t,ge as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-n93t21jb.js";import{i as n,t as r,w as i}from"./button-Dlm2GmQs.js";import{c as a,l as o}from"./chunk-KS7C4IRE-B1_Zk64s.js";import{t as s}from"./jsx-dev-runtime-CSfA-jUb.js";import{t as c}from"./json-2IEVhd4i.js";import{n as l,
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-n93t21jb.js";import{i as n,t as r,w as i}from"./button-Dlm2GmQs.js";import{c as a,l as o}from"./chunk-KS7C4IRE-B1_Zk64s.js";import{t as s}from"./jsx-dev-runtime-CSfA-jUb.js";import{t as c}from"./json-2IEVhd4i.js";import{n as l,s as u,t as d}from"./ExtendReasonInfo-CEbvUMoP.js";import{f,l as p,m,n as h,o as g,r as _,s as v,t as y,u as b,y as x}from"./Toolbar-CVjgIOri.js";import{S,f as C,g as w,m as T}from"./fields-B4fdbc1_.js";import{a as E,h as D,m as O,n as k,o as A,t as j}from"./shelf-e7xL1R3N.js";import{T as M,o as N}from"./api-B7hHeZsv.js";var P=e(t(),1),F=s(),I=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/fields-form.tsx`;function L({shelf:e,record:t,onSubmit:n,onCancel:a,submitLabel:o,busy:s,children:c,hiddenFields:l,onValuesChange:u,errorSink:d,extraValidate:f}){let{t:m}=i(),g=p(m),y=!!t,b=(0,P.useMemo)(()=>A(e.fields),[e]),{values:x,errors:C,setErrors:w,setTouched:T,bridge:E}=h({fm:b,mode:y?`edit`:`create`,recordCtx:{library:e.library,shelf:e.shelf,recordId:t?String(t.id):null},initial:()=>z(e,t),hiddenFields:l}),[D,O]=(0,P.useState)(),[M,N]=(0,P.useState)(!1);(0,P.useEffect)(()=>{u?.(x)},[x,u]),(0,P.useEffect)(()=>{d?.({setErrors:w,setTouched:T})},[d,w,T]);async function L(t){t.preventDefault(),O(void 0);let r=Object.keys(b),i={};for(let e of r)e in x&&(i[e]=x[e]);let a=B(i),o=(y?k(e):j(e)).safeParse(a),s={};if(!o.success)for(let e of o.error.issues){let t=String(e.path[0]??``);if(!r.includes(t)||s[t])continue;let{code:n,params:i}=S(e.message);s[t]=g(n,i)}if(Object.assign(s,f?.(x)??{}),Object.keys(s).length){w(s),T(new Set(Object.keys(s)));return}N(!0);let c=await n(a);N(!1),c&&O(c)}return(0,F.jsxDEV)(`form`,{onSubmit:L,noValidate:!0,className:`flex flex-col gap-5 min-w-0`,children:[(0,F.jsxDEV)(v.Provider,{value:e=>C[e.join(`.`)],children:(0,F.jsxDEV)(_,{items:e.fields,ctx:{bridge:E}},void 0,!1,{fileName:I,lineNumber:118,columnNumber:9},this)},void 0,!1,{fileName:I,lineNumber:117,columnNumber:7},this),c,D&&(0,F.jsxDEV)(`p`,{className:`text-sm text-danger`,children:D},void 0,!1,{fileName:I,lineNumber:121,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex gap-3 pt-2 border-t border-border`,children:[(0,F.jsxDEV)(r,{type:`submit`,disabled:s||M,size:`lg`,className:`flex-1`,children:o??m(`actions.save`)},void 0,!1,{fileName:I,lineNumber:123,columnNumber:9},this),a&&(0,F.jsxDEV)(r,{type:`button`,variant:`secondary`,size:`lg`,onClick:a,className:`flex-1`,children:m(`actions.cancel`)},void 0,!1,{fileName:I,lineNumber:127,columnNumber:11},this)]},void 0,!0,{fileName:I,lineNumber:122,columnNumber:7},this)]},void 0,!0,{fileName:I,lineNumber:116,columnNumber:5},this)}var R=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/form.tsx`;function z(e,t){let n={};n.name=t?.name==null?``:String(t.name);for(let[r,i]of E(e.fields))if(!i.virtual)if(t){let e=t[r];e==null?n[r]=i.prim!==`checkbox`&&``:i.prim===`checkbox`?n[r]=e===1||e===!0||e===`1`:T(i)?n[r]=e===``?``:c(e,i.hints.multiple===!0?[]:{}):n[r]=e}else n[r]=i.prim===`checkbox`?!1:T(i)&&i.hints.multiple===!0?[]:``;for(let r of e.fields){if(!C(r)||!w(r))continue;let e=r.key;t?n[e]=t[e]??(r.multiple?[]:{}):n[e]=r.multiple?[]:{}}return n}function B(e){let t={};for(let[n,r]of Object.entries(e))r===``||r===void 0||Array.isArray(r)&&r.length===0||typeof r==`object`&&r&&!Array.isArray(r)&&Object.keys(r).length===0||(t[n]=r);return t}function V({ext:e,values:t,onChange:r,recordId:a,fieldLabel:o}){let{t:s}=i();return(0,F.jsxDEV)(`fieldset`,{className:`border border-accent/30 rounded-xl p-4 pt-2 flex flex-col min-w-0 gap-4`,children:[(0,F.jsxDEV)(`legend`,{className:`px-2 inline-flex items-center gap-1.5 text-sm font-semibold text-accent`,children:[(0,F.jsxDEV)(n,{name:e.icon,size:14,className:`shrink-0`},void 0,!1,{fileName:R,lineNumber:114,columnNumber:9},this),` `,s(e.label),(0,F.jsxDEV)(d,{ext:e,fieldLabel:o},void 0,!1,{fileName:R,lineNumber:115,columnNumber:9},this)]},void 0,!0,{fileName:R,lineNumber:113,columnNumber:7},this),(0,F.jsxDEV)(_,{items:e.fields,ctx:{renderField:(n,i)=>D(i.hidden,t)?null:(0,F.jsxDEV)(u,{mode:`create`,field:i,label:i.label?s(i.label):void 0,required:D(i.required,t),value:t[n]??``,recordCtx:{library:``,shelf:e.id,recordId:a},onChange:t=>r(e.id,n,t)},void 0,!1,{fileName:R,lineNumber:100,columnNumber:9},this)}},void 0,!1,{fileName:R,lineNumber:117,columnNumber:7},this)]},void 0,!0,{fileName:R,lineNumber:112,columnNumber:5},this)}function H(e,t,n){let[r]=(0,P.useState)(()=>{let n={};for(let r of e){let e=t?._extends?.[r.id];n[r.id]={};for(let[t,i]of E(r.fields)){let a=e?.[t];a==null?n[r.id][t]=i.prim===`checkbox`?!1:T(i)&&i.hints.multiple===!0?[]:``:i.prim===`checkbox`?n[r.id][t]=a===1||a===!0||a===`1`:T(i)?n[r.id][t]=a===``?``:c(a,i.hints.multiple===!0?[]:{}):n[r.id][t]=a}}return n}),[i,a]=(0,P.useState)(r),o=(0,P.useMemo)(()=>e.filter(e=>O(e.showWhen,n)),[e,n]);function s(e,t,n){a(r=>({...r,[e]:{...r[e],[t]:n}}))}function l(e){let t={};for(let n of o){let a=i[n.id]??{};if(e){let e=r[n.id]??{},i=Object.fromEntries(Object.entries(a).filter(([t,n])=>n!==e[t]));Object.keys(i).length>0&&(t[`_extend_${n.id}`]=i)}else{let e=Object.fromEntries(Object.entries(a).filter(([,e])=>e!==``&&e!==!1));t[`_extend_${n.id}`]=e}}return t}return{extValues:i,setExtValue:s,activeExts:o,buildExtendPatch:l}}function U({shelf:e,record:t,defaults:n,hiddenFields:r,onSuccess:a,onCancel:o}){let{t:s}=i(),c=p(s),l=!!t,u=(0,P.useMemo)(()=>A(e.fields),[e]),[d,m]=(0,P.useState)([]),[h,g]=(0,P.useState)(!1),[_,v]=(0,P.useState)(()=>z(e,t)),y=(0,P.useRef)(null),{extValues:x,setExtValue:S,activeExts:C,buildExtendPatch:w}=H((0,P.useMemo)(()=>f().filter(t=>t.attachTo.some(t=>t.library===e.library&&(!t.shelf||t.shelf===e.shelf))),[e]),t,_);function T(e){return l||String(e.name??``).trim()?{}:{name:s(`validation.required`)}}async function E(n){m([]),g(!0);let r={...n,...w()},i=String(t?.id??``),o=l?await M(e.library,e.shelf,i,r):await N(e.library,e.shelf,r);if(g(!1),o.ok){a(o.row);return}let s=o.issues??[],d={},f=[];for(let e of s)e.field&&u[e.field]?d[e.field]=c(e.code,e.params):f.push(e);let p=b(s,c);(Object.keys(d).length||Object.keys(p).length)&&(y.current?.setErrors(e=>({...e,...d,...p})),y.current?.setTouched(e=>new Set([...e,...Object.keys(d)]))),m(f)}return(0,F.jsxDEV)(`div`,{children:(0,F.jsxDEV)(L,{shelf:e,record:t,onSubmit:E,onCancel:o,submitLabel:s(h?`common.saving`:l?`actions.save`:`actions.create`),busy:h,hiddenFields:r,onValuesChange:v,errorSink:e=>{y.current=e},extraValidate:T,children:[C.map(e=>(0,F.jsxDEV)(V,{ext:e,values:x[e.id]??{},onChange:S,recordId:t?String(t.id):null,fieldLabel:e=>u[e]?.label?s(u[e].label):e},e.id,!1,{fileName:R,lineNumber:318,columnNumber:11},this)),d.length>0&&(0,F.jsxDEV)(`div`,{className:`bg-danger/10 border border-danger/30 rounded-xl p-3.5 text-sm`,children:[(0,F.jsxDEV)(`p`,{className:`font-semibold text-danger mb-2`,children:s(`form.serverRejected`)},void 0,!1,{fileName:R,lineNumber:330,columnNumber:13},this),(0,F.jsxDEV)(`ul`,{className:`space-y-1 text-text/80`,children:d.map((e,t)=>{let n=u[e.field],r=n?s(n.label):e.field,i=e.code===`pattern`&&e.params?.messageKey?s(String(e.params.messageKey)):s(`validation.${e.code}`,e.params);return(0,F.jsxDEV)(`li`,{className:`flex gap-1.5`,children:[r&&(0,F.jsxDEV)(`span`,{className:`text-muted font-medium`,children:[r,`:`]},void 0,!0,{fileName:R,lineNumber:341,columnNumber:31},this),i]},t,!0,{fileName:R,lineNumber:340,columnNumber:19},this)})},void 0,!1,{fileName:R,lineNumber:331,columnNumber:13},this)]},void 0,!0,{fileName:R,lineNumber:329,columnNumber:11},this)]},`${e.library}/${e.shelf}/${t?t.id:`new`}`,!0,{fileName:R,lineNumber:301,columnNumber:7},this)},void 0,!1,{fileName:R,lineNumber:293,columnNumber:5},this)}var W=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/record/NewRecordView.tsx`;function G(){let{t:e}=i(),{library:t,type:n}=o(),s=a(),c=m().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===n);return!c||c.standalone===!1?(0,F.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:W,lineNumber:20,columnNumber:44},this):(0,F.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,F.jsxDEV)(y,{children:(0,F.jsxDEV)(r,{variant:`ghost`,size:`sm`,className:`px-2`,onClick:()=>s(`/${t}/${n}`),children:[(0,F.jsxDEV)(x,{size:18},void 0,!1,{fileName:W,lineNumber:26,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-sm`,children:e(c.label)},void 0,!1,{fileName:W,lineNumber:27,columnNumber:11},this)]},void 0,!0,{fileName:W,lineNumber:25,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:24,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,F.jsxDEV)(`div`,{className:`max-w-2xl mx-auto px-6 py-6`,children:(0,F.jsxDEV)(g,{library:c.library,shelf:c.shelf,children:(0,F.jsxDEV)(U,{shelf:c,onSuccess:e=>{l(`${c.library}/${c.shelf}`),e?.id?s(`/${t}/${n}/${e.id}`):s(`/${t}/${n}`)},onCancel:()=>s(`/${t}/${n}`)},void 0,!1,{fileName:W,lineNumber:33,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:32,columnNumber:11},this)},void 0,!1,{fileName:W,lineNumber:31,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:30,columnNumber:7},this)]},void 0,!0,{fileName:W,lineNumber:23,columnNumber:5},this)}export{G as NewRecordView};
|