@objectstack/console 7.4.0 → 7.5.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/dist/assets/{AiPendingActionsPage-C2C3Ja_n.js → AiPendingActionsPage-lmvGLNua.js} +1 -1
- package/dist/assets/{ApiConsolePage-ePJcxhf9.js → ApiConsolePage-2Hfplikq.js} +1 -1
- package/dist/assets/{AppManagementPage-CFHAXcEw.js → AppManagementPage-CvdaGmZp.js} +1 -1
- package/dist/assets/{ApprovalsInboxPage-DuHpUtLO.js → ApprovalsInboxPage-DDI1tDfy.js} +1 -1
- package/dist/assets/{AuditLogPage-Dw6wpFTf.js → AuditLogPage-B_XhBMoJ.js} +1 -1
- package/dist/assets/{ComponentNavView-DyNUAEnY.js → ComponentNavView-DscbHf4h.js} +1 -1
- package/dist/assets/{ConsoleFloatingChatbot-vOXH4hva.js → ConsoleFloatingChatbot-CIW0GtvK.js} +1 -1
- package/dist/assets/{DeveloperHubPage-Di9VELMr.js → DeveloperHubPage-CJ7NZxLQ.js} +1 -1
- package/dist/assets/{FlowRunsPage-C2ElJEUw.js → FlowRunsPage-0KW8LdCn.js} +1 -1
- package/dist/assets/{ProfilePage-DbEzcgM3.js → ProfilePage-wEhY3kyx.js} +1 -1
- package/dist/assets/{PublicFormsPage-CFO_htk4.js → PublicFormsPage-BkfIcEml.js} +1 -1
- package/dist/assets/{SettingsHub-RgZdAo3g.js → SettingsHub-BLGHmF-y.js} +1 -1
- package/dist/assets/{SettingsView-C4bpsbjP.js → SettingsView-tuRcbYy6.js} +1 -1
- package/dist/assets/{SystemHubPage-DCtNkrqu.js → SystemHubPage-B-apkIco.js} +1 -1
- package/dist/assets/{highlighted-body-OFNGDK62-DolMghKp.js → highlighted-body-OFNGDK62-DzZ5rNlx.js} +1 -1
- package/dist/assets/{index-D8443YMB.js → index-CiY4zPLP.js} +7 -7
- package/dist/assets/index-ljRQeZRW.css +2 -0
- package/dist/assets/mermaid-GHXKKRXX-CwDRCmSe.js +1 -0
- package/dist/assets/{plugin-calendar-CQDuOrA8.js → plugin-calendar-CHvFKG6D.js} +1 -1
- package/dist/assets/plugin-charts-BvH5iWMS.js +7 -0
- package/dist/assets/{plugin-chatbot-MXXPNrIm.js → plugin-chatbot-CeHz9iQm.js} +3 -3
- package/dist/assets/plugin-dashboard-CXLv53tc.js +3 -0
- package/dist/assets/{plugin-form-DGz9Ldoi.js → plugin-form-CoZn3nk3.js} +1 -1
- package/dist/assets/{plugin-gantt-Bv3kYo78.js → plugin-gantt-DY4QgxI_.js} +1 -1
- package/dist/assets/{plugin-grid-X6RP2gd8.js → plugin-grid-CNT3y-BZ.js} +1 -1
- package/dist/assets/{plugin-kanban-BhsP-1E9.js → plugin-kanban-DSD6E3zx.js} +1 -1
- package/dist/assets/{plugin-map-Bl9-aL25.js → plugin-map-dgG_mKQS.js} +1 -1
- package/dist/assets/{plugin-markdown-DSLEFWrT.js → plugin-markdown-CWpRZuHu.js} +1 -1
- package/dist/assets/{plugin-report-DcNaFUN2.js → plugin-report-BFZ-T3Th.js} +1 -1
- package/dist/assets/{plugin-timeline-Bb7f-Qd7.js → plugin-timeline-Dk3Nk3zI.js} +1 -1
- package/dist/assets/plugin-view-B8Wznem_.js +1 -0
- package/dist/assets/plugins-views-CBhDf8Cj.js +4 -0
- package/dist/assets/{src-AD-6EnzK.js → src-CwB7sUUJ.js} +1 -1
- package/dist/assets/{types-BYLUnF0C.js → types-B9HyZbLK.js} +1 -1
- package/dist/assets/ui-components-Dv0hQu4t.js +41 -0
- package/dist/assets/{ui-layout-C9W0Gcnt.js → ui-layout-fny5eaNl.js} +1 -1
- package/dist/assets/vendor-charts-BWpBMKWq.js +39 -0
- package/dist/index.html +3 -3
- package/package.json +1 -1
- package/dist/assets/index-C2SC5SiS.css +0 -2
- package/dist/assets/mermaid-GHXKKRXX-qaGVEVOV.js +0 -1
- package/dist/assets/plugin-charts-BDWqi8DX.js +0 -7
- package/dist/assets/plugin-dashboard-Do4xOja1.js +0 -3
- package/dist/assets/plugin-view-DoIbSHeI.js +0 -1
- package/dist/assets/plugins-views-BNDN6gD4.js +0 -4
- package/dist/assets/ui-components-D0tUqjB3.js +0 -41
- package/dist/assets/vendor-charts-Ba_-W-di.js +0 -36
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./plugin-chatbot-CeHz9iQm.js";export{e as Mermaid};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,r as t}from"./rolldown-runtime-CMxvf4Kt.js";import{r as n,y as r}from"./vendor-react-CyVA1SE-.js";import{N as i,U as a,dt as o,ot as s,r as c,st as l}from"./framework-Bsl5NTfe.js";import{$t as u,Bn as d,Bt as f,Fn as p,Ht as m,In as h,Ln as g,Qt as _,Ri as v,Rn as y,Rt as b,Us as x,Vt as S,Zn as C,Zt as w,en as T,in as E,jt as D,mr as O,ms as k,ns as A,rs as j,zn as ee,zt as te}from"./ui-components-D0tUqjB3.js";import{i as M,r as N}from"./plugins-views-BNDN6gD4.js";import{a as ne}from"./plugin-grid-X6RP2gd8.js";var P=e(r(),1),F=n(),re=`bg-blue-100 text-blue-900 border border-blue-200`,ie=new Date,I=[`bg-blue-100 text-blue-900 border border-blue-200`,`bg-emerald-100 text-emerald-900 border border-emerald-200`,`bg-amber-100 text-amber-900 border border-amber-200`,`bg-rose-100 text-rose-900 border border-rose-200`,`bg-violet-100 text-violet-900 border border-violet-200`,`bg-cyan-100 text-cyan-900 border border-cyan-200`,`bg-orange-100 text-orange-900 border border-orange-200`,`bg-fuchsia-100 text-fuchsia-900 border border-fuchsia-200`],L=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i,R=/(^|\s)(bg|text|from|to|via)-/;function z(e){if(!e)return{className:re};if(L.test(e))return{className:`text-white`,inlineColor:e};if(R.test(e))return{className:e};let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return{className:I[Math.abs(t)%I.length]}}var ae={"calendar.today":`Today`,"calendar.month":`Month`,"calendar.week":`Week`,"calendar.day":`Day`,"calendar.newEvent":`New event`,"calendar.moreEvents":`+{{count}} more`,"calendar.allDay":`all-day`};function B(){try{let e=c();return e.t(`calendar.today`)===`calendar.today`?{t:(e,t)=>{let n=ae[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:`en`}:{t:e.t,language:e.language}}catch{return{t:(e,t)=>{let n=ae[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:`en`}}}function V({events:e=[],view:t=`month`,currentDate:n=ie,locale:r=`default`,onEventClick:i,onDateClick:a,onViewChange:o,onNavigate:s,onAddClick:c,onEventDrop:l,onTimeRangeSelect:d,slotMinutes:p=30,className:h}){let[g,y]=P.useState(t),[T,E]=P.useState(n),{t:D,language:ee}=B(),M=r===`default`?ee:r;P.useEffect(()=>{E(n)},[n]),P.useEffect(()=>{y(t)},[t]);let N=P.useRef(o);N.current=o,P.useEffect(()=>{let e=window.matchMedia(`(max-width: 639px)`),t=e=>{e.matches&&(y(`day`),N.current?.(`day`))};return t(e),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let ne=()=>{let e=new Date(T);g===`month`?e.setMonth(e.getMonth()-1):g===`week`?e.setDate(e.getDate()-7):e.setDate(e.getDate()-1),E(e),s?.(e)},re=()=>{let e=new Date(T);g===`month`?e.setMonth(e.getMonth()+1):g===`week`?e.setDate(e.getDate()+7):e.setDate(e.getDate()+1),E(e),s?.(e)},I=()=>{let e=new Date;E(e),s?.(e)},L=e=>{y(e),o?.(e)},R=()=>{if(g===`month`)return T.toLocaleDateString(M,{month:`long`,year:`numeric`});if(g===`week`){let e=H(T),t=new Date(e);return t.setDate(t.getDate()+6),`${e.toLocaleDateString(M,{month:`short`,day:`numeric`})} - ${t.toLocaleDateString(M,{month:`short`,day:`numeric`,year:`numeric`})}`}else return T.toLocaleDateString(M,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})},z=P.useRef(0);return(0,F.jsxs)(`div`,{role:`region`,"aria-label":`Calendar`,className:x(`flex flex-col h-full bg-background min-w-0 overflow-hidden`,h),children:[(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 p-2 sm:p-4 border-b min-w-0`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,F.jsxs)(`div`,{className:`flex items-center bg-muted/50 rounded-lg p-1 gap-1`,children:[(0,F.jsx)(O,{variant:`ghost`,size:`sm`,onClick:I,className:`h-8`,"aria-label":`Go to today`,children:D(`calendar.today`)}),(0,F.jsx)(`div`,{className:`h-4 w-px bg-border mx-1`}),(0,F.jsx)(O,{variant:`ghost`,size:`icon`,"aria-label":`Previous period`,onClick:ne,className:`h-8 w-8`,children:(0,F.jsx)(j,{className:`h-4 w-4`})}),(0,F.jsx)(O,{variant:`ghost`,size:`icon`,"aria-label":`Next period`,onClick:re,className:`h-8 w-8`,children:(0,F.jsx)(A,{className:`h-4 w-4`})})]}),(0,F.jsxs)(w,{children:[(0,F.jsx)(u,{asChild:!0,children:(0,F.jsxs)(O,{variant:`ghost`,"aria-label":`Current date: ${R()}`,className:x(`text-base sm:text-xl font-semibold h-auto px-2 sm:px-3 py-1 hover:bg-muted/50 transition-colors`,`flex items-center gap-2`),children:[(0,F.jsx)(k,{className:`h-5 w-5 text-muted-foreground`}),(0,F.jsx)(`span`,{children:R()})]})}),(0,F.jsx)(_,{className:`w-auto p-0`,align:`start`,children:(0,F.jsx)(C,{mode:`single`,selected:T,onSelect:e=>{e&&(E(e),s?.(e))},autoFocus:!0,startMonth:new Date(2e3,0),endMonth:new Date(2050,11)})})]})]}),(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxs)(b,{value:g,onValueChange:L,children:[(0,F.jsx)(S,{className:`w-32 bg-background`,children:(0,F.jsx)(m,{})}),(0,F.jsxs)(te,{children:[(0,F.jsx)(f,{value:`day`,children:D(`calendar.day`)}),(0,F.jsx)(f,{value:`week`,children:D(`calendar.week`)}),(0,F.jsx)(f,{value:`month`,children:D(`calendar.month`)})]})]}),c&&(0,F.jsxs)(O,{onClick:c,size:`sm`,className:`gap-1`,children:[(0,F.jsx)(v,{className:`h-4 w-4`}),D(`calendar.newEvent`)]})]})]}),(0,F.jsxs)(`div`,{className:`flex-1 overflow-auto`,onTouchStart:e=>{z.current=e.touches[0].clientX},onTouchEnd:e=>{let t=z.current-e.changedTouches[0].clientX;if(Math.abs(t)>50){let e=new Date(T);g===`day`?e.setDate(e.getDate()+(t>0?1:-1)):g===`week`?e.setDate(e.getDate()+(t>0?7:-7)):e.setMonth(e.getMonth()+(t>0?1:-1)),E(e),s?.(e)}},children:[g===`month`&&(0,F.jsx)(W,{date:T,events:e,locale:M,onEventClick:i,onDateClick:a,onEventDrop:l}),g===`week`&&(0,F.jsx)(Y,{mode:`week`,date:T,events:e,locale:M,slotMinutes:p,onEventClick:i,onEventDrop:l,onTimeRangeSelect:d}),g===`day`&&(0,F.jsx)(Y,{mode:`day`,date:T,events:e,locale:M,slotMinutes:p,onEventClick:i,onEventDrop:l,onTimeRangeSelect:d})]})]})}function H(e){let t=new Date(e),n=t.getDay(),r=t.getDate()-n;return t.setDate(r),t}function oe(e){let t=e.getFullYear(),n=e.getMonth(),r=new Date(t,n,1),i=new Date(t,n+1,0),a=r.getDay(),o=[];for(let e=a-1;e>=0;e--){let t=new Date(r.getTime());t.setDate(t.getDate()-(e+1)),o.push(t)}for(let e=1;e<=i.getDate();e++)o.push(new Date(t,n,e));let s=42-o.length;for(let e=1;e<=s;e++){let t=new Date(i.getTime());t.setDate(t.getDate()+e),o.push(t)}return o}function U(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function W({date:e,events:t,locale:n=`default`,onEventClick:r,onDateClick:i,onEventDrop:a}){let o=P.useMemo(()=>oe(e),[e.getFullYear(),e.getMonth()]),s=P.useMemo(()=>new Date,[]),{t:c}=B(),l=P.useMemo(()=>{let e=new Date(2024,0,7);return Array.from({length:7},(t,r)=>{let i=new Date(e);return i.setDate(i.getDate()+r),i.toLocaleDateString(n,{weekday:`short`})})},[n]),[u,d]=P.useState(null),[f,p]=P.useState(null),m=P.useMemo(()=>{let e=new Map;for(let n of t){let t=new Date(n.start),r=n.end?new Date(n.end):new Date(t);t.setHours(0,0,0,0),r.setHours(0,0,0,0);let i=new Date(t);for(;i<=r;){let a=`${i.getFullYear()}-${i.getMonth()}-${i.getDate()}`,o=i.getTime()===t.getTime(),s=i.getTime()===r.getTime(),c=o||s||i.getDay()===0,l=e.get(a),u={event:n,isTitleDay:c,isSpanStart:o,isSpanEnd:s};l?l.push(u):e.set(a,[u]),i.setDate(i.getDate()+1)}}return e},[t]),h=(e,t,n=`move`,r)=>{d(t.id),e.dataTransfer.effectAllowed=`move`;let i={id:t.id,mode:n,...r?{sourceDay:`${r.getFullYear()}-${r.getMonth()}-${r.getDate()}`}:{}};e.dataTransfer.setData(`text/plain`,JSON.stringify(i)),n===`resize-end`&&e.stopPropagation()},g=()=>{d(null),p(null)},_=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`,p(t)},v=e=>{e.currentTarget.contains(e.relatedTarget)||p(null)},y=(e,n)=>{if(e.preventDefault(),p(null),d(null),!a)return;let r=e.dataTransfer.getData(`text/plain`),i;try{i=JSON.parse(r)}catch{i={id:r,mode:`move`}}let o=t.find(e=>String(e.id)===String(i.id));if(!o)return;let s=new Date(n);if(s.setHours(0,0,0,0),i.mode===`resize-end`){let e=o.end?new Date(o.end):new Date(o.start),t=new Date(e);if(t.setHours(0,0,0,0),s.getTime()===t.getTime())return;let n=new Date(o.start);if(n.setHours(0,0,0,0),s.getTime()<n.getTime())return;let r=new Date(s);r.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),0),a(o,new Date(o.start),r);return}let c=new Date(o.start),l;if(i.sourceDay){let[e,t,n]=i.sourceDay.split(`-`).map(e=>parseInt(e,10));l=new Date(e,t,n)}else l=new Date(c);l.setHours(0,0,0,0);let u=s.getTime()-l.getTime();if(u===0)return;let f=new Date(c.getTime()+u),m;o.end&&(m=new Date(new Date(o.end).getTime()+u)),a(o,f,m)};return(0,F.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,F.jsx)(`div`,{role:`row`,className:`grid grid-cols-7 border-b`,children:l.map(e=>(0,F.jsx)(`div`,{role:`columnheader`,className:`p-2 text-center text-sm font-medium text-muted-foreground border-r last:border-r-0`,children:e},e))}),(0,F.jsx)(`div`,{role:`grid`,"aria-label":`Calendar grid`,className:`grid grid-cols-7 flex-1 auto-rows-fr`,children:o.map((t,n)=>{let o=`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`,l=m.get(o)||[],d=t.getMonth()===e.getMonth(),p=U(t,s);return(0,F.jsxs)(`div`,{role:`gridcell`,"aria-label":`${t.toLocaleDateString(`default`,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})}${l.length>0?`, ${l.length} event${l.length>1?`s`:``}`:``}`,className:x(`border-b border-r last:border-r-0 p-2 min-h-[100px] cursor-pointer hover:bg-accent/50`,!d&&`bg-muted/50 text-muted-foreground opacity-50`,f===n&&`ring-2 ring-primary`),onClick:()=>i?.(t),onDragOver:e=>_(e,n),onDragLeave:v,onDrop:e=>y(e,t),children:[(0,F.jsx)(`div`,{className:x(`text-sm font-medium mb-2`,p&&`inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground h-6 w-6`),...p?{"aria-current":`date`}:{},children:t.getDate()}),(0,F.jsxs)(`div`,{className:`space-y-0.5`,children:[l.slice(0,4).map(({event:e,isTitleDay:n,isSpanStart:i,isSpanEnd:o},s)=>{let c=!n,{className:l,inlineColor:d}=z(e.color),f=!!a&&o;return(0,F.jsxs)(`div`,{role:`button`,title:e.title,"aria-label":e.title,draggable:!!a,onDragStart:n=>h(n,e,`move`,t),onDragEnd:g,className:x(`relative text-xs hover:opacity-80 truncate`,a?`cursor-move`:`cursor-pointer`,c?`h-1.5`:`px-2 py-0.5`,i?`rounded-l`:`rounded-l-none`,o?`rounded-r`:`rounded-r-none`,!o&&`-mr-2`,l,u===e.id&&`opacity-50`),style:d?{backgroundColor:d}:void 0,onClick:t=>{t.stopPropagation(),r?.(e)},children:[c?``:e.title,f&&(0,F.jsx)(`span`,{role:`separator`,"aria-label":`Resize event end`,title:`Drag to change end date`,draggable:!0,onDragStart:n=>h(n,e,`resize-end`,t),onDragEnd:g,onClick:e=>e.stopPropagation(),className:`absolute inset-y-0 right-0 w-2 cursor-ew-resize bg-black/25 hover:bg-black/50 rounded-r`})]},`${e.id}-${s}`)}),l.length>4&&(0,F.jsx)(`div`,{className:`text-xs text-muted-foreground px-2`,children:c(`calendar.moreEvents`,{count:l.length-4})})]})]},n)})})]})}var G=48;function K(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function q(e){return e.getHours()*60+e.getMinutes()}function J(e){return`${e.getFullYear()}-${e.getMonth()}-${e.getDate()}`}function Y({mode:e,date:t,events:n,locale:r=`default`,slotMinutes:i=30,onEventClick:a,onEventDrop:o,onTimeRangeSelect:s}){let{t:c}=B(),l=G*i/60,u=G*24,d=P.useMemo(()=>{if(e===`day`)return[K(t)];let n=H(t);return Array.from({length:7},(e,t)=>{let r=new Date(n);return r.setDate(n.getDate()+t),K(r)})},[e,t.getFullYear(),t.getMonth(),t.getDate()]),f=P.useMemo(()=>new Date,[]),p=P.useCallback(e=>{if(e.allDay)return!0;let t=new Date(e.start),n=e.end?new Date(e.end):new Date(t),r=t.getHours()===0&&t.getMinutes()===0&&t.getSeconds()===0,i=n.getHours()===0&&n.getMinutes()===0&&n.getSeconds()===0,a=n.getTime()-t.getTime();return!!(r&&i||a>=1440*60*1e3)},[]),{allDayEvents:m,timedEvents:h}=P.useMemo(()=>{let e=[],t=[];for(let r of n)p(r)?e.push(r):t.push(r);return{allDayEvents:e,timedEvents:t}},[n,p]),g=P.useMemo(()=>{let e=new Map;for(let t of d)e.set(J(t),[]);for(let t of m){let n=K(new Date(t.start)),r=t.end?new Date(t.end):new Date(t.start),i=K(r);r.getHours()===0&&r.getMinutes()===0&&r.getSeconds()===0&&r.getTime()>n.getTime()&&(i=new Date(i),i.setDate(i.getDate()-1));for(let r of d){let a=K(r);a<n||a>i||e.get(J(r)).push({event:t,isStart:a.getTime()===n.getTime(),isEnd:a.getTime()===i.getTime()})}}return e},[d,m]),_=P.useMemo(()=>{let e=new Map;for(let t of d)e.set(J(t),[]);for(let t of h){let n=new Date(t.start),r=t.end?new Date(t.end):new Date(n.getTime()+3600*1e3);for(let i of d){let a=K(i),o=new Date(a);if(o.setDate(o.getDate()+1),r<=a||n>=o)continue;let s=n<a?a:n,c=r>o?o:r,l=q(s),u=c.getTime()===o.getTime()?1440:q(c);e.get(J(i)).push({event:t,startMin:l,endMin:Math.max(u,l+15),isStart:s.getTime()===n.getTime(),isEnd:c.getTime()===r.getTime()})}}return e},[d,h]),v=P.useMemo(()=>{let e=new Map;for(let[t,n]of _){let r=[...n].sort((e,t)=>e.startMin-t.startMin||e.endMin-t.endMin),i=[],a=[],o=[];for(let e of r){let t=0;for(;i[t]&&i[t].endMin>e.startMin;)t++;i[t]={endMin:e.endMin},a.push({entry:e,col:t})}for(let e=0;e<a.length;e++){let t=a[e],n=t.col;for(let r=0;r<a.length;r++){if(r===e)continue;let i=a[r];i.entry.startMin<t.entry.endMin&&i.entry.endMin>t.entry.startMin&&i.col>n&&(n=i.col)}o.push({...t.entry,col:t.col,cols:n+1})}e.set(t,o)}return e},[_]),y=P.useRef(null),b=P.useRef([]),[S,C]=P.useState(null),w=P.useRef(null);w.current=S;let T=P.useRef(!1),E=P.useCallback((e,t)=>{let n=b.current[t];if(!n)return 0;let r=(e-n.getBoundingClientRect().top+n.scrollTop)/G*60,a=Math.round(r/i)*i;return Math.max(0,Math.min(1440,a))},[i]),D=P.useCallback(e=>{for(let t=0;t<b.current.length;t++){let n=b.current[t];if(!n)continue;let r=n.getBoundingClientRect();if(e>=r.left&&e<=r.right)return t}return-1},[]);P.useEffect(()=>{if(!S)return;let e=e=>{let t=S.kind===`select`||S.kind===`move`?D(e.clientX):S.dayIndex,n=t<0?S.dayIndex??0:t,r=E(e.clientY,n);C(e=>e&&(e.kind===`select`?{...e,dayIndex:n>=0?n:e.dayIndex,headMinutes:r}:e.kind===`move`?{...e,dayIndex:n,minutes:r}:{...e,minutes:r}))},t=e=>{let t=w.current;if(!t){C(null);return}try{if(t.kind===`select`&&s){let e=Math.min(t.anchorMinutes,t.headMinutes),n=Math.max(t.anchorMinutes,t.headMinutes),r=e,a=n===e?Math.min(1440,e+i):n,o=d[t.dayIndex]??d[0],c=new Date(o);c.setHours(0,Math.round(r),0,0);let l=new Date(o);l.setHours(0,Math.round(a),0,0),T.current=!0,s(c,l)}else if(t.kind===`move`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=t.dayIndex<0?0:t.dayIndex,r=t.minutes-t.grabMinuteOffset,a=Math.max(0,Math.min(1440-t.durationMin,Math.round(r/i)*i)),s=d[n]??d[0],c=new Date(s);c.setHours(0,a,0,0);let l=new Date(c.getTime()+t.durationMin*60*1e3);T.current=!0,o(e,c,l)}}else if(t.kind===`resize-top`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=d[t.dayIndex]??d[0],r=Math.min(t.anchorEndMin-i,Math.max(0,t.minutes)),a=new Date(n);a.setHours(0,r,0,0);let s=new Date(n);s.setHours(0,t.anchorEndMin,0,0),T.current=!0,o(e,a,s)}}else if(t.kind===`resize-bottom`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=d[t.dayIndex]??d[0],r=Math.max(t.anchorStartMin+i,Math.min(1440,t.minutes)),a=new Date(n);a.setHours(0,t.anchorStartMin,0,0);let s=new Date(n);s.setHours(0,r,0,0),T.current=!0,o(e,a,s)}}}finally{C(null),setTimeout(()=>{T.current=!1},50)}};return window.addEventListener(`pointermove`,e),window.addEventListener(`pointerup`,t),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`pointerup`,t)}},[S,d,n,i,o,s,D,E]);let O=P.useMemo(()=>d.map(e=>({weekday:e.toLocaleDateString(r,{weekday:`short`}),day:e.getDate(),month:e.toLocaleDateString(r,{month:`short`}),isToday:U(e,f)})),[d,r,f]),k=P.useMemo(()=>Array.from({length:24},(e,t)=>new Date(2024,0,1,t,0).toLocaleTimeString(r,{hour:`numeric`})),[r]),A=(e,t,n,r)=>{if(!o||e.button!==0)return;e.stopPropagation(),e.preventDefault();let i=E(e.clientY,n);C(r===`body`?{kind:`move`,eventId:t.event.id,grabMinuteOffset:Math.max(0,i-t.startMin),durationMin:t.endMin-t.startMin,dayIndex:n,minutes:i}:r===`top`?{kind:`resize-top`,eventId:t.event.id,anchorEndMin:t.endMin,dayIndex:n,minutes:i}:{kind:`resize-bottom`,eventId:t.event.id,anchorStartMin:t.startMin,dayIndex:n,minutes:i})},j=(e,t)=>{if(!s||e.button!==0)return;e.preventDefault();let n=E(e.clientY,t);C({kind:`select`,dayIndex:t,anchorMinutes:n,headMinutes:n})},ee=e=>{if(!S)return null;if(S.kind===`select`&&S.dayIndex===e){let t=Math.min(S.anchorMinutes,S.headMinutes),n=Math.max(S.anchorMinutes,S.headMinutes);return(0,F.jsx)(`div`,{className:`absolute left-1 right-1 rounded bg-primary/30 border border-primary pointer-events-none z-10`,style:{top:t/60*G,height:Math.max(l,(n-t)/60*G)},"aria-hidden":!0,children:(0,F.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:X(d[e],t,n,r)})})}if(S.kind===`move`&&S.dayIndex===e){let t=S.minutes-S.grabMinuteOffset,n=Math.max(0,Math.min(1440-S.durationMin,Math.round(t/i)*i));return(0,F.jsx)(`div`,{className:`absolute left-1 right-1 rounded border-2 border-dashed border-primary bg-primary/10 pointer-events-none z-10`,style:{top:n/60*G,height:S.durationMin/60*G},"aria-hidden":!0,children:(0,F.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:X(d[e],n,n+S.durationMin,r)})})}if((S.kind===`resize-top`||S.kind===`resize-bottom`)&&S.dayIndex===e){let t,n;return S.kind===`resize-top`?(t=Math.min(S.anchorEndMin-i,Math.max(0,S.minutes)),n=S.anchorEndMin):(t=S.anchorStartMin,n=Math.max(S.anchorStartMin+i,Math.min(1440,S.minutes))),(0,F.jsx)(`div`,{className:`absolute left-1 right-1 rounded border-2 border-dashed border-primary bg-primary/10 pointer-events-none z-10`,style:{top:t/60*G,height:(n-t)/60*G},"aria-hidden":!0,children:(0,F.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:X(d[e],t,n,r)})})}return null};return(0,F.jsxs)(`div`,{className:`flex flex-col h-full`,ref:y,children:[(0,F.jsxs)(`div`,{className:`flex border-b sticky top-0 bg-background z-20`,children:[(0,F.jsx)(`div`,{className:`w-14 shrink-0 border-r`,"aria-hidden":!0}),O.map((e,t)=>(0,F.jsxs)(`div`,{role:`columnheader`,className:x(`flex-1 p-2 text-center text-sm border-r last:border-r-0`,e.isToday&&`bg-primary/5`),children:[(0,F.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:e.weekday}),(0,F.jsx)(`div`,{className:x(`font-medium`,e.isToday&&`inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground h-6 w-6 mx-auto`),children:e.day})]},t))]}),m.length>0&&(0,F.jsxs)(`div`,{className:`flex border-b bg-muted/20 max-h-[140px] overflow-y-auto`,children:[(0,F.jsx)(`div`,{className:`w-14 shrink-0 border-r flex items-start justify-end pr-1 pt-1 text-[10px] text-muted-foreground sticky left-0 bg-muted/20`,children:c(`calendar.allDay`)===`calendar.allDay`?`all-day`:c(`calendar.allDay`)}),d.map(e=>{let t=J(e);return(0,F.jsx)(`div`,{className:`flex-1 border-r last:border-r-0 min-h-[28px] p-0.5 space-y-0.5`,children:(g.get(t)??[]).map(({event:e,isStart:t,isEnd:n},r)=>{let{className:i,inlineColor:o}=z(e.color);return(0,F.jsx)(`div`,{role:`button`,title:e.title,onClick:t=>{t.stopPropagation(),a?.(e)},className:x(`text-[11px] px-2 py-0.5 truncate cursor-pointer hover:opacity-80`,t?`rounded-l`:`rounded-l-none -ml-0.5`,n?`rounded-r`:`rounded-r-none -mr-0.5`,i),style:o?{backgroundColor:o}:void 0,children:t?e.title:`\xA0`},`${e.id}-${r}`)})},t)})]}),(0,F.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,F.jsxs)(`div`,{className:`flex`,style:{height:u},children:[(0,F.jsx)(`div`,{className:`w-14 shrink-0 border-r relative`,children:k.map((e,t)=>(0,F.jsx)(`div`,{className:`absolute right-1 text-[10px] text-muted-foreground -translate-y-1/2`,style:{top:t*G},children:t===0?``:e},t))}),d.map((e,t)=>{let n=J(e),s=v.get(n)??[];return(0,F.jsxs)(`div`,{ref:e=>{b.current[t]=e},className:`flex-1 border-r last:border-r-0 relative select-none`,style:{height:u},onPointerDown:e=>j(e,t),"aria-label":e.toLocaleDateString(r,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`}),children:[Array.from({length:24},(e,t)=>(0,F.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-muted/60 pointer-events-none`,style:{top:t*G}},t)),i<60&&Array.from({length:Math.floor(1440/i)},(e,t)=>{let n=t*i;return n%60==0?null:(0,F.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-dashed border-muted/30 pointer-events-none`,style:{top:n/60*G}},t)}),s.map(n=>{let i=n.startMin/60*G,s=Math.max(l,(n.endMin-n.startMin)/60*G),c=100/n.cols,u=n.col*c,{className:d,inlineColor:f}=z(n.event.color),p=S&&S.eventId===n.event.id;return(0,F.jsxs)(`div`,{role:`button`,tabIndex:0,title:n.event.title,"aria-label":n.event.title,onPointerDown:e=>A(e,n,t,`body`),onClick:e=>{if(T.current){e.stopPropagation();return}e.stopPropagation(),a?.(n.event)},className:x(`absolute rounded text-xs px-2 py-1 overflow-hidden shadow-sm`,o?`cursor-move`:`cursor-pointer`,d,p&&`opacity-40`),style:{top:i,height:s,left:`calc(${u}% + 2px)`,width:`calc(${c}% - 4px)`,...f?{backgroundColor:f}:{}},children:[(0,F.jsx)(`div`,{className:`font-medium truncate`,children:n.event.title}),(0,F.jsx)(`div`,{className:`text-[10px] opacity-80 truncate`,children:X(e,n.startMin,n.endMin,r)}),o&&n.isStart&&(0,F.jsx)(`div`,{onPointerDown:e=>A(e,n,t,`top`),className:`absolute top-0 left-0 right-0 h-1.5 cursor-ns-resize`,"aria-label":`Resize start`}),o&&n.isEnd&&(0,F.jsx)(`div`,{onPointerDown:e=>A(e,n,t,`bottom`),className:`absolute bottom-0 left-0 right-0 h-1.5 cursor-ns-resize`,"aria-label":`Resize end`})]},`${n.event.id}-${n.startMin}`)}),ee(t)]},n)})]})})]})}function X(e,t,n,r){let i=new Date(e);i.setHours(0,Math.round(t),0,0);let a=new Date(e);a.setHours(0,Math.round(n),0,0);let o=e=>e.toLocaleTimeString(r,{hour:`numeric`,minute:`2-digit`});return`${o(i)} – ${o(a)}`}function se(e){return`data`in e&&e.data?e.data:`staticData`in e&&e.staticData?{provider:`value`,items:e.staticData}:e.objectName?{provider:`object`,object:e.objectName}:null}function ce(e){if(e){if(typeof e==`string`){let t=e.split(` `),n=t[0],r=t[1]?.toLowerCase()===`desc`?`desc`:`asc`;return{[n]:r}}if(Array.isArray(e))return e.reduce((e,t)=>(t.field&&t.order&&(e[t.field]=t.order),e),{})}}function le(e){return`filter`in e&&e.filter&&typeof e.filter==`object`&&`calendar`in e.filter?e.filter.calendar:e.calendar?e.calendar:e.startDateField||e.dateField?{startDateField:e.startDateField||e.dateField,endDateField:e.endDateField||e.endField,titleField:e.titleField,colorField:e.colorField,allDayField:e.allDayField}:null}var Z=({schema:e,dataSource:t,className:n,data:r,loading:a,onEventClick:o,onRowClick:c,onDateClick:u,onNavigate:f,onViewChange:m,onEventDrop:_,locale:v})=>{let b=Array.isArray(r),[x,S]=(0,P.useState)(b?r:[]),[C,w]=(0,P.useState)(b?a??!1:!0),[k,A]=(0,P.useState)(null),[j,te]=(0,P.useState)(null),[re,ie]=(0,P.useState)(new Date),I=D(),L=e.defaultView,[R,z]=(0,P.useState)(()=>{let e=L===`day`||!L;return typeof window<`u`&&window.innerWidth<768&&e?`month`:L||`month`});(0,P.useEffect)(()=>{I&&R===`day`&&(L===`day`||!L)&&z(`month`)},[I]);let[ae,B]=(0,P.useState)(0);(0,P.useEffect)(()=>{if(!b&&!(!t?.onMutation||!e.objectName))return t.onMutation(t=>{t.resource===e.objectName&&B(e=>e+1)})},[t,e.objectName,b]);let{ref:H,isRefreshing:oe,pullDistance:U}=ne({onRefresh:(0,P.useCallback)(async()=>{B(e=>e+1)},[]),enabled:!!t&&!!e.objectName}),W=(0,P.useMemo)(()=>se(e),[e.data,e.staticData,e.objectName]),G=(0,P.useMemo)(()=>le(e),[e.filter,e.calendar,e.dateField,e.endField,e.titleField,e.colorField]),K=W?.provider===`value`,q=(0,P.useRef)(null);q.current=j,(0,P.useEffect)(()=>{b&&S(r)},[r,b]),(0,P.useEffect)(()=>{b&&a!==void 0&&w(a)},[a,b]),(0,P.useEffect)(()=>{if(b)return;let n=!0;return(async()=>{try{if(!n)return;if(w(!0),K&&W?.provider===`value`){n&&(S(W.items),w(!1));return}if(!t||typeof t.find!=`function`)throw Error(`DataSource required for object/api providers`);if(W?.provider===`object`){let r=W.object,i=s(q.current?.fields),a=l(await t.find(r,{$filter:e.filter,$orderby:ce(e.sort),...i.length>0?{$expand:i}:{}}));n&&S(a)}else W?.provider===`api`&&(console.warn(`API provider not yet implemented for ObjectCalendar`),n&&S([]));n&&w(!1)}catch(e){console.error(`[ObjectCalendar] Error fetching data:`,e),n&&(A(e),w(!1))}})(),()=>{n=!1}},[b,W,t,K,e.filter,e.sort,ae]),(0,P.useEffect)(()=>{!K&&t&&(async()=>{try{if(!t)return;let n=W?.provider===`object`?W.object:e.objectName;if(!n)return;te(await t.getObjectSchema(n))}catch(e){console.error(`Failed to fetch object schema:`,e)}})()},[e.objectName,t,K,W]);let J=(0,P.useMemo)(()=>{if(!G||!x.length)return[];let{startDateField:e,endDateField:t,titleField:n,colorField:r}=G,i=j?.titleFormat,a=typeof i==`string`?i:i&&typeof i==`object`&&typeof i.source==`string`?i.source:void 0,o=j?.NAME_FIELD_KEY,s=[`name`,`full_name`,`fullName`,`title`,`subject`,`label`,`display_name`,`displayName`],c=(e,t)=>{let n=`[-\\u2013\\u2014|/·,:]`,r=!1,i=e.replace(/\{([^{}]+)\}/g,(e,n)=>{let i=t[n.trim()];return i!=null&&i!==``?(r=!0,String(i)):`\0`});return r?i.replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim():``},l=e=>{let t;if(n&&(t=e[n],typeof t==`string`&&(t=t.trim())),!t&&a){let n=c(a,e);n&&(t=n)}if(!t&&o){let n=e[o];typeof n==`string`?t=n.trim():n&&(t=n)}if(!t)for(let n of s){let r=e[n],i=typeof r==`string`?r.trim():r;if(i){t=i;break}}return t||`Untitled`};return x.map((n,i)=>{let a=n[e],o=t?n[t]:null,s=l(n),c=r?n[r]:void 0;return{id:n.id||n._id||`event-${i}`,title:s,start:a?new Date(a):new Date,end:o?new Date(o):void 0,color:c,allDay:!o,data:n}}).filter(e=>!isNaN(e.start.getTime()))},[x,G,j]);(0,P.useCallback)(()=>{u?.(new Date)},[u]);let Y=e.navigation??{mode:`drawer`,width:`min(960px, 60vw)`},X=Y.mode===`drawer`||Y.mode===`modal`||Y.mode===`split`||Y.mode===`popover`,Z=i({navigation:Y,objectName:e.objectName,onRowClick:X?void 0:c}),ue=(0,P.useCallback)(async(n,r,i)=>{if(!G)return;let{startDateField:a,endDateField:o}=G,s=n?.id??n?._id;if(!s||!e.objectName||!t?.update)return;let c={[a]:r.toISOString()};o&&i&&(c[o]=i.toISOString());let l=x;S(e=>e.map(e=>(e?.id??e?._id)===s?{...e,...c}:e));try{await t.update(e.objectName,s,c)}catch(e){S(l),console.error(`[ObjectCalendar] Failed to persist drag-and-drop reschedule:`,e)}},[G,e.objectName,t,x]),[Q,$]=(0,P.useState)(null),de=(0,P.useCallback)(n=>{!G||!e.objectName||!t?.create||$({start:n,title:``,submitting:!1})},[G,e.objectName,t]),fe=(0,P.useCallback)((n,r)=>{!G||!e.objectName||!t?.create||$({start:n,end:r,title:``,submitting:!1})},[G,e.objectName,t]),pe=(0,P.useCallback)(async()=>{if(!Q||!G)return;let n=Q.title.trim();if(!n){$(e=>e&&{...e,error:`Title is required`});return}if(!e.objectName||!t?.create)return;$(e=>e&&{...e,submitting:!0,error:void 0});let{startDateField:r,endDateField:i,titleField:a}=G,o={[a||`name`]:n,[r]:Q.start.toISOString()};i&&(o[i]=(Q.end??Q.start).toISOString());let s=j?.fields;if(s&&typeof s==`object`){let e=Array.isArray(s)?s.map(e=>[e.name??e.apiName,e]):Object.entries(s);for(let[t,n]of e){if(!t||t in o||!n?.required)continue;if(n.defaultValue!==void 0&&n.defaultValue!==null){o[t]=n.defaultValue;continue}let e=n.type;if(e===`select`||e===`picklist`||e===`status`){let e=(n.options||n.choices||[])[0];e!==void 0&&(o[t]=typeof e==`object`?e.value??e.id:e)}else e===`boolean`||e===`checkbox`?o[t]=!1:(e===`number`||e===`integer`||e===`decimal`||e===`currency`||e===`percent`)&&(o[t]=0)}}try{let n=await t.create(e.objectName,o),r=(n&&(n.record||n.data||n))??null;r&&(r.id!==void 0||r._id!==void 0)&&S(e=>[...e,r]),$(null)}catch(e){let t=e?.message||String(e);$(e=>e&&{...e,submitting:!1,error:t}),console.error(`[ObjectCalendar] Quick-create failed:`,e)}},[Q,G,e.objectName,t,j]);return C?(0,F.jsx)(`div`,{className:n,children:(0,F.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,F.jsx)(`div`,{className:`text-muted-foreground`,children:`Loading calendar...`})})}):k?(0,F.jsx)(`div`,{className:n,children:(0,F.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,F.jsxs)(`div`,{className:`text-destructive`,children:[`Error: `,k.message]})})}):G?(0,F.jsxs)(`div`,{ref:H,className:n,children:[U>0&&(0,F.jsx)(`div`,{className:`flex items-center justify-center text-xs text-muted-foreground`,style:{height:U},children:oe?`Refreshing…`:`Pull to refresh`}),(0,F.jsx)(`div`,{className:`bg-background h-[calc(100vh-120px)] sm:h-[calc(100vh-160px)] md:h-[calc(100vh-200px)] min-h-[400px] sm:min-h-[600px]`,children:(0,F.jsx)(V,{events:J,currentDate:re,view:R,locale:v,onEventClick:e=>{Z.handleClick(e.data),X||o?.(e.data)},onDateClick:e=>{u?u(e):de(e)},onNavigate:e=>{ie(e),f?.(e)},onViewChange:e=>{z(e),m?.(e)},onAddClick:void 0,onEventDrop:(e,t,n)=>{_?_(e.data,t,n):ue(e.data,t,n)},onTimeRangeSelect:fe})}),(0,F.jsx)(p,{open:!!Q,onOpenChange:e=>{e||$(null)},children:(0,F.jsxs)(h,{className:`sm:max-w-md`,children:[(0,F.jsxs)(ee,{children:[(0,F.jsx)(d,{children:`New event`}),(0,F.jsx)(g,{children:Q&&(()=>{let e=Q.end&&Q.end.getTime()!==Q.start.getTime(),t=Q.start.toLocaleDateString(v,{year:`numeric`,month:`long`,day:`numeric`});if(e){let e=e=>e.toLocaleTimeString(v,{hour:`numeric`,minute:`2-digit`});return(0,F.jsxs)(F.Fragment,{children:[t,` · `,e(Q.start),` – `,e(Q.end)]})}return(0,F.jsxs)(F.Fragment,{children:[`On `,t]})})()})]}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(E,{htmlFor:`quick-create-title`,children:`Title`}),(0,F.jsx)(T,{id:`quick-create-title`,autoFocus:!0,value:Q?.title??``,onChange:e=>$(t=>t&&{...t,title:e.target.value,error:void 0}),onKeyDown:e=>{e.key===`Enter`&&!Q?.submitting&&(e.preventDefault(),pe())},placeholder:`What's this event about?`,disabled:Q?.submitting}),Q?.error&&(0,F.jsx)(`p`,{className:`text-sm text-destructive`,children:Q.error})]}),(0,F.jsxs)(y,{children:[(0,F.jsx)(O,{variant:`outline`,onClick:()=>$(null),disabled:Q?.submitting,children:`Cancel`}),(0,F.jsx)(O,{onClick:()=>void pe(),disabled:Q?.submitting||!Q?.title.trim(),children:Q?.submitting?`Creating…`:`Create`})]})]})}),Z.isOverlay&&Z.isOpen&&Z.selectedRecord&&(()=>{let n=W?.provider===`object`?W.object:e.objectName,r=Z.selectedRecord,i=r.id??r._id;if(!n||i==null)return null;let a=G?.titleField?String(r[G.titleField]??`Event Details`):`Event Details`;return(0,F.jsx)(N,{open:!0,onClose:Z.close,title:a,record:r,objectName:n,recordId:i,dataSource:t,objectSchema:j,width:Z.width??`min(960px, 60vw)`,fullPageHref:M(n,i)??void 0,onFieldSave:async(e,r)=>{t?.update&&(await t.update(n,String(i),{[e]:r}),S(t=>t.map(t=>String(t.id??t._id)===String(i)?{...t,[e]:r}:t)))},onDelete:async()=>{t?.delete&&(await t.delete(n,String(i)),S(e=>e.filter(e=>String(e.id??e._id)!==String(i))))}})})()]}):(0,F.jsx)(`div`,{className:n,children:(0,F.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,F.jsx)(`div`,{className:`text-muted-foreground`,children:`Calendar configuration required. Please specify startDateField and titleField.`})})})};o.register(`calendar-view`,({schema:e,className:t,onAction:n,...r})=>{let i=P.useMemo(()=>!e.data||!Array.isArray(e.data)?[]:e.data.map((t,n)=>{let r=e.titleField||`title`,i=e.startDateField||`start`,a=e.endDateField||`end`,o=e.colorField||`color`,s=e.allDayField||`allDay`;return{id:t.id||t._id||n,title:t[r]||`Untitled Event`,start:new Date(t[i]),end:t[a]?new Date(t[a]):void 0,allDay:t[s],color:t[o],data:t}}),[e.data,e.titleField,e.startDateField,e.endDateField,e.colorField,e.allDayField]);return(0,F.jsx)(V,{className:t,events:i,onEventClick:e=>{n?.({type:`event-click`,payload:e})},...r})},{namespace:`plugin-calendar`,label:`Calendar View`,inputs:[{name:`data`,type:`array`,label:`Data`,description:`Array of record objects to display as events`},{name:`titleField`,type:`string`,label:`Title Field`,defaultValue:`title`,description:`Field name to use for event title`},{name:`startDateField`,type:`string`,label:`Start Date Field`,defaultValue:`start`,description:`Field name for event start date`},{name:`endDateField`,type:`string`,label:`End Date Field`,defaultValue:`end`,description:`Field name for event end date (optional)`},{name:`allDayField`,type:`string`,label:`All Day Field`,defaultValue:`allDay`,description:`Field name for all-day flag`},{name:`colorField`,type:`string`,label:`Color Field`,defaultValue:`color`,description:`Field name for event color`},{name:`colorMapping`,type:`object`,label:`Color Mapping`,description:`Map field values to colors (e.g., {meeting: "blue", deadline: "red"})`},{name:`view`,type:`enum`,enum:[`month`,`week`,`day`],defaultValue:`month`,label:`View Mode`,description:`Calendar view mode (month, week, or day)`},{name:`currentDate`,type:`string`,label:`Current Date`,description:`ISO date string for initial calendar date`},{name:`allowCreate`,type:`boolean`,label:`Allow Create`,defaultValue:!1,description:`Allow creating events by clicking on dates`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{view:`month`,titleField:`title`,startDateField:`start`,endDateField:`end`,allDayField:`allDay`,colorField:`color`,allowCreate:!1,data:[{id:1,title:`Team Meeting`,start:new Date(new Date().setHours(10,0,0,0)).toISOString(),end:new Date(new Date().setHours(11,0,0,0)).toISOString(),color:`#3b82f6`,allDay:!1},{id:2,title:`Project Deadline`,start:new Date(new Date().setDate(new Date().getDate()+3)).toISOString(),color:`#ef4444`,allDay:!0},{id:3,title:`Conference`,start:new Date(new Date().setDate(new Date().getDate()+7)).toISOString(),end:new Date(new Date().setDate(new Date().getDate()+9)).toISOString(),color:`#10b981`,allDay:!0}],className:`h-[600px] border rounded-lg`}});var ue=t({CalendarView:()=>V,ObjectCalendar:()=>Z,ObjectCalendarRenderer:()=>Q}),Q=({schema:e,...t})=>{let{dataSource:n}=a()||{};return(0,F.jsx)(Z,{schema:e,dataSource:n,...t})};o.register(`object-calendar`,Q,{namespace:`plugin-calendar`,label:`Object Calendar`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`calendar`,type:`object`,label:`Calendar Config`,description:`startDateField, endDateField, titleField, colorField`}]}),o.register(`calendar`,Q,{namespace:`view`,label:`Calendar View`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`calendar`,type:`object`,label:`Calendar Config`,description:`startDateField, endDateField, titleField, colorField`}]});export{ue as t};
|
|
1
|
+
import{o as e,r as t}from"./rolldown-runtime-CMxvf4Kt.js";import{r as n,y as r}from"./vendor-react-CyVA1SE-.js";import{N as i,U as a,dt as o,ot as s,r as c,st as l}from"./framework-Bsl5NTfe.js";import{$t as u,Bn as d,Bt as f,Fn as p,Ht as m,In as h,Ln as g,Qt as _,Ri as v,Rn as y,Rt as b,Us as x,Vt as S,Zn as C,Zt as w,en as T,in as E,jt as D,mr as O,ms as k,ns as A,rs as j,zn as ee,zt as te}from"./ui-components-Dv0hQu4t.js";import{i as M,r as N}from"./plugins-views-CBhDf8Cj.js";import{a as ne}from"./plugin-grid-CNT3y-BZ.js";var P=e(r(),1),F=n(),re=`bg-blue-100 text-blue-900 border border-blue-200`,ie=new Date,I=[`bg-blue-100 text-blue-900 border border-blue-200`,`bg-emerald-100 text-emerald-900 border border-emerald-200`,`bg-amber-100 text-amber-900 border border-amber-200`,`bg-rose-100 text-rose-900 border border-rose-200`,`bg-violet-100 text-violet-900 border border-violet-200`,`bg-cyan-100 text-cyan-900 border border-cyan-200`,`bg-orange-100 text-orange-900 border border-orange-200`,`bg-fuchsia-100 text-fuchsia-900 border border-fuchsia-200`],L=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i,R=/(^|\s)(bg|text|from|to|via)-/;function z(e){if(!e)return{className:re};if(L.test(e))return{className:`text-white`,inlineColor:e};if(R.test(e))return{className:e};let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return{className:I[Math.abs(t)%I.length]}}var ae={"calendar.today":`Today`,"calendar.month":`Month`,"calendar.week":`Week`,"calendar.day":`Day`,"calendar.newEvent":`New event`,"calendar.moreEvents":`+{{count}} more`,"calendar.allDay":`all-day`};function B(){try{let e=c();return e.t(`calendar.today`)===`calendar.today`?{t:(e,t)=>{let n=ae[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:`en`}:{t:e.t,language:e.language}}catch{return{t:(e,t)=>{let n=ae[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:`en`}}}function V({events:e=[],view:t=`month`,currentDate:n=ie,locale:r=`default`,onEventClick:i,onDateClick:a,onViewChange:o,onNavigate:s,onAddClick:c,onEventDrop:l,onTimeRangeSelect:d,slotMinutes:p=30,className:h}){let[g,y]=P.useState(t),[T,E]=P.useState(n),{t:D,language:ee}=B(),M=r===`default`?ee:r;P.useEffect(()=>{E(n)},[n]),P.useEffect(()=>{y(t)},[t]);let N=P.useRef(o);N.current=o,P.useEffect(()=>{let e=window.matchMedia(`(max-width: 639px)`),t=e=>{e.matches&&(y(`day`),N.current?.(`day`))};return t(e),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let ne=()=>{let e=new Date(T);g===`month`?e.setMonth(e.getMonth()-1):g===`week`?e.setDate(e.getDate()-7):e.setDate(e.getDate()-1),E(e),s?.(e)},re=()=>{let e=new Date(T);g===`month`?e.setMonth(e.getMonth()+1):g===`week`?e.setDate(e.getDate()+7):e.setDate(e.getDate()+1),E(e),s?.(e)},I=()=>{let e=new Date;E(e),s?.(e)},L=e=>{y(e),o?.(e)},R=()=>{if(g===`month`)return T.toLocaleDateString(M,{month:`long`,year:`numeric`});if(g===`week`){let e=H(T),t=new Date(e);return t.setDate(t.getDate()+6),`${e.toLocaleDateString(M,{month:`short`,day:`numeric`})} - ${t.toLocaleDateString(M,{month:`short`,day:`numeric`,year:`numeric`})}`}else return T.toLocaleDateString(M,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})},z=P.useRef(0);return(0,F.jsxs)(`div`,{role:`region`,"aria-label":`Calendar`,className:x(`flex flex-col h-full bg-background min-w-0 overflow-hidden`,h),children:[(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 p-2 sm:p-4 border-b min-w-0`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,F.jsxs)(`div`,{className:`flex items-center bg-muted/50 rounded-lg p-1 gap-1`,children:[(0,F.jsx)(O,{variant:`ghost`,size:`sm`,onClick:I,className:`h-8`,"aria-label":`Go to today`,children:D(`calendar.today`)}),(0,F.jsx)(`div`,{className:`h-4 w-px bg-border mx-1`}),(0,F.jsx)(O,{variant:`ghost`,size:`icon`,"aria-label":`Previous period`,onClick:ne,className:`h-8 w-8`,children:(0,F.jsx)(j,{className:`h-4 w-4`})}),(0,F.jsx)(O,{variant:`ghost`,size:`icon`,"aria-label":`Next period`,onClick:re,className:`h-8 w-8`,children:(0,F.jsx)(A,{className:`h-4 w-4`})})]}),(0,F.jsxs)(w,{children:[(0,F.jsx)(u,{asChild:!0,children:(0,F.jsxs)(O,{variant:`ghost`,"aria-label":`Current date: ${R()}`,className:x(`text-base sm:text-xl font-semibold h-auto px-2 sm:px-3 py-1 hover:bg-muted/50 transition-colors`,`flex items-center gap-2`),children:[(0,F.jsx)(k,{className:`h-5 w-5 text-muted-foreground`}),(0,F.jsx)(`span`,{children:R()})]})}),(0,F.jsx)(_,{className:`w-auto p-0`,align:`start`,children:(0,F.jsx)(C,{mode:`single`,selected:T,onSelect:e=>{e&&(E(e),s?.(e))},autoFocus:!0,startMonth:new Date(2e3,0),endMonth:new Date(2050,11)})})]})]}),(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxs)(b,{value:g,onValueChange:L,children:[(0,F.jsx)(S,{className:`w-32 bg-background`,children:(0,F.jsx)(m,{})}),(0,F.jsxs)(te,{children:[(0,F.jsx)(f,{value:`day`,children:D(`calendar.day`)}),(0,F.jsx)(f,{value:`week`,children:D(`calendar.week`)}),(0,F.jsx)(f,{value:`month`,children:D(`calendar.month`)})]})]}),c&&(0,F.jsxs)(O,{onClick:c,size:`sm`,className:`gap-1`,children:[(0,F.jsx)(v,{className:`h-4 w-4`}),D(`calendar.newEvent`)]})]})]}),(0,F.jsxs)(`div`,{className:`flex-1 overflow-auto`,onTouchStart:e=>{z.current=e.touches[0].clientX},onTouchEnd:e=>{let t=z.current-e.changedTouches[0].clientX;if(Math.abs(t)>50){let e=new Date(T);g===`day`?e.setDate(e.getDate()+(t>0?1:-1)):g===`week`?e.setDate(e.getDate()+(t>0?7:-7)):e.setMonth(e.getMonth()+(t>0?1:-1)),E(e),s?.(e)}},children:[g===`month`&&(0,F.jsx)(W,{date:T,events:e,locale:M,onEventClick:i,onDateClick:a,onEventDrop:l}),g===`week`&&(0,F.jsx)(Y,{mode:`week`,date:T,events:e,locale:M,slotMinutes:p,onEventClick:i,onEventDrop:l,onTimeRangeSelect:d}),g===`day`&&(0,F.jsx)(Y,{mode:`day`,date:T,events:e,locale:M,slotMinutes:p,onEventClick:i,onEventDrop:l,onTimeRangeSelect:d})]})]})}function H(e){let t=new Date(e),n=t.getDay(),r=t.getDate()-n;return t.setDate(r),t}function oe(e){let t=e.getFullYear(),n=e.getMonth(),r=new Date(t,n,1),i=new Date(t,n+1,0),a=r.getDay(),o=[];for(let e=a-1;e>=0;e--){let t=new Date(r.getTime());t.setDate(t.getDate()-(e+1)),o.push(t)}for(let e=1;e<=i.getDate();e++)o.push(new Date(t,n,e));let s=42-o.length;for(let e=1;e<=s;e++){let t=new Date(i.getTime());t.setDate(t.getDate()+e),o.push(t)}return o}function U(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function W({date:e,events:t,locale:n=`default`,onEventClick:r,onDateClick:i,onEventDrop:a}){let o=P.useMemo(()=>oe(e),[e.getFullYear(),e.getMonth()]),s=P.useMemo(()=>new Date,[]),{t:c}=B(),l=P.useMemo(()=>{let e=new Date(2024,0,7);return Array.from({length:7},(t,r)=>{let i=new Date(e);return i.setDate(i.getDate()+r),i.toLocaleDateString(n,{weekday:`short`})})},[n]),[u,d]=P.useState(null),[f,p]=P.useState(null),m=P.useMemo(()=>{let e=new Map;for(let n of t){let t=new Date(n.start),r=n.end?new Date(n.end):new Date(t);t.setHours(0,0,0,0),r.setHours(0,0,0,0);let i=new Date(t);for(;i<=r;){let a=`${i.getFullYear()}-${i.getMonth()}-${i.getDate()}`,o=i.getTime()===t.getTime(),s=i.getTime()===r.getTime(),c=o||s||i.getDay()===0,l=e.get(a),u={event:n,isTitleDay:c,isSpanStart:o,isSpanEnd:s};l?l.push(u):e.set(a,[u]),i.setDate(i.getDate()+1)}}return e},[t]),h=(e,t,n=`move`,r)=>{d(t.id),e.dataTransfer.effectAllowed=`move`;let i={id:t.id,mode:n,...r?{sourceDay:`${r.getFullYear()}-${r.getMonth()}-${r.getDate()}`}:{}};e.dataTransfer.setData(`text/plain`,JSON.stringify(i)),n===`resize-end`&&e.stopPropagation()},g=()=>{d(null),p(null)},_=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`,p(t)},v=e=>{e.currentTarget.contains(e.relatedTarget)||p(null)},y=(e,n)=>{if(e.preventDefault(),p(null),d(null),!a)return;let r=e.dataTransfer.getData(`text/plain`),i;try{i=JSON.parse(r)}catch{i={id:r,mode:`move`}}let o=t.find(e=>String(e.id)===String(i.id));if(!o)return;let s=new Date(n);if(s.setHours(0,0,0,0),i.mode===`resize-end`){let e=o.end?new Date(o.end):new Date(o.start),t=new Date(e);if(t.setHours(0,0,0,0),s.getTime()===t.getTime())return;let n=new Date(o.start);if(n.setHours(0,0,0,0),s.getTime()<n.getTime())return;let r=new Date(s);r.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),0),a(o,new Date(o.start),r);return}let c=new Date(o.start),l;if(i.sourceDay){let[e,t,n]=i.sourceDay.split(`-`).map(e=>parseInt(e,10));l=new Date(e,t,n)}else l=new Date(c);l.setHours(0,0,0,0);let u=s.getTime()-l.getTime();if(u===0)return;let f=new Date(c.getTime()+u),m;o.end&&(m=new Date(new Date(o.end).getTime()+u)),a(o,f,m)};return(0,F.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,F.jsx)(`div`,{role:`row`,className:`grid grid-cols-7 border-b`,children:l.map(e=>(0,F.jsx)(`div`,{role:`columnheader`,className:`p-2 text-center text-sm font-medium text-muted-foreground border-r last:border-r-0`,children:e},e))}),(0,F.jsx)(`div`,{role:`grid`,"aria-label":`Calendar grid`,className:`grid grid-cols-7 flex-1 auto-rows-fr`,children:o.map((t,n)=>{let o=`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`,l=m.get(o)||[],d=t.getMonth()===e.getMonth(),p=U(t,s);return(0,F.jsxs)(`div`,{role:`gridcell`,"aria-label":`${t.toLocaleDateString(`default`,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})}${l.length>0?`, ${l.length} event${l.length>1?`s`:``}`:``}`,className:x(`border-b border-r last:border-r-0 p-2 min-h-[100px] cursor-pointer hover:bg-accent/50`,!d&&`bg-muted/50 text-muted-foreground opacity-50`,f===n&&`ring-2 ring-primary`),onClick:()=>i?.(t),onDragOver:e=>_(e,n),onDragLeave:v,onDrop:e=>y(e,t),children:[(0,F.jsx)(`div`,{className:x(`text-sm font-medium mb-2`,p&&`inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground h-6 w-6`),...p?{"aria-current":`date`}:{},children:t.getDate()}),(0,F.jsxs)(`div`,{className:`space-y-0.5`,children:[l.slice(0,4).map(({event:e,isTitleDay:n,isSpanStart:i,isSpanEnd:o},s)=>{let c=!n,{className:l,inlineColor:d}=z(e.color),f=!!a&&o;return(0,F.jsxs)(`div`,{role:`button`,title:e.title,"aria-label":e.title,draggable:!!a,onDragStart:n=>h(n,e,`move`,t),onDragEnd:g,className:x(`relative text-xs hover:opacity-80 truncate`,a?`cursor-move`:`cursor-pointer`,c?`h-1.5`:`px-2 py-0.5`,i?`rounded-l`:`rounded-l-none`,o?`rounded-r`:`rounded-r-none`,!o&&`-mr-2`,l,u===e.id&&`opacity-50`),style:d?{backgroundColor:d}:void 0,onClick:t=>{t.stopPropagation(),r?.(e)},children:[c?``:e.title,f&&(0,F.jsx)(`span`,{role:`separator`,"aria-label":`Resize event end`,title:`Drag to change end date`,draggable:!0,onDragStart:n=>h(n,e,`resize-end`,t),onDragEnd:g,onClick:e=>e.stopPropagation(),className:`absolute inset-y-0 right-0 w-2 cursor-ew-resize bg-black/25 hover:bg-black/50 rounded-r`})]},`${e.id}-${s}`)}),l.length>4&&(0,F.jsx)(`div`,{className:`text-xs text-muted-foreground px-2`,children:c(`calendar.moreEvents`,{count:l.length-4})})]})]},n)})})]})}var G=48;function K(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function q(e){return e.getHours()*60+e.getMinutes()}function J(e){return`${e.getFullYear()}-${e.getMonth()}-${e.getDate()}`}function Y({mode:e,date:t,events:n,locale:r=`default`,slotMinutes:i=30,onEventClick:a,onEventDrop:o,onTimeRangeSelect:s}){let{t:c}=B(),l=G*i/60,u=G*24,d=P.useMemo(()=>{if(e===`day`)return[K(t)];let n=H(t);return Array.from({length:7},(e,t)=>{let r=new Date(n);return r.setDate(n.getDate()+t),K(r)})},[e,t.getFullYear(),t.getMonth(),t.getDate()]),f=P.useMemo(()=>new Date,[]),p=P.useCallback(e=>{if(e.allDay)return!0;let t=new Date(e.start),n=e.end?new Date(e.end):new Date(t),r=t.getHours()===0&&t.getMinutes()===0&&t.getSeconds()===0,i=n.getHours()===0&&n.getMinutes()===0&&n.getSeconds()===0,a=n.getTime()-t.getTime();return!!(r&&i||a>=1440*60*1e3)},[]),{allDayEvents:m,timedEvents:h}=P.useMemo(()=>{let e=[],t=[];for(let r of n)p(r)?e.push(r):t.push(r);return{allDayEvents:e,timedEvents:t}},[n,p]),g=P.useMemo(()=>{let e=new Map;for(let t of d)e.set(J(t),[]);for(let t of m){let n=K(new Date(t.start)),r=t.end?new Date(t.end):new Date(t.start),i=K(r);r.getHours()===0&&r.getMinutes()===0&&r.getSeconds()===0&&r.getTime()>n.getTime()&&(i=new Date(i),i.setDate(i.getDate()-1));for(let r of d){let a=K(r);a<n||a>i||e.get(J(r)).push({event:t,isStart:a.getTime()===n.getTime(),isEnd:a.getTime()===i.getTime()})}}return e},[d,m]),_=P.useMemo(()=>{let e=new Map;for(let t of d)e.set(J(t),[]);for(let t of h){let n=new Date(t.start),r=t.end?new Date(t.end):new Date(n.getTime()+3600*1e3);for(let i of d){let a=K(i),o=new Date(a);if(o.setDate(o.getDate()+1),r<=a||n>=o)continue;let s=n<a?a:n,c=r>o?o:r,l=q(s),u=c.getTime()===o.getTime()?1440:q(c);e.get(J(i)).push({event:t,startMin:l,endMin:Math.max(u,l+15),isStart:s.getTime()===n.getTime(),isEnd:c.getTime()===r.getTime()})}}return e},[d,h]),v=P.useMemo(()=>{let e=new Map;for(let[t,n]of _){let r=[...n].sort((e,t)=>e.startMin-t.startMin||e.endMin-t.endMin),i=[],a=[],o=[];for(let e of r){let t=0;for(;i[t]&&i[t].endMin>e.startMin;)t++;i[t]={endMin:e.endMin},a.push({entry:e,col:t})}for(let e=0;e<a.length;e++){let t=a[e],n=t.col;for(let r=0;r<a.length;r++){if(r===e)continue;let i=a[r];i.entry.startMin<t.entry.endMin&&i.entry.endMin>t.entry.startMin&&i.col>n&&(n=i.col)}o.push({...t.entry,col:t.col,cols:n+1})}e.set(t,o)}return e},[_]),y=P.useRef(null),b=P.useRef([]),[S,C]=P.useState(null),w=P.useRef(null);w.current=S;let T=P.useRef(!1),E=P.useCallback((e,t)=>{let n=b.current[t];if(!n)return 0;let r=(e-n.getBoundingClientRect().top+n.scrollTop)/G*60,a=Math.round(r/i)*i;return Math.max(0,Math.min(1440,a))},[i]),D=P.useCallback(e=>{for(let t=0;t<b.current.length;t++){let n=b.current[t];if(!n)continue;let r=n.getBoundingClientRect();if(e>=r.left&&e<=r.right)return t}return-1},[]);P.useEffect(()=>{if(!S)return;let e=e=>{let t=S.kind===`select`||S.kind===`move`?D(e.clientX):S.dayIndex,n=t<0?S.dayIndex??0:t,r=E(e.clientY,n);C(e=>e&&(e.kind===`select`?{...e,dayIndex:n>=0?n:e.dayIndex,headMinutes:r}:e.kind===`move`?{...e,dayIndex:n,minutes:r}:{...e,minutes:r}))},t=e=>{let t=w.current;if(!t){C(null);return}try{if(t.kind===`select`&&s){let e=Math.min(t.anchorMinutes,t.headMinutes),n=Math.max(t.anchorMinutes,t.headMinutes),r=e,a=n===e?Math.min(1440,e+i):n,o=d[t.dayIndex]??d[0],c=new Date(o);c.setHours(0,Math.round(r),0,0);let l=new Date(o);l.setHours(0,Math.round(a),0,0),T.current=!0,s(c,l)}else if(t.kind===`move`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=t.dayIndex<0?0:t.dayIndex,r=t.minutes-t.grabMinuteOffset,a=Math.max(0,Math.min(1440-t.durationMin,Math.round(r/i)*i)),s=d[n]??d[0],c=new Date(s);c.setHours(0,a,0,0);let l=new Date(c.getTime()+t.durationMin*60*1e3);T.current=!0,o(e,c,l)}}else if(t.kind===`resize-top`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=d[t.dayIndex]??d[0],r=Math.min(t.anchorEndMin-i,Math.max(0,t.minutes)),a=new Date(n);a.setHours(0,r,0,0);let s=new Date(n);s.setHours(0,t.anchorEndMin,0,0),T.current=!0,o(e,a,s)}}else if(t.kind===`resize-bottom`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=d[t.dayIndex]??d[0],r=Math.max(t.anchorStartMin+i,Math.min(1440,t.minutes)),a=new Date(n);a.setHours(0,t.anchorStartMin,0,0);let s=new Date(n);s.setHours(0,r,0,0),T.current=!0,o(e,a,s)}}}finally{C(null),setTimeout(()=>{T.current=!1},50)}};return window.addEventListener(`pointermove`,e),window.addEventListener(`pointerup`,t),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`pointerup`,t)}},[S,d,n,i,o,s,D,E]);let O=P.useMemo(()=>d.map(e=>({weekday:e.toLocaleDateString(r,{weekday:`short`}),day:e.getDate(),month:e.toLocaleDateString(r,{month:`short`}),isToday:U(e,f)})),[d,r,f]),k=P.useMemo(()=>Array.from({length:24},(e,t)=>new Date(2024,0,1,t,0).toLocaleTimeString(r,{hour:`numeric`})),[r]),A=(e,t,n,r)=>{if(!o||e.button!==0)return;e.stopPropagation(),e.preventDefault();let i=E(e.clientY,n);C(r===`body`?{kind:`move`,eventId:t.event.id,grabMinuteOffset:Math.max(0,i-t.startMin),durationMin:t.endMin-t.startMin,dayIndex:n,minutes:i}:r===`top`?{kind:`resize-top`,eventId:t.event.id,anchorEndMin:t.endMin,dayIndex:n,minutes:i}:{kind:`resize-bottom`,eventId:t.event.id,anchorStartMin:t.startMin,dayIndex:n,minutes:i})},j=(e,t)=>{if(!s||e.button!==0)return;e.preventDefault();let n=E(e.clientY,t);C({kind:`select`,dayIndex:t,anchorMinutes:n,headMinutes:n})},ee=e=>{if(!S)return null;if(S.kind===`select`&&S.dayIndex===e){let t=Math.min(S.anchorMinutes,S.headMinutes),n=Math.max(S.anchorMinutes,S.headMinutes);return(0,F.jsx)(`div`,{className:`absolute left-1 right-1 rounded bg-primary/30 border border-primary pointer-events-none z-10`,style:{top:t/60*G,height:Math.max(l,(n-t)/60*G)},"aria-hidden":!0,children:(0,F.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:X(d[e],t,n,r)})})}if(S.kind===`move`&&S.dayIndex===e){let t=S.minutes-S.grabMinuteOffset,n=Math.max(0,Math.min(1440-S.durationMin,Math.round(t/i)*i));return(0,F.jsx)(`div`,{className:`absolute left-1 right-1 rounded border-2 border-dashed border-primary bg-primary/10 pointer-events-none z-10`,style:{top:n/60*G,height:S.durationMin/60*G},"aria-hidden":!0,children:(0,F.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:X(d[e],n,n+S.durationMin,r)})})}if((S.kind===`resize-top`||S.kind===`resize-bottom`)&&S.dayIndex===e){let t,n;return S.kind===`resize-top`?(t=Math.min(S.anchorEndMin-i,Math.max(0,S.minutes)),n=S.anchorEndMin):(t=S.anchorStartMin,n=Math.max(S.anchorStartMin+i,Math.min(1440,S.minutes))),(0,F.jsx)(`div`,{className:`absolute left-1 right-1 rounded border-2 border-dashed border-primary bg-primary/10 pointer-events-none z-10`,style:{top:t/60*G,height:(n-t)/60*G},"aria-hidden":!0,children:(0,F.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:X(d[e],t,n,r)})})}return null};return(0,F.jsxs)(`div`,{className:`flex flex-col h-full`,ref:y,children:[(0,F.jsxs)(`div`,{className:`flex border-b sticky top-0 bg-background z-20`,children:[(0,F.jsx)(`div`,{className:`w-14 shrink-0 border-r`,"aria-hidden":!0}),O.map((e,t)=>(0,F.jsxs)(`div`,{role:`columnheader`,className:x(`flex-1 p-2 text-center text-sm border-r last:border-r-0`,e.isToday&&`bg-primary/5`),children:[(0,F.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:e.weekday}),(0,F.jsx)(`div`,{className:x(`font-medium`,e.isToday&&`inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground h-6 w-6 mx-auto`),children:e.day})]},t))]}),m.length>0&&(0,F.jsxs)(`div`,{className:`flex border-b bg-muted/20 max-h-[140px] overflow-y-auto`,children:[(0,F.jsx)(`div`,{className:`w-14 shrink-0 border-r flex items-start justify-end pr-1 pt-1 text-[10px] text-muted-foreground sticky left-0 bg-muted/20`,children:c(`calendar.allDay`)===`calendar.allDay`?`all-day`:c(`calendar.allDay`)}),d.map(e=>{let t=J(e);return(0,F.jsx)(`div`,{className:`flex-1 border-r last:border-r-0 min-h-[28px] p-0.5 space-y-0.5`,children:(g.get(t)??[]).map(({event:e,isStart:t,isEnd:n},r)=>{let{className:i,inlineColor:o}=z(e.color);return(0,F.jsx)(`div`,{role:`button`,title:e.title,onClick:t=>{t.stopPropagation(),a?.(e)},className:x(`text-[11px] px-2 py-0.5 truncate cursor-pointer hover:opacity-80`,t?`rounded-l`:`rounded-l-none -ml-0.5`,n?`rounded-r`:`rounded-r-none -mr-0.5`,i),style:o?{backgroundColor:o}:void 0,children:t?e.title:`\xA0`},`${e.id}-${r}`)})},t)})]}),(0,F.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,F.jsxs)(`div`,{className:`flex`,style:{height:u},children:[(0,F.jsx)(`div`,{className:`w-14 shrink-0 border-r relative`,children:k.map((e,t)=>(0,F.jsx)(`div`,{className:`absolute right-1 text-[10px] text-muted-foreground -translate-y-1/2`,style:{top:t*G},children:t===0?``:e},t))}),d.map((e,t)=>{let n=J(e),s=v.get(n)??[];return(0,F.jsxs)(`div`,{ref:e=>{b.current[t]=e},className:`flex-1 border-r last:border-r-0 relative select-none`,style:{height:u},onPointerDown:e=>j(e,t),"aria-label":e.toLocaleDateString(r,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`}),children:[Array.from({length:24},(e,t)=>(0,F.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-muted/60 pointer-events-none`,style:{top:t*G}},t)),i<60&&Array.from({length:Math.floor(1440/i)},(e,t)=>{let n=t*i;return n%60==0?null:(0,F.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-dashed border-muted/30 pointer-events-none`,style:{top:n/60*G}},t)}),s.map(n=>{let i=n.startMin/60*G,s=Math.max(l,(n.endMin-n.startMin)/60*G),c=100/n.cols,u=n.col*c,{className:d,inlineColor:f}=z(n.event.color),p=S&&S.eventId===n.event.id;return(0,F.jsxs)(`div`,{role:`button`,tabIndex:0,title:n.event.title,"aria-label":n.event.title,onPointerDown:e=>A(e,n,t,`body`),onClick:e=>{if(T.current){e.stopPropagation();return}e.stopPropagation(),a?.(n.event)},className:x(`absolute rounded text-xs px-2 py-1 overflow-hidden shadow-sm`,o?`cursor-move`:`cursor-pointer`,d,p&&`opacity-40`),style:{top:i,height:s,left:`calc(${u}% + 2px)`,width:`calc(${c}% - 4px)`,...f?{backgroundColor:f}:{}},children:[(0,F.jsx)(`div`,{className:`font-medium truncate`,children:n.event.title}),(0,F.jsx)(`div`,{className:`text-[10px] opacity-80 truncate`,children:X(e,n.startMin,n.endMin,r)}),o&&n.isStart&&(0,F.jsx)(`div`,{onPointerDown:e=>A(e,n,t,`top`),className:`absolute top-0 left-0 right-0 h-1.5 cursor-ns-resize`,"aria-label":`Resize start`}),o&&n.isEnd&&(0,F.jsx)(`div`,{onPointerDown:e=>A(e,n,t,`bottom`),className:`absolute bottom-0 left-0 right-0 h-1.5 cursor-ns-resize`,"aria-label":`Resize end`})]},`${n.event.id}-${n.startMin}`)}),ee(t)]},n)})]})})]})}function X(e,t,n,r){let i=new Date(e);i.setHours(0,Math.round(t),0,0);let a=new Date(e);a.setHours(0,Math.round(n),0,0);let o=e=>e.toLocaleTimeString(r,{hour:`numeric`,minute:`2-digit`});return`${o(i)} – ${o(a)}`}function se(e){return`data`in e&&e.data?e.data:`staticData`in e&&e.staticData?{provider:`value`,items:e.staticData}:e.objectName?{provider:`object`,object:e.objectName}:null}function ce(e){if(e){if(typeof e==`string`){let t=e.split(` `),n=t[0],r=t[1]?.toLowerCase()===`desc`?`desc`:`asc`;return{[n]:r}}if(Array.isArray(e))return e.reduce((e,t)=>(t.field&&t.order&&(e[t.field]=t.order),e),{})}}function le(e){return`filter`in e&&e.filter&&typeof e.filter==`object`&&`calendar`in e.filter?e.filter.calendar:e.calendar?e.calendar:e.startDateField||e.dateField?{startDateField:e.startDateField||e.dateField,endDateField:e.endDateField||e.endField,titleField:e.titleField,colorField:e.colorField,allDayField:e.allDayField}:null}var Z=({schema:e,dataSource:t,className:n,data:r,loading:a,onEventClick:o,onRowClick:c,onDateClick:u,onNavigate:f,onViewChange:m,onEventDrop:_,locale:v})=>{let b=Array.isArray(r),[x,S]=(0,P.useState)(b?r:[]),[C,w]=(0,P.useState)(b?a??!1:!0),[k,A]=(0,P.useState)(null),[j,te]=(0,P.useState)(null),[re,ie]=(0,P.useState)(new Date),I=D(),L=e.defaultView,[R,z]=(0,P.useState)(()=>{let e=L===`day`||!L;return typeof window<`u`&&window.innerWidth<768&&e?`month`:L||`month`});(0,P.useEffect)(()=>{I&&R===`day`&&(L===`day`||!L)&&z(`month`)},[I]);let[ae,B]=(0,P.useState)(0);(0,P.useEffect)(()=>{if(!b&&!(!t?.onMutation||!e.objectName))return t.onMutation(t=>{t.resource===e.objectName&&B(e=>e+1)})},[t,e.objectName,b]);let{ref:H,isRefreshing:oe,pullDistance:U}=ne({onRefresh:(0,P.useCallback)(async()=>{B(e=>e+1)},[]),enabled:!!t&&!!e.objectName}),W=(0,P.useMemo)(()=>se(e),[e.data,e.staticData,e.objectName]),G=(0,P.useMemo)(()=>le(e),[e.filter,e.calendar,e.dateField,e.endField,e.titleField,e.colorField]),K=W?.provider===`value`,q=(0,P.useRef)(null);q.current=j,(0,P.useEffect)(()=>{b&&S(r)},[r,b]),(0,P.useEffect)(()=>{b&&a!==void 0&&w(a)},[a,b]),(0,P.useEffect)(()=>{if(b)return;let n=!0;return(async()=>{try{if(!n)return;if(w(!0),K&&W?.provider===`value`){n&&(S(W.items),w(!1));return}if(!t||typeof t.find!=`function`)throw Error(`DataSource required for object/api providers`);if(W?.provider===`object`){let r=W.object,i=s(q.current?.fields),a=l(await t.find(r,{$filter:e.filter,$orderby:ce(e.sort),...i.length>0?{$expand:i}:{}}));n&&S(a)}else W?.provider===`api`&&(console.warn(`API provider not yet implemented for ObjectCalendar`),n&&S([]));n&&w(!1)}catch(e){console.error(`[ObjectCalendar] Error fetching data:`,e),n&&(A(e),w(!1))}})(),()=>{n=!1}},[b,W,t,K,e.filter,e.sort,ae]),(0,P.useEffect)(()=>{!K&&t&&(async()=>{try{if(!t)return;let n=W?.provider===`object`?W.object:e.objectName;if(!n)return;te(await t.getObjectSchema(n))}catch(e){console.error(`Failed to fetch object schema:`,e)}})()},[e.objectName,t,K,W]);let J=(0,P.useMemo)(()=>{if(!G||!x.length)return[];let{startDateField:e,endDateField:t,titleField:n,colorField:r}=G,i=j?.titleFormat,a=typeof i==`string`?i:i&&typeof i==`object`&&typeof i.source==`string`?i.source:void 0,o=j?.NAME_FIELD_KEY,s=[`name`,`full_name`,`fullName`,`title`,`subject`,`label`,`display_name`,`displayName`],c=(e,t)=>{let n=`[-\\u2013\\u2014|/·,:]`,r=!1,i=e.replace(/\{([^{}]+)\}/g,(e,n)=>{let i=t[n.trim()];return i!=null&&i!==``?(r=!0,String(i)):`\0`});return r?i.replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim():``},l=e=>{let t;if(n&&(t=e[n],typeof t==`string`&&(t=t.trim())),!t&&a){let n=c(a,e);n&&(t=n)}if(!t&&o){let n=e[o];typeof n==`string`?t=n.trim():n&&(t=n)}if(!t)for(let n of s){let r=e[n],i=typeof r==`string`?r.trim():r;if(i){t=i;break}}return t||`Untitled`};return x.map((n,i)=>{let a=n[e],o=t?n[t]:null,s=l(n),c=r?n[r]:void 0;return{id:n.id||n._id||`event-${i}`,title:s,start:a?new Date(a):new Date,end:o?new Date(o):void 0,color:c,allDay:!o,data:n}}).filter(e=>!isNaN(e.start.getTime()))},[x,G,j]);(0,P.useCallback)(()=>{u?.(new Date)},[u]);let Y=e.navigation??{mode:`drawer`,width:`min(960px, 60vw)`},X=Y.mode===`drawer`||Y.mode===`modal`||Y.mode===`split`||Y.mode===`popover`,Z=i({navigation:Y,objectName:e.objectName,onRowClick:X?void 0:c}),ue=(0,P.useCallback)(async(n,r,i)=>{if(!G)return;let{startDateField:a,endDateField:o}=G,s=n?.id??n?._id;if(!s||!e.objectName||!t?.update)return;let c={[a]:r.toISOString()};o&&i&&(c[o]=i.toISOString());let l=x;S(e=>e.map(e=>(e?.id??e?._id)===s?{...e,...c}:e));try{await t.update(e.objectName,s,c)}catch(e){S(l),console.error(`[ObjectCalendar] Failed to persist drag-and-drop reschedule:`,e)}},[G,e.objectName,t,x]),[Q,$]=(0,P.useState)(null),de=(0,P.useCallback)(n=>{!G||!e.objectName||!t?.create||$({start:n,title:``,submitting:!1})},[G,e.objectName,t]),fe=(0,P.useCallback)((n,r)=>{!G||!e.objectName||!t?.create||$({start:n,end:r,title:``,submitting:!1})},[G,e.objectName,t]),pe=(0,P.useCallback)(async()=>{if(!Q||!G)return;let n=Q.title.trim();if(!n){$(e=>e&&{...e,error:`Title is required`});return}if(!e.objectName||!t?.create)return;$(e=>e&&{...e,submitting:!0,error:void 0});let{startDateField:r,endDateField:i,titleField:a}=G,o={[a||`name`]:n,[r]:Q.start.toISOString()};i&&(o[i]=(Q.end??Q.start).toISOString());let s=j?.fields;if(s&&typeof s==`object`){let e=Array.isArray(s)?s.map(e=>[e.name??e.apiName,e]):Object.entries(s);for(let[t,n]of e){if(!t||t in o||!n?.required)continue;if(n.defaultValue!==void 0&&n.defaultValue!==null){o[t]=n.defaultValue;continue}let e=n.type;if(e===`select`||e===`picklist`||e===`status`){let e=(n.options||n.choices||[])[0];e!==void 0&&(o[t]=typeof e==`object`?e.value??e.id:e)}else e===`boolean`||e===`checkbox`?o[t]=!1:(e===`number`||e===`integer`||e===`decimal`||e===`currency`||e===`percent`)&&(o[t]=0)}}try{let n=await t.create(e.objectName,o),r=(n&&(n.record||n.data||n))??null;r&&(r.id!==void 0||r._id!==void 0)&&S(e=>[...e,r]),$(null)}catch(e){let t=e?.message||String(e);$(e=>e&&{...e,submitting:!1,error:t}),console.error(`[ObjectCalendar] Quick-create failed:`,e)}},[Q,G,e.objectName,t,j]);return C?(0,F.jsx)(`div`,{className:n,children:(0,F.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,F.jsx)(`div`,{className:`text-muted-foreground`,children:`Loading calendar...`})})}):k?(0,F.jsx)(`div`,{className:n,children:(0,F.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,F.jsxs)(`div`,{className:`text-destructive`,children:[`Error: `,k.message]})})}):G?(0,F.jsxs)(`div`,{ref:H,className:n,children:[U>0&&(0,F.jsx)(`div`,{className:`flex items-center justify-center text-xs text-muted-foreground`,style:{height:U},children:oe?`Refreshing…`:`Pull to refresh`}),(0,F.jsx)(`div`,{className:`bg-background h-[calc(100vh-120px)] sm:h-[calc(100vh-160px)] md:h-[calc(100vh-200px)] min-h-[400px] sm:min-h-[600px]`,children:(0,F.jsx)(V,{events:J,currentDate:re,view:R,locale:v,onEventClick:e=>{Z.handleClick(e.data),X||o?.(e.data)},onDateClick:e=>{u?u(e):de(e)},onNavigate:e=>{ie(e),f?.(e)},onViewChange:e=>{z(e),m?.(e)},onAddClick:void 0,onEventDrop:(e,t,n)=>{_?_(e.data,t,n):ue(e.data,t,n)},onTimeRangeSelect:fe})}),(0,F.jsx)(p,{open:!!Q,onOpenChange:e=>{e||$(null)},children:(0,F.jsxs)(h,{className:`sm:max-w-md`,children:[(0,F.jsxs)(ee,{children:[(0,F.jsx)(d,{children:`New event`}),(0,F.jsx)(g,{children:Q&&(()=>{let e=Q.end&&Q.end.getTime()!==Q.start.getTime(),t=Q.start.toLocaleDateString(v,{year:`numeric`,month:`long`,day:`numeric`});if(e){let e=e=>e.toLocaleTimeString(v,{hour:`numeric`,minute:`2-digit`});return(0,F.jsxs)(F.Fragment,{children:[t,` · `,e(Q.start),` – `,e(Q.end)]})}return(0,F.jsxs)(F.Fragment,{children:[`On `,t]})})()})]}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(E,{htmlFor:`quick-create-title`,children:`Title`}),(0,F.jsx)(T,{id:`quick-create-title`,autoFocus:!0,value:Q?.title??``,onChange:e=>$(t=>t&&{...t,title:e.target.value,error:void 0}),onKeyDown:e=>{e.key===`Enter`&&!Q?.submitting&&(e.preventDefault(),pe())},placeholder:`What's this event about?`,disabled:Q?.submitting}),Q?.error&&(0,F.jsx)(`p`,{className:`text-sm text-destructive`,children:Q.error})]}),(0,F.jsxs)(y,{children:[(0,F.jsx)(O,{variant:`outline`,onClick:()=>$(null),disabled:Q?.submitting,children:`Cancel`}),(0,F.jsx)(O,{onClick:()=>void pe(),disabled:Q?.submitting||!Q?.title.trim(),children:Q?.submitting?`Creating…`:`Create`})]})]})}),Z.isOverlay&&Z.isOpen&&Z.selectedRecord&&(()=>{let n=W?.provider===`object`?W.object:e.objectName,r=Z.selectedRecord,i=r.id??r._id;if(!n||i==null)return null;let a=G?.titleField?String(r[G.titleField]??`Event Details`):`Event Details`;return(0,F.jsx)(N,{open:!0,onClose:Z.close,title:a,record:r,objectName:n,recordId:i,dataSource:t,objectSchema:j,width:Z.width??`min(960px, 60vw)`,fullPageHref:M(n,i)??void 0,onFieldSave:async(e,r)=>{t?.update&&(await t.update(n,String(i),{[e]:r}),S(t=>t.map(t=>String(t.id??t._id)===String(i)?{...t,[e]:r}:t)))},onDelete:async()=>{t?.delete&&(await t.delete(n,String(i)),S(e=>e.filter(e=>String(e.id??e._id)!==String(i))))}})})()]}):(0,F.jsx)(`div`,{className:n,children:(0,F.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,F.jsx)(`div`,{className:`text-muted-foreground`,children:`Calendar configuration required. Please specify startDateField and titleField.`})})})};o.register(`calendar-view`,({schema:e,className:t,onAction:n,...r})=>{let i=P.useMemo(()=>!e.data||!Array.isArray(e.data)?[]:e.data.map((t,n)=>{let r=e.titleField||`title`,i=e.startDateField||`start`,a=e.endDateField||`end`,o=e.colorField||`color`,s=e.allDayField||`allDay`;return{id:t.id||t._id||n,title:t[r]||`Untitled Event`,start:new Date(t[i]),end:t[a]?new Date(t[a]):void 0,allDay:t[s],color:t[o],data:t}}),[e.data,e.titleField,e.startDateField,e.endDateField,e.colorField,e.allDayField]);return(0,F.jsx)(V,{className:t,events:i,onEventClick:e=>{n?.({type:`event-click`,payload:e})},...r})},{namespace:`plugin-calendar`,label:`Calendar View`,inputs:[{name:`data`,type:`array`,label:`Data`,description:`Array of record objects to display as events`},{name:`titleField`,type:`string`,label:`Title Field`,defaultValue:`title`,description:`Field name to use for event title`},{name:`startDateField`,type:`string`,label:`Start Date Field`,defaultValue:`start`,description:`Field name for event start date`},{name:`endDateField`,type:`string`,label:`End Date Field`,defaultValue:`end`,description:`Field name for event end date (optional)`},{name:`allDayField`,type:`string`,label:`All Day Field`,defaultValue:`allDay`,description:`Field name for all-day flag`},{name:`colorField`,type:`string`,label:`Color Field`,defaultValue:`color`,description:`Field name for event color`},{name:`colorMapping`,type:`object`,label:`Color Mapping`,description:`Map field values to colors (e.g., {meeting: "blue", deadline: "red"})`},{name:`view`,type:`enum`,enum:[`month`,`week`,`day`],defaultValue:`month`,label:`View Mode`,description:`Calendar view mode (month, week, or day)`},{name:`currentDate`,type:`string`,label:`Current Date`,description:`ISO date string for initial calendar date`},{name:`allowCreate`,type:`boolean`,label:`Allow Create`,defaultValue:!1,description:`Allow creating events by clicking on dates`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{view:`month`,titleField:`title`,startDateField:`start`,endDateField:`end`,allDayField:`allDay`,colorField:`color`,allowCreate:!1,data:[{id:1,title:`Team Meeting`,start:new Date(new Date().setHours(10,0,0,0)).toISOString(),end:new Date(new Date().setHours(11,0,0,0)).toISOString(),color:`#3b82f6`,allDay:!1},{id:2,title:`Project Deadline`,start:new Date(new Date().setDate(new Date().getDate()+3)).toISOString(),color:`#ef4444`,allDay:!0},{id:3,title:`Conference`,start:new Date(new Date().setDate(new Date().getDate()+7)).toISOString(),end:new Date(new Date().setDate(new Date().getDate()+9)).toISOString(),color:`#10b981`,allDay:!0}],className:`h-[600px] border rounded-lg`}});var ue=t({CalendarView:()=>V,ObjectCalendar:()=>Z,ObjectCalendarRenderer:()=>Q}),Q=({schema:e,...t})=>{let{dataSource:n}=a()||{};return(0,F.jsx)(Z,{schema:e,dataSource:n,...t})};o.register(`object-calendar`,Q,{namespace:`plugin-calendar`,label:`Object Calendar`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`calendar`,type:`object`,label:`Calendar Config`,description:`startDateField, endDateField, titleField, colorField`}]}),o.register(`calendar`,Q,{namespace:`view`,label:`Calendar View`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`calendar`,type:`object`,label:`Calendar Config`,description:`startDateField, endDateField, titleField, colorField`}]});export{ue as t};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{o as e,r as t}from"./rolldown-runtime-CMxvf4Kt.js";import{g as n,r,y as i}from"./vendor-react-CyVA1SE-.js";import{B as a,G as o,H as s,J as c,K as l,R as u,W as d,Y as f,dt as p,q as m,st as h}from"./framework-Bsl5NTfe.js";import{$o as g,A as _,At as v,Bn as y,Fn as b,Ft as x,In as ee,It as te,Ks as ne,Mt as re,Nt as ie,zn as ae}from"./ui-components-Dv0hQu4t.js";import{C as oe,D as S,E as C,O as w,S as se,T,_ as E,a as D,b as O,c as k,d as A,f as j,g as M,h as N,i as P,l as F,m as I,n as L,o as R,p as z,r as ce,s as le,t as ue,u as de,v as B,w as fe,x as pe,y as me}from"./vendor-charts-BWpBMKWq.js";var V=e(i(),1),H=r(),U=(...e)=>e.filter(Boolean).join(` `),he={light:``,dark:`.dark`},ge=V.createContext(null);function _e(){let e=V.useContext(ge);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}function W({id:e,className:t,children:n,config:r,...i}){let a=V.useId(),o=`chart-${e||a.replace(/:/g,``)}`;return(0,H.jsx)(ge.Provider,{value:{config:r},children:(0,H.jsxs)(`div`,{"data-slot":`chart`,"data-chart":o,className:U(`flex w-full h-[350px] justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground`,t),style:{minHeight:280,minWidth:0,...i.style},...i,children:[(0,H.jsx)(ve,{id:o,config:r}),(0,H.jsx)(w,{width:`100%`,height:`100%`,children:n})]})})}var ve=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme||e.color);return n.length?(0,H.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(he).map(([t,r])=>`
|
|
2
|
+
${r} [data-chart=${e}] {
|
|
3
|
+
${n.map(([e,n])=>{let r=n.theme?.[t]||n.color;return r?` --color-${e}: ${r};`:null}).join(`
|
|
4
|
+
`)}
|
|
5
|
+
}
|
|
6
|
+
`).join(`
|
|
7
|
+
`)}}):null},G=C;function K({active:e,payload:t,className:n,indicator:r=`dot`,hideLabel:i=!1,hideIndicator:a=!1,label:o,labelFormatter:s,labelClassName:c,formatter:l,color:u,nameKey:d,labelKey:f}){let{config:p}=_e(),m=V.useMemo(()=>{if(i||!t?.length)return null;let[e]=t,n=Y(p,e,`${f||e?.dataKey||e?.name||`value`}`),r=!f&&typeof o==`string`?p[o]?.label||o:n?.label;return s?(0,H.jsx)(`div`,{className:U(`font-medium`,c),children:s(r,t)}):r?(0,H.jsx)(`div`,{className:U(`font-medium`,c),children:r}):null},[o,s,t,i,c,p,f]);if(!e||!t?.length)return null;let h=t.length===1&&r!==`dot`;return(0,H.jsxs)(`div`,{className:U(`border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl`,n),children:[h?null:m,(0,H.jsx)(`div`,{className:`grid gap-1.5`,children:t.filter(e=>e.type!==`none`).map((e,t)=>{let n=Y(p,e,`${d||e.name||e.dataKey||`value`}`),i=u||e.payload.fill||e.color;return(0,H.jsx)(`div`,{className:U(`[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5`,r===`dot`?`items-center`:``),children:l&&e?.value!==void 0&&e.name?l(e.value,e.name,e,t,e.payload):(0,H.jsxs)(H.Fragment,{children:[n?.icon?(0,H.jsx)(n.icon,{}):!a&&(0,H.jsx)(`div`,{className:U(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,r===`dot`?`h-2.5 w-2.5`:``,r===`line`?`w-1`:``,r===`dashed`?`w-0 border-[1.5px] border-dashed bg-transparent`:``,h&&r===`dashed`?`my-0.5`:``),style:{"--color-bg":i,"--color-border":i}}),(0,H.jsxs)(`div`,{className:U(`flex flex-1 justify-between leading-none`,h?`items-end`:`items-center`),children:[(0,H.jsxs)(`div`,{className:`grid gap-1.5`,children:[h?m:null,(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:n?.label||e.name})]}),e.value&&(0,H.jsx)(`span`,{className:`text-foreground font-mono font-medium tabular-nums`,children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})}var q=S;function J({className:e,hideIcon:t=!1,payload:n,verticalAlign:r=`bottom`,nameKey:i}){let{config:a}=_e();return n?.length?(0,H.jsx)(`div`,{className:U(`flex items-center justify-center gap-4`,r===`top`?`pb-3`:`pt-3`,e),children:n.filter(e=>e.type!==`none`).map(e=>{let n=Y(a,e,`${i||e.dataKey||`value`}`);return(0,H.jsxs)(`div`,{className:U(`[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3`),children:[n?.icon&&!t?(0,H.jsx)(n.icon,{}):(0,H.jsx)(`div`,{className:`h-2 w-2 shrink-0 rounded-[2px]`,style:{backgroundColor:e.color}}),n?.label]},e.value)})}):null}function Y(e,t,n){if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n;return n in t&&typeof t[n]==`string`?i=t[n]:r&&n in r&&typeof r[n]==`string`&&(i=r[n]),i in e?e[i]:e[n]}var ye=t({default:()=>Se}),be=`hsl(var(--primary))`,xe={slate:`#64748b`,gray:`#6b7280`,zinc:`#71717a`,neutral:`#737373`,stone:`#78716c`,red:`#ef4444`,orange:`#f97316`,amber:`#f59e0b`,yellow:`#eab308`,lime:`#84cc16`,green:`#22c55e`,emerald:`#10b981`,teal:`#14b8a6`,cyan:`#06b6d4`,sky:`#0ea5e9`,blue:`#3b82f6`,indigo:`#6366f1`,violet:`#8b5cf6`,purple:`#a855f7`,fuchsia:`#d946ef`,pink:`#ec4899`,rose:`#f43f5e`},X=e=>xe[e]||e,Z=(e,t)=>e?.variant===`comparison`?{strokeOpacity:typeof e.opacity==`number`?e.opacity:t===`line`||t===`scatter`?.5:.6,fillOpacity:typeof e.opacity==`number`?e.opacity:t===`bar`?.4:t===`area`?.2:.5,strokeDasharray:e.dashArray??(t===`line`||t===`area`?`4 4`:void 0)}:null;function Se({chartType:e=`bar`,data:t=[],config:n={},xAxisKey:r=`name`,series:i=[],className:a=``,onChartClick:o}){let s=e===`column`?`bar`:e,c=Array.isArray(t)?t:[],[l,u]=V.useState(!1),d=V.useCallback(e=>{if(!o||!e)return;let t=Array.isArray(e.activePayload)?e.activePayload[0]:void 0;o({category:e.activeLabel==null?void 0:String(e.activeLabel),series:t?.dataKey?String(t.dataKey):void 0,value:typeof t?.value==`number`?t.value:void 0})},[o]),f=V.useCallback(e=>{if(!o||!e)return;let t=e.payload?.[r],n=i[0]?.dataKey||`value`;o({category:t==null?void 0:String(t),series:n,value:typeof e.payload?.[n]==`number`?e.payload[n]:void 0})},[o,r,i]),p=o?{onClick:d,style:{cursor:`pointer`}}:{},m=o?{onClick:f,style:{cursor:`pointer`}}:{};V.useEffect(()=>{let e=()=>u(window.innerWidth<640);return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let h={bar:F,"horizontal-bar":F,line:de,area:ce,pie:k,donut:k,radar:D,scatter:P,funnel:ue,combo:F,treemap:F,sankey:F}[s]||F,g=V.useCallback(e=>{if(e==null||e===``)return``;let t=typeof e==`string`?e:String(e);if(/^\d{4}-\d{2}-\d{2}/.test(t)){let e=new Date(t);if(!Number.isNaN(e.getTime())){let t=(c.length>1?Math.abs(new Date(String(c[c.length-1][r]??``)).getTime()-new Date(String(c[0][r]??``)).getTime()):0)/(1e3*60*60*24);try{return t<=62?e.toLocaleDateString(void 0,{month:`short`,day:`numeric`}):e.toLocaleDateString(void 0,{month:`short`,year:`numeric`})}catch{return e.toISOString().slice(0,10)}}}return l&&t.length>8?t.slice(0,8)+`…`:t},[c,r,l]),_=V.useMemo(()=>c.some(e=>String(e[r]||``).length>5),[c,r]),v=()=>[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`,`hsl(var(--chart-4))`,`hsl(var(--chart-5))`],y=V.useCallback(e=>{if(e==null||e===``)return``;let t=typeof e==`number`?e:Number(e);if(!Number.isFinite(t))return String(e);try{return new Intl.NumberFormat(void 0,{notation:`compact`,maximumFractionDigits:1}).format(t)}catch{return String(t)}},[]),b=V.useMemo(()=>({tickLine:!1,tickMargin:10,axisLine:!1,interval:`preserveStartEnd`,minTickGap:l?32:48,tickFormatter:g,...!l&&_&&{angle:-35,textAnchor:`end`,height:60}}),[l,_,g]);if(s===`pie`||s===`donut`){let e=s===`donut`?60:0,t=v(),o={...n};return c.forEach((e,n)=>{let i=e?.[r];if(i==null||i===``)return;let a=String(i);o[a]||(o[a]={label:a,color:t[n%t.length]})}),(0,H.jsx)(W,{config:o,className:a,children:(0,H.jsxs)(k,{children:[(0,H.jsx)(G,{cursor:!1,content:(0,H.jsx)(K,{hideLabel:!0})}),(0,H.jsx)(O,{data:c,dataKey:i[0]?.dataKey||`value`,nameKey:r||`name`,innerRadius:e,strokeWidth:5,paddingAngle:2,outerRadius:80,...m,children:c.map((e,n)=>{let i=o[String(e[r])]?.color;return i||=t[n%t.length],(0,H.jsx)(T,{fill:X(i)},`cell-${n}`)})}),(0,H.jsx)(q,{verticalAlign:`bottom`,wrapperStyle:{fontSize:l?`11px`:`12px`,paddingTop:`8px`},content:(0,H.jsx)(J,{nameKey:r,className:`flex-wrap`})})]})})}if(s===`funnel`){let e=i[0]?.dataKey||`value`,t=v(),s=o?t=>{t&&o({category:t?.payload?.[r]??t?.[r],value:t?.payload?.[e]??t?.[e]})}:void 0,l=s?{onClick:s,style:{cursor:`pointer`}}:{},u=[...c].sort((t,n)=>{let r=Number(t?.[e]??0);return Number(n?.[e]??0)-r});return(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsxs)(ue,{children:[(0,H.jsx)(G,{content:(0,H.jsx)(K,{})}),(0,H.jsxs)(L,{dataKey:e,data:u,nameKey:r,isAnimationActive:!0,...l,children:[(0,H.jsx)(fe,{position:`right`,fill:`hsl(var(--foreground))`,stroke:`none`,dataKey:r}),u.map((e,n)=>(0,H.jsx)(T,{fill:X(t[n%t.length])},`funnel-cell-${n}`))]})]})})}if(s===`treemap`){let e=i[0]?.dataKey||`value`,t=v(),o=c.map((n,i)=>({name:String(n?.[r]??``),size:Number(n?.[e])||0,fill:X(t[i%t.length])}));return(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsx)(le,{data:o,dataKey:`size`,nameKey:`name`,isAnimationActive:!0,content:(0,H.jsx)(e=>{let{x:t,y:n,width:r,height:i,name:a,fill:o}=e;return r<=0||i<=0?null:(0,H.jsxs)(`g`,{children:[(0,H.jsx)(`rect`,{x:t,y:n,width:r,height:i,fill:o,stroke:`hsl(var(--background))`,strokeWidth:2}),r>48&&i>18?(0,H.jsx)(`text`,{x:t+6,y:n+18,fill:`#fff`,fontSize:12,className:`pointer-events-none`,children:a}):null]})},{}),children:(0,H.jsx)(C,{})})})}if(s===`sankey`){let e=i[0]?.dataKey||`value`,t=i[0]?.label||e,o=c.filter(t=>(Number(t?.[e])||0)>0),s=[{name:t},...o.map(e=>({name:String(e?.[r]??``)}))],l=o.map((t,n)=>({source:0,target:n+1,value:Number(t?.[e])||0}));return l.length===0?(0,H.jsx)(`div`,{className:a}):(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsx)(R,{data:{nodes:s,links:l},nodePadding:24,link:{stroke:`hsl(var(--muted-foreground))`,strokeOpacity:.25},node:{fill:`hsl(var(--chart-1))`},children:(0,H.jsx)(C,{})})})}if(s===`radar`)return(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsxs)(D,{data:c,children:[(0,H.jsx)(oe,{}),(0,H.jsx)(pe,{dataKey:r}),(0,H.jsx)(se,{}),(0,H.jsx)(G,{content:(0,H.jsx)(K,{})}),(0,H.jsx)(q,{content:(0,H.jsx)(J,{}),...l&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map(e=>{let t=X(n[e.dataKey]?.color||be);return(0,H.jsx)(me,{dataKey:e.dataKey,stroke:t,fill:t,fillOpacity:.6},e.dataKey)})]})});if(s===`scatter`)return(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsxs)(P,{children:[(0,H.jsx)(B,{vertical:!1}),(0,H.jsx)(z,{type:`number`,dataKey:r,name:String(n[r]?.label||r),tickLine:!1,axisLine:!1,minTickGap:l?32:48}),(0,H.jsx)(j,{type:`number`,dataKey:i[0]?.dataKey||`value`,name:String(n[i[0]?.dataKey]?.label||i[0]?.dataKey),tickLine:!1,axisLine:!1,tickFormatter:y,width:48}),(0,H.jsx)(A,{type:`number`,range:[60,400]}),(0,H.jsx)(G,{content:(0,H.jsx)(K,{})}),(0,H.jsx)(q,{content:(0,H.jsx)(J,{}),...l&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map((e,t)=>{let r=v(),i=X(n[e.dataKey]?.color||r[t%r.length]),a=Z(e,`scatter`);return(0,H.jsx)(I,{name:n[e.dataKey]?.label||e.dataKey,data:c,fill:i,fillOpacity:a?.fillOpacity},e.dataKey)})]})});if(s===`combo`)return(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsxs)(F,{data:c,children:[(0,H.jsx)(B,{vertical:!1}),(0,H.jsx)(z,{dataKey:r,...b}),(0,H.jsx)(j,{yAxisId:`left`,tickLine:!1,axisLine:!1,tickFormatter:y,width:48}),(0,H.jsx)(j,{yAxisId:`right`,orientation:`right`,tickLine:!1,axisLine:!1,tickFormatter:y,width:48}),(0,H.jsx)(G,{content:(0,H.jsx)(K,{})}),(0,H.jsx)(q,{content:(0,H.jsx)(J,{}),...l&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map((e,t)=>{let r=X(n[e.dataKey]?.color||be),i=e.chartType||(t===0?`bar`:`line`),a=i===`bar`?`left`:`right`,o=Z(e,i);return i===`line`?(0,H.jsx)(E,{yAxisId:a,type:`monotone`,dataKey:e.dataKey,stroke:r,strokeWidth:2,dot:!1,strokeOpacity:o?.strokeOpacity,strokeDasharray:o?.strokeDasharray},e.dataKey):i===`area`?(0,H.jsx)(M,{yAxisId:a,type:`monotone`,dataKey:e.dataKey,fill:r,stroke:r,fillOpacity:o?.fillOpacity??.4,strokeOpacity:o?.strokeOpacity,strokeDasharray:o?.strokeDasharray},e.dataKey):(0,H.jsx)(N,{yAxisId:a,dataKey:e.dataKey,fill:r,radius:4,fillOpacity:o?.fillOpacity},e.dataKey)})]})});let x=s===`horizontal-bar`;return(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsxs)(h,{data:c,layout:x?`vertical`:`horizontal`,...p,children:[(0,H.jsx)(B,{vertical:!1}),x?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(z,{type:`number`,tickLine:!1,axisLine:!1,tickFormatter:y}),(0,H.jsx)(j,{type:`category`,dataKey:r,tickLine:!1,axisLine:!1,width:Math.min(140,Math.max(60,Math.max(...c.map(e=>String(e[r]??``).length))*7)),tickFormatter:g})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(z,{dataKey:r,...b}),(0,H.jsx)(j,{tickLine:!1,axisLine:!1,tickFormatter:y,width:48})]}),(0,H.jsx)(G,{content:(0,H.jsx)(K,{})}),(0,H.jsx)(q,{content:(0,H.jsx)(J,{}),...l&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map((e,t)=>{let r=v(),a=e.variant===`comparison`,o=a?i.slice(0,t).find(e=>e.variant!==`comparison`)||i[0]:e,l=a?i.indexOf(o):t,u=X(n[o.dataKey]?.color||r[l%r.length]||be);if(s===`bar`||s===`horizontal-bar`){let t=i.filter(e=>e.variant!==`comparison`).length===1&&!a&&i.length===1&&c.length>1,n=Z(e,`bar`);return(0,H.jsx)(N,{dataKey:e.dataKey,fill:u,radius:4,fillOpacity:n?.fillOpacity,children:t&&c.map((e,t)=>(0,H.jsx)(T,{fill:X(r[t%r.length])},`cell-${t}`))},e.dataKey)}if(s===`line`){let t=Z(e,`line`);return(0,H.jsx)(E,{type:`monotone`,dataKey:e.dataKey,stroke:u,strokeWidth:2,dot:!1,strokeOpacity:t?.strokeOpacity,strokeDasharray:t?.strokeDasharray},e.dataKey)}if(s===`area`){let t=Z(e,`area`);return(0,H.jsx)(M,{type:`monotone`,dataKey:e.dataKey,fill:u,stroke:u,fillOpacity:t?.fillOpacity??.4,strokeOpacity:t?.strokeOpacity,strokeDasharray:t?.strokeDasharray},e.dataKey)}return null})]})})}var Ce=t({default:()=>we});function we({data:e=[],dataKey:t=`value`,xAxisKey:n=`name`,height:r=400,className:i=``,color:a=`hsl(var(--primary))`}){return(0,H.jsx)(`div`,{className:`p-2 sm:p-3 md:p-4 rounded-xl border border-border bg-card/40 backdrop-blur-sm shadow-lg shadow-background/5 ${i}`,children:(0,H.jsx)(w,{width:`100%`,height:r,children:(0,H.jsxs)(F,{data:e,margin:{top:10,right:10,left:10,bottom:5},children:[(0,H.jsxs)(`defs`,{children:[(0,H.jsxs)(`linearGradient`,{id:`barGradient`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,H.jsx)(`stop`,{offset:`0%`,stopColor:a,stopOpacity:1}),(0,H.jsx)(`stop`,{offset:`90%`,stopColor:a,stopOpacity:.6}),(0,H.jsx)(`stop`,{offset:`100%`,stopColor:a,stopOpacity:.3})]}),(0,H.jsxs)(`filter`,{id:`glow`,height:`130%`,children:[(0,H.jsx)(`feGaussianBlur`,{in:`SourceAlpha`,stdDeviation:`3`,result:`blur`}),(0,H.jsx)(`feOffset`,{in:`blur`,dx:`0`,dy:`0`,result:`offsetBlur`}),(0,H.jsx)(`feFlood`,{floodColor:a,floodOpacity:`0.5`,result:`offsetColor`}),(0,H.jsx)(`feComposite`,{in:`offsetColor`,in2:`offsetBlur`,operator:`in`,result:`offsetBlur`}),(0,H.jsxs)(`feMerge`,{children:[(0,H.jsx)(`feMergeNode`,{in:`offsetBlur`}),(0,H.jsx)(`feMergeNode`,{in:`SourceGraphic`})]})]})]}),(0,H.jsx)(B,{strokeDasharray:`3 3`,stroke:`hsl(var(--border))`,vertical:!1}),(0,H.jsx)(z,{dataKey:n,tick:{fill:`hsl(var(--muted-foreground))`,fontSize:12,fontFamily:`monospace`},tickLine:!1,axisLine:{stroke:`hsl(var(--border))`},dy:10}),(0,H.jsx)(j,{tick:{fill:`hsl(var(--muted-foreground))`,fontSize:12,fontFamily:`monospace`},tickLine:!1,axisLine:!1}),(0,H.jsx)(C,{cursor:{fill:`hsl(var(--muted))`,opacity:.2},contentStyle:{backgroundColor:`hsl(var(--popover))`,borderColor:`hsl(var(--border))`,color:`hsl(var(--popover-foreground))`,borderRadius:`8px`,fontFamily:`monospace`,boxShadow:`0 4px 6px -1px rgb(0 0 0 / 0.1)`},itemStyle:{color:`hsl(var(--primary))`}}),(0,H.jsx)(S,{wrapperStyle:{paddingTop:`20px`,fontFamily:`monospace`}}),(0,H.jsx)(N,{dataKey:t,fill:`url(#barGradient)`,radius:[4,4,0,0],filter:`url(#glow)`,animationDuration:1500})]})})})}var Te=V.lazy(()=>n(()=>Promise.resolve().then(()=>Ce),void 0,import.meta.url)),Ee=V.lazy(()=>n(()=>Promise.resolve().then(()=>ye),void 0,import.meta.url)),De=({schema:e})=>(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(v,{className:`w-full h-48 sm:h-64 md:h-80 lg:h-[400px]`}),children:(0,H.jsx)(Te,{data:e.data,dataKey:e.dataKey,xAxisKey:e.xAxisKey,height:e.height,className:e.className,color:e.color})}),Q=({schema:e,onChartClick:t})=>{let n=V.useMemo(()=>{let t=e.series,n=e.xAxisKey,r=e.config;if(n||(e.index?n=e.index:e.category&&(n=e.category)),t||(e.categories?t=e.categories.map(e=>({dataKey:e})):e.value&&(t=[{dataKey:e.value}])),!r&&t){let n=e.colors||[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`],i={};t.forEach((e,t)=>{i[e.dataKey]={label:e.label||e.dataKey,color:n[t%n.length]}}),r=i}return{chartType:e.chartType,data:Array.isArray(e.data)?e.data:[],config:r,xAxisKey:n,series:t,className:e.className}},[e]);return(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(v,{className:`w-full h-48 sm:h-64 md:h-80 lg:h-[400px]`}),children:(0,H.jsx)(Ee,{chartType:n.chartType,data:n.data,config:n.config,xAxisKey:n.xAxisKey,series:n.series,className:n.className,onChartClick:t})})};function $(e){return e.replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function Oe(e,t){let{field:n,function:r,groupBy:i}=t,a={};for(let t of e){let e=String(t[i]??`Unknown`);a[e]||(a[e]=[]),a[e].push(t)}return Object.entries(a).map(([e,t])=>{let a=t.map(e=>Number(e[n])||0),o;switch(r){case`count`:o=t.length;break;case`avg`:o=a.length>0?a.reduce((e,t)=>e+t,0)/a.length:0;break;case`min`:o=a.length>0?Math.min(...a):0;break;case`max`:o=a.length>0?Math.max(...a):0;break;default:o=a.reduce((e,t)=>e+t,0);break}return{[i]:e,[n]:o}})}async function ke(e,t,n,r,i){if(!e.length||!t)return e;let a=i||((e,t)=>t),o=`__raw_${t}`,s=n?.fields?.[t];if(!s){let n=/^\d{4}-\d{2}-\d{2}/;return e.map(e=>{let r=e[t],i=String(r??``),s=n.test(i)?i:$(i);return{...e,[t]:a(i,s),[o]:r}})}let c=s.type;if(c===`select`||c===`picklist`||c===`dropdown`){let n=s.options||[];if(n.length===0)return e.map(e=>{let n=e[t],r=String(n??``),i=$(r);return{...e,[t]:a(r,i),[o]:n}});let r={};for(let e of n)typeof e==`string`?r[e]=e:e&&typeof e==`object`&&(r[String(e.value)]=e.label||String(e.value));return e.map(e=>{let n=e[t],i=String(n??``),s=r[i]||$(i);return{...e,[t]:a(i,s),[o]:n}})}if(c===`lookup`||c===`master_detail`){let n=s.reference_to||s.reference;if(!n||!r||typeof r.find!=`function`)return e.map(e=>({...e,[o]:e[t]}));let i=[...new Set(e.map(e=>e[t]).filter(e=>e!=null))];if(i.length===0)return e.map(e=>({...e,[o]:e[t]}));let a=s.id_field||`id`;try{let c=h(await r.find(n,{$filter:{[a]:{$in:i}},$top:i.length})),l=s.reference_field||s.display_field||`name`,u={};for(let e of c){let t=String(e[a]??e.id??e._id??``),n=e[l]||e.name||e.label||e.title||t;t&&(u[t]=String(n))}return e.map(e=>{let n=e[t],r=String(n??``);return{...e,[t]:u[r]||r,[o]:n}})}catch(n){return console.warn(`[ObjectChart] Failed to resolve lookup labels:`,n),e.map(e=>({...e,[o]:e[t]}))}}if(c===`date`||c===`datetime`||c===`date_time`||c===`timestamp`||c===`time`)return e.map(e=>({...e,[o]:e[t]}));let l=/^\d{4}-\d{2}-\d{2}/;return e.map(e=>{let n=e[t],r=String(n??``);return{...e,[t]:l.test(r)?r:$(r),[o]:n}})}var Ae=e=>{let{schema:t}=e,n=(0,V.useContext)(a),r=e.dataSource||n?.dataSource,i=s(t.bind),{fieldOptionLabel:p}=ne(),v=(0,V.useRef)(p);(0,V.useEffect)(()=>{v.current=p},[p]);let[oe,S]=(0,V.useState)([]),[C,w]=(0,V.useState)(()=>!(Array.isArray(t.data)&&t.data.length>0)&&!!t.objectName),[se,T]=(0,V.useState)(null),[E,D]=(0,V.useState)(null),O=(0,V.useMemo)(()=>t.aggregate?JSON.stringify(t.aggregate):``,[t.aggregate]),k=(0,V.useMemo)(()=>t.filter?JSON.stringify(t.filter):``,[t.filter]),A=(0,V.useMemo)(()=>t.compareTo?JSON.stringify(t.compareTo):``,[t.compareTo]),j=e=>e!==`pie`&&e!==`donut`&&e!==`funnel`,M=(0,V.useCallback)(async(e,n)=>{if(t.aggregate&&typeof e.aggregate==`function`){let r=t.aggregate.groupBy;if(r&&typeof r==`object`&&!Array.isArray(r)){let i=t.aggregate.field,a=t.aggregate.function,o={function:a,alias:i||a};a!==`count`&&i&&(o.field=i);let s=await e.aggregate(t.objectName,{groupBy:[r],aggregations:[o],where:n});return Array.isArray(s)?s:[]}let i=await e.aggregate(t.objectName,{field:t.aggregate.field,function:t.aggregate.function,groupBy:r,filter:n});return Array.isArray(i)?i:[]}if(typeof e.find==`function`){let r=h(await e.find(t.objectName,{$filter:n}));return t.aggregate&&r.length>0&&(r=Oe(r,t.aggregate)),r}return[]},[t.objectName,O]),N=(0,V.useCallback)(async(e,n)=>{if(!e||!t.objectName){n.current&&w(!1);return}n.current&&(w(!0),T(null));try{let r=l(t.filter),i=t.compareTo,a=!!i&&j(t.chartType),s=a?o(t.filter,i):null,[c,u]=await Promise.all([M(e,r),s?M(e,s):Promise.resolve([])]),d=c,f=t.aggregate?.groupBy,p=f&&typeof f==`object`&&!Array.isArray(f)?f.alias||f.field:f||t.xAxisKey;if(a&&u.length>0&&t.aggregate){let e=t.aggregate.field,n=t.aggregate.function,r=t=>{if(t==null)return null;let r=`${e}_${n}`;return r in t?Number(t[r]):n===`count`&&`${e}_count`in t?Number(t[`${e}_count`]):e in t?Number(t[e]):`value`in t?Number(t.value):`count`in t?Number(t.count):null},i=`${e}__comparison`,a=p;if(a&&d.some(e=>e[a]!=null)&&u.some(e=>e[a]!=null)){let e=new Map;for(let t of u){let n=String(t[a]??``);e.set(n,r(t))}d=d.map(t=>{let n=String(t[a]??``),r=e.get(n);return r==null?t:{...t,[i]:r}});let t=new Set(d.map(e=>String(e[a]??``)));for(let e of u){let n=String(e[a]??``);t.has(n)||d.push({[a]:n,[i]:r(e)})}}else{let e=Math.max(d.length,u.length),t=[];for(let n=0;n<e;n++){let e=d[n]||{},a=u[n];t.push(a?{...e,[i]:r(a)}:e)}d=t}}if(p&&typeof e.getObjectSchema==`function`)try{let n=await e.getObjectSchema(t.objectName);d=await ke(d,p,n,e,(e,n)=>v.current(t.objectName,p,e,n))}catch{}n.current&&S(d)}catch(e){console.error(`[ObjectChart] Fetch error:`,e),n.current&&T(e instanceof Error?e.message:`Failed to load chart data`)}finally{n.current&&w(!1)}},[t.objectName,O,k,A,t.xAxisKey,t.chartType,M]);(0,V.useEffect)(()=>{let e={current:!0};return t.objectName&&!i&&!t.data?N(r,e):e.current&&w(!1),()=>{e.current=!1}},[t.objectName,r,i,t.data,k,O,A,N]);let P=i||t.data||oe,F=Array.isArray(P)?P:[],I=t.drillDown,L=t.aggregate?.groupBy||t.xAxisKey,R=(0,V.useMemo)(()=>{if(!L)return new Map;let e=new Map,t=`__raw_${L}`;for(let n of F){let r=n?.[L];if(r==null)continue;let i=t in(n||{})?n[t]:r;e.set(String(r),i)}return e},[F,L]),z=t.compareTo,ce=!!z&&j(t.chartType)&&!!t.aggregate&&F.some(e=>e[`${t.aggregate.field}__comparison`]!=null),le=(0,V.useMemo)(()=>{let e=Array.isArray(t.series)?t.series:null;if(!ce)return e;let n=e||[{dataKey:t.aggregate.field}],r={vsLastWeek:`Previous week`,vsLastMonth:`Previous month`,vsLastQuarter:`Previous quarter`,vsLastYear:`Previous year`,vsYesterday:`Yesterday`,vsPreviousPeriod:`Previous period`}[d(z,t.filter)]||`Previous period`;return[...n.map(e=>({...e,variant:e.variant||`current`})),{dataKey:`${t.aggregate.field}__comparison`,label:r,variant:`comparison`}]},[ce,t.series,t.aggregate,t.filter,z]),ue={...t,data:F,...le?{series:le}:{}};if(C&&F.length===0)return(0,H.jsx)(`div`,{className:`flex items-center justify-center text-muted-foreground text-sm p-4 `+(t.className||``),"data-testid":`chart-loading`,children:`Loading chart data…`});if(se)return(0,H.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 p-4 `+(t.className||``),"data-testid":`chart-error`,role:`alert`,children:[(0,H.jsx)(g,{className:`h-6 w-6 text-destructive opacity-60`}),(0,H.jsx)(`p`,{className:`text-xs text-destructive font-medium`,children:`Failed to load chart data`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground max-w-xs text-center`,children:se})]});if(!r&&t.objectName&&F.length===0)return(0,H.jsxs)(`div`,{className:`flex items-center justify-center text-muted-foreground text-sm p-4 `+(t.className||``),"data-testid":`chart-no-datasource`,children:[`No data source available for “`,t.objectName,`”`]});let de=c(I)?e=>{let t=e.category,n=t!=null&&R.has(String(t))?R.get(String(t)):t;D({...e,category:n,categoryLabel:t,scope:`cell`})}:void 0,B=E&&t.objectName?(()=>{let e=m(I,E,{groupByField:L}),n={...t.filter||{},...e},i=f(I,E,t.title||`Details`),a=I?.target??`drawer`,o=(0,H.jsx)(`div`,{className:`overflow-auto`,"data-testid":`chart-drill-body`,children:(0,H.jsx)(u,{schema:{type:`object-data-table`,objectName:t.objectName,filter:n,pagination:!0,pageSize:I?.maxRows,columns:I?.columns?.map(e=>({accessorKey:e,header:e}))},dataSource:r})});return a===`dialog`?(0,H.jsx)(b,{open:!0,onOpenChange:e=>!e&&D(null),children:(0,H.jsxs)(ee,{className:`max-w-4xl`,children:[(0,H.jsx)(ae,{children:(0,H.jsx)(y,{children:i})}),o]})}):(0,H.jsx)(re,{open:!0,onOpenChange:e=>!e&&D(null),children:(0,H.jsxs)(ie,{side:`right`,className:`w-full sm:max-w-2xl md:max-w-3xl lg:max-w-4xl flex flex-col`,children:[(0,H.jsx)(x,{children:(0,H.jsx)(te,{children:i})}),(0,H.jsx)(`div`,{className:`flex-1 overflow-hidden mt-2`,children:o})]})})})():null;return(0,H.jsxs)(`div`,{className:`relative`,children:[(0,H.jsx)(_,{active:C&&F.length>0}),(0,H.jsx)(Q,{...e,schema:ue,onChartClick:de}),B]})};p.register(`object-chart`,Ae,{namespace:`plugin-charts`,label:`Object Chart`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`data`,type:`array`,label:`Data`,description:`Optional static data`},{name:`filter`,type:`array`,label:`Filter`},{name:`aggregate`,type:`object`,label:`Aggregate`,description:`Aggregation config: { field, function, groupBy }`}]});var je=t({ChartBarRenderer:()=>De,ChartRenderer:()=>Q,ObjectChart:()=>Ae,chartComponents:()=>Me}),Me={"bar-chart":De,chart:Q};p.register(`bar-chart`,De,{namespace:`plugin-charts`,label:`Bar Chart`,category:`plugin`,inputs:[{name:`data`,type:`array`,label:`Data`,required:!0},{name:`dataKey`,type:`string`,label:`Data Key`,defaultValue:`value`},{name:`xAxisKey`,type:`string`,label:`X-Axis Key`,defaultValue:`name`},{name:`height`,type:`number`,label:`Height`,defaultValue:400},{name:`color`,type:`color`,label:`Color`,defaultValue:`#8884d8`}],defaultProps:{data:[{name:`Jan`,value:400},{name:`Feb`,value:300},{name:`Mar`,value:600},{name:`Apr`,value:800},{name:`May`,value:500}],dataKey:`value`,xAxisKey:`name`,height:400,color:`#8884d8`}}),p.register(`chart`,Ae,{namespace:`view`,category:`view`,label:`Chart`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`type`,type:`string`,label:`Chart Type`},{name:`categoryField`,type:`string`,label:`Category Field`},{name:`valueField`,type:`string`,label:`Value Field`}]}),p.register(`chart`,Q,{namespace:`plugin-charts`,label:`Chart`,category:`plugin`,inputs:[{name:`chartType`,type:`enum`,label:`Chart Type`,enum:[{label:`Bar`,value:`bar`},{label:`Line`,value:`line`},{label:`Area`,value:`area`},{label:`Pie`,value:`pie`},{label:`Donut`,value:`donut`},{label:`Radar`,value:`radar`},{label:`Scatter`,value:`scatter`}],defaultValue:`bar`},{name:`data`,type:`code`,label:`Data (JSON)`,required:!0},{name:`config`,type:`code`,label:`Config (JSON)`},{name:`xAxisKey`,type:`string`,label:`X Axis Key`,defaultValue:`name`},{name:`series`,type:`code`,label:`Series (JSON Array)`,required:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{chartType:`bar`,data:[{name:`Jan`,sales:400,revenue:240},{name:`Feb`,sales:300,revenue:139},{name:`Mar`,sales:600,revenue:380},{name:`Apr`,sales:800,revenue:430},{name:`May`,sales:500,revenue:220}],config:{sales:{label:`Sales`,color:`#8884d8`},revenue:{label:`Revenue`,color:`#82ca9d`}},xAxisKey:`name`,series:[{dataKey:`sales`},{dataKey:`revenue`}]}}),p.register(`chart:bar`,Q,{namespace:`plugin-charts`,label:`Bar Chart (Alias)`,category:`plugin`,defaultProps:{chartType:`bar`}}),p.register(`pie-chart`,Q,{namespace:`plugin-charts`,label:`Pie Chart`,category:`plugin`,defaultProps:{chartType:`pie`}}),p.register(`donut-chart`,Q,{namespace:`plugin-charts`,label:`Donut Chart`,category:`plugin`,defaultProps:{chartType:`donut`}}),p.register(`radar-chart`,Q,{namespace:`plugin-charts`,label:`Radar Chart`,category:`plugin`,defaultProps:{chartType:`radar`}}),p.register(`scatter-chart`,Q,{namespace:`plugin-charts`,label:`Scatter Chart`,category:`plugin`,defaultProps:{chartType:`scatter`}});export{je as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,n as t,o as n,r,t as i}from"./rolldown-runtime-CMxvf4Kt.js";import{g as a,r as o,v as s,y as c}from"./vendor-react-CyVA1SE-.js";import{A as l,D as u,E as d,M as f,N as p,O as m,S as h,T as g,_,b as v,g as y,h as b,j as x,m as S,v as C,w,x as ee,y as T}from"./vendor-objectstack-D6pAOWWu.js";import{dt as E,r as te}from"./framework-Bsl5NTfe.js";import{En as D}from"./vendor-radix-thTS_QfF.js";import{$ as ne,$n as re,$o as ie,Ai as ae,At as oe,Bo as se,Cs as ce,Dt as le,Ea as ue,Et as de,F as fe,Fo as pe,Ft as me,Ga as he,Hn as ge,I as _e,It as ve,Jn as ye,Kn as be,L as xe,Lt as Se,Mt as Ce,Nt as we,Ot as Te,Po as Ee,Pt as De,Q as Oe,Qn as ke,Qo as Ae,R as je,Ri as Me,Rs as Ne,Sr as Pe,Ua as Fe,Un as Ie,Uo as Le,Us as O,Ut as Re,Wn as ze,Wo as Be,Wt as Ve,Xn as He,Yn as Ue,Zo as We,_i as Ge,an as Ke,as as qe,at as Je,cn as Ye,ct as Xe,en as Ze,er as Qe,in as $e,is as et,it as tt,kt as nt,ma as rt,mn as it,mr as k,nn as at,nr as ot,nt as st,on as ct,ot as lt,qi as ut,qn as dt,rn as ft,rr as pt,rt as mt,st as ht,ti as gt,tn as _t,tr as vt,tt as yt,ws as bt,xo as xt,xr as St,ya as Ct,ys as wt,z as Tt}from"./ui-components-
|
|
1
|
+
import{a as e,n as t,o as n,r,t as i}from"./rolldown-runtime-CMxvf4Kt.js";import{g as a,r as o,v as s,y as c}from"./vendor-react-CyVA1SE-.js";import{A as l,D as u,E as d,M as f,N as p,O as m,S as h,T as g,_,b as v,g as y,h as b,j as x,m as S,v as C,w,x as ee,y as T}from"./vendor-objectstack-D6pAOWWu.js";import{dt as E,r as te}from"./framework-Bsl5NTfe.js";import{En as D}from"./vendor-radix-thTS_QfF.js";import{$ as ne,$n as re,$o as ie,Ai as ae,At as oe,Bo as se,Cs as ce,Dt as le,Ea as ue,Et as de,F as fe,Fo as pe,Ft as me,Ga as he,Hn as ge,I as _e,It as ve,Jn as ye,Kn as be,L as xe,Lt as Se,Mt as Ce,Nt as we,Ot as Te,Po as Ee,Pt as De,Q as Oe,Qn as ke,Qo as Ae,R as je,Ri as Me,Rs as Ne,Sr as Pe,Ua as Fe,Un as Ie,Uo as Le,Us as O,Ut as Re,Wn as ze,Wo as Be,Wt as Ve,Xn as He,Yn as Ue,Zo as We,_i as Ge,an as Ke,as as qe,at as Je,cn as Ye,ct as Xe,en as Ze,er as Qe,in as $e,is as et,it as tt,kt as nt,ma as rt,mn as it,mr as k,nn as at,nr as ot,nt as st,on as ct,ot as lt,qi as ut,qn as dt,rn as ft,rr as pt,rt as mt,st as ht,ti as gt,tn as _t,tr as vt,tt as yt,ws as bt,xo as xt,xr as St,ya as Ct,ys as wt,z as Tt}from"./ui-components-Dv0hQu4t.js";import{i as Et,n as Dt,r as Ot}from"./vendor-ui-utils-BbOuugky.js";import{t as A}from"./vendor-zod-BzP-Jkm3.js";import{a as kt,c as At,d as jt,f as Mt,h as Nt,i as Pt,l as Ft,m as It,n as Lt,o as Rt,p as zt,r as Bt,s as Vt,u as Ht}from"./vendor-markdown-B0mCB2Nu.js";var Ut=`vercel.ai.error`,Wt=Symbol.for(Ut),Gt,Kt,qt=class e extends (Kt=Error,Gt=Wt,Kt){constructor({name:e,message:t,cause:n}){super(t),this[Gt]=!0,this.name=e,this.cause=n}static isInstance(t){return e.hasMarker(t,Ut)}static hasMarker(e,t){let n=Symbol.for(t);return typeof e==`object`&&!!e&&n in e&&typeof e[n]==`boolean`&&e[n]===!0}};function Jt(e){return e==null?`unknown error`:typeof e==`string`?e:e instanceof Error?e.message:JSON.stringify(e)}var Yt=`AI_InvalidArgumentError`,Xt=`vercel.ai.error.${Yt}`,Zt=Symbol.for(Xt),Qt,$t,en=class extends ($t=qt,Qt=Zt,$t){constructor({message:e,cause:t,argument:n}){super({name:Yt,message:e,cause:t}),this[Qt]=!0,this.argument=n}static isInstance(e){return qt.hasMarker(e,Xt)}},tn=`AI_JSONParseError`,nn=`vercel.ai.error.${tn}`,rn=Symbol.for(nn),an,on,sn=class extends (on=qt,an=rn,on){constructor({text:e,cause:t}){super({name:tn,message:`JSON parsing failed: Text: ${e}.
|
|
2
2
|
Error message: ${Jt(t)}`,cause:t}),this[an]=!0,this.text=e}static isInstance(e){return qt.hasMarker(e,nn)}},cn=`AI_TypeValidationError`,ln=`vercel.ai.error.${cn}`,un=Symbol.for(ln),dn,fn,pn=class e extends (fn=qt,dn=un,fn){constructor({value:e,cause:t,context:n}){let r=`Type validation failed`;if(n?.field&&(r+=` for ${n.field}`),n?.entityName||n?.entityId){r+=` (`;let e=[];n.entityName&&e.push(n.entityName),n.entityId&&e.push(`id: "${n.entityId}"`),r+=e.join(`, `),r+=`)`}super({name:cn,message:`${r}: Value: ${JSON.stringify(e)}.
|
|
3
3
|
Error message: ${Jt(t)}`,cause:t}),this[dn]=!0,this.value=e,this.context=n}static isInstance(e){return qt.hasMarker(e,ln)}static wrap({value:t,cause:n,context:r}){return e.isInstance(n)&&n.value===t&&n.context?.field===r?.field&&n.context?.entityName===r?.entityName&&n.context?.entityId===r?.entityId?n:new e({value:t,cause:n,context:r})}},mn=class extends Error{constructor(e,t){super(e),this.name=`ParseError`,this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line}},hn=10,gn=13,_n=32;function vn(e){}function yn(e){if(typeof e==`function`)throw TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:t=vn,onError:n=vn,onRetry:r=vn,onComment:i}=e,a=[],o=!0,s,c=``,l=0,u;function d(e){if(o&&(o=!1,e.charCodeAt(0)===239&&e.charCodeAt(1)===187&&e.charCodeAt(2)===191&&(e=e.slice(3))),a.length===0){let t=f(e);t!==``&&a.push(t);return}if(e.indexOf(`
|
|
4
4
|
`)===-1&&e.indexOf(`\r`)===-1){a.push(e);return}a.push(e);let t=a.join(``);a.length=0;let n=f(t);n!==``&&a.push(n)}function f(e){let n=0;if(e.indexOf(`\r`)===-1){let r=e.indexOf(`
|
|
@@ -95,14 +95,14 @@ ${e}</tr>
|
|
|
95
95
|
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${zc(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=Bc(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+zc(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=Bc(e);if(i===null)return zc(n);e=i;let a=`<img src="${e}" alt="${zc(n)}"`;return t&&(a+=` title="${zc(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:zc(e.text)}},Xc=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},Zc=class e{options;renderer;textRenderer;constructor(e){this.options=e||Ds,this.options.renderer=this.options.renderer||new Yc,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Xc}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},Qc=class{options;block;constructor(e){this.options=e||Ds}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?Jc.lex:Jc.lexInline}provideParser(e=this.block){return e?Zc.parse:Zc.parseInline}},$c=new class{defaults=Es();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Zc;Renderer=Yc;TextRenderer=Xc;Lexer=Jc;Tokenizer=qc;Hooks=Qc;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new Yc(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new qc(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new Qc;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];Qc.passThroughHooks.has(n)?t[r]=e=>{if(this.defaults.async&&Qc.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:t[r]=(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Jc.lex(e,t??this.defaults)}parser(e,t){return Zc.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?Jc.lex:Jc.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?Zc.parse:Zc.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?Jc.lex:Jc.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?Zc.parse:Zc.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
|
|
96
96
|
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+zc(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function R(e,t){return $c.parse(e,t)}R.options=R.setOptions=function(e){return $c.setOptions(e),R.defaults=$c.defaults,Os(R.defaults),R},R.getDefaults=Es,R.defaults=Ds,R.use=function(...e){return $c.use(...e),R.defaults=$c.defaults,Os(R.defaults),R},R.walkTokens=function(e,t){return $c.walkTokens(e,t)},R.parseInline=$c.parseInline,R.Parser=Zc,R.parser=Zc.parse,R.Renderer=Yc,R.TextRenderer=Xc,R.Lexer=Jc,R.lexer=Jc.lex,R.Tokenizer=qc,R.Hooks=Qc,R.parse=R,R.options,R.setOptions,R.use,R.walkTokens,R.parseInline,Zc.parse,Jc.lex;var el=n(s(),1),tl=300,nl=`300px`,rl=500;function il(e={}){let{immediate:t=!1,debounceDelay:n=tl,rootMargin:r=nl,idleTimeout:i=rl}=e,[a,o]=(0,P.useState)(!1),s=(0,P.useRef)(null),c=(0,P.useRef)(null),l=(0,P.useRef)(null),u=(0,P.useMemo)(()=>e=>{let t=Date.now();return window.setTimeout(()=>{e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})},1)},[]),d=(0,P.useMemo)(()=>typeof window<`u`&&window.requestIdleCallback?(e,t)=>window.requestIdleCallback(e,t):u,[u]),f=(0,P.useMemo)(()=>typeof window<`u`&&window.cancelIdleCallback?e=>window.cancelIdleCallback(e):e=>{clearTimeout(e)},[]);return(0,P.useEffect)(()=>{if(t){o(!0);return}let e=s.current;if(!e)return;c.current&&=(clearTimeout(c.current),null),l.current&&=(f(l.current),null);let a=()=>{c.current&&=(clearTimeout(c.current),null),l.current&&=(f(l.current),null)},u=e=>{l.current=d(t=>{t.timeRemaining()>0||t.didTimeout?(o(!0),e.disconnect()):l.current=d(()=>{o(!0),e.disconnect()},{timeout:i/2})},{timeout:i})},p=e=>{a(),c.current=window.setTimeout(()=>{var t;let n=e.takeRecords();(n.length===0||(t=n.at(-1)?.isIntersecting)!=null&&t)&&u(e)},n)},m=(e,t)=>{e.isIntersecting?p(t):a()},h=new IntersectionObserver(e=>{for(let t of e)m(t,h)},{rootMargin:r,threshold:0});return h.observe(e),()=>{c.current&&clearTimeout(c.current),l.current&&f(l.current),h.disconnect()}},[t,n,r,i,f,d]),{shouldRender:a,containerRef:s}}var al=/\s/,ol=/^\s+$/,sl=new Set([`code`,`pre`,`svg`,`math`,`annotation`]),cl=e=>typeof e==`object`&&!!e&&`type`in e&&e.type===`element`,ll=e=>e.some(e=>cl(e)&&sl.has(e.tagName)),ul=e=>{let t=[],n=``,r=!1;for(let i of e){let e=al.test(i);e!==r&&n&&(t.push(n),n=``),n+=i,r=e}return n&&t.push(n),t},dl=e=>{let t=[],n=``;for(let r of e)al.test(r)?n+=r:(n&&=(t.push(n),``),t.push(r));return n&&t.push(n),t},fl=(e,t,n,r,i,a)=>{let o=`--sd-animation:sd-${t};--sd-duration:${i?0:n}ms;--sd-easing:${r}`;return a&&(o+=`;--sd-delay:${a}ms`),{type:`element`,tagName:`span`,properties:{"data-sd-animate":!0,style:o},children:[{type:`text`,value:e}]}},pl=(e,t,n,r,i)=>{let a=t.at(-1);if(!(a&&`children`in a))return;if(ll(t))return It;let o=a,s=o.children.indexOf(e);if(s===-1)return;let c=e.value;if(!c.trim()){i.count+=c.length;return}let l=n.sep===`char`?dl(c):ul(c),u=r.prevContentLength,d=l.map(e=>{let t=i.count;if(i.count+=e.length,ol.test(e))return{type:`text`,value:e};let r=u>0&&t<u,a=r?0:i.newIndex++*n.stagger;return fl(e,n.animation,n.duration,n.easing,r,a)});return o.children.splice(s,1,...d),s+d.length},ml=0;function hl(e){let t={animation:e?.animation??`fadeIn`,duration:e?.duration??150,easing:e?.easing??`ease`,sep:e?.sep??`word`,stagger:e?.stagger??40},n={prevContentLength:0,lastRenderCharCount:0},r=ml++,i=()=>e=>{let r={count:0,newIndex:0};Nt(e,`text`,(e,i)=>pl(e,i,t,n,r)),n.lastRenderCharCount=r.count,n.prevContentLength=0};return Object.defineProperty(i,"name",{value:`rehypeAnimate$${r}`}),{name:`animate`,type:`animate`,rehypePlugin:i,setPrevContentLength(e){n.prevContentLength=e},getLastRenderCharCount(){let e=n.lastRenderCharCount;return n.lastRenderCharCount=0,e}}}hl();var gl=(0,P.createContext)(!1),_l=()=>(0,P.useContext)(gl),vl=(...e)=>Ot(Et(e)),yl=(e,t)=>{if(!e||!t)return t;let n=`${e}:`;return t.split(/\s+/).filter(Boolean).map(t=>t.startsWith(n)?t:`${e}:${t}`).join(` `)},bl=e=>e?(...t)=>yl(e,Ot(Et(t))):vl,xl=(e,t,n)=>{let r=typeof t==`string`&&n.startsWith(`text/csv`)?``:``,i=typeof t==`string`?new Blob([r+t],{type:n}):t,a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=e,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(a)},Sl=(0,P.createContext)(vl),z=()=>(0,P.useContext)(Sl),Cl=vl(`block`,`before:content-[counter(line)]`,`before:inline-block`,`before:[counter-increment:line]`,`before:w-6`,`before:mr-4`,`before:text-[13px]`,`before:text-right`,`before:text-muted-foreground/50`,`before:font-mono`,`before:select-none`),wl=e=>{let t={};for(let n of e.split(`;`)){let e=n.indexOf(`:`);if(e>0){let r=n.slice(0,e).trim(),i=n.slice(e+1).trim();r&&i&&(t[r]=i)}}return t},Tl=(0,P.memo)(({children:e,result:t,language:n,className:r,startLine:i,lineNumbers:a=!0,...o})=>{let s=z(),c=(0,P.useMemo)(()=>s(Cl),[s]),l=(0,P.useMemo)(()=>{let e={};return t.bg&&(e[`--sdm-bg`]=t.bg),t.fg&&(e[`--sdm-fg`]=t.fg),t.rootStyle&&Object.assign(e,wl(t.rootStyle)),e},[t.bg,t.fg,t.rootStyle]);return(0,I.jsx)(`div`,{className:s(r,`overflow-x-auto rounded-md border border-border bg-background p-4 text-sm`),"data-language":n,"data-streamdown":`code-block-body`,...o,children:(0,I.jsx)(`pre`,{className:s(r,`bg-[var(--sdm-bg,inherit]`,`dark:bg-[var(--shiki-dark-bg,var(--sdm-bg,inherit)]`),style:l,children:(0,I.jsx)(`code`,{className:a?s(`[counter-increment:line_0] [counter-reset:line]`):void 0,style:a&&i&&i>1?{counterReset:`line ${i-1}`}:void 0,children:t.tokens.map((e,t)=>(0,I.jsx)(`span`,{className:a?c:void 0,children:e.length===0||e.length===1&&e[0].content===``?`
|
|
97
97
|
`:e.map((e,t)=>{let n={},r=!!e.bgColor;if(e.color&&(n[`--sdm-c`]=e.color),e.bgColor&&(n[`--sdm-tbg`]=e.bgColor),e.htmlStyle)for(let[t,i]of Object.entries(e.htmlStyle))t===`color`?n[`--sdm-c`]=i:t===`background-color`?(n[`--sdm-tbg`]=i,r=!0):n[t]=i;return(0,I.jsx)(`span`,{className:s(`text-[var(--sdm-c,inherit)]`,`dark:text-[var(--shiki-dark,var(--sdm-c,inherit))]`,r&&`bg-[var(--sdm-tbg)]`,r&&`dark:bg-[var(--shiki-dark-bg,var(--sdm-tbg))]`),style:n,...e.htmlAttrs,children:e.content},t)})},t))})})})},(e,t)=>e.result===t.result&&e.language===t.language&&e.className===t.className&&e.startLine===t.startLine&&e.lineNumbers===t.lineNumbers),El=({className:e,language:t,style:n,isIncomplete:r,...i})=>(0,I.jsx)(`div`,{className:z()(`my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2`,e),"data-incomplete":r||void 0,"data-language":t,"data-streamdown":`code-block`,style:{contentVisibility:`auto`,containIntrinsicSize:`auto 200px`,...n},...i}),Dl=(0,P.createContext)({code:``}),Ol=()=>(0,P.useContext)(Dl),kl=({language:e})=>{let t=z();return(0,I.jsx)(`div`,{className:t(`flex h-8 items-center text-muted-foreground text-xs`),"data-language":e,"data-streamdown":`code-block-header`,children:(0,I.jsx)(`span`,{className:t(`ml-1 font-mono lowercase`),children:e})})},Al=e=>{let t=e.length;for(;t>0&&e[t-1]===`
|
|
98
|
-
`;)t--;return e.slice(0,t)},jl=(0,P.lazy)(()=>a(()=>import(`./highlighted-body-OFNGDK62-
|
|
98
|
+
`;)t--;return e.slice(0,t)},jl=(0,P.lazy)(()=>a(()=>import(`./highlighted-body-OFNGDK62-DzZ5rNlx.js`).then(e=>({default:e.HighlightedCodeBlockBody})),[],import.meta.url)),Ml=({code:e,language:t,className:n,children:r,isIncomplete:i=!1,startLine:a,lineNumbers:o,...s})=>{let c=z(),l=(0,P.useMemo)(()=>Al(e),[e]),u=(0,P.useMemo)(()=>({bg:`transparent`,fg:`inherit`,tokens:l.split(`
|
|
99
99
|
`).map(e=>[{content:e,color:`inherit`,bgColor:`transparent`,htmlStyle:{},offset:0}])}),[l]);return(0,I.jsx)(Dl.Provider,{value:{code:e},children:(0,I.jsxs)(El,{isIncomplete:i,language:t,children:[(0,I.jsx)(kl,{language:t}),r?(0,I.jsx)(`div`,{className:c(`pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end`),children:(0,I.jsx)(`div`,{className:c(`pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur`),"data-streamdown":`code-block-actions`,children:r})}):null,(0,I.jsx)(P.Suspense,{fallback:(0,I.jsx)(Tl,{className:n,language:t,lineNumbers:o,result:u,startLine:a,...s}),children:(0,I.jsx)(jl,{className:n,code:l,language:t,lineNumbers:o,raw:u,startLine:a,...s})})]})})},Nl={CheckIcon:e=>(0,I.jsx)(`svg`,{color:`currentColor`,height:16,strokeLinejoin:`round`,viewBox:`0 0 16 16`,width:16,...e,children:(0,I.jsx)(`path`,{clipRule:`evenodd`,d:`M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z`,fill:`currentColor`,fillRule:`evenodd`})}),CopyIcon:e=>(0,I.jsx)(`svg`,{color:`currentColor`,height:16,strokeLinejoin:`round`,viewBox:`0 0 16 16`,width:16,...e,children:(0,I.jsx)(`path`,{clipRule:`evenodd`,d:`M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z`,fill:`currentColor`,fillRule:`evenodd`})}),DownloadIcon:e=>(0,I.jsx)(`svg`,{color:`currentColor`,height:16,strokeLinejoin:`round`,viewBox:`0 0 16 16`,width:16,...e,children:(0,I.jsx)(`path`,{clipRule:`evenodd`,d:`M8.75 1V1.75V8.68934L10.7197 6.71967L11.25 6.18934L12.3107 7.25L11.7803 7.78033L8.70711 10.8536C8.31658 11.2441 7.68342 11.2441 7.29289 10.8536L4.21967 7.78033L3.68934 7.25L4.75 6.18934L5.28033 6.71967L7.25 8.68934V1.75V1H8.75ZM13.5 9.25V13.5H2.5V9.25V8.5H1V9.25V14C1 14.5523 1.44771 15 2 15H14C14.5523 15 15 14.5523 15 14V9.25V8.5H13.5V9.25Z`,fill:`currentColor`,fillRule:`evenodd`})}),ExternalLinkIcon:e=>(0,I.jsx)(`svg`,{color:`currentColor`,height:16,strokeLinejoin:`round`,viewBox:`0 0 16 16`,width:16,...e,children:(0,I.jsx)(`path`,{clipRule:`evenodd`,d:`M13.5 10.25V13.25C13.5 13.3881 13.3881 13.5 13.25 13.5H2.75C2.61193 13.5 2.5 13.3881 2.5 13.25L2.5 2.75C2.5 2.61193 2.61193 2.5 2.75 2.5H5.75H6.5V1H5.75H2.75C1.7835 1 1 1.7835 1 2.75V13.25C1 14.2165 1.7835 15 2.75 15H13.25C14.2165 15 15 14.2165 15 13.25V10.25V9.5H13.5V10.25ZM9 1H9.75H14.2495C14.6637 1 14.9995 1.33579 14.9995 1.75V6.25V7H13.4995V6.25V3.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L12.4388 2.5H9.75H9V1Z`,fill:`currentColor`,fillRule:`evenodd`})}),Loader2Icon:e=>(0,I.jsxs)(`svg`,{color:`currentColor`,height:16,strokeLinejoin:`round`,viewBox:`0 0 16 16`,width:16,...e,children:[(0,I.jsx)(`path`,{d:`M8 0V4`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,I.jsx)(`path`,{d:`M8 16V12`,opacity:`0.5`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,I.jsx)(`path`,{d:`M3.29773 1.52783L5.64887 4.7639`,opacity:`0.9`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,I.jsx)(`path`,{d:`M12.7023 1.52783L10.3511 4.7639`,opacity:`0.1`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,I.jsx)(`path`,{d:`M12.7023 14.472L10.3511 11.236`,opacity:`0.4`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,I.jsx)(`path`,{d:`M3.29773 14.472L5.64887 11.236`,opacity:`0.6`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,I.jsx)(`path`,{d:`M15.6085 5.52783L11.8043 6.7639`,opacity:`0.2`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,I.jsx)(`path`,{d:`M0.391602 10.472L4.19583 9.23598`,opacity:`0.7`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,I.jsx)(`path`,{d:`M15.6085 10.4722L11.8043 9.2361`,opacity:`0.3`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,I.jsx)(`path`,{d:`M0.391602 5.52783L4.19583 6.7639`,opacity:`0.8`,stroke:`currentColor`,strokeWidth:`1.5`})]}),Maximize2Icon:e=>(0,I.jsx)(`svg`,{color:`currentColor`,height:16,strokeLinejoin:`round`,viewBox:`0 0 16 16`,width:16,...e,children:(0,I.jsx)(`path`,{clipRule:`evenodd`,d:`M1 5.25V6H2.5V5.25V2.5H5.25H6V1H5.25H2C1.44772 1 1 1.44772 1 2V5.25ZM5.25 14.9994H6V13.4994H5.25H2.5V10.7494V9.99939H1V10.7494V13.9994C1 14.5517 1.44772 14.9994 2 14.9994H5.25ZM15 10V10.75V14C15 14.5523 14.5523 15 14 15H10.75H10V13.5H10.75H13.5V10.75V10H15ZM10.75 1H10V2.5H10.75H13.5V5.25V6H15V5.25V2C15 1.44772 14.5523 1 14 1H10.75Z`,fill:`currentColor`,fillRule:`evenodd`})}),RotateCcwIcon:e=>(0,I.jsx)(`svg`,{color:`currentColor`,height:16,strokeLinejoin:`round`,viewBox:`0 0 16 16`,width:16,...e,children:(0,I.jsx)(`path`,{clipRule:`evenodd`,d:`M13.5 8C13.5 4.96643 11.0257 2.5 7.96452 2.5C5.42843 2.5 3.29365 4.19393 2.63724 6.5H5.25H6V8H5.25H0.75C0.335787 8 0 7.66421 0 7.25V2.75V2H1.5V2.75V5.23347C2.57851 2.74164 5.06835 1 7.96452 1C11.8461 1 15 4.13001 15 8C15 11.87 11.8461 15 7.96452 15C5.62368 15 3.54872 13.8617 2.27046 12.1122L1.828 11.5066L3.03915 10.6217L3.48161 11.2273C4.48831 12.6051 6.12055 13.5 7.96452 13.5C11.0257 13.5 13.5 11.0336 13.5 8Z`,fill:`currentColor`,fillRule:`evenodd`})}),XIcon:e=>(0,I.jsx)(`svg`,{color:`currentColor`,height:16,strokeLinejoin:`round`,viewBox:`0 0 16 16`,width:16,...e,children:(0,I.jsx)(`path`,{clipRule:`evenodd`,d:`M12.4697 13.5303L13 14.0607L14.0607 13L13.5303 12.4697L9.06065 7.99999L13.5303 3.53032L14.0607 2.99999L13 1.93933L12.4697 2.46966L7.99999 6.93933L3.53032 2.46966L2.99999 1.93933L1.93933 2.99999L2.46966 3.53032L6.93933 7.99999L2.46966 12.4697L1.93933 13L2.99999 14.0607L3.53032 13.5303L7.99999 9.06065L12.4697 13.5303Z`,fill:`currentColor`,fillRule:`evenodd`})}),ZoomInIcon:e=>(0,I.jsx)(`svg`,{color:`currentColor`,height:16,strokeLinejoin:`round`,viewBox:`0 0 16 16`,width:16,...e,children:(0,I.jsx)(`path`,{clipRule:`evenodd`,d:`M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H5.875V4.75V4.125H7.125V4.75V5.875H8.25H8.875V7.125H8.25H7.125V8.25V8.875H5.875V8.25V7.125H4.75H4.125V5.875Z`,fill:`currentColor`,fillRule:`evenodd`})}),ZoomOutIcon:e=>(0,I.jsx)(`svg`,{color:`currentColor`,height:16,strokeLinejoin:`round`,viewBox:`0 0 16 16`,width:16,...e,children:(0,I.jsx)(`path`,{clipRule:`evenodd`,d:`M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H8.25H8.875V7.125H8.25H4.75H4.125V5.875Z`,fill:`currentColor`,fillRule:`evenodd`})})},Pl=(0,P.createContext)(Nl),Fl=(e,t)=>{if(e===t)return!0;if(!(e&&t))return e===t;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length?n.every(n=>e[n]===t[n]):!1},Il=({icons:e,children:t})=>{let n=(0,P.useRef)(e),r=(0,P.useRef)(e?{...Nl,...e}:Nl);Fl(n.current,e)||(n.current=e,r.current=e?{...Nl,...e}:Nl);let i=r.current;return(0,I.jsx)(Pl.Provider,{value:i,children:t})},Ll=()=>(0,P.useContext)(Pl),Rl={copyCode:`Copy Code`,downloadFile:`Download file`,downloadDiagram:`Download diagram`,downloadDiagramAsSvg:`Download diagram as SVG`,downloadDiagramAsPng:`Download diagram as PNG`,downloadDiagramAsMmd:`Download diagram as MMD`,viewFullscreen:`View fullscreen`,exitFullscreen:`Exit fullscreen`,mermaidFormatSvg:`SVG`,mermaidFormatPng:`PNG`,mermaidFormatMmd:`MMD`,copyTable:`Copy table`,copyTableAsMarkdown:`Copy table as Markdown`,copyTableAsCsv:`Copy table as CSV`,copyTableAsTsv:`Copy table as TSV`,downloadTable:`Download table`,downloadTableAsCsv:`Download table as CSV`,downloadTableAsMarkdown:`Download table as Markdown`,tableFormatMarkdown:`Markdown`,tableFormatCsv:`CSV`,tableFormatTsv:`TSV`,imageNotAvailable:`Image not available`,downloadImage:`Download image`,openExternalLink:`Open external link?`,externalLinkWarning:`You're about to visit an external website.`,close:`Close`,copyLink:`Copy link`,copied:`Copied`,openLink:`Open link`},zl=(0,P.createContext)(Rl),Bl=()=>(0,P.useContext)(zl),Vl=({onCopy:e,onError:t,timeout:n=2e3,children:r,className:i,code:a,...o})=>{let s=z(),[c,l]=(0,P.useState)(!1),u=(0,P.useRef)(0),{code:d}=Ol(),{isAnimating:f}=(0,P.useContext)(Kd),p=Bl(),m=a??d,h=async()=>{var r;if(typeof window>`u`||!((r=navigator==null?void 0:navigator.clipboard)!=null&&r.writeText)){t?.(Error(`Clipboard API not available`));return}try{c||(await navigator.clipboard.writeText(m),l(!0),e?.(),u.current=window.setTimeout(()=>l(!1),n))}catch(e){t?.(e)}};(0,P.useEffect)(()=>()=>{window.clearTimeout(u.current)},[]);let g=Ll(),_=c?g.CheckIcon:g.CopyIcon;return(0,I.jsx)(`button`,{className:s(`cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,i),"data-streamdown":`code-block-copy-button`,disabled:f,onClick:h,title:p.copyCode,type:`button`,...o,children:r??(0,I.jsx)(_,{size:14})})},Hl={"1c":`1c`,"1c-query":`1cq`,abap:`abap`,"actionscript-3":`as`,ada:`ada`,adoc:`adoc`,"angular-html":`html`,"angular-ts":`ts`,apache:`conf`,apex:`cls`,apl:`apl`,applescript:`applescript`,ara:`ara`,asciidoc:`adoc`,asm:`asm`,astro:`astro`,awk:`awk`,ballerina:`bal`,bash:`sh`,bat:`bat`,batch:`bat`,be:`be`,beancount:`beancount`,berry:`berry`,bibtex:`bib`,bicep:`bicep`,blade:`blade.php`,bsl:`bsl`,c:`c`,"c#":`cs`,"c++":`cpp`,cadence:`cdc`,cairo:`cairo`,cdc:`cdc`,clarity:`clar`,clj:`clj`,clojure:`clj`,"closure-templates":`soy`,cmake:`cmake`,cmd:`cmd`,cobol:`cob`,codeowners:`CODEOWNERS`,codeql:`ql`,coffee:`coffee`,coffeescript:`coffee`,"common-lisp":`lisp`,console:`sh`,coq:`v`,cpp:`cpp`,cql:`cql`,crystal:`cr`,cs:`cs`,csharp:`cs`,css:`css`,csv:`csv`,cue:`cue`,cypher:`cql`,d:`d`,dart:`dart`,dax:`dax`,desktop:`desktop`,diff:`diff`,docker:`dockerfile`,dockerfile:`dockerfile`,dotenv:`env`,"dream-maker":`dm`,edge:`edge`,elisp:`el`,elixir:`ex`,elm:`elm`,"emacs-lisp":`el`,erb:`erb`,erl:`erl`,erlang:`erl`,f:`f`,"f#":`fs`,f03:`f03`,f08:`f08`,f18:`f18`,f77:`f77`,f90:`f90`,f95:`f95`,fennel:`fnl`,fish:`fish`,fluent:`ftl`,for:`for`,"fortran-fixed-form":`f`,"fortran-free-form":`f90`,fs:`fs`,fsharp:`fs`,fsl:`fsl`,ftl:`ftl`,gdresource:`tres`,gdscript:`gd`,gdshader:`gdshader`,genie:`gs`,gherkin:`feature`,"git-commit":`gitcommit`,"git-rebase":`gitrebase`,gjs:`js`,gleam:`gleam`,"glimmer-js":`js`,"glimmer-ts":`ts`,glsl:`glsl`,gnuplot:`plt`,go:`go`,gql:`gql`,graphql:`graphql`,groovy:`groovy`,gts:`gts`,hack:`hack`,haml:`haml`,handlebars:`hbs`,haskell:`hs`,haxe:`hx`,hbs:`hbs`,hcl:`hcl`,hjson:`hjson`,hlsl:`hlsl`,hs:`hs`,html:`html`,"html-derivative":`html`,http:`http`,hxml:`hxml`,hy:`hy`,imba:`imba`,ini:`ini`,jade:`jade`,java:`java`,javascript:`js`,jinja:`jinja`,jison:`jison`,jl:`jl`,js:`js`,json:`json`,json5:`json5`,jsonc:`jsonc`,jsonl:`jsonl`,jsonnet:`jsonnet`,jssm:`jssm`,jsx:`jsx`,julia:`jl`,kotlin:`kt`,kql:`kql`,kt:`kt`,kts:`kts`,kusto:`kql`,latex:`tex`,lean:`lean`,lean4:`lean`,less:`less`,liquid:`liquid`,lisp:`lisp`,lit:`lit`,llvm:`ll`,log:`log`,logo:`logo`,lua:`lua`,luau:`luau`,make:`mak`,makefile:`mak`,markdown:`md`,marko:`marko`,matlab:`m`,md:`md`,mdc:`mdc`,mdx:`mdx`,mediawiki:`wiki`,mermaid:`mmd`,mips:`s`,mipsasm:`s`,mmd:`mmd`,mojo:`mojo`,move:`move`,nar:`nar`,narrat:`narrat`,nextflow:`nf`,nf:`nf`,nginx:`conf`,nim:`nim`,nix:`nix`,nu:`nu`,nushell:`nu`,objc:`m`,"objective-c":`m`,"objective-cpp":`mm`,ocaml:`ml`,pascal:`pas`,perl:`pl`,perl6:`p6`,php:`php`,plsql:`pls`,po:`po`,polar:`polar`,postcss:`pcss`,pot:`pot`,potx:`potx`,powerquery:`pq`,powershell:`ps1`,prisma:`prisma`,prolog:`pl`,properties:`properties`,proto:`proto`,protobuf:`proto`,ps:`ps`,ps1:`ps1`,pug:`pug`,puppet:`pp`,purescript:`purs`,py:`py`,python:`py`,ql:`ql`,qml:`qml`,qmldir:`qmldir`,qss:`qss`,r:`r`,racket:`rkt`,raku:`raku`,razor:`cshtml`,rb:`rb`,reg:`reg`,regex:`regex`,regexp:`regexp`,rel:`rel`,riscv:`s`,rs:`rs`,rst:`rst`,ruby:`rb`,rust:`rs`,sas:`sas`,sass:`sass`,scala:`scala`,scheme:`scm`,scss:`scss`,sdbl:`sdbl`,sh:`sh`,shader:`shader`,shaderlab:`shader`,shell:`sh`,shellscript:`sh`,shellsession:`sh`,smalltalk:`st`,solidity:`sol`,soy:`soy`,sparql:`rq`,spl:`spl`,splunk:`spl`,sql:`sql`,"ssh-config":`config`,stata:`do`,styl:`styl`,stylus:`styl`,svelte:`svelte`,swift:`swift`,"system-verilog":`sv`,systemd:`service`,talon:`talon`,talonscript:`talon`,tasl:`tasl`,tcl:`tcl`,templ:`templ`,terraform:`tf`,tex:`tex`,tf:`tf`,tfvars:`tfvars`,toml:`toml`,ts:`ts`,"ts-tags":`ts`,tsp:`tsp`,tsv:`tsv`,tsx:`tsx`,turtle:`ttl`,twig:`twig`,typ:`typ`,typescript:`ts`,typespec:`tsp`,typst:`typ`,v:`v`,vala:`vala`,vb:`vb`,verilog:`v`,vhdl:`vhdl`,vim:`vim`,viml:`vim`,vimscript:`vim`,vue:`vue`,"vue-html":`html`,"vue-vine":`vine`,vy:`vy`,vyper:`vy`,wasm:`wasm`,wenyan:`wy`,wgsl:`wgsl`,wiki:`wiki`,wikitext:`wiki`,wit:`wit`,wl:`wl`,wolfram:`wl`,xml:`xml`,xsl:`xsl`,yaml:`yaml`,yml:`yml`,zenscript:`zs`,zig:`zig`,zsh:`zsh`,文言:`wy`},Ul=({onDownload:e,onError:t,language:n,children:r,className:i,code:a,...o})=>{let s=z(),{code:c}=Ol(),{isAnimating:l}=(0,P.useContext)(Kd),u=Bl(),d=Ll(),f=a??c,p=`file.${n&&n in Hl?Hl[n]:`txt`}`;return(0,I.jsx)(`button`,{className:s(`cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,i),"data-streamdown":`code-block-download-button`,disabled:l,onClick:()=>{try{xl(p,f,`text/plain`),e?.()}catch(e){t?.(e)}},title:u.downloadFile,type:`button`,...o,children:r??(0,I.jsx)(d.DownloadIcon,{size:14})})},Wl=()=>{let{Loader2Icon:e}=Ll(),t=z();return(0,I.jsxs)(`div`,{className:t(`w-full divide-y divide-border overflow-hidden rounded-xl border border-border`),children:[(0,I.jsx)(`div`,{className:t(`h-[46px] w-full bg-muted/80`)}),(0,I.jsx)(`div`,{className:t(`flex w-full items-center justify-center p-4`),children:(0,I.jsx)(e,{className:t(`size-4 animate-spin`)})})]})},Gl=/\.[^/.]+$/,Kl=({node:e,className:t,src:n,alt:r,onLoad:i,onError:a,...o})=>{let{DownloadIcon:s}=Ll(),c=z(),l=(0,P.useRef)(null),[u,d]=(0,P.useState)(!1),[f,p]=(0,P.useState)(!1),m=Bl(),h=o.width!=null||o.height!=null,g=(u||h)&&!f,_=f&&!h;(0,P.useEffect)(()=>{let e=l.current;if(e!=null&&e.complete){let t=e.naturalWidth>0;d(t),p(!t)}},[]);let v=(0,P.useCallback)(e=>{d(!0),p(!1),i?.(e)},[i]),y=(0,P.useCallback)(e=>{d(!1),p(!0),a?.(e)},[a]),b=async()=>{if(n)try{let e=await(await fetch(n)).blob(),t=new URL(n,window.location.origin).pathname.split(`/`).pop()||``,i=t.split(`.`).pop(),a=t.includes(`.`)&&i!==void 0&&i.length<=4,o=``;if(a)o=t;else{let n=e.type,i=`png`;n.includes(`jpeg`)||n.includes(`jpg`)?i=`jpg`:n.includes(`png`)?i=`png`:n.includes(`svg`)?i=`svg`:n.includes(`gif`)?i=`gif`:n.includes(`webp`)&&(i=`webp`),o=`${(r||t||`image`).replace(Gl,``)}.${i}`}xl(o,e,e.type)}catch{window.open(n,`_blank`)}};return n?(0,I.jsxs)(`div`,{className:c(`group relative my-4 inline-block`),"data-streamdown":`image-wrapper`,children:[(0,I.jsx)(`img`,{alt:r,className:c(`max-w-full rounded-lg`,_&&`hidden`,t),"data-streamdown":`image`,onError:y,onLoad:v,ref:l,src:n,...o}),_&&(0,I.jsx)(`span`,{className:c(`text-muted-foreground text-xs italic`),"data-streamdown":`image-fallback`,children:m.imageNotAvailable}),(0,I.jsx)(`div`,{className:c(`pointer-events-none absolute inset-0 hidden rounded-lg bg-black/10 group-hover:block`)}),g&&(0,I.jsx)(`button`,{className:c(`absolute right-2 bottom-2 flex h-8 w-8 cursor-pointer items-center justify-center rounded-md border border-border bg-background/90 shadow-sm backdrop-blur-sm transition-all duration-200 hover:bg-background`,`opacity-0 group-hover:opacity-100`),onClick:b,title:m.downloadImage,type:`button`,children:(0,I.jsx)(s,{size:14})})]}):null},ql=0,Jl=()=>{ql+=1,ql===1&&(document.body.style.overflow=`hidden`)},Yl=()=>{ql=Math.max(0,ql-1),ql===0&&(document.body.style.overflow=``)},Xl=({url:e,isOpen:t,onClose:n,onConfirm:r})=>{let{CheckIcon:i,CopyIcon:a,ExternalLinkIcon:o,XIcon:s}=Ll(),c=z(),[l,u]=(0,P.useState)(!1),d=Bl(),f=(0,P.useCallback)(async()=>{try{await navigator.clipboard.writeText(e),u(!0),setTimeout(()=>u(!1),2e3)}catch{}},[e]),p=(0,P.useCallback)(()=>{r(),n()},[r,n]);return(0,P.useEffect)(()=>{if(t){Jl();let e=e=>{e.key===`Escape`&&n()};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e),Yl()}}},[t,n]),t?(0,I.jsx)(`div`,{className:c(`fixed inset-0 z-50 flex items-center justify-center bg-background/50 backdrop-blur-sm`),"data-streamdown":`link-safety-modal`,onClick:n,onKeyDown:e=>{e.key===`Escape`&&n()},role:`button`,tabIndex:0,children:(0,I.jsxs)(`div`,{className:c(`relative mx-4 flex w-full max-w-md flex-col gap-4 rounded-xl border bg-background p-6 shadow-lg`),onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),role:`presentation`,children:[(0,I.jsx)(`button`,{className:c(`absolute top-4 right-4 rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground`),onClick:n,title:d.close,type:`button`,children:(0,I.jsx)(s,{size:16})}),(0,I.jsxs)(`div`,{className:c(`flex flex-col gap-2`),children:[(0,I.jsxs)(`div`,{className:c(`flex items-center gap-2 font-semibold text-lg`),children:[(0,I.jsx)(o,{size:20}),(0,I.jsx)(`span`,{children:d.openExternalLink})]}),(0,I.jsx)(`p`,{className:c(`text-muted-foreground text-sm`),children:d.externalLinkWarning})]}),(0,I.jsx)(`div`,{className:c(`break-all rounded-md bg-muted p-3 font-mono text-sm`,e.length>100&&`max-h-32 overflow-y-auto`),children:e}),(0,I.jsxs)(`div`,{className:c(`flex gap-2`),children:[(0,I.jsx)(`button`,{className:c(`flex flex-1 items-center justify-center gap-2 rounded-md border bg-background px-4 py-2 font-medium text-sm transition-all hover:bg-muted`),onClick:f,type:`button`,children:l?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(i,{size:14}),(0,I.jsx)(`span`,{children:d.copied})]}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(a,{size:14}),(0,I.jsx)(`span`,{children:d.copyLink})]})}),(0,I.jsxs)(`button`,{className:c(`flex flex-1 items-center justify-center gap-2 rounded-md bg-primary px-4 py-2 font-medium text-primary-foreground text-sm transition-all hover:bg-primary/90`),onClick:p,type:`button`,children:[(0,I.jsx)(o,{size:14}),(0,I.jsx)(`span`,{children:d.openLink})]})]})]})}):null},Zl=(0,P.createContext)(null),Ql=()=>(0,P.useContext)(Zl),$l=()=>Ql()?.code??null,eu=()=>Ql()?.mermaid??null,tu=e=>{var t;let n=Ql();return n!=null&&n.renderers&&e&&(t=n.renderers.find(t=>Array.isArray(t.language)?t.language.includes(e):t.language===e))!=null?t:null},nu=(e,t)=>new Promise((t,n)=>{let r=`data:image/svg+xml;base64,`+btoa(unescape(encodeURIComponent(e))),i=new Image;i.crossOrigin=`anonymous`,i.onload=()=>{let e=document.createElement(`canvas`),r=i.width*5,a=i.height*5;e.width=r,e.height=a;let o=e.getContext(`2d`);if(!o){n(Error(`Failed to create 2D canvas context for PNG export`));return}o.drawImage(i,0,0,r,a),e.toBlob(e=>{if(!e){n(Error(`Failed to create PNG blob`));return}t(e)},`image/png`)},i.onerror=()=>n(Error(`Failed to load SVG image`)),i.src=r}),ru=({chart:e,children:t,className:n,onDownload:r,config:i,onError:a})=>{let o=z(),[s,c]=(0,P.useState)(!1),l=(0,P.useRef)(null),{isAnimating:u}=(0,P.useContext)(Kd),d=Ll(),f=eu(),p=Bl(),m=async t=>{try{if(t===`mmd`){xl(`diagram.mmd`,e,`text/plain`),c(!1),r?.(t);return}if(!f){a?.(Error(`Mermaid plugin not available`));return}let n=f.getMermaid(i),o=e.split(``).reduce((e,t)=>(e<<5)-e+t.charCodeAt(0)|0,0),s=`mermaid-${Math.abs(o)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:l}=await n.render(s,e);if(!l){a?.(Error(`SVG not found. Please wait for the diagram to render.`));return}if(t===`svg`){xl(`diagram.svg`,l,`image/svg+xml`),c(!1),r?.(t);return}if(t===`png`){xl(`diagram.png`,await nu(l),`image/png`),r?.(t),c(!1);return}}catch(e){a?.(e)}};return(0,P.useEffect)(()=>{let e=e=>{let t=e.composedPath();l.current&&!t.includes(l.current)&&c(!1)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[]),(0,I.jsxs)(`div`,{className:o(`relative`),ref:l,children:[(0,I.jsx)(`button`,{className:o(`cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,n),disabled:u,onClick:()=>c(!s),title:p.downloadDiagram,type:`button`,children:t??(0,I.jsx)(d.DownloadIcon,{size:14})}),s?(0,I.jsxs)(`div`,{className:o(`absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg`),children:[(0,I.jsx)(`button`,{className:o(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>m(`svg`),title:p.downloadDiagramAsSvg,type:`button`,children:p.mermaidFormatSvg}),(0,I.jsx)(`button`,{className:o(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>m(`png`),title:p.downloadDiagramAsPng,type:`button`,children:p.mermaidFormatPng}),(0,I.jsx)(`button`,{className:o(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>m(`mmd`),title:p.downloadDiagramAsMmd,type:`button`,children:p.mermaidFormatMmd})]}):null]})},iu=({chart:e,config:t,onFullscreen:n,onExit:r,className:i,...a})=>{let{Maximize2Icon:o,XIcon:s}=Ll(),c=z(),[l,u]=(0,P.useState)(!1),{isAnimating:d,controls:f}=(0,P.useContext)(Kd),p=Bl(),m=(()=>{if(typeof f==`boolean`)return f;let e=f.mermaid;return e===!1?!1:e===!0||e===void 0?!0:e.panZoom!==!1})(),h=()=>{u(!l)};return(0,P.useEffect)(()=>{if(l){Jl();let e=e=>{e.key===`Escape`&&u(!1)};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e),Yl()}}},[l]),(0,P.useEffect)(()=>{l?n?.():r&&r()},[l,n,r]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`button`,{className:c(`cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,i),disabled:d,onClick:h,title:p.viewFullscreen,type:`button`,...a,children:(0,I.jsx)(o,{size:14})}),l?(0,el.createPortal)((0,I.jsxs)(`div`,{className:c(`fixed inset-0 z-50 flex items-center justify-center bg-background/95 backdrop-blur-sm`),onClick:h,onKeyDown:e=>{e.key===`Escape`&&h()},role:`button`,tabIndex:0,children:[(0,I.jsx)(`button`,{className:c(`absolute top-4 right-4 z-10 rounded-md p-2 text-muted-foreground transition-all hover:bg-muted hover:text-foreground`),onClick:h,title:p.exitFullscreen,type:`button`,children:(0,I.jsx)(s,{size:20})}),(0,I.jsx)(`div`,{className:c(`flex size-full items-center justify-center p-4`),onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),role:`presentation`,children:(0,I.jsx)(Xd,{chart:e,className:c(`size-full [&_svg]:h-auto [&_svg]:w-auto`),config:t,fullscreen:!0,showControls:m})})]}),document.body):null]})},au=e=>{let t=[],n=[],r=e.querySelectorAll(`thead th`);for(let e of r)t.push(e.textContent?.trim()||``);let i=e.querySelectorAll(`tbody tr`);for(let e of i){let t=[],r=e.querySelectorAll(`td`);for(let e of r)t.push(e.textContent?.trim()||``);n.push(t)}return{headers:t,rows:n}},ou=e=>{let{headers:t,rows:n}=e,r=e=>{let t=!1,n=!1;for(let r of e){if(r===`"`){t=!0,n=!0;break}(r===`,`||r===`
|
|
100
100
|
`)&&(t=!0)}return t?n?`"${e.replace(/"/g,`""`)}"`:`"${e}"`:e},i=t.length>0?n.length+1:n.length,a=Array(i),o=0;t.length>0&&(a[o]=t.map(r).join(`,`),o+=1);for(let e of n)a[o]=e.map(r).join(`,`),o+=1;return a.join(`
|
|
101
101
|
`)},su=e=>{let{headers:t,rows:n}=e,r=e=>{let t=!1;for(let n of e)if(n===` `||n===`
|
|
102
102
|
`||n===`\r`){t=!0;break}if(!t)return e;let n=[];for(let t of e)t===` `?n.push(`\\t`):t===`
|
|
103
103
|
`?n.push(`\\n`):t===`\r`?n.push(`\\r`):n.push(t);return n.join(``)},i=t.length>0?n.length+1:n.length,a=Array(i),o=0;t.length>0&&(a[o]=t.map(r).join(` `),o+=1);for(let e of n)a[o]=e.map(r).join(` `),o+=1;return a.join(`
|
|
104
104
|
`)},cu=e=>{let t=!1;for(let n of e)if(n===`\\`||n===`|`){t=!0;break}if(!t)return e;let n=[];for(let t of e)t===`\\`?n.push(`\\\\`):t===`|`?n.push(`\\|`):n.push(t);return n.join(``)},lu=e=>{let{headers:t,rows:n}=e;if(t.length===0)return``;let r=Array(n.length+2),i=0;r[i]=`| ${t.map(e=>cu(e)).join(` | `)} |`,i+=1;let a=Array(t.length);for(let e=0;e<t.length;e+=1)a[e]=`---`;r[i]=`| ${a.join(` | `)} |`,i+=1;for(let e of n)if(e.length<t.length){let n=Array(t.length);for(let r=0;r<t.length;r+=1)n[r]=r<e.length?cu(e[r]):``;r[i]=`| ${n.join(` | `)} |`,i+=1}else r[i]=`| ${e.map(e=>cu(e)).join(` | `)} |`,i+=1;return r.join(`
|
|
105
|
-
`)},uu=({children:e,className:t,onCopy:n,onError:r,timeout:i=2e3})=>{let a=z(),[o,s]=(0,P.useState)(!1),[c,l]=(0,P.useState)(!1),u=(0,P.useRef)(null),d=(0,P.useRef)(0),{isAnimating:f}=(0,P.useContext)(Kd),p=Bl(),m=async e=>{var t;if(typeof window>`u`||!((t=navigator==null?void 0:navigator.clipboard)!=null&&t.write)){r?.(Error(`Clipboard API not available`));return}try{let t=(u.current?.closest(`[data-streamdown="table-wrapper"]`))?.querySelector(`table`);if(!t){r?.(Error(`Table not found`));return}let a=au(t),o=({csv:ou,tsv:su,md:lu}[e]||lu)(a),c=new ClipboardItem({"text/plain":new Blob([o],{type:`text/plain`}),"text/html":new Blob([t.outerHTML],{type:`text/html`})});await navigator.clipboard.write([c]),l(!0),s(!1),n?.(e),d.current=window.setTimeout(()=>l(!1),i)}catch(e){r?.(e)}};(0,P.useEffect)(()=>{let e=e=>{let t=e.composedPath();u.current&&!t.includes(u.current)&&s(!1)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e),window.clearTimeout(d.current)}},[]);let h=Ll(),g=c?h.CheckIcon:h.CopyIcon;return(0,I.jsxs)(`div`,{className:a(`relative`),ref:u,children:[(0,I.jsx)(`button`,{className:a(`cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,t),disabled:f,onClick:()=>s(!o),title:p.copyTable,type:`button`,children:e??(0,I.jsx)(g,{height:14,width:14})}),o?(0,I.jsxs)(`div`,{className:a(`absolute top-full right-0 z-20 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg`),children:[(0,I.jsx)(`button`,{className:a(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>m(`md`),title:p.copyTableAsMarkdown,type:`button`,children:p.tableFormatMarkdown}),(0,I.jsx)(`button`,{className:a(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>m(`csv`),title:p.copyTableAsCsv,type:`button`,children:p.tableFormatCsv}),(0,I.jsx)(`button`,{className:a(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>m(`tsv`),title:p.copyTableAsTsv,type:`button`,children:p.tableFormatTsv})]}):null]})},du=({children:e,className:t,onDownload:n,onError:r})=>{let i=z(),[a,o]=(0,P.useState)(!1),s=(0,P.useRef)(null),{isAnimating:c}=(0,P.useContext)(Kd),l=Bl(),u=Ll(),d=e=>{try{let t=(s.current?.closest(`[data-streamdown="table-wrapper"]`))?.querySelector(`table`);if(!t){r?.(Error(`Table not found`));return}let i=au(t),a=e===`csv`?ou(i):lu(i);xl(`table.${e===`csv`?`csv`:`md`}`,a,e===`csv`?`text/csv`:`text/markdown`),o(!1),n?.(e)}catch(e){r?.(e)}};return(0,P.useEffect)(()=>{let e=e=>{let t=e.composedPath();s.current&&!t.includes(s.current)&&o(!1)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[]),(0,I.jsxs)(`div`,{className:i(`relative`),ref:s,children:[(0,I.jsx)(`button`,{className:i(`cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,t),disabled:c,onClick:()=>o(!a),title:l.downloadTable,type:`button`,children:e??(0,I.jsx)(u.DownloadIcon,{size:14})}),a?(0,I.jsxs)(`div`,{className:i(`absolute top-full right-0 z-20 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg`),children:[(0,I.jsx)(`button`,{className:i(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>d(`csv`),title:l.downloadTableAsCsv,type:`button`,children:l.tableFormatCsv}),(0,I.jsx)(`button`,{className:i(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>d(`markdown`),title:l.downloadTableAsMarkdown,type:`button`,children:l.tableFormatMarkdown})]}):null]})},fu=({children:e,className:t,showCopy:n=!0,showDownload:r=!0})=>{let{Maximize2Icon:i,XIcon:a}=Ll(),o=z(),[s,c]=(0,P.useState)(!1),{isAnimating:l}=(0,P.useContext)(Kd),u=Bl(),d=()=>{c(!0)},f=()=>{c(!1)};return(0,P.useEffect)(()=>{if(s){Jl();let e=e=>{e.key===`Escape`&&c(!1)};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e),Yl()}}},[s]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`button`,{className:o(`cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,t),disabled:l,onClick:d,title:u.viewFullscreen,type:`button`,children:(0,I.jsx)(i,{size:14})}),s?(0,el.createPortal)((0,I.jsx)(`div`,{"aria-label":u.viewFullscreen,"aria-modal":`true`,className:o(`fixed inset-0 z-50 flex flex-col bg-background`),"data-streamdown":`table-fullscreen`,onClick:f,onKeyDown:e=>{e.key===`Escape`&&f()},role:`dialog`,children:(0,I.jsxs)(`div`,{className:o(`flex h-full flex-col`),onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),role:`presentation`,children:[(0,I.jsxs)(`div`,{className:o(`flex items-center justify-end gap-1 p-4`),children:[n?(0,I.jsx)(uu,{}):null,r?(0,I.jsx)(du,{}):null,(0,I.jsx)(`button`,{className:o(`rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground`),onClick:f,title:u.exitFullscreen,type:`button`,children:(0,I.jsx)(a,{size:20})})]}),(0,I.jsx)(`div`,{className:o(`flex-1 overflow-auto p-4 pt-0 [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10`),children:(0,I.jsx)(`table`,{className:o(`w-full border-collapse border border-border`),"data-streamdown":`table`,children:e})})]})}),document.body):null]})},pu=({children:e,className:t,showControls:n,showCopy:r=!0,showDownload:i=!0,showFullscreen:a=!0,...o})=>{let s=z(),c=n&&r,l=n&&i,u=n&&a,d=c||l||u;return(0,I.jsxs)(`div`,{className:s(`my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2`),"data-streamdown":`table-wrapper`,children:[d?(0,I.jsxs)(`div`,{className:s(`flex items-center justify-end gap-1`),children:[c?(0,I.jsx)(uu,{}):null,l?(0,I.jsx)(du,{}):null,u?(0,I.jsx)(fu,{showCopy:c,showDownload:l,children:e}):null]}):null,(0,I.jsx)(`div`,{className:s(`border-collapse overflow-x-auto overflow-y-auto rounded-md border border-border bg-background`),children:(0,I.jsx)(`table`,{className:s(`w-full divide-y divide-border`,t),"data-streamdown":`table`,...o,children:e})})]})},mu=/startLine=(\d+)/,hu=/\bnoLineNumbers\b/,gu=(0,P.lazy)(()=>a(()=>import(`./mermaid-GHXKKRXX-qaGVEVOV.js`).then(e=>({default:e.Mermaid})),[],import.meta.url)),_u=/language-([^\s]+)/;function vu(e,t){if(!(e!=null&&e.position||t!=null&&t.position))return!0;if(!(e!=null&&e.position&&t!=null&&t.position))return!1;let n=e.position.start,r=t.position.start,i=e.position.end,a=t.position.end;return n?.line===r?.line&&n?.column===r?.column&&i?.line===a?.line&&i?.column===a?.column}function B(e,t){return e.className===t.className&&vu(e.node,t.node)}var yu=(e,t)=>typeof e==`boolean`?e:e[t]!==!1,bu=(e,t)=>{if(typeof e==`boolean`)return e;let n=e.table;return n===!1?!1:n===!0||n===void 0?!0:n[t]!==!1},xu=(e,t)=>{if(typeof e==`boolean`)return e;let n=e.code;return n===!1?!1:n===!0||n===void 0?!0:n[t]!==!1},Su=(e,t)=>{if(typeof e==`boolean`)return e;let n=e.mermaid;return n===!1?!1:n===!0||n===void 0?!0:n[t]!==!1},Cu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`ol`,{className:z()(`list-inside list-decimal whitespace-normal [li_&]:pl-6`,t),"data-streamdown":`ordered-list`,...r,children:e}),(e,t)=>B(e,t));Cu.displayName=`MarkdownOl`;var wu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`li`,{className:z()(`py-1 [&>p]:inline`,t),"data-streamdown":`list-item`,...r,children:e}),(e,t)=>e.className===t.className&&vu(e.node,t.node));wu.displayName=`MarkdownLi`;var Tu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`ul`,{className:z()(`list-inside list-disc whitespace-normal [li_&]:pl-6`,t),"data-streamdown":`unordered-list`,...r,children:e}),(e,t)=>B(e,t));Tu.displayName=`MarkdownUl`;var Eu=(0,P.memo)(({className:e,node:t,...n})=>(0,I.jsx)(`hr`,{className:z()(`my-6 border-border`,e),"data-streamdown":`horizontal-rule`,...n}),(e,t)=>B(e,t));Eu.displayName=`MarkdownHr`;var Du=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`span`,{className:z()(`font-semibold`,t),"data-streamdown":`strong`,...r,children:e}),(e,t)=>B(e,t));Du.displayName=`MarkdownStrong`;var Ou=(0,P.memo)(({children:e,className:t,href:n,node:r,...i})=>{let a=z(),{linkSafety:o}=(0,P.useContext)(Kd),[s,c]=(0,P.useState)(!1),l=n===`streamdown:incomplete-link`,u=(0,P.useCallback)(async e=>{if(!(!(o!=null&&o.enabled&&n)||l)){if(e.preventDefault(),o.onLinkCheck&&await o.onLinkCheck(n)){window.open(n,`_blank`,`noreferrer`);return}c(!0)}},[o,n,l]),d=(0,P.useCallback)(()=>{n&&window.open(n,`_blank`,`noreferrer`)},[n]),f=(0,P.useCallback)(()=>{c(!1)},[]),p={url:n??``,isOpen:s,onClose:f,onConfirm:d};return o!=null&&o.enabled&&n?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`button`,{className:a(`wrap-anywhere appearance-none text-left font-medium text-primary underline`,t),"data-incomplete":l,"data-streamdown":`link`,onClick:u,type:`button`,children:e}),o.renderModal?o.renderModal(p):(0,I.jsx)(Xl,{...p})]}):(0,I.jsx)(`a`,{className:a(`wrap-anywhere font-medium text-primary underline`,t),"data-incomplete":l,"data-streamdown":`link`,href:n,rel:`noreferrer`,target:`_blank`,...i,children:e})},(e,t)=>B(e,t)&&e.href===t.href);Ou.displayName=`MarkdownA`;var ku=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h1`,{className:z()(`mt-6 mb-2 font-semibold text-3xl`,t),"data-streamdown":`heading-1`,...r,children:e}),(e,t)=>B(e,t));ku.displayName=`MarkdownH1`;var Au=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h2`,{className:z()(`mt-6 mb-2 font-semibold text-2xl`,t),"data-streamdown":`heading-2`,...r,children:e}),(e,t)=>B(e,t));Au.displayName=`MarkdownH2`;var ju=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h3`,{className:z()(`mt-6 mb-2 font-semibold text-xl`,t),"data-streamdown":`heading-3`,...r,children:e}),(e,t)=>B(e,t));ju.displayName=`MarkdownH3`;var Mu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h4`,{className:z()(`mt-6 mb-2 font-semibold text-lg`,t),"data-streamdown":`heading-4`,...r,children:e}),(e,t)=>B(e,t));Mu.displayName=`MarkdownH4`;var Nu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h5`,{className:z()(`mt-6 mb-2 font-semibold text-base`,t),"data-streamdown":`heading-5`,...r,children:e}),(e,t)=>B(e,t));Nu.displayName=`MarkdownH5`;var Pu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h6`,{className:z()(`mt-6 mb-2 font-semibold text-sm`,t),"data-streamdown":`heading-6`,...r,children:e}),(e,t)=>B(e,t));Pu.displayName=`MarkdownH6`;var Fu=(0,P.memo)(({children:e,className:t,node:n,...r})=>{let{controls:i}=(0,P.useContext)(Kd);return(0,I.jsx)(pu,{className:t,showControls:yu(i,`table`),showCopy:bu(i,`copy`),showDownload:bu(i,`download`),showFullscreen:bu(i,`fullscreen`),...r,children:e})},(e,t)=>B(e,t));Fu.displayName=`MarkdownTable`;var Iu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`thead`,{className:z()(`bg-muted/80`,t),"data-streamdown":`table-header`,...r,children:e}),(e,t)=>B(e,t));Iu.displayName=`MarkdownThead`;var Lu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`tbody`,{className:z()(`divide-y divide-border`,t),"data-streamdown":`table-body`,...r,children:e}),(e,t)=>B(e,t));Lu.displayName=`MarkdownTbody`;var Ru=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`tr`,{className:z()(`border-border`,t),"data-streamdown":`table-row`,...r,children:e}),(e,t)=>B(e,t));Ru.displayName=`MarkdownTr`;var zu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`th`,{className:z()(`whitespace-nowrap px-4 py-2 text-left font-semibold text-sm`,t),"data-streamdown":`table-header-cell`,...r,children:e}),(e,t)=>B(e,t));zu.displayName=`MarkdownTh`;var Bu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`td`,{className:z()(`px-4 py-2 text-sm`,t),"data-streamdown":`table-cell`,...r,children:e}),(e,t)=>B(e,t));Bu.displayName=`MarkdownTd`;var Vu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`blockquote`,{className:z()(`my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic`,t),"data-streamdown":`blockquote`,...r,children:e}),(e,t)=>B(e,t));Vu.displayName=`MarkdownBlockquote`;var Hu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`sup`,{className:z()(`text-sm`,t),"data-streamdown":`superscript`,...r,children:e}),(e,t)=>B(e,t));Hu.displayName=`MarkdownSup`;var Uu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`sub`,{className:z()(`text-sm`,t),"data-streamdown":`subscript`,...r,children:e}),(e,t)=>B(e,t));Uu.displayName=`MarkdownSub`;var Wu=(0,P.memo)(({children:e,className:t,node:n,...r})=>{if(`data-footnotes`in r){let n=e=>{if(!(0,P.isValidElement)(e))return!1;let t=Array.isArray(e.props.children)?e.props.children:[e.props.children],n=!1,r=!1;for(let e of t)if(e){if(typeof e==`string`)e.trim()!==``&&(n=!0);else if((0,P.isValidElement)(e))if(e.props?.[`data-footnote-backref`]!==void 0)r=!0;else{let t=Array.isArray(e.props.children)?e.props.children:[e.props.children];for(let e of t){if(typeof e==`string`&&e.trim()!==``){n=!0;break}if((0,P.isValidElement)(e)&&e.props?.[`data-footnote-backref`]===void 0){n=!0;break}}}}return r&&!n},i=Array.isArray(e)?e.map(e=>{if(!(0,P.isValidElement)(e))return e;if(e.type===Cu){let t=(Array.isArray(e.props.children)?e.props.children:[e.props.children]).filter(e=>!n(e));return t.length===0?null:{...e,props:{...e.props,children:t}}}return e}):e;return(Array.isArray(i)?i.some(e=>e!==null):i!==null)?(0,I.jsx)(`section`,{className:t,...r,children:i}):null}return(0,I.jsx)(`section`,{className:t,...r,children:e})},(e,t)=>B(e,t));Wu.displayName=`MarkdownSection`;var Gu=(0,P.memo)(({node:e,className:t,children:n,...r})=>{let i=z(),a=!(`data-block`in r),{mermaid:o,controls:s,lineNumbers:c}=(0,P.useContext)(Kd),l=eu(),u=_l(),d=(t?.match(_u))?.at(1)??``,f=tu(d);if(a)return(0,I.jsx)(`code`,{className:i(`rounded bg-muted px-1.5 py-0.5 font-mono text-sm`,t),"data-streamdown":`inline-code`,...r,children:n});let p=e?.properties?.metastring,m=p?.match(mu),h=m?Number.parseInt(m[1],10):void 0,g=h!==void 0&&h>=1?h:void 0,_=!(p&&hu.test(p))&&c!==!1,v=``;if((0,P.isValidElement)(n)&&n.props&&typeof n.props==`object`&&`children`in n.props&&typeof n.props.children==`string`?v=n.props.children:typeof n==`string`&&(v=n),f){let e=f.component;return(0,I.jsx)(P.Suspense,{fallback:(0,I.jsx)(Wl,{}),children:(0,I.jsx)(e,{code:v,isIncomplete:u,language:d,meta:p})})}if(d===`mermaid`&&l){let e=yu(s,`mermaid`),n=Su(s,`download`),r=Su(s,`copy`),a=Su(s,`fullscreen`),c=Su(s,`panZoom`),l=e&&(n||r||a);return(0,I.jsx)(P.Suspense,{fallback:(0,I.jsx)(Wl,{}),children:(0,I.jsxs)(`div`,{className:i(`group relative my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2`,t),"data-streamdown":`mermaid-block`,children:[(0,I.jsx)(`div`,{className:i(`flex h-8 items-center text-muted-foreground text-xs`),children:(0,I.jsx)(`span`,{className:i(`ml-1 font-mono lowercase`),children:`mermaid`})}),l?(0,I.jsx)(`div`,{className:i(`pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end`),children:(0,I.jsxs)(`div`,{className:i(`pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur`),"data-streamdown":`mermaid-block-actions`,children:[n?(0,I.jsx)(ru,{chart:v,config:o?.config}):null,r?(0,I.jsx)(Vl,{code:v}):null,a?(0,I.jsx)(iu,{chart:v,config:o?.config}):null]})}):null,(0,I.jsx)(`div`,{className:i(`rounded-md border border-border bg-background`),children:(0,I.jsx)(gu,{chart:v,config:o?.config,showControls:c})})]})})}let y=yu(s,`code`),b=xu(s,`download`),x=xu(s,`copy`);return(0,I.jsx)(Ml,{className:t,code:v,isIncomplete:u,language:d,lineNumbers:_,startLine:g,children:y?(0,I.jsxs)(I.Fragment,{children:[b?(0,I.jsx)(Ul,{code:v,language:d}):null,x?(0,I.jsx)(Vl,{}):null]}):null})},(e,t)=>e.className===t.className&&vu(e.node,t.node));Gu.displayName=`MarkdownCode`;var Ku=(0,P.memo)(Kl,(e,t)=>e.className===t.className&&vu(e.node,t.node));Ku.displayName=`MarkdownImg`;var qu=(0,P.memo)(({children:e,node:t,...n})=>{let r=(Array.isArray(e)?e:[e]).filter(e=>e!=null&&e!==``);if(r.length===1&&(0,P.isValidElement)(r[0])){let t=r[0].props.node?.tagName;if(t===`img`||t===`code`&&`data-block`in r[0].props)return(0,I.jsx)(I.Fragment,{children:e})}return(0,I.jsx)(`p`,{...n,children:e})},(e,t)=>B(e,t));qu.displayName=`MarkdownParagraph`;var Ju={ol:Cu,li:wu,ul:Tu,hr:Eu,strong:Du,a:Ou,h1:ku,h2:Au,h3:ju,h4:Mu,h5:Nu,h6:Pu,table:Fu,thead:Iu,tbody:Lu,tr:Ru,th:zu,td:Bu,blockquote:Vu,code:Gu,img:Ku,pre:({children:e})=>(0,P.isValidElement)(e)?(0,P.cloneElement)(e,{"data-block":`true`}):e,sup:Hu,sub:Uu,p:qu,section:Wu},Yu=/[\u0590-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/,Xu=/\p{L}/u;function Zu(e){let t=e.replace(/^#{1,6}\s+/gm,``).replace(/(\*{1,3}|_{1,3})/g,``).replace(/`[^`]*`/g,``).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/^[\s>*\-+\d.]+/gm,``);for(let e of t){if(Yu.test(e))return`rtl`;if(Xu.test(e))return`ltr`}return`ltr`}var Qu=/^[ \t]{0,3}(`{3,}|~{3,})/,$u=/^\|?[ \t]*:?-{1,}:?[ \t]*(\|[ \t]*:?-{1,}:?[ \t]*)*\|?$/,ed=e=>{let t=e.split(`
|
|
105
|
+
`)},uu=({children:e,className:t,onCopy:n,onError:r,timeout:i=2e3})=>{let a=z(),[o,s]=(0,P.useState)(!1),[c,l]=(0,P.useState)(!1),u=(0,P.useRef)(null),d=(0,P.useRef)(0),{isAnimating:f}=(0,P.useContext)(Kd),p=Bl(),m=async e=>{var t;if(typeof window>`u`||!((t=navigator==null?void 0:navigator.clipboard)!=null&&t.write)){r?.(Error(`Clipboard API not available`));return}try{let t=(u.current?.closest(`[data-streamdown="table-wrapper"]`))?.querySelector(`table`);if(!t){r?.(Error(`Table not found`));return}let a=au(t),o=({csv:ou,tsv:su,md:lu}[e]||lu)(a),c=new ClipboardItem({"text/plain":new Blob([o],{type:`text/plain`}),"text/html":new Blob([t.outerHTML],{type:`text/html`})});await navigator.clipboard.write([c]),l(!0),s(!1),n?.(e),d.current=window.setTimeout(()=>l(!1),i)}catch(e){r?.(e)}};(0,P.useEffect)(()=>{let e=e=>{let t=e.composedPath();u.current&&!t.includes(u.current)&&s(!1)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e),window.clearTimeout(d.current)}},[]);let h=Ll(),g=c?h.CheckIcon:h.CopyIcon;return(0,I.jsxs)(`div`,{className:a(`relative`),ref:u,children:[(0,I.jsx)(`button`,{className:a(`cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,t),disabled:f,onClick:()=>s(!o),title:p.copyTable,type:`button`,children:e??(0,I.jsx)(g,{height:14,width:14})}),o?(0,I.jsxs)(`div`,{className:a(`absolute top-full right-0 z-20 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg`),children:[(0,I.jsx)(`button`,{className:a(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>m(`md`),title:p.copyTableAsMarkdown,type:`button`,children:p.tableFormatMarkdown}),(0,I.jsx)(`button`,{className:a(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>m(`csv`),title:p.copyTableAsCsv,type:`button`,children:p.tableFormatCsv}),(0,I.jsx)(`button`,{className:a(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>m(`tsv`),title:p.copyTableAsTsv,type:`button`,children:p.tableFormatTsv})]}):null]})},du=({children:e,className:t,onDownload:n,onError:r})=>{let i=z(),[a,o]=(0,P.useState)(!1),s=(0,P.useRef)(null),{isAnimating:c}=(0,P.useContext)(Kd),l=Bl(),u=Ll(),d=e=>{try{let t=(s.current?.closest(`[data-streamdown="table-wrapper"]`))?.querySelector(`table`);if(!t){r?.(Error(`Table not found`));return}let i=au(t),a=e===`csv`?ou(i):lu(i);xl(`table.${e===`csv`?`csv`:`md`}`,a,e===`csv`?`text/csv`:`text/markdown`),o(!1),n?.(e)}catch(e){r?.(e)}};return(0,P.useEffect)(()=>{let e=e=>{let t=e.composedPath();s.current&&!t.includes(s.current)&&o(!1)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[]),(0,I.jsxs)(`div`,{className:i(`relative`),ref:s,children:[(0,I.jsx)(`button`,{className:i(`cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,t),disabled:c,onClick:()=>o(!a),title:l.downloadTable,type:`button`,children:e??(0,I.jsx)(u.DownloadIcon,{size:14})}),a?(0,I.jsxs)(`div`,{className:i(`absolute top-full right-0 z-20 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg`),children:[(0,I.jsx)(`button`,{className:i(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>d(`csv`),title:l.downloadTableAsCsv,type:`button`,children:l.tableFormatCsv}),(0,I.jsx)(`button`,{className:i(`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40`),onClick:()=>d(`markdown`),title:l.downloadTableAsMarkdown,type:`button`,children:l.tableFormatMarkdown})]}):null]})},fu=({children:e,className:t,showCopy:n=!0,showDownload:r=!0})=>{let{Maximize2Icon:i,XIcon:a}=Ll(),o=z(),[s,c]=(0,P.useState)(!1),{isAnimating:l}=(0,P.useContext)(Kd),u=Bl(),d=()=>{c(!0)},f=()=>{c(!1)};return(0,P.useEffect)(()=>{if(s){Jl();let e=e=>{e.key===`Escape`&&c(!1)};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e),Yl()}}},[s]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`button`,{className:o(`cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,t),disabled:l,onClick:d,title:u.viewFullscreen,type:`button`,children:(0,I.jsx)(i,{size:14})}),s?(0,el.createPortal)((0,I.jsx)(`div`,{"aria-label":u.viewFullscreen,"aria-modal":`true`,className:o(`fixed inset-0 z-50 flex flex-col bg-background`),"data-streamdown":`table-fullscreen`,onClick:f,onKeyDown:e=>{e.key===`Escape`&&f()},role:`dialog`,children:(0,I.jsxs)(`div`,{className:o(`flex h-full flex-col`),onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),role:`presentation`,children:[(0,I.jsxs)(`div`,{className:o(`flex items-center justify-end gap-1 p-4`),children:[n?(0,I.jsx)(uu,{}):null,r?(0,I.jsx)(du,{}):null,(0,I.jsx)(`button`,{className:o(`rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground`),onClick:f,title:u.exitFullscreen,type:`button`,children:(0,I.jsx)(a,{size:20})})]}),(0,I.jsx)(`div`,{className:o(`flex-1 overflow-auto p-4 pt-0 [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10`),children:(0,I.jsx)(`table`,{className:o(`w-full border-collapse border border-border`),"data-streamdown":`table`,children:e})})]})}),document.body):null]})},pu=({children:e,className:t,showControls:n,showCopy:r=!0,showDownload:i=!0,showFullscreen:a=!0,...o})=>{let s=z(),c=n&&r,l=n&&i,u=n&&a,d=c||l||u;return(0,I.jsxs)(`div`,{className:s(`my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2`),"data-streamdown":`table-wrapper`,children:[d?(0,I.jsxs)(`div`,{className:s(`flex items-center justify-end gap-1`),children:[c?(0,I.jsx)(uu,{}):null,l?(0,I.jsx)(du,{}):null,u?(0,I.jsx)(fu,{showCopy:c,showDownload:l,children:e}):null]}):null,(0,I.jsx)(`div`,{className:s(`border-collapse overflow-x-auto overflow-y-auto rounded-md border border-border bg-background`),children:(0,I.jsx)(`table`,{className:s(`w-full divide-y divide-border`,t),"data-streamdown":`table`,...o,children:e})})]})},mu=/startLine=(\d+)/,hu=/\bnoLineNumbers\b/,gu=(0,P.lazy)(()=>a(()=>import(`./mermaid-GHXKKRXX-CwDRCmSe.js`).then(e=>({default:e.Mermaid})),[],import.meta.url)),_u=/language-([^\s]+)/;function vu(e,t){if(!(e!=null&&e.position||t!=null&&t.position))return!0;if(!(e!=null&&e.position&&t!=null&&t.position))return!1;let n=e.position.start,r=t.position.start,i=e.position.end,a=t.position.end;return n?.line===r?.line&&n?.column===r?.column&&i?.line===a?.line&&i?.column===a?.column}function B(e,t){return e.className===t.className&&vu(e.node,t.node)}var yu=(e,t)=>typeof e==`boolean`?e:e[t]!==!1,bu=(e,t)=>{if(typeof e==`boolean`)return e;let n=e.table;return n===!1?!1:n===!0||n===void 0?!0:n[t]!==!1},xu=(e,t)=>{if(typeof e==`boolean`)return e;let n=e.code;return n===!1?!1:n===!0||n===void 0?!0:n[t]!==!1},Su=(e,t)=>{if(typeof e==`boolean`)return e;let n=e.mermaid;return n===!1?!1:n===!0||n===void 0?!0:n[t]!==!1},Cu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`ol`,{className:z()(`list-inside list-decimal whitespace-normal [li_&]:pl-6`,t),"data-streamdown":`ordered-list`,...r,children:e}),(e,t)=>B(e,t));Cu.displayName=`MarkdownOl`;var wu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`li`,{className:z()(`py-1 [&>p]:inline`,t),"data-streamdown":`list-item`,...r,children:e}),(e,t)=>e.className===t.className&&vu(e.node,t.node));wu.displayName=`MarkdownLi`;var Tu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`ul`,{className:z()(`list-inside list-disc whitespace-normal [li_&]:pl-6`,t),"data-streamdown":`unordered-list`,...r,children:e}),(e,t)=>B(e,t));Tu.displayName=`MarkdownUl`;var Eu=(0,P.memo)(({className:e,node:t,...n})=>(0,I.jsx)(`hr`,{className:z()(`my-6 border-border`,e),"data-streamdown":`horizontal-rule`,...n}),(e,t)=>B(e,t));Eu.displayName=`MarkdownHr`;var Du=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`span`,{className:z()(`font-semibold`,t),"data-streamdown":`strong`,...r,children:e}),(e,t)=>B(e,t));Du.displayName=`MarkdownStrong`;var Ou=(0,P.memo)(({children:e,className:t,href:n,node:r,...i})=>{let a=z(),{linkSafety:o}=(0,P.useContext)(Kd),[s,c]=(0,P.useState)(!1),l=n===`streamdown:incomplete-link`,u=(0,P.useCallback)(async e=>{if(!(!(o!=null&&o.enabled&&n)||l)){if(e.preventDefault(),o.onLinkCheck&&await o.onLinkCheck(n)){window.open(n,`_blank`,`noreferrer`);return}c(!0)}},[o,n,l]),d=(0,P.useCallback)(()=>{n&&window.open(n,`_blank`,`noreferrer`)},[n]),f=(0,P.useCallback)(()=>{c(!1)},[]),p={url:n??``,isOpen:s,onClose:f,onConfirm:d};return o!=null&&o.enabled&&n?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`button`,{className:a(`wrap-anywhere appearance-none text-left font-medium text-primary underline`,t),"data-incomplete":l,"data-streamdown":`link`,onClick:u,type:`button`,children:e}),o.renderModal?o.renderModal(p):(0,I.jsx)(Xl,{...p})]}):(0,I.jsx)(`a`,{className:a(`wrap-anywhere font-medium text-primary underline`,t),"data-incomplete":l,"data-streamdown":`link`,href:n,rel:`noreferrer`,target:`_blank`,...i,children:e})},(e,t)=>B(e,t)&&e.href===t.href);Ou.displayName=`MarkdownA`;var ku=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h1`,{className:z()(`mt-6 mb-2 font-semibold text-3xl`,t),"data-streamdown":`heading-1`,...r,children:e}),(e,t)=>B(e,t));ku.displayName=`MarkdownH1`;var Au=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h2`,{className:z()(`mt-6 mb-2 font-semibold text-2xl`,t),"data-streamdown":`heading-2`,...r,children:e}),(e,t)=>B(e,t));Au.displayName=`MarkdownH2`;var ju=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h3`,{className:z()(`mt-6 mb-2 font-semibold text-xl`,t),"data-streamdown":`heading-3`,...r,children:e}),(e,t)=>B(e,t));ju.displayName=`MarkdownH3`;var Mu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h4`,{className:z()(`mt-6 mb-2 font-semibold text-lg`,t),"data-streamdown":`heading-4`,...r,children:e}),(e,t)=>B(e,t));Mu.displayName=`MarkdownH4`;var Nu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h5`,{className:z()(`mt-6 mb-2 font-semibold text-base`,t),"data-streamdown":`heading-5`,...r,children:e}),(e,t)=>B(e,t));Nu.displayName=`MarkdownH5`;var Pu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`h6`,{className:z()(`mt-6 mb-2 font-semibold text-sm`,t),"data-streamdown":`heading-6`,...r,children:e}),(e,t)=>B(e,t));Pu.displayName=`MarkdownH6`;var Fu=(0,P.memo)(({children:e,className:t,node:n,...r})=>{let{controls:i}=(0,P.useContext)(Kd);return(0,I.jsx)(pu,{className:t,showControls:yu(i,`table`),showCopy:bu(i,`copy`),showDownload:bu(i,`download`),showFullscreen:bu(i,`fullscreen`),...r,children:e})},(e,t)=>B(e,t));Fu.displayName=`MarkdownTable`;var Iu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`thead`,{className:z()(`bg-muted/80`,t),"data-streamdown":`table-header`,...r,children:e}),(e,t)=>B(e,t));Iu.displayName=`MarkdownThead`;var Lu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`tbody`,{className:z()(`divide-y divide-border`,t),"data-streamdown":`table-body`,...r,children:e}),(e,t)=>B(e,t));Lu.displayName=`MarkdownTbody`;var Ru=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`tr`,{className:z()(`border-border`,t),"data-streamdown":`table-row`,...r,children:e}),(e,t)=>B(e,t));Ru.displayName=`MarkdownTr`;var zu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`th`,{className:z()(`whitespace-nowrap px-4 py-2 text-left font-semibold text-sm`,t),"data-streamdown":`table-header-cell`,...r,children:e}),(e,t)=>B(e,t));zu.displayName=`MarkdownTh`;var Bu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`td`,{className:z()(`px-4 py-2 text-sm`,t),"data-streamdown":`table-cell`,...r,children:e}),(e,t)=>B(e,t));Bu.displayName=`MarkdownTd`;var Vu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`blockquote`,{className:z()(`my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic`,t),"data-streamdown":`blockquote`,...r,children:e}),(e,t)=>B(e,t));Vu.displayName=`MarkdownBlockquote`;var Hu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`sup`,{className:z()(`text-sm`,t),"data-streamdown":`superscript`,...r,children:e}),(e,t)=>B(e,t));Hu.displayName=`MarkdownSup`;var Uu=(0,P.memo)(({children:e,className:t,node:n,...r})=>(0,I.jsx)(`sub`,{className:z()(`text-sm`,t),"data-streamdown":`subscript`,...r,children:e}),(e,t)=>B(e,t));Uu.displayName=`MarkdownSub`;var Wu=(0,P.memo)(({children:e,className:t,node:n,...r})=>{if(`data-footnotes`in r){let n=e=>{if(!(0,P.isValidElement)(e))return!1;let t=Array.isArray(e.props.children)?e.props.children:[e.props.children],n=!1,r=!1;for(let e of t)if(e){if(typeof e==`string`)e.trim()!==``&&(n=!0);else if((0,P.isValidElement)(e))if(e.props?.[`data-footnote-backref`]!==void 0)r=!0;else{let t=Array.isArray(e.props.children)?e.props.children:[e.props.children];for(let e of t){if(typeof e==`string`&&e.trim()!==``){n=!0;break}if((0,P.isValidElement)(e)&&e.props?.[`data-footnote-backref`]===void 0){n=!0;break}}}}return r&&!n},i=Array.isArray(e)?e.map(e=>{if(!(0,P.isValidElement)(e))return e;if(e.type===Cu){let t=(Array.isArray(e.props.children)?e.props.children:[e.props.children]).filter(e=>!n(e));return t.length===0?null:{...e,props:{...e.props,children:t}}}return e}):e;return(Array.isArray(i)?i.some(e=>e!==null):i!==null)?(0,I.jsx)(`section`,{className:t,...r,children:i}):null}return(0,I.jsx)(`section`,{className:t,...r,children:e})},(e,t)=>B(e,t));Wu.displayName=`MarkdownSection`;var Gu=(0,P.memo)(({node:e,className:t,children:n,...r})=>{let i=z(),a=!(`data-block`in r),{mermaid:o,controls:s,lineNumbers:c}=(0,P.useContext)(Kd),l=eu(),u=_l(),d=(t?.match(_u))?.at(1)??``,f=tu(d);if(a)return(0,I.jsx)(`code`,{className:i(`rounded bg-muted px-1.5 py-0.5 font-mono text-sm`,t),"data-streamdown":`inline-code`,...r,children:n});let p=e?.properties?.metastring,m=p?.match(mu),h=m?Number.parseInt(m[1],10):void 0,g=h!==void 0&&h>=1?h:void 0,_=!(p&&hu.test(p))&&c!==!1,v=``;if((0,P.isValidElement)(n)&&n.props&&typeof n.props==`object`&&`children`in n.props&&typeof n.props.children==`string`?v=n.props.children:typeof n==`string`&&(v=n),f){let e=f.component;return(0,I.jsx)(P.Suspense,{fallback:(0,I.jsx)(Wl,{}),children:(0,I.jsx)(e,{code:v,isIncomplete:u,language:d,meta:p})})}if(d===`mermaid`&&l){let e=yu(s,`mermaid`),n=Su(s,`download`),r=Su(s,`copy`),a=Su(s,`fullscreen`),c=Su(s,`panZoom`),l=e&&(n||r||a);return(0,I.jsx)(P.Suspense,{fallback:(0,I.jsx)(Wl,{}),children:(0,I.jsxs)(`div`,{className:i(`group relative my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2`,t),"data-streamdown":`mermaid-block`,children:[(0,I.jsx)(`div`,{className:i(`flex h-8 items-center text-muted-foreground text-xs`),children:(0,I.jsx)(`span`,{className:i(`ml-1 font-mono lowercase`),children:`mermaid`})}),l?(0,I.jsx)(`div`,{className:i(`pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end`),children:(0,I.jsxs)(`div`,{className:i(`pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur`),"data-streamdown":`mermaid-block-actions`,children:[n?(0,I.jsx)(ru,{chart:v,config:o?.config}):null,r?(0,I.jsx)(Vl,{code:v}):null,a?(0,I.jsx)(iu,{chart:v,config:o?.config}):null]})}):null,(0,I.jsx)(`div`,{className:i(`rounded-md border border-border bg-background`),children:(0,I.jsx)(gu,{chart:v,config:o?.config,showControls:c})})]})})}let y=yu(s,`code`),b=xu(s,`download`),x=xu(s,`copy`);return(0,I.jsx)(Ml,{className:t,code:v,isIncomplete:u,language:d,lineNumbers:_,startLine:g,children:y?(0,I.jsxs)(I.Fragment,{children:[b?(0,I.jsx)(Ul,{code:v,language:d}):null,x?(0,I.jsx)(Vl,{}):null]}):null})},(e,t)=>e.className===t.className&&vu(e.node,t.node));Gu.displayName=`MarkdownCode`;var Ku=(0,P.memo)(Kl,(e,t)=>e.className===t.className&&vu(e.node,t.node));Ku.displayName=`MarkdownImg`;var qu=(0,P.memo)(({children:e,node:t,...n})=>{let r=(Array.isArray(e)?e:[e]).filter(e=>e!=null&&e!==``);if(r.length===1&&(0,P.isValidElement)(r[0])){let t=r[0].props.node?.tagName;if(t===`img`||t===`code`&&`data-block`in r[0].props)return(0,I.jsx)(I.Fragment,{children:e})}return(0,I.jsx)(`p`,{...n,children:e})},(e,t)=>B(e,t));qu.displayName=`MarkdownParagraph`;var Ju={ol:Cu,li:wu,ul:Tu,hr:Eu,strong:Du,a:Ou,h1:ku,h2:Au,h3:ju,h4:Mu,h5:Nu,h6:Pu,table:Fu,thead:Iu,tbody:Lu,tr:Ru,th:zu,td:Bu,blockquote:Vu,code:Gu,img:Ku,pre:({children:e})=>(0,P.isValidElement)(e)?(0,P.cloneElement)(e,{"data-block":`true`}):e,sup:Hu,sub:Uu,p:qu,section:Wu},Yu=/[\u0590-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/,Xu=/\p{L}/u;function Zu(e){let t=e.replace(/^#{1,6}\s+/gm,``).replace(/(\*{1,3}|_{1,3})/g,``).replace(/`[^`]*`/g,``).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/^[\s>*\-+\d.]+/gm,``);for(let e of t){if(Yu.test(e))return`rtl`;if(Xu.test(e))return`ltr`}return`ltr`}var Qu=/^[ \t]{0,3}(`{3,}|~{3,})/,$u=/^\|?[ \t]*:?-{1,}:?[ \t]*(\|[ \t]*:?-{1,}:?[ \t]*)*\|?$/,ed=e=>{let t=e.split(`
|
|
106
106
|
`),n=null,r=0;for(let e of t){let t=Qu.exec(e);if(n===null){if(t){let e=t[1];n=e[0],r=e.length}}else if(t){let e=t[1],i=e[0],a=e.length;i===n&&a>=r&&(n=null,r=0)}}return n!==null},td=e=>{let t=e.split(`
|
|
107
107
|
`);for(let e of t){let t=e.trim();if(t.length>0&&t.includes(`|`)&&$u.test(t))return!0}return!1},nd=()=>e=>{zt(e,`html`,(e,t,n)=>{!n||typeof t!=`number`||(n.children[t]={type:`text`,value:e.value})})},rd=[],id={allowDangerousHtml:!0},ad=new WeakMap,od=new class{constructor(){this.cache=new Map,this.keyCache=new WeakMap,this.maxSize=100}generateCacheKey(e){let t=this.keyCache.get(e);if(t)return t;let n=e.rehypePlugins,r=e.remarkPlugins,i=e.remarkRehypeOptions;if(!(n||r||i)){let t=`default`;return this.keyCache.set(e,t),t}let a=e=>{if(!e||e.length===0)return``;let t=``;for(let n=0;n<e.length;n+=1){let r=e[n];if(n>0&&(t+=`,`),Array.isArray(r)){let[e,n]=r;if(typeof e==`function`){let n=ad.get(e);n||(n=e.name,ad.set(e,n)),t+=n}else t+=String(e);t+=`:`,t+=JSON.stringify(n)}else if(typeof r==`function`){let e=ad.get(r);e||(e=r.name,ad.set(r,e)),t+=e}else t+=String(r)}return t},o=a(n),s=`${a(r)}::${o}::${i?JSON.stringify(i):``}`;return this.keyCache.set(e,s),s}get(e){let t=this.generateCacheKey(e),n=this.cache.get(t);return n&&(this.cache.delete(t),this.cache.set(t,n)),n}set(e,t){let n=this.generateCacheKey(e);if(this.cache.size>=this.maxSize){let e=this.cache.keys().next().value;e&&this.cache.delete(e)}this.cache.set(n,t)}clear(){this.cache.clear()}},sd=e=>{let t=cd(e),n=e.children||``;return hd(t.runSync(t.parse(n),n),e)},cd=e=>{let t=od.get(e);if(t)return t;let n=ud(e);return od.set(e,n),n},ld=e=>e.some(e=>Array.isArray(e)?e[0]===jt:e===jt),ud=e=>{let t=e.rehypePlugins||rd,n=e.remarkPlugins||rd,r=ld(t)?n:[...n,nd],i=e.remarkRehypeOptions?{...id,...e.remarkRehypeOptions}:id;return Bt().use(kt).use(r).use(Pt,i).use(t)},dd=e=>e,fd=(e,t,n,r)=>{n?e.children.splice(t,1):e.children[t]={type:`text`,value:r}},pd=(e,t)=>{for(let n in Rt)if(Object.hasOwn(Rt,n)&&Object.hasOwn(e.properties,n)){let r=e.properties[n],i=Rt[n];(i===null||i.includes(e.tagName))&&(e.properties[n]=t(String(r||``),n,e)??void 0)}},md=(e,t,n,r,i,a)=>{let o=!1;return r?o=!r.includes(e.tagName):i&&(o=i.includes(e.tagName)),!o&&a&&typeof t==`number`&&(o=!a(e,t,n)),o},hd=(e,t)=>{let{allowElement:n,allowedElements:r,disallowedElements:i,skipHtml:a,unwrapDisallowed:o,urlTransform:s}=t;if(n||r||i||a||s){let t=s||dd;zt(e,(e,s,c)=>{if(e.type===`raw`&&c&&typeof s==`number`)return fd(c,s,a,e.value),s;if(e.type===`element`&&(pd(e,t),md(e,s,c,r,i,n)&&c&&typeof s==`number`))return o&&e.children?c.children.splice(s,1,...e.children):c.children.splice(s,1),s})}return Vt(e,{Fragment:I.Fragment,components:t.components,ignoreInvalidStyle:!0,jsx:I.jsx,jsxs:I.jsxs,passKeys:!0,passNode:!0})},gd=/\[\^[\w-]{1,200}\](?!:)/,_d=/\[\^[\w-]{1,200}\]:/,vd=/<(\w+)[\s>]/,yd=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),bd=new Map,xd=new Map,Sd=e=>{let t=e.toLowerCase(),n=bd.get(t);if(n)return n;let r=RegExp(`<${t}(?=[\\s>/])[^>]*>`,`gi`);return bd.set(t,r),r},Cd=e=>{let t=e.toLowerCase(),n=xd.get(t);if(n)return n;let r=RegExp(`</${t}(?=[\\s>])[^>]*>`,`gi`);return xd.set(t,r),r},wd=(e,t)=>{if(yd.has(t.toLowerCase()))return 0;let n=e.match(Sd(t));if(!n)return 0;let r=0;for(let e of n)e.trimEnd().endsWith(`/>`)||(r+=1);return r},Td=(e,t)=>{let n=e.match(Cd(t));return n?n.length:0},Ed=e=>{let t=0;for(let n=0;n<e.length-1;n+=1)e[n]===`$`&&e[n+1]===`$`&&(t+=1,n+=1);return t},Dd=e=>{let t=gd.test(e),n=_d.test(e);if(t||n)return[e];let r=Jc.lex(e,{gfm:!0}),i=[],a=[],o=!1;for(let e of r){let t=e.raw,n=i.length;if(a.length>0){i[n-1]+=t;let e=a.at(-1),r=wd(t,e),o=Td(t,e);for(let t=0;t<r;t+=1)a.push(e);for(let t=0;t<o;t+=1)a.length>0&&a.at(-1)===e&&a.pop();continue}if(e.type===`html`&&e.block){let e=t.match(vd);if(e){let n=e[1];wd(t,n)>Td(t,n)&&a.push(n)}}if(n>0&&!o){let e=i[n-1];if(Ed(e)%2==1){i[n-1]=e+t;continue}}i.push(t),e.type!==`space`&&(o=e.type===`code`)}return i},Od=(e,t)=>{if(!t.length)return e;let n=e;for(let e of t){let t=RegExp(`(<${e}(?=[\\s>/])[^>]*>)([\\s\\S]*?)(</${e}\\s*>)`,`gi`);n=n.replace(t,(e,t,n,r)=>{if(!n.includes(`
|
|
108
108
|
|