@object-ui/plugin-detail 11.0.0 → 11.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/dist/index.js +18 -7
- package/dist/index.umd.cjs +1 -1
- package/dist/synth/buildDefaultPageSchema.d.ts +16 -1
- package/dist/synth/buildDefaultPageSchema.d.ts.map +1 -1
- package/package.json +13 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# @object-ui/plugin-detail
|
|
2
2
|
|
|
3
|
+
## 11.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 32dbd6a: feat(detail): `relatedLayout: 'tabs'` — surface related tables as peer tabs via config
|
|
8
|
+
|
|
9
|
+
Record detail pages can now show each related table as its own top-level tab
|
|
10
|
+
instead of stacking them all inside a single **Related** tab — no custom page
|
|
11
|
+
required. Set `detail.relatedLayout: 'tabs'` on the object; the synthesized
|
|
12
|
+
record page then emits one tab per related list (label = the related list's
|
|
13
|
+
`title`, falling back to its `objectName`, carrying its `icon`), slotted between
|
|
14
|
+
the **Details** tab and **Activity** / **History**.
|
|
15
|
+
|
|
16
|
+
- `buildDefaultPageSchema` (`@object-ui/plugin-detail`): new
|
|
17
|
+
`BuildPageOptions.relatedLayout?: 'stack' | 'tabs'` threaded through
|
|
18
|
+
`buildDefaultTabs` (the single choke point for the related-tab emission).
|
|
19
|
+
`'tabs'` fans the related children out into peer tabs; `'stack'` (default)
|
|
20
|
+
keeps the legacy single **Related** tab — **zero regression** when omitted.
|
|
21
|
+
Still honours `hideRelatedTab` (no related tabs emitted) in both modes.
|
|
22
|
+
- `RecordDetailView` (`@object-ui/app-shell`): reads
|
|
23
|
+
`objectDef.detail.relatedLayout` per object and forwards it to the synth.
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- @object-ui/i18n@11.2.0
|
|
28
|
+
|
|
29
|
+
## 11.1.0
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- Updated dependencies [6726a2b]
|
|
34
|
+
- @object-ui/i18n@11.1.0
|
|
35
|
+
|
|
3
36
|
## 7.3.0
|
|
4
37
|
|
|
5
38
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -5500,9 +5500,8 @@ function Kr(e, t = {}) {
|
|
|
5500
5500
|
label: "Details",
|
|
5501
5501
|
children: [Gr(e, t.sections, r)]
|
|
5502
5502
|
}];
|
|
5503
|
-
|
|
5504
|
-
|
|
5505
|
-
children: t.related.map((e) => ({
|
|
5503
|
+
if (!t.hideRelatedTab && Array.isArray(t.related) && t.related.length > 0) {
|
|
5504
|
+
let e = (e) => ({
|
|
5506
5505
|
type: "record:related_list",
|
|
5507
5506
|
title: e.title,
|
|
5508
5507
|
objectName: e.objectName,
|
|
@@ -5510,8 +5509,18 @@ function Kr(e, t = {}) {
|
|
|
5510
5509
|
...e.columns ? { columns: e.columns } : {},
|
|
5511
5510
|
...e.limit ? { limit: e.limit } : {},
|
|
5512
5511
|
...e.icon ? { icon: e.icon } : {}
|
|
5513
|
-
})
|
|
5514
|
-
|
|
5512
|
+
});
|
|
5513
|
+
if (t.relatedLayout === "tabs") for (let n of t.related) i.push({
|
|
5514
|
+
label: n.title || n.objectName,
|
|
5515
|
+
...n.icon ? { icon: n.icon } : {},
|
|
5516
|
+
children: [e(n)]
|
|
5517
|
+
});
|
|
5518
|
+
else i.push({
|
|
5519
|
+
label: "Related",
|
|
5520
|
+
children: t.related.map(e)
|
|
5521
|
+
});
|
|
5522
|
+
}
|
|
5523
|
+
return t.showActivity && i.push({
|
|
5515
5524
|
label: "Activity",
|
|
5516
5525
|
children: [{ type: "record:activity" }]
|
|
5517
5526
|
}), t.history && i.push({
|
|
@@ -5552,7 +5561,8 @@ function Jr(e, t = {}) {
|
|
|
5552
5561
|
history: t.history,
|
|
5553
5562
|
highlightFields: t.highlightFields,
|
|
5554
5563
|
statusField: t.statusField,
|
|
5555
|
-
hideRelatedTab: a
|
|
5564
|
+
hideRelatedTab: a,
|
|
5565
|
+
relatedLayout: t.relatedLayout
|
|
5556
5566
|
});
|
|
5557
5567
|
Array.isArray(o.items) && o.items.length > 0 && (o.items[0] = {
|
|
5558
5568
|
...o.items[0],
|
|
@@ -5565,7 +5575,8 @@ function Jr(e, t = {}) {
|
|
|
5565
5575
|
history: t.history,
|
|
5566
5576
|
highlightFields: t.highlightFields,
|
|
5567
5577
|
statusField: t.statusField,
|
|
5568
|
-
hideRelatedTab: a
|
|
5578
|
+
hideRelatedTab: a,
|
|
5579
|
+
relatedLayout: t.relatedLayout
|
|
5569
5580
|
}));
|
|
5570
5581
|
"discussion" in n && n.discussion !== void 0 ? r.push(...Rr(n.discussion)) : t.hideDiscussion || r.push(qr());
|
|
5571
5582
|
let o = [{
|
package/dist/index.umd.cjs
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
- `,``),[w]),k=n.useCallback(()=>w("`","`"),[w]),A=n.useCallback(()=>{w(`@`,``),_(!0),y(``),x(0)},[w]),j=n.useCallback(n=>{let r=S.current;if(!r)return;let i=r.selectionStart,a=e.slice(0,i).lastIndexOf(`@`);a!==-1&&t(e.slice(0,a)+`@${n.label} `+e.slice(i)),_(!1),y(``),requestAnimationFrame(()=>r.focus())},[e,t]),M=n.useCallback(e=>{let n=e.target.value;t(n);let r=e.target.selectionStart,i=n.slice(0,r),a=i.lastIndexOf(`@`);if(a!==-1){let e=i.slice(a+1),t=a>0?i[a-1]:` `;if(/\s/.test(t)&&!/\s/.test(e)){_(!0),y(e),x(0);return}}_(!1)},[t]),N=n.useCallback(e=>{if(g&&C.length>0){if(e.key===`ArrowDown`){e.preventDefault(),x(e=>e<C.length-1?e+1:0);return}if(e.key===`ArrowUp`){e.preventDefault(),x(e=>e>0?e-1:C.length-1);return}if(e.key===`Enter`||e.key===`Tab`){e.preventDefault(),j(C[b]);return}if(e.key===`Escape`){_(!1);return}}e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),a?.())},[g,C,b,j,a]);return(0,s.jsxs)(`div`,{className:(0,r.cn)(`border rounded-md`,l),children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-0.5 px-2 py-1.5 border-b bg-muted/30`,children:[(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:E,disabled:u||m,title:p(`detail.bold`),children:(0,s.jsx)(i.Bold,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:D,disabled:u||m,title:p(`detail.italic`),children:(0,s.jsx)(i.Italic,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:O,disabled:u||m,title:p(`detail.listFormat`),children:(0,s.jsx)(i.List,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:k,disabled:u||m,title:p(`detail.inlineCode`),children:(0,s.jsx)(i.Code,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:A,disabled:u||m,title:p(`detail.mentionSomeone`),children:(0,s.jsx)(i.AtSign,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(`div`,{className:`flex-1`}),(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>h(!m),title:p(m?`detail.edit`:`detail.preview`),children:m?(0,s.jsx)(i.Edit,{className:`h-3.5 w-3.5`}):(0,s.jsx)(i.Eye,{className:`h-3.5 w-3.5`})}),a&&(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:a,disabled:u||!f&&!e.trim(),title:p(`detail.submitComment`),children:(0,s.jsx)(i.Send,{className:`h-3.5 w-3.5`})})]}),(0,s.jsx)(`div`,{className:`relative`,children:m?(0,s.jsx)(`div`,{className:`min-h-[80px] px-3 py-2 text-sm prose prose-sm max-w-none`,dangerouslySetInnerHTML:{__html:we(e)}}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`textarea`,{ref:S,className:`w-full min-h-[80px] px-3 py-2 text-sm bg-transparent resize-none focus:outline-none placeholder:text-muted-foreground`,placeholder:c??p(`detail.writeComment`),value:e,onChange:M,onKeyDown:N,disabled:u}),g&&C.length>0&&(0,s.jsx)(`div`,{className:`absolute left-2 bottom-full mb-1 w-56 bg-popover border rounded-md shadow-md z-50 max-h-40 overflow-y-auto`,children:C.map((e,t)=>(0,s.jsxs)(`button`,{type:`button`,className:(0,r.cn)(`w-full text-left px-3 py-1.5 text-sm flex items-center gap-2 hover:bg-accent transition-colors`,t===b&&`bg-accent`),onMouseDown:t=>{t.preventDefault(),j(e)},children:[e.avatarUrl?(0,s.jsx)(`img`,{src:e.avatarUrl,alt:e.label,className:`h-5 w-5 rounded-full object-cover`}):(0,s.jsx)(`div`,{className:`h-5 w-5 rounded-full bg-muted flex items-center justify-center text-[10px] font-medium`,children:e.label.charAt(0).toUpperCase()}),(0,s.jsx)(`span`,{children:e.label})]},e.id))})]})}),d&&(0,s.jsx)(`div`,{className:`border-t px-2 py-2 bg-muted/20`,children:d})]})};function Ee(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function De(e){return e.startsWith(`image/`)}function Oe(e){return De(e)?i.Image:e.includes(`pdf`)||e.includes(`document`)||e.includes(`text`)?i.FileText:e.includes(`zip`)||e.includes(`archive`)||e.includes(`compressed`)?i.FileArchive:i.File}var ke=({attachments:e,onUpload:t,onRemove:a,className:o,readOnly:c=!1})=>{let{t:l}=T(),[u,d]=n.useState(!1),f=n.useRef(null),p=n.useCallback(e=>{e.preventDefault(),e.stopPropagation(),d(!0)},[]),m=n.useCallback(e=>{e.preventDefault(),e.stopPropagation(),d(!1)},[]),h=n.useCallback(e=>{e.preventDefault(),e.stopPropagation(),d(!1),t&&e.dataTransfer.files.length>0&&t(e.dataTransfer.files)},[t]),g=n.useCallback(e=>{t&&e.target.files&&e.target.files.length>0&&(t(e.target.files),e.target.value=``)},[t]);return(0,s.jsxs)(`div`,{className:(0,r.cn)(`space-y-2`,o),children:[t&&!c&&(0,s.jsxs)(`div`,{className:(0,r.cn)(`border-2 border-dashed rounded-md px-4 py-3 text-center transition-colors cursor-pointer`,u?`border-primary bg-primary/5`:`border-muted-foreground/25 hover:border-muted-foreground/40`),onDragOver:p,onDragLeave:m,onDrop:h,onClick:()=>f.current?.click(),role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f.current?.click())},children:[(0,s.jsx)(i.Upload,{className:`h-5 w-5 mx-auto text-muted-foreground mb-1`}),(0,s.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l(`detail.dropFilesToUpload`)}),(0,s.jsx)(`input`,{ref:f,type:`file`,multiple:!0,className:`hidden`,onChange:g})]}),e.length>0&&(0,s.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,s.jsx)(i.Paperclip,{className:`h-3 w-3`}),(0,s.jsx)(`span`,{children:e.length===1?l(`detail.attachmentCount`,{count:e.length}):l(`detail.attachmentCountPlural`,{count:e.length})})]}),(0,s.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2`,children:e.map(e=>{let t=De(e.type),n=Oe(e.type);return(0,s.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border px-2.5 py-2 bg-muted/30 group`,children:[t&&(e.thumbnailUrl||e.url)?(0,s.jsx)(`img`,{src:e.thumbnailUrl||e.url,alt:e.name,className:`h-10 w-10 rounded object-cover shrink-0`}):(0,s.jsx)(`div`,{className:`h-10 w-10 rounded bg-muted flex items-center justify-center shrink-0`,children:(0,s.jsx)(n,{className:`h-5 w-5 text-muted-foreground`})}),(0,s.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,s.jsx)(`p`,{className:`text-xs font-medium truncate`,children:e.name}),(0,s.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:Ee(e.size)})]}),a&&!c&&(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:()=>a(e.id),title:l(`detail.removeAttachment`),children:(0,s.jsx)(i.X,{className:`h-3.5 w-3.5`})})]},e.id)})})]})]})},Ae={comment:i.MessageSquare,field_change:i.Edit,task:i.CheckSquare,event:i.Calendar,system:i.Zap,email:i.Mail,call:i.Phone},je={comment:`bg-purple-100 text-purple-600`,field_change:`bg-blue-100 text-blue-600`,task:`bg-green-100 text-green-600`,event:`bg-amber-100 text-amber-600`,system:`bg-gray-100 text-gray-600`,email:`bg-indigo-100 text-indigo-600`,call:`bg-teal-100 text-teal-600`};function Me(e){return[{value:`all`,label:e(`detail.allActivity`)},{value:`comments_only`,label:e(`detail.commentsOnly`)},{value:`changes_only`,label:e(`detail.fieldChangesFilter`)},{value:`tasks_only`,label:e(`detail.tasksOnly`)}]}function Ne(e,t){try{let n=new Date(e),r=new Date().getTime()-n.getTime(),i=Math.floor(r/6e4);if(i<1)return t(`detail.justNow`);if(i<60)return t(`detail.minutesAgo`,{count:i});let a=Math.floor(i/60);if(a<24)return t(`detail.hoursAgo`,{count:a});let o=Math.floor(a/24);return o<7?t(`detail.daysAgo`,{count:o}):n.toLocaleDateString()}catch{return e}}function Pe(e,t){switch(t){case`comments_only`:return e.filter(e=>e.type===`comment`);case`changes_only`:return e.filter(e=>e.type===`field_change`);case`tasks_only`:return e.filter(e=>e.type===`task`);default:return e}}var Fe=({items:e,config:t,filterMode:a,onFilterChange:o,hasMore:c=!1,onLoadMore:l,loading:u=!1,onAddComment:d,onAddReply:f,onToggleReaction:p,subscription:m,onToggleSubscription:h,collapseWhenEmpty:g=!1,mentionSuggestions:_,onUploadAttachments:v,titleLabel:y,emptyLabel:b,className:x})=>{let{t:S}=T(),[C,w]=n.useState(`all`),[E,D]=n.useState(``),[O,k]=n.useState(!1),[A,j]=n.useState(!1),[M,N]=n.useState([]),[P,F]=n.useState(!1),I=a??C,L=t?.showFilterToggle!==!1,R=t?.showCommentInput!==!1&&!!d,z=t?.enableReactions??!1,B=t?.enableThreading??!1,V=t?.showSubscriptionToggle??!1,H=n.useMemo(()=>Pe(e,I),[e,I]),U=n.useMemo(()=>B?H.filter(e=>!e.parentId):H,[H,B]),W=n.useMemo(()=>{if(!B)return new Map;let e=new Map;for(let t of H)if(t.parentId){let n=e.get(t.parentId)??[];n.push(t),e.set(t.parentId,n)}return e},[H,B]),G=n.useCallback(e=>{o?o(e):w(e)},[o]),ee=n.useCallback(async()=>{let e=E.trim();if(d&&!(!e&&M.length===0)){k(!0);try{await d(e,M.length>0?M:void 0),D(``),N([])}finally{k(!1)}}},[E,M,d]),K=n.useCallback(async e=>{if(!(!v||e.length===0)){F(!0);try{let t=await v(e);Array.isArray(t)&&t.length>0&&N(e=>[...e,...t])}finally{F(!1)}}},[v]),te=n.useCallback(e=>{N(t=>t.filter(t=>t.id!==e))},[]),ne=n.useCallback(async()=>{if(l){j(!0);try{await l()}finally{j(!1)}}},[l]);return(0,s.jsxs)(`section`,{className:(0,r.cn)(`border-t border-border/60 pt-5`,x),"aria-label":`Discussion`,children:[(0,s.jsx)(`header`,{className:`mb-4`,children:(0,s.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,s.jsxs)(`h2`,{className:`flex items-center gap-2 text-base font-semibold leading-none tracking-tight`,children:[(0,s.jsx)(i.Activity,{className:`h-4 w-4`}),y??S(`detail.activity`),(0,s.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,H.length,`)`]})]}),(0,s.jsx)(`div`,{className:`flex items-center gap-1`,children:V&&m&&(0,s.jsx)(Ce,{subscription:m,onToggle:h})})]})}),(0,s.jsxs)(`div`,{className:`space-y-4`,children:[L&&(0,s.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,s.jsxs)(r.Select,{value:I,onValueChange:e=>G(e),children:[(0,s.jsx)(r.SelectTrigger,{"aria-label":S(`detail.filterActivity`),className:`h-8 w-auto min-w-[140px] py-1 text-sm`,children:(0,s.jsx)(r.SelectValue,{})}),(0,s.jsx)(r.SelectContent,{children:Me(S).map(e=>(0,s.jsx)(r.SelectItem,{value:e.value,children:e.label},e.value))})]})}),R&&(0,s.jsx)(Te,{value:E,onChange:D,onSubmit:ee,mentionSuggestions:_,placeholder:S(`detail.leaveCommentPlaceholder`),disabled:O,canSubmitEmpty:M.length>0,extraSlot:v?(0,s.jsx)(ke,{attachments:M,onUpload:K,onRemove:te,readOnly:O||P}):M.length>0?(0,s.jsx)(ke,{attachments:M,onRemove:te,readOnly:O}):void 0}),H.length===0?g?null:(0,s.jsx)(r.DataEmptyState,{title:b??S(`detail.noActivity`),className:`py-6`}):(0,s.jsxs)(`div`,{className:`relative`,children:[(0,s.jsx)(`div`,{className:`absolute left-4 top-2 bottom-2 w-px bg-border`}),(0,s.jsx)(`div`,{className:`space-y-4`,children:U.map(e=>{let t=Ae[e.type]||i.Zap,n=je[e.type]||`bg-gray-100 text-gray-600`,a=W.get(e.id)??[];return(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`div`,{className:`flex gap-3 relative`,children:[(0,s.jsx)(`div`,{className:(0,r.cn)(`shrink-0 h-8 w-8 rounded-full flex items-center justify-center z-10`,n),children:e.actorAvatarUrl?(0,s.jsx)(`img`,{src:e.actorAvatarUrl,alt:e.actor,className:`h-8 w-8 rounded-full object-cover`}):(0,s.jsx)(t,{className:`h-3.5 w-3.5`})}),(0,s.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2 mb-0.5`,children:[(0,s.jsx)(`span`,{className:`text-sm font-medium`,children:e.actor}),e.source&&(0,s.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:S(`detail.via`,{source:e.source})}),(0,s.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:Ne(e.createdAt,S)}),e.edited&&(0,s.jsx)(`span`,{className:`text-xs text-muted-foreground italic`,children:S(`detail.edited`)}),e.pinned&&(0,s.jsxs)(`span`,{className:`text-xs text-amber-600`,children:[`📌 `,S(`detail.pinned`)]})]}),e.body&&(0,s.jsx)(`p`,{className:`text-sm whitespace-pre-wrap break-words text-muted-foreground`,children:e.body}),e.sourceObject&&e.sourceId!=null&&(0,s.jsxs)(`a`,{href:`/objects/${e.sourceObject}/${e.sourceId}`,className:`mt-1 inline-flex items-center gap-1 text-xs text-primary hover:underline`,"data-testid":`activity-source-link`,children:[S(`detail.viewSource`),(0,s.jsx)(`span`,{"aria-hidden":!0,children:`→`})]}),e.type===`field_change`&&e.fieldChanges&&(0,s.jsx)(`div`,{className:`space-y-1 mt-1`,children:e.fieldChanges.map((e,t)=>(0,s.jsx)(be,{change:e},t))}),z&&e.reactions&&e.reactions.length>0&&(0,s.jsx)(`div`,{className:`mt-1.5`,children:(0,s.jsx)(Q,{reactions:e.reactions,onToggleReaction:p?t=>p(e.id,t):void 0})}),z&&(!e.reactions||e.reactions.length===0)&&p&&(0,s.jsx)(`div`,{className:`mt-1.5`,children:(0,s.jsx)(Q,{reactions:[],onToggleReaction:t=>p(e.id,t)})})]})]}),B&&(e.replyCount??0)>0&&(0,s.jsx)(Se,{parentItem:e,replies:a,onAddReply:f,showReplyInput:!!f})]},e.id)})})]}),c&&(0,s.jsx)(`div`,{className:`text-center pt-2`,children:(0,s.jsxs)(r.Button,{variant:`ghost`,size:`sm`,onClick:ne,disabled:A,"aria-label":S(`detail.loadMore`),children:[A?(0,s.jsx)(i.Loader2,{className:`h-4 w-4 animate-spin mr-1`}):(0,s.jsx)(i.ChevronDown,{className:`h-4 w-4 mr-1`}),S(`detail.loadMore`)]})})]})]})},Ie=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},Le=({schema:e={},className:t,...n})=>{(0,a.useRecordContext)();let{designer:r}=Ie(n);return(0,s.jsx)(`div`,{className:t,...r,children:(0,s.jsx)(Fe,{items:[],config:e})})},Re=({config:e,items:t,hasMore:a,onLoadMore:o,loading:c,onAddComment:l,onAddReply:u,onToggleReaction:d,subscription:f,onToggleSubscription:p,filterMode:m,onFilterChange:h,collapseWhenEmpty:g=!1,mentionSuggestions:_,onUploadAttachments:v,className:y})=>{let b=e?.position??`right`,x=e?.width??`360px`,S=e?.collapsible??!0,C=g&&t.length===0||(e?.defaultCollapsed??!1),{t:w}=T(),[E,D]=n.useState(C);return b===`right`||b===`left`?E&&S?(0,s.jsx)(`div`,{className:(0,r.cn)(`flex items-start pt-4`,b===`right`?`border-l`:`border-r`,y),children:(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8 mx-1`,onClick:()=>D(!1),"aria-label":w(`detail.openDiscussion`),children:(0,s.jsx)(i.PanelRightOpen,{className:`h-4 w-4`})})}):(0,s.jsxs)(`div`,{className:(0,r.cn)(`flex flex-col overflow-hidden`,b===`right`?`border-l`:`border-r`,y),style:{width:x,minWidth:x},children:[(0,s.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,s.jsx)(i.MessageSquare,{className:`h-4 w-4`}),(0,s.jsx)(`span`,{className:`text-sm font-medium`,children:w(`detail.discussion`)})]}),S&&(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>D(!0),"aria-label":w(`detail.closeDiscussion`),children:(0,s.jsx)(i.X,{className:`h-3.5 w-3.5`})})]}),(0,s.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,s.jsx)(Fe,{items:t,config:e?.feed,hasMore:a,onLoadMore:o,loading:c,onAddComment:l,onAddReply:u,onToggleReaction:d,subscription:f,onToggleSubscription:p,filterMode:m,onFilterChange:h,collapseWhenEmpty:g,mentionSuggestions:_,onUploadAttachments:v,titleLabel:w(`detail.discussion`),emptyLabel:w(`detail.noCommentsYet`),className:`border-0 shadow-none`})})]}):(0,s.jsx)(`div`,{className:(0,r.cn)(``,y),children:S&&E?(0,s.jsxs)(r.Button,{variant:`ghost`,className:`w-full justify-start gap-2 text-muted-foreground`,onClick:()=>D(!1),"aria-label":w(`detail.showDiscussion`,{count:t.length}),children:[(0,s.jsx)(i.MessageSquare,{className:`h-4 w-4`}),(0,s.jsx)(`span`,{children:w(`detail.showDiscussion`,{count:t.length})})]}):(0,s.jsxs)(`div`,{children:[S&&(0,s.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium`,children:[(0,s.jsx)(i.MessageSquare,{className:`h-4 w-4`}),w(`detail.discussion`)]}),(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>D(!0),"aria-label":w(`detail.hideDiscussion`),children:(0,s.jsx)(i.PanelRightClose,{className:`h-3.5 w-3.5`})})]}),(0,s.jsx)(Fe,{items:t,config:e?.feed,hasMore:a,onLoadMore:o,loading:c,onAddComment:l,onAddReply:u,onToggleReaction:d,subscription:f,onToggleSubscription:p,filterMode:m,onFilterChange:h,collapseWhenEmpty:g,mentionSuggestions:_,onUploadAttachments:v,titleLabel:w(`detail.discussion`),emptyLabel:w(`detail.noCommentsYet`)})]})})},ze=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},Be=({schema:e={},className:t,...n})=>{(0,a.useRecordContext)();let r=(0,a.useDiscussionContext)(),{designer:i}=ze(n),o={position:`bottom`,collapsible:!1,feed:{enableReactions:!0,enableThreading:!0,showCommentInput:!0},...e};return(0,s.jsx)(`div`,{className:t,...i,children:(0,s.jsx)(Re,{items:r?.items||[],config:o,onAddComment:r?.onAddComment,onAddReply:r?.onAddReply,onToggleReaction:r?.onToggleReaction,mentionSuggestions:r?.mentionSuggestions,onUploadAttachments:r?.onUploadAttachments})})},Ve=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},He=({schema:e={},className:t,...i})=>{let o=(0,a.useRecordContext)(),{translateOptions:c}=(0,a.useSafeFieldLabel)(),{designer:l}=Ve(i),u=Array.isArray(e.stages)?e.stages:[],d=e.statusField,f=n.default.useMemo(()=>{if(u.length===0||!d||!o?.objectName)return u;let e=c(o.objectName,d,u);return Array.isArray(e)&&e.length===u.length?u.map((t,n)=>({...t,label:e[n]?.label??t.label})):u},[u,d,o?.objectName,c]),p=d&&o?.data?o.data[d]:void 0,m=/(^|[_-\s])(closed_)?(lost|failed?|cancell?ed|失败|流失|丢单|败)([_-\s]|$)/i,h=/(^|[_-\s])(closed_)?(won|success|成交|赢|完成)([_-\s]|$)/i,g=f.map(e=>{if(e.terminal)return e.terminal;let t=`${String(e.value??``)} ${String(e.label??``)}`;if(m.test(t))return`lost`;if(h.test(t))return`won`}),_=g.findIndex(e=>e===`lost`),v=_===-1?f:f.slice(0,_),y=_===-1?[]:f.slice(_),b=_===-1?g:g.slice(0,_),x=f.findIndex(e=>e.value===p);x<0&&(x=-1);let S=_!==-1&&x>=_;if(f.length===0)return(0,s.jsx)(`div`,{className:t,...l,children:(0,s.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:path — no stages configured`})});let C=v.length-1;return(0,s.jsxs)(`div`,{className:(0,r.cn)(`w-full`,t),...l,children:[(0,s.jsxs)(`div`,{className:`hidden sm:flex w-full items-stretch gap-2`,role:`list`,"aria-label":e.aria?.label||`Record path`,children:[(0,s.jsx)(`div`,{className:`flex flex-1 items-stretch gap-1.5`,children:v.map((e,t)=>{let n=!S&&x>=0&&t<x,i=!S&&t===x,a=b[t]===`won`&&t===C;return(0,s.jsx)(`div`,{role:`listitem`,"aria-current":i?`step`:void 0,className:(0,r.cn)(`relative flex-1 min-w-0 px-4 py-2 text-xs font-medium text-center rounded-xl`,i&&`bg-primary text-primary-foreground shadow-sm`,n&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-200`,!i&&!n&&a&&`bg-emerald-500/10 text-emerald-700/85 dark:text-emerald-300/85`,!i&&!n&&!a&&`bg-muted text-muted-foreground`),children:(0,s.jsxs)(`span`,{className:`inline-flex items-center justify-center gap-1.5 truncate`,children:[n&&(0,s.jsx)(`span`,{"aria-hidden":!0,className:`text-emerald-600 dark:text-emerald-400 font-semibold`,children:`✓`}),a&&!i&&(0,s.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`🏆`}),e.label]})},`${e.value}-${t}`)})}),y.length>0&&(0,s.jsx)(`div`,{className:`flex items-stretch gap-1 pl-2 border-l border-border/40`,"aria-label":`Alternative terminal stages`,children:y.map((e,t)=>{let n=_+t===x;return(0,s.jsx)(`div`,{role:`listitem`,"aria-current":n?`step`:void 0,className:(0,r.cn)(`shrink-0 px-3 py-2 text-xs font-medium rounded-md border whitespace-nowrap`,n&&`bg-destructive text-destructive-foreground border-destructive shadow-sm ring-1 ring-destructive/40`,!n&&`bg-destructive/5 text-destructive/85 border-destructive/20`),children:(0,s.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,s.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`✗`}),e.label]})},`${e.value}-lost-${t}`)})})]}),(0,s.jsx)(`div`,{className:`flex sm:hidden w-full items-stretch gap-1 overflow-x-auto pb-1 -mx-1 px-1 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,role:`list`,"aria-label":e.aria?.label||`Record path`,children:f.map((e,t)=>{let n=g[t]===`lost`,i=!n&&!S&&x>=0&&t<x,a=t===x;return(0,s.jsx)(`div`,{role:`listitem`,"aria-current":a?`step`:void 0,className:(0,r.cn)(`shrink-0 px-3 py-1.5 rounded-full text-xs font-medium border whitespace-nowrap`,n&&a&&`bg-destructive text-destructive-foreground border-destructive shadow-sm`,n&&!a&&`bg-destructive/5 text-destructive/85 border-destructive/20`,!n&&a&&`bg-primary text-primary-foreground border-primary shadow-sm ring-1 ring-primary/40`,!n&&i&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-200 border-emerald-500/30`,!n&&!a&&!i&&`bg-background text-foreground/85 border-border/60`),children:(0,s.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[n&&(0,s.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`✗`}),!n&&i&&(0,s.jsx)(`span`,{"aria-hidden":!0,className:`text-emerald-600 dark:text-emerald-400 font-semibold`,children:`✓`}),e.label]})},`${e.value}-${t}-m`)})})]})},Ue=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},We=({schema:e={},className:t,...n})=>{let i=(0,a.useRecordContext)(),{designer:o}=Ue(n),l=(0,c.usePermissions)(),u=Array.isArray(e.actions)?e.actions:Array.isArray(e.properties?.actions)?e.properties.actions:[],d=Array.isArray(e.actionNames)?e.actionNames:Array.isArray(e.properties?.actionNames)?e.properties.actionNames:[],f=i?.objectName||``,p=d.length>0?d:Array.isArray(u)&&u.every(e=>typeof e==`string`)?u:[],m=p.length>0&&!!f,{item:h}=(0,a.useMetadataItem)(`object`,m?f:null),g=m?(()=>{let e=Array.isArray(h?.actions)?h.actions:[],t=new Map(e.map(e=>[e.name,e]));return p.map(e=>t.get(e)).filter(e=>!!e)})():Array.isArray(u)?u:[],_=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[];if(_.length>0&&f&&!_.every(e=>l.can(f,e)))return(0,s.jsx)(`div`,{className:t,...o,role:`status`,"aria-live":`polite`,children:(0,s.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view quick actions.`})});let v=e.location||`record_header`,{getActionsForLocation:y,executeAction:b}=(0,a.useActionEngine)({actions:g,context:{record:i?.data,recordId:i?.recordId,objectName:i?.objectName}}),x=g.length>0?y(v):[];if(x.length===0)return(0,s.jsx)(`div`,{className:t,...o,children:(0,s.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:quick_actions — no actions configured`})});let S=e.align||`end`,C=S===`start`?`justify-start`:S===`center`?`justify-center`:`justify-end`;return(0,s.jsx)(`div`,{className:(0,r.cn)(`flex flex-wrap items-center gap-2`,v===`record_header`&&!e.inline&&`-mt-12 sm:-mt-14 mb-2 relative z-10`,C,t),role:`toolbar`,"aria-label":e.aria?.label||`Quick actions`,...o,children:x.map((t,n)=>(0,s.jsx)(Ge,{action:t,record:i?.data,variant:t.variant||e.variant||`default`,size:t.size||e.size||`sm`,label:t.label||t.name||`Action ${n+1}`,onRun:async()=>{typeof t.onClick==`function`?await t.onClick():t.name&&await b(t.name)}},t.name||`qa-${n}`))})};function Ge({action:e,record:t,variant:o,size:c,label:l,onRun:u}){let[d,f]=n.default.useState(!1),p=n.default.useMemo(()=>({record:t||{}}),[t]),m=(0,a.toPredicateInput)(e.disabled),h=(0,a.useCondition)(typeof m==`string`?m:void 0,p);return(0,s.jsxs)(r.Button,{variant:o,size:c,disabled:(typeof m==`string`?h:m===!0)||d,onClick:async()=>{f(!0);try{await u()}finally{f(!1)}},children:[d&&(0,s.jsx)(i.Loader2,{className:`mr-2 h-4 w-4 animate-spin`}),l]})}var Ke=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},qe=new Set([`created`,`updated`,`assigned`,`shared`,`deleted`]),Je=({schema:e={},className:t,...r})=>{let{designer:i}=Ke(r),o=(0,a.useRecordContext)(),c=Array.isArray(e.entries)?e.entries:Array.isArray(e.properties?.entries)?e.properties.entries:void 0,l=e.loading??e.properties?.loading,u=e.emptyText??e.properties?.emptyText,d=Number(e.limit??e.properties?.limit??50)||50,f=o?.objectName,p=o?.data?.id??o?.data?._id??o?.recordId,m=o?.dataSource,h=c===void 0&&!!m?.find&&!!f&&p!=null,[g,_]=n.default.useState(null),[v,y]=n.default.useState(!1);n.default.useEffect(()=>{if(!h)return;let e=!1;return y(!0),Promise.resolve(m.find(`sys_activity`,{$filter:{object_name:f,record_id:p},$orderby:{timestamp:`desc`},$top:Math.max(1,d)})).then(t=>{e||_((t?.data??t?.records??[]).filter(e=>qe.has(e?.type)).map(e=>{let t=e.timestamp;return(!t||t===`NOW()`||Number.isNaN(Date.parse(t)))&&(t=e.created_at),{id:e.id,created_at:t,action:e.type,user_name:e.actor_name??null,user_avatar:e.actor_avatar_url??null,summary:e.summary??null}}))}).catch(()=>{e||_([])}).finally(()=>{e||y(!1)}),()=>{e=!0}},[h,m,f,p,d]);let b=c??g??[],x=l??(h&&g===null?v||!0:!1);return(0,s.jsx)(`div`,{className:t,...i,children:(0,s.jsx)(ne,{entries:b,loading:x,emptyText:u})})},Ye=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},Xe=e=>e.replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase()).trim(),Ze=(e,t)=>t&&e?.[t]!=null&&e[t]!==``?String(e[t]):e?.name||e?.title||e?.subject||e?.label||e?.email||e?.username||e?.code||e?.slug||e?.provider_id||e?.user_agent||e?.ip_address||e?.id||`—`,Qe=({schema:e={},className:t,...o})=>{let c=(0,a.useRecordContext)(),l=(0,a.useSafeFieldLabel)(),{t:d}=T(),{designer:f}=Ye(o),p=(0,u.useParams)().appName,m=Array.isArray(e.entries)?e.entries:Array.isArray(e.properties?.entries)?e.properties.entries:[],h=c?.recordId,g=c?.dataSource,[_,v]=n.default.useState({}),y=n.default.useRef(null),[b,x]=n.default.useState(!1),S=n.default.useRef(!0);n.default.useEffect(()=>(S.current=!0,()=>{S.current=!1}),[]);let C=n.default.useRef(``);n.default.useEffect(()=>{if(b)return;let e=y.current;if(!e||typeof IntersectionObserver>`u`){x(!0);return}let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&x(!0)},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[b]);let w=JSON.stringify(m.map(e=>`${e.objectName}:${e.relationshipField}:${e.limit??3}`));if(n.default.useEffect(()=>{if(!b||!g?.find||!h||m.length===0)return;let e=`${h}::${w}`;if(C.current===e)return;C.current=e,v(e=>{let t={...e};for(let n of m)t[n.objectName]={loading:!0,total:0,items:e[n.objectName]?.items||[]};return t});let t=async e=>{let t=e.objectName;try{let n=await g.find(e.objectName,{$filter:{[e.relationshipField]:h},$top:e.limit??3,$count:!0});if(!S.current)return;let r=Array.isArray(n)?n:n?.data||[],i=typeof n?.total==`number`?n.total:typeof n?.count==`number`?n.count:r.length;v(e=>({...e,[t]:{loading:!1,total:i,items:r}}))}catch(e){if(!S.current)return;v(n=>({...n,[t]:{loading:!1,total:0,items:[],error:String(e?.message||e)}}))}},n=[...m],r=async()=>{for(;S.current;){let e=n.shift();if(!e)return;await t(e)}},i=Array.from({length:Math.min(3,n.length)},()=>r());Promise.all(i)},[b,g,h,w]),m.length===0)return null;let E=e.hideEmpty!==!1,[D,O]=n.default.useState(!1),k=new Set(m.filter(e=>{let t=_[e.objectName];return E&&t&&!t.loading&&!t.error&&t.total===0}).map(e=>e.objectName)),A=m.filter(e=>D||!k.has(e.objectName)),j=m.filter(e=>k.has(e.objectName)).map(e=>e.title||(l?.objectLabel?l.objectLabel({name:e.objectName,label:Xe(e.objectName)}):Xe(e.objectName)));return(0,s.jsxs)(`div`,{ref:y,className:(0,r.cn)(`flex flex-col gap-3`,e.className,t),...f,children:[A.map(e=>{let t=e.objectName,n=_[t]||{loading:!0,total:0,items:[]};return(0,s.jsxs)(r.Card,{className:`overflow-hidden`,children:[(0,s.jsxs)(r.CardHeader,{className:`flex flex-row items-center justify-between gap-2 py-3 px-4 space-y-0 border-b`,children:[(0,s.jsx)(r.CardTitle,{className:`text-sm font-semibold tracking-tight truncate`,children:e.title||(l?.objectLabel?l.objectLabel({name:e.objectName,label:Xe(e.objectName)}):Xe(e.objectName))}),(0,s.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[!n.loading&&(0,s.jsx)(r.Badge,{variant:`secondary`,className:`tabular-nums`,children:n.total}),p&&h&&(0,s.jsx)(u.Link,{to:`/apps/${p}/${e.objectName}?filter%5B${e.relationshipField}%5D=${encodeURIComponent(String(h))}`,className:`text-[11px] font-medium text-muted-foreground hover:text-foreground transition-colors`,title:d(`detail.viewAll`,{defaultValue:`View all`}),children:d(`detail.viewAll`,{defaultValue:`View all`})})]})]}),(0,s.jsx)(r.CardContent,{className:`p-0`,children:n.loading?(0,s.jsxs)(`div`,{className:`space-y-1.5 p-3`,children:[(0,s.jsx)(r.Skeleton,{className:`h-3.5 w-4/5`}),(0,s.jsx)(r.Skeleton,{className:`h-3.5 w-3/5`}),(0,s.jsx)(r.Skeleton,{className:`h-3.5 w-2/3`})]}):n.items.length===0?(0,s.jsx)(`p`,{className:`px-4 py-3 text-xs text-muted-foreground`,children:d(`detail.noRecords`)}):(0,s.jsx)(`ul`,{className:`divide-y`,children:n.items.map(t=>{let n=t.id||t._id,r=Ze(t,e.displayField),a=n?`../${e.objectName}/record/${encodeURIComponent(String(n))}`:void 0;return(0,s.jsx)(`li`,{className:`px-4 py-2`,children:a?(0,s.jsxs)(u.Link,{to:a,className:`group flex items-center justify-between gap-2 text-xs hover:text-foreground text-muted-foreground transition-colors`,children:[(0,s.jsx)(`span`,{className:`truncate`,children:r}),(0,s.jsx)(i.ChevronRight,{className:`h-3 w-3 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`})]}):(0,s.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:r})},String(n||r))})})})]},t)}),!D&&j.length>0&&(0,s.jsxs)(`button`,{type:`button`,onClick:()=>O(!0),className:`self-start inline-flex items-center gap-1.5 text-[11px] text-muted-foreground hover:text-foreground transition-colors px-2.5 py-1 rounded-md border border-dashed border-border/60 hover:border-border bg-background`,title:j.join(` · `),children:[(0,s.jsx)(`span`,{children:d(`detail.showEmptyRelated`,{defaultValue:`+ {{count}} empty`,count:j.length})}),(0,s.jsxs)(`span`,{className:`truncate max-w-[180px] text-muted-foreground/70`,children:[`(`,j.join(` · `),`)`]})]})]})},$e={info:{wrap:`border-blue-300/60 bg-blue-50 text-blue-900 dark:border-blue-700/40 dark:bg-blue-950/30 dark:text-blue-100 [&>svg]:text-blue-600 dark:[&>svg]:text-blue-300`,icon:`Info`},warning:{wrap:`border-amber-300/60 bg-amber-50 text-amber-900 dark:border-amber-700/40 dark:bg-amber-950/30 dark:text-amber-100 [&>svg]:text-amber-600 dark:[&>svg]:text-amber-300`,icon:`AlertTriangle`},error:{wrap:`border-destructive/60 bg-destructive/10 text-destructive dark:bg-destructive/20 [&>svg]:text-destructive`,icon:`AlertCircle`},success:{wrap:`border-emerald-300/60 bg-emerald-50 text-emerald-900 dark:border-emerald-700/40 dark:bg-emerald-950/30 dark:text-emerald-100 [&>svg]:text-emerald-600 dark:[&>svg]:text-emerald-300`,icon:`CheckCircle2`}};function et(e){let t=e?.properties??{};return{...e,...t}}var tt=({schema:e={},className:t})=>{let i=et(e),o=(0,a.useRecordContext)(),c=o?.data,l=o?.objectName||``,u=o?.recordId??c?.id,d=[`info`,`warning`,`error`,`success`].includes(i.severity)?i.severity:`info`,f=$e[d],p=i.icon||f.icon,m=(0,a.toPredicateInput)(i.visible),h=(0,a.useCondition)(m,{record:c}),g=n.useMemo(()=>{if(!i.dismissible)return null;let e=i.dismissKey||i.title||d;return`os.record-alert:${l}:${u??`_`}:${e}`},[i.dismissible,i.dismissKey,i.title,d,l,u]),[_,v]=n.useState(()=>{if(!g||typeof window>`u`)return!1;try{return window.localStorage.getItem(g)===`1`}catch{return!1}}),y=i.action?.actionName,{item:b}=(0,a.useMetadataItem)(`object`,y&&l?l:null),x=n.useMemo(()=>{if(!(!y||!b?.actions))return b.actions.find(e=>e.name===y)},[y,b]),{executeAction:S}=(0,a.useActionEngine)({actions:n.useMemo(()=>x?[x]:[],[x]),context:{record:c,recordId:u,objectName:l}});return _||!c||Object.keys(c).length===0||m!==void 0&&!h?null:(0,s.jsxs)(r.Alert,{className:(0,r.cn)(`relative pr-12`,f.wrap,t),role:d===`error`?`alert`:`status`,"aria-live":d===`error`?`assertive`:`polite`,children:[(0,s.jsx)(r.LazyIcon,{name:p,className:`h-4 w-4`,"aria-hidden":`true`}),i.title?(0,s.jsx)(r.AlertTitle,{children:i.title}):null,i.body||x?(0,s.jsxs)(r.AlertDescription,{children:[i.body?(0,s.jsx)(`p`,{className:`mb-2 last:mb-0`,children:i.body}):null,x?(0,s.jsx)(r.Button,{size:`sm`,variant:i.action?.variant||(d===`error`?`destructive`:`default`),onClick:()=>{x?.name&&S(x.name)},children:i.action?.label||x.label||x.name}):null]}):null,i.dismissible?(0,s.jsx)(`button`,{type:`button`,onClick:()=>{if(v(!0),g)try{window.localStorage.setItem(g,`1`)}catch{}},"aria-label":`Dismiss`,className:`absolute right-3 top-3 inline-flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground/80 hover:bg-foreground/5 hover:text-foreground focus:outline-none focus:ring-2 focus:ring-ring`,children:(0,s.jsx)(r.LazyIcon,{name:`X`,className:`h-4 w-4`,"aria-hidden":`true`})}):null]})},nt=new Set([`id`,`_id`,`__v`,`created_at`,`updated_at`,`createdAt`,`updatedAt`,`created_by`,`updated_by`,`organization_id`,`tenant_id`,`owner_id`,`deleted_at`,`is_deleted`]),rt=480,it=95;function at({open:e,onClose:t,title:i,record:a,objectName:o,recordId:c,dataSource:l,objectSchema:u,width:d=`min(960px, 60vw)`,columns:f=2,systemFields:p=nt,onFieldSave:m,onDelete:h,resizable:g=!0,fullPageHref:_}){let{t:v}=T(),y=`objectui.drawerWidth.${o}`,[b,x]=n.default.useState(()=>{if(typeof window>`u`||!g)return null;try{let e=window.localStorage.getItem(y);if(e){let t=parseInt(e,10);if(Number.isFinite(t)&&t>=rt)return t}}catch{}return null}),S=n.default.useMemo(()=>g&&b!=null?`${b}px`:typeof d==`number`?`${d}px`:d,[g,b,d]),C=S?{width:S,maxWidth:S}:void 0,w=n.default.useRef(null),E=n.default.useCallback(e=>{if(!g)return;e.preventDefault();let t=b??(typeof window<`u`?Math.min(window.innerWidth*.6,960):720);w.current={startX:e.clientX,startWidth:t};let n=e=>{let t=w.current;if(!t)return;let n=t.startX-e.clientX,r=typeof window<`u`?window.innerWidth*it/100:1600,i=Math.min(r,Math.max(rt,t.startWidth+n));x(Math.round(i))},r=()=>{w.current,w.current=null,window.removeEventListener(`pointermove`,n),window.removeEventListener(`pointerup`,r),window.removeEventListener(`pointercancel`,r);try{x(e=>(e!=null&&window.localStorage.setItem(y,String(e)),e))}catch{}};window.addEventListener(`pointermove`,n),window.addEventListener(`pointerup`,r),window.addEventListener(`pointercancel`,r)},[g,b,y]),D=u?.fields??{},O=(Object.keys(D).length?Object.keys(D):Object.keys(a)).filter(e=>!p.has(e)&&!e.startsWith(`__`)).filter(e=>e in a).filter(e=>!D[e]?.hidden).map(e=>{let t=D[e]||{},n=t.type===`lookup`||t.type===`master_detail`||t.type===`reference`;return{name:e,label:t.label,type:t.type,readonly:!!t.readonly||n,options:t.options,currency:t.currency,precision:t.precision,format:t.format,reference_to:t.reference_to??t.referenceTo??t.target,reference_field:t.reference_field??t.referenceField,required:t.required,validation:t.validation,placeholder:t.placeholder,description:t.description}});return(0,s.jsx)(r.Sheet,{open:e,onOpenChange:e=>{e||t()},children:(0,s.jsxs)(r.SheetContent,{side:`right`,className:`w-full overflow-y-auto p-0 sm:!max-w-none`,style:C,onOpenAutoFocus:e=>e.preventDefault(),children:[g&&(0,s.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize drawer`,onPointerDown:E,className:`hidden sm:block absolute left-0 top-0 h-full w-1.5 cursor-col-resize select-none bg-transparent hover:bg-primary/30 active:bg-primary/50 transition-colors z-10`}),(0,s.jsx)(r.SheetHeader,{className:`sr-only`,children:(0,s.jsx)(r.SheetTitle,{children:i})}),(0,s.jsx)(`div`,{className:`px-6 pt-6 pb-6`,children:(0,s.jsx)(de,{dataSource:l,inlineEdit:!0,schema:{type:`detail-view`,objectName:o,resourceId:String(c),data:a,showDelete:!0,columns:f,fields:O,actions:_?[{type:`action:bar`,location:`record_header`,systemActions:[{name:`sys_open_new_tab`,label:v(`detail.openInNewTab`),icon:`external-link`,type:`script`,onClick:()=>window.open(_,`_blank`,`noopener`)}]}]:void 0},onFieldSave:async(e,t)=>{try{await m?.(e,t)}catch(e){console.error(`[RecordDetailDrawer] inline field save failed:`,e)}},onDelete:async()=>{try{await h?.(),t()}catch(e){console.error(`[RecordDetailDrawer] delete failed:`,e)}}})})]})})}function ot(e,t){if(typeof window>`u`)return null;let n=window.location.pathname,r=`/${e}`,i=n.indexOf(r);return`${i>=0?n.slice(0,i):n.replace(/\/$/,``)}/${e}/record/${encodeURIComponent(String(t))}`}var st=({objectName:e,relationshipField:t,fields:a,onCreateRecord:o,onLinkRecord:c,onSearch:l,existingRecords:u=[],className:d})=>{let[f,p]=n.useState(!1),[m,h]=n.useState(`create`),[g,_]=n.useState({}),[v,y]=n.useState(``),[b,x]=n.useState(u),[S,C]=n.useState(!1),[w,T]=n.useState(!1),E=n.useMemo(()=>{if(!v.trim())return b;let e=v.toLowerCase();return b.filter(t=>t.label.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[v,b]),D=n.useCallback(async e=>{if(y(e),l&&e.trim().length>=2){T(!0);try{x(await l(e))}finally{T(!1)}}},[l]),O=n.useCallback((e,t)=>{_(n=>({...n,[e]:t}))},[]),k=n.useCallback(async()=>{if(o){C(!0);try{await o({...g,[t]:!0}),_({}),p(!1)}finally{C(!1)}}},[o,g,t]),A=n.useCallback(async e=>{if(c){C(!0);try{await c(e),y(``),p(!1)}finally{C(!1)}}},[c]),j=n.useMemo(()=>a.filter(e=>e.required).every(e=>g[e.name]?.toString().trim()),[a,g]);return f?(0,s.jsxs)(r.Card,{className:(0,r.cn)(``,d),children:[(0,s.jsx)(r.CardHeader,{className:`pb-3`,children:(0,s.jsxs)(r.CardTitle,{className:`flex items-center justify-between text-sm`,children:[(0,s.jsxs)(`span`,{children:[m===`create`?`Create`:`Link`,` `,e]}),(0,s.jsx)(r.Button,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:()=>p(!1),children:(0,s.jsx)(i.X,{className:`h-3.5 w-3.5`})})]})}),(0,s.jsx)(r.CardContent,{children:(0,s.jsxs)(r.Tabs,{value:m,onValueChange:h,children:[(0,s.jsxs)(r.TabsList,{className:`mb-3 w-full`,children:[o&&(0,s.jsxs)(r.TabsTrigger,{value:`create`,className:`flex-1 gap-1.5`,children:[(0,s.jsx)(i.Plus,{className:`h-3.5 w-3.5`}),`Create New`]}),c&&(0,s.jsxs)(r.TabsTrigger,{value:`link`,className:`flex-1 gap-1.5`,children:[(0,s.jsx)(i.Link,{className:`h-3.5 w-3.5`}),`Link Existing`]})]}),o&&(0,s.jsxs)(r.TabsContent,{value:`create`,className:`space-y-3 mt-0`,children:[a.map(e=>(0,s.jsxs)(`div`,{children:[(0,s.jsxs)(`label`,{className:`text-xs font-medium text-muted-foreground mb-1 block`,children:[e.label,e.required&&(0,s.jsx)(`span`,{className:`text-destructive ml-0.5`,children:`*`})]}),(0,s.jsx)(r.Input,{type:e.type===`number`?`number`:e.type===`date`?`date`:`text`,placeholder:e.placeholder||`Enter ${e.label.toLowerCase()}`,value:g[e.name]||``,onChange:t=>O(e.name,t.target.value),className:`h-8 text-sm`})]},e.name)),(0,s.jsxs)(`div`,{className:`flex justify-end gap-2 pt-1`,children:[(0,s.jsx)(r.Button,{variant:`ghost`,size:`sm`,onClick:()=>p(!1),children:`Cancel`}),(0,s.jsxs)(r.Button,{size:`sm`,onClick:k,disabled:!j||S,className:`gap-1.5`,children:[S&&(0,s.jsx)(i.Loader2,{className:`h-3.5 w-3.5 animate-spin`}),`Create`]})]})]}),c&&(0,s.jsxs)(r.TabsContent,{value:`link`,className:`space-y-3 mt-0`,children:[(0,s.jsxs)(`div`,{className:`relative`,children:[(0,s.jsx)(i.Search,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,s.jsx)(r.Input,{placeholder:`Search ${e}…`,value:v,onChange:e=>D(e.target.value),className:`h-8 text-sm pl-8`})]}),(0,s.jsx)(`div`,{className:`max-h-48 overflow-y-auto space-y-1`,children:w?(0,s.jsxs)(`div`,{className:`flex items-center justify-center py-4 text-sm text-muted-foreground`,children:[(0,s.jsx)(i.Loader2,{className:`h-4 w-4 animate-spin mr-2`}),`Searching…`]}):E.length===0?(0,s.jsx)(`p`,{className:`text-sm text-muted-foreground text-center py-4`,children:v?`No records found`:`Type to search records`}):E.map(e=>(0,s.jsxs)(`button`,{type:`button`,className:`w-full text-left px-3 py-2 rounded-md hover:bg-accent text-sm transition-colors`,onClick:()=>A(e.id),disabled:S,children:[(0,s.jsx)(`span`,{className:`font-medium`,children:e.label}),e.description&&(0,s.jsx)(`span`,{className:`block text-xs text-muted-foreground mt-0.5`,children:e.description})]},e.id))})]})]})})]}):(0,s.jsxs)(`div`,{className:(0,r.cn)(`flex gap-2`,d),children:[o&&(0,s.jsxs)(r.Button,{variant:`outline`,size:`sm`,onClick:()=>{h(`create`),p(!0)},className:`gap-1.5`,children:[(0,s.jsx)(i.Plus,{className:`h-3.5 w-3.5`}),`New `,e]}),c&&(0,s.jsxs)(r.Button,{variant:`outline`,size:`sm`,onClick:()=>{h(`link`),p(!0)},className:`gap-1.5`,children:[(0,s.jsx)(i.Link,{className:`h-3.5 w-3.5`}),`Link Existing`]})]})};function ct(e,t){if(e==null)return[`(empty)`];switch(t){case`json`:try{let t=typeof e==`string`?JSON.parse(e):e;return JSON.stringify(t,null,2).split(`
|
|
3
3
|
`)}catch{return String(e).split(`
|
|
4
4
|
`)}case`boolean`:return[String(!!e)];case`number`:return[String(e)];case`date`:try{return[new Date(e).toLocaleString()]}catch{return[String(e)]}default:return String(e).split(`
|
|
5
|
-
`)}}function lt(e,t){let n=[],r=Math.max(e.length,t.length);for(let i=0;i<r;i++){let r=i<e.length?e[i]:void 0,a=i<t.length?t[i]:void 0;r===a?n.push({type:`unchanged`,value:r}):(r!==void 0&&n.push({type:`removed`,value:r}),a!==void 0&&n.push({type:`added`,value:a}))}return n}var ut={added:`bg-green-50 text-green-800 dark:bg-green-950/30 dark:text-green-300`,removed:`bg-red-50 text-red-800 dark:bg-red-950/30 dark:text-red-300`,unchanged:`text-muted-foreground`},dt={added:`+`,removed:`-`,unchanged:` `},ft=({oldValue:e,newValue:t,fieldName:a,fieldType:o=`string`,mode:c=`unified`,className:l})=>{let{t:u}=T(),[d,f]=n.useState(c),p=n.useMemo(()=>ct(e,o),[e,o]),m=n.useMemo(()=>ct(t,o),[t,o]),h=n.useMemo(()=>lt(p,m),[p,m]),g=h.some(e=>e.type!==`unchanged`),_=n.useMemo(()=>{if(d!==`side-by-side`)return[];let e=[],t=0;for(;t<h.length;){let n=h[t];if(n.type===`unchanged`)e.push({left:n,right:n}),t++;else if(n.type===`removed`){let r=t+1<h.length?h[t+1]:null;r&&r.type===`added`?(e.push({left:n,right:r}),t+=2):(e.push({left:n,right:null}),t++)}else e.push({left:null,right:n}),t++}return e},[d,h]);return(0,s.jsxs)(r.Card,{className:(0,r.cn)(`overflow-hidden`,l),children:[(0,s.jsx)(r.CardHeader,{className:`pb-2`,children:(0,s.jsxs)(r.CardTitle,{className:`flex items-center justify-between text-sm`,children:[(0,s.jsx)(`span`,{className:`font-medium`,children:a}),(0,s.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,s.jsx)(r.Button,{variant:d===`unified`?`secondary`:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>f(`unified`),title:u(`detail.unifiedDiff`),children:(0,s.jsx)(i.Rows3,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(r.Button,{variant:d===`side-by-side`?`secondary`:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>f(`side-by-side`),title:u(`detail.sideBySideDiff`),children:(0,s.jsx)(i.Columns2,{className:`h-3.5 w-3.5`})})]})]})}),(0,s.jsx)(r.CardContent,{className:`p-0`,children:g?d===`unified`?(0,s.jsx)(`div`,{className:`font-mono text-xs overflow-x-auto`,children:h.map((e,t)=>(0,s.jsxs)(`div`,{className:(0,r.cn)(`px-4 py-0.5 whitespace-pre-wrap border-l-2`,ut[e.type],e.type===`added`&&`border-l-green-500`,e.type===`removed`&&`border-l-red-500`,e.type===`unchanged`&&`border-l-transparent`),children:[(0,s.jsx)(`span`,{className:`select-none mr-2 inline-block w-3 text-center opacity-60`,children:dt[e.type]}),e.value]},t))}):(0,s.jsx)(`div`,{className:`overflow-x-auto`,children:(0,s.jsxs)(`div`,{className:`grid grid-cols-2 divide-x font-mono text-xs min-w-0`,children:[(0,s.jsx)(`div`,{className:`px-3 py-1.5 text-xs font-medium text-muted-foreground bg-muted/50`,children:u(`detail.previousVersion`)}),(0,s.jsx)(`div`,{className:`px-3 py-1.5 text-xs font-medium text-muted-foreground bg-muted/50`,children:u(`detail.currentVersion`)}),_.map((e,t)=>(0,s.jsxs)(n.Fragment,{children:[(0,s.jsx)(`div`,{className:(0,r.cn)(`px-3 py-0.5 whitespace-pre-wrap min-h-[1.5em]`,e.left?ut[e.left.type]:`bg-muted/20`),children:e.left?.value??``}),(0,s.jsx)(`div`,{className:(0,r.cn)(`px-3 py-0.5 whitespace-pre-wrap min-h-[1.5em]`,e.right?ut[e.right.type]:`bg-muted/20`),children:e.right?.value??``})]},t))]})}):(0,s.jsx)(`p`,{className:`px-4 py-3 text-sm text-muted-foreground`,children:u(`detail.noChanges`)})})]})},pt=({currentIndex:e,totalRecords:t,recordIds:a,onNavigate:o,onSearch:c,className:l})=>{let{t:u}=T(),[d,f]=n.useState(``),[p,m]=n.useState(!1),h=n.useRef(null),g=e>0,_=e>0,v=e<t-1,y=e<t-1,b=n.useCallback(()=>{g&&o(a[0])},[g,o,a]),x=n.useCallback(()=>{_&&o(a[e-1])},[_,o,a,e]),S=n.useCallback(()=>{v&&o(a[e+1])},[v,o,a,e]),C=n.useCallback(()=>{y&&o(a[a.length-1])},[y,o,a]),w=n.useCallback(e=>{let t=e.target.value;f(t),c?.(t)},[c]),E=n.useCallback(()=>{m(e=>(e?(f(``),c?.(``)):requestAnimationFrame(()=>h.current?.focus()),!e))},[c]);return n.useEffect(()=>{let t=t=>{let n=t.target?.tagName;if(!((n===`INPUT`||n===`TEXTAREA`||t.target?.isContentEditable)&&t.target!==h.current)){if(t.target===h.current){t.key===`Escape`&&(t.preventDefault(),m(!1),f(``),c?.(``),t.target.blur());return}switch(t.key){case`Home`:t.preventDefault(),g&&o(a[0]);break;case`End`:t.preventDefault(),y&&o(a[a.length-1]);break;case`ArrowLeft`:t.preventDefault(),_&&o(a[e-1]);break;case`ArrowRight`:t.preventDefault(),v&&o(a[e+1]);break}}};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,a,g,_,v,y,o,c]),(0,s.jsxs)(`div`,{className:(0,r.cn)(`flex items-center gap-1.5`,l),children:[(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:!g,onClick:b,title:u(`detail.firstRecord`),children:(0,s.jsx)(i.ChevronsLeft,{className:`h-4 w-4`})}),(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:!_,onClick:x,title:u(`detail.previousRecordKey`),children:(0,s.jsx)(i.ChevronLeft,{className:`h-4 w-4`})}),(0,s.jsx)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap px-1.5 tabular-nums`,children:t>0?u(`detail.recordOf`,{current:e+1,total:t}):u(`detail.noRecords`)}),(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:!v,onClick:S,title:u(`detail.nextRecordKey`),children:(0,s.jsx)(i.ChevronRight,{className:`h-4 w-4`})}),(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:!y,onClick:C,title:u(`detail.lastRecord`),children:(0,s.jsx)(i.ChevronsRight,{className:`h-4 w-4`})}),c&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Button,{variant:p?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:E,title:u(`detail.searchWhileNavigating`),children:(0,s.jsx)(i.Search,{className:`h-4 w-4`})}),p&&(0,s.jsx)(`div`,{className:`relative`,children:(0,s.jsx)(r.Input,{ref:h,type:`text`,placeholder:u(`detail.searchRecords`),value:d,onChange:w,className:`h-8 w-48 text-sm`})})]})]})},mt=28,ht=[`fill-primary stroke-primary`,`fill-blue-500 stroke-blue-500`,`fill-emerald-500 stroke-emerald-500`,`fill-amber-500 stroke-amber-500`],gt=[`fill-primary-foreground`,`fill-white`,`fill-white`,`fill-white`];function _t(e,t,n,r,i){let a=[],o=[],s=new Set,c=r/2,l=i/2;a.push({id:e.id,label:e.label,type:e.type,x:c,y:l,level:0}),s.add(e.id);let u=Math.min(r,i)*.32,d=t.filter(e=>!s.has(e.id));if(d.forEach((t,n)=>{let r=2*Math.PI*n/d.length-Math.PI/2,i=c+u*Math.cos(r),f=l+u*Math.sin(r);a.push({id:t.id,label:t.label,type:t.type,x:i,y:f,level:1}),o.push({fromId:e.id,toId:t.id,fromX:c,fromY:l,toX:i,toY:f}),s.add(t.id)}),n>=2){let e=Math.min(r,i)*.46,t=[];d.forEach(e=>{let n=a.find(t=>t.id===e.id);n&&(e.relatedRecords||[]).filter(e=>!s.has(e.id)).forEach(r=>{t.push({node:r,parentX:n.x,parentY:n.y,parentId:e.id}),s.add(r.id)})}),t.forEach((n,r)=>{let i=2*Math.PI*r/Math.max(t.length,1)-Math.PI/2,s=c+e*Math.cos(i),u=l+e*Math.sin(i);a.push({id:n.node.id,label:n.node.label,type:n.node.type,x:s,y:u,level:2}),o.push({fromId:n.parentId,toId:n.node.id,fromX:n.parentX,fromY:n.parentY,toX:s,toY:u})})}return{nodes:a,edges:o}}function vt(e,t=6){return e.length<=t?e:e.slice(0,t-1)+`…`}var yt=({record:e,relatedRecords:t,levels:a=1,onNodeClick:o,className:c})=>{let l=n.useRef(null),[u,d]=n.useState({width:500,height:400}),[f,p]=n.useState(null);n.useEffect(()=>{let e=l.current;if(!e)return;let t=e.parentElement;if(!t)return;let n=new ResizeObserver(e=>{for(let t of e){let{width:e}=t.contentRect;e>0&&d({width:e,height:Math.max(300,e*.7)})}});return n.observe(t),()=>n.disconnect()},[]);let{nodes:m,edges:h}=n.useMemo(()=>_t(e,t,a,u.width,u.height),[e,t,a,u]);return(0,s.jsxs)(r.Card,{className:(0,r.cn)(`overflow-hidden`,c),children:[(0,s.jsx)(r.CardHeader,{className:`pb-2`,children:(0,s.jsxs)(r.CardTitle,{className:`flex items-center gap-2 text-base`,children:[(0,s.jsx)(i.Network,{className:`h-4 w-4`}),`Relationships`,(0,s.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,t.length,` related)`]})]})}),(0,s.jsx)(r.CardContent,{className:`p-0`,children:(0,s.jsxs)(`svg`,{ref:l,width:`100%`,height:u.height,viewBox:`0 0 ${u.width} ${u.height}`,className:`select-none`,children:[h.map((e,t)=>(0,s.jsx)(`line`,{x1:e.fromX,y1:e.fromY,x2:e.toX,y2:e.toY,className:`stroke-border`,strokeWidth:1.5,strokeOpacity:.5},`edge-${t}`)),m.map(e=>{let t=f===e.id,n=ht[Math.min(e.level,ht.length-1)],i=gt[Math.min(e.level,gt.length-1)],a=e.level===0?34:mt;return(0,s.jsxs)(`g`,{className:(0,r.cn)(`cursor-pointer transition-transform`,o&&`hover:opacity-80`),onClick:()=>o?.(e.id),onMouseEnter:()=>p(e.id),onMouseLeave:()=>p(null),children:[(0,s.jsx)(`circle`,{cx:e.x,cy:e.y,r:t?a+3:a,className:n,fillOpacity:e.level===0?1:.85,strokeWidth:2,strokeOpacity:.3}),(0,s.jsx)(`text`,{x:e.x,y:e.y,textAnchor:`middle`,dominantBaseline:`central`,className:(0,r.cn)(`text-[10px] font-medium pointer-events-none`,i),children:vt(e.label)}),e.type&&(0,s.jsx)(`text`,{x:e.x,y:e.y+a+12,textAnchor:`middle`,className:`fill-muted-foreground text-[9px] pointer-events-none`,children:e.type}),t&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`rect`,{x:e.x-50,y:e.y-a-28,width:100,height:20,rx:4,className:`fill-popover stroke-border`,strokeWidth:1}),(0,s.jsx)(`text`,{x:e.x,y:e.y-a-16,textAnchor:`middle`,dominantBaseline:`central`,className:`fill-popover-foreground text-[10px] pointer-events-none`,children:e.label})]})]},e.id)})]})})]})};function bt(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:t.toLocaleString()}catch{return e}}var xt=({recordId:e,revisions:t,onRestore:a,className:o})=>{let[c,l]=n.useState(null),[u,d]=n.useState(!1),[f,p]=n.useState(!1),m=n.useMemo(()=>t.find(e=>e.id===c)??null,[t,c]),h=n.useCallback(async()=>{if(!(!m||!a)){if(!u){d(!0);return}p(!0);try{let e=m.snapshot??{};await a(m.id,e),d(!1),l(null)}finally{p(!1)}}},[m,a,u]),g=n.useCallback(()=>{d(!1)},[]);return(0,s.jsxs)(r.Card,{className:(0,r.cn)(``,o),children:[(0,s.jsx)(r.CardHeader,{className:`pb-3`,children:(0,s.jsxs)(r.CardTitle,{className:`flex items-center gap-2 text-base`,children:[(0,s.jsx)(i.History,{className:`h-4 w-4`}),`Revision History`,(0,s.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,t.length,`)`]})]})}),(0,s.jsx)(r.CardContent,{children:t.length===0?(0,s.jsx)(`p`,{className:`text-sm text-muted-foreground text-center py-4`,children:`No revisions recorded`}):(0,s.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4`,children:[(0,s.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,s.jsxs)(`div`,{className:`relative`,children:[(0,s.jsx)(`div`,{className:`absolute left-3 top-2 bottom-2 w-px bg-border`}),(0,s.jsx)(`div`,{className:`space-y-1`,children:t.map(e=>{let t=e.id===c;return(0,s.jsxs)(`button`,{type:`button`,className:(0,r.cn)(`w-full text-left flex items-start gap-3 py-2 px-2 rounded-md transition-colors relative`,t?`bg-accent`:`hover:bg-accent/50`),onClick:()=>{l(e.id),d(!1)},children:[(0,s.jsx)(`div`,{className:(0,r.cn)(`shrink-0 h-6 w-6 rounded-full border-2 flex items-center justify-center z-10 mt-0.5`,t?`border-primary bg-primary`:`border-border bg-background`),children:t&&(0,s.jsx)(i.ChevronRight,{className:`h-3 w-3 text-primary-foreground`})}),(0,s.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,s.jsx)(`span`,{className:`text-sm font-medium`,children:e.user}),(0,s.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:bt(e.timestamp)})]}),(0,s.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:[e.changes.length,` field`,e.changes.length===1?``:`s`,` `,`changed`]})]})]},e.id)})})]})}),m&&(0,s.jsxs)(`div`,{className:`lg:w-80 border rounded-md p-3 space-y-3`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium`,children:[(0,s.jsx)(i.Eye,{className:`h-4 w-4 text-muted-foreground`}),`Revision Preview`]}),(0,s.jsx)(`div`,{className:`space-y-2`,children:m.changes.map((e,t)=>(0,s.jsxs)(`div`,{className:`text-xs`,children:[(0,s.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:e.field}),(0,s.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-0.5`,children:[(0,s.jsx)(`span`,{className:`line-through text-red-600 dark:text-red-400 truncate max-w-[120px]`,children:e.oldValue==null?`(empty)`:String(e.oldValue)}),(0,s.jsx)(i.ChevronRight,{className:`h-3 w-3 text-muted-foreground shrink-0`}),(0,s.jsx)(`span`,{className:`text-green-600 dark:text-green-400 truncate max-w-[120px]`,children:e.newValue==null?`(empty)`:String(e.newValue)})]})]},t))}),m.snapshot&&(0,s.jsxs)(`div`,{className:`border-t pt-2 space-y-1`,children:[(0,s.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:`Record state at this point`}),(0,s.jsx)(`div`,{className:`max-h-40 overflow-y-auto space-y-1`,children:Object.entries(m.snapshot).map(([e,t])=>(0,s.jsxs)(`div`,{className:`flex justify-between text-xs gap-2`,children:[(0,s.jsx)(`span`,{className:`text-muted-foreground truncate`,children:e}),(0,s.jsx)(`span`,{className:`font-mono truncate max-w-[140px]`,children:t==null?`–`:String(t)})]},e))})]}),a&&(0,s.jsx)(`div`,{className:`pt-1 space-y-2`,children:u?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(`p`,{className:`text-xs text-amber-600 dark:text-amber-400`,children:[`This will restore the record to its state at`,` `,bt(m.timestamp),`. Continue?`]}),(0,s.jsxs)(`div`,{className:`flex gap-2`,children:[(0,s.jsxs)(r.Button,{variant:`destructive`,size:`sm`,className:`gap-1.5 flex-1`,onClick:h,disabled:f,children:[(0,s.jsx)(i.RotateCcw,{className:`h-3.5 w-3.5`}),f?`Restoring…`:`Confirm Restore`]}),(0,s.jsx)(r.Button,{variant:`ghost`,size:`sm`,onClick:g,disabled:f,children:`Cancel`})]})]}):(0,s.jsxs)(r.Button,{variant:`outline`,size:`sm`,className:`w-full gap-1.5`,onClick:h,children:[(0,s.jsx)(i.RotateCcw,{className:`h-3.5 w-3.5`}),`Restore to this point`]})})]})]})})]})},St=({onSubmit:e,placeholder:t=`Leave a comment…`,disabled:a=!1,className:o})=>{let[c,l]=n.useState(``),[u,d]=n.useState(!1),f=n.useCallback(async()=>{let t=c.trim();if(t){d(!0);try{await e(t),l(``)}finally{d(!1)}}},[c,e]),p=n.useCallback(e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),f())},[f]);return(0,s.jsxs)(`div`,{className:(0,r.cn)(`flex gap-2`,o),children:[(0,s.jsx)(`textarea`,{className:`flex-1 min-h-[60px] rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring resize-none`,placeholder:t,value:c,onChange:e=>l(e.target.value),onKeyDown:p,disabled:a||u}),(0,s.jsx)(r.Button,{size:`icon`,variant:`default`,onClick:f,disabled:!c.trim()||u||a,className:`shrink-0 self-end`,"aria-label":`Submit comment`,children:(0,s.jsx)(i.Send,{className:`h-4 w-4`})})]})},Ct=({query:e,suggestions:t,onSelect:i,visible:a=!0,activeIndex:o=0,className:c})=>{let l=n.useMemo(()=>{if(!e)return t;let n=e.toLowerCase();return t.filter(e=>e.name.toLowerCase().includes(n)||e.id.toLowerCase().includes(n))},[e,t]);return!a||l.length===0?null:(0,s.jsx)(`div`,{className:(0,r.cn)(`bg-popover border rounded-md shadow-md z-50 max-h-48 overflow-y-auto w-56`,c),role:`listbox`,"aria-label":`Mention suggestions`,children:l.map((e,t)=>(0,s.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t===o,className:(0,r.cn)(`w-full text-left px-3 py-1.5 text-sm flex items-center gap-2 hover:bg-accent transition-colors`,t===o&&`bg-accent`),onMouseDown:t=>{t.preventDefault(),i(e)},children:[e.avatarUrl?(0,s.jsx)(`img`,{src:e.avatarUrl,alt:e.name,className:`h-5 w-5 rounded-full object-cover`}):(0,s.jsx)(`div`,{className:`h-5 w-5 rounded-full bg-muted flex items-center justify-center text-[10px] font-medium`,children:e.name.charAt(0).toUpperCase()}),(0,s.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,s.jsx)(`span`,{className:`truncate`,children:e.name}),e.type!==`user`&&(0,s.jsxs)(`span`,{className:`ml-1 text-xs text-muted-foreground capitalize`,children:[`(`,e.type,`)`]})]})]},e.id))})};function wt(e,t,n){return{type:e.type,id:e.id,name:e.name,offset:t,length:n}}function Tt(e,t){if(!e||!t.length)return[];let n=[...t].sort((e,t)=>t.label.length-e.label.length),r=e,i=new Set;for(let e of n){if(!e.label)continue;let t=e.label.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),n=RegExp(`@${t}(?![\\p{L}\\p{N}_])`,`gu`);n.test(r)&&(i.add(e.id),r=r.replace(n,e=>` `.repeat(e.length)))}return[...i]}function Et(e){return e==null?[]:Array.isArray(e)?e.filter(e=>e!=null):[e]}function Dt(e){if(!e)return null;if(e.stageField)return e.stageField;let t=e.fields||{};for(let e of[`status`,`stage`,`state`,`phase`])if(e in t)return e;for(let[e,n]of Object.entries(t)){let t=(n?.type||``).toLowerCase();if(t===`status`||t===`stage`)return e}return null}function Ot(e,t){if(!e||!t)return null;let n=e.fields?.[t]?.options;return!Array.isArray(n)||n.length===0?null:n.map(e=>({value:e.value,label:e.label}))}function kt(e,t,n=4){if(!e)return[];if(Array.isArray(e.highlightFields)&&e.highlightFields.length>0)return e.highlightFields.slice(0,n);let r=new Set([`id`,`_id`,`created_at`,`updated_at`,`deleted_at`,`created_by`,`updated_by`,`deleted_by`,`organization_id`,`workspace_id`,`tenant_id`,`org_id`]);t&&r.add(t),e.primaryField&&r.add(e.primaryField);for(let t of[`name`,`full_name`,`title`,`subject`,`display_name`])t in(e.fields||{})&&r.add(t);let i=[`owner`,`owner_id`,`amount`,`rating`,`source`,`priority`,`industry`,`phone`,`email`,`close_date`,`due_date`,`start_date`,`expected_close_date`,`account`,`account_id`,`contact`,`contact_id`],a=new Set([`currency`,`number`,`integer`,`decimal`,`percent`,`date`,`datetime`,`time`,`reference`,`lookup`,`user`,`owner`,`select`,`enum`,`multiselect`,`status`,`email`,`phone`,`url`,`text`,`string`]),o=[],s=e.fields||{};for(let e of i)if(e in s&&!r.has(e)&&o.push(e),o.length>=n)return o;for(let e of Object.keys(s)){if(o.includes(e)||r.has(e))continue;let t=s[e]?.type;if(!(t&&!a.has(t))&&(o.push(e),o.length>=n))break}return o}function At(e,t={}){return{type:`page:header`,recordChrome:t.recordChrome!==!1,...Array.isArray(t.actions)&&t.actions.length>0?{actions:t.actions}:{}}}function jt(e,t){return!Array.isArray(t)||t.length===0?null:{type:`record:quick_actions`,actions:t,location:`record_header`}}function Mt(e,t={}){let n=t.statusField??Dt(e),r=t.stages??(n?Ot(e,n):null),i=t.highlightFields??kt(e,n),a=[];return!t.hideHighlights&&i.length>0&&a.push({type:`record:highlights`,fields:i}),!t.hidePath&&n&&r&&r.length>0&&a.push({type:`record:path`,statusField:n,stages:r}),a}function Nt(e,t,n){return{type:`record:details`,sections:t,...n&&n.length>0?{hideFields:n}:{}}}function Pt(e,t={}){let n=t.statusField??Dt(e),r=t.highlightFields??kt(e,n),i=[{label:`Details`,children:[Nt(e,t.sections,r)]}];return!t.hideRelatedTab&&Array.isArray(t.related)&&t.related.length>0&&i.push({label:`Related`,children:t.related.map(e=>({type:`record:related_list`,title:e.title,objectName:e.objectName,relationshipField:e.relationshipField,...e.columns?{columns:e.columns}:{},...e.limit?{limit:e.limit}:{},...e.icon?{icon:e.icon}:{}}))}),t.showActivity&&i.push({label:`Activity`,children:[{type:`record:activity`}]}),t.history&&i.push({label:`History`,children:[{type:`record:history`,entries:t.history.entries,loading:t.history.loading,emptyText:t.history.emptyText}]}),{type:`page:tabs`,items:i}}function Ft(){return{type:`record:discussion`}}function It(e,t={}){let n=t.slots||{},r=[];`header`in n&&n.header!==void 0?r.push(...Et(n.header)):r.push(At(e,{recordChrome:t.recordChrome,actions:t.headerActions})),`actions`in n&&n.actions!==void 0&&r.push(...Et(n.actions)),`alerts`in n&&n.alerts!==void 0&&r.push(...Et(n.alerts)),`highlights`in n&&n.highlights!==void 0?r.push(...Et(n.highlights)):r.push(...Mt(e,{highlightFields:t.highlightFields,statusField:t.statusField,stages:t.stages,hideHighlights:t.hideHighlights,hidePath:t.hidePath}));let i=t.showReferenceRail===!0&&!t.hideReferenceRail&&Array.isArray(t.related)&&t.related.length>=2,a=t.hideRelatedTab??i;if(`tabs`in n&&n.tabs!==void 0)r.push(...Et(n.tabs));else if(`details`in n&&n.details!==void 0){let i=Et(n.details),o=Pt(e,{sections:t.sections,related:t.related,showActivity:t.showActivity,history:t.history,highlightFields:t.highlightFields,statusField:t.statusField,hideRelatedTab:a});Array.isArray(o.items)&&o.items.length>0&&(o.items[0]={...o.items[0],children:i}),r.push(o)}else r.push(Pt(e,{sections:t.sections,related:t.related,showActivity:t.showActivity,history:t.history,highlightFields:t.highlightFields,statusField:t.statusField,hideRelatedTab:a}));`discussion`in n&&n.discussion!==void 0?r.push(...Et(n.discussion)):t.hideDiscussion||r.push(Ft());let o=[{name:`main`,width:`full`,components:r}],s=Et(n.rightRail);if(i||s.length>0){let e=[];i&&e.push({type:`record:reference_rail`,entries:t.related.map(e=>({objectName:e.objectName,relationshipField:e.relationshipField,title:e.title,icon:e.icon,displayField:e.displayField,limit:3}))}),s.length>0&&e.push(...s),o.push({name:`aside`,width:`small`,className:`hidden xl:flex flex-col gap-4`,components:e})}return{type:`record`,pageType:`record`,object:e?.name,template:`full-width`,regions:o}}t.ComponentRegistry.register(`detail-view`,de,{namespace:`plugin-detail`,label:`Detail View`,category:`Views`,icon:`FileText`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`objectName`,type:`string`,label:`Object Name`},{name:`resourceId`,type:`string`,label:`Resource ID`},{name:`api`,type:`string`,label:`API Endpoint`},{name:`data`,type:`object`,label:`Data`},{name:`layout`,type:`enum`,label:`Layout Mode`,enum:[`vertical`,`horizontal`,`grid`]},{name:`columns`,type:`number`,label:`Grid Columns`},{name:`sections`,type:`array`,label:`Sections`},{name:`fields`,type:`array`,label:`Fields`},{name:`tabs`,type:`array`,label:`Tabs`},{name:`related`,type:`array`,label:`Related Lists`},{name:`actions`,type:`array`,label:`Actions`},{name:`showBack`,type:`boolean`,label:`Show Back Button`,defaultValue:!0},{name:`backUrl`,type:`string`,label:`Back URL`},{name:`showEdit`,type:`boolean`,label:`Show Edit Button`,defaultValue:!1},{name:`editUrl`,type:`string`,label:`Edit URL`},{name:`showDelete`,type:`boolean`,label:`Show Delete Button`,defaultValue:!1},{name:`deleteConfirmation`,type:`string`,label:`Delete Confirmation Message`},{name:`loading`,type:`boolean`,label:`Show Loading State`},{name:`header`,type:`object`,label:`Custom Header`},{name:`footer`,type:`object`,label:`Custom Footer`}],defaultProps:{title:`Detail View`,showBack:!0,showEdit:!1,showDelete:!1,sections:[],fields:[],tabs:[],related:[]}}),t.ComponentRegistry.register(`detail-section`,k,{namespace:`plugin-detail`,label:`Detail Section`,category:`Detail Components`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`fields`,type:`array`,label:`Fields`,required:!0},{name:`collapsible`,type:`boolean`,label:`Collapsible`,defaultValue:!1},{name:`defaultCollapsed`,type:`boolean`,label:`Default Collapsed`,defaultValue:!1},{name:`columns`,type:`number`,label:`Columns`,defaultValue:2},{name:`showBorder`,type:`boolean`,label:`Show Border`,defaultValue:!0},{name:`headerColor`,type:`string`,label:`Header Color`}]}),t.ComponentRegistry.register(`related-list`,M,{namespace:`plugin-detail`,label:`Related List`,category:`Detail Components`,inputs:[{name:`title`,type:`string`,label:`Title`,required:!0},{name:`type`,type:`enum`,label:`Type`,enum:[{label:`List`,value:`list`},{label:`Grid`,value:`grid`},{label:`Table`,value:`table`}],defaultValue:`table`},{name:`api`,type:`string`,label:`API Endpoint`},{name:`data`,type:`array`,label:`Data`},{name:`columns`,type:`array`,label:`Columns`}]}),t.ComponentRegistry.register(`detail`,de,{namespace:`view`,category:`view`,label:`Detail`,icon:`FileText`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`recordId`,type:`string`,label:`Record ID`},{name:`fields`,type:`array`,label:`Fields`}]}),t.ComponentRegistry.register(`record:details`,me,{namespace:`record`,category:`record`,label:`Record Details`,icon:`FileText`}),t.ComponentRegistry.register(`record:related_list`,_e,{namespace:`record`,category:`record`,label:`Related List`,icon:`List`}),t.ComponentRegistry.register(`record:highlights`,ye,{namespace:`record`,category:`record`,label:`Highlights Panel`,icon:`Star`}),t.ComponentRegistry.register(`record:activity`,Le,{namespace:`record`,category:`record`,label:`Activity Timeline`,icon:`Activity`}),t.ComponentRegistry.register(`record:chatter`,Be,{namespace:`record`,category:`record`,label:`Chatter Feed`,icon:`MessageSquare`}),t.ComponentRegistry.register(`record:discussion`,Be,{namespace:`record`,category:`record`,label:`Discussion`,icon:`MessageSquare`}),t.ComponentRegistry.register(`record:path`,He,{namespace:`record`,category:`record`,label:`Path / Stepper`,icon:`GitBranch`}),t.ComponentRegistry.register(`record:quick_actions`,We,{namespace:`record`,category:`record`,label:`Quick Actions`,icon:`Zap`}),t.ComponentRegistry.register(`record:history`,Je,{namespace:`record`,category:`record`,label:`History Timeline`,icon:`Clock`}),t.ComponentRegistry.register(`record:reference_rail`,Qe,{namespace:`record`,category:`record`,label:`Reference Rail`,icon:`PanelRight`}),t.ComponentRegistry.register(`record:alert`,tt,{namespace:`record`,category:`record`,label:`Alert Banner`,icon:`AlertTriangle`}),e.ActivityTimeline=H,e.CommentAttachment=ke,e.CommentInput=St,e.ConcurrentUpdateDialog=Y,e.DETAIL_DEFAULT_TRANSLATIONS=w,e.DetailSection=k,e.DetailTabs=A,e.DetailView=de,e.DiffView=ft,e.FieldChangeItem=be,e.HeaderHighlight=P,e.HistoryTimeline=ne,e.InlineCreateRelated=st,e.MentionAutocomplete=Ct,e.PointInTimeRestore=xt,e.ReactionPicker=Q,e.RecordActivityRenderer=Le,e.RecordActivityTimeline=Fe,e.RecordAlertRenderer=tt,e.RecordChatterPanel=Re,e.RecordChatterRenderer=Be,e.RecordComments=I,e.RecordDetailDrawer=at,e.RecordDetailsRenderer=me,e.RecordHighlightsRenderer=ye,e.RecordHistoryRenderer=Je,e.RecordMetaFooter=ce,e.RecordNavigationEnhanced=pt,e.RecordPathRenderer=He,e.RecordQuickActionsRenderer=We,e.RecordReferenceRailRenderer=Qe,e.RecordRelatedListRenderer=_e,e.RelatedList=M,e.RelationshipGraph=yt,e.RichTextCommentInput=Te,e.SectionGroup=N,e.SubscriptionToggle=Ce,e.ThreadedReplies=Se,e.applyAutoSpan=x,e.applyDetailAutoLayout=S,e.buildDefaultActions=jt,e.buildDefaultDetails=Nt,e.buildDefaultDiscussion=Ft,e.buildDefaultHeader=At,e.buildDefaultHighlights=Mt,e.buildDefaultPageSchema=It,e.buildDefaultTabs=Pt,e.createMentionFromSuggestion=wt,e.createSafeTranslationHook=C,e.deriveHighlightFields=kt,e.deriveRecordPageHref=ot,e.deriveStages=Ot,e.detectStatusField=Dt,e.extractMentions=Tt,e.inferDetailColumns=b,e.isConcurrentUpdateError=pe,e.isWideFieldType=y,e.useDetailTranslation=T});
|
|
5
|
+
`)}}function lt(e,t){let n=[],r=Math.max(e.length,t.length);for(let i=0;i<r;i++){let r=i<e.length?e[i]:void 0,a=i<t.length?t[i]:void 0;r===a?n.push({type:`unchanged`,value:r}):(r!==void 0&&n.push({type:`removed`,value:r}),a!==void 0&&n.push({type:`added`,value:a}))}return n}var ut={added:`bg-green-50 text-green-800 dark:bg-green-950/30 dark:text-green-300`,removed:`bg-red-50 text-red-800 dark:bg-red-950/30 dark:text-red-300`,unchanged:`text-muted-foreground`},dt={added:`+`,removed:`-`,unchanged:` `},ft=({oldValue:e,newValue:t,fieldName:a,fieldType:o=`string`,mode:c=`unified`,className:l})=>{let{t:u}=T(),[d,f]=n.useState(c),p=n.useMemo(()=>ct(e,o),[e,o]),m=n.useMemo(()=>ct(t,o),[t,o]),h=n.useMemo(()=>lt(p,m),[p,m]),g=h.some(e=>e.type!==`unchanged`),_=n.useMemo(()=>{if(d!==`side-by-side`)return[];let e=[],t=0;for(;t<h.length;){let n=h[t];if(n.type===`unchanged`)e.push({left:n,right:n}),t++;else if(n.type===`removed`){let r=t+1<h.length?h[t+1]:null;r&&r.type===`added`?(e.push({left:n,right:r}),t+=2):(e.push({left:n,right:null}),t++)}else e.push({left:null,right:n}),t++}return e},[d,h]);return(0,s.jsxs)(r.Card,{className:(0,r.cn)(`overflow-hidden`,l),children:[(0,s.jsx)(r.CardHeader,{className:`pb-2`,children:(0,s.jsxs)(r.CardTitle,{className:`flex items-center justify-between text-sm`,children:[(0,s.jsx)(`span`,{className:`font-medium`,children:a}),(0,s.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,s.jsx)(r.Button,{variant:d===`unified`?`secondary`:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>f(`unified`),title:u(`detail.unifiedDiff`),children:(0,s.jsx)(i.Rows3,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(r.Button,{variant:d===`side-by-side`?`secondary`:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>f(`side-by-side`),title:u(`detail.sideBySideDiff`),children:(0,s.jsx)(i.Columns2,{className:`h-3.5 w-3.5`})})]})]})}),(0,s.jsx)(r.CardContent,{className:`p-0`,children:g?d===`unified`?(0,s.jsx)(`div`,{className:`font-mono text-xs overflow-x-auto`,children:h.map((e,t)=>(0,s.jsxs)(`div`,{className:(0,r.cn)(`px-4 py-0.5 whitespace-pre-wrap border-l-2`,ut[e.type],e.type===`added`&&`border-l-green-500`,e.type===`removed`&&`border-l-red-500`,e.type===`unchanged`&&`border-l-transparent`),children:[(0,s.jsx)(`span`,{className:`select-none mr-2 inline-block w-3 text-center opacity-60`,children:dt[e.type]}),e.value]},t))}):(0,s.jsx)(`div`,{className:`overflow-x-auto`,children:(0,s.jsxs)(`div`,{className:`grid grid-cols-2 divide-x font-mono text-xs min-w-0`,children:[(0,s.jsx)(`div`,{className:`px-3 py-1.5 text-xs font-medium text-muted-foreground bg-muted/50`,children:u(`detail.previousVersion`)}),(0,s.jsx)(`div`,{className:`px-3 py-1.5 text-xs font-medium text-muted-foreground bg-muted/50`,children:u(`detail.currentVersion`)}),_.map((e,t)=>(0,s.jsxs)(n.Fragment,{children:[(0,s.jsx)(`div`,{className:(0,r.cn)(`px-3 py-0.5 whitespace-pre-wrap min-h-[1.5em]`,e.left?ut[e.left.type]:`bg-muted/20`),children:e.left?.value??``}),(0,s.jsx)(`div`,{className:(0,r.cn)(`px-3 py-0.5 whitespace-pre-wrap min-h-[1.5em]`,e.right?ut[e.right.type]:`bg-muted/20`),children:e.right?.value??``})]},t))]})}):(0,s.jsx)(`p`,{className:`px-4 py-3 text-sm text-muted-foreground`,children:u(`detail.noChanges`)})})]})},pt=({currentIndex:e,totalRecords:t,recordIds:a,onNavigate:o,onSearch:c,className:l})=>{let{t:u}=T(),[d,f]=n.useState(``),[p,m]=n.useState(!1),h=n.useRef(null),g=e>0,_=e>0,v=e<t-1,y=e<t-1,b=n.useCallback(()=>{g&&o(a[0])},[g,o,a]),x=n.useCallback(()=>{_&&o(a[e-1])},[_,o,a,e]),S=n.useCallback(()=>{v&&o(a[e+1])},[v,o,a,e]),C=n.useCallback(()=>{y&&o(a[a.length-1])},[y,o,a]),w=n.useCallback(e=>{let t=e.target.value;f(t),c?.(t)},[c]),E=n.useCallback(()=>{m(e=>(e?(f(``),c?.(``)):requestAnimationFrame(()=>h.current?.focus()),!e))},[c]);return n.useEffect(()=>{let t=t=>{let n=t.target?.tagName;if(!((n===`INPUT`||n===`TEXTAREA`||t.target?.isContentEditable)&&t.target!==h.current)){if(t.target===h.current){t.key===`Escape`&&(t.preventDefault(),m(!1),f(``),c?.(``),t.target.blur());return}switch(t.key){case`Home`:t.preventDefault(),g&&o(a[0]);break;case`End`:t.preventDefault(),y&&o(a[a.length-1]);break;case`ArrowLeft`:t.preventDefault(),_&&o(a[e-1]);break;case`ArrowRight`:t.preventDefault(),v&&o(a[e+1]);break}}};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,a,g,_,v,y,o,c]),(0,s.jsxs)(`div`,{className:(0,r.cn)(`flex items-center gap-1.5`,l),children:[(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:!g,onClick:b,title:u(`detail.firstRecord`),children:(0,s.jsx)(i.ChevronsLeft,{className:`h-4 w-4`})}),(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:!_,onClick:x,title:u(`detail.previousRecordKey`),children:(0,s.jsx)(i.ChevronLeft,{className:`h-4 w-4`})}),(0,s.jsx)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap px-1.5 tabular-nums`,children:t>0?u(`detail.recordOf`,{current:e+1,total:t}):u(`detail.noRecords`)}),(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:!v,onClick:S,title:u(`detail.nextRecordKey`),children:(0,s.jsx)(i.ChevronRight,{className:`h-4 w-4`})}),(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:!y,onClick:C,title:u(`detail.lastRecord`),children:(0,s.jsx)(i.ChevronsRight,{className:`h-4 w-4`})}),c&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Button,{variant:p?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:E,title:u(`detail.searchWhileNavigating`),children:(0,s.jsx)(i.Search,{className:`h-4 w-4`})}),p&&(0,s.jsx)(`div`,{className:`relative`,children:(0,s.jsx)(r.Input,{ref:h,type:`text`,placeholder:u(`detail.searchRecords`),value:d,onChange:w,className:`h-8 w-48 text-sm`})})]})]})},mt=28,ht=[`fill-primary stroke-primary`,`fill-blue-500 stroke-blue-500`,`fill-emerald-500 stroke-emerald-500`,`fill-amber-500 stroke-amber-500`],gt=[`fill-primary-foreground`,`fill-white`,`fill-white`,`fill-white`];function _t(e,t,n,r,i){let a=[],o=[],s=new Set,c=r/2,l=i/2;a.push({id:e.id,label:e.label,type:e.type,x:c,y:l,level:0}),s.add(e.id);let u=Math.min(r,i)*.32,d=t.filter(e=>!s.has(e.id));if(d.forEach((t,n)=>{let r=2*Math.PI*n/d.length-Math.PI/2,i=c+u*Math.cos(r),f=l+u*Math.sin(r);a.push({id:t.id,label:t.label,type:t.type,x:i,y:f,level:1}),o.push({fromId:e.id,toId:t.id,fromX:c,fromY:l,toX:i,toY:f}),s.add(t.id)}),n>=2){let e=Math.min(r,i)*.46,t=[];d.forEach(e=>{let n=a.find(t=>t.id===e.id);n&&(e.relatedRecords||[]).filter(e=>!s.has(e.id)).forEach(r=>{t.push({node:r,parentX:n.x,parentY:n.y,parentId:e.id}),s.add(r.id)})}),t.forEach((n,r)=>{let i=2*Math.PI*r/Math.max(t.length,1)-Math.PI/2,s=c+e*Math.cos(i),u=l+e*Math.sin(i);a.push({id:n.node.id,label:n.node.label,type:n.node.type,x:s,y:u,level:2}),o.push({fromId:n.parentId,toId:n.node.id,fromX:n.parentX,fromY:n.parentY,toX:s,toY:u})})}return{nodes:a,edges:o}}function vt(e,t=6){return e.length<=t?e:e.slice(0,t-1)+`…`}var yt=({record:e,relatedRecords:t,levels:a=1,onNodeClick:o,className:c})=>{let l=n.useRef(null),[u,d]=n.useState({width:500,height:400}),[f,p]=n.useState(null);n.useEffect(()=>{let e=l.current;if(!e)return;let t=e.parentElement;if(!t)return;let n=new ResizeObserver(e=>{for(let t of e){let{width:e}=t.contentRect;e>0&&d({width:e,height:Math.max(300,e*.7)})}});return n.observe(t),()=>n.disconnect()},[]);let{nodes:m,edges:h}=n.useMemo(()=>_t(e,t,a,u.width,u.height),[e,t,a,u]);return(0,s.jsxs)(r.Card,{className:(0,r.cn)(`overflow-hidden`,c),children:[(0,s.jsx)(r.CardHeader,{className:`pb-2`,children:(0,s.jsxs)(r.CardTitle,{className:`flex items-center gap-2 text-base`,children:[(0,s.jsx)(i.Network,{className:`h-4 w-4`}),`Relationships`,(0,s.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,t.length,` related)`]})]})}),(0,s.jsx)(r.CardContent,{className:`p-0`,children:(0,s.jsxs)(`svg`,{ref:l,width:`100%`,height:u.height,viewBox:`0 0 ${u.width} ${u.height}`,className:`select-none`,children:[h.map((e,t)=>(0,s.jsx)(`line`,{x1:e.fromX,y1:e.fromY,x2:e.toX,y2:e.toY,className:`stroke-border`,strokeWidth:1.5,strokeOpacity:.5},`edge-${t}`)),m.map(e=>{let t=f===e.id,n=ht[Math.min(e.level,ht.length-1)],i=gt[Math.min(e.level,gt.length-1)],a=e.level===0?34:mt;return(0,s.jsxs)(`g`,{className:(0,r.cn)(`cursor-pointer transition-transform`,o&&`hover:opacity-80`),onClick:()=>o?.(e.id),onMouseEnter:()=>p(e.id),onMouseLeave:()=>p(null),children:[(0,s.jsx)(`circle`,{cx:e.x,cy:e.y,r:t?a+3:a,className:n,fillOpacity:e.level===0?1:.85,strokeWidth:2,strokeOpacity:.3}),(0,s.jsx)(`text`,{x:e.x,y:e.y,textAnchor:`middle`,dominantBaseline:`central`,className:(0,r.cn)(`text-[10px] font-medium pointer-events-none`,i),children:vt(e.label)}),e.type&&(0,s.jsx)(`text`,{x:e.x,y:e.y+a+12,textAnchor:`middle`,className:`fill-muted-foreground text-[9px] pointer-events-none`,children:e.type}),t&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`rect`,{x:e.x-50,y:e.y-a-28,width:100,height:20,rx:4,className:`fill-popover stroke-border`,strokeWidth:1}),(0,s.jsx)(`text`,{x:e.x,y:e.y-a-16,textAnchor:`middle`,dominantBaseline:`central`,className:`fill-popover-foreground text-[10px] pointer-events-none`,children:e.label})]})]},e.id)})]})})]})};function bt(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:t.toLocaleString()}catch{return e}}var xt=({recordId:e,revisions:t,onRestore:a,className:o})=>{let[c,l]=n.useState(null),[u,d]=n.useState(!1),[f,p]=n.useState(!1),m=n.useMemo(()=>t.find(e=>e.id===c)??null,[t,c]),h=n.useCallback(async()=>{if(!(!m||!a)){if(!u){d(!0);return}p(!0);try{let e=m.snapshot??{};await a(m.id,e),d(!1),l(null)}finally{p(!1)}}},[m,a,u]),g=n.useCallback(()=>{d(!1)},[]);return(0,s.jsxs)(r.Card,{className:(0,r.cn)(``,o),children:[(0,s.jsx)(r.CardHeader,{className:`pb-3`,children:(0,s.jsxs)(r.CardTitle,{className:`flex items-center gap-2 text-base`,children:[(0,s.jsx)(i.History,{className:`h-4 w-4`}),`Revision History`,(0,s.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,t.length,`)`]})]})}),(0,s.jsx)(r.CardContent,{children:t.length===0?(0,s.jsx)(`p`,{className:`text-sm text-muted-foreground text-center py-4`,children:`No revisions recorded`}):(0,s.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4`,children:[(0,s.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,s.jsxs)(`div`,{className:`relative`,children:[(0,s.jsx)(`div`,{className:`absolute left-3 top-2 bottom-2 w-px bg-border`}),(0,s.jsx)(`div`,{className:`space-y-1`,children:t.map(e=>{let t=e.id===c;return(0,s.jsxs)(`button`,{type:`button`,className:(0,r.cn)(`w-full text-left flex items-start gap-3 py-2 px-2 rounded-md transition-colors relative`,t?`bg-accent`:`hover:bg-accent/50`),onClick:()=>{l(e.id),d(!1)},children:[(0,s.jsx)(`div`,{className:(0,r.cn)(`shrink-0 h-6 w-6 rounded-full border-2 flex items-center justify-center z-10 mt-0.5`,t?`border-primary bg-primary`:`border-border bg-background`),children:t&&(0,s.jsx)(i.ChevronRight,{className:`h-3 w-3 text-primary-foreground`})}),(0,s.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,s.jsx)(`span`,{className:`text-sm font-medium`,children:e.user}),(0,s.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:bt(e.timestamp)})]}),(0,s.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:[e.changes.length,` field`,e.changes.length===1?``:`s`,` `,`changed`]})]})]},e.id)})})]})}),m&&(0,s.jsxs)(`div`,{className:`lg:w-80 border rounded-md p-3 space-y-3`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium`,children:[(0,s.jsx)(i.Eye,{className:`h-4 w-4 text-muted-foreground`}),`Revision Preview`]}),(0,s.jsx)(`div`,{className:`space-y-2`,children:m.changes.map((e,t)=>(0,s.jsxs)(`div`,{className:`text-xs`,children:[(0,s.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:e.field}),(0,s.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-0.5`,children:[(0,s.jsx)(`span`,{className:`line-through text-red-600 dark:text-red-400 truncate max-w-[120px]`,children:e.oldValue==null?`(empty)`:String(e.oldValue)}),(0,s.jsx)(i.ChevronRight,{className:`h-3 w-3 text-muted-foreground shrink-0`}),(0,s.jsx)(`span`,{className:`text-green-600 dark:text-green-400 truncate max-w-[120px]`,children:e.newValue==null?`(empty)`:String(e.newValue)})]})]},t))}),m.snapshot&&(0,s.jsxs)(`div`,{className:`border-t pt-2 space-y-1`,children:[(0,s.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:`Record state at this point`}),(0,s.jsx)(`div`,{className:`max-h-40 overflow-y-auto space-y-1`,children:Object.entries(m.snapshot).map(([e,t])=>(0,s.jsxs)(`div`,{className:`flex justify-between text-xs gap-2`,children:[(0,s.jsx)(`span`,{className:`text-muted-foreground truncate`,children:e}),(0,s.jsx)(`span`,{className:`font-mono truncate max-w-[140px]`,children:t==null?`–`:String(t)})]},e))})]}),a&&(0,s.jsx)(`div`,{className:`pt-1 space-y-2`,children:u?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(`p`,{className:`text-xs text-amber-600 dark:text-amber-400`,children:[`This will restore the record to its state at`,` `,bt(m.timestamp),`. Continue?`]}),(0,s.jsxs)(`div`,{className:`flex gap-2`,children:[(0,s.jsxs)(r.Button,{variant:`destructive`,size:`sm`,className:`gap-1.5 flex-1`,onClick:h,disabled:f,children:[(0,s.jsx)(i.RotateCcw,{className:`h-3.5 w-3.5`}),f?`Restoring…`:`Confirm Restore`]}),(0,s.jsx)(r.Button,{variant:`ghost`,size:`sm`,onClick:g,disabled:f,children:`Cancel`})]})]}):(0,s.jsxs)(r.Button,{variant:`outline`,size:`sm`,className:`w-full gap-1.5`,onClick:h,children:[(0,s.jsx)(i.RotateCcw,{className:`h-3.5 w-3.5`}),`Restore to this point`]})})]})]})})]})},St=({onSubmit:e,placeholder:t=`Leave a comment…`,disabled:a=!1,className:o})=>{let[c,l]=n.useState(``),[u,d]=n.useState(!1),f=n.useCallback(async()=>{let t=c.trim();if(t){d(!0);try{await e(t),l(``)}finally{d(!1)}}},[c,e]),p=n.useCallback(e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),f())},[f]);return(0,s.jsxs)(`div`,{className:(0,r.cn)(`flex gap-2`,o),children:[(0,s.jsx)(`textarea`,{className:`flex-1 min-h-[60px] rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring resize-none`,placeholder:t,value:c,onChange:e=>l(e.target.value),onKeyDown:p,disabled:a||u}),(0,s.jsx)(r.Button,{size:`icon`,variant:`default`,onClick:f,disabled:!c.trim()||u||a,className:`shrink-0 self-end`,"aria-label":`Submit comment`,children:(0,s.jsx)(i.Send,{className:`h-4 w-4`})})]})},Ct=({query:e,suggestions:t,onSelect:i,visible:a=!0,activeIndex:o=0,className:c})=>{let l=n.useMemo(()=>{if(!e)return t;let n=e.toLowerCase();return t.filter(e=>e.name.toLowerCase().includes(n)||e.id.toLowerCase().includes(n))},[e,t]);return!a||l.length===0?null:(0,s.jsx)(`div`,{className:(0,r.cn)(`bg-popover border rounded-md shadow-md z-50 max-h-48 overflow-y-auto w-56`,c),role:`listbox`,"aria-label":`Mention suggestions`,children:l.map((e,t)=>(0,s.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t===o,className:(0,r.cn)(`w-full text-left px-3 py-1.5 text-sm flex items-center gap-2 hover:bg-accent transition-colors`,t===o&&`bg-accent`),onMouseDown:t=>{t.preventDefault(),i(e)},children:[e.avatarUrl?(0,s.jsx)(`img`,{src:e.avatarUrl,alt:e.name,className:`h-5 w-5 rounded-full object-cover`}):(0,s.jsx)(`div`,{className:`h-5 w-5 rounded-full bg-muted flex items-center justify-center text-[10px] font-medium`,children:e.name.charAt(0).toUpperCase()}),(0,s.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,s.jsx)(`span`,{className:`truncate`,children:e.name}),e.type!==`user`&&(0,s.jsxs)(`span`,{className:`ml-1 text-xs text-muted-foreground capitalize`,children:[`(`,e.type,`)`]})]})]},e.id))})};function wt(e,t,n){return{type:e.type,id:e.id,name:e.name,offset:t,length:n}}function Tt(e,t){if(!e||!t.length)return[];let n=[...t].sort((e,t)=>t.label.length-e.label.length),r=e,i=new Set;for(let e of n){if(!e.label)continue;let t=e.label.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),n=RegExp(`@${t}(?![\\p{L}\\p{N}_])`,`gu`);n.test(r)&&(i.add(e.id),r=r.replace(n,e=>` `.repeat(e.length)))}return[...i]}function Et(e){return e==null?[]:Array.isArray(e)?e.filter(e=>e!=null):[e]}function Dt(e){if(!e)return null;if(e.stageField)return e.stageField;let t=e.fields||{};for(let e of[`status`,`stage`,`state`,`phase`])if(e in t)return e;for(let[e,n]of Object.entries(t)){let t=(n?.type||``).toLowerCase();if(t===`status`||t===`stage`)return e}return null}function Ot(e,t){if(!e||!t)return null;let n=e.fields?.[t]?.options;return!Array.isArray(n)||n.length===0?null:n.map(e=>({value:e.value,label:e.label}))}function kt(e,t,n=4){if(!e)return[];if(Array.isArray(e.highlightFields)&&e.highlightFields.length>0)return e.highlightFields.slice(0,n);let r=new Set([`id`,`_id`,`created_at`,`updated_at`,`deleted_at`,`created_by`,`updated_by`,`deleted_by`,`organization_id`,`workspace_id`,`tenant_id`,`org_id`]);t&&r.add(t),e.primaryField&&r.add(e.primaryField);for(let t of[`name`,`full_name`,`title`,`subject`,`display_name`])t in(e.fields||{})&&r.add(t);let i=[`owner`,`owner_id`,`amount`,`rating`,`source`,`priority`,`industry`,`phone`,`email`,`close_date`,`due_date`,`start_date`,`expected_close_date`,`account`,`account_id`,`contact`,`contact_id`],a=new Set([`currency`,`number`,`integer`,`decimal`,`percent`,`date`,`datetime`,`time`,`reference`,`lookup`,`user`,`owner`,`select`,`enum`,`multiselect`,`status`,`email`,`phone`,`url`,`text`,`string`]),o=[],s=e.fields||{};for(let e of i)if(e in s&&!r.has(e)&&o.push(e),o.length>=n)return o;for(let e of Object.keys(s)){if(o.includes(e)||r.has(e))continue;let t=s[e]?.type;if(!(t&&!a.has(t))&&(o.push(e),o.length>=n))break}return o}function At(e,t={}){return{type:`page:header`,recordChrome:t.recordChrome!==!1,...Array.isArray(t.actions)&&t.actions.length>0?{actions:t.actions}:{}}}function jt(e,t){return!Array.isArray(t)||t.length===0?null:{type:`record:quick_actions`,actions:t,location:`record_header`}}function Mt(e,t={}){let n=t.statusField??Dt(e),r=t.stages??(n?Ot(e,n):null),i=t.highlightFields??kt(e,n),a=[];return!t.hideHighlights&&i.length>0&&a.push({type:`record:highlights`,fields:i}),!t.hidePath&&n&&r&&r.length>0&&a.push({type:`record:path`,statusField:n,stages:r}),a}function Nt(e,t,n){return{type:`record:details`,sections:t,...n&&n.length>0?{hideFields:n}:{}}}function Pt(e,t={}){let n=t.statusField??Dt(e),r=t.highlightFields??kt(e,n),i=[{label:`Details`,children:[Nt(e,t.sections,r)]}];if(!t.hideRelatedTab&&Array.isArray(t.related)&&t.related.length>0){let e=e=>({type:`record:related_list`,title:e.title,objectName:e.objectName,relationshipField:e.relationshipField,...e.columns?{columns:e.columns}:{},...e.limit?{limit:e.limit}:{},...e.icon?{icon:e.icon}:{}});if(t.relatedLayout===`tabs`)for(let n of t.related)i.push({label:n.title||n.objectName,...n.icon?{icon:n.icon}:{},children:[e(n)]});else i.push({label:`Related`,children:t.related.map(e)})}return t.showActivity&&i.push({label:`Activity`,children:[{type:`record:activity`}]}),t.history&&i.push({label:`History`,children:[{type:`record:history`,entries:t.history.entries,loading:t.history.loading,emptyText:t.history.emptyText}]}),{type:`page:tabs`,items:i}}function Ft(){return{type:`record:discussion`}}function It(e,t={}){let n=t.slots||{},r=[];`header`in n&&n.header!==void 0?r.push(...Et(n.header)):r.push(At(e,{recordChrome:t.recordChrome,actions:t.headerActions})),`actions`in n&&n.actions!==void 0&&r.push(...Et(n.actions)),`alerts`in n&&n.alerts!==void 0&&r.push(...Et(n.alerts)),`highlights`in n&&n.highlights!==void 0?r.push(...Et(n.highlights)):r.push(...Mt(e,{highlightFields:t.highlightFields,statusField:t.statusField,stages:t.stages,hideHighlights:t.hideHighlights,hidePath:t.hidePath}));let i=t.showReferenceRail===!0&&!t.hideReferenceRail&&Array.isArray(t.related)&&t.related.length>=2,a=t.hideRelatedTab??i;if(`tabs`in n&&n.tabs!==void 0)r.push(...Et(n.tabs));else if(`details`in n&&n.details!==void 0){let i=Et(n.details),o=Pt(e,{sections:t.sections,related:t.related,showActivity:t.showActivity,history:t.history,highlightFields:t.highlightFields,statusField:t.statusField,hideRelatedTab:a,relatedLayout:t.relatedLayout});Array.isArray(o.items)&&o.items.length>0&&(o.items[0]={...o.items[0],children:i}),r.push(o)}else r.push(Pt(e,{sections:t.sections,related:t.related,showActivity:t.showActivity,history:t.history,highlightFields:t.highlightFields,statusField:t.statusField,hideRelatedTab:a,relatedLayout:t.relatedLayout}));`discussion`in n&&n.discussion!==void 0?r.push(...Et(n.discussion)):t.hideDiscussion||r.push(Ft());let o=[{name:`main`,width:`full`,components:r}],s=Et(n.rightRail);if(i||s.length>0){let e=[];i&&e.push({type:`record:reference_rail`,entries:t.related.map(e=>({objectName:e.objectName,relationshipField:e.relationshipField,title:e.title,icon:e.icon,displayField:e.displayField,limit:3}))}),s.length>0&&e.push(...s),o.push({name:`aside`,width:`small`,className:`hidden xl:flex flex-col gap-4`,components:e})}return{type:`record`,pageType:`record`,object:e?.name,template:`full-width`,regions:o}}t.ComponentRegistry.register(`detail-view`,de,{namespace:`plugin-detail`,label:`Detail View`,category:`Views`,icon:`FileText`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`objectName`,type:`string`,label:`Object Name`},{name:`resourceId`,type:`string`,label:`Resource ID`},{name:`api`,type:`string`,label:`API Endpoint`},{name:`data`,type:`object`,label:`Data`},{name:`layout`,type:`enum`,label:`Layout Mode`,enum:[`vertical`,`horizontal`,`grid`]},{name:`columns`,type:`number`,label:`Grid Columns`},{name:`sections`,type:`array`,label:`Sections`},{name:`fields`,type:`array`,label:`Fields`},{name:`tabs`,type:`array`,label:`Tabs`},{name:`related`,type:`array`,label:`Related Lists`},{name:`actions`,type:`array`,label:`Actions`},{name:`showBack`,type:`boolean`,label:`Show Back Button`,defaultValue:!0},{name:`backUrl`,type:`string`,label:`Back URL`},{name:`showEdit`,type:`boolean`,label:`Show Edit Button`,defaultValue:!1},{name:`editUrl`,type:`string`,label:`Edit URL`},{name:`showDelete`,type:`boolean`,label:`Show Delete Button`,defaultValue:!1},{name:`deleteConfirmation`,type:`string`,label:`Delete Confirmation Message`},{name:`loading`,type:`boolean`,label:`Show Loading State`},{name:`header`,type:`object`,label:`Custom Header`},{name:`footer`,type:`object`,label:`Custom Footer`}],defaultProps:{title:`Detail View`,showBack:!0,showEdit:!1,showDelete:!1,sections:[],fields:[],tabs:[],related:[]}}),t.ComponentRegistry.register(`detail-section`,k,{namespace:`plugin-detail`,label:`Detail Section`,category:`Detail Components`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`fields`,type:`array`,label:`Fields`,required:!0},{name:`collapsible`,type:`boolean`,label:`Collapsible`,defaultValue:!1},{name:`defaultCollapsed`,type:`boolean`,label:`Default Collapsed`,defaultValue:!1},{name:`columns`,type:`number`,label:`Columns`,defaultValue:2},{name:`showBorder`,type:`boolean`,label:`Show Border`,defaultValue:!0},{name:`headerColor`,type:`string`,label:`Header Color`}]}),t.ComponentRegistry.register(`related-list`,M,{namespace:`plugin-detail`,label:`Related List`,category:`Detail Components`,inputs:[{name:`title`,type:`string`,label:`Title`,required:!0},{name:`type`,type:`enum`,label:`Type`,enum:[{label:`List`,value:`list`},{label:`Grid`,value:`grid`},{label:`Table`,value:`table`}],defaultValue:`table`},{name:`api`,type:`string`,label:`API Endpoint`},{name:`data`,type:`array`,label:`Data`},{name:`columns`,type:`array`,label:`Columns`}]}),t.ComponentRegistry.register(`detail`,de,{namespace:`view`,category:`view`,label:`Detail`,icon:`FileText`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`recordId`,type:`string`,label:`Record ID`},{name:`fields`,type:`array`,label:`Fields`}]}),t.ComponentRegistry.register(`record:details`,me,{namespace:`record`,category:`record`,label:`Record Details`,icon:`FileText`}),t.ComponentRegistry.register(`record:related_list`,_e,{namespace:`record`,category:`record`,label:`Related List`,icon:`List`}),t.ComponentRegistry.register(`record:highlights`,ye,{namespace:`record`,category:`record`,label:`Highlights Panel`,icon:`Star`}),t.ComponentRegistry.register(`record:activity`,Le,{namespace:`record`,category:`record`,label:`Activity Timeline`,icon:`Activity`}),t.ComponentRegistry.register(`record:chatter`,Be,{namespace:`record`,category:`record`,label:`Chatter Feed`,icon:`MessageSquare`}),t.ComponentRegistry.register(`record:discussion`,Be,{namespace:`record`,category:`record`,label:`Discussion`,icon:`MessageSquare`}),t.ComponentRegistry.register(`record:path`,He,{namespace:`record`,category:`record`,label:`Path / Stepper`,icon:`GitBranch`}),t.ComponentRegistry.register(`record:quick_actions`,We,{namespace:`record`,category:`record`,label:`Quick Actions`,icon:`Zap`}),t.ComponentRegistry.register(`record:history`,Je,{namespace:`record`,category:`record`,label:`History Timeline`,icon:`Clock`}),t.ComponentRegistry.register(`record:reference_rail`,Qe,{namespace:`record`,category:`record`,label:`Reference Rail`,icon:`PanelRight`}),t.ComponentRegistry.register(`record:alert`,tt,{namespace:`record`,category:`record`,label:`Alert Banner`,icon:`AlertTriangle`}),e.ActivityTimeline=H,e.CommentAttachment=ke,e.CommentInput=St,e.ConcurrentUpdateDialog=Y,e.DETAIL_DEFAULT_TRANSLATIONS=w,e.DetailSection=k,e.DetailTabs=A,e.DetailView=de,e.DiffView=ft,e.FieldChangeItem=be,e.HeaderHighlight=P,e.HistoryTimeline=ne,e.InlineCreateRelated=st,e.MentionAutocomplete=Ct,e.PointInTimeRestore=xt,e.ReactionPicker=Q,e.RecordActivityRenderer=Le,e.RecordActivityTimeline=Fe,e.RecordAlertRenderer=tt,e.RecordChatterPanel=Re,e.RecordChatterRenderer=Be,e.RecordComments=I,e.RecordDetailDrawer=at,e.RecordDetailsRenderer=me,e.RecordHighlightsRenderer=ye,e.RecordHistoryRenderer=Je,e.RecordMetaFooter=ce,e.RecordNavigationEnhanced=pt,e.RecordPathRenderer=He,e.RecordQuickActionsRenderer=We,e.RecordReferenceRailRenderer=Qe,e.RecordRelatedListRenderer=_e,e.RelatedList=M,e.RelationshipGraph=yt,e.RichTextCommentInput=Te,e.SectionGroup=N,e.SubscriptionToggle=Ce,e.ThreadedReplies=Se,e.applyAutoSpan=x,e.applyDetailAutoLayout=S,e.buildDefaultActions=jt,e.buildDefaultDetails=Nt,e.buildDefaultDiscussion=Ft,e.buildDefaultHeader=At,e.buildDefaultHighlights=Mt,e.buildDefaultPageSchema=It,e.buildDefaultTabs=Pt,e.createMentionFromSuggestion=wt,e.createSafeTranslationHook=C,e.deriveHighlightFields=kt,e.deriveRecordPageHref=ot,e.deriveStages=Ot,e.detectStatusField=Dt,e.extractMentions=Tt,e.inferDetailColumns=b,e.isConcurrentUpdateError=pe,e.isWideFieldType=y,e.useDetailTranslation=T});
|
|
@@ -124,6 +124,21 @@ export interface BuildPageOptions {
|
|
|
124
124
|
limit?: number;
|
|
125
125
|
icon?: string;
|
|
126
126
|
}>;
|
|
127
|
+
/**
|
|
128
|
+
* How the related child lists are laid out under the tab strip.
|
|
129
|
+
*
|
|
130
|
+
* - `'stack'` (default) — all related lists stack vertically inside a
|
|
131
|
+
* single `Related` tab. Preserves the legacy behavior.
|
|
132
|
+
* - `'tabs'` — each related child gets its OWN tab (label = the child's
|
|
133
|
+
* `title`, falling back to `objectName`) instead of sharing one
|
|
134
|
+
* `Related` tab. Lets authors surface related tables as peer tabs
|
|
135
|
+
* purely via config (per object: `detail.relatedLayout`).
|
|
136
|
+
*
|
|
137
|
+
* Ignored when the `Related` tab is suppressed (`hideRelatedTab`).
|
|
138
|
+
*
|
|
139
|
+
* @default 'stack'
|
|
140
|
+
*/
|
|
141
|
+
relatedLayout?: 'stack' | 'tabs';
|
|
127
142
|
/**
|
|
128
143
|
* When true, emit an Activity tab that renders `record:activity`.
|
|
129
144
|
* The activity renderer fetches its own data via RecordContext.
|
|
@@ -239,7 +254,7 @@ export declare function buildDefaultDetails(_def: ObjectDefLike | undefined, sec
|
|
|
239
254
|
* call `buildDefaultTabs(def, opts)` and splice their tab into
|
|
240
255
|
* `.items[]`.
|
|
241
256
|
*/
|
|
242
|
-
export declare function buildDefaultTabs(def: ObjectDefLike | undefined, options?: Pick<BuildPageOptions, 'sections' | 'related' | 'showActivity' | 'history' | 'highlightFields' | 'statusField' | 'hideRelatedTab'>): any;
|
|
257
|
+
export declare function buildDefaultTabs(def: ObjectDefLike | undefined, options?: Pick<BuildPageOptions, 'sections' | 'related' | 'showActivity' | 'history' | 'highlightFields' | 'statusField' | 'hideRelatedTab' | 'relatedLayout'>): any;
|
|
243
258
|
/**
|
|
244
259
|
* Sub-builder: the inline `record:discussion` footer slot.
|
|
245
260
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildDefaultPageSchema.d.ts","sourceRoot":"","sources":["../../src/synth/buildDefaultPageSchema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"buildDefaultPageSchema.d.ts","sourceRoot":"","sources":["../../src/synth/buildDefaultPageSchema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@object-ui/plugin-detail",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "DetailView plugin for Object UI - comprehensive detail page with sections, tabs, and related lists",
|
|
@@ -25,17 +25,17 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"lucide-react": "^1.21.0",
|
|
28
|
-
"@object-ui/i18n": "11.
|
|
28
|
+
"@object-ui/i18n": "11.2.0"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"react": "^18.0.0 || ^19.0.0",
|
|
32
32
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
33
|
-
"@object-ui/components": "^11.
|
|
34
|
-
"@object-ui/core": "^11.
|
|
35
|
-
"@object-ui/fields": "^11.
|
|
36
|
-
"@object-ui/permissions": "^11.
|
|
37
|
-
"@object-ui/react": "^11.
|
|
38
|
-
"@object-ui/types": "^11.
|
|
33
|
+
"@object-ui/components": "^11.2.0",
|
|
34
|
+
"@object-ui/core": "^11.2.0",
|
|
35
|
+
"@object-ui/fields": "^11.2.0",
|
|
36
|
+
"@object-ui/permissions": "^11.2.0",
|
|
37
|
+
"@object-ui/react": "^11.2.0",
|
|
38
|
+
"@object-ui/types": "^11.2.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/react": "19.2.17",
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"vite": "^8.0.16",
|
|
46
46
|
"vite-plugin-dts": "^5.0.2",
|
|
47
47
|
"vitest": "^4.1.9",
|
|
48
|
-
"@object-ui/components": "11.
|
|
49
|
-
"@object-ui/core": "11.
|
|
50
|
-
"@object-ui/fields": "11.
|
|
51
|
-
"@object-ui/react": "11.
|
|
52
|
-
"@object-ui/types": "11.
|
|
48
|
+
"@object-ui/components": "11.2.0",
|
|
49
|
+
"@object-ui/core": "11.2.0",
|
|
50
|
+
"@object-ui/fields": "11.2.0",
|
|
51
|
+
"@object-ui/react": "11.2.0",
|
|
52
|
+
"@object-ui/types": "11.2.0"
|
|
53
53
|
},
|
|
54
54
|
"keywords": [
|
|
55
55
|
"objectui",
|