@object-ui/console 4.0.4 → 4.0.6

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.
Files changed (50) hide show
  1. package/dist/assets/{AppManagementPage-ynJLzxVY.js → AppManagementPage-DvZRhEu3.js} +1 -1
  2. package/dist/assets/{ConsoleFloatingChatbot-C2rFxE3n.js → ConsoleFloatingChatbot-DSk3VUa6.js} +1 -1
  3. package/dist/assets/DashboardView-ClGhVUz7.js +1 -0
  4. package/dist/assets/{MetadataDetailPage-B9EzoQgu.js → MetadataDetailPage-Dn8QJ3Hw.js} +1 -1
  5. package/dist/assets/{MetadataFormDialog-BebGlAr3.js → MetadataFormDialog-Bf5wwigQ.js} +1 -1
  6. package/dist/assets/MetadataManagerPage-CLb0l4Pw.js +1 -0
  7. package/dist/assets/{PageView-C2GS-SQP.js → PageView-_R84mPfp.js} +2 -2
  8. package/dist/assets/ProfilePage-BFhufxnO.js +1 -0
  9. package/dist/assets/RecordDetailView-DROfHlhL.js +1 -0
  10. package/dist/assets/{RecordFormPage-B6mEBKMB.js → RecordFormPage-BqCa2Cez.js} +1 -1
  11. package/dist/assets/{ReportView-B16PsGer.js → ReportView-bv8vOOKb.js} +2 -2
  12. package/dist/assets/{SearchResultsPage-932jfRUX.js → SearchResultsPage-KJr5yhgC.js} +1 -1
  13. package/dist/assets/{SystemHubPage-CqrYgpYf.js → SystemHubPage-LGgCwgTn.js} +1 -1
  14. package/dist/assets/{data-adapter-BwfAq_h0.js → data-adapter-ChK5QXoY.js} +1 -1
  15. package/dist/assets/{getIcon-DF6zJOtU.js → getIcon-BKYKFGnN.js} +1 -1
  16. package/dist/assets/index-C_jWdyY_.css +2 -0
  17. package/dist/assets/index-DTdi5Ufa.js +2 -0
  18. package/dist/assets/{plugin-calendar-D1bCBBwe.js → plugin-calendar-CQkP8bUI.js} +1 -1
  19. package/dist/assets/{plugin-charts-x_9Q2-i_.js → plugin-charts-CJxtgGBd.js} +1 -1
  20. package/dist/assets/{plugin-chatbot-CgNZnFch.js → plugin-chatbot-CgD9fZFI.js} +14 -14
  21. package/dist/assets/plugin-form-BFt_k4to.js +1 -0
  22. package/dist/assets/plugin-gantt-BKC7uDlF.js +1 -0
  23. package/dist/assets/plugin-grid-C9RnYppl.js +8 -0
  24. package/dist/assets/plugin-kanban-Bi-sR7AW.js +1 -0
  25. package/dist/assets/{plugin-map-DZdVR1tc.js → plugin-map-zYnfrqC_.js} +1 -1
  26. package/dist/assets/{plugin-markdown-BlHuacDq.js → plugin-markdown-D1ozhgoT.js} +1 -1
  27. package/dist/assets/{plugin-timeline-OEB0nyvd.js → plugin-timeline-B93E4n2x.js} +1 -1
  28. package/dist/assets/plugin-view-B94g0Ssh.js +1 -0
  29. package/dist/assets/plugins-views-Bi5okDge.js +63 -0
  30. package/dist/assets/src-DwuebCF9.js +1 -0
  31. package/dist/assets/ui-components-BL3SEdAz.css +1 -0
  32. package/dist/assets/ui-components-DSSaN2w_.js +36 -0
  33. package/dist/assets/{ui-layout-jqAD528v.js → ui-layout-iDLUMX7R.js} +1 -1
  34. package/dist/index.html +4 -4
  35. package/package.json +30 -30
  36. package/dist/assets/DashboardView-x75VLMQW.js +0 -1
  37. package/dist/assets/MetadataManagerPage-B0xfI-4w.js +0 -1
  38. package/dist/assets/ProfilePage-BO3TRbTV.js +0 -1
  39. package/dist/assets/RecordDetailView-Clze41HE.js +0 -1
  40. package/dist/assets/index-CPatxDwz.js +0 -2
  41. package/dist/assets/index-vbGrAsEJ.css +0 -2
  42. package/dist/assets/plugin-form-DOfn-uRa.js +0 -1
  43. package/dist/assets/plugin-gantt-CHZ4HLjh.js +0 -1
  44. package/dist/assets/plugin-grid-Cn_T_wpz.js +0 -8
  45. package/dist/assets/plugin-kanban-BsgjJQam.js +0 -1
  46. package/dist/assets/plugin-view-CJFsgQ9v.js +0 -1
  47. package/dist/assets/plugins-views-DqZMtAOw.js +0 -63
  48. package/dist/assets/src-D5NTzWsi.js +0 -1
  49. package/dist/assets/ui-components-B5ROGaJH.css +0 -1
  50. package/dist/assets/ui-components-B7mlp0en.js +0 -36
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-S-ySWqyJ.js";import{_ as t,l as n,r,t as i}from"./vendor-react-B1k2FF9f.js";import{At as a,Cm as o,FS as s,Ft as c,It as l,Mt as u,Nt as d,Ot as f,PL as p,Pt as m,Xn as h,Yn as g,Z as _,ZA as v,Zn as y,Zt as b,ar as x,cT as S,hc as C,jt as w,kt as T,xm as E}from"./ui-components-B7mlp0en.js";import{a as D,f as O,g as k,h as A,l as j,m as M,n as N,o as P,s as F,t as I,u as L}from"./vendor-dndkit-BfOuYFuz.js";var R=e(t(),1),z=i();function B(e){let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(!t)return null;let n=parseInt(t[1],16)/255,r=parseInt(t[2],16)/255,i=parseInt(t[3],16)/255,a=Math.max(n,r,i),o=Math.min(n,r,i),s=0,c=0,l=(a+o)/2;if(a!==o){let e=a-o;switch(c=l>.5?e/(2-a-o):e/(a+o),a){case n:s=((r-i)/e+(r<i?6:0))/6;break;case r:s=((i-n)/e+2)/6;break;case i:s=((n-r)/e+4)/6;break}}return{h:s*360,s:c*100,l:l*100}}function V(e){let t=B(e);return t?`${Math.round(t.h)} ${Math.round(t.s)}% ${Math.round(t.l)}%`:null}function H(e){let t=B(e);if(!t)return null;let n=Math.max(t.l,65),r=t.s>80?Math.max(t.s-10,70):t.s;return`${Math.round(t.h)} ${Math.round(r)}% ${Math.round(n)}%`}function U(e){let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(!t)return`0 0% 100%`;let n=e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4},r=n(parseInt(t[1],16)),i=n(parseInt(t[2],16)),a=n(parseInt(t[3],16));return .2126*r+.7152*i+.0722*a>.6?`222 47% 11%`:`0 0% 100%`}function W(e,t){(0,R.useEffect)(()=>{let n=document.documentElement,r=()=>n.classList.contains(`dark`),i=()=>{if(e?.primaryColor){let t=V(e.primaryColor),i=H(e.primaryColor),a=r()&&i||t;a&&(n.style.setProperty(`--brand-primary`,e.primaryColor),n.style.setProperty(`--brand-primary-hsl`,t||a),n.style.setProperty(`--primary`,a),n.style.setProperty(`--primary-foreground`,r()?`222 47% 11%`:U(e.primaryColor)),n.style.setProperty(`--ring`,a),n.style.setProperty(`--sidebar-primary`,a),n.style.setProperty(`--sidebar-ring`,a))}else n.style.removeProperty(`--brand-primary`),n.style.removeProperty(`--brand-primary-hsl`),n.style.removeProperty(`--primary`),n.style.removeProperty(`--primary-foreground`),n.style.removeProperty(`--ring`),n.style.removeProperty(`--sidebar-primary`),n.style.removeProperty(`--sidebar-ring`);if(e?.accentColor){let t=V(e.accentColor),i=H(e.accentColor),a=r()&&i||t;a&&(n.style.setProperty(`--brand-accent`,e.accentColor),n.style.setProperty(`--brand-accent-hsl`,t||a),n.style.setProperty(`--accent`,a),n.style.setProperty(`--accent-foreground`,r()?`222 47% 11%`:U(e.accentColor)))}else n.style.removeProperty(`--brand-accent`),n.style.removeProperty(`--brand-accent-hsl`),n.style.removeProperty(`--accent`),n.style.removeProperty(`--accent-foreground`)};i();let a=new MutationObserver(e=>{for(let t of e)if(t.type===`attributes`&&t.attributeName===`class`){i();break}});if(a.observe(n,{attributes:!0,attributeFilter:[`class`]}),e?.favicon){let t=document.querySelector(`#favicon`)||document.querySelector(`link[rel="icon"]`);t&&(t.href=e.favicon)}return t&&(document.title=t),()=>{a.disconnect(),n.style.removeProperty(`--brand-primary`),n.style.removeProperty(`--brand-primary-hsl`),n.style.removeProperty(`--brand-accent`),n.style.removeProperty(`--brand-accent-hsl`),n.style.removeProperty(`--primary`),n.style.removeProperty(`--primary-foreground`),n.style.removeProperty(`--ring`),n.style.removeProperty(`--sidebar-primary`),n.style.removeProperty(`--sidebar-ring`),n.style.removeProperty(`--accent`),n.style.removeProperty(`--accent-foreground`)}},[e?.primaryColor,e?.accentColor,e?.favicon,t])}function G({sidebar:e,navbar:t,children:n,className:r,defaultOpen:i=!0,branding:a}){return W(a,a?.title),(0,z.jsxs)(l,{defaultOpen:i,className:`!flex-col`,children:[(0,z.jsx)(`header`,{className:`sticky top-0 z-30 flex h-14 w-full shrink-0 items-center gap-2 border-b bg-background px-2 sm:px-4`,children:t}),(0,z.jsxs)(`div`,{className:`flex flex-1 min-h-0 w-full`,children:[e,(0,z.jsx)(w,{className:`min-w-0`,children:(0,z.jsx)(`main`,{className:p(`flex-1 min-w-0 overflow-auto p-3 sm:p-4 md:p-6`,r),children:n})})]})]})}function K(e){return e?_(e):S}function q(e,t){if(typeof e==`string`)return e;if(t){let n=t(e.key,{defaultValue:e.defaultValue,...e.params});if(n&&n!==e.key)return n}return e.defaultValue||e.key}function J(e,t,n,r,i){let a=q(e.label,n);return typeof e.label==`string`?t&&e.type===`object`&&e.objectName?t(e.objectName,a):r&&e.type===`dashboard`&&e.dashboardName?r(e.dashboardName,a):i&&e.type===`group`&&e.id?i(e.id,a):a:a}var Y=e=>!(e===!1||e===`false`),X=()=>!0;function ee(e,t){switch(e.type){case`object`:{let n=`${t}/${e.objectName??``}`;return{href:e.viewName?`${n}/view/${e.viewName}`:n,external:!1}}case`dashboard`:return{href:e.dashboardName?`${t}/dashboard/${e.dashboardName}`:`#`,external:!1};case`page`:return{href:e.pageName?`${t}/page/${e.pageName}`:`#`,external:!1};case`report`:return{href:e.reportName?`${t}/report/${e.reportName}`:`#`,external:!1};case`url`:return{href:e.url??`#`,external:e.target===`_blank`};default:return{href:`#`,external:!1}}}function Z(e,t){if(!t.trim())return e;let n=t.toLowerCase().trim();return e.reduce((e,r)=>{if(r.type===`separator`)return e;if(r.type===`group`&&r.children?.length){let n=Z(r.children,t);return n.length>0&&e.push({...r,children:n}),e}return q(r.label).toLowerCase().includes(n)&&e.push(r),e},[])}var te=5;function ne({item:e,basePath:t,evalVis:n,checkPerm:r,onAction:i,enablePinning:a,onPinToggle:o,enableReorder:s,resolveObjectLabel:c,resolveDashboardLabel:l,resolveGroupLabel:u,t:d}){let{attributes:f,listeners:p,setNodeRef:m,transform:h,transition:g,isDragging:_}=D({id:e.id,disabled:!s});return(0,z.jsx)(`div`,{ref:m,style:{transform:k.Transform.toString(h),transition:g,opacity:_?.5:void 0,zIndex:_?10:void 0},...f,children:(0,z.jsx)(Q,{item:e,basePath:t,evalVis:n,checkPerm:r,onAction:i,enablePinning:a,onPinToggle:o,dragListeners:s?p:void 0,resolveObjectLabel:c,resolveDashboardLabel:l,resolveGroupLabel:u,t:d})})}function Q({item:e,basePath:t,evalVis:i,checkPerm:l,onAction:p,enablePinning:_,onPinToggle:S,dragListeners:C,resolveObjectLabel:w,resolveDashboardLabel:D,resolveGroupLabel:O,t:k}){let A=n(),[j,M]=(0,R.useState)(e.defaultOpen!==!1);if(!i(e.visible)||e.requiredPermissions?.length&&!l(e.requiredPermissions))return null;if(e.type===`separator`)return(0,z.jsx)(b,{className:`my-2`});if(e.type===`group`){let n=(e.children??[]).slice().sort((e,t)=>(e.order??0)-(t.order??0));return(0,z.jsx)(g,{open:j,onOpenChange:M,children:(0,z.jsxs)(f,{children:[(0,z.jsx)(a,{asChild:!0,children:(0,z.jsxs)(y,{className:`flex w-full items-center justify-between`,children:[J(e,w,k,D,O),(0,z.jsx)(v,{className:`ml-auto h-4 w-4 transition-transform ${j?`rotate-90`:``}`})]})}),(0,z.jsx)(h,{children:(0,z.jsx)(T,{children:(0,z.jsx)(u,{children:n.map(e=>(0,z.jsx)(Q,{item:e,basePath:t,evalVis:i,checkPerm:l,onAction:p,enablePinning:_,onPinToggle:S,resolveObjectLabel:w,resolveDashboardLabel:D,resolveGroupLabel:O,t:k},e.id))})})})]})})}if(e.type===`action`){let t=K(e.icon),n=q(e.label,k);return(0,z.jsxs)(c,{children:[C&&(0,z.jsx)(`span`,{className:`absolute left-0.5 top-1/2 -translate-y-1/2 cursor-grab text-muted-foreground`,"aria-label":k?k(`console.nav.dragToReorder`,{defaultValue:`Drag to reorder`}):`Drag to reorder`,...C,children:(0,z.jsx)(s,{className:`h-3.5 w-3.5`})}),(0,z.jsxs)(m,{tooltip:n,onClick:()=>p?.(e),children:[(0,z.jsx)(t,{className:`h-4 w-4`}),(0,z.jsx)(`span`,{children:n}),e.badge!=null&&(0,z.jsx)(x,{variant:e.badgeVariant??`default`,className:`ml-auto text-[10px] px-1.5 py-0`,children:e.badge})]}),_&&S&&(0,z.jsx)(d,{showOnHover:!0,onClick:()=>S(e.id,!e.pinned),"aria-label":k?k(e.pinned?`console.nav.unpinItem`:`console.nav.pinItem`,{defaultValue:e.pinned?`Unpin ${n}`:`Pin ${n}`,name:n}):e.pinned?`Unpin ${n}`:`Pin ${n}`,children:e.pinned?(0,z.jsx)(o,{className:`h-3.5 w-3.5`}):(0,z.jsx)(E,{className:`h-3.5 w-3.5`})})]})}let N=K(e.icon),{href:P,external:F}=ee(e,t),I=P!==`#`&&A.pathname.startsWith(P),L=J(e,w,k,D,O),B=(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(N,{className:`h-4 w-4`}),(0,z.jsx)(`span`,{children:L}),e.badge!=null&&(0,z.jsx)(x,{variant:e.badgeVariant??`default`,className:`ml-auto text-[10px] px-1.5 py-0`,children:e.badge})]});return(0,z.jsxs)(c,{children:[C&&(0,z.jsx)(`span`,{className:`absolute left-0.5 top-1/2 -translate-y-1/2 cursor-grab text-muted-foreground`,"aria-label":k?k(`console.nav.dragToReorder`,{defaultValue:`Drag to reorder`}):`Drag to reorder`,...C,children:(0,z.jsx)(s,{className:`h-3.5 w-3.5`})}),(0,z.jsx)(m,{asChild:!0,isActive:I,tooltip:L,children:F?(0,z.jsx)(`a`,{href:P,target:`_blank`,rel:`noopener noreferrer`,children:B}):(0,z.jsx)(r,{to:P,children:B})}),_&&S&&(0,z.jsx)(d,{showOnHover:!0,onClick:()=>S(e.id,!e.pinned),"aria-label":k?k(e.pinned?`console.nav.unpinItem`:`console.nav.pinItem`,{defaultValue:e.pinned?`Unpin ${L}`:`Pin ${L}`,name:L}):e.pinned?`Unpin ${L}`:`Pin ${L}`,children:e.pinned?(0,z.jsx)(o,{className:`h-3.5 w-3.5`}):(0,z.jsx)(E,{className:`h-3.5 w-3.5`})})]})}function re({items:e,basePath:t=``,evaluateVisibility:n=Y,checkPermission:r=X,onAction:i,searchQuery:o,enablePinning:s,onPinToggle:c,enableReorder:l,onReorder:d,resolveObjectLabel:p,resolveDashboardLabel:m,resolveGroupLabel:h,t:g}){let _=(0,R.useMemo)(()=>o?Z(e,o):e,[e,o]),v=(0,R.useMemo)(()=>$(_),[_]),y=_.slice().sort((e,t)=>(e.order??0)-(t.order??0)),b=A(M(L,{activationConstraint:{distance:te}}),M(j)),x=e=>{let{active:t,over:n}=e;if(!n||t.id===n.id||!d)return;let r=y.findIndex(e=>e.id===t.id),i=y.findIndex(e=>e.id===n.id);r===-1||i===-1||d(N(y,r,i).map((e,t)=>({...e,order:t})))},S={basePath:t,evalVis:n,checkPerm:r,onAction:i,enablePinning:s,onPinToggle:c,resolveObjectLabel:p,resolveDashboardLabel:m,resolveGroupLabel:h,t:g},w=y.some(e=>e.type===`group`),E=v.length>0&&s?(0,z.jsxs)(f,{children:[(0,z.jsxs)(a,{className:`flex items-center gap-1.5`,children:[(0,z.jsx)(C,{className:`h-3.5 w-3.5`}),g?g(`console.nav.favorites`,{defaultValue:`Favorites`}):`Favorites`]}),(0,z.jsx)(T,{children:(0,z.jsx)(u,{children:v.map(e=>(0,z.jsx)(Q,{item:e,...S},`fav-${e.id}`))})})]}):null;if(!w){let e=y.filter(e=>e.type!==`group`).map(e=>e.id);return(0,z.jsxs)(z.Fragment,{children:[E,(0,z.jsx)(f,{children:(0,z.jsx)(T,{children:l?(0,z.jsx)(F,{sensors:b,collisionDetection:O,onDragEnd:x,children:(0,z.jsx)(I,{items:e,strategy:P,children:(0,z.jsx)(u,{children:y.map(e=>(0,z.jsx)(ne,{item:e,enableReorder:l,...S},e.id))})})}):(0,z.jsx)(u,{children:y.map(e=>(0,z.jsx)(Q,{item:e,...S},e.id))})})})]})}let D=[],k=[],B=e=>{if(k.length===0)return;let t=k;k=[],D.push((0,z.jsx)(f,{children:(0,z.jsx)(T,{children:(0,z.jsx)(u,{children:t.map(e=>(0,z.jsx)(Q,{item:e,...S},e.id))})})},e))};return y.forEach((e,t)=>{e.type===`group`?(B(`leaf-${t}`),D.push((0,z.jsx)(Q,{item:e,...S},e.id))):k.push(e)}),B(`leaf-end`),(0,z.jsxs)(z.Fragment,{children:[E,D]})}function $(e){let t=[];for(let n of e)n.pinned&&n.type!==`group`&&n.type!==`separator`&&t.push(n),n.children?.length&&t.push(...$(n.children));return t}export{G as n,re as t};
1
+ import{r as e}from"./rolldown-runtime-S-ySWqyJ.js";import{_ as t,l as n,r,t as i}from"./vendor-react-B1k2FF9f.js";import{At as a,Dt as o,Ft as s,Jn as c,Mt as l,NL as u,Nt as d,Ot as f,PS as p,Pt as m,Sm as h,X as g,XA as _,Xn as v,Xt as y,Yn as b,bm as x,ir as S,jt as C,kt as w,mc as T,sT as E}from"./ui-components-DSSaN2w_.js";import{a as D,f as O,g as k,h as A,l as j,m as M,n as N,o as P,s as F,t as I,u as L}from"./vendor-dndkit-BfOuYFuz.js";var R=e(t(),1),z=i();function B(e){let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(!t)return null;let n=parseInt(t[1],16)/255,r=parseInt(t[2],16)/255,i=parseInt(t[3],16)/255,a=Math.max(n,r,i),o=Math.min(n,r,i),s=0,c=0,l=(a+o)/2;if(a!==o){let e=a-o;switch(c=l>.5?e/(2-a-o):e/(a+o),a){case n:s=((r-i)/e+(r<i?6:0))/6;break;case r:s=((i-n)/e+2)/6;break;case i:s=((n-r)/e+4)/6;break}}return{h:s*360,s:c*100,l:l*100}}function V(e){let t=B(e);return t?`${Math.round(t.h)} ${Math.round(t.s)}% ${Math.round(t.l)}%`:null}function H(e){let t=B(e);if(!t)return null;let n=Math.max(t.l,65),r=t.s>80?Math.max(t.s-10,70):t.s;return`${Math.round(t.h)} ${Math.round(r)}% ${Math.round(n)}%`}function U(e){let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(!t)return`0 0% 100%`;let n=e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4},r=n(parseInt(t[1],16)),i=n(parseInt(t[2],16)),a=n(parseInt(t[3],16));return .2126*r+.7152*i+.0722*a>.6?`222 47% 11%`:`0 0% 100%`}function W(e,t){(0,R.useEffect)(()=>{let n=document.documentElement,r=()=>n.classList.contains(`dark`),i=()=>{if(e?.primaryColor){let t=V(e.primaryColor),i=H(e.primaryColor),a=r()&&i||t;a&&(n.style.setProperty(`--brand-primary`,e.primaryColor),n.style.setProperty(`--brand-primary-hsl`,t||a),n.style.setProperty(`--primary`,a),n.style.setProperty(`--primary-foreground`,r()?`222 47% 11%`:U(e.primaryColor)),n.style.setProperty(`--ring`,a),n.style.setProperty(`--sidebar-primary`,a),n.style.setProperty(`--sidebar-ring`,a))}else n.style.removeProperty(`--brand-primary`),n.style.removeProperty(`--brand-primary-hsl`),n.style.removeProperty(`--primary`),n.style.removeProperty(`--primary-foreground`),n.style.removeProperty(`--ring`),n.style.removeProperty(`--sidebar-primary`),n.style.removeProperty(`--sidebar-ring`);if(e?.accentColor){let t=V(e.accentColor),i=H(e.accentColor),a=r()&&i||t;a&&(n.style.setProperty(`--brand-accent`,e.accentColor),n.style.setProperty(`--brand-accent-hsl`,t||a),n.style.setProperty(`--accent`,a),n.style.setProperty(`--accent-foreground`,r()?`222 47% 11%`:U(e.accentColor)))}else n.style.removeProperty(`--brand-accent`),n.style.removeProperty(`--brand-accent-hsl`),n.style.removeProperty(`--accent`),n.style.removeProperty(`--accent-foreground`)};i();let a=new MutationObserver(e=>{for(let t of e)if(t.type===`attributes`&&t.attributeName===`class`){i();break}});if(a.observe(n,{attributes:!0,attributeFilter:[`class`]}),e?.favicon){let t=document.querySelector(`#favicon`)||document.querySelector(`link[rel="icon"]`);t&&(t.href=e.favicon)}return t&&(document.title=t),()=>{a.disconnect(),n.style.removeProperty(`--brand-primary`),n.style.removeProperty(`--brand-primary-hsl`),n.style.removeProperty(`--brand-accent`),n.style.removeProperty(`--brand-accent-hsl`),n.style.removeProperty(`--primary`),n.style.removeProperty(`--primary-foreground`),n.style.removeProperty(`--ring`),n.style.removeProperty(`--sidebar-primary`),n.style.removeProperty(`--sidebar-ring`),n.style.removeProperty(`--accent`),n.style.removeProperty(`--accent-foreground`)}},[e?.primaryColor,e?.accentColor,e?.favicon,t])}function G({sidebar:e,navbar:t,children:n,className:r,defaultOpen:i=!0,branding:o}){return W(o,o?.title),(0,z.jsxs)(s,{defaultOpen:i,className:`!flex-col`,children:[(0,z.jsx)(`header`,{className:`sticky top-0 z-30 flex h-14 w-full shrink-0 items-center gap-2 border-b bg-background px-2 sm:px-4`,children:t}),(0,z.jsxs)(`div`,{className:`flex flex-1 min-h-0 w-full`,children:[e,(0,z.jsx)(a,{className:`min-w-0`,children:(0,z.jsx)(`main`,{className:u(`flex-1 min-w-0 overflow-auto p-3 sm:p-4 md:p-6`,r),children:n})})]})]})}function K(e){return e?g(e):E}function q(e,t){if(typeof e==`string`)return e;if(t){let n=t(e.key,{defaultValue:e.defaultValue,...e.params});if(n&&n!==e.key)return n}return e.defaultValue||e.key}function J(e,t,n,r,i){let a=q(e.label,n);return typeof e.label==`string`?t&&e.type===`object`&&e.objectName?t(e.objectName,a):r&&e.type===`dashboard`&&e.dashboardName?r(e.dashboardName,a):i&&e.type===`group`&&e.id?i(e.id,a):a:a}var Y=e=>!(e===!1||e===`false`),X=()=>!0;function ee(e,t){switch(e.type){case`object`:{let n=`${t}/${e.objectName??``}`;return{href:e.viewName?`${n}/view/${e.viewName}`:n,external:!1}}case`dashboard`:return{href:e.dashboardName?`${t}/dashboard/${e.dashboardName}`:`#`,external:!1};case`page`:return{href:e.pageName?`${t}/page/${e.pageName}`:`#`,external:!1};case`report`:return{href:e.reportName?`${t}/report/${e.reportName}`:`#`,external:!1};case`url`:return{href:e.url??`#`,external:e.target===`_blank`};default:return{href:`#`,external:!1}}}function Z(e,t){if(!t.trim())return e;let n=t.toLowerCase().trim();return e.reduce((e,r)=>{if(r.type===`separator`)return e;if(r.type===`group`&&r.children?.length){let n=Z(r.children,t);return n.length>0&&e.push({...r,children:n}),e}return q(r.label).toLowerCase().includes(n)&&e.push(r),e},[])}var te=5;function ne({item:e,basePath:t,evalVis:n,checkPerm:r,onAction:i,enablePinning:a,onPinToggle:o,enableReorder:s,resolveObjectLabel:c,resolveDashboardLabel:l,resolveGroupLabel:u,t:d}){let{attributes:f,listeners:p,setNodeRef:m,transform:h,transition:g,isDragging:_}=D({id:e.id,disabled:!s});return(0,z.jsx)(`div`,{ref:m,style:{transform:k.Transform.toString(h),transition:g,opacity:_?.5:void 0,zIndex:_?10:void 0},...f,children:(0,z.jsx)(Q,{item:e,basePath:t,evalVis:n,checkPerm:r,onAction:i,enablePinning:a,onPinToggle:o,dragListeners:s?p:void 0,resolveObjectLabel:c,resolveDashboardLabel:l,resolveGroupLabel:u,t:d})})}function Q({item:e,basePath:t,evalVis:i,checkPerm:a,onAction:s,enablePinning:u,onPinToggle:g,dragListeners:T,resolveObjectLabel:E,resolveDashboardLabel:D,resolveGroupLabel:O,t:k}){let A=n(),[j,M]=(0,R.useState)(e.defaultOpen!==!1);if(!i(e.visible)||e.requiredPermissions?.length&&!a(e.requiredPermissions))return null;if(e.type===`separator`)return(0,z.jsx)(y,{className:`my-2`});if(e.type===`group`){let n=(e.children??[]).slice().sort((e,t)=>(e.order??0)-(t.order??0));return(0,z.jsx)(c,{open:j,onOpenChange:M,children:(0,z.jsxs)(o,{children:[(0,z.jsx)(w,{asChild:!0,children:(0,z.jsxs)(v,{className:`flex w-full items-center justify-between`,children:[J(e,E,k,D,O),(0,z.jsx)(_,{className:`ml-auto h-4 w-4 transition-transform ${j?`rotate-90`:``}`})]})}),(0,z.jsx)(b,{children:(0,z.jsx)(f,{children:(0,z.jsx)(C,{children:n.map(e=>(0,z.jsx)(Q,{item:e,basePath:t,evalVis:i,checkPerm:a,onAction:s,enablePinning:u,onPinToggle:g,resolveObjectLabel:E,resolveDashboardLabel:D,resolveGroupLabel:O,t:k},e.id))})})})]})})}if(e.type===`action`){let t=K(e.icon),n=q(e.label,k);return(0,z.jsxs)(m,{children:[T&&(0,z.jsx)(`span`,{className:`absolute left-0.5 top-1/2 -translate-y-1/2 cursor-grab text-muted-foreground`,"aria-label":k?k(`console.nav.dragToReorder`,{defaultValue:`Drag to reorder`}):`Drag to reorder`,...T,children:(0,z.jsx)(p,{className:`h-3.5 w-3.5`})}),(0,z.jsxs)(d,{tooltip:n,onClick:()=>s?.(e),children:[(0,z.jsx)(t,{className:`h-4 w-4`}),(0,z.jsx)(`span`,{children:n}),e.badge!=null&&(0,z.jsx)(S,{variant:e.badgeVariant??`default`,className:`ml-auto text-[10px] px-1.5 py-0`,children:e.badge})]}),u&&g&&(0,z.jsx)(l,{showOnHover:!0,onClick:()=>g(e.id,!e.pinned),"aria-label":k?k(e.pinned?`console.nav.unpinItem`:`console.nav.pinItem`,{defaultValue:e.pinned?`Unpin ${n}`:`Pin ${n}`,name:n}):e.pinned?`Unpin ${n}`:`Pin ${n}`,children:e.pinned?(0,z.jsx)(h,{className:`h-3.5 w-3.5`}):(0,z.jsx)(x,{className:`h-3.5 w-3.5`})})]})}let N=K(e.icon),{href:P,external:F}=ee(e,t),I=P!==`#`&&A.pathname.startsWith(P),L=J(e,E,k,D,O),B=(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(N,{className:`h-4 w-4`}),(0,z.jsx)(`span`,{children:L}),e.badge!=null&&(0,z.jsx)(S,{variant:e.badgeVariant??`default`,className:`ml-auto text-[10px] px-1.5 py-0`,children:e.badge})]});return(0,z.jsxs)(m,{children:[T&&(0,z.jsx)(`span`,{className:`absolute left-0.5 top-1/2 -translate-y-1/2 cursor-grab text-muted-foreground`,"aria-label":k?k(`console.nav.dragToReorder`,{defaultValue:`Drag to reorder`}):`Drag to reorder`,...T,children:(0,z.jsx)(p,{className:`h-3.5 w-3.5`})}),(0,z.jsx)(d,{asChild:!0,isActive:I,tooltip:L,children:F?(0,z.jsx)(`a`,{href:P,target:`_blank`,rel:`noopener noreferrer`,children:B}):(0,z.jsx)(r,{to:P,children:B})}),u&&g&&(0,z.jsx)(l,{showOnHover:!0,onClick:()=>g(e.id,!e.pinned),"aria-label":k?k(e.pinned?`console.nav.unpinItem`:`console.nav.pinItem`,{defaultValue:e.pinned?`Unpin ${L}`:`Pin ${L}`,name:L}):e.pinned?`Unpin ${L}`:`Pin ${L}`,children:e.pinned?(0,z.jsx)(h,{className:`h-3.5 w-3.5`}):(0,z.jsx)(x,{className:`h-3.5 w-3.5`})})]})}function re({items:e,basePath:t=``,evaluateVisibility:n=Y,checkPermission:r=X,onAction:i,searchQuery:a,enablePinning:s,onPinToggle:c,enableReorder:l,onReorder:u,resolveObjectLabel:d,resolveDashboardLabel:p,resolveGroupLabel:m,t:h}){let g=(0,R.useMemo)(()=>a?Z(e,a):e,[e,a]),_=(0,R.useMemo)(()=>$(g),[g]),v=g.slice().sort((e,t)=>(e.order??0)-(t.order??0)),y=A(M(L,{activationConstraint:{distance:te}}),M(j)),b=e=>{let{active:t,over:n}=e;if(!n||t.id===n.id||!u)return;let r=v.findIndex(e=>e.id===t.id),i=v.findIndex(e=>e.id===n.id);r===-1||i===-1||u(N(v,r,i).map((e,t)=>({...e,order:t})))},x={basePath:t,evalVis:n,checkPerm:r,onAction:i,enablePinning:s,onPinToggle:c,resolveObjectLabel:d,resolveDashboardLabel:p,resolveGroupLabel:m,t:h},S=v.some(e=>e.type===`group`),E=_.length>0&&s?(0,z.jsxs)(o,{children:[(0,z.jsxs)(w,{className:`flex items-center gap-1.5`,children:[(0,z.jsx)(T,{className:`h-3.5 w-3.5`}),h?h(`console.nav.favorites`,{defaultValue:`Favorites`}):`Favorites`]}),(0,z.jsx)(f,{children:(0,z.jsx)(C,{children:_.map(e=>(0,z.jsx)(Q,{item:e,...x},`fav-${e.id}`))})})]}):null;if(!S){let e=v.filter(e=>e.type!==`group`).map(e=>e.id);return(0,z.jsxs)(z.Fragment,{children:[E,(0,z.jsx)(o,{children:(0,z.jsx)(f,{children:l?(0,z.jsx)(F,{sensors:y,collisionDetection:O,onDragEnd:b,children:(0,z.jsx)(I,{items:e,strategy:P,children:(0,z.jsx)(C,{children:v.map(e=>(0,z.jsx)(ne,{item:e,enableReorder:l,...x},e.id))})})}):(0,z.jsx)(C,{children:v.map(e=>(0,z.jsx)(Q,{item:e,...x},e.id))})})})]})}let D=[],k=[],B=e=>{if(k.length===0)return;let t=k;k=[],D.push((0,z.jsx)(o,{children:(0,z.jsx)(f,{children:(0,z.jsx)(C,{children:t.map(e=>(0,z.jsx)(Q,{item:e,...x},e.id))})})},e))};return v.forEach((e,t)=>{e.type===`group`?(B(`leaf-${t}`),D.push((0,z.jsx)(Q,{item:e,...x},e.id))):k.push(e)}),B(`leaf-end`),(0,z.jsxs)(z.Fragment,{children:[E,D]})}function $(e){let t=[];for(let n of e)n.pinned&&n.type!==`group`&&n.type!==`separator`&&t.push(n),n.children?.length&&t.push(...$(n.children));return t}export{G as n,re as t};
package/dist/index.html CHANGED
@@ -18,12 +18,12 @@
18
18
  <script>
19
19
  window.process = window.process || { env: { NODE_ENV: 'development' }, version: '', platform: 'browser' };
20
20
  </script>
21
- <script type="module" crossorigin src="/console/assets/index-CPatxDwz.js"></script>
22
- <link rel="stylesheet" crossorigin href="/console/assets/ui-components-B5ROGaJH.css">
21
+ <script type="module" crossorigin src="/console/assets/index-DTdi5Ufa.js"></script>
22
+ <link rel="stylesheet" crossorigin href="/console/assets/ui-components-BL3SEdAz.css">
23
23
  <link rel="stylesheet" crossorigin href="/console/assets/plugins-views-DnNKJB60.css">
24
- <link rel="stylesheet" crossorigin href="/console/assets/index-vbGrAsEJ.css">
24
+ <link rel="stylesheet" crossorigin href="/console/assets/index-C_jWdyY_.css">
25
25
  <link rel="modulepreload" href="/console/assets/framework-CoXA0nY6.js" />
26
- <link rel="modulepreload" href="/console/assets/ui-components-B7mlp0en.js" />
26
+ <link rel="modulepreload" href="/console/assets/ui-components-DSSaN2w_.js" />
27
27
  <link rel="modulepreload" href="/console/assets/vendor-radix-Bj7uHNWN.js" />
28
28
  <link rel="modulepreload" href="/console/assets/vendor-react-B1k2FF9f.js" />
29
29
  </head>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@object-ui/console",
3
- "version": "4.0.4",
3
+ "version": "4.0.6",
4
4
  "description": "ObjectStack Console - The standard runtime UI for ObjectStack applications",
5
5
  "type": "module",
6
6
  "main": "./plugin.js",
@@ -45,35 +45,35 @@
45
45
  "typescript": "^6.0.3",
46
46
  "vite": "^8.0.10",
47
47
  "vitest": "^4.1.5",
48
- "@object-ui/app-shell": "4.0.4",
49
- "@object-ui/auth": "4.0.4",
50
- "@object-ui/collaboration": "4.0.4",
51
- "@object-ui/components": "4.0.4",
52
- "@object-ui/core": "4.0.4",
53
- "@object-ui/data-objectstack": "4.0.4",
54
- "@object-ui/fields": "4.0.4",
55
- "@object-ui/i18n": "4.0.4",
56
- "@object-ui/layout": "4.0.4",
57
- "@object-ui/mobile": "4.0.4",
58
- "@object-ui/permissions": "4.0.4",
59
- "@object-ui/plugin-calendar": "4.0.4",
60
- "@object-ui/plugin-charts": "4.0.4",
61
- "@object-ui/plugin-chatbot": "4.0.4",
62
- "@object-ui/plugin-dashboard": "4.0.4",
63
- "@object-ui/plugin-designer": "4.0.4",
64
- "@object-ui/plugin-detail": "4.0.4",
65
- "@object-ui/plugin-form": "4.0.4",
66
- "@object-ui/plugin-gantt": "4.0.4",
67
- "@object-ui/plugin-grid": "4.0.4",
68
- "@object-ui/plugin-kanban": "4.0.4",
69
- "@object-ui/plugin-list": "4.0.4",
70
- "@object-ui/plugin-map": "4.0.4",
71
- "@object-ui/plugin-markdown": "4.0.4",
72
- "@object-ui/plugin-report": "4.0.4",
73
- "@object-ui/plugin-timeline": "4.0.4",
74
- "@object-ui/plugin-view": "4.0.4",
75
- "@object-ui/react": "4.0.4",
76
- "@object-ui/types": "4.0.4"
48
+ "@object-ui/app-shell": "4.0.6",
49
+ "@object-ui/auth": "4.0.6",
50
+ "@object-ui/collaboration": "4.0.6",
51
+ "@object-ui/components": "4.0.6",
52
+ "@object-ui/core": "4.0.6",
53
+ "@object-ui/data-objectstack": "4.0.6",
54
+ "@object-ui/fields": "4.0.6",
55
+ "@object-ui/i18n": "4.0.6",
56
+ "@object-ui/layout": "4.0.6",
57
+ "@object-ui/mobile": "4.0.6",
58
+ "@object-ui/permissions": "4.0.6",
59
+ "@object-ui/plugin-calendar": "4.0.6",
60
+ "@object-ui/plugin-charts": "4.0.6",
61
+ "@object-ui/plugin-chatbot": "4.0.6",
62
+ "@object-ui/plugin-dashboard": "4.0.6",
63
+ "@object-ui/plugin-designer": "4.0.6",
64
+ "@object-ui/plugin-detail": "4.0.6",
65
+ "@object-ui/plugin-form": "4.0.6",
66
+ "@object-ui/plugin-gantt": "4.0.6",
67
+ "@object-ui/plugin-grid": "4.0.6",
68
+ "@object-ui/plugin-kanban": "4.0.6",
69
+ "@object-ui/plugin-list": "4.0.6",
70
+ "@object-ui/plugin-map": "4.0.6",
71
+ "@object-ui/plugin-markdown": "4.0.6",
72
+ "@object-ui/plugin-report": "4.0.6",
73
+ "@object-ui/plugin-timeline": "4.0.6",
74
+ "@object-ui/plugin-view": "4.0.6",
75
+ "@object-ui/react": "4.0.6",
76
+ "@object-ui/types": "4.0.6"
77
77
  },
78
78
  "scripts": {
79
79
  "dev": "vite",
@@ -1 +0,0 @@
1
- import{n as e,r as t}from"./rolldown-runtime-S-ySWqyJ.js";import{_ as n,f as r,t as i}from"./vendor-react-B1k2FF9f.js";import{a,f as o,p as ee}from"./framework-CoXA0nY6.js";import{d as s}from"./infrastructure-Djv3I7gr.js";import{o as c}from"./vendor-ui-utils-Dyl9EYZi.js";import{Gn as te,Jm as ne,Jn as l,Kn as u,Oj as d,Un as f,Vs as p,Wn as m,ao as h,at as re,it as ie,jj as g,mo as ae,ot as oe,qn as se,um as _,vj as v,xb as y,yb as b,yr as x}from"./ui-components-B7mlp0en.js";import{r as S}from"./utils-DMMB8Xfh.js";import{i as C,n as w,r as T}from"./plugins-views-DqZMtAOw.js";import{n as E}from"./plugin-form-DOfn-uRa.js";import{a as D,o as ce,s as le}from"./index-CPatxDwz.js";var O=e({DashboardView:()=>z}),k=t(n(),1),A=i(),j=[{type:`metric`,label:`KPI Metric`,Icon:h},{type:`bar`,label:`Bar Chart`,Icon:g},{type:`line`,label:`Line Chart`,Icon:d},{type:`pie`,label:`Pie Chart`,Icon:v},{type:`table`,label:`Table`,Icon:p},{type:`grid`,label:`Grid`,Icon:b}],M=0;function N(){return M+=1,`widget_${Date.now()}_${M}`}function P(e){return!e.widgets?.length||!e.widgets.some(e=>!e.id)?e:{...e,widgets:e.widgets.map(e=>e.id?e:{...e,id:N()})}}function F(e){let t=j.find(t=>t.type===e);return t?`New ${t.label}`:`New Widget`}function I(e){return{title:e.title??``,description:e.description??``,type:e.type??`metric`,object:e.object??``,categoryField:e.categoryField??``,valueField:e.valueField??``,aggregate:e.aggregate??`count`,layoutW:e.layout?.w??1,layoutH:e.layout?.h??1,colorVariant:e.colorVariant??`default`,actionUrl:e.actionUrl??``}}function L(e,t){return{title:e.title,description:e.description,type:e.type,object:e.object,categoryField:e.categoryField,valueField:e.valueField,aggregate:e.aggregate,layout:{...t.layout||{},w:e.layoutW,h:e.layoutH},colorVariant:e.colorVariant,actionUrl:e.actionUrl}}function R(e){return{columns:e.columns??3,gap:e.gap??4,rowHeight:String(e.rowHeight??`120`),refreshInterval:String(e.refreshInterval??`0`),title:e.title??``,showDescription:e.showDescription??!0,theme:e.theme??`auto`}}function z({dataSource:e}){let{dashboardName:t}=r(),{showDebug:n}=le(),i=o(),{t:d}=a(),{dashboardLabel:p,dashboardDescription:h}=s(),[g,v]=(0,k.useState)(!0),[b,O]=(0,k.useState)(!1),[M,z]=(0,k.useState)(null),[B,V]=(0,k.useState)(0),[H,U]=(0,k.useState)(null),W=(0,k.useCallback)(e=>{U(t=>(t&&t.resolve(e),null))},[]),ue=(0,k.useCallback)(e=>new Promise(t=>{let n;if(typeof e==`string`){let t=e.match(/^(create|new|add|edit|update)_(.+)$/);if(t){let e=t[1];n={objectName:t[2],mode:e===`edit`||e===`update`?`edit`:`create`}}else n={objectName:e,mode:`create`}}else n=e;U({schema:n,resolve:t})}),[]),de=(0,k.useMemo)(()=>({export_dashboard_pdf:async()=>{c.info(`Preparing PDF export…`);try{return window.print(),{success:!0}}catch(e){return c.error(`Export failed: ${e?.message||String(e)}`),{success:!1,error:e?.message||String(e)}}},forecast_dashboard:async()=>(c.info(`Forecast view coming soon`),{success:!0})}),[]);(0,k.useEffect)(()=>{v(!0),Y(null),O(!1),z(null),queueMicrotask(()=>v(!1))},[t]);let{dashboards:fe,objects:G,refresh:K}=ee(),q=fe?.find(e=>e.name===t),[J,Y]=(0,k.useState)(null);(0,k.useEffect)(()=>{b||Y(null)},[q]);let X=(0,k.useCallback)(async e=>{try{i&&(await i.update(`sys_dashboard`,t,e),K().catch(()=>{}))}catch(e){console.warn(`[DashboardView] Auto-save failed:`,e)}},[i,t,K]),pe=(0,k.useCallback)(()=>{Y(P(q)),O(!0),V(e=>e+1)},[q]),Z=(0,k.useCallback)(()=>{O(!1),z(null)},[]),me=(0,k.useCallback)(e=>{if(!J)return;let t=N(),n={id:t,title:F(e),type:e,layout:{x:0,y:J.widgets?.length??0,w:J.columns??2,h:1}},r={...J,widgets:[...J.widgets||[],n]};Y(r),X(r),z(t),V(e=>e+1)},[J,X]),he=(0,k.useCallback)(e=>{if(!J)return;let t={...J,widgets:J.widgets.filter(t=>t.id!==e)};Y(t),X(t),M===e&&z(null)},[J,M,X]),ge=(0,k.useMemo)(()=>R(J||q),[B]),_e=(0,k.useCallback)(e=>{if(!J)return;let t={...J,columns:e.columns,gap:e.gap,rowHeight:e.rowHeight,refreshInterval:Number(e.refreshInterval)||0,title:e.title,showDescription:e.showDescription,theme:e.theme};Y(t),X(t),V(e=>e+1)},[J,X]),ve=(0,k.useCallback)((e,t)=>{J&&Y(n=>n&&(e===`refreshInterval`?{...n,refreshInterval:Number(t)||0}:{...n,[e]:t}))},[J]),Q=J?.widgets?.find(e=>e.id===M),ye=(0,k.useMemo)(()=>Q?I(Q):{},[M,B]),be=(0,k.useCallback)(e=>{if(!J||!M||!Q)return;let t=L(e,Q),n={...J,widgets:J.widgets.map(e=>e.id===M?{...e,...t}:e)};Y(n),X(n),V(e=>e+1)},[J,M,Q,X]),xe=(0,k.useCallback)((e,t)=>{M&&Y(n=>{if(!n)return n;let r=n.widgets?.find(e=>e.id===M);if(!r)return n;let i=I(r);i[e]=t;let a=L(i,r);return{...n,widgets:n.widgets.map(e=>e.id===M?{...e,...a}:e)}})},[M]),Se=(0,k.useMemo)(()=>{if(G?.length)return G.map(e=>({value:e.name,label:e.label||e.name}))},[G]),Ce=(0,k.useMemo)(()=>{let e=Q?.object;if(!e||!G?.length)return;let t=G.find(t=>t.name===e);if(!t?.fields)return;let n=t.fields;return Array.isArray(n)?n.filter(e=>e.name).map(e=>({value:e.name,label:e.label||e.name})):Object.entries(n).map(([e,t])=>({value:e,label:t.label||e}))},[Q?.object,G]);if(g)return(0,A.jsx)(D,{});if(!q)return(0,A.jsx)(`div`,{className:`h-full flex items-center justify-center p-8`,children:(0,A.jsxs)(ie,{children:[(0,A.jsx)(`div`,{className:`mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted`,children:(0,A.jsx)(y,{className:`h-6 w-6 text-muted-foreground`})}),(0,A.jsx)(oe,{children:`Dashboard Not Found`}),(0,A.jsxs)(re,{children:[`The dashboard "`,t,`" could not be found. It may have been removed or renamed.`]})]})});let $=J||q;return(0,A.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden bg-background`,children:[(0,A.jsxs)(`div`,{className:`flex flex-col sm:flex-row justify-between sm:items-center gap-3 sm:gap-4 p-4 sm:p-6 border-b shrink-0`,children:[(0,A.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,A.jsx)(`h1`,{className:`text-lg sm:text-xl md:text-2xl font-bold tracking-tight truncate`,children:p({name:q.name,label:S(q.label,d)})||q.name}),(()=>{let e=h({name:q.name,description:S(q.description,d)});return e?(0,A.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 line-clamp-2`,children:e}):null})()]}),(0,A.jsxs)(`div`,{className:`shrink-0 flex items-center gap-1.5`,children:[b&&(0,A.jsx)(`div`,{className:`flex items-center gap-1 mr-2`,role:`toolbar`,"aria-label":`Add widgets`,"data-testid":`dashboard-widget-toolbar`,children:j.map(({type:e,label:t,Icon:n})=>(0,A.jsxs)(`button`,{type:`button`,"data-testid":`dashboard-add-${e}`,onClick:()=>me(e),className:`inline-flex items-center gap-1 rounded-md border border-input bg-background px-2 py-1.5 text-[11px] font-medium text-muted-foreground hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,title:`Add ${t}`,"aria-label":`Add ${t} widget`,children:[(0,A.jsx)(_,{className:`h-3 w-3`}),(0,A.jsx)(n,{className:`h-3 w-3`})]},e))}),(0,A.jsxs)(`button`,{type:`button`,onClick:pe,className:`inline-flex items-center gap-1.5 rounded-md border border-input bg-background px-2.5 py-1.5 text-xs font-medium text-muted-foreground shadow-sm hover:bg-accent hover:text-accent-foreground`,"data-testid":`dashboard-edit-button`,children:[(0,A.jsx)(ne,{className:`h-3.5 w-3.5`}),d(`common.edit`,{defaultValue:`Edit`})]})]})]}),(0,A.jsxs)(`div`,{className:`flex-1 overflow-hidden flex flex-col sm:flex-row relative`,children:[(0,A.jsx)(`div`,{className:`flex-1 min-w-0 overflow-auto p-2 sm:p-4 md:p-6`,children:(0,A.jsx)(C,{schema:$,dataSource:e,designMode:b,selectedWidgetId:M,onWidgetClick:z,modalHandler:ue,scriptHandlers:de})}),Q?(0,A.jsx)(w,{open:b,onClose:Z,config:ye,onSave:be,onFieldChange:xe,availableObjects:Se,availableFields:Ce,headerExtra:(0,A.jsx)(x,{size:`sm`,variant:`ghost`,onClick:()=>he(M),className:`h-7 w-7 p-0 text-destructive hover:text-destructive`,"data-testid":`widget-delete-button`,title:`Delete widget`,children:(0,A.jsx)(ae,{className:`h-3.5 w-3.5`})})},M):(0,A.jsx)(T,{open:b,onClose:Z,config:ge,onSave:_e,onFieldChange:ve}),(0,A.jsx)(ce,{open:n,sections:[{title:`Dashboard Configuration`,data:$}]})]}),H&&H.schema?.objectName?(0,A.jsx)(E,{schema:{type:`object-form`,formType:`modal`,objectName:H.schema.objectName,mode:H.schema.mode||`create`,recordId:H.schema.recordId,title:H.schema.title,description:H.schema.description,fields:H.schema.fields,open:!0,onOpenChange:e=>{e||W({success:!1})},onSuccess:e=>{W({success:!0,reload:!0,data:e})},onCancel:()=>{W({success:!1})},showSubmit:!0,showCancel:!0},dataSource:i}):H?(0,A.jsx)(f,{open:!0,onOpenChange:e=>{e||W({success:!1})},children:(0,A.jsxs)(m,{children:[(0,A.jsxs)(se,{children:[(0,A.jsx)(l,{children:H.schema?.title||`Action`}),H.schema?.description&&(0,A.jsx)(te,{children:H.schema.description})]}),(0,A.jsxs)(u,{children:[(0,A.jsx)(x,{variant:`outline`,onClick:()=>W({success:!1}),children:`Cancel`}),(0,A.jsx)(x,{onClick:()=>W({success:!0}),children:`OK`})]})]})}):null]})}export{O as t};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-S-ySWqyJ.js";import{_ as t,f as n,t as r,u as i}from"./vendor-react-B1k2FF9f.js";import{p as a}from"./framework-CoXA0nY6.js";import{c as o}from"./infrastructure-Djv3I7gr.js";import{o as s}from"./vendor-ui-utils-Dyl9EYZi.js";import{$n as c,Cy as l,Jm as u,Rd as d,ar as ee,cI as f,dn as p,er as te,mo as m,um as h,yr as g}from"./ui-components-B7mlp0en.js";import{r as _}from"./index-CPatxDwz.js";import{i as ne,t as v}from"./getIcon-DF6zJOtU.js";import{t as y}from"./MetadataFormDialog-BebGlAr3.js";var b=e(t(),1),x=r();function re({items:e,columns:t,editable:n=!1,saving:r=!1,deletingName:i=null,typeLabel:a=`item`,rowActions:o=[],onItemClick:s,onEdit:c,onDelete:l}){return(0,x.jsx)(`div`,{className:`rounded-lg border bg-card`,"data-testid":`metadata-grid`,children:(0,x.jsx)(`div`,{className:`overflow-x-auto`,children:(0,x.jsxs)(`table`,{className:`w-full text-sm`,"aria-label":`${a} list`,children:[(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{className:`border-b bg-muted/50`,children:[t.map(e=>(0,x.jsx)(`th`,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,style:e.width?{width:e.width}:void 0,children:e.label},e.key)),n&&(0,x.jsx)(`th`,{className:`px-4 py-3 text-right font-medium text-muted-foreground w-24`,children:`Actions`})]})}),(0,x.jsx)(`tbody`,{children:e.map(e=>{let d=String(e.name??``);return(0,x.jsxs)(`tr`,{className:`border-b last:border-0 hover:bg-accent/50 cursor-pointer transition-colors`,"data-testid":`metadata-item-${d}`,onClick:()=>s?.(d),children:[t.map(t=>{let n=String(e[t.key]??`—`);return(0,x.jsx)(`td`,{className:`px-4 py-3 truncate max-w-[200px]`,title:n,children:n},t.key)}),n&&(0,x.jsx)(`td`,{className:`px-4 py-3 text-right`,children:(0,x.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[o.map(t=>(0,x.jsx)(g,{variant:t.variant??`ghost`,size:`icon`,title:t.label,"aria-label":t.label,onClick:n=>{n.stopPropagation(),t.handler?.(e)},"data-testid":`row-action-${t.key}-${d}`,children:(0,x.jsx)(`span`,{className:`text-xs`,children:t.label.charAt(0)})},t.key)),(0,x.jsx)(g,{variant:`ghost`,size:`icon`,title:`Edit ${a}`,onClick:t=>{t.stopPropagation(),c?.(e)},disabled:r,"data-testid":`edit-${d}-btn`,children:(0,x.jsx)(u,{className:`h-4 w-4`})}),(0,x.jsx)(g,{variant:`ghost`,size:`icon`,title:i===d?`Click again to confirm`:`Delete ${a}`,onClick:e=>{e.stopPropagation(),l?.(d)},disabled:r,"data-testid":`delete-${d}-btn`,children:(0,x.jsx)(m,{className:`h-4 w-4 ${i===d?`text-destructive`:``}`})})]})})]},d)})})]})})})}function S(){let e=i(),{appName:t,metadataType:r}=n(),S=t?`/apps/${t}`:``,C=_(),{refresh:w}=a(),{user:ie}=o(),T=ie?.role===`admin`,E=r?ne(r):void 0,[D,O]=(0,b.useState)([]),[k,A]=(0,b.useState)(!0),[j,ae]=(0,b.useState)(``),[M,N]=(0,b.useState)(!1),[P,F]=(0,b.useState)(null),[oe,I]=(0,b.useState)(!1),[L,R]=(0,b.useState)(`create`),[z,B]=(0,b.useState)(null),V=(0,b.useCallback)(async()=>{if(!(!C||!r)){A(!0);try{O((await C.getItems(r)).filter(e=>!e._deleted))}catch{s.error(`Failed to load ${E?.pluralLabel??r}`)}finally{A(!1)}}},[C,r,E?.pluralLabel]);(0,b.useEffect)(()=>{V()},[V]);let H=(0,b.useMemo)(()=>{if(!j.trim())return D;let e=j.toLowerCase();return D.filter(t=>{let n=String(t.name??``).toLowerCase(),r=String(t.label??``).toLowerCase();return n.includes(e)||r.includes(e)})},[D,j]),U=(0,b.useCallback)(async e=>{if(!(!C||!r))if(P===e){N(!0);try{await C.deleteMetadataItem(r,e),O(t=>t.filter(t=>t.name!==e)),await w(),s.success(`${E?.label??`Item`} "${e}" deleted`)}catch{s.error(`Failed to delete "${e}"`)}finally{N(!1),F(null)}}else F(e)},[C,r,P,E?.label,w]),W=(0,b.useCallback)(()=>{B(null),R(`create`),I(!0)},[]),G=(0,b.useCallback)(e=>{B(e),R(`edit`),I(!0)},[]),K=(0,b.useCallback)(async e=>{if(!C||!r)return;let t=e.name??String(z?.name??``);if(t){N(!0);try{let n=L===`edit`?{...z,...e}:{...e};await C.saveMetadataItem(r,t,n),await w(),await V(),s.success(L===`edit`?`${E?.label??`Item`} "${t}" updated`:`${E?.label??`Item`} "${t}" created`)}catch{throw s.error(L===`edit`?`Failed to update "${t}"`:`Failed to create "${t}"`),Error(`Failed to save ${E?.label??`item`} "${t}"`)}finally{N(!1)}}},[C,r,z,L,E?.label,w,V]);if(!E)return(0,x.jsx)(`div`,{className:`flex flex-col gap-4 p-4 sm:p-6`,"data-testid":`metadata-manager-page`,children:(0,x.jsxs)(`div`,{className:`text-center text-muted-foreground py-12`,children:[(0,x.jsxs)(`p`,{className:`text-lg font-medium`,children:[`Unknown metadata type: `,r]}),(0,x.jsx)(g,{variant:`outline`,className:`mt-4`,onClick:()=>e(`${S}/system`),children:`Back to System Settings`})]})});let q=v(E.icon),J=E.editable!==!1&&T,Y=E.listComponent;if(Y)return(0,x.jsxs)(`div`,{className:`flex flex-col gap-4 p-4 sm:p-6`,"data-testid":`metadata-manager-page`,children:[(0,x.jsx)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3`,children:(0,x.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,x.jsx)(g,{variant:`ghost`,size:`icon`,onClick:()=>e(`${S}/system`),"data-testid":`back-to-hub-btn`,children:(0,x.jsx)(f,{className:`h-4 w-4`})}),(0,x.jsx)(`div`,{className:`bg-primary/10 p-2 rounded-md shrink-0`,children:(0,x.jsx)(q,{className:`h-5 w-5 text-primary`})}),(0,x.jsxs)(`div`,{className:`min-w-0`,children:[(0,x.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight`,children:E.pluralLabel}),(0,x.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:E.description})]})]})}),(0,x.jsx)(Y,{config:E,basePath:S,metadataType:r,isAdmin:T})]});let X=(E.actions??[]).filter(e=>e.scope===`page`),Z=(E.actions??[]).filter(e=>e.scope===`row`),Q=E.listMode??`card`,$=Q===`grid`||Q===`table`,se=E.columns??[{key:`name`,label:`Name`},{key:`label`,label:`Label`}];return(0,x.jsxs)(`div`,{className:`flex flex-col gap-4 p-4 sm:p-6`,"data-testid":`metadata-manager-page`,children:[(0,x.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3`,children:[(0,x.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,x.jsx)(g,{variant:`ghost`,size:`icon`,onClick:()=>e(`${S}/system`),"data-testid":`back-to-hub-btn`,children:(0,x.jsx)(f,{className:`h-4 w-4`})}),(0,x.jsx)(`div`,{className:`bg-primary/10 p-2 rounded-md shrink-0`,children:(0,x.jsx)(q,{className:`h-5 w-5 text-primary`})}),(0,x.jsxs)(`div`,{className:`min-w-0`,children:[(0,x.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight`,children:E.pluralLabel}),(0,x.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:E.description})]})]}),J&&(0,x.jsxs)(g,{onClick:W,"data-testid":`create-metadata-btn`,children:[(0,x.jsx)(h,{className:`mr-2 h-4 w-4`}),`New `,E.label]}),X.length>0&&(0,x.jsx)(`div`,{className:`flex items-center gap-2`,children:X.map(e=>(0,x.jsx)(g,{variant:e.variant??`outline`,onClick:()=>e.handler?.(),"data-testid":`page-action-${e.key}`,children:e.label},e.key))})]}),(0,x.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-start sm:items-center gap-2`,children:[(0,x.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,x.jsxs)(`label`,{htmlFor:`metadata-search`,className:`sr-only`,children:[`Search `,E.pluralLabel.toLowerCase()]}),(0,x.jsx)(d,{className:`pointer-events-none absolute left-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`,"aria-hidden":`true`}),(0,x.jsx)(p,{id:`metadata-search`,placeholder:`Search ${E.pluralLabel.toLowerCase()}...`,value:j,onChange:e=>ae(e.target.value),className:`pl-8`,"data-testid":`metadata-search-input`})]}),(0,x.jsxs)(ee,{variant:`secondary`,"data-testid":`metadata-count-badge`,children:[H.length,` `,E.pluralLabel.toLowerCase()]})]}),k&&(0,x.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,role:`status`,"aria-live":`polite`,"data-testid":`metadata-loading`,children:[(0,x.jsx)(l,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`}),`Loading `,E.pluralLabel.toLowerCase(),`...`]}),M&&(0,x.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,role:`status`,"aria-live":`polite`,"data-testid":`metadata-saving`,children:[(0,x.jsx)(l,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`}),`Saving...`]}),!k&&H.length===0&&(0,x.jsx)(`div`,{className:`text-center text-muted-foreground py-12`,"data-testid":`metadata-empty`,children:(0,x.jsxs)(`p`,{children:[`No `,E.pluralLabel.toLowerCase(),` found.`]})}),!k&&H.length>0&&!$&&(0,x.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:H.map(t=>{let n=String(t.name??``),i=String(t.label??t.name??``),a=String(t.description??``);return(0,x.jsx)(c,{className:`transition-colors hover:bg-accent/50 cursor-pointer`,"data-testid":`metadata-item-${n}`,onClick:()=>e(`${S}/system/metadata/${r}/${n}`),children:(0,x.jsxs)(te,{className:`flex items-center justify-between p-4`,children:[(0,x.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,x.jsx)(`p`,{className:`font-medium truncate`,children:i}),(0,x.jsx)(`p`,{className:`text-xs text-muted-foreground truncate`,children:n}),a&&(0,x.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1 truncate`,children:a})]}),J&&(0,x.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0 ml-2`,children:[Z.map(e=>(0,x.jsx)(g,{variant:e.variant??`ghost`,size:`icon`,title:e.label,onClick:n=>{n.stopPropagation(),e.handler?.(t)},"data-testid":`row-action-${e.key}-${n}`,children:(0,x.jsx)(`span`,{className:`text-xs`,children:e.label.charAt(0)})},e.key)),(0,x.jsx)(g,{variant:`ghost`,size:`icon`,title:`Edit ${E.label.toLowerCase()}`,onClick:e=>{e.stopPropagation(),G(t)},disabled:M,"data-testid":`edit-${n}-btn`,children:(0,x.jsx)(u,{className:`h-4 w-4`})}),(0,x.jsx)(g,{variant:`ghost`,size:`icon`,title:P===n?`Click again to confirm`:`Delete ${E.label.toLowerCase()}`,onClick:e=>{e.stopPropagation(),U(n)},disabled:M,"data-testid":`delete-${n}-btn`,children:(0,x.jsx)(m,{className:`h-4 w-4 ${P===n?`text-destructive`:``}`})})]})]})},n)})}),!k&&H.length>0&&$&&(0,x.jsx)(re,{items:H,columns:se,editable:J,saving:M,deletingName:P,typeLabel:E.label.toLowerCase(),rowActions:Z,onItemClick:t=>e(`${S}/system/metadata/${r}/${t}`),onEdit:G,onDelete:U}),J&&(0,x.jsx)(y,{open:oe,onOpenChange:I,mode:L,typeLabel:E.label,formFields:E.formFields,initialValues:z??void 0,onSubmit:K})]})}export{S as MetadataManagerPage};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-S-ySWqyJ.js";import{_ as t,t as n}from"./vendor-react-B1k2FF9f.js";import{c as r,r as i}from"./infrastructure-Djv3I7gr.js";import{$n as a,IA as o,TA as s,ar as c,cr as l,dn as u,er as d,fn as f,lr as p,nr as m,or as h,py as g,ra as _,rr as v,sr as y,tr as b,ur as x,yr as S}from"./ui-components-B7mlp0en.js";var C=e(t(),1),w=n();function T(){let{user:e,updateUser:t,isLoading:n}=r(),[T,E]=(0,C.useState)(e?.name??``),[D,O]=(0,C.useState)(!1),[k,A]=(0,C.useState)(null);return e?(0,w.jsxs)(`div`,{className:`flex flex-col gap-4 sm:gap-6 p-4 sm:p-6 max-w-2xl`,children:[(0,w.jsxs)(`div`,{className:`min-w-0`,children:[(0,w.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight`,children:`Profile`}),(0,w.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`Manage your account settings`})]}),(0,w.jsx)(a,{children:(0,w.jsx)(d,{className:`pt-6`,children:(0,w.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,w.jsxs)(h,{className:`h-16 w-16`,children:[(0,w.jsx)(l,{src:e.image??void 0,alt:e.name??`User`}),(0,w.jsx)(y,{className:`text-lg bg-primary text-primary-foreground`,children:i(e)})]}),(0,w.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,w.jsx)(`p`,{className:`text-lg font-semibold truncate`,children:e.name??`User`}),(0,w.jsx)(`p`,{className:`text-sm text-muted-foreground truncate`,children:e.email}),(0,w.jsx)(c,{variant:`secondary`,className:`mt-1`,children:e.role??`member`})]})]})})}),(0,w.jsxs)(a,{children:[(0,w.jsxs)(m,{children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(_,{className:`h-4 w-4 text-muted-foreground`}),(0,w.jsx)(v,{className:`text-base sm:text-lg`,children:`Personal Information`})]}),(0,w.jsx)(b,{children:`Update your name and view account details`})]}),(0,w.jsx)(d,{children:(0,w.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault(),A(null),O(!1);try{await t({name:T}),O(!0)}catch(e){A(e instanceof Error?e.message:String(e))}},className:`space-y-4`,children:[k&&(0,w.jsxs)(p,{variant:`destructive`,children:[(0,w.jsx)(o,{className:`h-4 w-4`}),(0,w.jsx)(x,{children:k})]}),D&&(0,w.jsxs)(p,{children:[(0,w.jsx)(s,{className:`h-4 w-4 text-green-600`}),(0,w.jsx)(x,{className:`text-green-800 dark:text-green-400`,children:`Profile updated successfully.`})]}),(0,w.jsxs)(`div`,{className:`space-y-2`,children:[(0,w.jsx)(f,{htmlFor:`profile-name`,children:`Name`}),(0,w.jsx)(u,{id:`profile-name`,type:`text`,value:T,onChange:e=>E(e.target.value),required:!0,"aria-required":`true`,disabled:n})]}),(0,w.jsxs)(`div`,{className:`space-y-2`,children:[(0,w.jsx)(f,{htmlFor:`profile-email`,children:`Email`}),(0,w.jsx)(u,{id:`profile-email`,type:`email`,value:e.email,disabled:!0,className:`bg-muted text-muted-foreground`}),(0,w.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Email cannot be changed.`})]}),(0,w.jsxs)(`div`,{className:`space-y-2`,children:[(0,w.jsx)(f,{children:`Role`}),(0,w.jsx)(u,{type:`text`,value:e.role??`member`,disabled:!0,className:`bg-muted text-muted-foreground`})]}),(0,w.jsx)(S,{type:`submit`,disabled:n,className:`w-full sm:w-auto`,children:n?`Saving...`:`Save Changes`})]})})]}),(0,w.jsx)(a,{children:(0,w.jsxs)(m,{children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(g,{className:`h-4 w-4 text-muted-foreground`}),(0,w.jsx)(v,{className:`text-base sm:text-lg`,children:`Change Password`})]}),(0,w.jsx)(b,{children:`To change your password, use the password reset flow from the login page.`})]})})]}):null}export{T as ProfilePage};
@@ -1 +0,0 @@
1
- import{n as e,r as t}from"./rolldown-runtime-S-ySWqyJ.js";import{_ as n,f as r,t as i,u as a}from"./vendor-react-B1k2FF9f.js";import{a as o,g as s}from"./framework-CoXA0nY6.js";import{c,u as l}from"./infrastructure-Djv3I7gr.js";import{o as u}from"./vendor-ui-utils-Dyl9EYZi.js";import{$t as d,Gn as f,Jn as p,Kn as m,OD as h,Qt as g,Un as _,Wn as v,_r as y,at as b,dn as x,dr as S,ea as C,en as w,fn as T,fr as E,gr as D,hr as O,it as ee,mr as k,nn as te,ot as ne,pr as A,pt as j,qn as M,tn as N,vr as P,yr as F}from"./ui-components-B7mlp0en.js";import{n as re}from"./utils-DMMB8Xfh.js";import{a as ie,o as ae}from"./plugins-views-DqZMtAOw.js";import{i as oe,o as se,s as ce}from"./index-CPatxDwz.js";var I=t(n(),1),L=i(),R=(0,I.createContext)(void 0);function z({children:e}){let[t,n]=(0,I.useState)(`home`),[r,i]=(0,I.useState)(),[a,o]=(0,I.useState)(),s=(0,I.useMemo)(()=>({context:t,setContext:n,currentAppName:r,setCurrentAppName:i,recordTitle:a,setRecordTitle:o}),[t,r,a]);return(0,L.jsx)(R.Provider,{value:s,children:e})}function B(){return(0,I.useContext)(R)||{context:`app`,setContext:()=>{},currentAppName:void 0,setCurrentAppName:()=>{},recordTitle:void 0,setRecordTitle:()=>{}}}function le(e){let{setRecordTitle:t}=B();(0,I.useEffect)(()=>(t(e),()=>t(void 0)),[e,t])}function V(e){let{url:t,channel:n,autoReconnect:r=!0,reconnectInterval:i=1e3,maxReconnectAttempts:a=10,authToken:o}=e,[s,c]=(0,I.useState)(`disconnected`),[l,u]=(0,I.useState)(null),[d,f]=(0,I.useState)([]),[p,m]=(0,I.useState)(null),h=(0,I.useRef)(null),g=(0,I.useRef)(0),_=(0,I.useRef)(null),v=(0,I.useRef)(new Map),y=(0,I.useRef)([]),b=(0,I.useRef)(!0),x=(0,I.useRef)(!1),S=(0,I.useCallback)(()=>{_.current!==null&&(clearTimeout(_.current),_.current=null)},[]),C=(0,I.useCallback)(e=>{for(;y.current.length>0;){let t=y.current.shift(),r={type:t.type,channel:n,data:t.data,timestamp:new Date().toISOString()};e.send(JSON.stringify(r))}},[n]),w=(0,I.useCallback)(()=>{if(typeof WebSocket>`u`){m(Error(`WebSocket is not available in this environment`)),c(`error`);return}if(!t){m(Error(`WebSocket URL is required`)),c(`error`);return}try{let e=new URL(t);if(e.protocol!==`ws:`&&e.protocol!==`wss:`){m(Error(`WebSocket URL must use ws: or wss: protocol`)),c(`error`);return}}catch{m(Error(`Invalid WebSocket URL`)),c(`error`);return}h.current&&=(x.current=!0,h.current.close(),null),x.current=!1,c(`connecting`),m(null);let e=o?`${t}?token=${encodeURIComponent(o)}&channel=${encodeURIComponent(n)}`:`${t}?channel=${encodeURIComponent(n)}`,s;try{s=new WebSocket(e)}catch(e){if(!b.current)return;m(e instanceof Error?e:Error(`Failed to create WebSocket connection`)),c(`error`);return}h.current=s,s.onopen=()=>{b.current&&(c(`connected`),m(null),g.current=0,C(s))},s.onmessage=e=>{if(b.current)try{let t=JSON.parse(String(e.data));if(t.channel!==n)return;u(t),f(e=>[...e,t]);let r=v.current.get(t.type);r&&r.forEach(e=>e(t.data))}catch{}},s.onerror=()=>{b.current&&(m(Error(`WebSocket connection error`)),c(`error`))},s.onclose=()=>{if(b.current){if(h.current=null,x.current){c(`disconnected`);return}if(r&&g.current<a){c(`reconnecting`);let e=Math.min(i*2**g.current,3e4);g.current+=1,_.current=setTimeout(()=>{b.current&&w()},e)}else c(`disconnected`)}}},[t,n,o,r,i,a,C]),T=(0,I.useCallback)(()=>{S(),x.current=!0,g.current=0,h.current&&=(h.current.close(),null),c(`disconnected`)},[S]),E=(0,I.useCallback)(()=>{S(),g.current=0,w()},[w,S]),D=(0,I.useCallback)((e,t)=>{let r=h.current;if(r&&r.readyState===WebSocket.OPEN){let i={type:e,channel:n,data:t,timestamp:new Date().toISOString()};r.send(JSON.stringify(i))}else y.current.push({type:e,data:t})},[n]),O=(0,I.useCallback)((e,t)=>(v.current.has(e)||v.current.set(e,new Set),v.current.get(e).add(t),()=>{let n=v.current.get(e);n&&(n.delete(t),n.size===0&&v.current.delete(e))}),[]);return(0,I.useEffect)(()=>(b.current=!0,t&&w(),()=>{b.current=!1,S(),x.current=!0,h.current&&=(h.current.close(),null)}),[t,n,o]),{connectionState:s,isConnected:s===`connected`,lastMessage:l,messages:d,send:D,subscribe:O,disconnect:T,reconnect:E,error:p}}var H=0;function U(){return H+=1,`conflict-${Date.now()}-${H}`}var W=0;function G(){return W+=1,`ver-${Date.now()}-${W}`}function K(e,t,n){let[r,i]=(0,I.useState)([]),[a,o]=(0,I.useState)([]);return{versions:r,currentVersion:(0,I.useMemo)(()=>r.length===0?0:r[r.length-1].version,[r]),conflicts:a,hasConflicts:a.length>0,recordVersion:(0,I.useCallback)((n,r)=>{i(i=>{let a=i.length===0?1:i[i.length-1].version+1,o={id:G(),version:a,timestamp:new Date().toISOString(),userId:e,userName:t,changes:n,message:r};return[...i,o]})},[e,t]),resolveConflict:(0,I.useCallback)((n,r,a)=>{o(o=>{let s=o.find(e=>e.id===n);if(!s)return o;let c;switch(r){case`local`:c=s.localValue;break;case`remote`:c=s.remoteValue;break;case`merge`:c=a??s.localValue;break}return i(n=>{let i=n.length===0?1:n[n.length-1].version+1,a={id:G(),version:i,timestamp:new Date().toISOString(),userId:e,userName:t,changes:{[s.field]:{before:s.baseValue,after:c}},message:`Resolved conflict on "${s.field}" using ${r} strategy`};return[...n,a]}),o.filter(e=>e.id!==n)})},[e,t]),resolveAllConflicts:(0,I.useCallback)(n=>{o(r=>{if(r.length===0)return r;let a={};for(let e of r)a[e.field]={before:e.baseValue,after:n===`local`?e.localValue:e.remoteValue};return i(r=>{let i=r.length===0?1:r[r.length-1].version+1,o={id:G(),version:i,timestamp:new Date().toISOString(),userId:e,userName:t,changes:a,message:`Resolved all conflicts using ${n} strategy`};return[...r,o]}),[]})},[e,t]),revertToVersion:(0,I.useCallback)(n=>{let a=r.findIndex(e=>e.id===n);if(a===-1)return null;let o={};for(let e=0;e<=a;e++){let t=r[e];for(let[e,n]of Object.entries(t.changes))o[e]=n.after}let s={},c={};for(let e of r)for(let[t,n]of Object.entries(e.changes))c[t]=n.after;for(let[e,t]of Object.entries(o))c[e]!==t&&(s[e]={before:c[e],after:t});return Object.keys(s).length>0&&i(n=>{let i=n.length===0?1:n[n.length-1].version+1,o={id:G(),version:i,timestamp:new Date().toISOString(),userId:e,userName:t,changes:s,message:`Reverted to version ${r[a].version}`};return[...n,o]}),o},[r,e,t]),compareVersions:(0,I.useCallback)((e,t)=>{let n=r.findIndex(t=>t.id===e),i=r.findIndex(e=>e.id===t);if(n===-1||i===-1)return null;let[a,o]=n<i?[n,i]:[i,n],s=e=>{let t={};for(let n=0;n<=e;n++)for(let[e,i]of Object.entries(r[n].changes))t[e]=i.after;return t},c=s(a),l=s(o),u=new Set([...Object.keys(c),...Object.keys(l)]),d={};for(let e of u){let t=c[e],n=l[e];t!==n&&(d[e]={before:t,after:n})}return d},[r]),addConflict:(0,I.useCallback)(e=>{let t={...e,id:U()};o(e=>[...e,t])},[]),clearHistory:(0,I.useCallback)(()=>{i([]),o([])},[])}}var q={sm:24,md:32,lg:40},J={active:`#22c55e`,idle:`#f59e0b`,away:`#94a3b8`};function Y(e){return e.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)}function X({users:e,maxVisible:t=5,size:n=`md`,showStatus:r=!0,className:i}){let a=q[n],o=Math.round(a*.3),s=Math.round(a*.35),c=Math.max(8,Math.round(a*.28)),l=(0,I.useMemo)(()=>e.slice(0,t),[e,t]),u=Math.max(0,e.length-t),d={display:`inline-flex`,alignItems:`center`,flexDirection:`row-reverse`,fontFamily:`-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`},f={width:`${a}px`,height:`${a}px`,borderRadius:`50%`,border:`2px solid #fff`,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:`${s}px`,fontWeight:600,color:`#fff`,position:`relative`,flexShrink:0,overflow:`hidden`,boxSizing:`border-box`},p={...f,backgroundColor:`#e2e8f0`,color:`#475569`,marginLeft:`-${o}px`},m={position:`absolute`,bottom:`-1px`,right:`-1px`,width:`${c}px`,height:`${c}px`,borderRadius:`50%`,border:`2px solid #fff`,boxSizing:`border-box`},h=(0,I.useMemo)(()=>[...l].reverse(),[l]);return I.createElement(`div`,{style:d,className:i,role:`group`,"aria-label":`${e.length} user${e.length===1?``:`s`} present`},u>0&&I.createElement(`div`,{key:`overflow`,style:p,title:`${u} more user${u===1?``:`s`}`},`+${u}`),h.map((e,t)=>I.createElement(`div`,{key:e.userId,style:{...f,backgroundColor:e.color,marginLeft:t>0||u>0?`-${o}px`:`0`},title:`${e.userName} (${e.status})`},e.avatar?I.createElement(`img`,{src:e.avatar,alt:e.userName,style:{width:`100%`,height:`100%`,objectFit:`cover`}}):Y(e.userName),r&&I.createElement(`span`,{style:{...m,backgroundColor:J[e.status]}}))))}function Z({state:e,onOpenChange:t}){let n=()=>{e.resolve?.(!0),t(!1)},r=()=>{e.resolve?.(!1),t(!1)};return(0,L.jsx)(S,{open:e.open,onOpenChange:e=>{e||r()},children:(0,L.jsxs)(k,{children:[(0,L.jsxs)(y,{children:[(0,L.jsx)(P,{children:e.options?.title||`Confirm Action`}),(0,L.jsx)(O,{children:e.message})]}),(0,L.jsxs)(D,{children:[(0,L.jsx)(A,{onClick:r,children:e.options?.cancelText||`Cancel`}),(0,L.jsx)(E,{onClick:n,children:e.options?.confirmText||`Continue`})]})]})})}function ue({state:e,onOpenChange:t}){let[n,r]=(0,I.useState)({}),[i,a]=(0,I.useState)({});(0,I.useEffect)(()=>{if(e.open){let t={};for(let n of e.params)n.defaultValue!==void 0&&(t[n.name]=n.defaultValue);r(t),a({})}},[e.open,e.params]);let o=e=>e==null?!0:typeof e==`string`?e.trim()===``:Array.isArray(e)?e.length===0:!1,s=()=>{let r={};for(let t of e.params)t.required&&o(n[t.name])&&(r[t.name]=!0);if(Object.keys(r).length>0){a(r);return}e.resolve?.(n),t(!1)},c=()=>{e.resolve?.(null),t(!1)},l=(e,t)=>{r(n=>({...n,[e]:t})),a(t=>({...t,[e]:!1}))};return(0,L.jsx)(_,{open:e.open,onOpenChange:e=>{e||c()},children:(0,L.jsxs)(v,{children:[(0,L.jsxs)(M,{children:[(0,L.jsx)(p,{children:`Action Parameters`}),(0,L.jsx)(f,{children:`Please provide the required information to continue.`})]}),(0,L.jsx)(`div`,{className:`grid gap-4 py-4`,children:e.params.map(e=>(0,L.jsxs)(`div`,{className:`grid gap-2`,children:[(0,L.jsxs)(T,{htmlFor:e.name,children:[e.label,e.required&&(0,L.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),e.type===`select`&&e.options?(0,L.jsxs)(g,{value:n[e.name]??``,onValueChange:t=>l(e.name,t),children:[(0,L.jsx)(N,{id:e.name,className:i[e.name]?`border-destructive`:``,children:(0,L.jsx)(te,{placeholder:e.placeholder||`Select ${e.label}`})}),(0,L.jsx)(d,{children:e.options.map(e=>(0,L.jsx)(w,{value:e.value,children:e.label},e.value))})]}):e.type===`textarea`?(0,L.jsx)(j,{id:e.name,value:n[e.name]??``,onChange:t=>l(e.name,t.target.value),placeholder:e.placeholder,className:i[e.name]?`border-destructive`:``}):e.type===`number`?(0,L.jsx)(x,{id:e.name,type:`number`,value:n[e.name]??``,onChange:t=>l(e.name,t.target.value===``?void 0:t.target.valueAsNumber),placeholder:e.placeholder,className:i[e.name]?`border-destructive`:``}):(0,L.jsx)(x,{id:e.name,type:[`email`,`url`,`date`,`datetime-local`,`time`,`password`].includes(e.type)?e.type:`text`,value:n[e.name]??``,onChange:t=>l(e.name,t.target.value),placeholder:e.placeholder,className:i[e.name]?`border-destructive`:``}),i[e.name]&&(0,L.jsxs)(`p`,{className:`text-xs text-destructive`,children:[e.label,` is required`]}),e.helpText&&(0,L.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.helpText})]},e.name))}),(0,L.jsxs)(m,{children:[(0,L.jsx)(F,{variant:`outline`,onClick:c,children:`Cancel`}),(0,L.jsx)(F,{onClick:s,children:`Confirm`})]})]})})}var Q=e({RecordDetailView:()=>$}),de={id:`current-user`,name:`Demo User`};function $({dataSource:e,objects:t,onEdit:n}){let{objectName:i,recordId:d}=r(),{showDebug:f}=ce(),{user:p}=c(),m=a(),{t:g}=o(),[_,v]=(0,I.useState)(!0),[y,x]=(0,I.useState)([]),[S,w]=(0,I.useState)([]),[T,E]=(0,I.useState)(0),[D,O]=(0,I.useState)({}),[k,te]=(0,I.useState)(),A=t.find(e=>e.name===i);le(k);let j=d,[M,N]=(0,I.useState)({open:!1,message:``}),[P,F]=(0,I.useState)({open:!1,params:[]}),R=(0,I.useCallback)((e,t)=>new Promise(n=>{N({open:!0,message:e,options:t,resolve:n})}),[]),z=(0,I.useCallback)(e=>new Promise(t=>{F({open:!0,params:e,resolve:t})}),[]),B=(0,I.useCallback)((e,t)=>{t?.type===`error`?u.error(e):u.success(e)},[]),V=(0,I.useCallback)((e,t)=>{t?.external||t?.newTab?window.open(e,`_blank`,`noopener,noreferrer`):m(e)},[m]),H=(0,I.useCallback)(async t=>{try{let n=t.target||t.name,r=t.params||{};switch(n){case`opportunity_change_stage`:await e.update(i,j,{stage:r.new_stage});break;case`opportunity_mark_won`:await e.update(i,j,{stage:`closed_won`});break;case`opportunity_mark_lost`:await e.update(i,j,{stage:`closed_lost`,loss_reason:r.loss_reason});break;default:Object.keys(r).length>0&&await e.update(i,j,r);break}let a=t.refreshAfter===!0;return a&&E(e=>e+1),{success:!0,reload:a}}catch(e){return{success:!1,error:e.message}}},[e,i,j]),U=(0,I.useMemo)(()=>l(),[]),W=(0,I.useCallback)(async e=>{let t=e.target||e.name;if(!t)return{success:!1,error:`No flow target provided for flow action`};try{let n=await U(`https://demo.objectstack.ai/api/v1/automation/${encodeURIComponent(t)}/trigger`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({recordId:j,objectName:i,params:e.params??{}})}),r=await n.json().catch(()=>null);if(!n.ok||r&&r.success===!1)return{success:!1,error:r?.error||`Flow "${t}" failed (HTTP ${n.status})`};let a=e.refreshAfter!==!1;return a&&E(e=>e+1),{success:!0,data:r?.data,reload:a}}catch(e){return{success:!1,error:e.message}}},[U,j,i]),G=(0,I.useCallback)(async e=>{let t=e.target||e.name;if(!t)return{success:!1,error:`No action target provided`};let n=e.params&&!Array.isArray(e.params)?e.params:{};try{let r=e.objectName||i||`global`,a=await U(`https://demo.objectstack.ai/api/v1/actions/${encodeURIComponent(r)}/${encodeURIComponent(t)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({recordId:j,params:n})}),o=await a.json().catch(()=>null);if(!a.ok||o&&o.success===!1)return{success:!1,error:o?.error||`Action "${t}" failed (HTTP ${a.status})`};let s=e.refreshAfter!==!1;return s&&E(e=>e+1),{success:!0,data:o?.data,reload:s}}catch(e){return{success:!1,error:e.message}}},[U,j,i]),K=(0,I.useMemo)(()=>{if(!A||!t)return[];let e=[];for(let n of t)if(n.name!==A.name)for(let[t,r]of Object.entries(n.fields||{}))r&&(r.type===`lookup`||r.type===`master_detail`)&&(r.reference_to||r.reference)===A.name&&e.push({childObject:n.name,childLabel:n.label||n.name,referenceField:t});return e},[A,t]);(0,I.useEffect)(()=>{if(!e||!j||K.length===0)return;let t=!1;return Promise.all(K.map(({childObject:t,referenceField:n})=>e.find(t,{$filter:{[n]:j}}).then(e=>({childObject:t,items:Array.isArray(e)?e:e?.data||[]})).catch(e=>(console.warn(`[RecordDetailView] Failed to fetch related ${t}:`,e),{childObject:t,items:[]})))).then(e=>{if(t)return;let n={};for(let{childObject:t,items:r}of e)n[t]=r;O(n)}),()=>{t=!0}},[e,j,K]);let q=p?{id:p.id,name:p.name,avatar:p.image}:de;(0,I.useEffect)(()=>{if(!e||!i||!j)return;let t=`${i}:${j}`;e.find(`sys_presence`,{$filter:{recordId:j}}).then(e=>{e.data?.length&&w(e.data)}).catch(()=>{}),e.find(`sys_comment`,{$filter:{threadId:t},$orderby:{createdAt:`asc`}}).then(e=>{e.data?.length&&x(e.data.map(e=>({id:e.id,type:`comment`,actor:e.author?.name??`Unknown`,actorAvatarUrl:e.author?.avatar,body:e.content,createdAt:e.createdAt,updatedAt:e.updatedAt,parentId:e.parentId,reactions:e.reactions?Object.entries(e.reactions).map(([e,t])=>({emoji:e,count:t.length,reacted:t.includes(q.id)})):void 0})))}).catch(()=>{})},[e,i,j,q]);let J=(0,I.useCallback)(async t=>{let n={id:crypto.randomUUID(),type:`comment`,actor:q.name,actorAvatarUrl:`avatar`in q?q.avatar:void 0,body:t,createdAt:new Date().toISOString()};if(x(e=>[...e,n]),e){let r=`${i}:${j}`;e.create(`sys_comment`,{id:n.id,threadId:r,author:q,content:t,mentions:[],createdAt:n.createdAt}).catch(()=>{})}},[q,e,i,j]),Y=(0,I.useCallback)(async(t,n)=>{let r={id:crypto.randomUUID(),type:`comment`,actor:q.name,actorAvatarUrl:`avatar`in q?q.avatar:void 0,body:n,createdAt:new Date().toISOString(),parentId:t};if(x(e=>[...e,r].map(e=>e.id===t?{...e,replyCount:(e.replyCount??0)+1}:e)),e){let a=`${i}:${j}`;e.create(`sys_comment`,{id:r.id,threadId:a,author:q,content:n,mentions:[],createdAt:r.createdAt,parentId:t}).catch(()=>{})}},[q,e,i,j]),Q=(0,I.useCallback)((t,n)=>{x(r=>r.map(r=>{if(r.id!==t)return r;let i=[...r.reactions??[]],a=i.findIndex(e=>e.emoji===n);if(a>=0){let e=i[a];e.reacted?e.count<=1?i.splice(a,1):i[a]={...e,count:e.count-1,reacted:!1}:i[a]={...e,count:e.count+1,reacted:!0}}else i.push({emoji:n,count:1,reacted:!0});let o={...r,reactions:i};return e&&e.update(`sys_comment`,String(t),{$toggleReaction:{emoji:n,userId:q.id}}).catch(()=>{}),o}))},[q.id,e]);(0,I.useEffect)(()=>{v(!0),queueMicrotask(()=>v(!1))},[i,d]);let $=(0,I.useMemo)(()=>{if(!A)return{type:`detail-view`};let e=A.primaryField||Object.keys(A.fields||{}).find(e=>e===`name`||e===`title`),n=A.views?.form?.sections,r=n&&n.length>0?n.map(e=>({title:e.title,collapsible:e.collapsible,defaultCollapsed:e.defaultCollapsed,fields:(e.fields||[]).map(e=>{let t=typeof e==`string`?e:e.name,n=A.fields[t];if(!n)return console.warn(`[RecordDetailView] Field "${t}" not found in ${A.name} definition`),{name:t,label:t};let r=n.reference_to||n.reference;return{name:t,label:n.label||t,type:n.type||`text`,...n.options&&{options:n.options},...r&&{reference_to:r},...n.reference_field&&{reference_field:n.reference_field},...n.currency&&{currency:n.currency}}})})):[{showBorder:!1,fields:Object.keys(A.fields||{}).map(e=>{let t=A.fields[e],n=t.reference_to||t.reference;return{name:e,label:t.label||e,type:t.type||`text`,...t.options&&{options:t.options},...n&&{reference_to:n},...t.reference_field&&{reference_field:t.reference_field},...t.currency&&{currency:t.currency}}})}],i=(()=>{let e=new Set;return(A.actions||[]).filter(t=>t.locations?.includes(`record_header`)?t.name?e.has(t.name)?!1:(e.add(t.name),!0):!0:!1)})(),a=A.views?.detail?.highlightFields??[],o=A.views?.detail?.sectionGroups??A.views?.form?.sectionGroups,s=K.map(({childObject:e,childLabel:n,referenceField:r})=>{let i=t.find(t=>t.name===e);return{title:n,type:`table`,api:e,data:D[e]||[],referenceField:r,icon:i?.icon}});return{type:`detail-view`,objectName:A.name,resourceId:j,showBack:!0,onBack:`history`,showEdit:!0,title:A.label,primaryField:e,sections:r,autoTabs:!0,autoDiscoverRelated:!0,...s.length>0&&{related:s},...a.length>0&&{highlightFields:a},...o&&o.length>0&&{sectionGroups:o},...i.length>0&&{actions:[{type:`action:bar`,location:`record_header`,actions:i}]}}},[A?.name,j,D,T]);return _?(0,L.jsx)(oe,{}):A?(0,L.jsxs)(`div`,{className:`h-full bg-background overflow-hidden flex flex-col relative`,children:[(0,L.jsx)(`div`,{className:`absolute top-2 sm:top-4 right-2 sm:right-4 z-50 flex items-center gap-2`,children:S.length>0&&(0,L.jsxs)(`div`,{className:`flex items-center gap-1.5`,title:`Users viewing this record`,children:[(0,L.jsx)(C,{className:`h-3.5 w-3.5 text-muted-foreground`}),(0,L.jsx)(X,{users:S,size:`sm`,maxVisible:4,showStatus:!0})]})}),(0,L.jsxs)(`div`,{className:`flex-1 overflow-hidden flex flex-row`,children:[(0,L.jsx)(`div`,{className:`flex-1 overflow-auto p-3 sm:p-4 lg:p-6 scroll-pb-48`,children:(0,L.jsx)(s,{context:{record:{},objectName:i,user:q},onConfirm:R,onToast:B,onNavigate:V,onParamCollection:z,handlers:{api:H,flow:W,script:G,modal:G},children:(0,L.jsx)(ae,{schema:$,dataSource:e,objectLabel:A.label,onDataLoaded:e=>{if(!e||typeof e!=`object`)return;let t=re(A,e);t&&t!==k&&t!==`Untitled`&&te(t)},onEdit:()=>{n({id:j})},discussionSlot:(0,L.jsx)(ie,{config:{position:`bottom`,collapsible:!1,feed:{enableReactions:!0,enableThreading:!0,showCommentInput:!0}},items:y,onAddComment:J,onAddReply:Y,onToggleReaction:Q})},T)})}),(0,L.jsx)(se,{open:f,sections:[{title:`View Schema`,data:$}]})]}),(0,L.jsx)(Z,{state:M,onOpenChange:e=>{e||N(e=>({...e,open:!1}))}}),(0,L.jsx)(ue,{state:P,onOpenChange:e=>{e||F(e=>({...e,open:!1}))}})]}):(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center p-4`,children:(0,L.jsxs)(ee,{children:[(0,L.jsx)(`div`,{className:`mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted`,children:(0,L.jsx)(h,{className:`h-6 w-6 text-muted-foreground`})}),(0,L.jsx)(ne,{children:`Object Not Found`}),(0,L.jsxs)(b,{children:[`Object "`,i,`" definition missing. Check your configuration or navigate back to select a valid object.`]})]})})}export{K as a,B as c,X as i,ue as n,V as o,Z as r,z as s,Q as t};