@owox/web 0.13.0-next-20251117091742 → 0.13.0-next-20251117093239

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.
@@ -690,7 +690,7 @@ You can add a description to the \`${ru}\` by passing a \`${y3}\` component as a
690
690
 
691
691
  Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${ru}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
692
692
 
693
- For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return p.useEffect(()=>{var r;document.getElementById((r=e.current)==null?void 0:r.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},FY=d3,zY=f3,VY=h3,$Y=m3,HY=x3,BY=S3,GY=g3,qY=v3;function ZY({...e}){return o.jsx(FY,{"data-slot":"alert-dialog",...e})}function KY({...e}){return o.jsx(zY,{"data-slot":"alert-dialog-portal",...e})}function YY({className:e,...t}){return o.jsx(VY,{"data-slot":"alert-dialog-overlay",className:ne("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function WY({className:e,...t}){return o.jsxs(KY,{children:[o.jsx(YY,{}),o.jsx($Y,{"data-slot":"alert-dialog-content",className:ne("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",e),...t})]})}function QY({className:e,...t}){return o.jsx("div",{"data-slot":"alert-dialog-header",className:ne("flex flex-col gap-2 text-center sm:text-left",e),...t})}function XY({className:e,...t}){return o.jsx("div",{"data-slot":"alert-dialog-footer",className:ne("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}function JY({className:e,...t}){return o.jsx(GY,{"data-slot":"alert-dialog-title",className:ne("text-lg font-semibold",e),...t})}function eW({className:e,...t}){return o.jsx(qY,{"data-slot":"alert-dialog-description",className:ne("text-muted-foreground text-sm",e),...t})}function tW({className:e,...t}){return o.jsx(HY,{className:ne(kb(),e),...t})}function nW({className:e,...t}){return o.jsx(BY,{className:ne(kb({variant:"outline"}),e),...t})}const C3=["facebook","linkedin","tiktok","microsoft","connector","sql","blank"],E3={facebook:{title:"Facebook Ads",datamartTitle:"Facebook Ads Data Mart",connectorSourceTitle:"FacebookMarketing",definitionType:Ue.CONNECTOR,icon:BB},linkedin:{title:"LinkedIn Ads",datamartTitle:"LinkedIn Ads Data Mart",connectorSourceTitle:"LinkedInAds",definitionType:Ue.CONNECTOR,icon:GB},tiktok:{title:"TikTok Ads",datamartTitle:"TikTok Ads Data Mart",connectorSourceTitle:"TikTokAds",definitionType:Ue.CONNECTOR,icon:qB},microsoft:{title:"Microsoft Ads",datamartTitle:"Microsoft Ads Data Mart",connectorSourceTitle:"MicrosoftAds",definitionType:Ue.CONNECTOR,icon:ZB},connector:{title:"Other connector",datamartTitle:"Connector-based Data Mart",definitionType:Ue.CONNECTOR,icon:Ob},sql:{title:"SQL query",datamartTitle:"SQL-based Data Mart",definitionType:Ue.SQL,icon:Ab},blank:{title:"Blank Data Mart",datamartTitle:"New Data Mart",icon:ap}},RT=C3.map(e=>({key:e,...E3[e]}));function rW(e){if(!e||!C3.includes(e))return;const t=e;return{key:t,...E3[t]}}function aW({children:e,className:t="",...n}){return o.jsx("div",{className:"dm-card",children:o.jsx("div",{className:ne("-m-4 flex flex-col items-start justify-between gap-12 overflow-hidden px-8 py-16 lg:flex-row-reverse lg:px-16 lg:py-24 2xl:items-center",t),...n,children:e})})}function sW({children:e,className:t="",...n}){return o.jsx("div",{className:ne("pb-2",t),...n,children:e})}function oW({children:e,className:t="",...n}){return o.jsx("h2",{className:ne("mb-6 text-4xl font-semibold xl:text-5xl",t),...n,children:e})}function iW({children:e,className:t="",...n}){return o.jsx("p",{className:ne("text-muted-foreground text-lg",t),...n,children:e})}function lW({children:e,rings:t=7,className:n="",...r}){return o.jsxs("div",{className:ne("relative flex w-full justify-center lg:w-[30%] 2xl:w-[35%]",n),...r,children:[o.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:Array.from({length:t},(s,l)=>{const c=`${(16*(l+1)+24).toString()}vmin`;return o.jsx("div",{className:"animate-ring-pulse",style:{height:c,width:c,animationDelay:`${(l*.3).toString()}s`,animationDuration:"4s",opacity:.2+l*.1,filter:l===0?"blur(1px)":"none"}},l)})}),o.jsx("div",{className:"animate-glow-burst"}),o.jsx("div",{className:"animate-icon-entrance","aria-label":"Illustration",children:e})]})}function cW({children:e,className:t="",...n}){return o.jsx("div",{className:ne("w-full space-y-8 lg:w-[70%] 2xl:w-[65%]",t),...n,children:e})}function Hx({separator:e=!0,children:t,className:n="",...r}){return o.jsx("section",{className:ne("relative pb-10",e&&"after:from-border after:absolute after:bottom-0 after:left-0 after:h-px after:w-full after:bg-gradient-to-r after:to-transparent",n),...r,children:t})}function TT({children:e,className:t="",...n}){return o.jsx("h3",{className:ne("mb-4 text-xl font-medium",t),...n,children:e})}function Bx({children:e,className:t="",...n}){return o.jsx("div",{className:ne("flex flex-wrap items-center gap-4",t),...n,children:e})}function Dm({href:e,icon:t,title:n,variant:r="outline",size:s,className:l="",target:c,...d}){const f=r==="outline"?"lg":"sm",h=o.jsxs("span",{className:ne("flex items-center gap-2"),children:[t,n]});return e?o.jsx(Se,{asChild:!0,variant:r,size:s??f,className:ne(r==="ghost"?"text-muted-foreground":"",l),...d,children:o.jsx(Za,{to:e,target:c,children:h})}):o.jsx(Se,{variant:r,size:s??f,className:l,...d,children:h})}function uW(){const{scope:e}=Po(),t=RT.filter(r=>r.definitionType===Ue.CONNECTOR),n=RT.filter(r=>r.definitionType!==Ue.CONNECTOR);return o.jsxs(aW,{children:[o.jsx(lW,{children:o.jsx(HB,{className:"animate-icon-entrance","aria-label":"Data Mart creation illustration"})}),o.jsxs(cW,{children:[o.jsxs(sW,{children:[o.jsx(oW,{children:"Let’s Build Your First Data Mart"}),o.jsx(iW,{children:"A Data Mart is the key element of self-service analytics — it provides both control for data analyst and freedom for business users. To get started, connect the source you need or query the data you already have in storage"})]}),o.jsxs(Hx,{children:[o.jsx(TT,{children:"Connect a data source"}),o.jsx(Bx,{children:t.map(r=>o.jsx(Dm,{href:e(`/data-marts/create?preset=${r.key}`),icon:r.icon&&o.jsx(r.icon,{className:"h-4 w-4"}),title:r.title,variant:"outline"},r.key))})]}),o.jsxs(Hx,{children:[o.jsx(TT,{children:"Use existing SQL or start from scratch"}),o.jsx(Bx,{children:n.map((r,s)=>o.jsxs(o.Fragment,{children:[o.jsx(Dm,{href:e(`/data-marts/create?preset=${r.key}`),icon:r.icon&&o.jsx(r.icon,{className:"h-4 w-4"}),title:r.title,variant:"outline"},r.key),s<n.length-1&&o.jsx("span",{className:"text-muted-foreground text-sm",children:"or"})]}))})]}),o.jsx(Hx,{separator:!1,children:o.jsxs(Bx,{children:[o.jsx(Dm,{href:"https://www.youtube.com/playlist?list=PLvcNVLV5BVbHHCekyAZBEIVnlC4i1qcHx",icon:o.jsx(ZL,{className:"h-4 w-4"}),title:"Watch a 2-minute demo",variant:"ghost",target:"_blank"}),o.jsx(Dm,{href:"https://docs.owox.com/docs/getting-started/core-concepts/?utm_source=owox_data_marts&utm_medium=empty_data_marts_page&utm_campaign=help_buttons",icon:o.jsx(aL,{className:"h-4 w-4"}),title:"Core concepts",variant:"ghost",target:"_blank"})]})})]})]})}function dW(){return o.jsx(is,{className:"bg-muted/50 h-72 w-full rounded-md border-b border-gray-200 dark:border-white/10 dark:bg-white/4"})}const Pc={DEFAULT_SORTING_COLUMN:"createdAt",DEFAULT_EXCLUDED_COLUMNS:["actions"],STORAGE_KEYS:{SORTING_SUFFIX:"-sorting",COLUMN_VISIBILITY_SUFFIX:"-column-visibility"}},fW={extractColumnIds:e=>e.map(t=>{if(t.id)return t.id;if("accessorKey"in t&&typeof t.accessorKey=="string")return t.accessorKey}).filter(t=>t!==void 0)};function Zf({columns:e,storageKeyPrefix:t,defaultSortingColumn:n=Pc.DEFAULT_SORTING_COLUMN,defaultColumnVisibility:r={},excludedColumnsFromSorting:s=Pc.DEFAULT_EXCLUDED_COLUMNS,excludedColumnsFromVisibility:l=Pc.DEFAULT_EXCLUDED_COLUMNS}){const c=p.useMemo(()=>({SORTING:`${t}${Pc.STORAGE_KEYS.SORTING_SUFFIX}`,COLUMN_VISIBILITY:`${t}${Pc.STORAGE_KEYS.COLUMN_VISIBILITY_SUFFIX}`}),[t]),d=p.useMemo(()=>fW.extractColumnIds(e),[e]),f=p.useMemo(()=>d.filter(E=>!s.includes(E)),[d,s]),h=p.useCallback(()=>{const E=ks.get(c.SORTING,"json");return E&&Array.isArray(E)&&E.length>0?E:[{id:f.includes(n)?n:f[0]??Pc.DEFAULT_SORTING_COLUMN,desc:!0}]},[c.SORTING,f,n]),g=p.useCallback(()=>{const E=ks.get(c.COLUMN_VISIBILITY,"json");if(E&&typeof E=="object"&&!Array.isArray(E)){const S={};for(const R of d)l.includes(R)||(S[R]=E[R]);return S}return r},[c.COLUMN_VISIBILITY,d,l,r]),[y,v]=p.useState(h),[b,w]=p.useState(g);return p.useEffect(()=>{y.length>0&&f.includes(y[0].id)&&ks.set(c.SORTING,y)},[y,f,c.SORTING]),p.useEffect(()=>{const E={};for(const S of d){if(l.includes(S))continue;const R=b[S];typeof R=="boolean"&&(E[S]=R)}ks.set(c.COLUMN_VISIBILITY,E)},[b,d,l,c.COLUMN_VISIBILITY]),{sorting:y,setSorting:v,columnVisibility:b,setColumnVisibility:w}}function hW({columns:e,data:t,deleteDataMart:n,refetchDataMarts:r,isLoading:s}){var O;const{navigate:l,scope:c}=Po(),{sorting:d,setSorting:f,columnVisibility:h,setColumnVisibility:g}=Zf({columns:e,storageKeyPrefix:"data-mart-list",defaultColumnVisibility:{triggersCount:!1,reportsCount:!1}}),[y,v]=p.useState([]),[b,w]=p.useState({}),[E,S]=p.useState(!1),[R,T]=p.useState(!1),_=async()=>{try{T(!0);const M=A.getSelectedRowModel().rows.map(F=>F.original.id);for(const F of M)await n(F);rn.success(`Successfully deleted ${String(M.length)} data mart${M.length!==1?"s":""}`),w({}),await r()}catch(j){console.error("Error deleting data marts:",j),rn.error("Failed to delete some data marts. Please try again.")}finally{T(!1),S(!1)}},D=Object.keys(b).length>0,A=Au({data:t,columns:[{id:"select",size:40,header:({table:j})=>o.jsx("button",{type:"button",role:"checkbox","aria-checked":j.getIsAllRowsSelected(),"data-state":j.getIsAllRowsSelected()?"checked":"unchecked","aria-label":"Select all rows",className:"peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border bg-white shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white/8",onClick:j.getToggleAllRowsSelectedHandler(),children:j.getIsAllRowsSelected()&&o.jsx("span",{"data-state":"checked","data-slot":"checkbox-indicator",className:"pointer-events-none flex items-center justify-center text-current transition-none",children:o.jsx(fr,{className:"size-3.5 text-white"})})}),cell:({row:j})=>o.jsx("button",{type:"button",role:"checkbox","aria-checked":j.getIsSelected(),"data-state":j.getIsSelected()?"checked":"unchecked","aria-label":"Select row",className:"peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border bg-white shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white/8",onClick:j.getToggleSelectedHandler(),children:j.getIsSelected()&&o.jsx("span",{"data-state":"checked","data-slot":"checkbox-indicator",className:"pointer-events-none flex items-center justify-center text-current transition-none",children:o.jsx(fr,{className:"size-3.5 text-white"})})}),enableSorting:!1,enableHiding:!1},...e],getCoreRowModel:Nu(),getPaginationRowModel:Ag(),onSortingChange:f,getSortedRowModel:qf(),onColumnFiltersChange:v,getFilteredRowModel:Gf(),onColumnVisibilityChange:g,onRowSelectionChange:w,state:{sorting:d,columnFilters:y,columnVisibility:h,rowSelection:b},enableRowSelection:!0});return s?o.jsx("div",{children:o.jsx(dW,{})}):t.length?o.jsxs("div",{className:"dm-card",children:[o.jsxs("div",{className:"dm-card-toolbar",children:[o.jsxs("div",{className:"dm-card-toolbar-left",children:[D&&o.jsx(Se,{variant:"destructive",size:"sm",className:"dm-card-toolbar-btn-delete",onClick:()=>{S(!0)},disabled:R,children:o.jsx(Lo,{className:"h-4 w-4"})}),o.jsxs("div",{className:"dm-card-toolbar-search",children:[o.jsx($l,{className:"dm-card-toolbar-search-icon"}),o.jsx(zt,{placeholder:"Search by title",value:(O=A.getColumn("title"))==null?void 0:O.getFilterValue(),onChange:j=>{var M;return(M=A.getColumn("title"))==null?void 0:M.setFilterValue(j.target.value)},className:"dm-card-toolbar-search-input"})]})]}),o.jsx("div",{className:"dm-card-toolbar-right",children:o.jsx(Za,{to:c("/data-marts/create"),children:o.jsxs(Se,{variant:"outline",className:"dm-card-toolbar-btn-primary",children:[o.jsx(_a,{className:"h-4 w-4"}),"New Data Mart"]})})})]}),o.jsx("div",{className:"dm-card-table-wrap",children:o.jsxs(Du,{className:"dm-card-table",role:"table","aria-label":"Data Marts table",children:[o.jsx(Ou,{className:"dm-card-table-header",children:A.getHeaderGroups().map(j=>o.jsx(sr,{className:"dm-card-table-header-row",children:j.headers.map(M=>o.jsx(Iu,{className:"[&:has([role=checkbox])]:pl-6 [&>[role=checkbox]]:translate-y-[2px]",style:M.column.id==="select"?{width:40,minWidth:40,maxWidth:40}:M.column.id==="actions"?{width:80,minWidth:80,maxWidth:80}:{width:`${String(M.getSize())}%`},children:M.isPlaceholder?null:gu(M.column.columnDef.header,M.getContext())},M.id))},j.id))}),o.jsx(Mu,{className:"dm-card-table-body",children:A.getRowModel().rows.length?A.getRowModel().rows.map(j=>o.jsx(sr,{"data-state":j.getIsSelected()&&"selected",className:"dm-card-table-body-row group",onClick:M=>{if(M.target instanceof HTMLElement&&(M.target.closest('[role="checkbox"]')||M.target.closest(".actions-cell")||M.target.closest('[role="menuitem"]')||M.target.closest('[data-state="open"]')))return;const F=j.original.id;l(`/data-marts/${F}/data-setup`)},children:j.getVisibleCells().map(M=>o.jsx(Sa,{className:`[&:has([role=checkbox])]pr-0 px-6 whitespace-normal [&>[role=checkbox]]:translate-y-[2px] ${M.column.id==="actions"?"actions-cell":""} ${M.column.id==="createdAt"?"whitespace-nowrap":""}`,style:M.column.id==="select"?{width:40,minWidth:40,maxWidth:40}:M.column.id==="actions"?{width:80,minWidth:80,maxWidth:80}:{width:`${String(M.column.getSize())}%`},children:gu(M.column.columnDef.cell,M.getContext())},M.id))},j.id)):o.jsx(sr,{children:o.jsx(Sa,{colSpan:e.length+1,className:"dm-card-table-body-row-empty",children:"No results"})})})]})}),o.jsxs("div",{className:"dm-card-pagination",children:[o.jsx(Se,{variant:"outline",size:"sm",onClick:()=>{A.previousPage()},disabled:!A.getCanPreviousPage(),children:"Previous"}),o.jsx(Se,{variant:"outline",size:"sm",onClick:()=>{A.nextPage()},disabled:!A.getCanNextPage(),children:"Next"})]}),o.jsx(ZY,{open:E,onOpenChange:S,children:o.jsxs(WY,{children:[o.jsxs(QY,{children:[o.jsx(JY,{children:"Are you sure?"}),o.jsxs(eW,{children:["You're about to delete ",Object.keys(b).length," selected data mart",Object.keys(b).length!==1?"s":"",". This action cannot be undone."]})]}),o.jsxs(XY,{children:[o.jsx(nW,{disabled:R,children:"Cancel"}),o.jsx(tW,{onClick:()=>{_()},disabled:R,className:"bg-destructive hover:bg-destructive/90",children:R?"Deleting...":"Delete"})]})]})})]}):o.jsx(uW,{})}function ml({column:e,children:t}){return o.jsxs(Se,{variant:"ghost",onClick:()=>{e.toggleSorting(e.getIsSorted()==="asc")},className:"group dm-card-table-header-row-btn",children:[t,o.jsxs("span",{className:"flex h-4 w-4 items-center justify-center","aria-hidden":"true",children:[e.getIsSorted()==="asc"&&o.jsx(zs,{className:"text-foreground h-4 w-4"}),e.getIsSorted()==="desc"&&o.jsx(Qa,{className:"text-foreground h-4 w-4"}),!e.getIsSorted()&&o.jsx("span",{className:"opacity-0 transition-opacity duration-150 group-hover:opacity-100",children:o.jsx(zs,{className:"text-muted-foreground h-4 w-4"})})]})]})}function F1({...e}){return o.jsx(ng,{"data-slot":"dialog",...e})}function mW({...e}){return o.jsx(rg,{"data-slot":"dialog-portal",...e})}function pW({className:e,...t}){return o.jsx(ag,{"data-slot":"dialog-overlay",className:ne("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function z1({className:e,children:t,showCloseButton:n=!0,...r}){return o.jsxs(mW,{"data-slot":"dialog-portal",children:[o.jsx(pW,{}),o.jsxs(sg,{"data-slot":"dialog-content",className:ne("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",e),...r,children:[t,n&&o.jsxs(og,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[o.jsx(cu,{}),o.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function V1({className:e,...t}){return o.jsx("div",{"data-slot":"dialog-header",className:ne("flex flex-col gap-2 text-center sm:text-left",e),...t})}function gW({className:e,...t}){return o.jsx("div",{"data-slot":"dialog-footer",className:ne("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}function $1({className:e,...t}){return o.jsx(Fb,{"data-slot":"dialog-title",className:ne("text-lg leading-none font-semibold",e),...t})}function H1({className:e,...t}){return o.jsx(zb,{"data-slot":"dialog-description",className:ne("text-muted-foreground text-sm",e),...t})}const yW=Ef("",{variants:{variant:{brand:"bg-primary text-white shadow-xs hover:bg-primary-hover focus-visible:ring-brand-blue-200 dark:focus-visible:ring-brand-blue-400"}}});function au({className:e,variant:t,...n}){return t==="brand"?o.jsx(Se,{variant:"default",className:ne(yW({variant:t}),e),...n}):o.jsx(Se,{variant:t,className:e,...n})}const Hr=({open:e,onOpenChange:t,title:n,description:r,confirmLabel:s="Confirm",cancelLabel:l,onConfirm:c,onCancel:d,variant:f="destructive",children:h})=>{const g=()=>{t(!1),d==null||d()};return o.jsx(F1,{open:e,onOpenChange:t,children:o.jsxs(z1,{children:[o.jsxs(V1,{children:[o.jsx($1,{children:n}),o.jsx(H1,{children:r})]}),h,o.jsxs(gW,{children:[l&&o.jsx(au,{variant:"secondary",onClick:g,children:l}),o.jsx(au,{variant:f,onClick:c,children:s})]})]})})},vW=({row:e,onDeleteSuccess:t})=>{const{scope:n}=Po(),[r,s]=p.useState(!1),[l,c]=p.useState(!1),{deleteDataMart:d,refreshList:f}=e3(),h=async()=>{try{await d(e.original.id),s(!1),await f(),t==null||t()}catch(g){console.error("Failed to delete data mart:",g)}};return o.jsxs("div",{className:"text-right",children:[o.jsxs(wr,{open:l,onOpenChange:c,children:[o.jsx(Rr,{asChild:!0,children:o.jsx(Se,{variant:"ghost",className:`dm-card-table-body-row-actionbtn opacity-0 transition-opacity ${l?"opacity-100":"group-hover:opacity-100"}`,"aria-label":"Open menu",children:o.jsx(Xa,{className:"dm-card-table-body-row-actionbtn-icon"})})}),o.jsxs(Tr,{align:"end",children:[o.jsx(vt,{children:o.jsxs(Za,{to:n(`/data-marts/${e.original.id}/data-setup`),className:"flex gap-2 text-left",children:[o.jsx(Tf,{className:"text-foreground h-4 w-4","aria-hidden":"true"}),o.jsx("span",{children:"Edit"})]})}),o.jsx(Ka,{}),o.jsxs(vt,{onClick:()=>{s(!0)},children:[o.jsx(Lo,{className:"h-4 w-4 text-red-600","aria-hidden":"true"}),o.jsx("span",{className:"text-red-600",children:"Delete"})]})]})]}),o.jsx(Hr,{open:r,onOpenChange:s,title:"Delete Data Mart",description:"Are you sure you want to delete this data mart? This action cannot be undone.",confirmLabel:"Delete",cancelLabel:"Cancel",onConfirm:()=>void h(),variant:"destructive"})]})};var Rn=(e=>(e.TITLE="title",e.DEFINITION_TYPE="definitionType",e.STORAGE_TYPE="storageType",e.STATUS="status",e.TRIGGERS_COUNT="triggersCount",e.REPORTS_COUNT="reportsCount",e.CREATED_AT="createdAt",e))(Rn||{});const mi={[Rn.TITLE]:"Title",[Rn.DEFINITION_TYPE]:"Input Source",[Rn.STORAGE_TYPE]:"Storage",[Rn.STATUS]:"Status",[Rn.TRIGGERS_COUNT]:"Triggers",[Rn.REPORTS_COUNT]:"Reports",[Rn.CREATED_AT]:"Created at"};function xW({table:e}){return o.jsx("div",{className:"px-4 text-right",children:o.jsxs(wr,{children:[o.jsx(Rr,{asChild:!0,children:o.jsx(Se,{variant:"ghost",className:"dm-card-table-body-row-actionbtn","aria-label":"Toggle columns",children:o.jsx(Xa,{className:"dm-card-table-body-row-actionbtn-icon"})})}),o.jsx(Tr,{align:"end",children:e.getAllColumns().filter(t=>t.getCanHide()&&t.id!=="actions").map(t=>{const n=mi[t.id]||t.id;return o.jsx(vt,{className:"capitalize",children:o.jsxs("label",{className:"flex items-center space-x-2",children:[o.jsx("button",{type:"button",role:"checkbox","aria-checked":t.getIsVisible(),"data-state":t.getIsVisible()?"checked":"unchecked","aria-label":`Toggle column ${t.id}`,className:"peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border bg-white shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white/8",onClick:()=>{t.toggleVisibility(!t.getIsVisible())},children:t.getIsVisible()&&o.jsx("span",{"data-state":"checked","data-slot":"checkbox-indicator",className:"pointer-events-none flex items-center justify-center text-current transition-none",children:o.jsx(fr,{className:"size-3.5 text-white"})})}),o.jsx("span",{children:n})]})},t.id)})})]})})}const jT={types:{[Ue.SQL]:{type:Ue.SQL,displayName:"SQL",icon:Ab},[Ue.TABLE]:{type:Ue.TABLE,displayName:"Table",icon:WL},[Ue.VIEW]:{type:Ue.VIEW,displayName:"View",icon:lL},[Ue.TABLE_PATTERN]:{type:Ue.TABLE_PATTERN,displayName:"Pattern",icon:g9},[Ue.CONNECTOR]:{type:Ue.CONNECTOR,displayName:"Connector",icon:Ob}},getInfo(e){return e?this.types[e]:{type:null,displayName:"—",icon:()=>null}}},bW=({onDeleteSuccess:e,connectors:t=[]}={})=>[{accessorKey:Rn.TITLE,size:40,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.TITLE]}),cell:({row:n})=>o.jsx("div",{children:n.getValue("title")})},{accessorFn:n=>{const r=n.definitionType;if(r===Ue.CONNECTOR){const s=n.definition,l=t.find(c=>c.name===s.connector.source.name);return(l==null?void 0:l.displayName)??(l==null?void 0:l.name)??"Unknown"}else{const{displayName:s}=jT.getInfo(r);return s}},id:Rn.DEFINITION_TYPE,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.DEFINITION_TYPE]}),cell:({row:n})=>{const r=n.original.definitionType;switch(r){case Ue.CONNECTOR:{const s=n.original.definition,l=t.find(c=>c.name===s.connector.source.name);return o.jsxs("div",{className:"text-muted-foreground flex items-center gap-2",children:[(l==null?void 0:l.logoBase64)&&o.jsx(_u,{base64:l.logoBase64,size:18}),(l==null?void 0:l.displayName)??"Unknown"]})}default:{const{displayName:s,icon:l}=jT.getInfo(r);return o.jsxs("div",{className:"text-muted-foreground flex items-center gap-2",children:[o.jsx(l,{className:"h-4 w-4"}),s]})}}}},{accessorKey:Rn.STORAGE_TYPE,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.STORAGE_TYPE]}),cell:({row:n})=>{const r=n.getValue("storageType"),s=n.original.storageTitle,{displayName:l,icon:c}=Bi.getInfo(r),d=s??l;return o.jsxs("div",{className:"text-muted-foreground flex items-center gap-2",children:[o.jsx(c,{size:18}),d]})}},{accessorKey:Rn.CREATED_AT,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.CREATED_AT]}),cell:({row:n})=>{const r=n.getValue("createdAt"),s=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"short",day:"numeric"}).format(r);return o.jsx("div",{className:"text-muted-foreground",children:s})}},{accessorKey:Rn.STATUS,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.STATUS]}),cell:({row:n})=>{const r=n.getValue("status");return o.jsx(Bf,{type:TK(r.code),variant:"ghost",showIcon:!1,children:r.displayName})}},{accessorKey:Rn.TRIGGERS_COUNT,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.TRIGGERS_COUNT]}),cell:({row:n})=>{const r=n.getValue("triggersCount")>0?n.getValue("triggersCount"):"—";return o.jsx("div",{className:"text-muted-foreground",children:r})}},{accessorKey:Rn.REPORTS_COUNT,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.REPORTS_COUNT]}),cell:({row:n})=>{const r=n.getValue("reportsCount")>0?n.getValue("reportsCount"):"—";return o.jsx("div",{className:"text-muted-foreground",children:r})}},{id:"actions",size:80,header:({table:n})=>o.jsx(xW,{table:n}),cell:({row:n})=>o.jsx(vW,{row:n,onDeleteSuccess:e})}];var nr=(e=>(e.FETCH_CONNECTORS_START="FETCH_CONNECTORS_START",e.FETCH_CONNECTORS_SUCCESS="FETCH_CONNECTORS_SUCCESS",e.FETCH_CONNECTORS_ERROR="FETCH_CONNECTORS_ERROR",e.FETCH_CONNECTOR_SPECIFICATION_START="FETCH_CONNECTOR_SPECIFICATION_START",e.FETCH_CONNECTOR_SPECIFICATION_SUCCESS="FETCH_CONNECTOR_SPECIFICATION_SUCCESS",e.FETCH_CONNECTOR_SPECIFICATION_ERROR="FETCH_CONNECTOR_SPECIFICATION_ERROR",e.FETCH_CONNECTOR_FIELDS_START="FETCH_CONNECTOR_FIELDS_START",e.FETCH_CONNECTOR_FIELDS_SUCCESS="FETCH_CONNECTOR_FIELDS_SUCCESS",e.FETCH_CONNECTOR_FIELDS_ERROR="FETCH_CONNECTOR_FIELDS_ERROR",e))(nr||{});const SW={connectors:[],connectorSpecification:null,connectorFields:null,loading:!1,loadingSpecification:!1,loadingFields:!1,error:null};function CW(e,t){switch(t.type){case nr.FETCH_CONNECTORS_START:return{...e,loading:!0,error:null};case nr.FETCH_CONNECTORS_SUCCESS:return{...e,connectors:t.payload,loading:!1,error:null};case nr.FETCH_CONNECTORS_ERROR:return{...e,loading:!1,error:t.payload};case nr.FETCH_CONNECTOR_SPECIFICATION_START:return{...e,loadingSpecification:!0,error:null};case nr.FETCH_CONNECTOR_SPECIFICATION_SUCCESS:return{...e,connectorSpecification:t.payload,loadingSpecification:!1,error:null};case nr.FETCH_CONNECTOR_SPECIFICATION_ERROR:return{...e,loadingSpecification:!1,error:t.payload};case nr.FETCH_CONNECTOR_FIELDS_START:return{...e,loadingFields:!0,error:null};case nr.FETCH_CONNECTOR_FIELDS_SUCCESS:return{...e,connectorFields:t.payload,loadingFields:!1,error:null};case nr.FETCH_CONNECTOR_FIELDS_ERROR:return{...e,loadingFields:!1,error:t.payload};default:return e}}const w3=p.createContext(void 0);function yu({children:e}){const[t,n]=p.useReducer(CW,SW);return o.jsx(w3.Provider,{value:{state:t,dispatch:n},children:e})}function EW(){const e=p.useContext(w3);if(!e)throw new Error("useConnectorContext must be used within a ConnectorContextProvider");return e}var os=(e=>(e.STRING="string",e.NUMBER="number",e.BOOLEAN="boolean",e.OBJECT="object",e.ARRAY="array",e.DATE="date",e))(os||{});class Qm extends Zl{constructor(){super("/connectors")}async getAvailableConnectors(){return this.get("/")}async getConnectorSpecification(t){return this.get(`/${t}/specification`)}async getConnectorFields(t){return this.get(`/${t}/fields`)}}function R3(e){return e.map(t=>({name:t.name,displayName:t.title??t.name,description:t.description??"",logoBase64:t.logo,docUrl:t.docUrl})).sort((t,n)=>t.displayName.localeCompare(n.displayName))}function Yl(){const{state:e,dispatch:t}=EW(),n=p.useMemo(()=>R3(e.connectors),[e.connectors]),r=p.useCallback(async()=>{t({type:nr.FETCH_CONNECTORS_START});try{const d=await new Qm().getAvailableConnectors();t({type:nr.FETCH_CONNECTORS_SUCCESS,payload:d})}catch(c){const d=c instanceof Error?c.message:"Unknown error";t({type:nr.FETCH_CONNECTORS_ERROR,payload:d}),Pe({event:"connector_error",category:"Connector",action:"ListError",label:d})}},[t]),s=p.useCallback(async c=>{t({type:nr.FETCH_CONNECTOR_SPECIFICATION_START});try{const f=await new Qm().getConnectorSpecification(c);t({type:nr.FETCH_CONNECTOR_SPECIFICATION_SUCCESS,payload:f})}catch(d){const f=d instanceof Error?d.message:"Unknown error";t({type:nr.FETCH_CONNECTOR_SPECIFICATION_ERROR,payload:f}),Pe({event:"connector_error",category:"Connector",action:"SpecificationError",label:c})}},[t]),l=p.useCallback(async c=>{t({type:nr.FETCH_CONNECTOR_FIELDS_START});try{const f=await new Qm().getConnectorFields(c);t({type:nr.FETCH_CONNECTOR_FIELDS_SUCCESS,payload:f})}catch(d){const f=d instanceof Error?d.message:"Unknown error";t({type:nr.FETCH_CONNECTOR_FIELDS_ERROR,payload:f}),Pe({event:"connector_error",category:"Connector",action:"FieldsError",label:c})}},[t]);return{connectors:n,connectorSpecification:e.connectorSpecification,connectorFields:e.connectorFields,loading:e.loading,loadingSpecification:e.loadingSpecification,loadingFields:e.loadingFields,error:e.error,fetchAvailableConnectors:r,fetchConnectorSpecification:s,fetchConnectorFields:l}}const wW=()=>{const{items:e,loadDataMarts:t,deleteDataMart:n,refreshList:r,loading:s}=e3(),{connectors:l,fetchAvailableConnectors:c}=Yl();return p.useEffect(()=>{c()},[c]),p.useEffect(()=>{t()},[t]),o.jsx(hW,{columns:bW({connectors:l}),data:e,deleteDataMart:n,refetchDataMarts:r,isLoading:s})};function _T(){return o.jsxs("div",{className:"dm-page",children:[o.jsx("header",{className:"dm-page-header",children:o.jsx("h1",{className:"dm-page-header-title",children:"Data Marts"})}),o.jsx("div",{className:"dm-page-content",children:o.jsx(rZ,{children:o.jsx(yu,{children:o.jsx(wW,{})})})})]})}const T3=p.createContext(void 0),Ld=e=>{const t=OK(e);return{...e,canPublish:t.length===0,validationErrors:t}};var Ga=(e=>(e.CONNECTED="CONNECTED",e.CONNECTED_WITH_DEFINITION_MISMATCH="CONNECTED_WITH_DEFINITION_MISMATCH",e.DISCONNECTED="DISCONNECTED",e))(Ga||{}),pf=(e=>(e.NULLABLE="NULLABLE",e.REQUIRED="REQUIRED",e.REPEATED="REPEATED",e))(pf||{}),kn=(e=>(e.INTEGER="INTEGER",e.FLOAT="FLOAT",e.NUMERIC="NUMERIC",e.BIGNUMERIC="BIGNUMERIC",e.STRING="STRING",e.BYTES="BYTES",e.BOOLEAN="BOOLEAN",e.DATE="DATE",e.TIME="TIME",e.DATETIME="DATETIME",e.TIMESTAMP="TIMESTAMP",e.GEOGRAPHY="GEOGRAPHY",e.JSON="JSON",e.RECORD="RECORD",e.STRUCT="STRUCT",e.RANGE="RANGE",e.INTERVAL="INTERVAL",e))(kn||{}),B1=(e=>(e.BOOLEAN="BOOLEAN",e.TINYINT="TINYINT",e.SMALLINT="SMALLINT",e.INTEGER="INTEGER",e.BIGINT="BIGINT",e.REAL="REAL",e.FLOAT="FLOAT",e.DOUBLE="DOUBLE",e.DECIMAL="DECIMAL",e.CHAR="CHAR",e.VARCHAR="VARCHAR",e.STRING="STRING",e.BINARY="BINARY",e.VARBINARY="VARBINARY",e.DATE="DATE",e.TIME="TIME",e.TIMESTAMP="TIMESTAMP",e.TIME_WITH_TIME_ZONE="TIME WITH TIME ZONE",e.TIMESTAMP_WITH_TIME_ZONE="TIMESTAMP WITH TIME ZONE",e.INTERVAL_YEAR_TO_MONTH="INTERVAL YEAR TO MONTH",e.INTERVAL_DAY_TO_SECOND="INTERVAL DAY TO SECOND",e.ARRAY="ARRAY",e.MAP="MAP",e.STRUCT="STRUCT",e.ROW="ROW",e.JSON="JSON",e))(B1||{});const RW=(e,t)=>!!(e!==Ue.CONNECTOR||t!==null&&t.fields.some(r=>r.status===Ga.CONNECTED)),j3={dataMart:null,isLoading:!1,error:null,runs:[]};function TW(e,t){switch(t.type){case"FETCH_DATA_MART_START":case"CREATE_DATA_MART_START":case"UPDATE_DATA_MART_START":case"UPDATE_DATA_MART_TITLE_START":case"UPDATE_DATA_MART_DESCRIPTION_START":case"UPDATE_DATA_MART_DEFINITION_START":case"DELETE_DATA_MART_START":case"PUBLISH_DATA_MART_START":case"RUN_DATA_MART_START":case"ACTUALIZE_DATA_MART_SCHEMA_START":case"UPDATE_DATA_MART_SCHEMA_START":case"FETCH_DATA_MART_RUNS_START":case"LOAD_MORE_DATA_MART_RUNS_START":return{...e,isLoading:!0,error:null};case"CREATE_DATA_MART_SUCCESS":return{...e,isLoading:!1,error:null};case"FETCH_DATA_MART_SUCCESS":case"UPDATE_DATA_MART_SUCCESS":case"PUBLISH_DATA_MART_SUCCESS":case"ACTUALIZE_DATA_MART_SCHEMA_SUCCESS":case"UPDATE_DATA_MART_SCHEMA_SUCCESS":return{...e,isLoading:!1,error:null,dataMart:Ld(t.payload)};case"UPDATE_DATA_MART_TITLE_SUCCESS":return e.dataMart?{...e,isLoading:!1,error:null,dataMart:Ld({...e.dataMart,title:t.payload,modifiedAt:new Date})}:e;case"UPDATE_DATA_MART_DESCRIPTION_SUCCESS":return e.dataMart?{...e,isLoading:!1,error:null,dataMart:Ld({...e.dataMart,description:t.payload,modifiedAt:new Date})}:e;case"UPDATE_DATA_MART_STORAGE":return e.dataMart?{...e,dataMart:Ld({...e.dataMart,storage:t.payload,modifiedAt:new Date})}:e;case"UPDATE_DATA_MART_DEFINITION_SUCCESS":return e.dataMart?{...e,isLoading:!1,error:null,dataMart:Ld({...e.dataMart,definitionType:t.payload.definitionType,definition:t.payload.definition,modifiedAt:new Date})}:e;case"DELETE_DATA_MART_SUCCESS":return{...e,isLoading:!1,error:null,dataMart:null};case"RUN_DATA_MART_SUCCESS":return{...e,isLoading:!1,error:null};case"FETCH_DATA_MART_RUNS_SUCCESS":return{...e,isLoading:!1,error:null,runs:t.payload};case"LOAD_MORE_DATA_MART_RUNS_SUCCESS":return{...e,isLoading:!1,error:null,runs:[...e.runs,...t.payload]};case"FETCH_DATA_MART_ERROR":case"CREATE_DATA_MART_ERROR":case"UPDATE_DATA_MART_ERROR":case"UPDATE_DATA_MART_TITLE_ERROR":case"UPDATE_DATA_MART_DESCRIPTION_ERROR":case"UPDATE_DATA_MART_DEFINITION_ERROR":case"DELETE_DATA_MART_ERROR":case"PUBLISH_DATA_MART_ERROR":case"RUN_DATA_MART_ERROR":case"ACTUALIZE_DATA_MART_SCHEMA_ERROR":case"UPDATE_DATA_MART_SCHEMA_ERROR":case"FETCH_DATA_MART_RUNS_ERROR":case"LOAD_MORE_DATA_MART_RUNS_ERROR":return{...e,isLoading:!1,error:t.payload};case"RESET":return j3;default:return e}}function Fo(){const e=p.useContext(T3);if(e===void 0)throw new Error("useDataMartContext must be used within a DataMartProvider");return e}class jW{mapFromDto(t){const n=t.config,r=t.credentials;let s="";return r&&Object.keys(r).length>0&&(s=JSON.stringify(r,null,2)),{id:t.id,title:t.title,type:Ie.GOOGLE_BIGQUERY,createdAt:new Date(t.createdAt),modifiedAt:new Date(t.modifiedAt),credentials:{serviceAccount:s},config:{projectId:(n==null?void 0:n.projectId)??"",location:(n==null?void 0:n.location)??""}}}mapToUpdateRequest(t){const n={config:{projectId:t.config.projectId,location:t.config.location}};return t.credentials&&(n.credentials={...JSON.parse(t.credentials.serviceAccount)}),n}}class _W{mapFromDto(t){const n=t.config,r=t.credentials;return{id:t.id,title:t.title,type:Ie.AWS_ATHENA,createdAt:new Date(t.createdAt),modifiedAt:new Date(t.modifiedAt),credentials:{accessKeyId:(r==null?void 0:r.accessKeyId)??"",secretAccessKey:(r==null?void 0:r.secretAccessKey)??""},config:{region:(n==null?void 0:n.region)??"",outputBucket:(n==null?void 0:n.outputBucket)??""}}}mapToUpdateRequest(t){const n={config:{region:t.config.region,outputBucket:t.config.outputBucket}};return t.credentials&&(n.credentials={accessKeyId:t.credentials.accessKeyId,secretAccessKey:t.credentials.secretAccessKey}),n}}const _3={getMapper(e){switch(e){case Ie.GOOGLE_BIGQUERY:return new jW;case Ie.AWS_ATHENA:return new _W;default:throw new Error(`Unknown storage type: ${e}`)}}};function Xm(e){return _3.getMapper(e.type).mapFromDto(e)}function NW(e){const t=_3.getMapper(e.type);return{title:e.title,...t.mapToUpdateRequest(e)}}function AW(e){return{id:e.id,type:e.type,title:e.title,createdAt:new Date(e.createdAt),modifiedAt:new Date(e.modifiedAt)}}function DW(e){return{type:e}}let Om=null;async function OW(){if(Om)return Om;const e=await MW();return Om=R3(e),Om}async function MW(){return await new Qm().getAvailableConnectors()}async function IW(e){const t=await OW();return t.length===0?null:t.find(r=>r.name===e)??null}function kW(e,t){const n=t.find(r=>r.name===e.source.name);return(n==null?void 0:n.displayName)??e.source.name}function LW(e){return{sqlQuery:e.sqlQuery}}function PW(e){return{sqlQuery:e.sqlQuery}}function UW(e){return{fullyQualifiedName:e.fullyQualifiedName}}function FW(e){return{fullyQualifiedName:e.fullyQualifiedName}}function zW(e){return{fullyQualifiedName:e.fullyQualifiedName}}function VW(e){return{fullyQualifiedName:e.fullyQualifiedName}}function $W(e){return{pattern:e.pattern}}function HW(e){return{pattern:e.pattern}}function BW(e){return{connector:{source:{name:e.connector.source.name,configuration:e.connector.source.configuration,node:e.connector.source.node,fields:e.connector.source.fields},storage:{fullyQualifiedName:e.connector.storage.fullyQualifiedName}}}}function GW(e){const t=e.connector;return{connector:{source:{name:t.source.name,configuration:t.source.configuration,node:t.source.node,fields:t.source.fields},storage:{fullyQualifiedName:t.storage.fullyQualifiedName}}}}async function qW(e,t){if(!e||!t)return null;switch(e){case Ue.SQL:return PW(t);case Ue.TABLE:return FW(t);case Ue.VIEW:return VW(t);case Ue.TABLE_PATTERN:return HW(t);case Ue.CONNECTOR:{const n=GW(t);return n.connector.info=await IW(n.connector.source.name),n}default:return console.warn(`Unknown definition type: ${String(e)}`),null}}async function Uc(e){const t={id:e.id,title:e.title,description:e.description,status:_4.getInfo(e.status),storage:Xm(e.storage),definitionType:e.definitionType,definition:await qW(e.definitionType,e.definition),schema:e.schema,connectorState:e.connectorState??null,createdAt:new Date(e.createdAt),modifiedAt:new Date(e.modifiedAt),canPublish:!1,canActualizeSchema:!1,validationErrors:[]};return t.canActualizeSchema=RW(t.definitionType,t.schema),t}function ZW(e){return{id:e.id,title:e.title}}const KW=e=>({id:e.id,status:e.status,createdAt:new Date(e.createdAt),logs:e.logs,errors:e.errors,definitionRun:e.definitionRun?e.definitionRun:null,type:e.type?e.type:null,triggerType:e.runType?e.runType:null,startedAt:e.startedAt?new Date(e.startedAt):null,finishedAt:e.finishedAt?new Date(e.finishedAt):null,reportDefinition:e.reportDefinition?e.reportDefinition:null}),NT=e=>e.runs.map(KW);function N3({children:e}){const[t,n]=p.useReducer(TW,j3),r=p.useCallback(async A=>{try{n({type:"FETCH_DATA_MART_START"});const O=await nn.getDataMartById(A),j=await Uc(O);n({type:"FETCH_DATA_MART_SUCCESS",payload:j})}catch(O){n({type:"FETCH_DATA_MART_ERROR",payload:yn(O)})}},[]),s=p.useCallback(async A=>{try{n({type:"CREATE_DATA_MART_START"});const O=await nn.createDataMart(A),j=ZW(O);return n({type:"CREATE_DATA_MART_SUCCESS",payload:j}),Pe({event:"data_mart_created",category:"DataMart",action:"Create",label:j.id}),At.success("Data Mart created"),j}catch(O){const j=yn(O);throw n({type:"CREATE_DATA_MART_ERROR",payload:j}),Pe({event:"data_mart_error",category:"DataMart",action:"CreateError",label:j.message}),O}},[]),l=p.useCallback(async(A,O)=>{try{n({type:"UPDATE_DATA_MART_START"});const j=await nn.updateDataMart(A,O),M=await Uc(j);n({type:"UPDATE_DATA_MART_SUCCESS",payload:M}),Pe({event:"data_mart_updated",category:"DataMart",action:"Update",label:M.id})}catch(j){const M=yn(j);n({type:"UPDATE_DATA_MART_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"UpdateError",label:M.message})}},[]),c=p.useCallback(async A=>{try{n({type:"DELETE_DATA_MART_START"}),await nn.deleteDataMart(A),n({type:"DELETE_DATA_MART_SUCCESS"}),Pe({event:"data_mart_deleted",category:"DataMart",action:"Delete",label:A}),At.success("Data Mart deleted")}catch(O){const j=yn(O);n({type:"DELETE_DATA_MART_ERROR",payload:j}),Pe({event:"data_mart_error",category:"DataMart",action:"DeleteError",label:j.message})}},[]),d=p.useCallback(async(A,O)=>{try{n({type:"UPDATE_DATA_MART_TITLE_START"}),await nn.updateDataMartTitle(A,O),n({type:"UPDATE_DATA_MART_TITLE_SUCCESS",payload:O}),Pe({event:"data_mart_updated",category:"DataMart",action:"UpdateTitle",label:O}),At.success("Title updated")}catch(j){const M=yn(j);n({type:"UPDATE_DATA_MART_TITLE_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"UpdateTitleError",label:M.message})}},[]),f=p.useCallback(async(A,O)=>{try{n({type:"UPDATE_DATA_MART_DESCRIPTION_START"}),await nn.updateDataMartDescription(A,O),n({type:"UPDATE_DATA_MART_DESCRIPTION_SUCCESS",payload:O??""}),Pe({event:"data_mart_updated",category:"DataMart",action:"UpdateDescription"}),At.success("Description updated")}catch(j){const M=yn(j);n({type:"UPDATE_DATA_MART_DESCRIPTION_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"UpdateDescriptionError",label:M.message})}},[]),h=p.useCallback(A=>{n({type:"UPDATE_DATA_MART_STORAGE",payload:A})},[]),g=p.useCallback(async(A,O,j)=>{try{n({type:"UPDATE_DATA_MART_DEFINITION_START"});let M;switch(O){case Ue.SQL:M={definitionType:O,definition:LW(j)};break;case Ue.TABLE:M={definitionType:O,definition:UW(j)};break;case Ue.VIEW:M={definitionType:O,definition:zW(j)};break;case Ue.TABLE_PATTERN:M={definitionType:O,definition:$W(j)};break;case Ue.CONNECTOR:{const Y=j;let Z;for(const ee of Y.connector.source.configuration){const $=ee;if($._copiedFrom){Z=$._copiedFrom.dataMartId;break}}M={definitionType:Ue.CONNECTOR,definition:BW(Y),sourceDataMartId:Z};break}default:throw new Error(`Unsupported definition type: ${String(O)}`)}const F=await nn.updateDataMartDefinition(A,M),G=await Uc(F);n({type:"UPDATE_DATA_MART_DEFINITION_SUCCESS",payload:{definitionType:O,definition:j}}),n({type:"UPDATE_DATA_MART_SUCCESS",payload:G}),Pe({event:"data_mart_updated",category:"DataMart",action:"UpdateDefinition",label:O})}catch(M){const F=yn(M);n({type:"UPDATE_DATA_MART_DEFINITION_ERROR",payload:F}),Pe({event:"data_mart_error",category:"DataMart",action:"UpdateDefinitionError",label:F.message})}},[]),y=p.useCallback(async A=>{try{n({type:"PUBLISH_DATA_MART_START"});const O=await nn.publishDataMart(A),j=await Uc(O);n({type:"PUBLISH_DATA_MART_SUCCESS",payload:j}),At.success("Data Mart published")}catch(O){const j=yn(O);throw n({type:"PUBLISH_DATA_MART_ERROR",payload:j}),Pe({event:"data_mart_error",category:"DataMart",action:"PublishError",label:j.message}),O}},[]),v=p.useCallback(async(A,O=5,j=0,M)=>{try{M!=null&&M.silent||n({type:"FETCH_DATA_MART_RUNS_START"});const F=await nn.getDataMartRuns(A,O,j,M!=null&&M.silent?{skipLoadingIndicator:!0}:void 0),G=NT(F);return n({type:"FETCH_DATA_MART_RUNS_SUCCESS",payload:G}),G}catch(F){throw n({type:"FETCH_DATA_MART_RUNS_ERROR",payload:yn(F)}),F}},[]),b=p.useCallback(async(A,O,j=5)=>{try{n({type:"LOAD_MORE_DATA_MART_RUNS_START"});const M=await nn.getDataMartRuns(A,j,O),F=NT(M);return n({type:"LOAD_MORE_DATA_MART_RUNS_SUCCESS",payload:F}),F}catch(M){throw n({type:"LOAD_MORE_DATA_MART_RUNS_ERROR",payload:yn(M)}),M}},[]),w=p.useCallback(async A=>{const O=At.loading("Manual run started");try{n({type:"RUN_DATA_MART_START"}),await nn.runDataMart(A.id,A.payload),n({type:"RUN_DATA_MART_SUCCESS"})}catch(j){At.dismiss(O);const M=yn(j);n({type:"RUN_DATA_MART_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"RunError",label:M.message})}},[]),E=p.useCallback(async(A,O)=>{try{await nn.cancelDataMartRun(A,O),await v(A),At.success("Data Mart run canceled")}catch(j){const M=yn(j);n({type:"RUN_DATA_MART_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"CancelRunError",label:M.message})}},[v]),S=p.useCallback(async A=>{try{n({type:"ACTUALIZE_DATA_MART_SCHEMA_START"});const O=await nn.actualizeDataMartSchema(A),j=await Uc(O);n({type:"ACTUALIZE_DATA_MART_SCHEMA_SUCCESS",payload:j}),At.success("Output schema actualized")}catch(O){const j=yn(O);n({type:"ACTUALIZE_DATA_MART_SCHEMA_ERROR",payload:j}),Pe({event:"data_mart_error",category:"DataMart",action:"ActualizeSchemaError",label:j.message})}},[]),R=p.useCallback(async(A,O)=>{try{n({type:"UPDATE_DATA_MART_SCHEMA_START"});const j=await nn.updateDataMartSchema(A,{schema:O}),M=await Uc(j);n({type:"UPDATE_DATA_MART_SCHEMA_SUCCESS",payload:M}),At.success("Output schema updated")}catch(j){const M=yn(j);n({type:"UPDATE_DATA_MART_SCHEMA_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"UpdateSchemaError",label:M.message})}},[]),T=p.useCallback(()=>{n({type:"RESET"})},[]),_=p.useCallback(()=>t.error?t.error.message:null,[t.error]),D={...t,getDataMart:r,createDataMart:s,updateDataMart:l,deleteDataMart:c,updateDataMartTitle:d,updateDataMartDescription:f,updateDataMartStorage:h,updateDataMartDefinition:g,publishDataMart:y,runDataMart:w,cancelDataMartRun:E,actualizeDataMartSchema:S,updateDataMartSchema:R,getDataMartRuns:v,loadMoreDataMartRuns:b,getErrorMessage:_,reset:T};return o.jsx(T3.Provider,{value:D,children:e})}var Kf=e=>e.type==="checkbox",bl=e=>e instanceof Date,ea=e=>e==null;const A3=e=>typeof e=="object";var Wn=e=>!ea(e)&&!Array.isArray(e)&&A3(e)&&!bl(e),D3=e=>Wn(e)&&e.target?Kf(e.target)?e.target.checked:e.target.value:e,YW=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,O3=(e,t)=>e.has(YW(t)),WW=e=>{const t=e.constructor&&e.constructor.prototype;return Wn(t)&&t.hasOwnProperty("isPrototypeOf")},G1=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function tr(e){let t;const n=Array.isArray(e),r=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)t=new Date(e);else if(!(G1&&(e instanceof Blob||r))&&(n||Wn(e)))if(t=n?[]:Object.create(Object.getPrototypeOf(e)),!n&&!WW(e))t=e;else for(const s in e)e.hasOwnProperty(s)&&(t[s]=tr(e[s]));else return e;return t}var Dg=e=>/^\w*$/.test(e),Tn=e=>e===void 0,q1=e=>Array.isArray(e)?e.filter(Boolean):[],Z1=e=>q1(e.replace(/["|']|\]/g,"").split(/\.|\[/)),Ae=(e,t,n)=>{if(!t||!Wn(e))return n;const r=(Dg(t)?[t]:Z1(t)).reduce((s,l)=>ea(s)?s:s[l],e);return Tn(r)||r===e?Tn(e[t])?n:e[t]:r},ha=e=>typeof e=="boolean",Yt=(e,t,n)=>{let r=-1;const s=Dg(t)?[t]:Z1(t),l=s.length,c=l-1;for(;++r<l;){const d=s[r];let f=n;if(r!==c){const h=e[d];f=Wn(h)||Array.isArray(h)?h:isNaN(+s[r+1])?{}:[]}if(d==="__proto__"||d==="constructor"||d==="prototype")return;e[d]=f,e=e[d]}};const Op={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},ls={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},xo={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},K1=ye.createContext(null);K1.displayName="HookFormContext";const ku=()=>ye.useContext(K1),M3=e=>{const{children:t,...n}=e;return ye.createElement(K1.Provider,{value:n},t)};var I3=(e,t,n,r=!0)=>{const s={defaultValues:t._defaultValues};for(const l in e)Object.defineProperty(s,l,{get:()=>{const c=l;return t._proxyFormState[c]!==ls.all&&(t._proxyFormState[c]=!r||ls.all),n&&(n[c]=!0),e[c]}});return s};const Y1=typeof window<"u"?ye.useLayoutEffect:ye.useEffect;function k3(e){const t=ku(),{control:n=t.control,disabled:r,name:s,exact:l}=e||{},[c,d]=ye.useState(n._formState),f=ye.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return Y1(()=>n._subscribe({name:s,formState:f.current,exact:l,callback:h=>{!r&&d({...n._formState,...h})}}),[s,r,l]),ye.useEffect(()=>{f.current.isValid&&n._setValid(!0)},[n]),ye.useMemo(()=>I3(c,n,f.current,!1),[c,n])}var ya=e=>typeof e=="string",B0=(e,t,n,r,s)=>ya(e)?(r&&t.watch.add(e),Ae(n,e,s)):Array.isArray(e)?e.map(l=>(r&&t.watch.add(l),Ae(n,l))):(r&&(t.watchAll=!0),n),G0=e=>ea(e)||!A3(e);function cs(e,t,n=new WeakSet){if(G0(e)||G0(t))return e===t;if(bl(e)&&bl(t))return e.getTime()===t.getTime();const r=Object.keys(e),s=Object.keys(t);if(r.length!==s.length)return!1;if(n.has(e)||n.has(t))return!0;n.add(e),n.add(t);for(const l of r){const c=e[l];if(!s.includes(l))return!1;if(l!=="ref"){const d=t[l];if(bl(c)&&bl(d)||Wn(c)&&Wn(d)||Array.isArray(c)&&Array.isArray(d)?!cs(c,d,n):c!==d)return!1}}return!0}function QW(e){const t=ku(),{control:n=t.control,name:r,defaultValue:s,disabled:l,exact:c,compute:d}=e||{},f=ye.useRef(s),h=ye.useRef(d),g=ye.useRef(void 0),y=ye.useRef(n),v=ye.useRef(r);h.current=d;const[b,w]=ye.useState(()=>{const D=n._getWatch(r,f.current);return h.current?h.current(D):D}),E=ye.useCallback(D=>{const A=B0(r,n._names,D||n._formValues,!1,f.current);return h.current?h.current(A):A},[n._formValues,n._names,r]),S=ye.useCallback(D=>{if(!l){const A=B0(r,n._names,D||n._formValues,!1,f.current);if(h.current){const O=h.current(A);cs(O,g.current)||(w(O),g.current=O)}else w(A)}},[n._formValues,n._names,l,r]);Y1(()=>((y.current!==n||!cs(v.current,r))&&(y.current=n,v.current=r,S()),n._subscribe({name:r,formState:{values:!0},exact:c,callback:D=>{S(D.values)}})),[n,c,r,S]),ye.useEffect(()=>n._removeUnmounted());const R=y.current!==n,T=v.current,_=ye.useMemo(()=>{if(l)return null;const D=!R&&!cs(T,r);return R||D?E():null},[l,R,r,T,E]);return _!==null?_:b}function XW(e){const t=ku(),{name:n,disabled:r,control:s=t.control,shouldUnregister:l,defaultValue:c}=e,d=O3(s._names.array,n),f=ye.useMemo(()=>Ae(s._formValues,n,Ae(s._defaultValues,n,c)),[s,n,c]),h=QW({control:s,name:n,defaultValue:f,exact:!0}),g=k3({control:s,name:n,exact:!0}),y=ye.useRef(e),v=ye.useRef(void 0),b=ye.useRef(s.register(n,{...e.rules,value:h,...ha(e.disabled)?{disabled:e.disabled}:{}}));y.current=e;const w=ye.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!Ae(g.errors,n)},isDirty:{enumerable:!0,get:()=>!!Ae(g.dirtyFields,n)},isTouched:{enumerable:!0,get:()=>!!Ae(g.touchedFields,n)},isValidating:{enumerable:!0,get:()=>!!Ae(g.validatingFields,n)},error:{enumerable:!0,get:()=>Ae(g.errors,n)}}),[g,n]),E=ye.useCallback(_=>b.current.onChange({target:{value:D3(_),name:n},type:Op.CHANGE}),[n]),S=ye.useCallback(()=>b.current.onBlur({target:{value:Ae(s._formValues,n),name:n},type:Op.BLUR}),[n,s._formValues]),R=ye.useCallback(_=>{const D=Ae(s._fields,n);D&&_&&(D._f.ref={focus:()=>_.focus&&_.focus(),select:()=>_.select&&_.select(),setCustomValidity:A=>_.setCustomValidity(A),reportValidity:()=>_.reportValidity()})},[s._fields,n]),T=ye.useMemo(()=>({name:n,value:h,...ha(r)||g.disabled?{disabled:g.disabled||r}:{},onChange:E,onBlur:S,ref:R}),[n,r,g.disabled,E,S,R,h]);return ye.useEffect(()=>{const _=s._options.shouldUnregister||l,D=v.current;D&&D!==n&&!d&&s.unregister(D),s.register(n,{...y.current.rules,...ha(y.current.disabled)?{disabled:y.current.disabled}:{}});const A=(O,j)=>{const M=Ae(s._fields,O);M&&M._f&&(M._f.mount=j)};if(A(n,!0),_){const O=tr(Ae(s._options.defaultValues,n,y.current.defaultValue));Yt(s._defaultValues,n,O),Tn(Ae(s._formValues,n))&&Yt(s._formValues,n,O)}return!d&&s.register(n),v.current=n,()=>{(d?_&&!s._state.action:_)?s.unregister(n):A(n,!1)}},[n,s,d,l]),ye.useEffect(()=>{s._setDisabledField({disabled:r,name:n})},[r,n,s]),ye.useMemo(()=>({field:T,formState:g,fieldState:w}),[T,g,w])}const JW=e=>e.render(XW(e));var W1=(e,t,n,r,s)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[r]:s||!0}}:{},Wd=e=>Array.isArray(e)?e:[e],AT=()=>{let e=[];return{get observers(){return e},next:s=>{for(const l of e)l.next&&l.next(s)},subscribe:s=>(e.push(s),{unsubscribe:()=>{e=e.filter(l=>l!==s)}}),unsubscribe:()=>{e=[]}}};function L3(e,t){const n={};for(const r in e)if(e.hasOwnProperty(r)){const s=e[r],l=t[r];if(s&&Wn(s)&&l){const c=L3(s,l);Wn(c)&&(n[r]=c)}else e[r]&&(n[r]=l)}return n}var Pr=e=>Wn(e)&&!Object.keys(e).length,Q1=e=>e.type==="file",us=e=>typeof e=="function",Mp=e=>{if(!G1)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},P3=e=>e.type==="select-multiple",X1=e=>e.type==="radio",eQ=e=>X1(e)||Kf(e),Gx=e=>Mp(e)&&e.isConnected;function tQ(e,t){const n=t.slice(0,-1).length;let r=0;for(;r<n;)e=Tn(e)?r++:e[t[r++]];return e}function nQ(e){for(const t in e)if(e.hasOwnProperty(t)&&!Tn(e[t]))return!1;return!0}function Zn(e,t){const n=Array.isArray(t)?t:Dg(t)?[t]:Z1(t),r=n.length===1?e:tQ(e,n),s=n.length-1,l=n[s];return r&&delete r[l],s!==0&&(Wn(r)&&Pr(r)||Array.isArray(r)&&nQ(r))&&Zn(e,n.slice(0,-1)),e}var rQ=e=>{for(const t in e)if(us(e[t]))return!0;return!1};function U3(e){return Array.isArray(e)||Wn(e)&&!rQ(e)}function q0(e,t={}){for(const n in e)U3(e[n])?(t[n]=Array.isArray(e[n])?[]:{},q0(e[n],t[n])):Tn(e[n])||(t[n]=!0);return t}function Gc(e,t,n){n||(n=q0(t));for(const r in e)U3(e[r])?Tn(t)||G0(n[r])?n[r]=q0(e[r],Array.isArray(e[r])?[]:{}):Gc(e[r],ea(t)?{}:t[r],n[r]):n[r]=!cs(e[r],t[r]);return n}const DT={value:!1,isValid:!1},OT={value:!0,isValid:!0};var F3=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(n=>n&&n.checked&&!n.disabled).map(n=>n.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!Tn(e[0].attributes.value)?Tn(e[0].value)||e[0].value===""?OT:{value:e[0].value,isValid:!0}:OT:DT}return DT},z3=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:r})=>Tn(e)?e:t?e===""?NaN:e&&+e:n&&ya(e)?new Date(e):r?r(e):e;const MT={isValid:!1,value:null};var V3=e=>Array.isArray(e)?e.reduce((t,n)=>n&&n.checked&&!n.disabled?{isValid:!0,value:n.value}:t,MT):MT;function IT(e){const t=e.ref;return Q1(t)?t.files:X1(t)?V3(e.refs).value:P3(t)?[...t.selectedOptions].map(({value:n})=>n):Kf(t)?F3(e.refs).value:z3(Tn(t.value)?e.ref.value:t.value,e)}var aQ=(e,t,n,r)=>{const s={};for(const l of e){const c=Ae(t,l);c&&Yt(s,l,c._f)}return{criteriaMode:n,names:[...e],fields:s,shouldUseNativeValidation:r}},Ip=e=>e instanceof RegExp,Pd=e=>Tn(e)?e:Ip(e)?e.source:Wn(e)?Ip(e.value)?e.value.source:e.value:e,kT=e=>({isOnSubmit:!e||e===ls.onSubmit,isOnBlur:e===ls.onBlur,isOnChange:e===ls.onChange,isOnAll:e===ls.all,isOnTouch:e===ls.onTouched});const LT="AsyncFunction";var sQ=e=>!!e&&!!e.validate&&!!(us(e.validate)&&e.validate.constructor.name===LT||Wn(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===LT)),oQ=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),PT=(e,t,n)=>!n&&(t.watchAll||t.watch.has(e)||[...t.watch].some(r=>e.startsWith(r)&&/^\.\w+/.test(e.slice(r.length))));const Qd=(e,t,n,r)=>{for(const s of n||Object.keys(e)){const l=Ae(e,s);if(l){const{_f:c,...d}=l;if(c){if(c.refs&&c.refs[0]&&t(c.refs[0],s)&&!r)return!0;if(c.ref&&t(c.ref,c.name)&&!r)return!0;if(Qd(d,t))break}else if(Wn(d)&&Qd(d,t))break}}};function UT(e,t,n){const r=Ae(e,n);if(r||Dg(n))return{error:r,name:n};const s=n.split(".");for(;s.length;){const l=s.join("."),c=Ae(t,l),d=Ae(e,l);if(c&&!Array.isArray(c)&&n!==l)return{name:n};if(d&&d.type)return{name:l,error:d};if(d&&d.root&&d.root.type)return{name:`${l}.root`,error:d.root};s.pop()}return{name:n}}var iQ=(e,t,n,r)=>{n(e);const{name:s,...l}=e;return Pr(l)||Object.keys(l).length>=Object.keys(t).length||Object.keys(l).find(c=>t[c]===(!r||ls.all))},lQ=(e,t,n)=>!e||!t||e===t||Wd(e).some(r=>r&&(n?r===t:r.startsWith(t)||t.startsWith(r))),cQ=(e,t,n,r,s)=>s.isOnAll?!1:!n&&s.isOnTouch?!(t||e):(n?r.isOnBlur:s.isOnBlur)?!e:(n?r.isOnChange:s.isOnChange)?e:!0,uQ=(e,t)=>!q1(Ae(e,t)).length&&Zn(e,t),dQ=(e,t,n)=>{const r=Wd(Ae(e,n));return Yt(r,"root",t[n]),Yt(e,n,r),e};function FT(e,t,n="validate"){if(ya(e)||Array.isArray(e)&&e.every(ya)||ha(e)&&!e)return{type:n,message:ya(e)?e:"",ref:t}}var Fc=e=>Wn(e)&&!Ip(e)?e:{value:e,message:""},zT=async(e,t,n,r,s,l)=>{const{ref:c,refs:d,required:f,maxLength:h,minLength:g,min:y,max:v,pattern:b,validate:w,name:E,valueAsNumber:S,mount:R}=e._f,T=Ae(n,E);if(!R||t.has(E))return{};const _=d?d[0]:c,D=Z=>{s&&_.reportValidity&&(_.setCustomValidity(ha(Z)?"":Z||""),_.reportValidity())},A={},O=X1(c),j=Kf(c),M=O||j,F=(S||Q1(c))&&Tn(c.value)&&Tn(T)||Mp(c)&&c.value===""||T===""||Array.isArray(T)&&!T.length,G=W1.bind(null,E,r,A),Y=(Z,ee,$,W=xo.maxLength,k=xo.minLength)=>{const H=Z?ee:$;A[E]={type:Z?W:k,message:H,ref:c,...G(Z?W:k,H)}};if(l?!Array.isArray(T)||!T.length:f&&(!M&&(F||ea(T))||ha(T)&&!T||j&&!F3(d).isValid||O&&!V3(d).isValid)){const{value:Z,message:ee}=ya(f)?{value:!!f,message:f}:Fc(f);if(Z&&(A[E]={type:xo.required,message:ee,ref:_,...G(xo.required,ee)},!r))return D(ee),A}if(!F&&(!ea(y)||!ea(v))){let Z,ee;const $=Fc(v),W=Fc(y);if(!ea(T)&&!isNaN(T)){const k=c.valueAsNumber||T&&+T;ea($.value)||(Z=k>$.value),ea(W.value)||(ee=k<W.value)}else{const k=c.valueAsDate||new Date(T),H=xe=>new Date(new Date().toDateString()+" "+xe),B=c.type=="time",ie=c.type=="week";ya($.value)&&T&&(Z=B?H(T)>H($.value):ie?T>$.value:k>new Date($.value)),ya(W.value)&&T&&(ee=B?H(T)<H(W.value):ie?T<W.value:k<new Date(W.value))}if((Z||ee)&&(Y(!!Z,$.message,W.message,xo.max,xo.min),!r))return D(A[E].message),A}if((h||g)&&!F&&(ya(T)||l&&Array.isArray(T))){const Z=Fc(h),ee=Fc(g),$=!ea(Z.value)&&T.length>+Z.value,W=!ea(ee.value)&&T.length<+ee.value;if(($||W)&&(Y($,Z.message,ee.message),!r))return D(A[E].message),A}if(b&&!F&&ya(T)){const{value:Z,message:ee}=Fc(b);if(Ip(Z)&&!T.match(Z)&&(A[E]={type:xo.pattern,message:ee,ref:c,...G(xo.pattern,ee)},!r))return D(ee),A}if(w){if(us(w)){const Z=await w(T,n),ee=FT(Z,_);if(ee&&(A[E]={...ee,...G(xo.validate,ee.message)},!r))return D(ee.message),A}else if(Wn(w)){let Z={};for(const ee in w){if(!Pr(Z)&&!r)break;const $=FT(await w[ee](T,n),_,ee);$&&(Z={...$,...G(ee,$.message)},D($.message),r&&(A[E]=Z))}if(!Pr(Z)&&(A[E]={ref:_,...Z},!r))return A}}return D(!0),A};const fQ={mode:ls.onSubmit,reValidateMode:ls.onChange,shouldFocusError:!0};function hQ(e={}){let t={...fQ,...e},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:us(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},r={},s=Wn(t.defaultValues)||Wn(t.values)?tr(t.defaultValues||t.values)||{}:{},l=t.shouldUnregister?{}:tr(s),c={action:!1,mount:!1,watch:!1},d={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},f,h=0;const g={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let y={...g};const v={array:AT(),state:AT()},b=t.criteriaMode===ls.all,w=U=>Q=>{clearTimeout(h),h=setTimeout(U,Q)},E=async U=>{if(!t.disabled&&(g.isValid||y.isValid||U)){const Q=t.resolver?Pr((await j()).errors):await F(r,!0);Q!==n.isValid&&v.state.next({isValid:Q})}},S=(U,Q)=>{!t.disabled&&(g.isValidating||g.validatingFields||y.isValidating||y.validatingFields)&&((U||Array.from(d.mount)).forEach(de=>{de&&(Q?Yt(n.validatingFields,de,Q):Zn(n.validatingFields,de))}),v.state.next({validatingFields:n.validatingFields,isValidating:!Pr(n.validatingFields)}))},R=(U,Q=[],de,je,be=!0,Ee=!0)=>{if(je&&de&&!t.disabled){if(c.action=!0,Ee&&Array.isArray(Ae(r,U))){const Ye=de(Ae(r,U),je.argA,je.argB);be&&Yt(r,U,Ye)}if(Ee&&Array.isArray(Ae(n.errors,U))){const Ye=de(Ae(n.errors,U),je.argA,je.argB);be&&Yt(n.errors,U,Ye),uQ(n.errors,U)}if((g.touchedFields||y.touchedFields)&&Ee&&Array.isArray(Ae(n.touchedFields,U))){const Ye=de(Ae(n.touchedFields,U),je.argA,je.argB);be&&Yt(n.touchedFields,U,Ye)}(g.dirtyFields||y.dirtyFields)&&(n.dirtyFields=Gc(s,l)),v.state.next({name:U,isDirty:Y(U,Q),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else Yt(l,U,Q)},T=(U,Q)=>{Yt(n.errors,U,Q),v.state.next({errors:n.errors})},_=U=>{n.errors=U,v.state.next({errors:n.errors,isValid:!1})},D=(U,Q,de,je)=>{const be=Ae(r,U);if(be){const Ee=Ae(l,U,Tn(de)?Ae(s,U):de);Tn(Ee)||je&&je.defaultChecked||Q?Yt(l,U,Q?Ee:IT(be._f)):$(U,Ee),c.mount&&E()}},A=(U,Q,de,je,be)=>{let Ee=!1,Ye=!1;const st={name:U};if(!t.disabled){if(!de||je){(g.isDirty||y.isDirty)&&(Ye=n.isDirty,n.isDirty=st.isDirty=Y(),Ee=Ye!==st.isDirty);const ot=cs(Ae(s,U),Q);Ye=!!Ae(n.dirtyFields,U),ot?Zn(n.dirtyFields,U):Yt(n.dirtyFields,U,!0),st.dirtyFields=n.dirtyFields,Ee=Ee||(g.dirtyFields||y.dirtyFields)&&Ye!==!ot}if(de){const ot=Ae(n.touchedFields,U);ot||(Yt(n.touchedFields,U,de),st.touchedFields=n.touchedFields,Ee=Ee||(g.touchedFields||y.touchedFields)&&ot!==de)}Ee&&be&&v.state.next(st)}return Ee?st:{}},O=(U,Q,de,je)=>{const be=Ae(n.errors,U),Ee=(g.isValid||y.isValid)&&ha(Q)&&n.isValid!==Q;if(t.delayError&&de?(f=w(()=>T(U,de)),f(t.delayError)):(clearTimeout(h),f=null,de?Yt(n.errors,U,de):Zn(n.errors,U)),(de?!cs(be,de):be)||!Pr(je)||Ee){const Ye={...je,...Ee&&ha(Q)?{isValid:Q}:{},errors:n.errors,name:U};n={...n,...Ye},v.state.next(Ye)}},j=async U=>{S(U,!0);const Q=await t.resolver(l,t.context,aQ(U||d.mount,r,t.criteriaMode,t.shouldUseNativeValidation));return S(U),Q},M=async U=>{const{errors:Q}=await j(U);if(U)for(const de of U){const je=Ae(Q,de);je?Yt(n.errors,de,je):Zn(n.errors,de)}else n.errors=Q;return Q},F=async(U,Q,de={valid:!0})=>{for(const je in U){const be=U[je];if(be){const{_f:Ee,...Ye}=be;if(Ee){const st=d.array.has(Ee.name),ot=be._f&&sQ(be._f);ot&&g.validatingFields&&S([Ee.name],!0);const mn=await zT(be,d.disabled,l,b,t.shouldUseNativeValidation&&!Q,st);if(ot&&g.validatingFields&&S([Ee.name]),mn[Ee.name]&&(de.valid=!1,Q))break;!Q&&(Ae(mn,Ee.name)?st?dQ(n.errors,mn,Ee.name):Yt(n.errors,Ee.name,mn[Ee.name]):Zn(n.errors,Ee.name))}!Pr(Ye)&&await F(Ye,Q,de)}}return de.valid},G=()=>{for(const U of d.unMount){const Q=Ae(r,U);Q&&(Q._f.refs?Q._f.refs.every(de=>!Gx(de)):!Gx(Q._f.ref))&&le(U)}d.unMount=new Set},Y=(U,Q)=>!t.disabled&&(U&&Q&&Yt(l,U,Q),!cs(xe(),s)),Z=(U,Q,de)=>B0(U,d,{...c.mount?l:Tn(Q)?s:ya(U)?{[U]:Q}:Q},de,Q),ee=U=>q1(Ae(c.mount?l:s,U,t.shouldUnregister?Ae(s,U,[]):[])),$=(U,Q,de={})=>{const je=Ae(r,U);let be=Q;if(je){const Ee=je._f;Ee&&(!Ee.disabled&&Yt(l,U,z3(Q,Ee)),be=Mp(Ee.ref)&&ea(Q)?"":Q,P3(Ee.ref)?[...Ee.ref.options].forEach(Ye=>Ye.selected=be.includes(Ye.value)):Ee.refs?Kf(Ee.ref)?Ee.refs.forEach(Ye=>{(!Ye.defaultChecked||!Ye.disabled)&&(Array.isArray(be)?Ye.checked=!!be.find(st=>st===Ye.value):Ye.checked=be===Ye.value||!!be)}):Ee.refs.forEach(Ye=>Ye.checked=Ye.value===be):Q1(Ee.ref)?Ee.ref.value="":(Ee.ref.value=be,Ee.ref.type||v.state.next({name:U,values:tr(l)})))}(de.shouldDirty||de.shouldTouch)&&A(U,be,de.shouldTouch,de.shouldDirty,!0),de.shouldValidate&&ie(U)},W=(U,Q,de)=>{for(const je in Q){if(!Q.hasOwnProperty(je))return;const be=Q[je],Ee=U+"."+je,Ye=Ae(r,Ee);(d.array.has(U)||Wn(be)||Ye&&!Ye._f)&&!bl(be)?W(Ee,be,de):$(Ee,be,de)}},k=(U,Q,de={})=>{const je=Ae(r,U),be=d.array.has(U),Ee=tr(Q);Yt(l,U,Ee),be?(v.array.next({name:U,values:tr(l)}),(g.isDirty||g.dirtyFields||y.isDirty||y.dirtyFields)&&de.shouldDirty&&v.state.next({name:U,dirtyFields:Gc(s,l),isDirty:Y(U,Ee)})):je&&!je._f&&!ea(Ee)?W(U,Ee,de):$(U,Ee,de),PT(U,d)&&v.state.next({...n,name:U}),v.state.next({name:c.mount?U:void 0,values:tr(l)})},H=async U=>{c.mount=!0;const Q=U.target;let de=Q.name,je=!0;const be=Ae(r,de),Ee=ot=>{je=Number.isNaN(ot)||bl(ot)&&isNaN(ot.getTime())||cs(ot,Ae(l,de,ot))},Ye=kT(t.mode),st=kT(t.reValidateMode);if(be){let ot,mn;const Na=Q.type?IT(be._f):D3(U),pn=U.type===Op.BLUR||U.type===Op.FOCUS_OUT,zo=!oQ(be._f)&&!t.resolver&&!Ae(n.errors,de)&&!be._f.deps||cQ(pn,Ae(n.touchedFields,de),n.isSubmitted,st,Ye),Dn=PT(de,d,pn);Yt(l,de,Na),pn?(!Q||!Q.readOnly)&&(be._f.onBlur&&be._f.onBlur(U),f&&f(0)):be._f.onChange&&be._f.onChange(U);const bn=A(de,Na,pn),hr=!Pr(bn)||Dn;if(!pn&&v.state.next({name:de,type:U.type,values:tr(l)}),zo)return(g.isValid||y.isValid)&&(t.mode==="onBlur"?pn&&E():pn||E()),hr&&v.state.next({name:de,...Dn?{}:bn});if(!pn&&Dn&&v.state.next({...n}),t.resolver){const{errors:Sn}=await j([de]);if(Ee(Na),je){const Wi=UT(n.errors,r,de),Cs=UT(Sn,r,Wi.name||de);ot=Cs.error,de=Cs.name,mn=Pr(Sn)}}else S([de],!0),ot=(await zT(be,d.disabled,l,b,t.shouldUseNativeValidation))[de],S([de]),Ee(Na),je&&(ot?mn=!1:(g.isValid||y.isValid)&&(mn=await F(r,!0)));je&&(be._f.deps&&(!Array.isArray(be._f.deps)||be._f.deps.length>0)&&ie(be._f.deps),O(de,mn,ot,bn))}},B=(U,Q)=>{if(Ae(n.errors,Q)&&U.focus)return U.focus(),1},ie=async(U,Q={})=>{let de,je;const be=Wd(U);if(t.resolver){const Ee=await M(Tn(U)?U:be);de=Pr(Ee),je=U?!be.some(Ye=>Ae(Ee,Ye)):de}else U?(je=(await Promise.all(be.map(async Ee=>{const Ye=Ae(r,Ee);return await F(Ye&&Ye._f?{[Ee]:Ye}:Ye)}))).every(Boolean),!(!je&&!n.isValid)&&E()):je=de=await F(r);return v.state.next({...!ya(U)||(g.isValid||y.isValid)&&de!==n.isValid?{}:{name:U},...t.resolver||!U?{isValid:de}:{},errors:n.errors}),Q.shouldFocus&&!je&&Qd(r,B,U?be:d.mount),je},xe=(U,Q)=>{let de={...c.mount?l:s};return Q&&(de=L3(Q.dirtyFields?n.dirtyFields:n.touchedFields,de)),Tn(U)?de:ya(U)?Ae(de,U):U.map(je=>Ae(de,je))},L=(U,Q)=>({invalid:!!Ae((Q||n).errors,U),isDirty:!!Ae((Q||n).dirtyFields,U),error:Ae((Q||n).errors,U),isValidating:!!Ae(n.validatingFields,U),isTouched:!!Ae((Q||n).touchedFields,U)}),P=U=>{U&&Wd(U).forEach(Q=>Zn(n.errors,Q)),v.state.next({errors:U?n.errors:{}})},q=(U,Q,de)=>{const je=(Ae(r,U,{_f:{}})._f||{}).ref,be=Ae(n.errors,U)||{},{ref:Ee,message:Ye,type:st,...ot}=be;Yt(n.errors,U,{...ot,...Q,ref:je}),v.state.next({name:U,errors:n.errors,isValid:!1}),de&&de.shouldFocus&&je&&je.focus&&je.focus()},te=(U,Q)=>us(U)?v.state.subscribe({next:de=>"values"in de&&U(Z(void 0,Q),de)}):Z(U,Q,!0),ue=U=>v.state.subscribe({next:Q=>{lQ(U.name,Q.name,U.exact)&&iQ(Q,U.formState||g,jr,U.reRenderRoot)&&U.callback({values:{...l},...n,...Q,defaultValues:s})}}).unsubscribe,ve=U=>(c.mount=!0,y={...y,...U.formState},ue({...U,formState:y})),le=(U,Q={})=>{for(const de of U?Wd(U):d.mount)d.mount.delete(de),d.array.delete(de),Q.keepValue||(Zn(r,de),Zn(l,de)),!Q.keepError&&Zn(n.errors,de),!Q.keepDirty&&Zn(n.dirtyFields,de),!Q.keepTouched&&Zn(n.touchedFields,de),!Q.keepIsValidating&&Zn(n.validatingFields,de),!t.shouldUnregister&&!Q.keepDefaultValue&&Zn(s,de);v.state.next({values:tr(l)}),v.state.next({...n,...Q.keepDirty?{isDirty:Y()}:{}}),!Q.keepIsValid&&E()},Ne=({disabled:U,name:Q})=>{(ha(U)&&c.mount||U||d.disabled.has(Q))&&(U?d.disabled.add(Q):d.disabled.delete(Q))},we=(U,Q={})=>{let de=Ae(r,U);const je=ha(Q.disabled)||ha(t.disabled);return Yt(r,U,{...de||{},_f:{...de&&de._f?de._f:{ref:{name:U}},name:U,mount:!0,...Q}}),d.mount.add(U),de?Ne({disabled:ha(Q.disabled)?Q.disabled:t.disabled,name:U}):D(U,!0,Q.value),{...je?{disabled:Q.disabled||t.disabled}:{},...t.progressive?{required:!!Q.required,min:Pd(Q.min),max:Pd(Q.max),minLength:Pd(Q.minLength),maxLength:Pd(Q.maxLength),pattern:Pd(Q.pattern)}:{},name:U,onChange:H,onBlur:H,ref:be=>{if(be){we(U,Q),de=Ae(r,U);const Ee=Tn(be.value)&&be.querySelectorAll&&be.querySelectorAll("input,select,textarea")[0]||be,Ye=eQ(Ee),st=de._f.refs||[];if(Ye?st.find(ot=>ot===Ee):Ee===de._f.ref)return;Yt(r,U,{_f:{...de._f,...Ye?{refs:[...st.filter(Gx),Ee,...Array.isArray(Ae(s,U))?[{}]:[]],ref:{type:Ee.type,name:U}}:{ref:Ee}}}),D(U,!1,void 0,Ee)}else de=Ae(r,U,{}),de._f&&(de._f.mount=!1),(t.shouldUnregister||Q.shouldUnregister)&&!(O3(d.array,U)&&c.action)&&d.unMount.add(U)}}},_e=()=>t.shouldFocusError&&Qd(r,B,d.mount),He=U=>{ha(U)&&(v.state.next({disabled:U}),Qd(r,(Q,de)=>{const je=Ae(r,de);je&&(Q.disabled=je._f.disabled||U,Array.isArray(je._f.refs)&&je._f.refs.forEach(be=>{be.disabled=je._f.disabled||U}))},0,!1))},We=(U,Q)=>async de=>{let je;de&&(de.preventDefault&&de.preventDefault(),de.persist&&de.persist());let be=tr(l);if(v.state.next({isSubmitting:!0}),t.resolver){const{errors:Ee,values:Ye}=await j();n.errors=Ee,be=tr(Ye)}else await F(r);if(d.disabled.size)for(const Ee of d.disabled)Zn(be,Ee);if(Zn(n.errors,"root"),Pr(n.errors)){v.state.next({errors:{}});try{await U(be,de)}catch(Ee){je=Ee}}else Q&&await Q({...n.errors},de),_e(),setTimeout(_e);if(v.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Pr(n.errors)&&!je,submitCount:n.submitCount+1,errors:n.errors}),je)throw je},Ft=(U,Q={})=>{Ae(r,U)&&(Tn(Q.defaultValue)?k(U,tr(Ae(s,U))):(k(U,Q.defaultValue),Yt(s,U,tr(Q.defaultValue))),Q.keepTouched||Zn(n.touchedFields,U),Q.keepDirty||(Zn(n.dirtyFields,U),n.isDirty=Q.defaultValue?Y(U,tr(Ae(s,U))):Y()),Q.keepError||(Zn(n.errors,U),g.isValid&&E()),v.state.next({...n}))},jt=(U,Q={})=>{const de=U?tr(U):s,je=tr(de),be=Pr(U),Ee=be?s:je;if(Q.keepDefaultValues||(s=de),!Q.keepValues){if(Q.keepDirtyValues){const Ye=new Set([...d.mount,...Object.keys(Gc(s,l))]);for(const st of Array.from(Ye))Ae(n.dirtyFields,st)?Yt(Ee,st,Ae(l,st)):k(st,Ae(Ee,st))}else{if(G1&&Tn(U))for(const Ye of d.mount){const st=Ae(r,Ye);if(st&&st._f){const ot=Array.isArray(st._f.refs)?st._f.refs[0]:st._f.ref;if(Mp(ot)){const mn=ot.closest("form");if(mn){mn.reset();break}}}}if(Q.keepFieldsRef)for(const Ye of d.mount)k(Ye,Ae(Ee,Ye));else r={}}l=t.shouldUnregister?Q.keepDefaultValues?tr(s):{}:tr(Ee),v.array.next({values:{...Ee}}),v.state.next({values:{...Ee}})}d={mount:Q.keepDirtyValues?d.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},c.mount=!g.isValid||!!Q.keepIsValid||!!Q.keepDirtyValues||!t.shouldUnregister&&!Pr(Ee),c.watch=!!t.shouldUnregister,v.state.next({submitCount:Q.keepSubmitCount?n.submitCount:0,isDirty:be?!1:Q.keepDirty?n.isDirty:!!(Q.keepDefaultValues&&!cs(U,s)),isSubmitted:Q.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:be?{}:Q.keepDirtyValues?Q.keepDefaultValues&&l?Gc(s,l):n.dirtyFields:Q.keepDefaultValues&&U?Gc(s,U):Q.keepDirty?n.dirtyFields:{},touchedFields:Q.keepTouched?n.touchedFields:{},errors:Q.keepErrors?n.errors:{},isSubmitSuccessful:Q.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:s})},Bt=(U,Q)=>jt(us(U)?U(l):U,Q),xn=(U,Q={})=>{const de=Ae(r,U),je=de&&de._f;if(je){const be=je.refs?je.refs[0]:je.ref;be.focus&&(be.focus(),Q.shouldSelect&&us(be.select)&&be.select())}},jr=U=>{n={...n,...U}},Fe={control:{register:we,unregister:le,getFieldState:L,handleSubmit:We,setError:q,_subscribe:ue,_runSchema:j,_focusError:_e,_getWatch:Z,_getDirty:Y,_setValid:E,_setFieldArray:R,_setDisabledField:Ne,_setErrors:_,_getFieldArray:ee,_reset:jt,_resetDefaultValues:()=>us(t.defaultValues)&&t.defaultValues().then(U=>{Bt(U,t.resetOptions),v.state.next({isLoading:!1})}),_removeUnmounted:G,_disableForm:He,_subjects:v,_proxyFormState:g,get _fields(){return r},get _formValues(){return l},get _state(){return c},set _state(U){c=U},get _defaultValues(){return s},get _names(){return d},set _names(U){d=U},get _formState(){return n},get _options(){return t},set _options(U){t={...t,...U}}},subscribe:ve,trigger:ie,register:we,handleSubmit:We,watch:te,setValue:k,getValues:xe,reset:Bt,resetField:Ft,clearErrors:P,unregister:le,setError:q,setFocus:xn,getFieldState:L};return{...Fe,formControl:Fe}}function Gi(e={}){const t=ye.useRef(void 0),n=ye.useRef(void 0),[r,s]=ye.useState({isDirty:!1,isValidating:!1,isLoading:us(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:us(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:r},e.defaultValues&&!us(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:c,...d}=hQ(e);t.current={...d,formState:r}}const l=t.current.control;return l._options=e,Y1(()=>{const c=l._subscribe({formState:l._proxyFormState,callback:()=>s({...l._formState}),reRenderRoot:!0});return s(d=>({...d,isReady:!0})),l._formState.isReady=!0,c},[l]),ye.useEffect(()=>l._disableForm(e.disabled),[l,e.disabled]),ye.useEffect(()=>{e.mode&&(l._options.mode=e.mode),e.reValidateMode&&(l._options.reValidateMode=e.reValidateMode)},[l,e.mode,e.reValidateMode]),ye.useEffect(()=>{e.errors&&(l._setErrors(e.errors),l._focusError())},[l,e.errors]),ye.useEffect(()=>{e.shouldUnregister&&l._subjects.state.next({values:l._getWatch()})},[l,e.shouldUnregister]),ye.useEffect(()=>{if(l._proxyFormState.isDirty){const c=l._getDirty();c!==r.isDirty&&l._subjects.state.next({isDirty:c})}},[l,r.isDirty]),ye.useEffect(()=>{e.values&&!cs(e.values,n.current)?(l._reset(e.values,{keepFieldsRef:!0,...l._options.resetOptions}),n.current=e.values,s(c=>({...c}))):l._resetDefaultValues()},[l,e.values]),ye.useEffect(()=>{l._state.mount||(l._setValid(),l._state.mount=!0),l._state.watch&&(l._state.watch=!1,l._subjects.state.next({...l._formState})),l._removeUnmounted()}),t.current.formState=I3(r,l),t.current}var mQ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pQ=mQ.reduce((e,t)=>{const n=jb(`Primitive.${t}`),r=p.forwardRef((s,l)=>{const{asChild:c,...d}=s,f=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),o.jsx(f,{...d,ref:l})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),gQ="Label",$3=p.forwardRef((e,t)=>o.jsx(pQ.label,{...e,ref:t,onMouseDown:n=>{var s;n.target.closest("button, input, select, textarea")||((s=e.onMouseDown)==null||s.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));$3.displayName=gQ;var yQ=$3;function Ca({className:e,...t}){return o.jsx(yQ,{"data-slot":"label",className:ne("flex items-center gap-2 text-sm leading-none font-medium group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}const Wl=M3,H3=p.createContext({}),en=({...e})=>o.jsx(H3.Provider,{value:{name:e.name},children:o.jsx(JW,{...e})}),Yf=()=>{const e=p.useContext(H3),t=p.useContext(B3),{getFieldState:n}=ku(),r=k3({name:e.name}),s=n(e.name,r);if(!e)throw new Error("useFormField should be used within <FormField>");const{id:l}=t;return{id:l,name:e.name,formItemId:`${l}-form-item`,formDescriptionId:`${l}-form-item-description`,formMessageId:`${l}-form-item-message`,...s}},B3=p.createContext({});function Vt({className:e="",...t}){const n=p.useId();return o.jsx(B3.Provider,{value:{id:n},children:o.jsx("div",{"data-slot":"form-item",className:ne("group border-border flex flex-col gap-2 rounded-md border-b bg-white px-4 py-3 transition-shadow duration-200 hover:shadow-sm dark:border-transparent dark:bg-white/4",e),...t})})}function $t({className:e="",tooltip:t,tooltipProps:n,children:r,...s}){const{error:l,formItemId:c}=Yf();return o.jsxs(Ca,{"data-slot":"form-label","data-error":!!l,className:ne("text-foreground flex items-center justify-between gap-2 text-sm font-medium","data-[error=true]:text-destructive",e),htmlFor:c,...s,children:[o.jsx("span",{children:r}),t&&o.jsxs(St,{...n,children:[o.jsx(Ct,{asChild:!0,children:o.jsx("button",{type:"button",tabIndex:-1,className:"pointer-events-none opacity-0 transition group-hover:pointer-events-auto group-hover:opacity-100","aria-label":"Help information",children:o.jsx(zr,{className:"text-muted-foreground/50 hover:text-muted-foreground size-4 shrink-0 transition-colors","aria-hidden":"true"})})}),o.jsx(Et,{side:"top",align:"center",role:"tooltip",children:t})]})]})}function Ht({...e}){const{error:t,formItemId:n,formDescriptionId:r,formMessageId:s}=Yf();return o.jsx(Yp,{"data-slot":"form-control",id:n,"aria-describedby":t?`${r} ${s}`:`${r}`,"aria-invalid":!!t,...e})}function Pn({className:e,...t}){const{formDescriptionId:n}=Yf();return o.jsx("div",{"data-slot":"form-description",id:n,className:ne("text-muted-foreground text-sm",e),...t})}function on({className:e,...t}){const{error:n,formMessageId:r}=Yf(),s=n?String((n==null?void 0:n.message)??""):t.children;return s?o.jsx("p",{"data-slot":"form-message",id:r,className:ne("text-destructive text-sm",e),...t,children:s}):null}function Ql({children:e,className:t="",variant:n="default"}){const r=n==="light"?"flex-1 overflow-y-auto":"bg-muted dark:bg-sidebar flex-1 overflow-y-auto p-4";return o.jsx("div",{className:r,children:o.jsx("div",{className:ne("flex min-h-full flex-col gap-4",t),children:e})})}function Xl({className:e="",children:t,variant:n="default"}){const r=n==="light"?"flex flex-col gap-1.5 pt-4":"flex flex-col gap-1.5 border-t px-4 py-3";return o.jsx("div",{className:ne(r,e),children:t})}function Hs({title:e,children:t}){return o.jsxs("section",{className:"mb-4",children:[e&&o.jsx("h3",{className:"text-muted-foreground/75 mb-2 text-xs font-semibold tracking-wide uppercase",children:e}),o.jsx("div",{className:"flex flex-col gap-2",children:t})]})}function vQ({value:e,label:t,checked:n,onChange:r,disabled:s=!1,orientation:l="vertical",className:c=""}){const{formItemId:d}=Yf();return o.jsxs("label",{htmlFor:`${d}-${e}`,className:ne("flex cursor-pointer items-center gap-2 rounded-md py-1 pr-4 pl-2 text-sm",s&&"cursor-not-allowed opacity-50",l==="horizontal"?"flex-row":"flex-col",n?"bg-muted border-input border-b":"hover:bg-muted border-border bg-transparent",c),children:[o.jsx("input",{type:"radio",id:`${d}-${e}`,value:e,checked:n,onChange:r,disabled:s,className:ne("peer border-input ring-offset-background h-4 w-4 rounded-full border","checked:bg-primary checked:border-primary","focus-visible:ring-ring focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50")}),o.jsx("span",{className:ne("peer-disabled:cursor-not-allowed peer-disabled:opacity-50"),children:t})]})}function xQ({options:e,value:t,onChange:n,orientation:r="vertical",className:s=""}){return o.jsx("div",{tabIndex:-1,className:ne(r==="horizontal"?"flex gap-6":"flex flex-col gap-2","border-input rounded-md border bg-transparent px-1 py-1 transition-colors","focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]","text-foreground selection:bg-primary selection:text-primary-foreground","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40","disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",s),children:e.map(l=>o.jsx(vQ,{value:l.value,label:l.label,checked:t===l.value,onChange:c=>n(c.target.value),disabled:l.disabled,orientation:r},l.value))})}const qi=p.forwardRef(({children:e,className:t="",...n},r)=>o.jsx("form",{ref:r,className:ne("flex flex-1 flex-col overflow-hidden",t),...n,children:e}));qi.displayName="AppForm";function VT(e,[t,n]){return Math.min(n,Math.max(t,e))}function Z0(e){const t=bQ(e),n=p.forwardRef((r,s)=>{const{children:l,...c}=r,d=p.Children.toArray(l),f=d.find(CQ);if(f){const h=f.props.children,g=d.map(y=>y===f?p.Children.count(h)>1?p.Children.only(null):p.isValidElement(h)?h.props.children:null:y);return o.jsx(t,{...c,ref:s,children:p.isValidElement(h)?p.cloneElement(h,void 0,g):null})}return o.jsx(t,{...c,ref:s,children:l})});return n.displayName=`${e}.Slot`,n}function bQ(e){const t=p.forwardRef((n,r)=>{const{children:s,...l}=n;if(p.isValidElement(s)){const c=wQ(s),d=EQ(l,s.props);return s.type!==p.Fragment&&(d.ref=r?Ir(r,c):c),p.cloneElement(s,d)}return p.Children.count(s)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var SQ=Symbol("radix.slottable");function CQ(e){return p.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===SQ}function EQ(e,t){const n={...t};for(const r in t){const s=e[r],l=t[r];/^on[A-Z]/.test(r)?s&&l?n[r]=(...d)=>{const f=l(...d);return s(...d),f}:s&&(n[r]=s):r==="style"?n[r]={...s,...l}:r==="className"&&(n[r]=[s,l].filter(Boolean).join(" "))}return{...e,...n}}function wQ(e){var r,s;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(s=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function RQ(e){const t=e+"CollectionProvider",[n,r]=ir(t),[s,l]=n(t,{collectionRef:{current:null},itemMap:new Map}),c=E=>{const{scope:S,children:R}=E,T=ye.useRef(null),_=ye.useRef(new Map).current;return o.jsx(s,{scope:S,itemMap:_,collectionRef:T,children:R})};c.displayName=t;const d=e+"CollectionSlot",f=Z0(d),h=ye.forwardRef((E,S)=>{const{scope:R,children:T}=E,_=l(d,R),D=ut(S,_.collectionRef);return o.jsx(f,{ref:D,children:T})});h.displayName=d;const g=e+"CollectionItemSlot",y="data-radix-collection-item",v=Z0(g),b=ye.forwardRef((E,S)=>{const{scope:R,children:T,..._}=E,D=ye.useRef(null),A=ut(S,D),O=l(g,R);return ye.useEffect(()=>(O.itemMap.set(D,{ref:D,..._}),()=>void O.itemMap.delete(D))),o.jsx(v,{[y]:"",ref:A,children:T})});b.displayName=g;function w(E){const S=l(e+"CollectionConsumer",E);return ye.useCallback(()=>{const T=S.collectionRef.current;if(!T)return[];const _=Array.from(T.querySelectorAll(`[${y}]`));return Array.from(S.itemMap.values()).sort((O,j)=>_.indexOf(O.ref.current)-_.indexOf(j.ref.current))},[S.collectionRef,S.itemMap])}return[{Provider:c,Slot:h,ItemSlot:b},w,r]}function J1(e){const t=p.useRef({value:e,previous:e});return p.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var TQ=[" ","Enter","ArrowUp","ArrowDown"],jQ=[" ","Enter"],Ul="Select",[Og,Mg,_Q]=RQ(Ul),[Lu]=ir(Ul,[_Q,Zs]),Ig=Zs(),[NQ,Zi]=Lu(Ul),[AQ,DQ]=Lu(Ul),G3=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:s,onOpenChange:l,value:c,defaultValue:d,onValueChange:f,dir:h,name:g,autoComplete:y,disabled:v,required:b,form:w}=e,E=Ig(t),[S,R]=p.useState(null),[T,_]=p.useState(null),[D,A]=p.useState(!1),O=If(h),[j,M]=Vr({prop:r,defaultProp:s??!1,onChange:l,caller:Ul}),[F,G]=Vr({prop:c,defaultProp:d,onChange:f,caller:Ul}),Y=p.useRef(null),Z=S?w||!!S.closest("form"):!0,[ee,$]=p.useState(new Set),W=Array.from(ee).map(k=>k.props.value).join(";");return o.jsx(wu,{...E,children:o.jsxs(NQ,{required:b,scope:t,trigger:S,onTriggerChange:R,valueNode:T,onValueNodeChange:_,valueNodeHasChildren:D,onValueNodeHasChildrenChange:A,contentId:Nn(),value:F,onValueChange:G,open:j,onOpenChange:M,dir:O,triggerPointerDownPosRef:Y,disabled:v,children:[o.jsx(Og.Provider,{scope:t,children:o.jsx(AQ,{scope:e.__scopeSelect,onNativeOptionAdd:p.useCallback(k=>{$(H=>new Set(H).add(k))},[]),onNativeOptionRemove:p.useCallback(k=>{$(H=>{const B=new Set(H);return B.delete(k),B})},[]),children:n})}),Z?o.jsxs(pD,{"aria-hidden":!0,required:b,tabIndex:-1,name:g,autoComplete:y,value:F,onChange:k=>G(k.target.value),disabled:v,form:w,children:[F===void 0?o.jsx("option",{value:""}):null,Array.from(ee)]},W):null]})})};G3.displayName=Ul;var q3="SelectTrigger",Z3=p.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...s}=e,l=Ig(n),c=Zi(q3,n),d=c.disabled||r,f=ut(t,c.onTriggerChange),h=Mg(n),g=p.useRef("touch"),[y,v,b]=yD(E=>{const S=h().filter(_=>!_.disabled),R=S.find(_=>_.value===c.value),T=vD(S,E,R);T!==void 0&&c.onValueChange(T.value)}),w=E=>{d||(c.onOpenChange(!0),b()),E&&(c.triggerPointerDownPosRef.current={x:Math.round(E.pageX),y:Math.round(E.pageY)})};return o.jsx(Ru,{asChild:!0,...l,children:o.jsx(Je.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:d,"data-disabled":d?"":void 0,"data-placeholder":gD(c.value)?"":void 0,...s,ref:f,onClick:Te(s.onClick,E=>{E.currentTarget.focus(),g.current!=="mouse"&&w(E)}),onPointerDown:Te(s.onPointerDown,E=>{g.current=E.pointerType;const S=E.target;S.hasPointerCapture(E.pointerId)&&S.releasePointerCapture(E.pointerId),E.button===0&&E.ctrlKey===!1&&E.pointerType==="mouse"&&(w(E),E.preventDefault())}),onKeyDown:Te(s.onKeyDown,E=>{const S=y.current!=="";!(E.ctrlKey||E.altKey||E.metaKey)&&E.key.length===1&&v(E.key),!(S&&E.key===" ")&&TQ.includes(E.key)&&(w(),E.preventDefault())})})})});Z3.displayName=q3;var K3="SelectValue",Y3=p.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:s,children:l,placeholder:c="",...d}=e,f=Zi(K3,n),{onValueNodeHasChildrenChange:h}=f,g=l!==void 0,y=ut(t,f.onValueNodeChange);return Cr(()=>{h(g)},[h,g]),o.jsx(Je.span,{...d,ref:y,style:{pointerEvents:"none"},children:gD(f.value)?o.jsx(o.Fragment,{children:c}):l})});Y3.displayName=K3;var OQ="SelectIcon",W3=p.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...s}=e;return o.jsx(Je.span,{"aria-hidden":!0,...s,ref:t,children:r||"▼"})});W3.displayName=OQ;var MQ="SelectPortal",Q3=e=>o.jsx(Bl,{asChild:!0,...e});Q3.displayName=MQ;var Fl="SelectContent",X3=p.forwardRef((e,t)=>{const n=Zi(Fl,e.__scopeSelect),[r,s]=p.useState();if(Cr(()=>{s(new DocumentFragment)},[]),!n.open){const l=r;return l?ds.createPortal(o.jsx(J3,{scope:e.__scopeSelect,children:o.jsx(Og.Slot,{scope:e.__scopeSelect,children:o.jsx("div",{children:e.children})})}),l):null}return o.jsx(eD,{...e,ref:t})});X3.displayName=Fl;var as=10,[J3,Ki]=Lu(Fl),IQ="SelectContentImpl",kQ=Z0("SelectContent.RemoveScroll"),eD=p.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:s,onEscapeKeyDown:l,onPointerDownOutside:c,side:d,sideOffset:f,align:h,alignOffset:g,arrowPadding:y,collisionBoundary:v,collisionPadding:b,sticky:w,hideWhenDetached:E,avoidCollisions:S,...R}=e,T=Zi(Fl,n),[_,D]=p.useState(null),[A,O]=p.useState(null),j=ut(t,le=>D(le)),[M,F]=p.useState(null),[G,Y]=p.useState(null),Z=Mg(n),[ee,$]=p.useState(!1),W=p.useRef(!1);p.useEffect(()=>{if(_)return eg(_)},[_]),Xp();const k=p.useCallback(le=>{const[Ne,...we]=Z().map(We=>We.ref.current),[_e]=we.slice(-1),He=document.activeElement;for(const We of le)if(We===He||(We==null||We.scrollIntoView({block:"nearest"}),We===Ne&&A&&(A.scrollTop=0),We===_e&&A&&(A.scrollTop=A.scrollHeight),We==null||We.focus(),document.activeElement!==He))return},[Z,A]),H=p.useCallback(()=>k([M,_]),[k,M,_]);p.useEffect(()=>{ee&&H()},[ee,H]);const{onOpenChange:B,triggerPointerDownPosRef:ie}=T;p.useEffect(()=>{if(_){let le={x:0,y:0};const Ne=_e=>{var He,We;le={x:Math.abs(Math.round(_e.pageX)-(((He=ie.current)==null?void 0:He.x)??0)),y:Math.abs(Math.round(_e.pageY)-(((We=ie.current)==null?void 0:We.y)??0))}},we=_e=>{le.x<=10&&le.y<=10?_e.preventDefault():_.contains(_e.target)||B(!1),document.removeEventListener("pointermove",Ne),ie.current=null};return ie.current!==null&&(document.addEventListener("pointermove",Ne),document.addEventListener("pointerup",we,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",Ne),document.removeEventListener("pointerup",we,{capture:!0})}}},[_,B,ie]),p.useEffect(()=>{const le=()=>B(!1);return window.addEventListener("blur",le),window.addEventListener("resize",le),()=>{window.removeEventListener("blur",le),window.removeEventListener("resize",le)}},[B]);const[xe,L]=yD(le=>{const Ne=Z().filter(He=>!He.disabled),we=Ne.find(He=>He.ref.current===document.activeElement),_e=vD(Ne,le,we);_e&&setTimeout(()=>_e.ref.current.focus())}),P=p.useCallback((le,Ne,we)=>{const _e=!W.current&&!we;(T.value!==void 0&&T.value===Ne||_e)&&(F(le),_e&&(W.current=!0))},[T.value]),q=p.useCallback(()=>_==null?void 0:_.focus(),[_]),te=p.useCallback((le,Ne,we)=>{const _e=!W.current&&!we;(T.value!==void 0&&T.value===Ne||_e)&&Y(le)},[T.value]),ue=r==="popper"?K0:tD,ve=ue===K0?{side:d,sideOffset:f,align:h,alignOffset:g,arrowPadding:y,collisionBoundary:v,collisionPadding:b,sticky:w,hideWhenDetached:E,avoidCollisions:S}:{};return o.jsx(J3,{scope:n,content:_,viewport:A,onViewportChange:O,itemRefCallback:P,selectedItem:M,onItemLeave:q,itemTextRefCallback:te,focusSelectedItem:H,selectedItemText:G,position:r,isPositioned:ee,searchRef:xe,children:o.jsx(_f,{as:kQ,allowPinchZoom:!0,children:o.jsx(jf,{asChild:!0,trapped:T.open,onMountAutoFocus:le=>{le.preventDefault()},onUnmountAutoFocus:Te(s,le=>{var Ne;(Ne=T.trigger)==null||Ne.focus({preventScroll:!0}),le.preventDefault()}),children:o.jsx(Hl,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:le=>le.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:o.jsx(ue,{role:"listbox",id:T.contentId,"data-state":T.open?"open":"closed",dir:T.dir,onContextMenu:le=>le.preventDefault(),...R,...ve,onPlaced:()=>$(!0),ref:j,style:{display:"flex",flexDirection:"column",outline:"none",...R.style},onKeyDown:Te(R.onKeyDown,le=>{const Ne=le.ctrlKey||le.altKey||le.metaKey;if(le.key==="Tab"&&le.preventDefault(),!Ne&&le.key.length===1&&L(le.key),["ArrowUp","ArrowDown","Home","End"].includes(le.key)){let _e=Z().filter(He=>!He.disabled).map(He=>He.ref.current);if(["ArrowUp","End"].includes(le.key)&&(_e=_e.slice().reverse()),["ArrowUp","ArrowDown"].includes(le.key)){const He=le.target,We=_e.indexOf(He);_e=_e.slice(We+1)}setTimeout(()=>k(_e)),le.preventDefault()}})})})})})})});eD.displayName=IQ;var LQ="SelectItemAlignedPosition",tD=p.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...s}=e,l=Zi(Fl,n),c=Ki(Fl,n),[d,f]=p.useState(null),[h,g]=p.useState(null),y=ut(t,j=>g(j)),v=Mg(n),b=p.useRef(!1),w=p.useRef(!0),{viewport:E,selectedItem:S,selectedItemText:R,focusSelectedItem:T}=c,_=p.useCallback(()=>{if(l.trigger&&l.valueNode&&d&&h&&E&&S&&R){const j=l.trigger.getBoundingClientRect(),M=h.getBoundingClientRect(),F=l.valueNode.getBoundingClientRect(),G=R.getBoundingClientRect();if(l.dir!=="rtl"){const He=G.left-M.left,We=F.left-He,Ft=j.left-We,jt=j.width+Ft,Bt=Math.max(jt,M.width),xn=window.innerWidth-as,jr=VT(We,[as,Math.max(as,xn-Bt)]);d.style.minWidth=jt+"px",d.style.left=jr+"px"}else{const He=M.right-G.right,We=window.innerWidth-F.right-He,Ft=window.innerWidth-j.right-We,jt=j.width+Ft,Bt=Math.max(jt,M.width),xn=window.innerWidth-as,jr=VT(We,[as,Math.max(as,xn-Bt)]);d.style.minWidth=jt+"px",d.style.right=jr+"px"}const Y=v(),Z=window.innerHeight-as*2,ee=E.scrollHeight,$=window.getComputedStyle(h),W=parseInt($.borderTopWidth,10),k=parseInt($.paddingTop,10),H=parseInt($.borderBottomWidth,10),B=parseInt($.paddingBottom,10),ie=W+k+ee+B+H,xe=Math.min(S.offsetHeight*5,ie),L=window.getComputedStyle(E),P=parseInt(L.paddingTop,10),q=parseInt(L.paddingBottom,10),te=j.top+j.height/2-as,ue=Z-te,ve=S.offsetHeight/2,le=S.offsetTop+ve,Ne=W+k+le,we=ie-Ne;if(Ne<=te){const He=Y.length>0&&S===Y[Y.length-1].ref.current;d.style.bottom="0px";const We=h.clientHeight-E.offsetTop-E.offsetHeight,Ft=Math.max(ue,ve+(He?q:0)+We+H),jt=Ne+Ft;d.style.height=jt+"px"}else{const He=Y.length>0&&S===Y[0].ref.current;d.style.top="0px";const Ft=Math.max(te,W+E.offsetTop+(He?P:0)+ve)+we;d.style.height=Ft+"px",E.scrollTop=Ne-te+E.offsetTop}d.style.margin=`${as}px 0`,d.style.minHeight=xe+"px",d.style.maxHeight=Z+"px",r==null||r(),requestAnimationFrame(()=>b.current=!0)}},[v,l.trigger,l.valueNode,d,h,E,S,R,l.dir,r]);Cr(()=>_(),[_]);const[D,A]=p.useState();Cr(()=>{h&&A(window.getComputedStyle(h).zIndex)},[h]);const O=p.useCallback(j=>{j&&w.current===!0&&(_(),T==null||T(),w.current=!1)},[_,T]);return o.jsx(UQ,{scope:n,contentWrapper:d,shouldExpandOnScrollRef:b,onScrollButtonChange:O,children:o.jsx("div",{ref:f,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:D},children:o.jsx(Je.div,{...s,ref:y,style:{boxSizing:"border-box",maxHeight:"100%",...s.style}})})})});tD.displayName=LQ;var PQ="SelectPopperPosition",K0=p.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:s=as,...l}=e,c=Ig(n);return o.jsx(Af,{...c,...l,ref:t,align:r,collisionPadding:s,style:{boxSizing:"border-box",...l.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});K0.displayName=PQ;var[UQ,eS]=Lu(Fl,{}),Y0="SelectViewport",nD=p.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...s}=e,l=Ki(Y0,n),c=eS(Y0,n),d=ut(t,l.onViewportChange),f=p.useRef(0);return o.jsxs(o.Fragment,{children:[o.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),o.jsx(Og.Slot,{scope:n,children:o.jsx(Je.div,{"data-radix-select-viewport":"",role:"presentation",...s,ref:d,style:{position:"relative",flex:1,overflow:"hidden auto",...s.style},onScroll:Te(s.onScroll,h=>{const g=h.currentTarget,{contentWrapper:y,shouldExpandOnScrollRef:v}=c;if(v!=null&&v.current&&y){const b=Math.abs(f.current-g.scrollTop);if(b>0){const w=window.innerHeight-as*2,E=parseFloat(y.style.minHeight),S=parseFloat(y.style.height),R=Math.max(E,S);if(R<w){const T=R+b,_=Math.min(w,T),D=T-_;y.style.height=_+"px",y.style.bottom==="0px"&&(g.scrollTop=D>0?D:0,y.style.justifyContent="flex-end")}}}f.current=g.scrollTop})})})]})});nD.displayName=Y0;var rD="SelectGroup",[FQ,zQ]=Lu(rD),aD=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,s=Nn();return o.jsx(FQ,{scope:n,id:s,children:o.jsx(Je.div,{role:"group","aria-labelledby":s,...r,ref:t})})});aD.displayName=rD;var sD="SelectLabel",VQ=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,s=zQ(sD,n);return o.jsx(Je.div,{id:s.id,...r,ref:t})});VQ.displayName=sD;var kp="SelectItem",[$Q,oD]=Lu(kp),iD=p.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:s=!1,textValue:l,...c}=e,d=Zi(kp,n),f=Ki(kp,n),h=d.value===r,[g,y]=p.useState(l??""),[v,b]=p.useState(!1),w=ut(t,T=>{var _;return(_=f.itemRefCallback)==null?void 0:_.call(f,T,r,s)}),E=Nn(),S=p.useRef("touch"),R=()=>{s||(d.onValueChange(r),d.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return o.jsx($Q,{scope:n,value:r,disabled:s,textId:E,isSelected:h,onItemTextChange:p.useCallback(T=>{y(_=>_||((T==null?void 0:T.textContent)??"").trim())},[]),children:o.jsx(Og.ItemSlot,{scope:n,value:r,disabled:s,textValue:g,children:o.jsx(Je.div,{role:"option","aria-labelledby":E,"data-highlighted":v?"":void 0,"aria-selected":h&&v,"data-state":h?"checked":"unchecked","aria-disabled":s||void 0,"data-disabled":s?"":void 0,tabIndex:s?void 0:-1,...c,ref:w,onFocus:Te(c.onFocus,()=>b(!0)),onBlur:Te(c.onBlur,()=>b(!1)),onClick:Te(c.onClick,()=>{S.current!=="mouse"&&R()}),onPointerUp:Te(c.onPointerUp,()=>{S.current==="mouse"&&R()}),onPointerDown:Te(c.onPointerDown,T=>{S.current=T.pointerType}),onPointerMove:Te(c.onPointerMove,T=>{var _;S.current=T.pointerType,s?(_=f.onItemLeave)==null||_.call(f):S.current==="mouse"&&T.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Te(c.onPointerLeave,T=>{var _;T.currentTarget===document.activeElement&&((_=f.onItemLeave)==null||_.call(f))}),onKeyDown:Te(c.onKeyDown,T=>{var D;((D=f.searchRef)==null?void 0:D.current)!==""&&T.key===" "||(jQ.includes(T.key)&&R(),T.key===" "&&T.preventDefault())})})})})});iD.displayName=kp;var qd="SelectItemText",lD=p.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:s,...l}=e,c=Zi(qd,n),d=Ki(qd,n),f=oD(qd,n),h=DQ(qd,n),[g,y]=p.useState(null),v=ut(t,R=>y(R),f.onItemTextChange,R=>{var T;return(T=d.itemTextRefCallback)==null?void 0:T.call(d,R,f.value,f.disabled)}),b=g==null?void 0:g.textContent,w=p.useMemo(()=>o.jsx("option",{value:f.value,disabled:f.disabled,children:b},f.value),[f.disabled,f.value,b]),{onNativeOptionAdd:E,onNativeOptionRemove:S}=h;return Cr(()=>(E(w),()=>S(w)),[E,S,w]),o.jsxs(o.Fragment,{children:[o.jsx(Je.span,{id:f.textId,...l,ref:v}),f.isSelected&&c.valueNode&&!c.valueNodeHasChildren?ds.createPortal(l.children,c.valueNode):null]})});lD.displayName=qd;var cD="SelectItemIndicator",uD=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return oD(cD,n).isSelected?o.jsx(Je.span,{"aria-hidden":!0,...r,ref:t}):null});uD.displayName=cD;var W0="SelectScrollUpButton",dD=p.forwardRef((e,t)=>{const n=Ki(W0,e.__scopeSelect),r=eS(W0,e.__scopeSelect),[s,l]=p.useState(!1),c=ut(t,r.onScrollButtonChange);return Cr(()=>{if(n.viewport&&n.isPositioned){let d=function(){const h=f.scrollTop>0;l(h)};const f=n.viewport;return d(),f.addEventListener("scroll",d),()=>f.removeEventListener("scroll",d)}},[n.viewport,n.isPositioned]),s?o.jsx(hD,{...e,ref:c,onAutoScroll:()=>{const{viewport:d,selectedItem:f}=n;d&&f&&(d.scrollTop=d.scrollTop-f.offsetHeight)}}):null});dD.displayName=W0;var Q0="SelectScrollDownButton",fD=p.forwardRef((e,t)=>{const n=Ki(Q0,e.__scopeSelect),r=eS(Q0,e.__scopeSelect),[s,l]=p.useState(!1),c=ut(t,r.onScrollButtonChange);return Cr(()=>{if(n.viewport&&n.isPositioned){let d=function(){const h=f.scrollHeight-f.clientHeight,g=Math.ceil(f.scrollTop)<h;l(g)};const f=n.viewport;return d(),f.addEventListener("scroll",d),()=>f.removeEventListener("scroll",d)}},[n.viewport,n.isPositioned]),s?o.jsx(hD,{...e,ref:c,onAutoScroll:()=>{const{viewport:d,selectedItem:f}=n;d&&f&&(d.scrollTop=d.scrollTop+f.offsetHeight)}}):null});fD.displayName=Q0;var hD=p.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...s}=e,l=Ki("SelectScrollButton",n),c=p.useRef(null),d=Mg(n),f=p.useCallback(()=>{c.current!==null&&(window.clearInterval(c.current),c.current=null)},[]);return p.useEffect(()=>()=>f(),[f]),Cr(()=>{var g;const h=d().find(y=>y.ref.current===document.activeElement);(g=h==null?void 0:h.ref.current)==null||g.scrollIntoView({block:"nearest"})},[d]),o.jsx(Je.div,{"aria-hidden":!0,...s,ref:t,style:{flexShrink:0,...s.style},onPointerDown:Te(s.onPointerDown,()=>{c.current===null&&(c.current=window.setInterval(r,50))}),onPointerMove:Te(s.onPointerMove,()=>{var h;(h=l.onItemLeave)==null||h.call(l),c.current===null&&(c.current=window.setInterval(r,50))}),onPointerLeave:Te(s.onPointerLeave,()=>{f()})})}),HQ="SelectSeparator",mD=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return o.jsx(Je.div,{"aria-hidden":!0,...r,ref:t})});mD.displayName=HQ;var X0="SelectArrow",BQ=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,s=Ig(n),l=Zi(X0,n),c=Ki(X0,n);return l.open&&c.position==="popper"?o.jsx(Df,{...s,...r,ref:t}):null});BQ.displayName=X0;var GQ="SelectBubbleInput",pD=p.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const s=p.useRef(null),l=ut(r,s),c=J1(t);return p.useEffect(()=>{const d=s.current;if(!d)return;const f=window.HTMLSelectElement.prototype,g=Object.getOwnPropertyDescriptor(f,"value").set;if(c!==t&&g){const y=new Event("change",{bubbles:!0});g.call(d,t),d.dispatchEvent(y)}},[c,t]),o.jsx(Je.select,{...n,style:{...RN,...n.style},ref:l,defaultValue:t})});pD.displayName=GQ;function gD(e){return e===""||e===void 0}function yD(e){const t=ms(e),n=p.useRef(""),r=p.useRef(0),s=p.useCallback(c=>{const d=n.current+c;t(d),(function f(h){n.current=h,window.clearTimeout(r.current),h!==""&&(r.current=window.setTimeout(()=>f(""),1e3))})(d)},[t]),l=p.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,s,l]}function vD(e,t,n){const s=t.length>1&&Array.from(t).every(h=>h===t[0])?t[0]:t,l=n?e.indexOf(n):-1;let c=qQ(e,Math.max(l,0));s.length===1&&(c=c.filter(h=>h!==n));const f=c.find(h=>h.textValue.toLowerCase().startsWith(s.toLowerCase()));return f!==n?f:void 0}function qQ(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var ZQ=G3,KQ=Z3,YQ=Y3,WQ=W3,QQ=Q3,XQ=X3,JQ=nD,eX=aD,tX=iD,nX=lD,rX=uD,aX=dD,sX=fD,oX=mD;function Ea({...e}){return o.jsx(ZQ,{"data-slot":"select",...e})}function kg({...e}){return o.jsx(eX,{"data-slot":"select-group",...e})}function wa({...e}){return o.jsx(YQ,{"data-slot":"select-value",...e})}function Ra({className:e,size:t="default",children:n,...r}){return o.jsxs(KQ,{"data-slot":"select-trigger","data-size":t,className:ne("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...r,children:[n,o.jsx(WQ,{asChild:!0,children:o.jsx(Qa,{className:"size-4 opacity-50"})})]})}function Ta({className:e,children:t,position:n="popper",...r}){return o.jsx(QQ,{children:o.jsxs(XQ,{"data-slot":"select-content",className:ne("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...r,children:[o.jsx(lX,{}),o.jsx(JQ,{className:ne("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:t}),o.jsx(cX,{})]})})}function Yn({className:e,children:t,...n}){return o.jsxs(tX,{"data-slot":"select-item",className:ne("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...n,children:[o.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:o.jsx(rX,{children:o.jsx(fr,{className:"size-4"})})}),o.jsx(nX,{children:t})]})}function iX({className:e,...t}){return o.jsx(oX,{"data-slot":"select-separator",className:ne("bg-border pointer-events-none -mx-1 my-1 h-px",e),...t})}function lX({className:e,...t}){return o.jsx(aX,{"data-slot":"select-scroll-up-button",className:ne("flex cursor-default items-center justify-center py-1",e),...t,children:o.jsx(zs,{className:"size-4"})})}function cX({className:e,...t}){return o.jsx(sX,{"data-slot":"select-scroll-down-button",className:ne("flex cursor-default items-center justify-center py-1",e),...t,children:o.jsx(Qa,{className:"size-4"})})}const uX=an({title:sn().min(1,"Title is required").max(100,"Title must be less than 100 characters"),storageId:sn().min(1,"Storage is required")});function dX(){const{createDataMart:e,isLoading:t,error:n}=Fo();return{handleCreate:p.useCallback(async s=>{try{return await e(s)}catch(l){return console.error(l),null}},[e]),isSubmitting:t,serverError:n}}function fX(e){const{getDataMart:t,deleteDataMart:n,updateDataMartTitle:r,updateDataMartDescription:s,updateDataMartDefinition:l,updateDataMartSchema:c,actualizeDataMartSchema:d,publishDataMart:f,runDataMart:h,cancelDataMartRun:g,getDataMartRuns:y,loadMoreDataMartRuns:v,reset:b,dataMart:w,isLoading:E,error:S,getErrorMessage:R,runs:T}=Fo();return p.useEffect(()=>(e?t(e):b(),()=>{b()}),[e,t,b]),{dataMart:w,isLoading:E,error:S,getErrorMessage:R,deleteDataMart:n,updateDataMartTitle:r,updateDataMartDescription:s,updateDataMartDefinition:l,updateDataMartSchema:c,actualizeDataMartSchema:d,publishDataMart:f,runDataMart:h,cancelDataMartRun:g,getDataMartRuns:y,loadMoreDataMartRuns:v,runs:T,getDataMart:t}}const $T=(e,t,n)=>{if(e&&"reportValidity"in e){const r=Ae(n,t);e.setCustomValidity(r&&r.message||""),e.reportValidity()}},J0=(e,t)=>{for(const n in t.fields){const r=t.fields[n];r&&r.ref&&"reportValidity"in r.ref?$T(r.ref,n,e):r&&r.refs&&r.refs.forEach(s=>$T(s,n,e))}},HT=(e,t)=>{t.shouldUseNativeValidation&&J0(e,t);const n={};for(const r in e){const s=Ae(t.fields,r),l=Object.assign(e[r]||{},{ref:s&&s.ref});if(hX(t.names||Object.keys(e),r)){const c=Object.assign({},Ae(n,r));Yt(c,"root",l),Yt(n,r,c)}else Yt(n,r,l)}return n},hX=(e,t)=>{const n=BT(t);return e.some(r=>BT(r).match(`^${n}\\.\\d+`))};function BT(e){return e.replace(/\]|\[/g,"")}function xD(e,t,n){function r(d,f){var h;Object.defineProperty(d,"_zod",{value:d._zod??{},enumerable:!1}),(h=d._zod).traits??(h.traits=new Set),d._zod.traits.add(e),t(d,f);for(const g in c.prototype)g in d||Object.defineProperty(d,g,{value:c.prototype[g].bind(d)});d._zod.constr=c,d._zod.def=f}const s=(n==null?void 0:n.Parent)??Object;class l extends s{}Object.defineProperty(l,"name",{value:e});function c(d){var f;const h=n!=null&&n.Parent?new l:this;r(h,d),(f=h._zod).deferred??(f.deferred=[]);for(const g of h._zod.deferred)g();return h}return Object.defineProperty(c,"init",{value:r}),Object.defineProperty(c,Symbol.hasInstance,{value:d=>{var f,h;return n!=null&&n.Parent&&d instanceof n.Parent?!0:(h=(f=d==null?void 0:d._zod)==null?void 0:f.traits)==null?void 0:h.has(e)}}),Object.defineProperty(c,"name",{value:e}),c}class mX extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}const pX={};function bD(e){return pX}function gX(e,t){return typeof t=="bigint"?t.toString():t}const SD=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};function Mm(e){return typeof e=="string"?e:e==null?void 0:e.message}function CD(e,t,n){var s,l,c,d,f,h;const r={...e,path:e.path??[]};if(!e.message){const g=Mm((c=(l=(s=e.inst)==null?void 0:s._zod.def)==null?void 0:l.error)==null?void 0:c.call(l,e))??Mm((d=t==null?void 0:t.error)==null?void 0:d.call(t,e))??Mm((f=n.customError)==null?void 0:f.call(n,e))??Mm((h=n.localeError)==null?void 0:h.call(n,e))??"Invalid input";r.message=g}return delete r.inst,delete r.continue,t!=null&&t.reportInput||delete r.input,r}const ED=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,gX,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},yX=xD("$ZodError",ED),wD=xD("$ZodError",ED,{Parent:Error}),vX=e=>(t,n,r,s)=>{const l=r?Object.assign(r,{async:!1}):{async:!1},c=t._zod.run({value:n,issues:[]},l);if(c instanceof Promise)throw new mX;if(c.issues.length){const d=new((s==null?void 0:s.Err)??e)(c.issues.map(f=>CD(f,l,bD())));throw SD(d,s==null?void 0:s.callee),d}return c.value},xX=vX(wD),bX=e=>async(t,n,r,s)=>{const l=r?Object.assign(r,{async:!0}):{async:!0};let c=t._zod.run({value:n,issues:[]},l);if(c instanceof Promise&&(c=await c),c.issues.length){const d=new((s==null?void 0:s.Err)??e)(c.issues.map(f=>CD(f,l,bD())));throw SD(d,s==null?void 0:s.callee),d}return c.value},SX=bX(wD);function GT(e,t){try{var n=e()}catch(r){return t(r)}return n&&n.then?n.then(void 0,t):n}function CX(e,t){for(var n={};e.length;){var r=e[0],s=r.code,l=r.message,c=r.path.join(".");if(!n[c])if("unionErrors"in r){var d=r.unionErrors[0].errors[0];n[c]={message:d.message,type:d.code}}else n[c]={message:l,type:s};if("unionErrors"in r&&r.unionErrors.forEach(function(g){return g.errors.forEach(function(y){return e.push(y)})}),t){var f=n[c].types,h=f&&f[r.code];n[c]=W1(c,t,n,s,h?[].concat(h,r.message):r.message)}e.shift()}return n}function EX(e,t){for(var n={};e.length;){var r=e[0],s=r.code,l=r.message,c=r.path.join(".");if(!n[c])if(r.code==="invalid_union"&&r.errors.length>0){var d=r.errors[0][0];n[c]={message:d.message,type:d.code}}else n[c]={message:l,type:s};if(r.code==="invalid_union"&&r.errors.forEach(function(g){return g.forEach(function(y){return e.push(y)})}),t){var f=n[c].types,h=f&&f[r.code];n[c]=W1(c,t,n,s,h?[].concat(h,r.message):r.message)}e.shift()}return n}function Jl(e,t,n){if(n===void 0&&(n={}),(function(r){return"_def"in r&&typeof r._def=="object"&&"typeName"in r._def})(e))return function(r,s,l){try{return Promise.resolve(GT(function(){return Promise.resolve(e[n.mode==="sync"?"parse":"parseAsync"](r,t)).then(function(c){return l.shouldUseNativeValidation&&J0({},l),{errors:{},values:n.raw?Object.assign({},r):c}})},function(c){if((function(d){return Array.isArray(d==null?void 0:d.issues)})(c))return{values:{},errors:HT(CX(c.errors,!l.shouldUseNativeValidation&&l.criteriaMode==="all"),l)};throw c}))}catch(c){return Promise.reject(c)}};if((function(r){return"_zod"in r&&typeof r._zod=="object"})(e))return function(r,s,l){try{return Promise.resolve(GT(function(){return Promise.resolve((n.mode==="sync"?xX:SX)(e,r,t)).then(function(c){return l.shouldUseNativeValidation&&J0({},l),{errors:{},values:n.raw?Object.assign({},r):c}})},function(c){if((function(d){return d instanceof yX})(c))return{values:{},errors:HT(EX(c.issues,!l.shouldUseNativeValidation&&l.criteriaMode==="all"),l)};throw c}))}catch(c){return Promise.reject(c)}};throw new Error("Invalid input: not a Zod schema")}const RD=p.createContext(void 0);function wX(){const e=p.useContext(RD);if(e===void 0)throw new Error("useDataStorageContext must be used within a DataStorageProvider");return e}var Mt=(e=>(e.FETCH_STORAGES_START="FETCH_STORAGES_START",e.FETCH_STORAGES_SUCCESS="FETCH_STORAGES_SUCCESS",e.FETCH_STORAGES_ERROR="FETCH_STORAGES_ERROR",e.FETCH_STORAGE_START="FETCH_STORAGE_START",e.FETCH_STORAGE_SUCCESS="FETCH_STORAGE_SUCCESS",e.FETCH_STORAGE_ERROR="FETCH_STORAGE_ERROR",e.CLEAR_CURRENT_STORAGE="CLEAR_CURRENT_STORAGE",e.CREATE_STORAGE_START="CREATE_STORAGE_START",e.CREATE_STORAGE_SUCCESS="CREATE_STORAGE_SUCCESS",e.CREATE_STORAGE_ERROR="CREATE_STORAGE_ERROR",e.UPDATE_STORAGE_START="UPDATE_STORAGE_START",e.UPDATE_STORAGE_SUCCESS="UPDATE_STORAGE_SUCCESS",e.UPDATE_STORAGE_ERROR="UPDATE_STORAGE_ERROR",e.DELETE_STORAGE_START="DELETE_STORAGE_START",e.DELETE_STORAGE_SUCCESS="DELETE_STORAGE_SUCCESS",e.DELETE_STORAGE_ERROR="DELETE_STORAGE_ERROR",e.CLEAR_ERROR="CLEAR_ERROR",e))(Mt||{});const RX={dataStorages:[],currentDataStorage:null,loading:!1,error:null};function TX(e,t){switch(t.type){case Mt.FETCH_STORAGES_START:case Mt.FETCH_STORAGE_START:case Mt.CREATE_STORAGE_START:case Mt.UPDATE_STORAGE_START:return{...e,error:null};case Mt.DELETE_STORAGE_START:return{...e,loading:!0,error:null};case Mt.FETCH_STORAGES_SUCCESS:return{...e,dataStorages:t.payload,loading:!1,error:null};case Mt.FETCH_STORAGE_SUCCESS:return{...e,currentDataStorage:t.payload,loading:!1,error:null};case Mt.CREATE_STORAGE_SUCCESS:return{...e,dataStorages:[...e.dataStorages,t.payload],loading:!1,error:null};case Mt.UPDATE_STORAGE_SUCCESS:return{...e,currentDataStorage:t.payload,dataStorages:e.dataStorages.map(n=>n.id===t.payload.id?t.payload:n),loading:!1,error:null};case Mt.DELETE_STORAGE_SUCCESS:return{...e,dataStorages:e.dataStorages.filter(n=>n.id!==t.payload),loading:!1,error:null};case Mt.FETCH_STORAGES_ERROR:case Mt.FETCH_STORAGE_ERROR:case Mt.CREATE_STORAGE_ERROR:case Mt.UPDATE_STORAGE_ERROR:case Mt.DELETE_STORAGE_ERROR:return{...e,loading:!1,error:t.payload};case Mt.CLEAR_CURRENT_STORAGE:return{...e,currentDataStorage:null};case Mt.CLEAR_ERROR:return{...e,error:null};default:return e}}function tS({children:e}){const[t,n]=p.useReducer(TX,RX);return o.jsx(RD.Provider,{value:{state:t,dispatch:n},children:e})}class jX extends Zl{constructor(){super("/data-storages")}async getDataStorages(){return this.get("/")}async getDataStorageById(t){return this.get(`/${t}`)}async createDataStorage(t){return this.post("",t)}async updateDataStorage(t,n){return this.put(`/${t}`,n)}async deleteDataStorage(t){return this.delete(`/${t}`)}}const Ud=new jX;function Lg(){const{state:e,dispatch:t}=wX(),n=p.useCallback(async()=>{t({type:Mt.FETCH_STORAGES_START});try{const f=await Ud.getDataStorages();t({type:Mt.FETCH_STORAGES_SUCCESS,payload:f.map(AW)})}catch(f){throw t({type:Mt.FETCH_STORAGES_ERROR,payload:yn(f)}),f}},[t]),r=p.useCallback(async f=>{try{const h=await Ud.getDataStorageById(f),g=Xm(h);t({type:Mt.FETCH_STORAGE_SUCCESS,payload:g})}catch(h){throw t({type:Mt.FETCH_STORAGE_ERROR,payload:yn(h)}),h}},[t]),s=p.useCallback(async f=>{t({type:Mt.CREATE_STORAGE_START});try{const h=DW(f),g=await Ud.createDataStorage(h),y=Xm(g);return t({type:Mt.CREATE_STORAGE_SUCCESS,payload:y}),Pe({event:"data_storage_created",category:"DataStorage",action:"Create",label:y.type}),At.success("Storage created"),y}catch(h){return t({type:Mt.CREATE_STORAGE_ERROR,payload:yn(h)}),null}},[t]),l=p.useCallback(async(f,h)=>{t({type:Mt.UPDATE_STORAGE_START});try{const g=NW(h),y=await Ud.updateDataStorage(f,g),v=Xm(y);return t({type:Mt.UPDATE_STORAGE_SUCCESS,payload:v}),Pe({event:"data_storage_updated",category:"DataStorage",action:"Update",label:v.type}),At.success("Storage updated"),v}catch(g){return t({type:Mt.UPDATE_STORAGE_ERROR,payload:yn(g)}),null}},[t]),c=p.useCallback(async f=>{t({type:Mt.DELETE_STORAGE_START});try{await Ud.deleteDataStorage(f),t({type:Mt.DELETE_STORAGE_SUCCESS,payload:f}),Pe({event:"data_storage_deleted",category:"DataStorage",action:"Delete",label:f}),At.success("Storage deleted")}catch(h){throw t({type:Mt.DELETE_STORAGE_ERROR,payload:yn(h)}),h}},[t]),d=p.useCallback(()=>{t({type:Mt.CLEAR_CURRENT_STORAGE})},[t]);return{dataStorages:e.dataStorages,currentDataStorage:e.currentDataStorage,loading:e.loading,error:e.error,fetchDataStorages:n,getDataStorageById:r,createDataStorage:s,updateDataStorage:l,deleteDataStorage:c,clearCurrentDataStorage:d}}const TD=({isOpen:e,onClose:t,onSelect:n})=>o.jsx(F1,{open:e,onOpenChange:t,children:o.jsxs(z1,{className:"sm:max-w-sm",children:[o.jsxs(V1,{children:[o.jsx($1,{children:"New Storage"}),o.jsx(H1,{children:"Choose the type of storage you want to create"})]}),o.jsx("div",{className:"flex flex-col gap-4 py-4",children:Bi.getAllTypes().map(r=>{const s=r.icon,l=r.status===wo.ACTIVE;return o.jsxs(Se,{variant:"outline",className:"flex px-4 py-6",onClick:()=>void n(r.type),disabled:!l,children:[o.jsxs("span",{className:"flex flex-grow items-center gap-2",children:[o.jsx(s,{size:24}),o.jsx("span",{className:"font-medium",children:r.displayName})]}),!l&&o.jsx(br,{variant:"secondary",children:"Coming soon"})]},r.type)})})]})});function _X({initialData:e,onSuccess:t}){const{handleCreate:n,isSubmitting:r,serverError:s}=dX(),{dataStorages:l,loading:c,fetchDataStorages:d,createDataStorage:f,getDataStorageById:h}=Lg(),[g,y]=p.useState(!1);p.useEffect(()=>{d()},[d]);const v=Gi({resolver:Jl(uX),defaultValues:{title:(e==null?void 0:e.title)??"",storageId:""},mode:"onTouched"}),b=async S=>{const R=await n(S);R&&t&&t(R)},w=()=>{y(!0)},E=async S=>{try{const R=await f(S);R!=null&&R.id&&(await h(R.id),v.setValue("storageId",R.id))}catch(R){console.error("Failed to create storage:",R)}y(!1)};return o.jsxs(o.Fragment,{children:[o.jsx(Wl,{...v,children:o.jsxs(qi,{onSubmit:S=>{v.handleSubmit(b)(S)},children:[o.jsxs(Ql,{variant:"light",children:[s&&o.jsx("div",{className:"rounded bg-red-100 p-3 text-red-700",children:s.message}),o.jsx(en,{control:v.control,name:"title",render:({field:S})=>o.jsxs(Vt,{children:[o.jsx($t,{children:"Title"}),o.jsx(Ht,{children:o.jsx(zt,{id:"title",placeholder:"Enter title",...S,disabled:r})}),o.jsx(on,{})]})}),o.jsx(en,{control:v.control,name:"storageId",render:({field:S})=>o.jsxs(Vt,{children:[o.jsx($t,{children:"Storage"}),o.jsx(Ht,{children:o.jsxs(Ea,{onValueChange:R=>{R==="create_new"?w():S.onChange(R)},value:S.value,disabled:r||c,children:[o.jsx(Ra,{className:"w-full",children:o.jsx(wa,{placeholder:"Select a storage"})}),o.jsx(Ta,{children:o.jsxs(kg,{children:[c&&o.jsx(Yn,{value:"loading",disabled:!0,children:"Loading..."}),!c&&l.map(R=>{const T=Bi.getInfo(R.type).icon;return o.jsx(Yn,{value:R.id,children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(T,{size:20}),o.jsx("span",{children:R.title})]})},R.id)}),!c&&l.length>0&&o.jsx(iX,{}),o.jsx(Yn,{value:"create_new",children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"flex h-5 w-5 items-center justify-center",children:o.jsx(_a,{size:20})}),o.jsx("span",{children:"Create new storage"})]})})]})})]})}),o.jsx(on,{})]})})]}),o.jsxs(Xl,{variant:"light",children:[o.jsx(Se,{type:"submit",children:"Create Data Mart"}),o.jsx(Se,{variant:"outline",type:"button",onClick:()=>{window.history.back()},children:"Go back"})]})]})}),o.jsx(TD,{isOpen:g,onClose:()=>{y(!1)},onSelect:S=>E(S)})]})}function NX({title:e,onUpdate:t,className:n,errorMessage:r="Title cannot be empty",minWidth:s="200px"}){const[l,c]=p.useState(e),[d,f]=p.useState(!1),h=p.useRef(null);p.useEffect(()=>{c(e)},[e]),p.useEffect(()=>{h.current&&(h.current.style.height="auto",h.current.style.height=`${String(h.current.scrollHeight)}px`)},[l]);const g=async()=>{if(l.trim()===""){c(e);return}if(l.trim()!==e)try{f(!0),await t(l.trim())}catch(v){c(e),console.error(v)}finally{f(!1)}},y=v=>{if(v.key==="Enter"&&!v.shiftKey){if(v.preventDefault(),l.trim()===""){At.error(r),c(e);return}g()}else v.key==="Escape"&&c(e)};return o.jsx("h2",{className:ne("m-0 cursor-pointer p-0 hover:opacity-80",n),children:o.jsx($i,{ref:h,value:l,onChange:v=>{c(v.target.value);const b=v.target;b.style.height="auto",b.style.height=`${String(b.scrollHeight)}px`},onBlur:()=>void g(),onKeyDown:y,className:ne("m-0 w-full border-0 p-0 shadow-none","bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0",{"opacity-50":d}),style:{fontSize:"inherit",fontWeight:"inherit",lineHeight:"inherit",fontFamily:"inherit",color:"inherit",resize:"none",overflow:"hidden",minHeight:"inherit",height:"auto",minWidth:s},disabled:d})})}var yl=(e=>(e.MANUAL_BACKFILL="MANUAL_BACKFILL",e.INCREMENTAL="INCREMENTAL",e))(yl||{}),jD=(e=>(e.MANUAL_BACKFILL="MANUAL_BACKFILL",e.HIDE_IN_CONFIG_FORM="HIDE_IN_CONFIG_FORM",e))(jD||{}),Pg="Tabs",[AX]=ir(Pg,[hg]),_D=hg(),[DX,nS]=AX(Pg),ND=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:s,defaultValue:l,orientation:c="horizontal",dir:d,activationMode:f="automatic",...h}=e,g=If(d),[y,v]=Vr({prop:r,onChange:s,defaultProp:l??"",caller:Pg});return o.jsx(DX,{scope:n,baseId:Nn(),value:y,onValueChange:v,orientation:c,dir:g,activationMode:f,children:o.jsx(Je.div,{dir:g,"data-orientation":c,...h,ref:t})})});ND.displayName=Pg;var AD="TabsList",DD=p.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...s}=e,l=nS(AD,n),c=_D(n);return o.jsx($N,{asChild:!0,...c,orientation:l.orientation,dir:l.dir,loop:r,children:o.jsx(Je.div,{role:"tablist","aria-orientation":l.orientation,...s,ref:t})})});DD.displayName=AD;var OD="TabsTrigger",MD=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:s=!1,...l}=e,c=nS(OD,n),d=_D(n),f=LD(c.baseId,r),h=PD(c.baseId,r),g=r===c.value;return o.jsx(HN,{asChild:!0,...d,focusable:!s,active:g,children:o.jsx(Je.button,{type:"button",role:"tab","aria-selected":g,"aria-controls":h,"data-state":g?"active":"inactive","data-disabled":s?"":void 0,disabled:s,id:f,...l,ref:t,onMouseDown:Te(e.onMouseDown,y=>{!s&&y.button===0&&y.ctrlKey===!1?c.onValueChange(r):y.preventDefault()}),onKeyDown:Te(e.onKeyDown,y=>{[" ","Enter"].includes(y.key)&&c.onValueChange(r)}),onFocus:Te(e.onFocus,()=>{const y=c.activationMode!=="manual";!g&&!s&&y&&c.onValueChange(r)})})})});MD.displayName=OD;var ID="TabsContent",kD=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:s,children:l,...c}=e,d=nS(ID,n),f=LD(d.baseId,r),h=PD(d.baseId,r),g=r===d.value,y=p.useRef(g);return p.useEffect(()=>{const v=requestAnimationFrame(()=>y.current=!1);return()=>cancelAnimationFrame(v)},[]),o.jsx(Er,{present:s||g,children:({present:v})=>o.jsx(Je.div,{"data-state":g?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":f,hidden:!v,id:h,tabIndex:0,...c,ref:t,style:{...e.style,animationDuration:y.current?"0s":void 0},children:v&&l})})});kD.displayName=ID;function LD(e,t){return`${e}-trigger-${t}`}function PD(e,t){return`${e}-content-${t}`}var OX=ND,MX=DD,IX=MD,kX=kD;function LX({className:e,...t}){return o.jsx(OX,{"data-slot":"tabs",className:ne("flex flex-col gap-2",e),...t})}function PX({className:e,...t}){return o.jsx(MX,{"data-slot":"tabs-list",className:ne("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",e),...t})}function UX({className:e,...t}){return o.jsx(IX,{"data-slot":"tabs-trigger",className:ne("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...t})}function FX({className:e,...t}){return o.jsx(kX,{"data-slot":"tabs-content",className:ne("flex-1 outline-none",e),...t})}var Ug="Collapsible",[zX,UD]=ir(Ug),[VX,rS]=zX(Ug),FD=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:r,defaultOpen:s,disabled:l,onOpenChange:c,...d}=e,[f,h]=Vr({prop:r,defaultProp:s??!1,onChange:c,caller:Ug});return o.jsx(VX,{scope:n,disabled:l,contentId:Nn(),open:f,onOpenToggle:p.useCallback(()=>h(g=>!g),[h]),children:o.jsx(Je.div,{"data-state":iS(f),"data-disabled":l?"":void 0,...d,ref:t})})});FD.displayName=Ug;var zD="CollapsibleTrigger",aS=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,...r}=e,s=rS(zD,n);return o.jsx(Je.button,{type:"button","aria-controls":s.contentId,"aria-expanded":s.open||!1,"data-state":iS(s.open),"data-disabled":s.disabled?"":void 0,disabled:s.disabled,...r,ref:t,onClick:Te(e.onClick,s.onOpenToggle)})});aS.displayName=zD;var sS="CollapsibleContent",oS=p.forwardRef((e,t)=>{const{forceMount:n,...r}=e,s=rS(sS,e.__scopeCollapsible);return o.jsx(Er,{present:n||s.open,children:({present:l})=>o.jsx($X,{...r,ref:t,present:l})})});oS.displayName=sS;var $X=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:r,children:s,...l}=e,c=rS(sS,n),[d,f]=p.useState(r),h=p.useRef(null),g=ut(t,h),y=p.useRef(0),v=y.current,b=p.useRef(0),w=b.current,E=c.open||d,S=p.useRef(E),R=p.useRef(void 0);return p.useEffect(()=>{const T=requestAnimationFrame(()=>S.current=!1);return()=>cancelAnimationFrame(T)},[]),Cr(()=>{const T=h.current;if(T){R.current=R.current||{transitionDuration:T.style.transitionDuration,animationName:T.style.animationName},T.style.transitionDuration="0s",T.style.animationName="none";const _=T.getBoundingClientRect();y.current=_.height,b.current=_.width,S.current||(T.style.transitionDuration=R.current.transitionDuration,T.style.animationName=R.current.animationName),f(r)}},[c.open,r]),o.jsx(Je.div,{"data-state":iS(c.open),"data-disabled":c.disabled?"":void 0,id:c.contentId,hidden:!E,...l,ref:g,style:{"--radix-collapsible-content-height":v?`${v}px`:void 0,"--radix-collapsible-content-width":w?`${w}px`:void 0,...e.style},children:E&&s})});function iS(e){return e?"open":"closed"}var VD=FD,HX=aS,BX=oS;const GX=VD,qX=aS,ZX=oS;function KX({children:e,className:t="",...n}){return o.jsx("div",{className:ne("flex flex-1 flex-col overflow-hidden",t),...n,children:e})}function YX({children:e,className:t="",...n}){return o.jsx("div",{className:ne("bg-muted dark:bg-sidebar flex-1 overflow-y-auto p-4",t),...n,children:o.jsx("div",{className:"flex min-h-full flex-col gap-4",children:e})})}function WX({children:e,className:t="",variant:n="horizontal",...r}){const s=n==="vertical"?"flex flex-col gap-1.5 pt-4":"flex items-center justify-between border-t px-4 py-3";return o.jsx("div",{className:ne(s,t),...r,children:e})}function Zd({children:e,className:t="",...n}){return o.jsx("div",{"data-slot":"wizard-step-item",className:ne("group border-border flex flex-col gap-2 rounded-md border-b bg-white px-4 py-3 transition-shadow duration-200 hover:shadow-sm dark:border-transparent dark:bg-white/4",t),...n,children:e})}function QX({label:e,children:t,className:n="",options:r,value:s,onValueChange:l,required:c=!1,tooltip:d,...f}){return o.jsx("div",{"data-slot":"wizard-step-item-one-of",className:ne("group border-border flex flex-col gap-2 rounded-md border-b bg-white px-4 py-3 transition-shadow duration-200 hover:shadow-sm dark:border-transparent dark:bg-white/4",n),...f,children:o.jsxs(LX,{value:s,onValueChange:l,children:[o.jsxs("div",{className:"flex items-center",children:[o.jsx(To,{required:c,tooltip:d,className:"w-full",children:e}),o.jsx(PX,{children:r.map(h=>o.jsx(UX,{value:h.value,children:h.label},h.value))})]}),t]})})}function $D({title:e,children:t,defaultOpen:n=!1,className:r=""}){const[s,l]=p.useState(n);return o.jsxs(GX,{open:s,onOpenChange:l,"data-slot":"wizard-collapsible",className:ne("group/collapsible flex flex-col gap-2 py-3",r),children:[o.jsx(qX,{asChild:!0,children:o.jsxs("button",{type:"button",className:ne("flex cursor-pointer items-center gap-1"),children:[o.jsx("span",{className:"text-muted-foreground/75 text-xs font-semibold tracking-wide uppercase",children:e}),o.jsx(ja,{className:ne("text-foreground/75 h-3.5 w-3.5 transition-transform duration-200",s&&"rotate-90")})]})}),o.jsx(ZX,{className:"data-[state=open]:animate-collapsible-down data-[state=closed]:animate-collapsible-up overflow-hidden",children:o.jsx("div",{className:"flex flex-col gap-2 pt-2",children:t})})]})}function To({children:e,required:t=!1,tooltip:n,tooltipProps:r,className:s="",...l}){return o.jsxs(Ca,{"data-slot":"wizard-step-label",className:ne("text-foreground flex items-center justify-between gap-2 text-sm font-medium",s),...l,children:[t?o.jsxs(St,{...r,children:[o.jsx(Ct,{asChild:!0,children:o.jsxs("span",{className:"flex items-center gap-1",children:[e,o.jsx("span",{className:"ml-1 text-red-500",children:"*"})]})}),o.jsx(Et,{side:"top",align:"center",role:"tooltip",children:"Required"})]}):o.jsx("span",{children:e}),n&&o.jsxs(St,{...r,children:[o.jsx(Ct,{asChild:!0,children:o.jsx("button",{type:"button",tabIndex:-1,className:"pointer-events-none opacity-0 transition group-hover:pointer-events-auto group-hover:opacity-100","aria-label":"Help information",children:o.jsx(zr,{className:"text-muted-foreground/50 hover:text-muted-foreground size-4 shrink-0 transition-colors","aria-hidden":"true"})})}),o.jsx(Et,{side:"top",align:"center",role:"tooltip",children:n})]})]})}function wl({title:e,children:t,className:n="",...r}){return o.jsxs("section",{"data-slot":"wizard-step-section",className:ne("mb-8",n),...r,children:[e&&o.jsx("h3",{className:"text-muted-foreground/75 mb-2 text-xs font-semibold tracking-wide uppercase",children:e}),o.jsx("div",{className:"flex flex-col gap-2",children:t})]})}function Mi({icon:e,title:t,subtitle:n,docUrl:r,variant:s="default",className:l,...c}){return s==="compact"?o.jsxs("div",{"data-slot":"wizard-step-hero",className:ne("border-border mb-6 flex items-center justify-between gap-4 border-b pb-4",l),...c,children:[o.jsxs("div",{className:"flex items-center gap-2",children:[e&&o.jsx("div",{children:e}),o.jsx("h2",{className:"text-md font-medium",children:t})]}),r!=null&&o.jsx(Se,{variant:"outline",asChild:!0,children:o.jsxs(Za,{to:r,target:"_blank",rel:"noopener noreferrer",children:["Documentation",o.jsx(_l,{className:"h-4 w-4"})]})})]}):o.jsxs("div",{"data-slot":"wizard-step-hero",className:ne("mb-6 flex flex-col items-center justify-center text-center",l),...c,children:[e&&o.jsx("div",{className:"mt-6 mb-3",children:e}),o.jsx("h2",{className:"text-xl font-medium",children:t}),n&&o.jsx("p",{className:"text-muted-foreground mt-2 text-sm",children:n}),r!=null&&o.jsx(Se,{variant:"outline",className:"mt-3 mb-6",asChild:!0,children:o.jsxs(Za,{to:r,target:"_blank",rel:"noopener noreferrer",children:["Documentation",o.jsx(_l,{className:"h-4 w-4"})]})})]})}function _o({children:e,className:t="",...n}){return o.jsx("div",{"data-slot":"wizard-step",className:ne("space-y-4",t),...n,children:e})}function XX({children:e,className:t="",...n}){return o.jsx("div",{className:ne("grid grid-cols-1 gap-4 md:grid-cols-2",t),...n,children:e})}function JX({icon:e,title:t,selected:n=!1,disabled:r=!1,onClick:s,onDoubleClick:l,className:c="",...d}){return o.jsxs("div",{className:ne("border-border flex items-center gap-4 rounded-md border-b bg-white px-4 py-3 transition-shadow duration-200 select-none hover:shadow-sm dark:border-transparent dark:bg-white/4",r?"cursor-not-allowed opacity-50 hover:shadow-none":"cursor-pointer hover:shadow-sm dark:hover:bg-white/8",n&&!r?"ring-primary border-transparent ring-2 dark:bg-white/8":"",c),onClick:s,onDoubleClick:l,...d,children:[e&&o.jsx("span",{className:"shrink-0",children:e}),r?o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx("span",{className:"cursor-not-allowed text-sm font-medium opacity-70",children:t})}),o.jsx(Et,{side:"top",align:"center",children:"Coming soon"})]}):o.jsx("span",{className:"text-sm font-medium",children:t})]})}function HD({type:e,id:t,name:n,value:r,label:s,checked:l,selected:c=!1,disabled:d=!1,tooltip:f,rightIcon:h,onChange:g,className:y="",...v}){const b=E=>{g&&g(e==="checkbox"?E.target.checked:E.target.value)},w=p.useRef(null);return o.jsxs("div",{"data-slot":"wizard-step-card-item",onClick:E=>{if(d)return;const S=E.target;S.tagName==="INPUT"||S.tagName==="LABEL"||S.closest("label")||w.current&&w.current.click()},className:ne("group border-border flex items-center gap-2 rounded-md border-b bg-white px-4 py-3 transition-shadow duration-200 select-none hover:shadow-sm dark:border-transparent dark:bg-white/4",d?"cursor-not-allowed":"cursor-pointer hover:shadow-sm dark:hover:bg-white/8",c?"ring-primary border-transparent ring-2 dark:bg-white/8":"",y),children:[o.jsx("input",{ref:w,id:t,type:e,name:n,value:r,checked:l,disabled:d,onChange:b,className:ne("text-primary focus:ring-primary border-border cursor-pointer",e==="radio"||e==="checkbox"?"h-4 w-4":"h-8 w-full rounded-md border px-2"),...v}),s&&o.jsx(To,{htmlFor:t,className:ne("cursor-pointer",d&&"cursor-not-allowed"),children:s}),(f||h)&&o.jsxs("div",{className:"ml-auto flex shrink-0 items-center gap-2",children:[f&&o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx(zr,{className:"text-muted-foreground/75 pointer-events-none h-4 w-4 opacity-0 group-hover:pointer-events-auto group-hover:opacity-100","data-tooltip-trigger":!0})}),o.jsx(Et,{side:"top",align:"center",children:f})]}),h&&o.jsx("div",{className:"flex items-center",children:h})]})]})}function lS({variant:e="grid",items:t,className:n=""}){const r=t??(e==="grid"?12:6),s=e==="grid"?"grid grid-cols-1 gap-4 md:grid-cols-2":"flex flex-col gap-4";return o.jsx("div",{"data-slot":"wizard-step-loading",className:ne(s,n),children:Array.from({length:r}).map((l,c)=>o.jsx(is,{className:"border-border h-12 rounded-md border-b bg-white dark:bg-white/4"},c))})}function qT(e){const t=eJ(e),n=p.forwardRef((r,s)=>{const{children:l,...c}=r,d=p.Children.toArray(l),f=d.find(nJ);if(f){const h=f.props.children,g=d.map(y=>y===f?p.Children.count(h)>1?p.Children.only(null):p.isValidElement(h)?h.props.children:null:y);return o.jsx(t,{...c,ref:s,children:p.isValidElement(h)?p.cloneElement(h,void 0,g):null})}return o.jsx(t,{...c,ref:s,children:l})});return n.displayName=`${e}.Slot`,n}function eJ(e){const t=p.forwardRef((n,r)=>{const{children:s,...l}=n;if(p.isValidElement(s)){const c=aJ(s),d=rJ(l,s.props);return s.type!==p.Fragment&&(d.ref=r?Ir(r,c):c),p.cloneElement(s,d)}return p.Children.count(s)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var tJ=Symbol("radix.slottable");function nJ(e){return p.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===tJ}function rJ(e,t){const n={...t};for(const r in t){const s=e[r],l=t[r];/^on[A-Z]/.test(r)?s&&l?n[r]=(...d)=>{const f=l(...d);return s(...d),f}:s&&(n[r]=s):r==="style"?n[r]={...s,...l}:r==="className"&&(n[r]=[s,l].filter(Boolean).join(" "))}return{...e,...n}}function aJ(e){var r,s;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(s=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function sJ(e){const t=e+"CollectionProvider",[n,r]=ir(t),[s,l]=n(t,{collectionRef:{current:null},itemMap:new Map}),c=E=>{const{scope:S,children:R}=E,T=ye.useRef(null),_=ye.useRef(new Map).current;return o.jsx(s,{scope:S,itemMap:_,collectionRef:T,children:R})};c.displayName=t;const d=e+"CollectionSlot",f=qT(d),h=ye.forwardRef((E,S)=>{const{scope:R,children:T}=E,_=l(d,R),D=ut(S,_.collectionRef);return o.jsx(f,{ref:D,children:T})});h.displayName=d;const g=e+"CollectionItemSlot",y="data-radix-collection-item",v=qT(g),b=ye.forwardRef((E,S)=>{const{scope:R,children:T,..._}=E,D=ye.useRef(null),A=ut(S,D),O=l(g,R);return ye.useEffect(()=>(O.itemMap.set(D,{ref:D,..._}),()=>void O.itemMap.delete(D))),o.jsx(v,{[y]:"",ref:A,children:T})});b.displayName=g;function w(E){const S=l(e+"CollectionConsumer",E);return ye.useCallback(()=>{const T=S.collectionRef.current;if(!T)return[];const _=Array.from(T.querySelectorAll(`[${y}]`));return Array.from(S.itemMap.values()).sort((O,j)=>_.indexOf(O.ref.current)-_.indexOf(j.ref.current))},[S.collectionRef,S.itemMap])}return[{Provider:c,Slot:h,ItemSlot:b},w,r]}var Ss="Accordion",oJ=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[cS,iJ,lJ]=sJ(Ss),[Fg]=ir(Ss,[lJ,UD]),uS=UD(),BD=ye.forwardRef((e,t)=>{const{type:n,...r}=e,s=r,l=r;return o.jsx(cS.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?o.jsx(fJ,{...l,ref:t}):o.jsx(dJ,{...s,ref:t})})});BD.displayName=Ss;var[GD,cJ]=Fg(Ss),[qD,uJ]=Fg(Ss,{collapsible:!1}),dJ=ye.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},collapsible:l=!1,...c}=e,[d,f]=Vr({prop:n,defaultProp:r??"",onChange:s,caller:Ss});return o.jsx(GD,{scope:e.__scopeAccordion,value:ye.useMemo(()=>d?[d]:[],[d]),onItemOpen:f,onItemClose:ye.useCallback(()=>l&&f(""),[l,f]),children:o.jsx(qD,{scope:e.__scopeAccordion,collapsible:l,children:o.jsx(ZD,{...c,ref:t})})})}),fJ=ye.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},...l}=e,[c,d]=Vr({prop:n,defaultProp:r??[],onChange:s,caller:Ss}),f=ye.useCallback(g=>d((y=[])=>[...y,g]),[d]),h=ye.useCallback(g=>d((y=[])=>y.filter(v=>v!==g)),[d]);return o.jsx(GD,{scope:e.__scopeAccordion,value:c,onItemOpen:f,onItemClose:h,children:o.jsx(qD,{scope:e.__scopeAccordion,collapsible:!0,children:o.jsx(ZD,{...l,ref:t})})})}),[hJ,zg]=Fg(Ss),ZD=ye.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:r,dir:s,orientation:l="vertical",...c}=e,d=ye.useRef(null),f=ut(d,t),h=iJ(n),y=If(s)==="ltr",v=Te(e.onKeyDown,b=>{var M;if(!oJ.includes(b.key))return;const w=b.target,E=h().filter(F=>{var G;return!((G=F.ref.current)!=null&&G.disabled)}),S=E.findIndex(F=>F.ref.current===w),R=E.length;if(S===-1)return;b.preventDefault();let T=S;const _=0,D=R-1,A=()=>{T=S+1,T>D&&(T=_)},O=()=>{T=S-1,T<_&&(T=D)};switch(b.key){case"Home":T=_;break;case"End":T=D;break;case"ArrowRight":l==="horizontal"&&(y?A():O());break;case"ArrowDown":l==="vertical"&&A();break;case"ArrowLeft":l==="horizontal"&&(y?O():A());break;case"ArrowUp":l==="vertical"&&O();break}const j=T%R;(M=E[j].ref.current)==null||M.focus()});return o.jsx(hJ,{scope:n,disabled:r,direction:s,orientation:l,children:o.jsx(cS.Slot,{scope:n,children:o.jsx(Je.div,{...c,"data-orientation":l,ref:f,onKeyDown:r?void 0:v})})})}),Lp="AccordionItem",[mJ,dS]=Fg(Lp),KD=ye.forwardRef((e,t)=>{const{__scopeAccordion:n,value:r,...s}=e,l=zg(Lp,n),c=cJ(Lp,n),d=uS(n),f=Nn(),h=r&&c.value.includes(r)||!1,g=l.disabled||e.disabled;return o.jsx(mJ,{scope:n,open:h,disabled:g,triggerId:f,children:o.jsx(VD,{"data-orientation":l.orientation,"data-state":eO(h),...d,...s,ref:t,disabled:g,open:h,onOpenChange:y=>{y?c.onItemOpen(r):c.onItemClose(r)}})})});KD.displayName=Lp;var YD="AccordionHeader",WD=ye.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=zg(Ss,n),l=dS(YD,n);return o.jsx(Je.h3,{"data-orientation":s.orientation,"data-state":eO(l.open),"data-disabled":l.disabled?"":void 0,...r,ref:t})});WD.displayName=YD;var eb="AccordionTrigger",QD=ye.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=zg(Ss,n),l=dS(eb,n),c=uJ(eb,n),d=uS(n);return o.jsx(cS.ItemSlot,{scope:n,children:o.jsx(HX,{"aria-disabled":l.open&&!c.collapsible||void 0,"data-orientation":s.orientation,id:l.triggerId,...d,...r,ref:t})})});QD.displayName=eb;var XD="AccordionContent",JD=ye.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=zg(Ss,n),l=dS(XD,n),c=uS(n);return o.jsx(BX,{role:"region","aria-labelledby":l.triggerId,"data-orientation":s.orientation,...c,...r,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});JD.displayName=XD;function eO(e){return e?"open":"closed"}var pJ=BD,gJ=KD,yJ=WD,vJ=QD,xJ=JD;const fS={default:{itemClass:"border-b last:border-b-0",triggerClass:"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",icon:null,chevronClass:"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200",contentClass:"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",contentInnerClass:"pt-0 pb-4",headerClass:"flex"},common:{itemClass:"overflow-hidden",triggerClass:"group focus-visible:ring-primary hover:bg-muted [&[data-state=open]]:bg-muted flex items-center gap-1 rounded-sm px-2 py-1 transition-all outline-none focus-visible:ring-2 [&[data-state=open]]:rounded-br-none [&[data-state=open]]:rounded-bl-none [&[data-state=open]]:font-semibold",icon:o.jsx(EL,{className:"size-4 shrink-0","aria-hidden":"true"}),chevronClass:"size-3.5 shrink-0 transition-transform duration-200 group-data-[state=open]:rotate-180",contentClass:"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down bg-muted overflow-hidden rounded-sm rounded-tl-none py-0 pr-2 pl-7 text-sm",contentInnerClass:"pt-2 pb-4",headerClass:void 0}},tO=p.createContext("default");function lr({variant:e="default",...t}){return o.jsx(tO.Provider,{value:e,children:o.jsx(pJ,{"data-slot":"accordion",...t})})}function hS(e){const t=p.useContext(tO);return e??t??"default"}function Un({className:e,variant:t,...n}){const r=hS(t),{itemClass:s}=fS[r];return o.jsx(gJ,{"data-slot":"accordion-item",className:ne(s,e),...n})}function Fn({className:e,children:t,variant:n,...r}){const s=hS(n),{triggerClass:l,icon:c,chevronClass:d,headerClass:f}=fS[s];return o.jsx(yJ,{className:f,children:o.jsxs(vJ,{"data-slot":"accordion-trigger",className:ne(l,e),...r,children:[c,t,o.jsx(Qa,{className:d,"aria-hidden":"true"})]})})}function zn({className:e,children:t,variant:n,...r}){const s=hS(n),{contentClass:l,contentInnerClass:c}=fS[s];return o.jsx(xJ,{"data-slot":"accordion-content",className:ne(l,e),...r,children:o.jsx("div",{className:c,children:t})})}function or({href:e,children:t,className:n,...r}){return o.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:ne("text-muted-foreground hover:bg-muted inline-flex items-center px-1 font-medium hover:rounded-md",n),...r,children:[t,o.jsx(_l,{className:"ml-1 inline h-3 w-3","aria-hidden":"true"})]})}function ZT(){return o.jsx(lr,{variant:"common",type:"single",collapsible:!0,children:o.jsxs(Un,{value:"connector-state-details",children:[o.jsx(Fn,{children:"What’s connector state?"}),o.jsxs(zn,{children:[o.jsx("p",{className:"mb-2",children:"The connector state stores internal data between runs and updates automatically with each execution. It’s used to track progress and ensure consistent data processing across runs."}),o.jsx("p",{className:"mb-2",children:"Connector state is available only for connectors that support incremental runs, helping add only new or updated records since the last run without reloading existing data."}),o.jsxs("p",{className:"mb-2",children:["For more details, see the"," ",o.jsx(or,{className:"underline",href:"https://docs.owox.com/?utm_source=owox_data_marts&utm_medium=manual_run_sheet&utm_campaign=tooltip_connector_state",children:"OWOX documentation"}),"."]})]})]})})}const Vg=e=>{if(!e)return"—";let t;if(typeof e=="string"){if(t=new Date(e),isNaN(t.getTime()))return"—"}else if(t=e,isNaN(t.getTime()))return"—";const r=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(t),s=new Map(r.map(y=>[y.type,y.value])),l=s.get("year")??"",c=s.get("month")??"",d=s.get("day")??"",f=s.get("hour")??"",h=s.get("minute")??"",g=s.get("second")??"";return`${l}-${c}-${d} ${f}:${h}:${g}`},zc=e=>Vg(nO(e).toISOString()),nO=e=>{const t=e.trim();if(t.includes("T")||t.includes("Z")){const s=new Date(t);if(!isNaN(s.getTime()))return s}let n=/^(\d{4})[-/](\d{1,2})[-/](\d{1,2})\s+(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$/.exec(t);if(n)return new Date(Date.UTC(parseInt(n[1],10),parseInt(n[2],10)-1,parseInt(n[3],10),parseInt(n[4],10),parseInt(n[5],10),n[6]?parseInt(n[6],10):0));if(n=/^(\d{1,2})[./](\d{1,2})[./](\d{4})\s+(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$/.exec(t),n)return new Date(Date.UTC(parseInt(n[3],10),parseInt(n[2],10)-1,parseInt(n[1],10),parseInt(n[4],10),parseInt(n[5],10),n[6]?parseInt(n[6],10):0));const r=new Date(t);return isNaN(r.getTime())?(console.warn(`Failed to parse date string: "${e}", using current date as fallback`),new Date):r},bJ=(e,t)=>{const n=t.getTime()-e.getTime(),r=Math.floor(n/1e3),s=Math.floor(r/60),l=Math.floor(s/60),c=s%60,d=r%60,f=[];return l>0&&f.push(`${String(l)} h`),c>0&&f.push(`${String(c)} min`),f.push(`${String(d)} sec`),f.join(" ")};function SJ({configuration:e,connectorState:t}){const r=((e==null?void 0:e.connector.source.configuration)??[]).map((d,f)=>{const h=d;return typeof h._id=="string"?{id:h._id,index:f}:void 0}).filter(d=>!!d),s=(t==null?void 0:t.states)??[],l=new Map(s.map(d=>[d._id,d])),c=r.map(({id:d,index:f})=>{const h=l.get(d);return h?{state:h,index:f}:void 0}).filter(d=>!!d);return o.jsx($D,{title:"State Info",children:c.length===0?o.jsxs(Vt,{children:[o.jsx($t,{children:"Connector state"}),o.jsx(Ht,{children:o.jsx("div",{className:"bg-muted min-h-[70px] cursor-not-allowed overflow-auto rounded-md px-3 py-2 font-mono text-sm whitespace-pre-wrap opacity-70",children:"No state available"})}),o.jsx(Pn,{children:o.jsx(ZT,{})})]}):o.jsx(o.Fragment,{children:c.map(({state:d,index:f})=>{const h=d.at||"",g=h?Vg(nO(h).toISOString()):"—",y=d.state,v=(()=>{try{return JSON.stringify(y,null,2)}catch{return typeof y=="string"?y:'"—"'}})();return o.jsxs(Vt,{children:[o.jsx($t,{tooltip:`Created at ${g}`,children:`Connector state of configuration #${String(f+1)}`}),o.jsx(Ht,{children:o.jsx(l4,{value:v,displayOnly:!0,className:"bg-muted overflow-auto rounded-md text-sm",minHeightClass:"min-h-0",showCopyButton:!0})}),o.jsx(Pn,{children:o.jsx(ZT,{})})]},d._id)})})})}function CJ({configuration:e,onClose:t,onSubmit:n}){const[r,s]=p.useState(new Set),l=p.useId(),c=Gi({defaultValues:{runType:yl.INCREMENTAL}}),{loading:d,loadingSpecification:f,connectorSpecification:h,fetchConnectorSpecification:g}=Yl(),{dataMart:y}=Fo(),v=p.useCallback(async S=>{!r.has(S)&&!f&&(s(R=>new Set(R).add(S)),await g(S))},[r,f,g]);p.useEffect(()=>{e!=null&&e.connector.source.name&&v(e.connector.source.name)},[e,d,v]);const b=S=>{n&&n(S)},w=()=>{t&&t()},E=S=>{if(!S)return"text";switch(S){case os.DATE:return"date";case os.NUMBER:return"number";default:return"text"}};return f?o.jsx("div",{children:"Loading..."}):h?o.jsx(Wl,{...c,children:o.jsxs(qi,{id:l,noValidate:!0,onSubmit:S=>void c.handleSubmit(b)(S),children:[o.jsxs(Ql,{children:[o.jsxs(Hs,{title:"General",children:[o.jsx(en,{control:c.control,name:"runType",render:({field:S})=>o.jsxs(Vt,{children:[o.jsx($t,{tooltip:"Select how you want to load data: incremental updates or full backfill for a period",children:"Run type"}),o.jsx(Ht,{children:o.jsxs(o.Fragment,{children:[o.jsx(xQ,{options:[{value:yl.INCREMENTAL,label:"Incremental load"},{value:yl.MANUAL_BACKFILL,label:"Backfill (custom period)"}],value:S.value,onChange:S.onChange,orientation:"horizontal"}),o.jsx(Pn,{children:c.watch("runType")===yl.MANUAL_BACKFILL?"Reloads all data for a specific time range from the source, replacing existing records for that period. Use when you need to correct or update historical data.":"Adds only new or updated records since the last run, using the current state of your Data Mart as a reference. Ideal for keeping data fresh without reloading what`s already there."})]})})]})}),c.watch("runType")===yl.INCREMENTAL&&o.jsx(SJ,{configuration:e,connectorState:(y==null?void 0:y.connectorState)??null})]}),c.watch("runType")===yl.MANUAL_BACKFILL&&o.jsx(Hs,{title:"Run configuration",children:h.filter(S=>{var R;return(R=S.attributes)==null?void 0:R.includes(jD.MANUAL_BACKFILL)}).map(S=>o.jsx(en,{control:c.control,name:`data.${S.name}`,render:()=>o.jsxs(Vt,{children:[o.jsx($t,{tooltip:S.description,children:S.title??S.name}),o.jsx(Ht,{children:o.jsx(zt,{id:S.name,placeholder:S.description,type:E(S.requiredType),defaultValue:typeof S.default=="string"||typeof S.default=="number"?S.default.toString():void 0,...c.register(`data.${S.name}`,{required:!0})})}),o.jsx(on,{})]},S.name)}))})]}),o.jsxs(Xl,{children:[o.jsx(Se,{type:"submit",disabled:!c.formState.isValid||f,children:"Run"}),o.jsx(Se,{type:"button",variant:"outline",onClick:w,children:"Cancel"})]})]})}):o.jsx("div",{children:"No connector specification found"})}function EJ({isOpen:e,onClose:t,configuration:n,onSubmit:r}){return o.jsx(Li,{open:e,onOpenChange:t,children:o.jsxs(Pi,{children:[o.jsx(Ui,{children:o.jsx(Fi,{children:"Manual Run"})}),o.jsx(CJ,{configuration:n,onClose:t,onSubmit:r})]})})}function rO({children:e,configuration:t,onManualRun:n,open:r}){const[s,l]=p.useState(r??!1),c=()=>{l(!0)},d=h=>{n(h),l(!1)},f=()=>e?o.jsx("div",{onClick:c,style:{cursor:"pointer"},children:e}):null;return o.jsxs(o.Fragment,{children:[f(),s&&o.jsx(yu,{children:o.jsx(EJ,{isOpen:s,onClose:()=>{l(!1)},configuration:t,onSubmit:d})})]})}var Rl=(e=>(e.IDLE="IDLE",e.READY="READY",e.PROCESSING="PROCESSING",e.SUCCESS="SUCCESS",e.ERROR="ERROR",e.CANCELLING="CANCELLING",e.CANCELLED="CANCELLED",e))(Rl||{});const wJ=1e3;function RJ(e,t){const[n,r]=p.useState(!1),[s,l]=p.useState(null),c=p.useRef(null),d=p.useRef(null),f=p.useRef(!0),h=p.useRef(t);h.current=t;const g=p.useCallback(S=>{f.current&&r(S)},[]),y=p.useCallback(S=>{f.current&&l(S)},[]),v=p.useCallback((S,R)=>{const T=S instanceof Error?S.message:"Schema actualization failed";At.dismiss(R),y(T),g(!1),c.current=null,d.current=null,At.error(T,{duration:void 0,id:R})},[y,g]),b=p.useCallback(async()=>{var R;const S=c.current;if((R=d.current)==null||R.abort(),S){At.dismiss(S);try{await nn.abortSchemaActualizeTrigger(e,S)}catch{}}c.current=null,d.current=null,g(!1)},[e,g]),w=p.useCallback(async(S,R)=>{var _;const T=D=>D===Rl.SUCCESS||D===Rl.ERROR||D===Rl.CANCELLED;for(;!R.aborted&&c.current===S;)try{const D=await nn.getSchemaActualizeTriggerStatus(e,S);if(T(D)){try{const A=await nn.getSchemaActualizeTriggerResponse(e,S);if(At.dismiss(S),A.success)(_=h.current)==null||_.call(h),At.success("Output schema actualized",{duration:void 0,id:S});else{const O=A.error??"Schema actualization failed";y(O),At.error(O,{duration:void 0,id:S})}}catch(A){const O=A instanceof Error?A.message:"Schema actualization failed";At.dismiss(S),y(O),At.error(O,{duration:void 0,id:S})}g(!1),c.current=null,d.current=null;return}await new Promise(A=>setTimeout(A,wJ))}catch(D){v(D,S)}},[e,y,g,v]),E=p.useCallback(async()=>{c.current&&await b(),y(null),g(!0);try{const{triggerId:S}=await nn.createSchemaActualizeTrigger(e);At.loading("Synchronizing schema with the data storage state. This may take a while.",{duration:1/0,id:S}),c.current=S;const R=new AbortController;d.current=R;try{await w(S,R.signal)}catch(T){v(T,S)}}catch(S){g(!1),y(S instanceof Error?S.message:"Failed to start schema actualization")}},[e,b,w,y,g,v]);return p.useEffect(()=>(f.current=!0,()=>{var R;f.current=!1;const S=c.current;(R=d.current)==null||R.abort(),S&&(At.dismiss(S),nn.abortSchemaActualizeTrigger(e,S).catch(()=>{})),c.current=null,d.current=null}),[e]),{run:E,isLoading:n,cancel:b,error:s}}function TJ({id:e}){const{navigate:t}=Po(),{dataMart:n,deleteDataMart:r,updateDataMartTitle:s,updateDataMartDescription:l,updateDataMartDefinition:c,actualizeDataMartSchema:d,updateDataMartSchema:f,publishDataMart:h,runDataMart:g,cancelDataMartRun:y,getDataMartRuns:v,loadMoreDataMartRuns:b,isLoading:w,error:E,getErrorMessage:S,runs:R,getDataMart:T}=fX(e),[_,D]=p.useState(!1),[A,O]=p.useState(!1),{id:j="",canPublish:M=!1,canActualizeSchema:F=!1,status:G={code:null,displayName:"",description:""},title:Y="",definition:Z=null,definitionType:ee=null,validationErrors:$=[]}=n??{},W=p.useCallback(()=>{j&&T(j)},[j,T]),{run:k,isLoading:H}=RJ(j,W),B=p.useCallback(async()=>{F&&await k()},[F,k]),ie=[{name:"Overview",path:"overview"},{name:"Data Setup",path:"data-setup"},{name:"Destinations",path:"reports"},{name:"Triggers",path:"triggers"},{name:"Run History",path:"run-history"}],xe=p.useCallback(async q=>{j&&await s(j,q)},[j,s]),L=p.useCallback(async()=>{if(j){O(!0);try{await h(j),B()}catch(q){console.log(q instanceof Error?q.message:"Failed to publish Data Mart")}finally{O(!1)}}},[j,h,B]),P=p.useCallback(async q=>{if(j){if(G.code!==Sr.PUBLISHED){rn.error("Manual run is only available for published Data Marts");return}await g({id:j,payload:q})}},[j,G,g]);return n?o.jsxs("div",{className:"px-12 py-6",children:[o.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[o.jsxs("div",{className:"flex items-center space-x-1 md:-ml-10",children:[o.jsx(au,{onClick:()=>{t("/data-marts")},variant:"ghost",size:"sm","aria-label":"Back to Data Marts",title:"Back to Data Marts",className:"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",children:o.jsx(u9,{className:"h-5 w-5"})}),o.jsx(NX,{title:Y,onUpdate:xe,className:"text-2xl font-medium"})]}),o.jsxs("div",{className:"flex items-center gap-2"+(A?" opacity-50":""),style:{minWidth:"120px"},children:[o.jsxs("div",{className:"ml-4 flex items-center gap-2",children:[o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx("div",{children:o.jsx(Bf,{type:G.code===Sr.PUBLISHED?jn.SUCCESS:jn.NEUTRAL,variant:"subtle",children:G.displayName})})}),o.jsx(Et,{children:G.code===Sr.PUBLISHED?"Your published Data Mart is ready for scheduled runs":"Draft Data Mart is not available for scheduled runs. Publish it to activate scheduling."})]}),G.code===Sr.DRAFT&&o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx("div",{children:o.jsxs(au,{variant:"default",onClick:()=>{L()},disabled:A||!M,className:"ml-2 flex items-center gap-1",children:[o.jsx(Wp,{className:"h-4 w-4"}),"Publish Data Mart"]})})}),!M&&o.jsxs(Et,{children:[o.jsx("div",{children:"Cannot publish Data Mart. Fix the issues below."}),$.length>0&&o.jsx("ul",{className:"mt-1 list-disc space-y-1 pl-4",children:MK($).map((q,te)=>o.jsx("li",{children:q},te))})]})]})]}),o.jsxs(wr,{children:[o.jsx(Rr,{asChild:!0,children:o.jsx(au,{variant:"ghost",children:o.jsx(K9,{className:"h-5 w-5"})})}),o.jsxs(Tr,{align:"end",children:[ee===Ue.CONNECTOR&&o.jsxs(o.Fragment,{children:[o.jsx(rO,{configuration:Z??null,onManualRun:q=>{P({runType:q.runType,data:q.data})},children:o.jsxs(vt,{onClick:q=>{q.preventDefault()},children:[o.jsx(Db,{className:"text-foreground h-4 w-4"}),o.jsx("span",{children:"Manual Run..."})]})}),o.jsx(Ka,{})]}),o.jsxs(vt,{onClick:()=>{D(!0)},children:[o.jsx(Lo,{className:"h-4 w-4 text-red-600"}),o.jsx("span",{className:"text-red-600",children:"Delete Data Mart"})]})]})]})]})]}),o.jsx("div",{children:o.jsx("nav",{className:"-mb-px flex space-x-4 border-b","aria-label":"Tabs",role:"tablist",children:ie.map(q=>o.jsx(Cf,{to:q.path,className:({isActive:te})=>ne("border-b-2 px-4 py-2 text-sm font-medium whitespace-nowrap",te?"border-primary text-primary":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 dark:text-gray-400 dark:hover:border-gray-200 dark:hover:text-gray-200"),children:q.name},q.name))})}),o.jsx("div",{className:"pt-4",children:o.jsx(e_,{context:{dataMart:n,isLoading:w,error:E,getErrorMessage:S,updateDataMartDescription:l,updateDataMartDefinition:c,actualizeDataMartSchema:d,updateDataMartSchema:f,runDataMart:g,cancelDataMartRun:y,getDataMartRuns:v,loadMoreDataMartRuns:b,runs:R,getDataMart:T,runSchemaActualization:B,isSchemaActualizationLoading:H}})}),o.jsx(Hr,{open:_,onOpenChange:D,title:"Delete Data Mart",description:o.jsxs(o.Fragment,{children:["Are you sure you want to delete ",o.jsxs("strong",{children:['"',Y,'"']}),"? This action cannot be undone."]}),confirmLabel:"Delete",cancelLabel:"Cancel",variant:"destructive",onConfirm:()=>{(async()=>{try{await r(j),D(!1),t("/data-marts")}catch(q){console.error("Failed to delete Data Mart:",q)}})()}})]}):o.jsxs("div",{className:"dm-page-content flex flex-col gap-4 py-4 md:py-8",children:[o.jsx(is,{className:"h-16 w-full"},0),Array.from({length:3}).map((q,te)=>o.jsx(is,{className:"h-48 w-full"},te+1))]})}function jJ({description:e,onUpdate:t,className:n,placeholder:r="Add description...",minWidth:s="100%",minHeight:l="100px"}){const[c,d]=p.useState(e??""),[f,h]=p.useState(!1),[g,y]=p.useState(!1),v=p.useRef(null);p.useEffect(()=>{d(e??"")},[e]),p.useEffect(()=>{if(v.current&&f){v.current.focus();const R=v.current.value.length;v.current.setSelectionRange(R,R),b(v.current)}},[f]);const b=R=>{R.style.height="auto",R.style.height=`${String(R.scrollHeight)}px`},w=R=>{d(R.target.value),b(R.target)},E=async()=>{const R=c.trim();if(R===(e??"")){h(!1);return}try{y(!0),await t(R===""?null:R),h(!1)}catch(_){console.error("Failed to update description:",_),d(e??"")}finally{y(!1)}},S=R=>{R.key==="Enter"&&R.ctrlKey?(R.preventDefault(),E()):R.key==="Escape"&&(R.preventDefault(),d(e??""),h(!1))};return f?o.jsxs("div",{className:"w-full",children:[o.jsx($i,{ref:v,value:c,onChange:w,onBlur:()=>void E(),onKeyDown:S,placeholder:r,className:ne("m-0 w-full border-0 bg-white p-2 shadow-none dark:bg-white/4","focus-visible:ring-primary focus-visible:ring-0",{"opacity-50":g}),style:{fontSize:"inherit",lineHeight:"inherit",fontFamily:"inherit",resize:"vertical",minHeight:l,minWidth:s},disabled:g}),o.jsxs("div",{className:"mt-2 text-xs text-gray-500",children:[o.jsxs("span",{children:["Press"," ",o.jsx("kbd",{className:"rounded border border-neutral-200 bg-neutral-100 px-1 py-0.5 font-sans dark:border-neutral-900 dark:bg-neutral-900",children:"Ctrl+Enter"})," ","to save •"," "]}),o.jsxs("span",{children:[o.jsx("kbd",{className:"rounded border border-neutral-200 bg-neutral-100 px-1 py-0.5 font-sans dark:border-neutral-900 dark:bg-neutral-900",children:"Esc"})," ","to cancel •"," "]}),o.jsx("span",{children:"Changes are also saved when you click outside"})]})]}):o.jsx("div",{className:"flex w-full items-center gap-4 rounded-md border-b border-gray-200 bg-white transition-shadow duration-200 hover:shadow-sm dark:border-0 dark:bg-white/4",children:o.jsx("div",{onClick:()=>{h(!0)},className:ne("min-h-24 cursor-pointer rounded p-2 whitespace-pre-wrap","transition-colors duration-150",!e&&"text-gray-400 italic",n),style:{minWidth:s},children:e??r})})}function _J(){const{dataMart:e,updateDataMartDescription:t}=Wa(),n=async r=>{await t(e.id,r)};return o.jsx("div",{children:o.jsx(jJ,{description:e.description,onUpdate:n,placeholder:"Add a description for this Data Mart..."})})}function KT(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function NJ(e){if(Array.isArray(e))return e}function AJ(e,t,n){return(t=PJ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function DJ(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,s,l,c,d=[],f=!0,h=!1;try{if(l=(n=n.call(e)).next,t!==0)for(;!(f=(r=l.call(n)).done)&&(d.push(r.value),d.length!==t);f=!0);}catch(g){h=!0,s=g}finally{try{if(!f&&n.return!=null&&(c=n.return(),Object(c)!==c))return}finally{if(h)throw s}}return d}}function OJ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
693
+ For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return p.useEffect(()=>{var r;document.getElementById((r=e.current)==null?void 0:r.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},FY=d3,zY=f3,VY=h3,$Y=m3,HY=x3,BY=S3,GY=g3,qY=v3;function ZY({...e}){return o.jsx(FY,{"data-slot":"alert-dialog",...e})}function KY({...e}){return o.jsx(zY,{"data-slot":"alert-dialog-portal",...e})}function YY({className:e,...t}){return o.jsx(VY,{"data-slot":"alert-dialog-overlay",className:ne("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function WY({className:e,...t}){return o.jsxs(KY,{children:[o.jsx(YY,{}),o.jsx($Y,{"data-slot":"alert-dialog-content",className:ne("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",e),...t})]})}function QY({className:e,...t}){return o.jsx("div",{"data-slot":"alert-dialog-header",className:ne("flex flex-col gap-2 text-center sm:text-left",e),...t})}function XY({className:e,...t}){return o.jsx("div",{"data-slot":"alert-dialog-footer",className:ne("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}function JY({className:e,...t}){return o.jsx(GY,{"data-slot":"alert-dialog-title",className:ne("text-lg font-semibold",e),...t})}function eW({className:e,...t}){return o.jsx(qY,{"data-slot":"alert-dialog-description",className:ne("text-muted-foreground text-sm",e),...t})}function tW({className:e,...t}){return o.jsx(HY,{className:ne(kb(),e),...t})}function nW({className:e,...t}){return o.jsx(BY,{className:ne(kb({variant:"outline"}),e),...t})}const C3=["facebook","linkedin","tiktok","microsoft","connector","sql","blank"],E3={facebook:{title:"Facebook Ads",datamartTitle:"Facebook Ads Data Mart",connectorSourceTitle:"FacebookMarketing",definitionType:Ue.CONNECTOR,icon:BB},linkedin:{title:"LinkedIn Ads",datamartTitle:"LinkedIn Ads Data Mart",connectorSourceTitle:"LinkedInAds",definitionType:Ue.CONNECTOR,icon:GB},tiktok:{title:"TikTok Ads",datamartTitle:"TikTok Ads Data Mart",connectorSourceTitle:"TikTokAds",definitionType:Ue.CONNECTOR,icon:qB},microsoft:{title:"Microsoft Ads",datamartTitle:"Microsoft Ads Data Mart",connectorSourceTitle:"MicrosoftAds",definitionType:Ue.CONNECTOR,icon:ZB},connector:{title:"Other connector",datamartTitle:"Connector-based Data Mart",definitionType:Ue.CONNECTOR,icon:Ob},sql:{title:"SQL query",datamartTitle:"SQL-based Data Mart",definitionType:Ue.SQL,icon:Ab},blank:{title:"Blank Data Mart",datamartTitle:"New Data Mart",icon:ap}},RT=C3.map(e=>({key:e,...E3[e]}));function rW(e){if(!e||!C3.includes(e))return;const t=e;return{key:t,...E3[t]}}function aW({children:e,className:t="",...n}){return o.jsx("div",{className:"dm-card",children:o.jsx("div",{className:ne("-m-4 flex flex-col items-start justify-between gap-12 overflow-hidden px-8 py-16 lg:flex-row-reverse lg:px-16 lg:py-24 2xl:items-center",t),...n,children:e})})}function sW({children:e,className:t="",...n}){return o.jsx("div",{className:ne("pb-2",t),...n,children:e})}function oW({children:e,className:t="",...n}){return o.jsx("h2",{className:ne("mb-6 text-4xl font-semibold xl:text-5xl",t),...n,children:e})}function iW({children:e,className:t="",...n}){return o.jsx("p",{className:ne("text-muted-foreground text-lg",t),...n,children:e})}function lW({children:e,rings:t=7,className:n="",...r}){return o.jsxs("div",{className:ne("relative flex w-full justify-center lg:w-[30%] 2xl:w-[35%]",n),...r,children:[o.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:Array.from({length:t},(s,l)=>{const c=`${(16*(l+1)+24).toString()}vmin`;return o.jsx("div",{className:"animate-ring-pulse",style:{height:c,width:c,animationDelay:`${(l*.3).toString()}s`,animationDuration:"4s",opacity:.2+l*.1,filter:l===0?"blur(1px)":"none"}},l)})}),o.jsx("div",{className:"animate-glow-burst"}),o.jsx("div",{className:"animate-icon-entrance","aria-label":"Illustration",children:e})]})}function cW({children:e,className:t="",...n}){return o.jsx("div",{className:ne("w-full space-y-8 lg:w-[70%] 2xl:w-[65%]",t),...n,children:e})}function Hx({separator:e=!0,children:t,className:n="",...r}){return o.jsx("section",{className:ne("relative pb-10",e&&"after:from-border after:absolute after:bottom-0 after:left-0 after:h-px after:w-full after:bg-gradient-to-r after:to-transparent",n),...r,children:t})}function TT({children:e,className:t="",...n}){return o.jsx("h3",{className:ne("mb-4 text-xl font-medium",t),...n,children:e})}function Bx({children:e,className:t="",...n}){return o.jsx("div",{className:ne("flex flex-wrap items-center gap-4",t),...n,children:e})}function Dm({href:e,icon:t,title:n,variant:r="outline",size:s,className:l="",target:c,...d}){const f=r==="outline"?"lg":"sm",h=o.jsxs("span",{className:ne("flex items-center gap-2"),children:[t,n]});return e?o.jsx(Se,{asChild:!0,variant:r,size:s??f,className:ne(r==="ghost"?"text-muted-foreground":"",l),...d,children:o.jsx(Za,{to:e,target:c,children:h})}):o.jsx(Se,{variant:r,size:s??f,className:l,...d,children:h})}function uW(){const{scope:e}=Po(),t=RT.filter(r=>r.definitionType===Ue.CONNECTOR),n=RT.filter(r=>r.definitionType!==Ue.CONNECTOR);return o.jsxs(aW,{children:[o.jsx(lW,{children:o.jsx(HB,{className:"animate-icon-entrance","aria-label":"Data Mart creation illustration"})}),o.jsxs(cW,{children:[o.jsxs(sW,{children:[o.jsx(oW,{children:"Let’s Build Your First Data Mart"}),o.jsx(iW,{children:"A Data Mart is the key element of self-service analytics — it provides both control for data analyst and freedom for business users. To get started, connect the source you need or query the data you already have in storage"})]}),o.jsxs(Hx,{children:[o.jsx(TT,{children:"Connect a data source"}),o.jsx(Bx,{children:t.map(r=>o.jsx(Dm,{href:e(`/data-marts/create?preset=${r.key}`),icon:r.icon&&o.jsx(r.icon,{className:"h-4 w-4"}),title:r.title,variant:"outline"},r.key))})]}),o.jsxs(Hx,{children:[o.jsx(TT,{children:"Use existing SQL or start from scratch"}),o.jsx(Bx,{children:n.map((r,s)=>o.jsxs(o.Fragment,{children:[o.jsx(Dm,{href:e(`/data-marts/create?preset=${r.key}`),icon:r.icon&&o.jsx(r.icon,{className:"h-4 w-4"}),title:r.title,variant:"outline"},r.key),s<n.length-1&&o.jsx("span",{className:"text-muted-foreground text-sm",children:"or"})]}))})]}),o.jsx(Hx,{separator:!1,children:o.jsxs(Bx,{children:[o.jsx(Dm,{href:"https://www.youtube.com/playlist?list=PLvcNVLV5BVbHHCekyAZBEIVnlC4i1qcHx",icon:o.jsx(ZL,{className:"h-4 w-4"}),title:"Watch a 2-minute demo",variant:"ghost",target:"_blank"}),o.jsx(Dm,{href:"https://docs.owox.com/docs/getting-started/core-concepts/?utm_source=owox_data_marts&utm_medium=empty_data_marts_page&utm_campaign=help_buttons",icon:o.jsx(aL,{className:"h-4 w-4"}),title:"Core concepts",variant:"ghost",target:"_blank"})]})})]})]})}function dW(){return o.jsx(is,{className:"bg-muted/50 h-72 w-full rounded-md border-b border-gray-200 dark:border-white/10 dark:bg-white/4"})}const Pc={DEFAULT_SORTING_COLUMN:"createdAt",DEFAULT_EXCLUDED_COLUMNS:["actions"],STORAGE_KEYS:{SORTING_SUFFIX:"-sorting",COLUMN_VISIBILITY_SUFFIX:"-column-visibility"}},fW={extractColumnIds:e=>e.map(t=>{if(t.id)return t.id;if("accessorKey"in t&&typeof t.accessorKey=="string")return t.accessorKey}).filter(t=>t!==void 0)};function Zf({columns:e,storageKeyPrefix:t,defaultSortingColumn:n=Pc.DEFAULT_SORTING_COLUMN,defaultColumnVisibility:r={},excludedColumnsFromSorting:s=Pc.DEFAULT_EXCLUDED_COLUMNS,excludedColumnsFromVisibility:l=Pc.DEFAULT_EXCLUDED_COLUMNS}){const c=p.useMemo(()=>({SORTING:`${t}${Pc.STORAGE_KEYS.SORTING_SUFFIX}`,COLUMN_VISIBILITY:`${t}${Pc.STORAGE_KEYS.COLUMN_VISIBILITY_SUFFIX}`}),[t]),d=p.useMemo(()=>fW.extractColumnIds(e),[e]),f=p.useMemo(()=>d.filter(E=>!s.includes(E)),[d,s]),h=p.useCallback(()=>{const E=ks.get(c.SORTING,"json");return E&&Array.isArray(E)&&E.length>0?E:[{id:f.includes(n)?n:f[0]??Pc.DEFAULT_SORTING_COLUMN,desc:!0}]},[c.SORTING,f,n]),g=p.useCallback(()=>{const E=ks.get(c.COLUMN_VISIBILITY,"json");if(E&&typeof E=="object"&&!Array.isArray(E)){const S={};for(const R of d)l.includes(R)||(S[R]=E[R]);return S}return r},[c.COLUMN_VISIBILITY,d,l,r]),[y,v]=p.useState(h),[b,w]=p.useState(g);return p.useEffect(()=>{y.length>0&&f.includes(y[0].id)&&ks.set(c.SORTING,y)},[y,f,c.SORTING]),p.useEffect(()=>{const E={};for(const S of d){if(l.includes(S))continue;const R=b[S];typeof R=="boolean"&&(E[S]=R)}ks.set(c.COLUMN_VISIBILITY,E)},[b,d,l,c.COLUMN_VISIBILITY]),{sorting:y,setSorting:v,columnVisibility:b,setColumnVisibility:w}}function hW({columns:e,data:t,deleteDataMart:n,refetchDataMarts:r,isLoading:s}){var O;const{navigate:l,scope:c}=Po(),{sorting:d,setSorting:f,columnVisibility:h,setColumnVisibility:g}=Zf({columns:e,storageKeyPrefix:"data-mart-list",defaultColumnVisibility:{triggersCount:!1,reportsCount:!1}}),[y,v]=p.useState([]),[b,w]=p.useState({}),[E,S]=p.useState(!1),[R,T]=p.useState(!1),_=async()=>{try{T(!0);const M=A.getSelectedRowModel().rows.map(F=>F.original.id);for(const F of M)await n(F);rn.success(`Successfully deleted ${String(M.length)} data mart${M.length!==1?"s":""}`),w({}),await r()}catch(j){console.error("Error deleting data marts:",j),rn.error("Failed to delete some data marts. Please try again.")}finally{T(!1),S(!1)}},D=Object.keys(b).length>0,A=Au({data:t,columns:[{id:"select",size:40,header:({table:j})=>o.jsx("button",{type:"button",role:"checkbox","aria-checked":j.getIsAllRowsSelected(),"data-state":j.getIsAllRowsSelected()?"checked":"unchecked","aria-label":"Select all rows",className:"peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border bg-white shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white/8",onClick:j.getToggleAllRowsSelectedHandler(),children:j.getIsAllRowsSelected()&&o.jsx("span",{"data-state":"checked","data-slot":"checkbox-indicator",className:"pointer-events-none flex items-center justify-center text-current transition-none",children:o.jsx(fr,{className:"size-3.5 text-white"})})}),cell:({row:j})=>o.jsx("button",{type:"button",role:"checkbox","aria-checked":j.getIsSelected(),"data-state":j.getIsSelected()?"checked":"unchecked","aria-label":"Select row",className:"peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border bg-white shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white/8",onClick:j.getToggleSelectedHandler(),children:j.getIsSelected()&&o.jsx("span",{"data-state":"checked","data-slot":"checkbox-indicator",className:"pointer-events-none flex items-center justify-center text-current transition-none",children:o.jsx(fr,{className:"size-3.5 text-white"})})}),enableSorting:!1,enableHiding:!1},...e],getCoreRowModel:Nu(),getPaginationRowModel:Ag(),onSortingChange:f,getSortedRowModel:qf(),onColumnFiltersChange:v,getFilteredRowModel:Gf(),onColumnVisibilityChange:g,onRowSelectionChange:w,state:{sorting:d,columnFilters:y,columnVisibility:h,rowSelection:b},enableRowSelection:!0});return s?o.jsx("div",{children:o.jsx(dW,{})}):t.length?o.jsxs("div",{className:"dm-card",children:[o.jsxs("div",{className:"dm-card-toolbar",children:[o.jsxs("div",{className:"dm-card-toolbar-left",children:[D&&o.jsx(Se,{variant:"destructive",size:"sm",className:"dm-card-toolbar-btn-delete",onClick:()=>{S(!0)},disabled:R,children:o.jsx(Lo,{className:"h-4 w-4"})}),o.jsxs("div",{className:"dm-card-toolbar-search",children:[o.jsx($l,{className:"dm-card-toolbar-search-icon"}),o.jsx(zt,{placeholder:"Search by title",value:(O=A.getColumn("title"))==null?void 0:O.getFilterValue(),onChange:j=>{var M;return(M=A.getColumn("title"))==null?void 0:M.setFilterValue(j.target.value)},className:"dm-card-toolbar-search-input"})]})]}),o.jsx("div",{className:"dm-card-toolbar-right",children:o.jsx(Za,{to:c("/data-marts/create"),children:o.jsxs(Se,{variant:"outline",className:"dm-card-toolbar-btn-primary",children:[o.jsx(_a,{className:"h-4 w-4"}),"New Data Mart"]})})})]}),o.jsx("div",{className:"dm-card-table-wrap",children:o.jsxs(Du,{className:"dm-card-table",role:"table","aria-label":"Data Marts table",children:[o.jsx(Ou,{className:"dm-card-table-header",children:A.getHeaderGroups().map(j=>o.jsx(sr,{className:"dm-card-table-header-row",children:j.headers.map(M=>o.jsx(Iu,{className:"[&:has([role=checkbox])]:pl-6 [&>[role=checkbox]]:translate-y-[2px]",style:M.column.id==="select"?{width:40,minWidth:40,maxWidth:40}:M.column.id==="actions"?{width:80,minWidth:80,maxWidth:80}:{width:`${String(M.getSize())}%`},children:M.isPlaceholder?null:gu(M.column.columnDef.header,M.getContext())},M.id))},j.id))}),o.jsx(Mu,{className:"dm-card-table-body",children:A.getRowModel().rows.length?A.getRowModel().rows.map(j=>o.jsx(sr,{"data-state":j.getIsSelected()&&"selected",className:"dm-card-table-body-row group",onClick:M=>{if(M.target instanceof HTMLElement&&(M.target.closest('[role="checkbox"]')||M.target.closest(".actions-cell")||M.target.closest('[role="menuitem"]')||M.target.closest('[data-state="open"]')))return;const F=j.original.id;l(`/data-marts/${F}/data-setup`)},children:j.getVisibleCells().map(M=>o.jsx(Sa,{className:`[&:has([role=checkbox])]pr-0 px-6 whitespace-normal [&>[role=checkbox]]:translate-y-[2px] ${M.column.id==="actions"?"actions-cell":""} ${M.column.id==="createdAt"?"whitespace-nowrap":""}`,style:M.column.id==="select"?{width:40,minWidth:40,maxWidth:40}:M.column.id==="actions"?{width:80,minWidth:80,maxWidth:80}:{width:`${String(M.column.getSize())}%`},children:gu(M.column.columnDef.cell,M.getContext())},M.id))},j.id)):o.jsx(sr,{children:o.jsx(Sa,{colSpan:e.length+1,className:"dm-card-table-body-row-empty",children:"No results"})})})]})}),o.jsxs("div",{className:"dm-card-pagination",children:[o.jsx(Se,{variant:"outline",size:"sm",onClick:()=>{A.previousPage()},disabled:!A.getCanPreviousPage(),children:"Previous"}),o.jsx(Se,{variant:"outline",size:"sm",onClick:()=>{A.nextPage()},disabled:!A.getCanNextPage(),children:"Next"})]}),o.jsx(ZY,{open:E,onOpenChange:S,children:o.jsxs(WY,{children:[o.jsxs(QY,{children:[o.jsx(JY,{children:"Are you sure?"}),o.jsxs(eW,{children:["You're about to delete ",Object.keys(b).length," selected data mart",Object.keys(b).length!==1?"s":"",". This action cannot be undone."]})]}),o.jsxs(XY,{children:[o.jsx(nW,{disabled:R,children:"Cancel"}),o.jsx(tW,{onClick:()=>{_()},disabled:R,className:"bg-destructive hover:bg-destructive/90",children:R?"Deleting...":"Delete"})]})]})})]}):o.jsx(uW,{})}function ml({column:e,children:t}){return o.jsxs(Se,{variant:"ghost",onClick:()=>{e.toggleSorting(e.getIsSorted()==="asc")},className:"group dm-card-table-header-row-btn",children:[t,o.jsxs("span",{className:"flex h-4 w-4 items-center justify-center","aria-hidden":"true",children:[e.getIsSorted()==="asc"&&o.jsx(zs,{className:"text-foreground h-4 w-4"}),e.getIsSorted()==="desc"&&o.jsx(Qa,{className:"text-foreground h-4 w-4"}),!e.getIsSorted()&&o.jsx("span",{className:"opacity-0 transition-opacity duration-150 group-hover:opacity-100",children:o.jsx(zs,{className:"text-muted-foreground h-4 w-4"})})]})]})}function F1({...e}){return o.jsx(ng,{"data-slot":"dialog",...e})}function mW({...e}){return o.jsx(rg,{"data-slot":"dialog-portal",...e})}function pW({className:e,...t}){return o.jsx(ag,{"data-slot":"dialog-overlay",className:ne("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function z1({className:e,children:t,showCloseButton:n=!0,...r}){return o.jsxs(mW,{"data-slot":"dialog-portal",children:[o.jsx(pW,{}),o.jsxs(sg,{"data-slot":"dialog-content",className:ne("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",e),...r,children:[t,n&&o.jsxs(og,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[o.jsx(cu,{}),o.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function V1({className:e,...t}){return o.jsx("div",{"data-slot":"dialog-header",className:ne("flex flex-col gap-2 text-center sm:text-left",e),...t})}function gW({className:e,...t}){return o.jsx("div",{"data-slot":"dialog-footer",className:ne("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}function $1({className:e,...t}){return o.jsx(Fb,{"data-slot":"dialog-title",className:ne("text-lg leading-none font-semibold",e),...t})}function H1({className:e,...t}){return o.jsx(zb,{"data-slot":"dialog-description",className:ne("text-muted-foreground text-sm",e),...t})}const yW=Ef("",{variants:{variant:{brand:"bg-primary text-white shadow-xs hover:bg-primary-hover focus-visible:ring-brand-blue-200 dark:focus-visible:ring-brand-blue-400"}}});function au({className:e,variant:t,...n}){return t==="brand"?o.jsx(Se,{variant:"default",className:ne(yW({variant:t}),e),...n}):o.jsx(Se,{variant:t,className:e,...n})}const Hr=({open:e,onOpenChange:t,title:n,description:r,confirmLabel:s="Confirm",cancelLabel:l,onConfirm:c,onCancel:d,variant:f="destructive",children:h})=>{const g=()=>{t(!1),d==null||d()};return o.jsx(F1,{open:e,onOpenChange:t,children:o.jsxs(z1,{children:[o.jsxs(V1,{children:[o.jsx($1,{children:n}),o.jsx(H1,{children:r})]}),h,o.jsxs(gW,{children:[l&&o.jsx(au,{variant:"secondary",onClick:g,children:l}),o.jsx(au,{variant:f,onClick:c,children:s})]})]})})},vW=({row:e,onDeleteSuccess:t})=>{const{scope:n}=Po(),[r,s]=p.useState(!1),[l,c]=p.useState(!1),{deleteDataMart:d,refreshList:f}=e3(),h=async()=>{try{await d(e.original.id),s(!1),await f(),t==null||t()}catch(g){console.error("Failed to delete data mart:",g)}};return o.jsxs("div",{className:"text-right",children:[o.jsxs(wr,{open:l,onOpenChange:c,children:[o.jsx(Rr,{asChild:!0,children:o.jsx(Se,{variant:"ghost",className:`dm-card-table-body-row-actionbtn opacity-0 transition-opacity ${l?"opacity-100":"group-hover:opacity-100"}`,"aria-label":"Open menu",children:o.jsx(Xa,{className:"dm-card-table-body-row-actionbtn-icon"})})}),o.jsxs(Tr,{align:"end",children:[o.jsx(vt,{children:o.jsxs(Za,{to:n(`/data-marts/${e.original.id}/data-setup`),className:"flex gap-2 text-left",children:[o.jsx(Tf,{className:"text-foreground h-4 w-4","aria-hidden":"true"}),o.jsx("span",{children:"Edit"})]})}),o.jsx(Ka,{}),o.jsxs(vt,{onClick:()=>{s(!0)},children:[o.jsx(Lo,{className:"h-4 w-4 text-red-600","aria-hidden":"true"}),o.jsx("span",{className:"text-red-600",children:"Delete"})]})]})]}),o.jsx(Hr,{open:r,onOpenChange:s,title:"Delete Data Mart",description:"Are you sure you want to delete this data mart? This action cannot be undone.",confirmLabel:"Delete",cancelLabel:"Cancel",onConfirm:()=>void h(),variant:"destructive"})]})};var Rn=(e=>(e.TITLE="title",e.DEFINITION_TYPE="definitionType",e.STORAGE_TYPE="storageType",e.STATUS="status",e.TRIGGERS_COUNT="triggersCount",e.REPORTS_COUNT="reportsCount",e.CREATED_AT="createdAt",e))(Rn||{});const mi={[Rn.TITLE]:"Title",[Rn.DEFINITION_TYPE]:"Input Source",[Rn.STORAGE_TYPE]:"Storage",[Rn.STATUS]:"Status",[Rn.TRIGGERS_COUNT]:"Triggers",[Rn.REPORTS_COUNT]:"Reports",[Rn.CREATED_AT]:"Created at"};function xW({table:e}){return o.jsx("div",{className:"px-4 text-right",children:o.jsxs(wr,{children:[o.jsx(Rr,{asChild:!0,children:o.jsx(Se,{variant:"ghost",className:"dm-card-table-body-row-actionbtn","aria-label":"Toggle columns",children:o.jsx(Xa,{className:"dm-card-table-body-row-actionbtn-icon"})})}),o.jsx(Tr,{align:"end",children:e.getAllColumns().filter(t=>t.getCanHide()&&t.id!=="actions").map(t=>{const n=mi[t.id]||t.id;return o.jsx(vt,{className:"capitalize",children:o.jsxs("label",{className:"flex items-center space-x-2",children:[o.jsx("button",{type:"button",role:"checkbox","aria-checked":t.getIsVisible(),"data-state":t.getIsVisible()?"checked":"unchecked","aria-label":`Toggle column ${t.id}`,className:"peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border bg-white shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white/8",onClick:()=>{t.toggleVisibility(!t.getIsVisible())},children:t.getIsVisible()&&o.jsx("span",{"data-state":"checked","data-slot":"checkbox-indicator",className:"pointer-events-none flex items-center justify-center text-current transition-none",children:o.jsx(fr,{className:"size-3.5 text-white"})})}),o.jsx("span",{children:n})]})},t.id)})})]})})}const jT={types:{[Ue.SQL]:{type:Ue.SQL,displayName:"SQL",icon:Ab},[Ue.TABLE]:{type:Ue.TABLE,displayName:"Table",icon:WL},[Ue.VIEW]:{type:Ue.VIEW,displayName:"View",icon:lL},[Ue.TABLE_PATTERN]:{type:Ue.TABLE_PATTERN,displayName:"Pattern",icon:g9},[Ue.CONNECTOR]:{type:Ue.CONNECTOR,displayName:"Connector",icon:Ob}},getInfo(e){return e?this.types[e]:{type:null,displayName:"—",icon:()=>null}}},bW=({onDeleteSuccess:e,connectors:t=[]}={})=>[{accessorKey:Rn.TITLE,size:40,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.TITLE]}),cell:({row:n})=>o.jsx("div",{children:n.getValue("title")})},{accessorFn:n=>{const r=n.definitionType;if(r===Ue.CONNECTOR){const s=n.definition,l=t.find(c=>c.name===s.connector.source.name);return(l==null?void 0:l.displayName)??(l==null?void 0:l.name)??"Unknown"}else{const{displayName:s}=jT.getInfo(r);return s}},id:Rn.DEFINITION_TYPE,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.DEFINITION_TYPE]}),cell:({row:n})=>{const r=n.original.definitionType;switch(r){case Ue.CONNECTOR:{const s=n.original.definition,l=t.find(c=>c.name===s.connector.source.name);return o.jsxs("div",{className:"text-muted-foreground flex items-center gap-2",children:[(l==null?void 0:l.logoBase64)&&o.jsx(_u,{base64:l.logoBase64,size:18}),(l==null?void 0:l.displayName)??"Unknown"]})}default:{const{displayName:s,icon:l}=jT.getInfo(r);return o.jsxs("div",{className:"text-muted-foreground flex items-center gap-2",children:[o.jsx(l,{className:"h-4 w-4"}),s]})}}}},{accessorKey:Rn.STORAGE_TYPE,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.STORAGE_TYPE]}),cell:({row:n})=>{const r=n.getValue("storageType"),s=n.original.storageTitle,{displayName:l,icon:c}=Bi.getInfo(r),d=s??l;return o.jsxs("div",{className:"text-muted-foreground flex items-center gap-2",children:[o.jsx(c,{size:18}),d]})}},{accessorKey:Rn.CREATED_AT,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.CREATED_AT]}),cell:({row:n})=>{const r=n.getValue("createdAt"),s=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"short",day:"numeric"}).format(r);return o.jsx("div",{className:"text-muted-foreground",children:s})}},{accessorKey:Rn.STATUS,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.STATUS]}),cell:({row:n})=>{const r=n.getValue("status");return o.jsx(Bf,{type:TK(r.code),variant:"ghost",showIcon:!1,children:r.displayName})}},{accessorKey:Rn.TRIGGERS_COUNT,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.TRIGGERS_COUNT]}),cell:({row:n})=>{const r=n.getValue("triggersCount")>0?n.getValue("triggersCount"):"—";return o.jsx("div",{className:"text-muted-foreground",children:r})}},{accessorKey:Rn.REPORTS_COUNT,size:15,header:({column:n})=>o.jsx(ml,{column:n,children:mi[Rn.REPORTS_COUNT]}),cell:({row:n})=>{const r=n.getValue("reportsCount")>0?n.getValue("reportsCount"):"—";return o.jsx("div",{className:"text-muted-foreground",children:r})}},{id:"actions",size:80,header:({table:n})=>o.jsx(xW,{table:n}),cell:({row:n})=>o.jsx(vW,{row:n,onDeleteSuccess:e})}];var nr=(e=>(e.FETCH_CONNECTORS_START="FETCH_CONNECTORS_START",e.FETCH_CONNECTORS_SUCCESS="FETCH_CONNECTORS_SUCCESS",e.FETCH_CONNECTORS_ERROR="FETCH_CONNECTORS_ERROR",e.FETCH_CONNECTOR_SPECIFICATION_START="FETCH_CONNECTOR_SPECIFICATION_START",e.FETCH_CONNECTOR_SPECIFICATION_SUCCESS="FETCH_CONNECTOR_SPECIFICATION_SUCCESS",e.FETCH_CONNECTOR_SPECIFICATION_ERROR="FETCH_CONNECTOR_SPECIFICATION_ERROR",e.FETCH_CONNECTOR_FIELDS_START="FETCH_CONNECTOR_FIELDS_START",e.FETCH_CONNECTOR_FIELDS_SUCCESS="FETCH_CONNECTOR_FIELDS_SUCCESS",e.FETCH_CONNECTOR_FIELDS_ERROR="FETCH_CONNECTOR_FIELDS_ERROR",e))(nr||{});const SW={connectors:[],connectorSpecification:null,connectorFields:null,loading:!1,loadingSpecification:!1,loadingFields:!1,error:null};function CW(e,t){switch(t.type){case nr.FETCH_CONNECTORS_START:return{...e,loading:!0,error:null};case nr.FETCH_CONNECTORS_SUCCESS:return{...e,connectors:t.payload,loading:!1,error:null};case nr.FETCH_CONNECTORS_ERROR:return{...e,loading:!1,error:t.payload};case nr.FETCH_CONNECTOR_SPECIFICATION_START:return{...e,loadingSpecification:!0,error:null};case nr.FETCH_CONNECTOR_SPECIFICATION_SUCCESS:return{...e,connectorSpecification:t.payload,loadingSpecification:!1,error:null};case nr.FETCH_CONNECTOR_SPECIFICATION_ERROR:return{...e,loadingSpecification:!1,error:t.payload};case nr.FETCH_CONNECTOR_FIELDS_START:return{...e,loadingFields:!0,error:null};case nr.FETCH_CONNECTOR_FIELDS_SUCCESS:return{...e,connectorFields:t.payload,loadingFields:!1,error:null};case nr.FETCH_CONNECTOR_FIELDS_ERROR:return{...e,loadingFields:!1,error:t.payload};default:return e}}const w3=p.createContext(void 0);function yu({children:e}){const[t,n]=p.useReducer(CW,SW);return o.jsx(w3.Provider,{value:{state:t,dispatch:n},children:e})}function EW(){const e=p.useContext(w3);if(!e)throw new Error("useConnectorContext must be used within a ConnectorContextProvider");return e}var os=(e=>(e.STRING="string",e.NUMBER="number",e.BOOLEAN="boolean",e.OBJECT="object",e.ARRAY="array",e.DATE="date",e))(os||{});class Qm extends Zl{constructor(){super("/connectors")}async getAvailableConnectors(){return this.get("/")}async getConnectorSpecification(t){return this.get(`/${t}/specification`)}async getConnectorFields(t){return this.get(`/${t}/fields`)}}function R3(e){return e.map(t=>({name:t.name,displayName:t.title??t.name,description:t.description??"",logoBase64:t.logo,docUrl:t.docUrl})).sort((t,n)=>t.displayName.localeCompare(n.displayName))}function Yl(){const{state:e,dispatch:t}=EW(),n=p.useMemo(()=>R3(e.connectors),[e.connectors]),r=p.useCallback(async()=>{t({type:nr.FETCH_CONNECTORS_START});try{const d=await new Qm().getAvailableConnectors();t({type:nr.FETCH_CONNECTORS_SUCCESS,payload:d})}catch(c){const d=c instanceof Error?c.message:"Unknown error";t({type:nr.FETCH_CONNECTORS_ERROR,payload:d}),Pe({event:"connector_error",category:"Connector",action:"ListError",label:d})}},[t]),s=p.useCallback(async c=>{t({type:nr.FETCH_CONNECTOR_SPECIFICATION_START});try{const f=await new Qm().getConnectorSpecification(c);t({type:nr.FETCH_CONNECTOR_SPECIFICATION_SUCCESS,payload:f})}catch(d){const f=d instanceof Error?d.message:"Unknown error";t({type:nr.FETCH_CONNECTOR_SPECIFICATION_ERROR,payload:f}),Pe({event:"connector_error",category:"Connector",action:"SpecificationError",label:c})}},[t]),l=p.useCallback(async c=>{t({type:nr.FETCH_CONNECTOR_FIELDS_START});try{const f=await new Qm().getConnectorFields(c);t({type:nr.FETCH_CONNECTOR_FIELDS_SUCCESS,payload:f})}catch(d){const f=d instanceof Error?d.message:"Unknown error";t({type:nr.FETCH_CONNECTOR_FIELDS_ERROR,payload:f}),Pe({event:"connector_error",category:"Connector",action:"FieldsError",label:c})}},[t]);return{connectors:n,connectorSpecification:e.connectorSpecification,connectorFields:e.connectorFields,loading:e.loading,loadingSpecification:e.loadingSpecification,loadingFields:e.loadingFields,error:e.error,fetchAvailableConnectors:r,fetchConnectorSpecification:s,fetchConnectorFields:l}}const wW=()=>{const{items:e,loadDataMarts:t,deleteDataMart:n,refreshList:r,loading:s}=e3(),{connectors:l,fetchAvailableConnectors:c}=Yl();return p.useEffect(()=>{c()},[c]),p.useEffect(()=>{t()},[t]),o.jsx(hW,{columns:bW({connectors:l}),data:e,deleteDataMart:n,refetchDataMarts:r,isLoading:s})};function _T(){return o.jsxs("div",{className:"dm-page",children:[o.jsx("header",{className:"dm-page-header",children:o.jsx("h1",{className:"dm-page-header-title",children:"Data Marts"})}),o.jsx("div",{className:"dm-page-content",children:o.jsx(rZ,{children:o.jsx(yu,{children:o.jsx(wW,{})})})})]})}const T3=p.createContext(void 0),Ld=e=>{const t=OK(e);return{...e,canPublish:t.length===0,validationErrors:t}};var Ga=(e=>(e.CONNECTED="CONNECTED",e.CONNECTED_WITH_DEFINITION_MISMATCH="CONNECTED_WITH_DEFINITION_MISMATCH",e.DISCONNECTED="DISCONNECTED",e))(Ga||{}),pf=(e=>(e.NULLABLE="NULLABLE",e.REQUIRED="REQUIRED",e.REPEATED="REPEATED",e))(pf||{}),kn=(e=>(e.INTEGER="INTEGER",e.FLOAT="FLOAT",e.NUMERIC="NUMERIC",e.BIGNUMERIC="BIGNUMERIC",e.STRING="STRING",e.BYTES="BYTES",e.BOOLEAN="BOOLEAN",e.DATE="DATE",e.TIME="TIME",e.DATETIME="DATETIME",e.TIMESTAMP="TIMESTAMP",e.GEOGRAPHY="GEOGRAPHY",e.JSON="JSON",e.RECORD="RECORD",e.STRUCT="STRUCT",e.RANGE="RANGE",e.INTERVAL="INTERVAL",e))(kn||{}),B1=(e=>(e.BOOLEAN="BOOLEAN",e.TINYINT="TINYINT",e.SMALLINT="SMALLINT",e.INTEGER="INTEGER",e.BIGINT="BIGINT",e.REAL="REAL",e.FLOAT="FLOAT",e.DOUBLE="DOUBLE",e.DECIMAL="DECIMAL",e.CHAR="CHAR",e.VARCHAR="VARCHAR",e.STRING="STRING",e.BINARY="BINARY",e.VARBINARY="VARBINARY",e.DATE="DATE",e.TIME="TIME",e.TIMESTAMP="TIMESTAMP",e.TIME_WITH_TIME_ZONE="TIME WITH TIME ZONE",e.TIMESTAMP_WITH_TIME_ZONE="TIMESTAMP WITH TIME ZONE",e.INTERVAL_YEAR_TO_MONTH="INTERVAL YEAR TO MONTH",e.INTERVAL_DAY_TO_SECOND="INTERVAL DAY TO SECOND",e.ARRAY="ARRAY",e.MAP="MAP",e.STRUCT="STRUCT",e.ROW="ROW",e.JSON="JSON",e))(B1||{});const RW=(e,t)=>!!(e!==Ue.CONNECTOR||t!==null&&t.fields.some(r=>r.status===Ga.CONNECTED)),j3={dataMart:null,isLoading:!1,error:null,runs:[]};function TW(e,t){switch(t.type){case"FETCH_DATA_MART_START":case"CREATE_DATA_MART_START":case"UPDATE_DATA_MART_START":case"UPDATE_DATA_MART_TITLE_START":case"UPDATE_DATA_MART_DESCRIPTION_START":case"UPDATE_DATA_MART_DEFINITION_START":case"DELETE_DATA_MART_START":case"PUBLISH_DATA_MART_START":case"RUN_DATA_MART_START":case"ACTUALIZE_DATA_MART_SCHEMA_START":case"UPDATE_DATA_MART_SCHEMA_START":case"FETCH_DATA_MART_RUNS_START":case"LOAD_MORE_DATA_MART_RUNS_START":return{...e,isLoading:!0,error:null};case"CREATE_DATA_MART_SUCCESS":return{...e,isLoading:!1,error:null};case"FETCH_DATA_MART_SUCCESS":case"UPDATE_DATA_MART_SUCCESS":case"PUBLISH_DATA_MART_SUCCESS":case"ACTUALIZE_DATA_MART_SCHEMA_SUCCESS":case"UPDATE_DATA_MART_SCHEMA_SUCCESS":return{...e,isLoading:!1,error:null,dataMart:Ld(t.payload)};case"UPDATE_DATA_MART_TITLE_SUCCESS":return e.dataMart?{...e,isLoading:!1,error:null,dataMart:Ld({...e.dataMart,title:t.payload,modifiedAt:new Date})}:e;case"UPDATE_DATA_MART_DESCRIPTION_SUCCESS":return e.dataMart?{...e,isLoading:!1,error:null,dataMart:Ld({...e.dataMart,description:t.payload,modifiedAt:new Date})}:e;case"UPDATE_DATA_MART_STORAGE":return e.dataMart?{...e,dataMart:Ld({...e.dataMart,storage:t.payload,modifiedAt:new Date})}:e;case"UPDATE_DATA_MART_DEFINITION_SUCCESS":return e.dataMart?{...e,isLoading:!1,error:null,dataMart:Ld({...e.dataMart,definitionType:t.payload.definitionType,definition:t.payload.definition,modifiedAt:new Date})}:e;case"DELETE_DATA_MART_SUCCESS":return{...e,isLoading:!1,error:null,dataMart:null};case"RUN_DATA_MART_SUCCESS":return{...e,isLoading:!1,error:null};case"FETCH_DATA_MART_RUNS_SUCCESS":return{...e,isLoading:!1,error:null,runs:t.payload};case"LOAD_MORE_DATA_MART_RUNS_SUCCESS":return{...e,isLoading:!1,error:null,runs:[...e.runs,...t.payload]};case"FETCH_DATA_MART_ERROR":case"CREATE_DATA_MART_ERROR":case"UPDATE_DATA_MART_ERROR":case"UPDATE_DATA_MART_TITLE_ERROR":case"UPDATE_DATA_MART_DESCRIPTION_ERROR":case"UPDATE_DATA_MART_DEFINITION_ERROR":case"DELETE_DATA_MART_ERROR":case"PUBLISH_DATA_MART_ERROR":case"RUN_DATA_MART_ERROR":case"ACTUALIZE_DATA_MART_SCHEMA_ERROR":case"UPDATE_DATA_MART_SCHEMA_ERROR":case"FETCH_DATA_MART_RUNS_ERROR":case"LOAD_MORE_DATA_MART_RUNS_ERROR":return{...e,isLoading:!1,error:t.payload};case"RESET":return j3;default:return e}}function Fo(){const e=p.useContext(T3);if(e===void 0)throw new Error("useDataMartContext must be used within a DataMartProvider");return e}class jW{mapFromDto(t){const n=t.config,r=t.credentials;let s="";return r&&Object.keys(r).length>0&&(s=JSON.stringify(r,null,2)),{id:t.id,title:t.title,type:Ie.GOOGLE_BIGQUERY,createdAt:new Date(t.createdAt),modifiedAt:new Date(t.modifiedAt),credentials:{serviceAccount:s},config:{projectId:(n==null?void 0:n.projectId)??"",location:(n==null?void 0:n.location)??""}}}mapToUpdateRequest(t){const n={config:{projectId:t.config.projectId,location:t.config.location}};return t.credentials&&(n.credentials={...JSON.parse(t.credentials.serviceAccount)}),n}}class _W{mapFromDto(t){const n=t.config,r=t.credentials;return{id:t.id,title:t.title,type:Ie.AWS_ATHENA,createdAt:new Date(t.createdAt),modifiedAt:new Date(t.modifiedAt),credentials:{accessKeyId:(r==null?void 0:r.accessKeyId)??"",secretAccessKey:(r==null?void 0:r.secretAccessKey)??""},config:{region:(n==null?void 0:n.region)??"",outputBucket:(n==null?void 0:n.outputBucket)??""}}}mapToUpdateRequest(t){const n={config:{region:t.config.region,outputBucket:t.config.outputBucket}};return t.credentials&&(n.credentials={accessKeyId:t.credentials.accessKeyId,secretAccessKey:t.credentials.secretAccessKey}),n}}const _3={getMapper(e){switch(e){case Ie.GOOGLE_BIGQUERY:return new jW;case Ie.AWS_ATHENA:return new _W;default:throw new Error(`Unknown storage type: ${e}`)}}};function Xm(e){return _3.getMapper(e.type).mapFromDto(e)}function NW(e){const t=_3.getMapper(e.type);return{title:e.title,...t.mapToUpdateRequest(e)}}function AW(e){return{id:e.id,type:e.type,title:e.title,createdAt:new Date(e.createdAt),modifiedAt:new Date(e.modifiedAt)}}function DW(e){return{type:e}}let Om=null;async function OW(){if(Om)return Om;const e=await MW();return Om=R3(e),Om}async function MW(){return await new Qm().getAvailableConnectors()}async function IW(e){const t=await OW();return t.length===0?null:t.find(r=>r.name===e)??null}function kW(e,t){const n=t.find(r=>r.name===e.source.name);return(n==null?void 0:n.displayName)??e.source.name}function LW(e){return{sqlQuery:e.sqlQuery}}function PW(e){return{sqlQuery:e.sqlQuery}}function UW(e){return{fullyQualifiedName:e.fullyQualifiedName}}function FW(e){return{fullyQualifiedName:e.fullyQualifiedName}}function zW(e){return{fullyQualifiedName:e.fullyQualifiedName}}function VW(e){return{fullyQualifiedName:e.fullyQualifiedName}}function $W(e){return{pattern:e.pattern}}function HW(e){return{pattern:e.pattern}}function BW(e){return{connector:{source:{name:e.connector.source.name,configuration:e.connector.source.configuration,node:e.connector.source.node,fields:e.connector.source.fields},storage:{fullyQualifiedName:e.connector.storage.fullyQualifiedName}}}}function GW(e){const t=e.connector;return{connector:{source:{name:t.source.name,configuration:t.source.configuration,node:t.source.node,fields:t.source.fields},storage:{fullyQualifiedName:t.storage.fullyQualifiedName}}}}async function qW(e,t){if(!e||!t)return null;switch(e){case Ue.SQL:return PW(t);case Ue.TABLE:return FW(t);case Ue.VIEW:return VW(t);case Ue.TABLE_PATTERN:return HW(t);case Ue.CONNECTOR:{const n=GW(t);return n.connector.info=await IW(n.connector.source.name),n}default:return console.warn(`Unknown definition type: ${String(e)}`),null}}async function Uc(e){const t={id:e.id,title:e.title,description:e.description,status:_4.getInfo(e.status),storage:Xm(e.storage),definitionType:e.definitionType,definition:await qW(e.definitionType,e.definition),schema:e.schema,connectorState:e.connectorState??null,createdAt:new Date(e.createdAt),modifiedAt:new Date(e.modifiedAt),canPublish:!1,canActualizeSchema:!1,validationErrors:[]};return t.canActualizeSchema=RW(t.definitionType,t.schema),t}function ZW(e){return{id:e.id,title:e.title}}const KW=e=>({id:e.id,status:e.status,createdAt:new Date(e.createdAt),logs:e.logs??[],errors:e.errors??[],definitionRun:e.definitionRun,type:e.type,triggerType:e.runType,startedAt:e.startedAt?new Date(e.startedAt):null,finishedAt:e.finishedAt?new Date(e.finishedAt):null,reportDefinition:e.reportDefinition?e.reportDefinition:null,reportId:e.reportId}),NT=e=>e.runs.map(KW);function N3({children:e}){const[t,n]=p.useReducer(TW,j3),r=p.useCallback(async A=>{try{n({type:"FETCH_DATA_MART_START"});const O=await nn.getDataMartById(A),j=await Uc(O);n({type:"FETCH_DATA_MART_SUCCESS",payload:j})}catch(O){n({type:"FETCH_DATA_MART_ERROR",payload:yn(O)})}},[]),s=p.useCallback(async A=>{try{n({type:"CREATE_DATA_MART_START"});const O=await nn.createDataMart(A),j=ZW(O);return n({type:"CREATE_DATA_MART_SUCCESS",payload:j}),Pe({event:"data_mart_created",category:"DataMart",action:"Create",label:j.id}),At.success("Data Mart created"),j}catch(O){const j=yn(O);throw n({type:"CREATE_DATA_MART_ERROR",payload:j}),Pe({event:"data_mart_error",category:"DataMart",action:"CreateError",label:j.message}),O}},[]),l=p.useCallback(async(A,O)=>{try{n({type:"UPDATE_DATA_MART_START"});const j=await nn.updateDataMart(A,O),M=await Uc(j);n({type:"UPDATE_DATA_MART_SUCCESS",payload:M}),Pe({event:"data_mart_updated",category:"DataMart",action:"Update",label:M.id})}catch(j){const M=yn(j);n({type:"UPDATE_DATA_MART_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"UpdateError",label:M.message})}},[]),c=p.useCallback(async A=>{try{n({type:"DELETE_DATA_MART_START"}),await nn.deleteDataMart(A),n({type:"DELETE_DATA_MART_SUCCESS"}),Pe({event:"data_mart_deleted",category:"DataMart",action:"Delete",label:A}),At.success("Data Mart deleted")}catch(O){const j=yn(O);n({type:"DELETE_DATA_MART_ERROR",payload:j}),Pe({event:"data_mart_error",category:"DataMart",action:"DeleteError",label:j.message})}},[]),d=p.useCallback(async(A,O)=>{try{n({type:"UPDATE_DATA_MART_TITLE_START"}),await nn.updateDataMartTitle(A,O),n({type:"UPDATE_DATA_MART_TITLE_SUCCESS",payload:O}),Pe({event:"data_mart_updated",category:"DataMart",action:"UpdateTitle",label:O}),At.success("Title updated")}catch(j){const M=yn(j);n({type:"UPDATE_DATA_MART_TITLE_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"UpdateTitleError",label:M.message})}},[]),f=p.useCallback(async(A,O)=>{try{n({type:"UPDATE_DATA_MART_DESCRIPTION_START"}),await nn.updateDataMartDescription(A,O),n({type:"UPDATE_DATA_MART_DESCRIPTION_SUCCESS",payload:O??""}),Pe({event:"data_mart_updated",category:"DataMart",action:"UpdateDescription"}),At.success("Description updated")}catch(j){const M=yn(j);n({type:"UPDATE_DATA_MART_DESCRIPTION_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"UpdateDescriptionError",label:M.message})}},[]),h=p.useCallback(A=>{n({type:"UPDATE_DATA_MART_STORAGE",payload:A})},[]),g=p.useCallback(async(A,O,j)=>{try{n({type:"UPDATE_DATA_MART_DEFINITION_START"});let M;switch(O){case Ue.SQL:M={definitionType:O,definition:LW(j)};break;case Ue.TABLE:M={definitionType:O,definition:UW(j)};break;case Ue.VIEW:M={definitionType:O,definition:zW(j)};break;case Ue.TABLE_PATTERN:M={definitionType:O,definition:$W(j)};break;case Ue.CONNECTOR:{const Y=j;let Z;for(const ee of Y.connector.source.configuration){const $=ee;if($._copiedFrom){Z=$._copiedFrom.dataMartId;break}}M={definitionType:Ue.CONNECTOR,definition:BW(Y),sourceDataMartId:Z};break}default:throw new Error(`Unsupported definition type: ${String(O)}`)}const F=await nn.updateDataMartDefinition(A,M),G=await Uc(F);n({type:"UPDATE_DATA_MART_DEFINITION_SUCCESS",payload:{definitionType:O,definition:j}}),n({type:"UPDATE_DATA_MART_SUCCESS",payload:G}),Pe({event:"data_mart_updated",category:"DataMart",action:"UpdateDefinition",label:O})}catch(M){const F=yn(M);n({type:"UPDATE_DATA_MART_DEFINITION_ERROR",payload:F}),Pe({event:"data_mart_error",category:"DataMart",action:"UpdateDefinitionError",label:F.message})}},[]),y=p.useCallback(async A=>{try{n({type:"PUBLISH_DATA_MART_START"});const O=await nn.publishDataMart(A),j=await Uc(O);n({type:"PUBLISH_DATA_MART_SUCCESS",payload:j}),At.success("Data Mart published")}catch(O){const j=yn(O);throw n({type:"PUBLISH_DATA_MART_ERROR",payload:j}),Pe({event:"data_mart_error",category:"DataMart",action:"PublishError",label:j.message}),O}},[]),v=p.useCallback(async(A,O=5,j=0,M)=>{try{M!=null&&M.silent||n({type:"FETCH_DATA_MART_RUNS_START"});const F=await nn.getDataMartRuns(A,O,j,M!=null&&M.silent?{skipLoadingIndicator:!0}:void 0),G=NT(F);return n({type:"FETCH_DATA_MART_RUNS_SUCCESS",payload:G}),G}catch(F){throw n({type:"FETCH_DATA_MART_RUNS_ERROR",payload:yn(F)}),F}},[]),b=p.useCallback(async(A,O,j=5)=>{try{n({type:"LOAD_MORE_DATA_MART_RUNS_START"});const M=await nn.getDataMartRuns(A,j,O),F=NT(M);return n({type:"LOAD_MORE_DATA_MART_RUNS_SUCCESS",payload:F}),F}catch(M){throw n({type:"LOAD_MORE_DATA_MART_RUNS_ERROR",payload:yn(M)}),M}},[]),w=p.useCallback(async A=>{const O=At.loading("Manual run started");try{n({type:"RUN_DATA_MART_START"}),await nn.runDataMart(A.id,A.payload),n({type:"RUN_DATA_MART_SUCCESS"})}catch(j){At.dismiss(O);const M=yn(j);n({type:"RUN_DATA_MART_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"RunError",label:M.message})}},[]),E=p.useCallback(async(A,O)=>{try{await nn.cancelDataMartRun(A,O),await v(A),At.success("Data Mart run canceled")}catch(j){const M=yn(j);n({type:"RUN_DATA_MART_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"CancelRunError",label:M.message})}},[v]),S=p.useCallback(async A=>{try{n({type:"ACTUALIZE_DATA_MART_SCHEMA_START"});const O=await nn.actualizeDataMartSchema(A),j=await Uc(O);n({type:"ACTUALIZE_DATA_MART_SCHEMA_SUCCESS",payload:j}),At.success("Output schema actualized")}catch(O){const j=yn(O);n({type:"ACTUALIZE_DATA_MART_SCHEMA_ERROR",payload:j}),Pe({event:"data_mart_error",category:"DataMart",action:"ActualizeSchemaError",label:j.message})}},[]),R=p.useCallback(async(A,O)=>{try{n({type:"UPDATE_DATA_MART_SCHEMA_START"});const j=await nn.updateDataMartSchema(A,{schema:O}),M=await Uc(j);n({type:"UPDATE_DATA_MART_SCHEMA_SUCCESS",payload:M}),At.success("Output schema updated")}catch(j){const M=yn(j);n({type:"UPDATE_DATA_MART_SCHEMA_ERROR",payload:M}),Pe({event:"data_mart_error",category:"DataMart",action:"UpdateSchemaError",label:M.message})}},[]),T=p.useCallback(()=>{n({type:"RESET"})},[]),_=p.useCallback(()=>t.error?t.error.message:null,[t.error]),D={...t,getDataMart:r,createDataMart:s,updateDataMart:l,deleteDataMart:c,updateDataMartTitle:d,updateDataMartDescription:f,updateDataMartStorage:h,updateDataMartDefinition:g,publishDataMart:y,runDataMart:w,cancelDataMartRun:E,actualizeDataMartSchema:S,updateDataMartSchema:R,getDataMartRuns:v,loadMoreDataMartRuns:b,getErrorMessage:_,reset:T};return o.jsx(T3.Provider,{value:D,children:e})}var Kf=e=>e.type==="checkbox",bl=e=>e instanceof Date,ea=e=>e==null;const A3=e=>typeof e=="object";var Wn=e=>!ea(e)&&!Array.isArray(e)&&A3(e)&&!bl(e),D3=e=>Wn(e)&&e.target?Kf(e.target)?e.target.checked:e.target.value:e,YW=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,O3=(e,t)=>e.has(YW(t)),WW=e=>{const t=e.constructor&&e.constructor.prototype;return Wn(t)&&t.hasOwnProperty("isPrototypeOf")},G1=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function tr(e){let t;const n=Array.isArray(e),r=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)t=new Date(e);else if(!(G1&&(e instanceof Blob||r))&&(n||Wn(e)))if(t=n?[]:Object.create(Object.getPrototypeOf(e)),!n&&!WW(e))t=e;else for(const s in e)e.hasOwnProperty(s)&&(t[s]=tr(e[s]));else return e;return t}var Dg=e=>/^\w*$/.test(e),Tn=e=>e===void 0,q1=e=>Array.isArray(e)?e.filter(Boolean):[],Z1=e=>q1(e.replace(/["|']|\]/g,"").split(/\.|\[/)),Ae=(e,t,n)=>{if(!t||!Wn(e))return n;const r=(Dg(t)?[t]:Z1(t)).reduce((s,l)=>ea(s)?s:s[l],e);return Tn(r)||r===e?Tn(e[t])?n:e[t]:r},ha=e=>typeof e=="boolean",Yt=(e,t,n)=>{let r=-1;const s=Dg(t)?[t]:Z1(t),l=s.length,c=l-1;for(;++r<l;){const d=s[r];let f=n;if(r!==c){const h=e[d];f=Wn(h)||Array.isArray(h)?h:isNaN(+s[r+1])?{}:[]}if(d==="__proto__"||d==="constructor"||d==="prototype")return;e[d]=f,e=e[d]}};const Op={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},ls={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},xo={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},K1=ye.createContext(null);K1.displayName="HookFormContext";const ku=()=>ye.useContext(K1),M3=e=>{const{children:t,...n}=e;return ye.createElement(K1.Provider,{value:n},t)};var I3=(e,t,n,r=!0)=>{const s={defaultValues:t._defaultValues};for(const l in e)Object.defineProperty(s,l,{get:()=>{const c=l;return t._proxyFormState[c]!==ls.all&&(t._proxyFormState[c]=!r||ls.all),n&&(n[c]=!0),e[c]}});return s};const Y1=typeof window<"u"?ye.useLayoutEffect:ye.useEffect;function k3(e){const t=ku(),{control:n=t.control,disabled:r,name:s,exact:l}=e||{},[c,d]=ye.useState(n._formState),f=ye.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return Y1(()=>n._subscribe({name:s,formState:f.current,exact:l,callback:h=>{!r&&d({...n._formState,...h})}}),[s,r,l]),ye.useEffect(()=>{f.current.isValid&&n._setValid(!0)},[n]),ye.useMemo(()=>I3(c,n,f.current,!1),[c,n])}var ya=e=>typeof e=="string",B0=(e,t,n,r,s)=>ya(e)?(r&&t.watch.add(e),Ae(n,e,s)):Array.isArray(e)?e.map(l=>(r&&t.watch.add(l),Ae(n,l))):(r&&(t.watchAll=!0),n),G0=e=>ea(e)||!A3(e);function cs(e,t,n=new WeakSet){if(G0(e)||G0(t))return e===t;if(bl(e)&&bl(t))return e.getTime()===t.getTime();const r=Object.keys(e),s=Object.keys(t);if(r.length!==s.length)return!1;if(n.has(e)||n.has(t))return!0;n.add(e),n.add(t);for(const l of r){const c=e[l];if(!s.includes(l))return!1;if(l!=="ref"){const d=t[l];if(bl(c)&&bl(d)||Wn(c)&&Wn(d)||Array.isArray(c)&&Array.isArray(d)?!cs(c,d,n):c!==d)return!1}}return!0}function QW(e){const t=ku(),{control:n=t.control,name:r,defaultValue:s,disabled:l,exact:c,compute:d}=e||{},f=ye.useRef(s),h=ye.useRef(d),g=ye.useRef(void 0),y=ye.useRef(n),v=ye.useRef(r);h.current=d;const[b,w]=ye.useState(()=>{const D=n._getWatch(r,f.current);return h.current?h.current(D):D}),E=ye.useCallback(D=>{const A=B0(r,n._names,D||n._formValues,!1,f.current);return h.current?h.current(A):A},[n._formValues,n._names,r]),S=ye.useCallback(D=>{if(!l){const A=B0(r,n._names,D||n._formValues,!1,f.current);if(h.current){const O=h.current(A);cs(O,g.current)||(w(O),g.current=O)}else w(A)}},[n._formValues,n._names,l,r]);Y1(()=>((y.current!==n||!cs(v.current,r))&&(y.current=n,v.current=r,S()),n._subscribe({name:r,formState:{values:!0},exact:c,callback:D=>{S(D.values)}})),[n,c,r,S]),ye.useEffect(()=>n._removeUnmounted());const R=y.current!==n,T=v.current,_=ye.useMemo(()=>{if(l)return null;const D=!R&&!cs(T,r);return R||D?E():null},[l,R,r,T,E]);return _!==null?_:b}function XW(e){const t=ku(),{name:n,disabled:r,control:s=t.control,shouldUnregister:l,defaultValue:c}=e,d=O3(s._names.array,n),f=ye.useMemo(()=>Ae(s._formValues,n,Ae(s._defaultValues,n,c)),[s,n,c]),h=QW({control:s,name:n,defaultValue:f,exact:!0}),g=k3({control:s,name:n,exact:!0}),y=ye.useRef(e),v=ye.useRef(void 0),b=ye.useRef(s.register(n,{...e.rules,value:h,...ha(e.disabled)?{disabled:e.disabled}:{}}));y.current=e;const w=ye.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!Ae(g.errors,n)},isDirty:{enumerable:!0,get:()=>!!Ae(g.dirtyFields,n)},isTouched:{enumerable:!0,get:()=>!!Ae(g.touchedFields,n)},isValidating:{enumerable:!0,get:()=>!!Ae(g.validatingFields,n)},error:{enumerable:!0,get:()=>Ae(g.errors,n)}}),[g,n]),E=ye.useCallback(_=>b.current.onChange({target:{value:D3(_),name:n},type:Op.CHANGE}),[n]),S=ye.useCallback(()=>b.current.onBlur({target:{value:Ae(s._formValues,n),name:n},type:Op.BLUR}),[n,s._formValues]),R=ye.useCallback(_=>{const D=Ae(s._fields,n);D&&_&&(D._f.ref={focus:()=>_.focus&&_.focus(),select:()=>_.select&&_.select(),setCustomValidity:A=>_.setCustomValidity(A),reportValidity:()=>_.reportValidity()})},[s._fields,n]),T=ye.useMemo(()=>({name:n,value:h,...ha(r)||g.disabled?{disabled:g.disabled||r}:{},onChange:E,onBlur:S,ref:R}),[n,r,g.disabled,E,S,R,h]);return ye.useEffect(()=>{const _=s._options.shouldUnregister||l,D=v.current;D&&D!==n&&!d&&s.unregister(D),s.register(n,{...y.current.rules,...ha(y.current.disabled)?{disabled:y.current.disabled}:{}});const A=(O,j)=>{const M=Ae(s._fields,O);M&&M._f&&(M._f.mount=j)};if(A(n,!0),_){const O=tr(Ae(s._options.defaultValues,n,y.current.defaultValue));Yt(s._defaultValues,n,O),Tn(Ae(s._formValues,n))&&Yt(s._formValues,n,O)}return!d&&s.register(n),v.current=n,()=>{(d?_&&!s._state.action:_)?s.unregister(n):A(n,!1)}},[n,s,d,l]),ye.useEffect(()=>{s._setDisabledField({disabled:r,name:n})},[r,n,s]),ye.useMemo(()=>({field:T,formState:g,fieldState:w}),[T,g,w])}const JW=e=>e.render(XW(e));var W1=(e,t,n,r,s)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[r]:s||!0}}:{},Wd=e=>Array.isArray(e)?e:[e],AT=()=>{let e=[];return{get observers(){return e},next:s=>{for(const l of e)l.next&&l.next(s)},subscribe:s=>(e.push(s),{unsubscribe:()=>{e=e.filter(l=>l!==s)}}),unsubscribe:()=>{e=[]}}};function L3(e,t){const n={};for(const r in e)if(e.hasOwnProperty(r)){const s=e[r],l=t[r];if(s&&Wn(s)&&l){const c=L3(s,l);Wn(c)&&(n[r]=c)}else e[r]&&(n[r]=l)}return n}var Pr=e=>Wn(e)&&!Object.keys(e).length,Q1=e=>e.type==="file",us=e=>typeof e=="function",Mp=e=>{if(!G1)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},P3=e=>e.type==="select-multiple",X1=e=>e.type==="radio",eQ=e=>X1(e)||Kf(e),Gx=e=>Mp(e)&&e.isConnected;function tQ(e,t){const n=t.slice(0,-1).length;let r=0;for(;r<n;)e=Tn(e)?r++:e[t[r++]];return e}function nQ(e){for(const t in e)if(e.hasOwnProperty(t)&&!Tn(e[t]))return!1;return!0}function Zn(e,t){const n=Array.isArray(t)?t:Dg(t)?[t]:Z1(t),r=n.length===1?e:tQ(e,n),s=n.length-1,l=n[s];return r&&delete r[l],s!==0&&(Wn(r)&&Pr(r)||Array.isArray(r)&&nQ(r))&&Zn(e,n.slice(0,-1)),e}var rQ=e=>{for(const t in e)if(us(e[t]))return!0;return!1};function U3(e){return Array.isArray(e)||Wn(e)&&!rQ(e)}function q0(e,t={}){for(const n in e)U3(e[n])?(t[n]=Array.isArray(e[n])?[]:{},q0(e[n],t[n])):Tn(e[n])||(t[n]=!0);return t}function Gc(e,t,n){n||(n=q0(t));for(const r in e)U3(e[r])?Tn(t)||G0(n[r])?n[r]=q0(e[r],Array.isArray(e[r])?[]:{}):Gc(e[r],ea(t)?{}:t[r],n[r]):n[r]=!cs(e[r],t[r]);return n}const DT={value:!1,isValid:!1},OT={value:!0,isValid:!0};var F3=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(n=>n&&n.checked&&!n.disabled).map(n=>n.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!Tn(e[0].attributes.value)?Tn(e[0].value)||e[0].value===""?OT:{value:e[0].value,isValid:!0}:OT:DT}return DT},z3=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:r})=>Tn(e)?e:t?e===""?NaN:e&&+e:n&&ya(e)?new Date(e):r?r(e):e;const MT={isValid:!1,value:null};var V3=e=>Array.isArray(e)?e.reduce((t,n)=>n&&n.checked&&!n.disabled?{isValid:!0,value:n.value}:t,MT):MT;function IT(e){const t=e.ref;return Q1(t)?t.files:X1(t)?V3(e.refs).value:P3(t)?[...t.selectedOptions].map(({value:n})=>n):Kf(t)?F3(e.refs).value:z3(Tn(t.value)?e.ref.value:t.value,e)}var aQ=(e,t,n,r)=>{const s={};for(const l of e){const c=Ae(t,l);c&&Yt(s,l,c._f)}return{criteriaMode:n,names:[...e],fields:s,shouldUseNativeValidation:r}},Ip=e=>e instanceof RegExp,Pd=e=>Tn(e)?e:Ip(e)?e.source:Wn(e)?Ip(e.value)?e.value.source:e.value:e,kT=e=>({isOnSubmit:!e||e===ls.onSubmit,isOnBlur:e===ls.onBlur,isOnChange:e===ls.onChange,isOnAll:e===ls.all,isOnTouch:e===ls.onTouched});const LT="AsyncFunction";var sQ=e=>!!e&&!!e.validate&&!!(us(e.validate)&&e.validate.constructor.name===LT||Wn(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===LT)),oQ=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),PT=(e,t,n)=>!n&&(t.watchAll||t.watch.has(e)||[...t.watch].some(r=>e.startsWith(r)&&/^\.\w+/.test(e.slice(r.length))));const Qd=(e,t,n,r)=>{for(const s of n||Object.keys(e)){const l=Ae(e,s);if(l){const{_f:c,...d}=l;if(c){if(c.refs&&c.refs[0]&&t(c.refs[0],s)&&!r)return!0;if(c.ref&&t(c.ref,c.name)&&!r)return!0;if(Qd(d,t))break}else if(Wn(d)&&Qd(d,t))break}}};function UT(e,t,n){const r=Ae(e,n);if(r||Dg(n))return{error:r,name:n};const s=n.split(".");for(;s.length;){const l=s.join("."),c=Ae(t,l),d=Ae(e,l);if(c&&!Array.isArray(c)&&n!==l)return{name:n};if(d&&d.type)return{name:l,error:d};if(d&&d.root&&d.root.type)return{name:`${l}.root`,error:d.root};s.pop()}return{name:n}}var iQ=(e,t,n,r)=>{n(e);const{name:s,...l}=e;return Pr(l)||Object.keys(l).length>=Object.keys(t).length||Object.keys(l).find(c=>t[c]===(!r||ls.all))},lQ=(e,t,n)=>!e||!t||e===t||Wd(e).some(r=>r&&(n?r===t:r.startsWith(t)||t.startsWith(r))),cQ=(e,t,n,r,s)=>s.isOnAll?!1:!n&&s.isOnTouch?!(t||e):(n?r.isOnBlur:s.isOnBlur)?!e:(n?r.isOnChange:s.isOnChange)?e:!0,uQ=(e,t)=>!q1(Ae(e,t)).length&&Zn(e,t),dQ=(e,t,n)=>{const r=Wd(Ae(e,n));return Yt(r,"root",t[n]),Yt(e,n,r),e};function FT(e,t,n="validate"){if(ya(e)||Array.isArray(e)&&e.every(ya)||ha(e)&&!e)return{type:n,message:ya(e)?e:"",ref:t}}var Fc=e=>Wn(e)&&!Ip(e)?e:{value:e,message:""},zT=async(e,t,n,r,s,l)=>{const{ref:c,refs:d,required:f,maxLength:h,minLength:g,min:y,max:v,pattern:b,validate:w,name:E,valueAsNumber:S,mount:R}=e._f,T=Ae(n,E);if(!R||t.has(E))return{};const _=d?d[0]:c,D=Z=>{s&&_.reportValidity&&(_.setCustomValidity(ha(Z)?"":Z||""),_.reportValidity())},A={},O=X1(c),j=Kf(c),M=O||j,F=(S||Q1(c))&&Tn(c.value)&&Tn(T)||Mp(c)&&c.value===""||T===""||Array.isArray(T)&&!T.length,G=W1.bind(null,E,r,A),Y=(Z,ee,$,W=xo.maxLength,k=xo.minLength)=>{const H=Z?ee:$;A[E]={type:Z?W:k,message:H,ref:c,...G(Z?W:k,H)}};if(l?!Array.isArray(T)||!T.length:f&&(!M&&(F||ea(T))||ha(T)&&!T||j&&!F3(d).isValid||O&&!V3(d).isValid)){const{value:Z,message:ee}=ya(f)?{value:!!f,message:f}:Fc(f);if(Z&&(A[E]={type:xo.required,message:ee,ref:_,...G(xo.required,ee)},!r))return D(ee),A}if(!F&&(!ea(y)||!ea(v))){let Z,ee;const $=Fc(v),W=Fc(y);if(!ea(T)&&!isNaN(T)){const k=c.valueAsNumber||T&&+T;ea($.value)||(Z=k>$.value),ea(W.value)||(ee=k<W.value)}else{const k=c.valueAsDate||new Date(T),H=xe=>new Date(new Date().toDateString()+" "+xe),B=c.type=="time",ie=c.type=="week";ya($.value)&&T&&(Z=B?H(T)>H($.value):ie?T>$.value:k>new Date($.value)),ya(W.value)&&T&&(ee=B?H(T)<H(W.value):ie?T<W.value:k<new Date(W.value))}if((Z||ee)&&(Y(!!Z,$.message,W.message,xo.max,xo.min),!r))return D(A[E].message),A}if((h||g)&&!F&&(ya(T)||l&&Array.isArray(T))){const Z=Fc(h),ee=Fc(g),$=!ea(Z.value)&&T.length>+Z.value,W=!ea(ee.value)&&T.length<+ee.value;if(($||W)&&(Y($,Z.message,ee.message),!r))return D(A[E].message),A}if(b&&!F&&ya(T)){const{value:Z,message:ee}=Fc(b);if(Ip(Z)&&!T.match(Z)&&(A[E]={type:xo.pattern,message:ee,ref:c,...G(xo.pattern,ee)},!r))return D(ee),A}if(w){if(us(w)){const Z=await w(T,n),ee=FT(Z,_);if(ee&&(A[E]={...ee,...G(xo.validate,ee.message)},!r))return D(ee.message),A}else if(Wn(w)){let Z={};for(const ee in w){if(!Pr(Z)&&!r)break;const $=FT(await w[ee](T,n),_,ee);$&&(Z={...$,...G(ee,$.message)},D($.message),r&&(A[E]=Z))}if(!Pr(Z)&&(A[E]={ref:_,...Z},!r))return A}}return D(!0),A};const fQ={mode:ls.onSubmit,reValidateMode:ls.onChange,shouldFocusError:!0};function hQ(e={}){let t={...fQ,...e},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:us(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},r={},s=Wn(t.defaultValues)||Wn(t.values)?tr(t.defaultValues||t.values)||{}:{},l=t.shouldUnregister?{}:tr(s),c={action:!1,mount:!1,watch:!1},d={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},f,h=0;const g={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let y={...g};const v={array:AT(),state:AT()},b=t.criteriaMode===ls.all,w=U=>Q=>{clearTimeout(h),h=setTimeout(U,Q)},E=async U=>{if(!t.disabled&&(g.isValid||y.isValid||U)){const Q=t.resolver?Pr((await j()).errors):await F(r,!0);Q!==n.isValid&&v.state.next({isValid:Q})}},S=(U,Q)=>{!t.disabled&&(g.isValidating||g.validatingFields||y.isValidating||y.validatingFields)&&((U||Array.from(d.mount)).forEach(de=>{de&&(Q?Yt(n.validatingFields,de,Q):Zn(n.validatingFields,de))}),v.state.next({validatingFields:n.validatingFields,isValidating:!Pr(n.validatingFields)}))},R=(U,Q=[],de,je,be=!0,Ee=!0)=>{if(je&&de&&!t.disabled){if(c.action=!0,Ee&&Array.isArray(Ae(r,U))){const Ye=de(Ae(r,U),je.argA,je.argB);be&&Yt(r,U,Ye)}if(Ee&&Array.isArray(Ae(n.errors,U))){const Ye=de(Ae(n.errors,U),je.argA,je.argB);be&&Yt(n.errors,U,Ye),uQ(n.errors,U)}if((g.touchedFields||y.touchedFields)&&Ee&&Array.isArray(Ae(n.touchedFields,U))){const Ye=de(Ae(n.touchedFields,U),je.argA,je.argB);be&&Yt(n.touchedFields,U,Ye)}(g.dirtyFields||y.dirtyFields)&&(n.dirtyFields=Gc(s,l)),v.state.next({name:U,isDirty:Y(U,Q),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else Yt(l,U,Q)},T=(U,Q)=>{Yt(n.errors,U,Q),v.state.next({errors:n.errors})},_=U=>{n.errors=U,v.state.next({errors:n.errors,isValid:!1})},D=(U,Q,de,je)=>{const be=Ae(r,U);if(be){const Ee=Ae(l,U,Tn(de)?Ae(s,U):de);Tn(Ee)||je&&je.defaultChecked||Q?Yt(l,U,Q?Ee:IT(be._f)):$(U,Ee),c.mount&&E()}},A=(U,Q,de,je,be)=>{let Ee=!1,Ye=!1;const st={name:U};if(!t.disabled){if(!de||je){(g.isDirty||y.isDirty)&&(Ye=n.isDirty,n.isDirty=st.isDirty=Y(),Ee=Ye!==st.isDirty);const ot=cs(Ae(s,U),Q);Ye=!!Ae(n.dirtyFields,U),ot?Zn(n.dirtyFields,U):Yt(n.dirtyFields,U,!0),st.dirtyFields=n.dirtyFields,Ee=Ee||(g.dirtyFields||y.dirtyFields)&&Ye!==!ot}if(de){const ot=Ae(n.touchedFields,U);ot||(Yt(n.touchedFields,U,de),st.touchedFields=n.touchedFields,Ee=Ee||(g.touchedFields||y.touchedFields)&&ot!==de)}Ee&&be&&v.state.next(st)}return Ee?st:{}},O=(U,Q,de,je)=>{const be=Ae(n.errors,U),Ee=(g.isValid||y.isValid)&&ha(Q)&&n.isValid!==Q;if(t.delayError&&de?(f=w(()=>T(U,de)),f(t.delayError)):(clearTimeout(h),f=null,de?Yt(n.errors,U,de):Zn(n.errors,U)),(de?!cs(be,de):be)||!Pr(je)||Ee){const Ye={...je,...Ee&&ha(Q)?{isValid:Q}:{},errors:n.errors,name:U};n={...n,...Ye},v.state.next(Ye)}},j=async U=>{S(U,!0);const Q=await t.resolver(l,t.context,aQ(U||d.mount,r,t.criteriaMode,t.shouldUseNativeValidation));return S(U),Q},M=async U=>{const{errors:Q}=await j(U);if(U)for(const de of U){const je=Ae(Q,de);je?Yt(n.errors,de,je):Zn(n.errors,de)}else n.errors=Q;return Q},F=async(U,Q,de={valid:!0})=>{for(const je in U){const be=U[je];if(be){const{_f:Ee,...Ye}=be;if(Ee){const st=d.array.has(Ee.name),ot=be._f&&sQ(be._f);ot&&g.validatingFields&&S([Ee.name],!0);const mn=await zT(be,d.disabled,l,b,t.shouldUseNativeValidation&&!Q,st);if(ot&&g.validatingFields&&S([Ee.name]),mn[Ee.name]&&(de.valid=!1,Q))break;!Q&&(Ae(mn,Ee.name)?st?dQ(n.errors,mn,Ee.name):Yt(n.errors,Ee.name,mn[Ee.name]):Zn(n.errors,Ee.name))}!Pr(Ye)&&await F(Ye,Q,de)}}return de.valid},G=()=>{for(const U of d.unMount){const Q=Ae(r,U);Q&&(Q._f.refs?Q._f.refs.every(de=>!Gx(de)):!Gx(Q._f.ref))&&le(U)}d.unMount=new Set},Y=(U,Q)=>!t.disabled&&(U&&Q&&Yt(l,U,Q),!cs(xe(),s)),Z=(U,Q,de)=>B0(U,d,{...c.mount?l:Tn(Q)?s:ya(U)?{[U]:Q}:Q},de,Q),ee=U=>q1(Ae(c.mount?l:s,U,t.shouldUnregister?Ae(s,U,[]):[])),$=(U,Q,de={})=>{const je=Ae(r,U);let be=Q;if(je){const Ee=je._f;Ee&&(!Ee.disabled&&Yt(l,U,z3(Q,Ee)),be=Mp(Ee.ref)&&ea(Q)?"":Q,P3(Ee.ref)?[...Ee.ref.options].forEach(Ye=>Ye.selected=be.includes(Ye.value)):Ee.refs?Kf(Ee.ref)?Ee.refs.forEach(Ye=>{(!Ye.defaultChecked||!Ye.disabled)&&(Array.isArray(be)?Ye.checked=!!be.find(st=>st===Ye.value):Ye.checked=be===Ye.value||!!be)}):Ee.refs.forEach(Ye=>Ye.checked=Ye.value===be):Q1(Ee.ref)?Ee.ref.value="":(Ee.ref.value=be,Ee.ref.type||v.state.next({name:U,values:tr(l)})))}(de.shouldDirty||de.shouldTouch)&&A(U,be,de.shouldTouch,de.shouldDirty,!0),de.shouldValidate&&ie(U)},W=(U,Q,de)=>{for(const je in Q){if(!Q.hasOwnProperty(je))return;const be=Q[je],Ee=U+"."+je,Ye=Ae(r,Ee);(d.array.has(U)||Wn(be)||Ye&&!Ye._f)&&!bl(be)?W(Ee,be,de):$(Ee,be,de)}},k=(U,Q,de={})=>{const je=Ae(r,U),be=d.array.has(U),Ee=tr(Q);Yt(l,U,Ee),be?(v.array.next({name:U,values:tr(l)}),(g.isDirty||g.dirtyFields||y.isDirty||y.dirtyFields)&&de.shouldDirty&&v.state.next({name:U,dirtyFields:Gc(s,l),isDirty:Y(U,Ee)})):je&&!je._f&&!ea(Ee)?W(U,Ee,de):$(U,Ee,de),PT(U,d)&&v.state.next({...n,name:U}),v.state.next({name:c.mount?U:void 0,values:tr(l)})},H=async U=>{c.mount=!0;const Q=U.target;let de=Q.name,je=!0;const be=Ae(r,de),Ee=ot=>{je=Number.isNaN(ot)||bl(ot)&&isNaN(ot.getTime())||cs(ot,Ae(l,de,ot))},Ye=kT(t.mode),st=kT(t.reValidateMode);if(be){let ot,mn;const Na=Q.type?IT(be._f):D3(U),pn=U.type===Op.BLUR||U.type===Op.FOCUS_OUT,zo=!oQ(be._f)&&!t.resolver&&!Ae(n.errors,de)&&!be._f.deps||cQ(pn,Ae(n.touchedFields,de),n.isSubmitted,st,Ye),Dn=PT(de,d,pn);Yt(l,de,Na),pn?(!Q||!Q.readOnly)&&(be._f.onBlur&&be._f.onBlur(U),f&&f(0)):be._f.onChange&&be._f.onChange(U);const bn=A(de,Na,pn),hr=!Pr(bn)||Dn;if(!pn&&v.state.next({name:de,type:U.type,values:tr(l)}),zo)return(g.isValid||y.isValid)&&(t.mode==="onBlur"?pn&&E():pn||E()),hr&&v.state.next({name:de,...Dn?{}:bn});if(!pn&&Dn&&v.state.next({...n}),t.resolver){const{errors:Sn}=await j([de]);if(Ee(Na),je){const Wi=UT(n.errors,r,de),Cs=UT(Sn,r,Wi.name||de);ot=Cs.error,de=Cs.name,mn=Pr(Sn)}}else S([de],!0),ot=(await zT(be,d.disabled,l,b,t.shouldUseNativeValidation))[de],S([de]),Ee(Na),je&&(ot?mn=!1:(g.isValid||y.isValid)&&(mn=await F(r,!0)));je&&(be._f.deps&&(!Array.isArray(be._f.deps)||be._f.deps.length>0)&&ie(be._f.deps),O(de,mn,ot,bn))}},B=(U,Q)=>{if(Ae(n.errors,Q)&&U.focus)return U.focus(),1},ie=async(U,Q={})=>{let de,je;const be=Wd(U);if(t.resolver){const Ee=await M(Tn(U)?U:be);de=Pr(Ee),je=U?!be.some(Ye=>Ae(Ee,Ye)):de}else U?(je=(await Promise.all(be.map(async Ee=>{const Ye=Ae(r,Ee);return await F(Ye&&Ye._f?{[Ee]:Ye}:Ye)}))).every(Boolean),!(!je&&!n.isValid)&&E()):je=de=await F(r);return v.state.next({...!ya(U)||(g.isValid||y.isValid)&&de!==n.isValid?{}:{name:U},...t.resolver||!U?{isValid:de}:{},errors:n.errors}),Q.shouldFocus&&!je&&Qd(r,B,U?be:d.mount),je},xe=(U,Q)=>{let de={...c.mount?l:s};return Q&&(de=L3(Q.dirtyFields?n.dirtyFields:n.touchedFields,de)),Tn(U)?de:ya(U)?Ae(de,U):U.map(je=>Ae(de,je))},L=(U,Q)=>({invalid:!!Ae((Q||n).errors,U),isDirty:!!Ae((Q||n).dirtyFields,U),error:Ae((Q||n).errors,U),isValidating:!!Ae(n.validatingFields,U),isTouched:!!Ae((Q||n).touchedFields,U)}),P=U=>{U&&Wd(U).forEach(Q=>Zn(n.errors,Q)),v.state.next({errors:U?n.errors:{}})},q=(U,Q,de)=>{const je=(Ae(r,U,{_f:{}})._f||{}).ref,be=Ae(n.errors,U)||{},{ref:Ee,message:Ye,type:st,...ot}=be;Yt(n.errors,U,{...ot,...Q,ref:je}),v.state.next({name:U,errors:n.errors,isValid:!1}),de&&de.shouldFocus&&je&&je.focus&&je.focus()},te=(U,Q)=>us(U)?v.state.subscribe({next:de=>"values"in de&&U(Z(void 0,Q),de)}):Z(U,Q,!0),ue=U=>v.state.subscribe({next:Q=>{lQ(U.name,Q.name,U.exact)&&iQ(Q,U.formState||g,jr,U.reRenderRoot)&&U.callback({values:{...l},...n,...Q,defaultValues:s})}}).unsubscribe,ve=U=>(c.mount=!0,y={...y,...U.formState},ue({...U,formState:y})),le=(U,Q={})=>{for(const de of U?Wd(U):d.mount)d.mount.delete(de),d.array.delete(de),Q.keepValue||(Zn(r,de),Zn(l,de)),!Q.keepError&&Zn(n.errors,de),!Q.keepDirty&&Zn(n.dirtyFields,de),!Q.keepTouched&&Zn(n.touchedFields,de),!Q.keepIsValidating&&Zn(n.validatingFields,de),!t.shouldUnregister&&!Q.keepDefaultValue&&Zn(s,de);v.state.next({values:tr(l)}),v.state.next({...n,...Q.keepDirty?{isDirty:Y()}:{}}),!Q.keepIsValid&&E()},Ne=({disabled:U,name:Q})=>{(ha(U)&&c.mount||U||d.disabled.has(Q))&&(U?d.disabled.add(Q):d.disabled.delete(Q))},we=(U,Q={})=>{let de=Ae(r,U);const je=ha(Q.disabled)||ha(t.disabled);return Yt(r,U,{...de||{},_f:{...de&&de._f?de._f:{ref:{name:U}},name:U,mount:!0,...Q}}),d.mount.add(U),de?Ne({disabled:ha(Q.disabled)?Q.disabled:t.disabled,name:U}):D(U,!0,Q.value),{...je?{disabled:Q.disabled||t.disabled}:{},...t.progressive?{required:!!Q.required,min:Pd(Q.min),max:Pd(Q.max),minLength:Pd(Q.minLength),maxLength:Pd(Q.maxLength),pattern:Pd(Q.pattern)}:{},name:U,onChange:H,onBlur:H,ref:be=>{if(be){we(U,Q),de=Ae(r,U);const Ee=Tn(be.value)&&be.querySelectorAll&&be.querySelectorAll("input,select,textarea")[0]||be,Ye=eQ(Ee),st=de._f.refs||[];if(Ye?st.find(ot=>ot===Ee):Ee===de._f.ref)return;Yt(r,U,{_f:{...de._f,...Ye?{refs:[...st.filter(Gx),Ee,...Array.isArray(Ae(s,U))?[{}]:[]],ref:{type:Ee.type,name:U}}:{ref:Ee}}}),D(U,!1,void 0,Ee)}else de=Ae(r,U,{}),de._f&&(de._f.mount=!1),(t.shouldUnregister||Q.shouldUnregister)&&!(O3(d.array,U)&&c.action)&&d.unMount.add(U)}}},_e=()=>t.shouldFocusError&&Qd(r,B,d.mount),He=U=>{ha(U)&&(v.state.next({disabled:U}),Qd(r,(Q,de)=>{const je=Ae(r,de);je&&(Q.disabled=je._f.disabled||U,Array.isArray(je._f.refs)&&je._f.refs.forEach(be=>{be.disabled=je._f.disabled||U}))},0,!1))},We=(U,Q)=>async de=>{let je;de&&(de.preventDefault&&de.preventDefault(),de.persist&&de.persist());let be=tr(l);if(v.state.next({isSubmitting:!0}),t.resolver){const{errors:Ee,values:Ye}=await j();n.errors=Ee,be=tr(Ye)}else await F(r);if(d.disabled.size)for(const Ee of d.disabled)Zn(be,Ee);if(Zn(n.errors,"root"),Pr(n.errors)){v.state.next({errors:{}});try{await U(be,de)}catch(Ee){je=Ee}}else Q&&await Q({...n.errors},de),_e(),setTimeout(_e);if(v.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Pr(n.errors)&&!je,submitCount:n.submitCount+1,errors:n.errors}),je)throw je},Ft=(U,Q={})=>{Ae(r,U)&&(Tn(Q.defaultValue)?k(U,tr(Ae(s,U))):(k(U,Q.defaultValue),Yt(s,U,tr(Q.defaultValue))),Q.keepTouched||Zn(n.touchedFields,U),Q.keepDirty||(Zn(n.dirtyFields,U),n.isDirty=Q.defaultValue?Y(U,tr(Ae(s,U))):Y()),Q.keepError||(Zn(n.errors,U),g.isValid&&E()),v.state.next({...n}))},jt=(U,Q={})=>{const de=U?tr(U):s,je=tr(de),be=Pr(U),Ee=be?s:je;if(Q.keepDefaultValues||(s=de),!Q.keepValues){if(Q.keepDirtyValues){const Ye=new Set([...d.mount,...Object.keys(Gc(s,l))]);for(const st of Array.from(Ye))Ae(n.dirtyFields,st)?Yt(Ee,st,Ae(l,st)):k(st,Ae(Ee,st))}else{if(G1&&Tn(U))for(const Ye of d.mount){const st=Ae(r,Ye);if(st&&st._f){const ot=Array.isArray(st._f.refs)?st._f.refs[0]:st._f.ref;if(Mp(ot)){const mn=ot.closest("form");if(mn){mn.reset();break}}}}if(Q.keepFieldsRef)for(const Ye of d.mount)k(Ye,Ae(Ee,Ye));else r={}}l=t.shouldUnregister?Q.keepDefaultValues?tr(s):{}:tr(Ee),v.array.next({values:{...Ee}}),v.state.next({values:{...Ee}})}d={mount:Q.keepDirtyValues?d.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},c.mount=!g.isValid||!!Q.keepIsValid||!!Q.keepDirtyValues||!t.shouldUnregister&&!Pr(Ee),c.watch=!!t.shouldUnregister,v.state.next({submitCount:Q.keepSubmitCount?n.submitCount:0,isDirty:be?!1:Q.keepDirty?n.isDirty:!!(Q.keepDefaultValues&&!cs(U,s)),isSubmitted:Q.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:be?{}:Q.keepDirtyValues?Q.keepDefaultValues&&l?Gc(s,l):n.dirtyFields:Q.keepDefaultValues&&U?Gc(s,U):Q.keepDirty?n.dirtyFields:{},touchedFields:Q.keepTouched?n.touchedFields:{},errors:Q.keepErrors?n.errors:{},isSubmitSuccessful:Q.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:s})},Bt=(U,Q)=>jt(us(U)?U(l):U,Q),xn=(U,Q={})=>{const de=Ae(r,U),je=de&&de._f;if(je){const be=je.refs?je.refs[0]:je.ref;be.focus&&(be.focus(),Q.shouldSelect&&us(be.select)&&be.select())}},jr=U=>{n={...n,...U}},Fe={control:{register:we,unregister:le,getFieldState:L,handleSubmit:We,setError:q,_subscribe:ue,_runSchema:j,_focusError:_e,_getWatch:Z,_getDirty:Y,_setValid:E,_setFieldArray:R,_setDisabledField:Ne,_setErrors:_,_getFieldArray:ee,_reset:jt,_resetDefaultValues:()=>us(t.defaultValues)&&t.defaultValues().then(U=>{Bt(U,t.resetOptions),v.state.next({isLoading:!1})}),_removeUnmounted:G,_disableForm:He,_subjects:v,_proxyFormState:g,get _fields(){return r},get _formValues(){return l},get _state(){return c},set _state(U){c=U},get _defaultValues(){return s},get _names(){return d},set _names(U){d=U},get _formState(){return n},get _options(){return t},set _options(U){t={...t,...U}}},subscribe:ve,trigger:ie,register:we,handleSubmit:We,watch:te,setValue:k,getValues:xe,reset:Bt,resetField:Ft,clearErrors:P,unregister:le,setError:q,setFocus:xn,getFieldState:L};return{...Fe,formControl:Fe}}function Gi(e={}){const t=ye.useRef(void 0),n=ye.useRef(void 0),[r,s]=ye.useState({isDirty:!1,isValidating:!1,isLoading:us(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:us(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:r},e.defaultValues&&!us(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:c,...d}=hQ(e);t.current={...d,formState:r}}const l=t.current.control;return l._options=e,Y1(()=>{const c=l._subscribe({formState:l._proxyFormState,callback:()=>s({...l._formState}),reRenderRoot:!0});return s(d=>({...d,isReady:!0})),l._formState.isReady=!0,c},[l]),ye.useEffect(()=>l._disableForm(e.disabled),[l,e.disabled]),ye.useEffect(()=>{e.mode&&(l._options.mode=e.mode),e.reValidateMode&&(l._options.reValidateMode=e.reValidateMode)},[l,e.mode,e.reValidateMode]),ye.useEffect(()=>{e.errors&&(l._setErrors(e.errors),l._focusError())},[l,e.errors]),ye.useEffect(()=>{e.shouldUnregister&&l._subjects.state.next({values:l._getWatch()})},[l,e.shouldUnregister]),ye.useEffect(()=>{if(l._proxyFormState.isDirty){const c=l._getDirty();c!==r.isDirty&&l._subjects.state.next({isDirty:c})}},[l,r.isDirty]),ye.useEffect(()=>{e.values&&!cs(e.values,n.current)?(l._reset(e.values,{keepFieldsRef:!0,...l._options.resetOptions}),n.current=e.values,s(c=>({...c}))):l._resetDefaultValues()},[l,e.values]),ye.useEffect(()=>{l._state.mount||(l._setValid(),l._state.mount=!0),l._state.watch&&(l._state.watch=!1,l._subjects.state.next({...l._formState})),l._removeUnmounted()}),t.current.formState=I3(r,l),t.current}var mQ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pQ=mQ.reduce((e,t)=>{const n=jb(`Primitive.${t}`),r=p.forwardRef((s,l)=>{const{asChild:c,...d}=s,f=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),o.jsx(f,{...d,ref:l})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),gQ="Label",$3=p.forwardRef((e,t)=>o.jsx(pQ.label,{...e,ref:t,onMouseDown:n=>{var s;n.target.closest("button, input, select, textarea")||((s=e.onMouseDown)==null||s.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));$3.displayName=gQ;var yQ=$3;function Ca({className:e,...t}){return o.jsx(yQ,{"data-slot":"label",className:ne("flex items-center gap-2 text-sm leading-none font-medium group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}const Wl=M3,H3=p.createContext({}),en=({...e})=>o.jsx(H3.Provider,{value:{name:e.name},children:o.jsx(JW,{...e})}),Yf=()=>{const e=p.useContext(H3),t=p.useContext(B3),{getFieldState:n}=ku(),r=k3({name:e.name}),s=n(e.name,r);if(!e)throw new Error("useFormField should be used within <FormField>");const{id:l}=t;return{id:l,name:e.name,formItemId:`${l}-form-item`,formDescriptionId:`${l}-form-item-description`,formMessageId:`${l}-form-item-message`,...s}},B3=p.createContext({});function Vt({className:e="",...t}){const n=p.useId();return o.jsx(B3.Provider,{value:{id:n},children:o.jsx("div",{"data-slot":"form-item",className:ne("group border-border flex flex-col gap-2 rounded-md border-b bg-white px-4 py-3 transition-shadow duration-200 hover:shadow-sm dark:border-transparent dark:bg-white/4",e),...t})})}function $t({className:e="",tooltip:t,tooltipProps:n,children:r,...s}){const{error:l,formItemId:c}=Yf();return o.jsxs(Ca,{"data-slot":"form-label","data-error":!!l,className:ne("text-foreground flex items-center justify-between gap-2 text-sm font-medium","data-[error=true]:text-destructive",e),htmlFor:c,...s,children:[o.jsx("span",{children:r}),t&&o.jsxs(St,{...n,children:[o.jsx(Ct,{asChild:!0,children:o.jsx("button",{type:"button",tabIndex:-1,className:"pointer-events-none opacity-0 transition group-hover:pointer-events-auto group-hover:opacity-100","aria-label":"Help information",children:o.jsx(zr,{className:"text-muted-foreground/50 hover:text-muted-foreground size-4 shrink-0 transition-colors","aria-hidden":"true"})})}),o.jsx(Et,{side:"top",align:"center",role:"tooltip",children:t})]})]})}function Ht({...e}){const{error:t,formItemId:n,formDescriptionId:r,formMessageId:s}=Yf();return o.jsx(Yp,{"data-slot":"form-control",id:n,"aria-describedby":t?`${r} ${s}`:`${r}`,"aria-invalid":!!t,...e})}function Pn({className:e,...t}){const{formDescriptionId:n}=Yf();return o.jsx("div",{"data-slot":"form-description",id:n,className:ne("text-muted-foreground text-sm",e),...t})}function on({className:e,...t}){const{error:n,formMessageId:r}=Yf(),s=n?String((n==null?void 0:n.message)??""):t.children;return s?o.jsx("p",{"data-slot":"form-message",id:r,className:ne("text-destructive text-sm",e),...t,children:s}):null}function Ql({children:e,className:t="",variant:n="default"}){const r=n==="light"?"flex-1 overflow-y-auto":"bg-muted dark:bg-sidebar flex-1 overflow-y-auto p-4";return o.jsx("div",{className:r,children:o.jsx("div",{className:ne("flex min-h-full flex-col gap-4",t),children:e})})}function Xl({className:e="",children:t,variant:n="default"}){const r=n==="light"?"flex flex-col gap-1.5 pt-4":"flex flex-col gap-1.5 border-t px-4 py-3";return o.jsx("div",{className:ne(r,e),children:t})}function Hs({title:e,children:t}){return o.jsxs("section",{className:"mb-4",children:[e&&o.jsx("h3",{className:"text-muted-foreground/75 mb-2 text-xs font-semibold tracking-wide uppercase",children:e}),o.jsx("div",{className:"flex flex-col gap-2",children:t})]})}function vQ({value:e,label:t,checked:n,onChange:r,disabled:s=!1,orientation:l="vertical",className:c=""}){const{formItemId:d}=Yf();return o.jsxs("label",{htmlFor:`${d}-${e}`,className:ne("flex cursor-pointer items-center gap-2 rounded-md py-1 pr-4 pl-2 text-sm",s&&"cursor-not-allowed opacity-50",l==="horizontal"?"flex-row":"flex-col",n?"bg-muted border-input border-b":"hover:bg-muted border-border bg-transparent",c),children:[o.jsx("input",{type:"radio",id:`${d}-${e}`,value:e,checked:n,onChange:r,disabled:s,className:ne("peer border-input ring-offset-background h-4 w-4 rounded-full border","checked:bg-primary checked:border-primary","focus-visible:ring-ring focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50")}),o.jsx("span",{className:ne("peer-disabled:cursor-not-allowed peer-disabled:opacity-50"),children:t})]})}function xQ({options:e,value:t,onChange:n,orientation:r="vertical",className:s=""}){return o.jsx("div",{tabIndex:-1,className:ne(r==="horizontal"?"flex gap-6":"flex flex-col gap-2","border-input rounded-md border bg-transparent px-1 py-1 transition-colors","focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]","text-foreground selection:bg-primary selection:text-primary-foreground","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40","disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",s),children:e.map(l=>o.jsx(vQ,{value:l.value,label:l.label,checked:t===l.value,onChange:c=>n(c.target.value),disabled:l.disabled,orientation:r},l.value))})}const qi=p.forwardRef(({children:e,className:t="",...n},r)=>o.jsx("form",{ref:r,className:ne("flex flex-1 flex-col overflow-hidden",t),...n,children:e}));qi.displayName="AppForm";function VT(e,[t,n]){return Math.min(n,Math.max(t,e))}function Z0(e){const t=bQ(e),n=p.forwardRef((r,s)=>{const{children:l,...c}=r,d=p.Children.toArray(l),f=d.find(CQ);if(f){const h=f.props.children,g=d.map(y=>y===f?p.Children.count(h)>1?p.Children.only(null):p.isValidElement(h)?h.props.children:null:y);return o.jsx(t,{...c,ref:s,children:p.isValidElement(h)?p.cloneElement(h,void 0,g):null})}return o.jsx(t,{...c,ref:s,children:l})});return n.displayName=`${e}.Slot`,n}function bQ(e){const t=p.forwardRef((n,r)=>{const{children:s,...l}=n;if(p.isValidElement(s)){const c=wQ(s),d=EQ(l,s.props);return s.type!==p.Fragment&&(d.ref=r?Ir(r,c):c),p.cloneElement(s,d)}return p.Children.count(s)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var SQ=Symbol("radix.slottable");function CQ(e){return p.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===SQ}function EQ(e,t){const n={...t};for(const r in t){const s=e[r],l=t[r];/^on[A-Z]/.test(r)?s&&l?n[r]=(...d)=>{const f=l(...d);return s(...d),f}:s&&(n[r]=s):r==="style"?n[r]={...s,...l}:r==="className"&&(n[r]=[s,l].filter(Boolean).join(" "))}return{...e,...n}}function wQ(e){var r,s;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(s=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function RQ(e){const t=e+"CollectionProvider",[n,r]=ir(t),[s,l]=n(t,{collectionRef:{current:null},itemMap:new Map}),c=E=>{const{scope:S,children:R}=E,T=ye.useRef(null),_=ye.useRef(new Map).current;return o.jsx(s,{scope:S,itemMap:_,collectionRef:T,children:R})};c.displayName=t;const d=e+"CollectionSlot",f=Z0(d),h=ye.forwardRef((E,S)=>{const{scope:R,children:T}=E,_=l(d,R),D=ut(S,_.collectionRef);return o.jsx(f,{ref:D,children:T})});h.displayName=d;const g=e+"CollectionItemSlot",y="data-radix-collection-item",v=Z0(g),b=ye.forwardRef((E,S)=>{const{scope:R,children:T,..._}=E,D=ye.useRef(null),A=ut(S,D),O=l(g,R);return ye.useEffect(()=>(O.itemMap.set(D,{ref:D,..._}),()=>void O.itemMap.delete(D))),o.jsx(v,{[y]:"",ref:A,children:T})});b.displayName=g;function w(E){const S=l(e+"CollectionConsumer",E);return ye.useCallback(()=>{const T=S.collectionRef.current;if(!T)return[];const _=Array.from(T.querySelectorAll(`[${y}]`));return Array.from(S.itemMap.values()).sort((O,j)=>_.indexOf(O.ref.current)-_.indexOf(j.ref.current))},[S.collectionRef,S.itemMap])}return[{Provider:c,Slot:h,ItemSlot:b},w,r]}function J1(e){const t=p.useRef({value:e,previous:e});return p.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var TQ=[" ","Enter","ArrowUp","ArrowDown"],jQ=[" ","Enter"],Ul="Select",[Og,Mg,_Q]=RQ(Ul),[Lu]=ir(Ul,[_Q,Zs]),Ig=Zs(),[NQ,Zi]=Lu(Ul),[AQ,DQ]=Lu(Ul),G3=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:s,onOpenChange:l,value:c,defaultValue:d,onValueChange:f,dir:h,name:g,autoComplete:y,disabled:v,required:b,form:w}=e,E=Ig(t),[S,R]=p.useState(null),[T,_]=p.useState(null),[D,A]=p.useState(!1),O=If(h),[j,M]=Vr({prop:r,defaultProp:s??!1,onChange:l,caller:Ul}),[F,G]=Vr({prop:c,defaultProp:d,onChange:f,caller:Ul}),Y=p.useRef(null),Z=S?w||!!S.closest("form"):!0,[ee,$]=p.useState(new Set),W=Array.from(ee).map(k=>k.props.value).join(";");return o.jsx(wu,{...E,children:o.jsxs(NQ,{required:b,scope:t,trigger:S,onTriggerChange:R,valueNode:T,onValueNodeChange:_,valueNodeHasChildren:D,onValueNodeHasChildrenChange:A,contentId:Nn(),value:F,onValueChange:G,open:j,onOpenChange:M,dir:O,triggerPointerDownPosRef:Y,disabled:v,children:[o.jsx(Og.Provider,{scope:t,children:o.jsx(AQ,{scope:e.__scopeSelect,onNativeOptionAdd:p.useCallback(k=>{$(H=>new Set(H).add(k))},[]),onNativeOptionRemove:p.useCallback(k=>{$(H=>{const B=new Set(H);return B.delete(k),B})},[]),children:n})}),Z?o.jsxs(pD,{"aria-hidden":!0,required:b,tabIndex:-1,name:g,autoComplete:y,value:F,onChange:k=>G(k.target.value),disabled:v,form:w,children:[F===void 0?o.jsx("option",{value:""}):null,Array.from(ee)]},W):null]})})};G3.displayName=Ul;var q3="SelectTrigger",Z3=p.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...s}=e,l=Ig(n),c=Zi(q3,n),d=c.disabled||r,f=ut(t,c.onTriggerChange),h=Mg(n),g=p.useRef("touch"),[y,v,b]=yD(E=>{const S=h().filter(_=>!_.disabled),R=S.find(_=>_.value===c.value),T=vD(S,E,R);T!==void 0&&c.onValueChange(T.value)}),w=E=>{d||(c.onOpenChange(!0),b()),E&&(c.triggerPointerDownPosRef.current={x:Math.round(E.pageX),y:Math.round(E.pageY)})};return o.jsx(Ru,{asChild:!0,...l,children:o.jsx(Je.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:d,"data-disabled":d?"":void 0,"data-placeholder":gD(c.value)?"":void 0,...s,ref:f,onClick:Te(s.onClick,E=>{E.currentTarget.focus(),g.current!=="mouse"&&w(E)}),onPointerDown:Te(s.onPointerDown,E=>{g.current=E.pointerType;const S=E.target;S.hasPointerCapture(E.pointerId)&&S.releasePointerCapture(E.pointerId),E.button===0&&E.ctrlKey===!1&&E.pointerType==="mouse"&&(w(E),E.preventDefault())}),onKeyDown:Te(s.onKeyDown,E=>{const S=y.current!=="";!(E.ctrlKey||E.altKey||E.metaKey)&&E.key.length===1&&v(E.key),!(S&&E.key===" ")&&TQ.includes(E.key)&&(w(),E.preventDefault())})})})});Z3.displayName=q3;var K3="SelectValue",Y3=p.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:s,children:l,placeholder:c="",...d}=e,f=Zi(K3,n),{onValueNodeHasChildrenChange:h}=f,g=l!==void 0,y=ut(t,f.onValueNodeChange);return Cr(()=>{h(g)},[h,g]),o.jsx(Je.span,{...d,ref:y,style:{pointerEvents:"none"},children:gD(f.value)?o.jsx(o.Fragment,{children:c}):l})});Y3.displayName=K3;var OQ="SelectIcon",W3=p.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...s}=e;return o.jsx(Je.span,{"aria-hidden":!0,...s,ref:t,children:r||"▼"})});W3.displayName=OQ;var MQ="SelectPortal",Q3=e=>o.jsx(Bl,{asChild:!0,...e});Q3.displayName=MQ;var Fl="SelectContent",X3=p.forwardRef((e,t)=>{const n=Zi(Fl,e.__scopeSelect),[r,s]=p.useState();if(Cr(()=>{s(new DocumentFragment)},[]),!n.open){const l=r;return l?ds.createPortal(o.jsx(J3,{scope:e.__scopeSelect,children:o.jsx(Og.Slot,{scope:e.__scopeSelect,children:o.jsx("div",{children:e.children})})}),l):null}return o.jsx(eD,{...e,ref:t})});X3.displayName=Fl;var as=10,[J3,Ki]=Lu(Fl),IQ="SelectContentImpl",kQ=Z0("SelectContent.RemoveScroll"),eD=p.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:s,onEscapeKeyDown:l,onPointerDownOutside:c,side:d,sideOffset:f,align:h,alignOffset:g,arrowPadding:y,collisionBoundary:v,collisionPadding:b,sticky:w,hideWhenDetached:E,avoidCollisions:S,...R}=e,T=Zi(Fl,n),[_,D]=p.useState(null),[A,O]=p.useState(null),j=ut(t,le=>D(le)),[M,F]=p.useState(null),[G,Y]=p.useState(null),Z=Mg(n),[ee,$]=p.useState(!1),W=p.useRef(!1);p.useEffect(()=>{if(_)return eg(_)},[_]),Xp();const k=p.useCallback(le=>{const[Ne,...we]=Z().map(We=>We.ref.current),[_e]=we.slice(-1),He=document.activeElement;for(const We of le)if(We===He||(We==null||We.scrollIntoView({block:"nearest"}),We===Ne&&A&&(A.scrollTop=0),We===_e&&A&&(A.scrollTop=A.scrollHeight),We==null||We.focus(),document.activeElement!==He))return},[Z,A]),H=p.useCallback(()=>k([M,_]),[k,M,_]);p.useEffect(()=>{ee&&H()},[ee,H]);const{onOpenChange:B,triggerPointerDownPosRef:ie}=T;p.useEffect(()=>{if(_){let le={x:0,y:0};const Ne=_e=>{var He,We;le={x:Math.abs(Math.round(_e.pageX)-(((He=ie.current)==null?void 0:He.x)??0)),y:Math.abs(Math.round(_e.pageY)-(((We=ie.current)==null?void 0:We.y)??0))}},we=_e=>{le.x<=10&&le.y<=10?_e.preventDefault():_.contains(_e.target)||B(!1),document.removeEventListener("pointermove",Ne),ie.current=null};return ie.current!==null&&(document.addEventListener("pointermove",Ne),document.addEventListener("pointerup",we,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",Ne),document.removeEventListener("pointerup",we,{capture:!0})}}},[_,B,ie]),p.useEffect(()=>{const le=()=>B(!1);return window.addEventListener("blur",le),window.addEventListener("resize",le),()=>{window.removeEventListener("blur",le),window.removeEventListener("resize",le)}},[B]);const[xe,L]=yD(le=>{const Ne=Z().filter(He=>!He.disabled),we=Ne.find(He=>He.ref.current===document.activeElement),_e=vD(Ne,le,we);_e&&setTimeout(()=>_e.ref.current.focus())}),P=p.useCallback((le,Ne,we)=>{const _e=!W.current&&!we;(T.value!==void 0&&T.value===Ne||_e)&&(F(le),_e&&(W.current=!0))},[T.value]),q=p.useCallback(()=>_==null?void 0:_.focus(),[_]),te=p.useCallback((le,Ne,we)=>{const _e=!W.current&&!we;(T.value!==void 0&&T.value===Ne||_e)&&Y(le)},[T.value]),ue=r==="popper"?K0:tD,ve=ue===K0?{side:d,sideOffset:f,align:h,alignOffset:g,arrowPadding:y,collisionBoundary:v,collisionPadding:b,sticky:w,hideWhenDetached:E,avoidCollisions:S}:{};return o.jsx(J3,{scope:n,content:_,viewport:A,onViewportChange:O,itemRefCallback:P,selectedItem:M,onItemLeave:q,itemTextRefCallback:te,focusSelectedItem:H,selectedItemText:G,position:r,isPositioned:ee,searchRef:xe,children:o.jsx(_f,{as:kQ,allowPinchZoom:!0,children:o.jsx(jf,{asChild:!0,trapped:T.open,onMountAutoFocus:le=>{le.preventDefault()},onUnmountAutoFocus:Te(s,le=>{var Ne;(Ne=T.trigger)==null||Ne.focus({preventScroll:!0}),le.preventDefault()}),children:o.jsx(Hl,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:le=>le.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:o.jsx(ue,{role:"listbox",id:T.contentId,"data-state":T.open?"open":"closed",dir:T.dir,onContextMenu:le=>le.preventDefault(),...R,...ve,onPlaced:()=>$(!0),ref:j,style:{display:"flex",flexDirection:"column",outline:"none",...R.style},onKeyDown:Te(R.onKeyDown,le=>{const Ne=le.ctrlKey||le.altKey||le.metaKey;if(le.key==="Tab"&&le.preventDefault(),!Ne&&le.key.length===1&&L(le.key),["ArrowUp","ArrowDown","Home","End"].includes(le.key)){let _e=Z().filter(He=>!He.disabled).map(He=>He.ref.current);if(["ArrowUp","End"].includes(le.key)&&(_e=_e.slice().reverse()),["ArrowUp","ArrowDown"].includes(le.key)){const He=le.target,We=_e.indexOf(He);_e=_e.slice(We+1)}setTimeout(()=>k(_e)),le.preventDefault()}})})})})})})});eD.displayName=IQ;var LQ="SelectItemAlignedPosition",tD=p.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...s}=e,l=Zi(Fl,n),c=Ki(Fl,n),[d,f]=p.useState(null),[h,g]=p.useState(null),y=ut(t,j=>g(j)),v=Mg(n),b=p.useRef(!1),w=p.useRef(!0),{viewport:E,selectedItem:S,selectedItemText:R,focusSelectedItem:T}=c,_=p.useCallback(()=>{if(l.trigger&&l.valueNode&&d&&h&&E&&S&&R){const j=l.trigger.getBoundingClientRect(),M=h.getBoundingClientRect(),F=l.valueNode.getBoundingClientRect(),G=R.getBoundingClientRect();if(l.dir!=="rtl"){const He=G.left-M.left,We=F.left-He,Ft=j.left-We,jt=j.width+Ft,Bt=Math.max(jt,M.width),xn=window.innerWidth-as,jr=VT(We,[as,Math.max(as,xn-Bt)]);d.style.minWidth=jt+"px",d.style.left=jr+"px"}else{const He=M.right-G.right,We=window.innerWidth-F.right-He,Ft=window.innerWidth-j.right-We,jt=j.width+Ft,Bt=Math.max(jt,M.width),xn=window.innerWidth-as,jr=VT(We,[as,Math.max(as,xn-Bt)]);d.style.minWidth=jt+"px",d.style.right=jr+"px"}const Y=v(),Z=window.innerHeight-as*2,ee=E.scrollHeight,$=window.getComputedStyle(h),W=parseInt($.borderTopWidth,10),k=parseInt($.paddingTop,10),H=parseInt($.borderBottomWidth,10),B=parseInt($.paddingBottom,10),ie=W+k+ee+B+H,xe=Math.min(S.offsetHeight*5,ie),L=window.getComputedStyle(E),P=parseInt(L.paddingTop,10),q=parseInt(L.paddingBottom,10),te=j.top+j.height/2-as,ue=Z-te,ve=S.offsetHeight/2,le=S.offsetTop+ve,Ne=W+k+le,we=ie-Ne;if(Ne<=te){const He=Y.length>0&&S===Y[Y.length-1].ref.current;d.style.bottom="0px";const We=h.clientHeight-E.offsetTop-E.offsetHeight,Ft=Math.max(ue,ve+(He?q:0)+We+H),jt=Ne+Ft;d.style.height=jt+"px"}else{const He=Y.length>0&&S===Y[0].ref.current;d.style.top="0px";const Ft=Math.max(te,W+E.offsetTop+(He?P:0)+ve)+we;d.style.height=Ft+"px",E.scrollTop=Ne-te+E.offsetTop}d.style.margin=`${as}px 0`,d.style.minHeight=xe+"px",d.style.maxHeight=Z+"px",r==null||r(),requestAnimationFrame(()=>b.current=!0)}},[v,l.trigger,l.valueNode,d,h,E,S,R,l.dir,r]);Cr(()=>_(),[_]);const[D,A]=p.useState();Cr(()=>{h&&A(window.getComputedStyle(h).zIndex)},[h]);const O=p.useCallback(j=>{j&&w.current===!0&&(_(),T==null||T(),w.current=!1)},[_,T]);return o.jsx(UQ,{scope:n,contentWrapper:d,shouldExpandOnScrollRef:b,onScrollButtonChange:O,children:o.jsx("div",{ref:f,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:D},children:o.jsx(Je.div,{...s,ref:y,style:{boxSizing:"border-box",maxHeight:"100%",...s.style}})})})});tD.displayName=LQ;var PQ="SelectPopperPosition",K0=p.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:s=as,...l}=e,c=Ig(n);return o.jsx(Af,{...c,...l,ref:t,align:r,collisionPadding:s,style:{boxSizing:"border-box",...l.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});K0.displayName=PQ;var[UQ,eS]=Lu(Fl,{}),Y0="SelectViewport",nD=p.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...s}=e,l=Ki(Y0,n),c=eS(Y0,n),d=ut(t,l.onViewportChange),f=p.useRef(0);return o.jsxs(o.Fragment,{children:[o.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),o.jsx(Og.Slot,{scope:n,children:o.jsx(Je.div,{"data-radix-select-viewport":"",role:"presentation",...s,ref:d,style:{position:"relative",flex:1,overflow:"hidden auto",...s.style},onScroll:Te(s.onScroll,h=>{const g=h.currentTarget,{contentWrapper:y,shouldExpandOnScrollRef:v}=c;if(v!=null&&v.current&&y){const b=Math.abs(f.current-g.scrollTop);if(b>0){const w=window.innerHeight-as*2,E=parseFloat(y.style.minHeight),S=parseFloat(y.style.height),R=Math.max(E,S);if(R<w){const T=R+b,_=Math.min(w,T),D=T-_;y.style.height=_+"px",y.style.bottom==="0px"&&(g.scrollTop=D>0?D:0,y.style.justifyContent="flex-end")}}}f.current=g.scrollTop})})})]})});nD.displayName=Y0;var rD="SelectGroup",[FQ,zQ]=Lu(rD),aD=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,s=Nn();return o.jsx(FQ,{scope:n,id:s,children:o.jsx(Je.div,{role:"group","aria-labelledby":s,...r,ref:t})})});aD.displayName=rD;var sD="SelectLabel",VQ=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,s=zQ(sD,n);return o.jsx(Je.div,{id:s.id,...r,ref:t})});VQ.displayName=sD;var kp="SelectItem",[$Q,oD]=Lu(kp),iD=p.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:s=!1,textValue:l,...c}=e,d=Zi(kp,n),f=Ki(kp,n),h=d.value===r,[g,y]=p.useState(l??""),[v,b]=p.useState(!1),w=ut(t,T=>{var _;return(_=f.itemRefCallback)==null?void 0:_.call(f,T,r,s)}),E=Nn(),S=p.useRef("touch"),R=()=>{s||(d.onValueChange(r),d.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return o.jsx($Q,{scope:n,value:r,disabled:s,textId:E,isSelected:h,onItemTextChange:p.useCallback(T=>{y(_=>_||((T==null?void 0:T.textContent)??"").trim())},[]),children:o.jsx(Og.ItemSlot,{scope:n,value:r,disabled:s,textValue:g,children:o.jsx(Je.div,{role:"option","aria-labelledby":E,"data-highlighted":v?"":void 0,"aria-selected":h&&v,"data-state":h?"checked":"unchecked","aria-disabled":s||void 0,"data-disabled":s?"":void 0,tabIndex:s?void 0:-1,...c,ref:w,onFocus:Te(c.onFocus,()=>b(!0)),onBlur:Te(c.onBlur,()=>b(!1)),onClick:Te(c.onClick,()=>{S.current!=="mouse"&&R()}),onPointerUp:Te(c.onPointerUp,()=>{S.current==="mouse"&&R()}),onPointerDown:Te(c.onPointerDown,T=>{S.current=T.pointerType}),onPointerMove:Te(c.onPointerMove,T=>{var _;S.current=T.pointerType,s?(_=f.onItemLeave)==null||_.call(f):S.current==="mouse"&&T.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Te(c.onPointerLeave,T=>{var _;T.currentTarget===document.activeElement&&((_=f.onItemLeave)==null||_.call(f))}),onKeyDown:Te(c.onKeyDown,T=>{var D;((D=f.searchRef)==null?void 0:D.current)!==""&&T.key===" "||(jQ.includes(T.key)&&R(),T.key===" "&&T.preventDefault())})})})})});iD.displayName=kp;var qd="SelectItemText",lD=p.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:s,...l}=e,c=Zi(qd,n),d=Ki(qd,n),f=oD(qd,n),h=DQ(qd,n),[g,y]=p.useState(null),v=ut(t,R=>y(R),f.onItemTextChange,R=>{var T;return(T=d.itemTextRefCallback)==null?void 0:T.call(d,R,f.value,f.disabled)}),b=g==null?void 0:g.textContent,w=p.useMemo(()=>o.jsx("option",{value:f.value,disabled:f.disabled,children:b},f.value),[f.disabled,f.value,b]),{onNativeOptionAdd:E,onNativeOptionRemove:S}=h;return Cr(()=>(E(w),()=>S(w)),[E,S,w]),o.jsxs(o.Fragment,{children:[o.jsx(Je.span,{id:f.textId,...l,ref:v}),f.isSelected&&c.valueNode&&!c.valueNodeHasChildren?ds.createPortal(l.children,c.valueNode):null]})});lD.displayName=qd;var cD="SelectItemIndicator",uD=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return oD(cD,n).isSelected?o.jsx(Je.span,{"aria-hidden":!0,...r,ref:t}):null});uD.displayName=cD;var W0="SelectScrollUpButton",dD=p.forwardRef((e,t)=>{const n=Ki(W0,e.__scopeSelect),r=eS(W0,e.__scopeSelect),[s,l]=p.useState(!1),c=ut(t,r.onScrollButtonChange);return Cr(()=>{if(n.viewport&&n.isPositioned){let d=function(){const h=f.scrollTop>0;l(h)};const f=n.viewport;return d(),f.addEventListener("scroll",d),()=>f.removeEventListener("scroll",d)}},[n.viewport,n.isPositioned]),s?o.jsx(hD,{...e,ref:c,onAutoScroll:()=>{const{viewport:d,selectedItem:f}=n;d&&f&&(d.scrollTop=d.scrollTop-f.offsetHeight)}}):null});dD.displayName=W0;var Q0="SelectScrollDownButton",fD=p.forwardRef((e,t)=>{const n=Ki(Q0,e.__scopeSelect),r=eS(Q0,e.__scopeSelect),[s,l]=p.useState(!1),c=ut(t,r.onScrollButtonChange);return Cr(()=>{if(n.viewport&&n.isPositioned){let d=function(){const h=f.scrollHeight-f.clientHeight,g=Math.ceil(f.scrollTop)<h;l(g)};const f=n.viewport;return d(),f.addEventListener("scroll",d),()=>f.removeEventListener("scroll",d)}},[n.viewport,n.isPositioned]),s?o.jsx(hD,{...e,ref:c,onAutoScroll:()=>{const{viewport:d,selectedItem:f}=n;d&&f&&(d.scrollTop=d.scrollTop+f.offsetHeight)}}):null});fD.displayName=Q0;var hD=p.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...s}=e,l=Ki("SelectScrollButton",n),c=p.useRef(null),d=Mg(n),f=p.useCallback(()=>{c.current!==null&&(window.clearInterval(c.current),c.current=null)},[]);return p.useEffect(()=>()=>f(),[f]),Cr(()=>{var g;const h=d().find(y=>y.ref.current===document.activeElement);(g=h==null?void 0:h.ref.current)==null||g.scrollIntoView({block:"nearest"})},[d]),o.jsx(Je.div,{"aria-hidden":!0,...s,ref:t,style:{flexShrink:0,...s.style},onPointerDown:Te(s.onPointerDown,()=>{c.current===null&&(c.current=window.setInterval(r,50))}),onPointerMove:Te(s.onPointerMove,()=>{var h;(h=l.onItemLeave)==null||h.call(l),c.current===null&&(c.current=window.setInterval(r,50))}),onPointerLeave:Te(s.onPointerLeave,()=>{f()})})}),HQ="SelectSeparator",mD=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return o.jsx(Je.div,{"aria-hidden":!0,...r,ref:t})});mD.displayName=HQ;var X0="SelectArrow",BQ=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,s=Ig(n),l=Zi(X0,n),c=Ki(X0,n);return l.open&&c.position==="popper"?o.jsx(Df,{...s,...r,ref:t}):null});BQ.displayName=X0;var GQ="SelectBubbleInput",pD=p.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const s=p.useRef(null),l=ut(r,s),c=J1(t);return p.useEffect(()=>{const d=s.current;if(!d)return;const f=window.HTMLSelectElement.prototype,g=Object.getOwnPropertyDescriptor(f,"value").set;if(c!==t&&g){const y=new Event("change",{bubbles:!0});g.call(d,t),d.dispatchEvent(y)}},[c,t]),o.jsx(Je.select,{...n,style:{...RN,...n.style},ref:l,defaultValue:t})});pD.displayName=GQ;function gD(e){return e===""||e===void 0}function yD(e){const t=ms(e),n=p.useRef(""),r=p.useRef(0),s=p.useCallback(c=>{const d=n.current+c;t(d),(function f(h){n.current=h,window.clearTimeout(r.current),h!==""&&(r.current=window.setTimeout(()=>f(""),1e3))})(d)},[t]),l=p.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,s,l]}function vD(e,t,n){const s=t.length>1&&Array.from(t).every(h=>h===t[0])?t[0]:t,l=n?e.indexOf(n):-1;let c=qQ(e,Math.max(l,0));s.length===1&&(c=c.filter(h=>h!==n));const f=c.find(h=>h.textValue.toLowerCase().startsWith(s.toLowerCase()));return f!==n?f:void 0}function qQ(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var ZQ=G3,KQ=Z3,YQ=Y3,WQ=W3,QQ=Q3,XQ=X3,JQ=nD,eX=aD,tX=iD,nX=lD,rX=uD,aX=dD,sX=fD,oX=mD;function Ea({...e}){return o.jsx(ZQ,{"data-slot":"select",...e})}function kg({...e}){return o.jsx(eX,{"data-slot":"select-group",...e})}function wa({...e}){return o.jsx(YQ,{"data-slot":"select-value",...e})}function Ra({className:e,size:t="default",children:n,...r}){return o.jsxs(KQ,{"data-slot":"select-trigger","data-size":t,className:ne("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...r,children:[n,o.jsx(WQ,{asChild:!0,children:o.jsx(Qa,{className:"size-4 opacity-50"})})]})}function Ta({className:e,children:t,position:n="popper",...r}){return o.jsx(QQ,{children:o.jsxs(XQ,{"data-slot":"select-content",className:ne("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...r,children:[o.jsx(lX,{}),o.jsx(JQ,{className:ne("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:t}),o.jsx(cX,{})]})})}function Yn({className:e,children:t,...n}){return o.jsxs(tX,{"data-slot":"select-item",className:ne("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...n,children:[o.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:o.jsx(rX,{children:o.jsx(fr,{className:"size-4"})})}),o.jsx(nX,{children:t})]})}function iX({className:e,...t}){return o.jsx(oX,{"data-slot":"select-separator",className:ne("bg-border pointer-events-none -mx-1 my-1 h-px",e),...t})}function lX({className:e,...t}){return o.jsx(aX,{"data-slot":"select-scroll-up-button",className:ne("flex cursor-default items-center justify-center py-1",e),...t,children:o.jsx(zs,{className:"size-4"})})}function cX({className:e,...t}){return o.jsx(sX,{"data-slot":"select-scroll-down-button",className:ne("flex cursor-default items-center justify-center py-1",e),...t,children:o.jsx(Qa,{className:"size-4"})})}const uX=an({title:sn().min(1,"Title is required").max(100,"Title must be less than 100 characters"),storageId:sn().min(1,"Storage is required")});function dX(){const{createDataMart:e,isLoading:t,error:n}=Fo();return{handleCreate:p.useCallback(async s=>{try{return await e(s)}catch(l){return console.error(l),null}},[e]),isSubmitting:t,serverError:n}}function fX(e){const{getDataMart:t,deleteDataMart:n,updateDataMartTitle:r,updateDataMartDescription:s,updateDataMartDefinition:l,updateDataMartSchema:c,actualizeDataMartSchema:d,publishDataMart:f,runDataMart:h,cancelDataMartRun:g,getDataMartRuns:y,loadMoreDataMartRuns:v,reset:b,dataMart:w,isLoading:E,error:S,getErrorMessage:R,runs:T}=Fo();return p.useEffect(()=>(e?t(e):b(),()=>{b()}),[e,t,b]),{dataMart:w,isLoading:E,error:S,getErrorMessage:R,deleteDataMart:n,updateDataMartTitle:r,updateDataMartDescription:s,updateDataMartDefinition:l,updateDataMartSchema:c,actualizeDataMartSchema:d,publishDataMart:f,runDataMart:h,cancelDataMartRun:g,getDataMartRuns:y,loadMoreDataMartRuns:v,runs:T,getDataMart:t}}const $T=(e,t,n)=>{if(e&&"reportValidity"in e){const r=Ae(n,t);e.setCustomValidity(r&&r.message||""),e.reportValidity()}},J0=(e,t)=>{for(const n in t.fields){const r=t.fields[n];r&&r.ref&&"reportValidity"in r.ref?$T(r.ref,n,e):r&&r.refs&&r.refs.forEach(s=>$T(s,n,e))}},HT=(e,t)=>{t.shouldUseNativeValidation&&J0(e,t);const n={};for(const r in e){const s=Ae(t.fields,r),l=Object.assign(e[r]||{},{ref:s&&s.ref});if(hX(t.names||Object.keys(e),r)){const c=Object.assign({},Ae(n,r));Yt(c,"root",l),Yt(n,r,c)}else Yt(n,r,l)}return n},hX=(e,t)=>{const n=BT(t);return e.some(r=>BT(r).match(`^${n}\\.\\d+`))};function BT(e){return e.replace(/\]|\[/g,"")}function xD(e,t,n){function r(d,f){var h;Object.defineProperty(d,"_zod",{value:d._zod??{},enumerable:!1}),(h=d._zod).traits??(h.traits=new Set),d._zod.traits.add(e),t(d,f);for(const g in c.prototype)g in d||Object.defineProperty(d,g,{value:c.prototype[g].bind(d)});d._zod.constr=c,d._zod.def=f}const s=(n==null?void 0:n.Parent)??Object;class l extends s{}Object.defineProperty(l,"name",{value:e});function c(d){var f;const h=n!=null&&n.Parent?new l:this;r(h,d),(f=h._zod).deferred??(f.deferred=[]);for(const g of h._zod.deferred)g();return h}return Object.defineProperty(c,"init",{value:r}),Object.defineProperty(c,Symbol.hasInstance,{value:d=>{var f,h;return n!=null&&n.Parent&&d instanceof n.Parent?!0:(h=(f=d==null?void 0:d._zod)==null?void 0:f.traits)==null?void 0:h.has(e)}}),Object.defineProperty(c,"name",{value:e}),c}class mX extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}const pX={};function bD(e){return pX}function gX(e,t){return typeof t=="bigint"?t.toString():t}const SD=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};function Mm(e){return typeof e=="string"?e:e==null?void 0:e.message}function CD(e,t,n){var s,l,c,d,f,h;const r={...e,path:e.path??[]};if(!e.message){const g=Mm((c=(l=(s=e.inst)==null?void 0:s._zod.def)==null?void 0:l.error)==null?void 0:c.call(l,e))??Mm((d=t==null?void 0:t.error)==null?void 0:d.call(t,e))??Mm((f=n.customError)==null?void 0:f.call(n,e))??Mm((h=n.localeError)==null?void 0:h.call(n,e))??"Invalid input";r.message=g}return delete r.inst,delete r.continue,t!=null&&t.reportInput||delete r.input,r}const ED=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,gX,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},yX=xD("$ZodError",ED),wD=xD("$ZodError",ED,{Parent:Error}),vX=e=>(t,n,r,s)=>{const l=r?Object.assign(r,{async:!1}):{async:!1},c=t._zod.run({value:n,issues:[]},l);if(c instanceof Promise)throw new mX;if(c.issues.length){const d=new((s==null?void 0:s.Err)??e)(c.issues.map(f=>CD(f,l,bD())));throw SD(d,s==null?void 0:s.callee),d}return c.value},xX=vX(wD),bX=e=>async(t,n,r,s)=>{const l=r?Object.assign(r,{async:!0}):{async:!0};let c=t._zod.run({value:n,issues:[]},l);if(c instanceof Promise&&(c=await c),c.issues.length){const d=new((s==null?void 0:s.Err)??e)(c.issues.map(f=>CD(f,l,bD())));throw SD(d,s==null?void 0:s.callee),d}return c.value},SX=bX(wD);function GT(e,t){try{var n=e()}catch(r){return t(r)}return n&&n.then?n.then(void 0,t):n}function CX(e,t){for(var n={};e.length;){var r=e[0],s=r.code,l=r.message,c=r.path.join(".");if(!n[c])if("unionErrors"in r){var d=r.unionErrors[0].errors[0];n[c]={message:d.message,type:d.code}}else n[c]={message:l,type:s};if("unionErrors"in r&&r.unionErrors.forEach(function(g){return g.errors.forEach(function(y){return e.push(y)})}),t){var f=n[c].types,h=f&&f[r.code];n[c]=W1(c,t,n,s,h?[].concat(h,r.message):r.message)}e.shift()}return n}function EX(e,t){for(var n={};e.length;){var r=e[0],s=r.code,l=r.message,c=r.path.join(".");if(!n[c])if(r.code==="invalid_union"&&r.errors.length>0){var d=r.errors[0][0];n[c]={message:d.message,type:d.code}}else n[c]={message:l,type:s};if(r.code==="invalid_union"&&r.errors.forEach(function(g){return g.forEach(function(y){return e.push(y)})}),t){var f=n[c].types,h=f&&f[r.code];n[c]=W1(c,t,n,s,h?[].concat(h,r.message):r.message)}e.shift()}return n}function Jl(e,t,n){if(n===void 0&&(n={}),(function(r){return"_def"in r&&typeof r._def=="object"&&"typeName"in r._def})(e))return function(r,s,l){try{return Promise.resolve(GT(function(){return Promise.resolve(e[n.mode==="sync"?"parse":"parseAsync"](r,t)).then(function(c){return l.shouldUseNativeValidation&&J0({},l),{errors:{},values:n.raw?Object.assign({},r):c}})},function(c){if((function(d){return Array.isArray(d==null?void 0:d.issues)})(c))return{values:{},errors:HT(CX(c.errors,!l.shouldUseNativeValidation&&l.criteriaMode==="all"),l)};throw c}))}catch(c){return Promise.reject(c)}};if((function(r){return"_zod"in r&&typeof r._zod=="object"})(e))return function(r,s,l){try{return Promise.resolve(GT(function(){return Promise.resolve((n.mode==="sync"?xX:SX)(e,r,t)).then(function(c){return l.shouldUseNativeValidation&&J0({},l),{errors:{},values:n.raw?Object.assign({},r):c}})},function(c){if((function(d){return d instanceof yX})(c))return{values:{},errors:HT(EX(c.issues,!l.shouldUseNativeValidation&&l.criteriaMode==="all"),l)};throw c}))}catch(c){return Promise.reject(c)}};throw new Error("Invalid input: not a Zod schema")}const RD=p.createContext(void 0);function wX(){const e=p.useContext(RD);if(e===void 0)throw new Error("useDataStorageContext must be used within a DataStorageProvider");return e}var Mt=(e=>(e.FETCH_STORAGES_START="FETCH_STORAGES_START",e.FETCH_STORAGES_SUCCESS="FETCH_STORAGES_SUCCESS",e.FETCH_STORAGES_ERROR="FETCH_STORAGES_ERROR",e.FETCH_STORAGE_START="FETCH_STORAGE_START",e.FETCH_STORAGE_SUCCESS="FETCH_STORAGE_SUCCESS",e.FETCH_STORAGE_ERROR="FETCH_STORAGE_ERROR",e.CLEAR_CURRENT_STORAGE="CLEAR_CURRENT_STORAGE",e.CREATE_STORAGE_START="CREATE_STORAGE_START",e.CREATE_STORAGE_SUCCESS="CREATE_STORAGE_SUCCESS",e.CREATE_STORAGE_ERROR="CREATE_STORAGE_ERROR",e.UPDATE_STORAGE_START="UPDATE_STORAGE_START",e.UPDATE_STORAGE_SUCCESS="UPDATE_STORAGE_SUCCESS",e.UPDATE_STORAGE_ERROR="UPDATE_STORAGE_ERROR",e.DELETE_STORAGE_START="DELETE_STORAGE_START",e.DELETE_STORAGE_SUCCESS="DELETE_STORAGE_SUCCESS",e.DELETE_STORAGE_ERROR="DELETE_STORAGE_ERROR",e.CLEAR_ERROR="CLEAR_ERROR",e))(Mt||{});const RX={dataStorages:[],currentDataStorage:null,loading:!1,error:null};function TX(e,t){switch(t.type){case Mt.FETCH_STORAGES_START:case Mt.FETCH_STORAGE_START:case Mt.CREATE_STORAGE_START:case Mt.UPDATE_STORAGE_START:return{...e,error:null};case Mt.DELETE_STORAGE_START:return{...e,loading:!0,error:null};case Mt.FETCH_STORAGES_SUCCESS:return{...e,dataStorages:t.payload,loading:!1,error:null};case Mt.FETCH_STORAGE_SUCCESS:return{...e,currentDataStorage:t.payload,loading:!1,error:null};case Mt.CREATE_STORAGE_SUCCESS:return{...e,dataStorages:[...e.dataStorages,t.payload],loading:!1,error:null};case Mt.UPDATE_STORAGE_SUCCESS:return{...e,currentDataStorage:t.payload,dataStorages:e.dataStorages.map(n=>n.id===t.payload.id?t.payload:n),loading:!1,error:null};case Mt.DELETE_STORAGE_SUCCESS:return{...e,dataStorages:e.dataStorages.filter(n=>n.id!==t.payload),loading:!1,error:null};case Mt.FETCH_STORAGES_ERROR:case Mt.FETCH_STORAGE_ERROR:case Mt.CREATE_STORAGE_ERROR:case Mt.UPDATE_STORAGE_ERROR:case Mt.DELETE_STORAGE_ERROR:return{...e,loading:!1,error:t.payload};case Mt.CLEAR_CURRENT_STORAGE:return{...e,currentDataStorage:null};case Mt.CLEAR_ERROR:return{...e,error:null};default:return e}}function tS({children:e}){const[t,n]=p.useReducer(TX,RX);return o.jsx(RD.Provider,{value:{state:t,dispatch:n},children:e})}class jX extends Zl{constructor(){super("/data-storages")}async getDataStorages(){return this.get("/")}async getDataStorageById(t){return this.get(`/${t}`)}async createDataStorage(t){return this.post("",t)}async updateDataStorage(t,n){return this.put(`/${t}`,n)}async deleteDataStorage(t){return this.delete(`/${t}`)}}const Ud=new jX;function Lg(){const{state:e,dispatch:t}=wX(),n=p.useCallback(async()=>{t({type:Mt.FETCH_STORAGES_START});try{const f=await Ud.getDataStorages();t({type:Mt.FETCH_STORAGES_SUCCESS,payload:f.map(AW)})}catch(f){throw t({type:Mt.FETCH_STORAGES_ERROR,payload:yn(f)}),f}},[t]),r=p.useCallback(async f=>{try{const h=await Ud.getDataStorageById(f),g=Xm(h);t({type:Mt.FETCH_STORAGE_SUCCESS,payload:g})}catch(h){throw t({type:Mt.FETCH_STORAGE_ERROR,payload:yn(h)}),h}},[t]),s=p.useCallback(async f=>{t({type:Mt.CREATE_STORAGE_START});try{const h=DW(f),g=await Ud.createDataStorage(h),y=Xm(g);return t({type:Mt.CREATE_STORAGE_SUCCESS,payload:y}),Pe({event:"data_storage_created",category:"DataStorage",action:"Create",label:y.type}),At.success("Storage created"),y}catch(h){return t({type:Mt.CREATE_STORAGE_ERROR,payload:yn(h)}),null}},[t]),l=p.useCallback(async(f,h)=>{t({type:Mt.UPDATE_STORAGE_START});try{const g=NW(h),y=await Ud.updateDataStorage(f,g),v=Xm(y);return t({type:Mt.UPDATE_STORAGE_SUCCESS,payload:v}),Pe({event:"data_storage_updated",category:"DataStorage",action:"Update",label:v.type}),At.success("Storage updated"),v}catch(g){return t({type:Mt.UPDATE_STORAGE_ERROR,payload:yn(g)}),null}},[t]),c=p.useCallback(async f=>{t({type:Mt.DELETE_STORAGE_START});try{await Ud.deleteDataStorage(f),t({type:Mt.DELETE_STORAGE_SUCCESS,payload:f}),Pe({event:"data_storage_deleted",category:"DataStorage",action:"Delete",label:f}),At.success("Storage deleted")}catch(h){throw t({type:Mt.DELETE_STORAGE_ERROR,payload:yn(h)}),h}},[t]),d=p.useCallback(()=>{t({type:Mt.CLEAR_CURRENT_STORAGE})},[t]);return{dataStorages:e.dataStorages,currentDataStorage:e.currentDataStorage,loading:e.loading,error:e.error,fetchDataStorages:n,getDataStorageById:r,createDataStorage:s,updateDataStorage:l,deleteDataStorage:c,clearCurrentDataStorage:d}}const TD=({isOpen:e,onClose:t,onSelect:n})=>o.jsx(F1,{open:e,onOpenChange:t,children:o.jsxs(z1,{className:"sm:max-w-sm",children:[o.jsxs(V1,{children:[o.jsx($1,{children:"New Storage"}),o.jsx(H1,{children:"Choose the type of storage you want to create"})]}),o.jsx("div",{className:"flex flex-col gap-4 py-4",children:Bi.getAllTypes().map(r=>{const s=r.icon,l=r.status===wo.ACTIVE;return o.jsxs(Se,{variant:"outline",className:"flex px-4 py-6",onClick:()=>void n(r.type),disabled:!l,children:[o.jsxs("span",{className:"flex flex-grow items-center gap-2",children:[o.jsx(s,{size:24}),o.jsx("span",{className:"font-medium",children:r.displayName})]}),!l&&o.jsx(br,{variant:"secondary",children:"Coming soon"})]},r.type)})})]})});function _X({initialData:e,onSuccess:t}){const{handleCreate:n,isSubmitting:r,serverError:s}=dX(),{dataStorages:l,loading:c,fetchDataStorages:d,createDataStorage:f,getDataStorageById:h}=Lg(),[g,y]=p.useState(!1);p.useEffect(()=>{d()},[d]);const v=Gi({resolver:Jl(uX),defaultValues:{title:(e==null?void 0:e.title)??"",storageId:""},mode:"onTouched"}),b=async S=>{const R=await n(S);R&&t&&t(R)},w=()=>{y(!0)},E=async S=>{try{const R=await f(S);R!=null&&R.id&&(await h(R.id),v.setValue("storageId",R.id))}catch(R){console.error("Failed to create storage:",R)}y(!1)};return o.jsxs(o.Fragment,{children:[o.jsx(Wl,{...v,children:o.jsxs(qi,{onSubmit:S=>{v.handleSubmit(b)(S)},children:[o.jsxs(Ql,{variant:"light",children:[s&&o.jsx("div",{className:"rounded bg-red-100 p-3 text-red-700",children:s.message}),o.jsx(en,{control:v.control,name:"title",render:({field:S})=>o.jsxs(Vt,{children:[o.jsx($t,{children:"Title"}),o.jsx(Ht,{children:o.jsx(zt,{id:"title",placeholder:"Enter title",...S,disabled:r})}),o.jsx(on,{})]})}),o.jsx(en,{control:v.control,name:"storageId",render:({field:S})=>o.jsxs(Vt,{children:[o.jsx($t,{children:"Storage"}),o.jsx(Ht,{children:o.jsxs(Ea,{onValueChange:R=>{R==="create_new"?w():S.onChange(R)},value:S.value,disabled:r||c,children:[o.jsx(Ra,{className:"w-full",children:o.jsx(wa,{placeholder:"Select a storage"})}),o.jsx(Ta,{children:o.jsxs(kg,{children:[c&&o.jsx(Yn,{value:"loading",disabled:!0,children:"Loading..."}),!c&&l.map(R=>{const T=Bi.getInfo(R.type).icon;return o.jsx(Yn,{value:R.id,children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(T,{size:20}),o.jsx("span",{children:R.title})]})},R.id)}),!c&&l.length>0&&o.jsx(iX,{}),o.jsx(Yn,{value:"create_new",children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"flex h-5 w-5 items-center justify-center",children:o.jsx(_a,{size:20})}),o.jsx("span",{children:"Create new storage"})]})})]})})]})}),o.jsx(on,{})]})})]}),o.jsxs(Xl,{variant:"light",children:[o.jsx(Se,{type:"submit",children:"Create Data Mart"}),o.jsx(Se,{variant:"outline",type:"button",onClick:()=>{window.history.back()},children:"Go back"})]})]})}),o.jsx(TD,{isOpen:g,onClose:()=>{y(!1)},onSelect:S=>E(S)})]})}function NX({title:e,onUpdate:t,className:n,errorMessage:r="Title cannot be empty",minWidth:s="200px"}){const[l,c]=p.useState(e),[d,f]=p.useState(!1),h=p.useRef(null);p.useEffect(()=>{c(e)},[e]),p.useEffect(()=>{h.current&&(h.current.style.height="auto",h.current.style.height=`${String(h.current.scrollHeight)}px`)},[l]);const g=async()=>{if(l.trim()===""){c(e);return}if(l.trim()!==e)try{f(!0),await t(l.trim())}catch(v){c(e),console.error(v)}finally{f(!1)}},y=v=>{if(v.key==="Enter"&&!v.shiftKey){if(v.preventDefault(),l.trim()===""){At.error(r),c(e);return}g()}else v.key==="Escape"&&c(e)};return o.jsx("h2",{className:ne("m-0 cursor-pointer p-0 hover:opacity-80",n),children:o.jsx($i,{ref:h,value:l,onChange:v=>{c(v.target.value);const b=v.target;b.style.height="auto",b.style.height=`${String(b.scrollHeight)}px`},onBlur:()=>void g(),onKeyDown:y,className:ne("m-0 w-full border-0 p-0 shadow-none","bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0",{"opacity-50":d}),style:{fontSize:"inherit",fontWeight:"inherit",lineHeight:"inherit",fontFamily:"inherit",color:"inherit",resize:"none",overflow:"hidden",minHeight:"inherit",height:"auto",minWidth:s},disabled:d})})}var yl=(e=>(e.MANUAL_BACKFILL="MANUAL_BACKFILL",e.INCREMENTAL="INCREMENTAL",e))(yl||{}),jD=(e=>(e.MANUAL_BACKFILL="MANUAL_BACKFILL",e.HIDE_IN_CONFIG_FORM="HIDE_IN_CONFIG_FORM",e))(jD||{}),Pg="Tabs",[AX]=ir(Pg,[hg]),_D=hg(),[DX,nS]=AX(Pg),ND=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:s,defaultValue:l,orientation:c="horizontal",dir:d,activationMode:f="automatic",...h}=e,g=If(d),[y,v]=Vr({prop:r,onChange:s,defaultProp:l??"",caller:Pg});return o.jsx(DX,{scope:n,baseId:Nn(),value:y,onValueChange:v,orientation:c,dir:g,activationMode:f,children:o.jsx(Je.div,{dir:g,"data-orientation":c,...h,ref:t})})});ND.displayName=Pg;var AD="TabsList",DD=p.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...s}=e,l=nS(AD,n),c=_D(n);return o.jsx($N,{asChild:!0,...c,orientation:l.orientation,dir:l.dir,loop:r,children:o.jsx(Je.div,{role:"tablist","aria-orientation":l.orientation,...s,ref:t})})});DD.displayName=AD;var OD="TabsTrigger",MD=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:s=!1,...l}=e,c=nS(OD,n),d=_D(n),f=LD(c.baseId,r),h=PD(c.baseId,r),g=r===c.value;return o.jsx(HN,{asChild:!0,...d,focusable:!s,active:g,children:o.jsx(Je.button,{type:"button",role:"tab","aria-selected":g,"aria-controls":h,"data-state":g?"active":"inactive","data-disabled":s?"":void 0,disabled:s,id:f,...l,ref:t,onMouseDown:Te(e.onMouseDown,y=>{!s&&y.button===0&&y.ctrlKey===!1?c.onValueChange(r):y.preventDefault()}),onKeyDown:Te(e.onKeyDown,y=>{[" ","Enter"].includes(y.key)&&c.onValueChange(r)}),onFocus:Te(e.onFocus,()=>{const y=c.activationMode!=="manual";!g&&!s&&y&&c.onValueChange(r)})})})});MD.displayName=OD;var ID="TabsContent",kD=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:s,children:l,...c}=e,d=nS(ID,n),f=LD(d.baseId,r),h=PD(d.baseId,r),g=r===d.value,y=p.useRef(g);return p.useEffect(()=>{const v=requestAnimationFrame(()=>y.current=!1);return()=>cancelAnimationFrame(v)},[]),o.jsx(Er,{present:s||g,children:({present:v})=>o.jsx(Je.div,{"data-state":g?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":f,hidden:!v,id:h,tabIndex:0,...c,ref:t,style:{...e.style,animationDuration:y.current?"0s":void 0},children:v&&l})})});kD.displayName=ID;function LD(e,t){return`${e}-trigger-${t}`}function PD(e,t){return`${e}-content-${t}`}var OX=ND,MX=DD,IX=MD,kX=kD;function LX({className:e,...t}){return o.jsx(OX,{"data-slot":"tabs",className:ne("flex flex-col gap-2",e),...t})}function PX({className:e,...t}){return o.jsx(MX,{"data-slot":"tabs-list",className:ne("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",e),...t})}function UX({className:e,...t}){return o.jsx(IX,{"data-slot":"tabs-trigger",className:ne("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...t})}function FX({className:e,...t}){return o.jsx(kX,{"data-slot":"tabs-content",className:ne("flex-1 outline-none",e),...t})}var Ug="Collapsible",[zX,UD]=ir(Ug),[VX,rS]=zX(Ug),FD=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:r,defaultOpen:s,disabled:l,onOpenChange:c,...d}=e,[f,h]=Vr({prop:r,defaultProp:s??!1,onChange:c,caller:Ug});return o.jsx(VX,{scope:n,disabled:l,contentId:Nn(),open:f,onOpenToggle:p.useCallback(()=>h(g=>!g),[h]),children:o.jsx(Je.div,{"data-state":iS(f),"data-disabled":l?"":void 0,...d,ref:t})})});FD.displayName=Ug;var zD="CollapsibleTrigger",aS=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,...r}=e,s=rS(zD,n);return o.jsx(Je.button,{type:"button","aria-controls":s.contentId,"aria-expanded":s.open||!1,"data-state":iS(s.open),"data-disabled":s.disabled?"":void 0,disabled:s.disabled,...r,ref:t,onClick:Te(e.onClick,s.onOpenToggle)})});aS.displayName=zD;var sS="CollapsibleContent",oS=p.forwardRef((e,t)=>{const{forceMount:n,...r}=e,s=rS(sS,e.__scopeCollapsible);return o.jsx(Er,{present:n||s.open,children:({present:l})=>o.jsx($X,{...r,ref:t,present:l})})});oS.displayName=sS;var $X=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:r,children:s,...l}=e,c=rS(sS,n),[d,f]=p.useState(r),h=p.useRef(null),g=ut(t,h),y=p.useRef(0),v=y.current,b=p.useRef(0),w=b.current,E=c.open||d,S=p.useRef(E),R=p.useRef(void 0);return p.useEffect(()=>{const T=requestAnimationFrame(()=>S.current=!1);return()=>cancelAnimationFrame(T)},[]),Cr(()=>{const T=h.current;if(T){R.current=R.current||{transitionDuration:T.style.transitionDuration,animationName:T.style.animationName},T.style.transitionDuration="0s",T.style.animationName="none";const _=T.getBoundingClientRect();y.current=_.height,b.current=_.width,S.current||(T.style.transitionDuration=R.current.transitionDuration,T.style.animationName=R.current.animationName),f(r)}},[c.open,r]),o.jsx(Je.div,{"data-state":iS(c.open),"data-disabled":c.disabled?"":void 0,id:c.contentId,hidden:!E,...l,ref:g,style:{"--radix-collapsible-content-height":v?`${v}px`:void 0,"--radix-collapsible-content-width":w?`${w}px`:void 0,...e.style},children:E&&s})});function iS(e){return e?"open":"closed"}var VD=FD,HX=aS,BX=oS;const GX=VD,qX=aS,ZX=oS;function KX({children:e,className:t="",...n}){return o.jsx("div",{className:ne("flex flex-1 flex-col overflow-hidden",t),...n,children:e})}function YX({children:e,className:t="",...n}){return o.jsx("div",{className:ne("bg-muted dark:bg-sidebar flex-1 overflow-y-auto p-4",t),...n,children:o.jsx("div",{className:"flex min-h-full flex-col gap-4",children:e})})}function WX({children:e,className:t="",variant:n="horizontal",...r}){const s=n==="vertical"?"flex flex-col gap-1.5 pt-4":"flex items-center justify-between border-t px-4 py-3";return o.jsx("div",{className:ne(s,t),...r,children:e})}function Zd({children:e,className:t="",...n}){return o.jsx("div",{"data-slot":"wizard-step-item",className:ne("group border-border flex flex-col gap-2 rounded-md border-b bg-white px-4 py-3 transition-shadow duration-200 hover:shadow-sm dark:border-transparent dark:bg-white/4",t),...n,children:e})}function QX({label:e,children:t,className:n="",options:r,value:s,onValueChange:l,required:c=!1,tooltip:d,...f}){return o.jsx("div",{"data-slot":"wizard-step-item-one-of",className:ne("group border-border flex flex-col gap-2 rounded-md border-b bg-white px-4 py-3 transition-shadow duration-200 hover:shadow-sm dark:border-transparent dark:bg-white/4",n),...f,children:o.jsxs(LX,{value:s,onValueChange:l,children:[o.jsxs("div",{className:"flex items-center",children:[o.jsx(To,{required:c,tooltip:d,className:"w-full",children:e}),o.jsx(PX,{children:r.map(h=>o.jsx(UX,{value:h.value,children:h.label},h.value))})]}),t]})})}function $D({title:e,children:t,defaultOpen:n=!1,className:r=""}){const[s,l]=p.useState(n);return o.jsxs(GX,{open:s,onOpenChange:l,"data-slot":"wizard-collapsible",className:ne("group/collapsible flex flex-col gap-2 py-3",r),children:[o.jsx(qX,{asChild:!0,children:o.jsxs("button",{type:"button",className:ne("flex cursor-pointer items-center gap-1"),children:[o.jsx("span",{className:"text-muted-foreground/75 text-xs font-semibold tracking-wide uppercase",children:e}),o.jsx(ja,{className:ne("text-foreground/75 h-3.5 w-3.5 transition-transform duration-200",s&&"rotate-90")})]})}),o.jsx(ZX,{className:"data-[state=open]:animate-collapsible-down data-[state=closed]:animate-collapsible-up overflow-hidden",children:o.jsx("div",{className:"flex flex-col gap-2 pt-2",children:t})})]})}function To({children:e,required:t=!1,tooltip:n,tooltipProps:r,className:s="",...l}){return o.jsxs(Ca,{"data-slot":"wizard-step-label",className:ne("text-foreground flex items-center justify-between gap-2 text-sm font-medium",s),...l,children:[t?o.jsxs(St,{...r,children:[o.jsx(Ct,{asChild:!0,children:o.jsxs("span",{className:"flex items-center gap-1",children:[e,o.jsx("span",{className:"ml-1 text-red-500",children:"*"})]})}),o.jsx(Et,{side:"top",align:"center",role:"tooltip",children:"Required"})]}):o.jsx("span",{children:e}),n&&o.jsxs(St,{...r,children:[o.jsx(Ct,{asChild:!0,children:o.jsx("button",{type:"button",tabIndex:-1,className:"pointer-events-none opacity-0 transition group-hover:pointer-events-auto group-hover:opacity-100","aria-label":"Help information",children:o.jsx(zr,{className:"text-muted-foreground/50 hover:text-muted-foreground size-4 shrink-0 transition-colors","aria-hidden":"true"})})}),o.jsx(Et,{side:"top",align:"center",role:"tooltip",children:n})]})]})}function wl({title:e,children:t,className:n="",...r}){return o.jsxs("section",{"data-slot":"wizard-step-section",className:ne("mb-8",n),...r,children:[e&&o.jsx("h3",{className:"text-muted-foreground/75 mb-2 text-xs font-semibold tracking-wide uppercase",children:e}),o.jsx("div",{className:"flex flex-col gap-2",children:t})]})}function Mi({icon:e,title:t,subtitle:n,docUrl:r,variant:s="default",className:l,...c}){return s==="compact"?o.jsxs("div",{"data-slot":"wizard-step-hero",className:ne("border-border mb-6 flex items-center justify-between gap-4 border-b pb-4",l),...c,children:[o.jsxs("div",{className:"flex items-center gap-2",children:[e&&o.jsx("div",{children:e}),o.jsx("h2",{className:"text-md font-medium",children:t})]}),r!=null&&o.jsx(Se,{variant:"outline",asChild:!0,children:o.jsxs(Za,{to:r,target:"_blank",rel:"noopener noreferrer",children:["Documentation",o.jsx(_l,{className:"h-4 w-4"})]})})]}):o.jsxs("div",{"data-slot":"wizard-step-hero",className:ne("mb-6 flex flex-col items-center justify-center text-center",l),...c,children:[e&&o.jsx("div",{className:"mt-6 mb-3",children:e}),o.jsx("h2",{className:"text-xl font-medium",children:t}),n&&o.jsx("p",{className:"text-muted-foreground mt-2 text-sm",children:n}),r!=null&&o.jsx(Se,{variant:"outline",className:"mt-3 mb-6",asChild:!0,children:o.jsxs(Za,{to:r,target:"_blank",rel:"noopener noreferrer",children:["Documentation",o.jsx(_l,{className:"h-4 w-4"})]})})]})}function _o({children:e,className:t="",...n}){return o.jsx("div",{"data-slot":"wizard-step",className:ne("space-y-4",t),...n,children:e})}function XX({children:e,className:t="",...n}){return o.jsx("div",{className:ne("grid grid-cols-1 gap-4 md:grid-cols-2",t),...n,children:e})}function JX({icon:e,title:t,selected:n=!1,disabled:r=!1,onClick:s,onDoubleClick:l,className:c="",...d}){return o.jsxs("div",{className:ne("border-border flex items-center gap-4 rounded-md border-b bg-white px-4 py-3 transition-shadow duration-200 select-none hover:shadow-sm dark:border-transparent dark:bg-white/4",r?"cursor-not-allowed opacity-50 hover:shadow-none":"cursor-pointer hover:shadow-sm dark:hover:bg-white/8",n&&!r?"ring-primary border-transparent ring-2 dark:bg-white/8":"",c),onClick:s,onDoubleClick:l,...d,children:[e&&o.jsx("span",{className:"shrink-0",children:e}),r?o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx("span",{className:"cursor-not-allowed text-sm font-medium opacity-70",children:t})}),o.jsx(Et,{side:"top",align:"center",children:"Coming soon"})]}):o.jsx("span",{className:"text-sm font-medium",children:t})]})}function HD({type:e,id:t,name:n,value:r,label:s,checked:l,selected:c=!1,disabled:d=!1,tooltip:f,rightIcon:h,onChange:g,className:y="",...v}){const b=E=>{g&&g(e==="checkbox"?E.target.checked:E.target.value)},w=p.useRef(null);return o.jsxs("div",{"data-slot":"wizard-step-card-item",onClick:E=>{if(d)return;const S=E.target;S.tagName==="INPUT"||S.tagName==="LABEL"||S.closest("label")||w.current&&w.current.click()},className:ne("group border-border flex items-center gap-2 rounded-md border-b bg-white px-4 py-3 transition-shadow duration-200 select-none hover:shadow-sm dark:border-transparent dark:bg-white/4",d?"cursor-not-allowed":"cursor-pointer hover:shadow-sm dark:hover:bg-white/8",c?"ring-primary border-transparent ring-2 dark:bg-white/8":"",y),children:[o.jsx("input",{ref:w,id:t,type:e,name:n,value:r,checked:l,disabled:d,onChange:b,className:ne("text-primary focus:ring-primary border-border cursor-pointer",e==="radio"||e==="checkbox"?"h-4 w-4":"h-8 w-full rounded-md border px-2"),...v}),s&&o.jsx(To,{htmlFor:t,className:ne("cursor-pointer",d&&"cursor-not-allowed"),children:s}),(f||h)&&o.jsxs("div",{className:"ml-auto flex shrink-0 items-center gap-2",children:[f&&o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx(zr,{className:"text-muted-foreground/75 pointer-events-none h-4 w-4 opacity-0 group-hover:pointer-events-auto group-hover:opacity-100","data-tooltip-trigger":!0})}),o.jsx(Et,{side:"top",align:"center",children:f})]}),h&&o.jsx("div",{className:"flex items-center",children:h})]})]})}function lS({variant:e="grid",items:t,className:n=""}){const r=t??(e==="grid"?12:6),s=e==="grid"?"grid grid-cols-1 gap-4 md:grid-cols-2":"flex flex-col gap-4";return o.jsx("div",{"data-slot":"wizard-step-loading",className:ne(s,n),children:Array.from({length:r}).map((l,c)=>o.jsx(is,{className:"border-border h-12 rounded-md border-b bg-white dark:bg-white/4"},c))})}function qT(e){const t=eJ(e),n=p.forwardRef((r,s)=>{const{children:l,...c}=r,d=p.Children.toArray(l),f=d.find(nJ);if(f){const h=f.props.children,g=d.map(y=>y===f?p.Children.count(h)>1?p.Children.only(null):p.isValidElement(h)?h.props.children:null:y);return o.jsx(t,{...c,ref:s,children:p.isValidElement(h)?p.cloneElement(h,void 0,g):null})}return o.jsx(t,{...c,ref:s,children:l})});return n.displayName=`${e}.Slot`,n}function eJ(e){const t=p.forwardRef((n,r)=>{const{children:s,...l}=n;if(p.isValidElement(s)){const c=aJ(s),d=rJ(l,s.props);return s.type!==p.Fragment&&(d.ref=r?Ir(r,c):c),p.cloneElement(s,d)}return p.Children.count(s)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var tJ=Symbol("radix.slottable");function nJ(e){return p.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===tJ}function rJ(e,t){const n={...t};for(const r in t){const s=e[r],l=t[r];/^on[A-Z]/.test(r)?s&&l?n[r]=(...d)=>{const f=l(...d);return s(...d),f}:s&&(n[r]=s):r==="style"?n[r]={...s,...l}:r==="className"&&(n[r]=[s,l].filter(Boolean).join(" "))}return{...e,...n}}function aJ(e){var r,s;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(s=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function sJ(e){const t=e+"CollectionProvider",[n,r]=ir(t),[s,l]=n(t,{collectionRef:{current:null},itemMap:new Map}),c=E=>{const{scope:S,children:R}=E,T=ye.useRef(null),_=ye.useRef(new Map).current;return o.jsx(s,{scope:S,itemMap:_,collectionRef:T,children:R})};c.displayName=t;const d=e+"CollectionSlot",f=qT(d),h=ye.forwardRef((E,S)=>{const{scope:R,children:T}=E,_=l(d,R),D=ut(S,_.collectionRef);return o.jsx(f,{ref:D,children:T})});h.displayName=d;const g=e+"CollectionItemSlot",y="data-radix-collection-item",v=qT(g),b=ye.forwardRef((E,S)=>{const{scope:R,children:T,..._}=E,D=ye.useRef(null),A=ut(S,D),O=l(g,R);return ye.useEffect(()=>(O.itemMap.set(D,{ref:D,..._}),()=>void O.itemMap.delete(D))),o.jsx(v,{[y]:"",ref:A,children:T})});b.displayName=g;function w(E){const S=l(e+"CollectionConsumer",E);return ye.useCallback(()=>{const T=S.collectionRef.current;if(!T)return[];const _=Array.from(T.querySelectorAll(`[${y}]`));return Array.from(S.itemMap.values()).sort((O,j)=>_.indexOf(O.ref.current)-_.indexOf(j.ref.current))},[S.collectionRef,S.itemMap])}return[{Provider:c,Slot:h,ItemSlot:b},w,r]}var Ss="Accordion",oJ=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[cS,iJ,lJ]=sJ(Ss),[Fg]=ir(Ss,[lJ,UD]),uS=UD(),BD=ye.forwardRef((e,t)=>{const{type:n,...r}=e,s=r,l=r;return o.jsx(cS.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?o.jsx(fJ,{...l,ref:t}):o.jsx(dJ,{...s,ref:t})})});BD.displayName=Ss;var[GD,cJ]=Fg(Ss),[qD,uJ]=Fg(Ss,{collapsible:!1}),dJ=ye.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},collapsible:l=!1,...c}=e,[d,f]=Vr({prop:n,defaultProp:r??"",onChange:s,caller:Ss});return o.jsx(GD,{scope:e.__scopeAccordion,value:ye.useMemo(()=>d?[d]:[],[d]),onItemOpen:f,onItemClose:ye.useCallback(()=>l&&f(""),[l,f]),children:o.jsx(qD,{scope:e.__scopeAccordion,collapsible:l,children:o.jsx(ZD,{...c,ref:t})})})}),fJ=ye.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},...l}=e,[c,d]=Vr({prop:n,defaultProp:r??[],onChange:s,caller:Ss}),f=ye.useCallback(g=>d((y=[])=>[...y,g]),[d]),h=ye.useCallback(g=>d((y=[])=>y.filter(v=>v!==g)),[d]);return o.jsx(GD,{scope:e.__scopeAccordion,value:c,onItemOpen:f,onItemClose:h,children:o.jsx(qD,{scope:e.__scopeAccordion,collapsible:!0,children:o.jsx(ZD,{...l,ref:t})})})}),[hJ,zg]=Fg(Ss),ZD=ye.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:r,dir:s,orientation:l="vertical",...c}=e,d=ye.useRef(null),f=ut(d,t),h=iJ(n),y=If(s)==="ltr",v=Te(e.onKeyDown,b=>{var M;if(!oJ.includes(b.key))return;const w=b.target,E=h().filter(F=>{var G;return!((G=F.ref.current)!=null&&G.disabled)}),S=E.findIndex(F=>F.ref.current===w),R=E.length;if(S===-1)return;b.preventDefault();let T=S;const _=0,D=R-1,A=()=>{T=S+1,T>D&&(T=_)},O=()=>{T=S-1,T<_&&(T=D)};switch(b.key){case"Home":T=_;break;case"End":T=D;break;case"ArrowRight":l==="horizontal"&&(y?A():O());break;case"ArrowDown":l==="vertical"&&A();break;case"ArrowLeft":l==="horizontal"&&(y?O():A());break;case"ArrowUp":l==="vertical"&&O();break}const j=T%R;(M=E[j].ref.current)==null||M.focus()});return o.jsx(hJ,{scope:n,disabled:r,direction:s,orientation:l,children:o.jsx(cS.Slot,{scope:n,children:o.jsx(Je.div,{...c,"data-orientation":l,ref:f,onKeyDown:r?void 0:v})})})}),Lp="AccordionItem",[mJ,dS]=Fg(Lp),KD=ye.forwardRef((e,t)=>{const{__scopeAccordion:n,value:r,...s}=e,l=zg(Lp,n),c=cJ(Lp,n),d=uS(n),f=Nn(),h=r&&c.value.includes(r)||!1,g=l.disabled||e.disabled;return o.jsx(mJ,{scope:n,open:h,disabled:g,triggerId:f,children:o.jsx(VD,{"data-orientation":l.orientation,"data-state":eO(h),...d,...s,ref:t,disabled:g,open:h,onOpenChange:y=>{y?c.onItemOpen(r):c.onItemClose(r)}})})});KD.displayName=Lp;var YD="AccordionHeader",WD=ye.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=zg(Ss,n),l=dS(YD,n);return o.jsx(Je.h3,{"data-orientation":s.orientation,"data-state":eO(l.open),"data-disabled":l.disabled?"":void 0,...r,ref:t})});WD.displayName=YD;var eb="AccordionTrigger",QD=ye.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=zg(Ss,n),l=dS(eb,n),c=uJ(eb,n),d=uS(n);return o.jsx(cS.ItemSlot,{scope:n,children:o.jsx(HX,{"aria-disabled":l.open&&!c.collapsible||void 0,"data-orientation":s.orientation,id:l.triggerId,...d,...r,ref:t})})});QD.displayName=eb;var XD="AccordionContent",JD=ye.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=zg(Ss,n),l=dS(XD,n),c=uS(n);return o.jsx(BX,{role:"region","aria-labelledby":l.triggerId,"data-orientation":s.orientation,...c,...r,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});JD.displayName=XD;function eO(e){return e?"open":"closed"}var pJ=BD,gJ=KD,yJ=WD,vJ=QD,xJ=JD;const fS={default:{itemClass:"border-b last:border-b-0",triggerClass:"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",icon:null,chevronClass:"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200",contentClass:"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",contentInnerClass:"pt-0 pb-4",headerClass:"flex"},common:{itemClass:"overflow-hidden",triggerClass:"group focus-visible:ring-primary hover:bg-muted [&[data-state=open]]:bg-muted flex items-center gap-1 rounded-sm px-2 py-1 transition-all outline-none focus-visible:ring-2 [&[data-state=open]]:rounded-br-none [&[data-state=open]]:rounded-bl-none [&[data-state=open]]:font-semibold",icon:o.jsx(EL,{className:"size-4 shrink-0","aria-hidden":"true"}),chevronClass:"size-3.5 shrink-0 transition-transform duration-200 group-data-[state=open]:rotate-180",contentClass:"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down bg-muted overflow-hidden rounded-sm rounded-tl-none py-0 pr-2 pl-7 text-sm",contentInnerClass:"pt-2 pb-4",headerClass:void 0}},tO=p.createContext("default");function lr({variant:e="default",...t}){return o.jsx(tO.Provider,{value:e,children:o.jsx(pJ,{"data-slot":"accordion",...t})})}function hS(e){const t=p.useContext(tO);return e??t??"default"}function Un({className:e,variant:t,...n}){const r=hS(t),{itemClass:s}=fS[r];return o.jsx(gJ,{"data-slot":"accordion-item",className:ne(s,e),...n})}function Fn({className:e,children:t,variant:n,...r}){const s=hS(n),{triggerClass:l,icon:c,chevronClass:d,headerClass:f}=fS[s];return o.jsx(yJ,{className:f,children:o.jsxs(vJ,{"data-slot":"accordion-trigger",className:ne(l,e),...r,children:[c,t,o.jsx(Qa,{className:d,"aria-hidden":"true"})]})})}function zn({className:e,children:t,variant:n,...r}){const s=hS(n),{contentClass:l,contentInnerClass:c}=fS[s];return o.jsx(xJ,{"data-slot":"accordion-content",className:ne(l,e),...r,children:o.jsx("div",{className:c,children:t})})}function or({href:e,children:t,className:n,...r}){return o.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:ne("text-muted-foreground hover:bg-muted inline-flex items-center px-1 font-medium hover:rounded-md",n),...r,children:[t,o.jsx(_l,{className:"ml-1 inline h-3 w-3","aria-hidden":"true"})]})}function ZT(){return o.jsx(lr,{variant:"common",type:"single",collapsible:!0,children:o.jsxs(Un,{value:"connector-state-details",children:[o.jsx(Fn,{children:"What’s connector state?"}),o.jsxs(zn,{children:[o.jsx("p",{className:"mb-2",children:"The connector state stores internal data between runs and updates automatically with each execution. It’s used to track progress and ensure consistent data processing across runs."}),o.jsx("p",{className:"mb-2",children:"Connector state is available only for connectors that support incremental runs, helping add only new or updated records since the last run without reloading existing data."}),o.jsxs("p",{className:"mb-2",children:["For more details, see the"," ",o.jsx(or,{className:"underline",href:"https://docs.owox.com/?utm_source=owox_data_marts&utm_medium=manual_run_sheet&utm_campaign=tooltip_connector_state",children:"OWOX documentation"}),"."]})]})]})})}const Vg=e=>{if(!e)return"—";let t;if(typeof e=="string"){if(t=new Date(e),isNaN(t.getTime()))return"—"}else if(t=e,isNaN(t.getTime()))return"—";const r=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(t),s=new Map(r.map(y=>[y.type,y.value])),l=s.get("year")??"",c=s.get("month")??"",d=s.get("day")??"",f=s.get("hour")??"",h=s.get("minute")??"",g=s.get("second")??"";return`${l}-${c}-${d} ${f}:${h}:${g}`},zc=e=>Vg(nO(e).toISOString()),nO=e=>{const t=e.trim();if(t.includes("T")||t.includes("Z")){const s=new Date(t);if(!isNaN(s.getTime()))return s}let n=/^(\d{4})[-/](\d{1,2})[-/](\d{1,2})\s+(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$/.exec(t);if(n)return new Date(Date.UTC(parseInt(n[1],10),parseInt(n[2],10)-1,parseInt(n[3],10),parseInt(n[4],10),parseInt(n[5],10),n[6]?parseInt(n[6],10):0));if(n=/^(\d{1,2})[./](\d{1,2})[./](\d{4})\s+(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$/.exec(t),n)return new Date(Date.UTC(parseInt(n[3],10),parseInt(n[2],10)-1,parseInt(n[1],10),parseInt(n[4],10),parseInt(n[5],10),n[6]?parseInt(n[6],10):0));const r=new Date(t);return isNaN(r.getTime())?(console.warn(`Failed to parse date string: "${e}", using current date as fallback`),new Date):r},bJ=(e,t)=>{const n=t.getTime()-e.getTime(),r=Math.floor(n/1e3),s=Math.floor(r/60),l=Math.floor(s/60),c=s%60,d=r%60,f=[];return l>0&&f.push(`${String(l)} h`),c>0&&f.push(`${String(c)} min`),f.push(`${String(d)} sec`),f.join(" ")};function SJ({configuration:e,connectorState:t}){const r=((e==null?void 0:e.connector.source.configuration)??[]).map((d,f)=>{const h=d;return typeof h._id=="string"?{id:h._id,index:f}:void 0}).filter(d=>!!d),s=(t==null?void 0:t.states)??[],l=new Map(s.map(d=>[d._id,d])),c=r.map(({id:d,index:f})=>{const h=l.get(d);return h?{state:h,index:f}:void 0}).filter(d=>!!d);return o.jsx($D,{title:"State Info",children:c.length===0?o.jsxs(Vt,{children:[o.jsx($t,{children:"Connector state"}),o.jsx(Ht,{children:o.jsx("div",{className:"bg-muted min-h-[70px] cursor-not-allowed overflow-auto rounded-md px-3 py-2 font-mono text-sm whitespace-pre-wrap opacity-70",children:"No state available"})}),o.jsx(Pn,{children:o.jsx(ZT,{})})]}):o.jsx(o.Fragment,{children:c.map(({state:d,index:f})=>{const h=d.at||"",g=h?Vg(nO(h).toISOString()):"—",y=d.state,v=(()=>{try{return JSON.stringify(y,null,2)}catch{return typeof y=="string"?y:'"—"'}})();return o.jsxs(Vt,{children:[o.jsx($t,{tooltip:`Created at ${g}`,children:`Connector state of configuration #${String(f+1)}`}),o.jsx(Ht,{children:o.jsx(l4,{value:v,displayOnly:!0,className:"bg-muted overflow-auto rounded-md text-sm",minHeightClass:"min-h-0",showCopyButton:!0})}),o.jsx(Pn,{children:o.jsx(ZT,{})})]},d._id)})})})}function CJ({configuration:e,onClose:t,onSubmit:n}){const[r,s]=p.useState(new Set),l=p.useId(),c=Gi({defaultValues:{runType:yl.INCREMENTAL}}),{loading:d,loadingSpecification:f,connectorSpecification:h,fetchConnectorSpecification:g}=Yl(),{dataMart:y}=Fo(),v=p.useCallback(async S=>{!r.has(S)&&!f&&(s(R=>new Set(R).add(S)),await g(S))},[r,f,g]);p.useEffect(()=>{e!=null&&e.connector.source.name&&v(e.connector.source.name)},[e,d,v]);const b=S=>{n&&n(S)},w=()=>{t&&t()},E=S=>{if(!S)return"text";switch(S){case os.DATE:return"date";case os.NUMBER:return"number";default:return"text"}};return f?o.jsx("div",{children:"Loading..."}):h?o.jsx(Wl,{...c,children:o.jsxs(qi,{id:l,noValidate:!0,onSubmit:S=>void c.handleSubmit(b)(S),children:[o.jsxs(Ql,{children:[o.jsxs(Hs,{title:"General",children:[o.jsx(en,{control:c.control,name:"runType",render:({field:S})=>o.jsxs(Vt,{children:[o.jsx($t,{tooltip:"Select how you want to load data: incremental updates or full backfill for a period",children:"Run type"}),o.jsx(Ht,{children:o.jsxs(o.Fragment,{children:[o.jsx(xQ,{options:[{value:yl.INCREMENTAL,label:"Incremental load"},{value:yl.MANUAL_BACKFILL,label:"Backfill (custom period)"}],value:S.value,onChange:S.onChange,orientation:"horizontal"}),o.jsx(Pn,{children:c.watch("runType")===yl.MANUAL_BACKFILL?"Reloads all data for a specific time range from the source, replacing existing records for that period. Use when you need to correct or update historical data.":"Adds only new or updated records since the last run, using the current state of your Data Mart as a reference. Ideal for keeping data fresh without reloading what`s already there."})]})})]})}),c.watch("runType")===yl.INCREMENTAL&&o.jsx(SJ,{configuration:e,connectorState:(y==null?void 0:y.connectorState)??null})]}),c.watch("runType")===yl.MANUAL_BACKFILL&&o.jsx(Hs,{title:"Run configuration",children:h.filter(S=>{var R;return(R=S.attributes)==null?void 0:R.includes(jD.MANUAL_BACKFILL)}).map(S=>o.jsx(en,{control:c.control,name:`data.${S.name}`,render:()=>o.jsxs(Vt,{children:[o.jsx($t,{tooltip:S.description,children:S.title??S.name}),o.jsx(Ht,{children:o.jsx(zt,{id:S.name,placeholder:S.description,type:E(S.requiredType),defaultValue:typeof S.default=="string"||typeof S.default=="number"?S.default.toString():void 0,...c.register(`data.${S.name}`,{required:!0})})}),o.jsx(on,{})]},S.name)}))})]}),o.jsxs(Xl,{children:[o.jsx(Se,{type:"submit",disabled:!c.formState.isValid||f,children:"Run"}),o.jsx(Se,{type:"button",variant:"outline",onClick:w,children:"Cancel"})]})]})}):o.jsx("div",{children:"No connector specification found"})}function EJ({isOpen:e,onClose:t,configuration:n,onSubmit:r}){return o.jsx(Li,{open:e,onOpenChange:t,children:o.jsxs(Pi,{children:[o.jsx(Ui,{children:o.jsx(Fi,{children:"Manual Run"})}),o.jsx(CJ,{configuration:n,onClose:t,onSubmit:r})]})})}function rO({children:e,configuration:t,onManualRun:n,open:r}){const[s,l]=p.useState(r??!1),c=()=>{l(!0)},d=h=>{n(h),l(!1)},f=()=>e?o.jsx("div",{onClick:c,style:{cursor:"pointer"},children:e}):null;return o.jsxs(o.Fragment,{children:[f(),s&&o.jsx(yu,{children:o.jsx(EJ,{isOpen:s,onClose:()=>{l(!1)},configuration:t,onSubmit:d})})]})}var Rl=(e=>(e.IDLE="IDLE",e.READY="READY",e.PROCESSING="PROCESSING",e.SUCCESS="SUCCESS",e.ERROR="ERROR",e.CANCELLING="CANCELLING",e.CANCELLED="CANCELLED",e))(Rl||{});const wJ=1e3;function RJ(e,t){const[n,r]=p.useState(!1),[s,l]=p.useState(null),c=p.useRef(null),d=p.useRef(null),f=p.useRef(!0),h=p.useRef(t);h.current=t;const g=p.useCallback(S=>{f.current&&r(S)},[]),y=p.useCallback(S=>{f.current&&l(S)},[]),v=p.useCallback((S,R)=>{const T=S instanceof Error?S.message:"Schema actualization failed";At.dismiss(R),y(T),g(!1),c.current=null,d.current=null,At.error(T,{duration:void 0,id:R})},[y,g]),b=p.useCallback(async()=>{var R;const S=c.current;if((R=d.current)==null||R.abort(),S){At.dismiss(S);try{await nn.abortSchemaActualizeTrigger(e,S)}catch{}}c.current=null,d.current=null,g(!1)},[e,g]),w=p.useCallback(async(S,R)=>{var _;const T=D=>D===Rl.SUCCESS||D===Rl.ERROR||D===Rl.CANCELLED;for(;!R.aborted&&c.current===S;)try{const D=await nn.getSchemaActualizeTriggerStatus(e,S);if(T(D)){try{const A=await nn.getSchemaActualizeTriggerResponse(e,S);if(At.dismiss(S),A.success)(_=h.current)==null||_.call(h),At.success("Output schema actualized",{duration:void 0,id:S});else{const O=A.error??"Schema actualization failed";y(O),At.error(O,{duration:void 0,id:S})}}catch(A){const O=A instanceof Error?A.message:"Schema actualization failed";At.dismiss(S),y(O),At.error(O,{duration:void 0,id:S})}g(!1),c.current=null,d.current=null;return}await new Promise(A=>setTimeout(A,wJ))}catch(D){v(D,S)}},[e,y,g,v]),E=p.useCallback(async()=>{c.current&&await b(),y(null),g(!0);try{const{triggerId:S}=await nn.createSchemaActualizeTrigger(e);At.loading("Synchronizing schema with the data storage state. This may take a while.",{duration:1/0,id:S}),c.current=S;const R=new AbortController;d.current=R;try{await w(S,R.signal)}catch(T){v(T,S)}}catch(S){g(!1),y(S instanceof Error?S.message:"Failed to start schema actualization")}},[e,b,w,y,g,v]);return p.useEffect(()=>(f.current=!0,()=>{var R;f.current=!1;const S=c.current;(R=d.current)==null||R.abort(),S&&(At.dismiss(S),nn.abortSchemaActualizeTrigger(e,S).catch(()=>{})),c.current=null,d.current=null}),[e]),{run:E,isLoading:n,cancel:b,error:s}}function TJ({id:e}){const{navigate:t}=Po(),{dataMart:n,deleteDataMart:r,updateDataMartTitle:s,updateDataMartDescription:l,updateDataMartDefinition:c,actualizeDataMartSchema:d,updateDataMartSchema:f,publishDataMart:h,runDataMart:g,cancelDataMartRun:y,getDataMartRuns:v,loadMoreDataMartRuns:b,isLoading:w,error:E,getErrorMessage:S,runs:R,getDataMart:T}=fX(e),[_,D]=p.useState(!1),[A,O]=p.useState(!1),{id:j="",canPublish:M=!1,canActualizeSchema:F=!1,status:G={code:null,displayName:"",description:""},title:Y="",definition:Z=null,definitionType:ee=null,validationErrors:$=[]}=n??{},W=p.useCallback(()=>{j&&T(j)},[j,T]),{run:k,isLoading:H}=RJ(j,W),B=p.useCallback(async()=>{F&&await k()},[F,k]),ie=[{name:"Overview",path:"overview"},{name:"Data Setup",path:"data-setup"},{name:"Destinations",path:"reports"},{name:"Triggers",path:"triggers"},{name:"Run History",path:"run-history"}],xe=p.useCallback(async q=>{j&&await s(j,q)},[j,s]),L=p.useCallback(async()=>{if(j){O(!0);try{await h(j),B()}catch(q){console.log(q instanceof Error?q.message:"Failed to publish Data Mart")}finally{O(!1)}}},[j,h,B]),P=p.useCallback(async q=>{if(j){if(G.code!==Sr.PUBLISHED){rn.error("Manual run is only available for published Data Marts");return}await g({id:j,payload:q})}},[j,G,g]);return n?o.jsxs("div",{className:"px-12 py-6",children:[o.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[o.jsxs("div",{className:"flex items-center space-x-1 md:-ml-10",children:[o.jsx(au,{onClick:()=>{t("/data-marts")},variant:"ghost",size:"sm","aria-label":"Back to Data Marts",title:"Back to Data Marts",className:"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",children:o.jsx(u9,{className:"h-5 w-5"})}),o.jsx(NX,{title:Y,onUpdate:xe,className:"text-2xl font-medium"})]}),o.jsxs("div",{className:"flex items-center gap-2"+(A?" opacity-50":""),style:{minWidth:"120px"},children:[o.jsxs("div",{className:"ml-4 flex items-center gap-2",children:[o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx("div",{children:o.jsx(Bf,{type:G.code===Sr.PUBLISHED?jn.SUCCESS:jn.NEUTRAL,variant:"subtle",children:G.displayName})})}),o.jsx(Et,{children:G.code===Sr.PUBLISHED?"Your published Data Mart is ready for scheduled runs":"Draft Data Mart is not available for scheduled runs. Publish it to activate scheduling."})]}),G.code===Sr.DRAFT&&o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx("div",{children:o.jsxs(au,{variant:"default",onClick:()=>{L()},disabled:A||!M,className:"ml-2 flex items-center gap-1",children:[o.jsx(Wp,{className:"h-4 w-4"}),"Publish Data Mart"]})})}),!M&&o.jsxs(Et,{children:[o.jsx("div",{children:"Cannot publish Data Mart. Fix the issues below."}),$.length>0&&o.jsx("ul",{className:"mt-1 list-disc space-y-1 pl-4",children:MK($).map((q,te)=>o.jsx("li",{children:q},te))})]})]})]}),o.jsxs(wr,{children:[o.jsx(Rr,{asChild:!0,children:o.jsx(au,{variant:"ghost",children:o.jsx(K9,{className:"h-5 w-5"})})}),o.jsxs(Tr,{align:"end",children:[ee===Ue.CONNECTOR&&o.jsxs(o.Fragment,{children:[o.jsx(rO,{configuration:Z??null,onManualRun:q=>{P({runType:q.runType,data:q.data})},children:o.jsxs(vt,{onClick:q=>{q.preventDefault()},children:[o.jsx(Db,{className:"text-foreground h-4 w-4"}),o.jsx("span",{children:"Manual Run..."})]})}),o.jsx(Ka,{})]}),o.jsxs(vt,{onClick:()=>{D(!0)},children:[o.jsx(Lo,{className:"h-4 w-4 text-red-600"}),o.jsx("span",{className:"text-red-600",children:"Delete Data Mart"})]})]})]})]})]}),o.jsx("div",{children:o.jsx("nav",{className:"-mb-px flex space-x-4 border-b","aria-label":"Tabs",role:"tablist",children:ie.map(q=>o.jsx(Cf,{to:q.path,className:({isActive:te})=>ne("border-b-2 px-4 py-2 text-sm font-medium whitespace-nowrap",te?"border-primary text-primary":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 dark:text-gray-400 dark:hover:border-gray-200 dark:hover:text-gray-200"),children:q.name},q.name))})}),o.jsx("div",{className:"pt-4",children:o.jsx(e_,{context:{dataMart:n,isLoading:w,error:E,getErrorMessage:S,updateDataMartDescription:l,updateDataMartDefinition:c,actualizeDataMartSchema:d,updateDataMartSchema:f,runDataMart:g,cancelDataMartRun:y,getDataMartRuns:v,loadMoreDataMartRuns:b,runs:R,getDataMart:T,runSchemaActualization:B,isSchemaActualizationLoading:H}})}),o.jsx(Hr,{open:_,onOpenChange:D,title:"Delete Data Mart",description:o.jsxs(o.Fragment,{children:["Are you sure you want to delete ",o.jsxs("strong",{children:['"',Y,'"']}),"? This action cannot be undone."]}),confirmLabel:"Delete",cancelLabel:"Cancel",variant:"destructive",onConfirm:()=>{(async()=>{try{await r(j),D(!1),t("/data-marts")}catch(q){console.error("Failed to delete Data Mart:",q)}})()}})]}):o.jsxs("div",{className:"dm-page-content flex flex-col gap-4 py-4 md:py-8",children:[o.jsx(is,{className:"h-16 w-full"},0),Array.from({length:3}).map((q,te)=>o.jsx(is,{className:"h-48 w-full"},te+1))]})}function jJ({description:e,onUpdate:t,className:n,placeholder:r="Add description...",minWidth:s="100%",minHeight:l="100px"}){const[c,d]=p.useState(e??""),[f,h]=p.useState(!1),[g,y]=p.useState(!1),v=p.useRef(null);p.useEffect(()=>{d(e??"")},[e]),p.useEffect(()=>{if(v.current&&f){v.current.focus();const R=v.current.value.length;v.current.setSelectionRange(R,R),b(v.current)}},[f]);const b=R=>{R.style.height="auto",R.style.height=`${String(R.scrollHeight)}px`},w=R=>{d(R.target.value),b(R.target)},E=async()=>{const R=c.trim();if(R===(e??"")){h(!1);return}try{y(!0),await t(R===""?null:R),h(!1)}catch(_){console.error("Failed to update description:",_),d(e??"")}finally{y(!1)}},S=R=>{R.key==="Enter"&&R.ctrlKey?(R.preventDefault(),E()):R.key==="Escape"&&(R.preventDefault(),d(e??""),h(!1))};return f?o.jsxs("div",{className:"w-full",children:[o.jsx($i,{ref:v,value:c,onChange:w,onBlur:()=>void E(),onKeyDown:S,placeholder:r,className:ne("m-0 w-full border-0 bg-white p-2 shadow-none dark:bg-white/4","focus-visible:ring-primary focus-visible:ring-0",{"opacity-50":g}),style:{fontSize:"inherit",lineHeight:"inherit",fontFamily:"inherit",resize:"vertical",minHeight:l,minWidth:s},disabled:g}),o.jsxs("div",{className:"mt-2 text-xs text-gray-500",children:[o.jsxs("span",{children:["Press"," ",o.jsx("kbd",{className:"rounded border border-neutral-200 bg-neutral-100 px-1 py-0.5 font-sans dark:border-neutral-900 dark:bg-neutral-900",children:"Ctrl+Enter"})," ","to save •"," "]}),o.jsxs("span",{children:[o.jsx("kbd",{className:"rounded border border-neutral-200 bg-neutral-100 px-1 py-0.5 font-sans dark:border-neutral-900 dark:bg-neutral-900",children:"Esc"})," ","to cancel •"," "]}),o.jsx("span",{children:"Changes are also saved when you click outside"})]})]}):o.jsx("div",{className:"flex w-full items-center gap-4 rounded-md border-b border-gray-200 bg-white transition-shadow duration-200 hover:shadow-sm dark:border-0 dark:bg-white/4",children:o.jsx("div",{onClick:()=>{h(!0)},className:ne("min-h-24 cursor-pointer rounded p-2 whitespace-pre-wrap","transition-colors duration-150",!e&&"text-gray-400 italic",n),style:{minWidth:s},children:e??r})})}function _J(){const{dataMart:e,updateDataMartDescription:t}=Wa(),n=async r=>{await t(e.id,r)};return o.jsx("div",{children:o.jsx(jJ,{description:e.description,onUpdate:n,placeholder:"Add a description for this Data Mart..."})})}function KT(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function NJ(e){if(Array.isArray(e))return e}function AJ(e,t,n){return(t=PJ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function DJ(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,s,l,c,d=[],f=!0,h=!1;try{if(l=(n=n.call(e)).next,t!==0)for(;!(f=(r=l.call(n)).done)&&(d.push(r.value),d.length!==t);f=!0);}catch(g){h=!0,s=g}finally{try{if(!f&&n.return!=null&&(c=n.return(),Object(c)!==c))return}finally{if(h)throw s}}return d}}function OJ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
694
694
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function YT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function WT(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?YT(Object(n),!0).forEach(function(r){AJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):YT(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function MJ(e,t){if(e==null)return{};var n,r,s=IJ(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function IJ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function kJ(e,t){return NJ(e)||DJ(e,t)||UJ(e,t)||OJ()}function LJ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function PJ(e){var t=LJ(e,"string");return typeof t=="symbol"?t:t+""}function UJ(e,t){if(e){if(typeof e=="string")return KT(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?KT(e,t):void 0}}function FJ(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function QT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function XT(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?QT(Object(n),!0).forEach(function(r){FJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):QT(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function zJ(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(r){return t.reduceRight(function(s,l){return l(s)},r)}}function Kd(e){return function t(){for(var n=this,r=arguments.length,s=new Array(r),l=0;l<r;l++)s[l]=arguments[l];return s.length>=e.length?e.apply(this,s):function(){for(var c=arguments.length,d=new Array(c),f=0;f<c;f++)d[f]=arguments[f];return t.apply(n,[].concat(s,d))}}}function Pp(e){return{}.toString.call(e).includes("Object")}function VJ(e){return!Object.keys(e).length}function gf(e){return typeof e=="function"}function $J(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function HJ(e,t){return Pp(t)||Ti("changeType"),Object.keys(t).some(function(n){return!$J(e,n)})&&Ti("changeField"),t}function BJ(e){gf(e)||Ti("selectorType")}function GJ(e){gf(e)||Pp(e)||Ti("handlerType"),Pp(e)&&Object.values(e).some(function(t){return!gf(t)})&&Ti("handlersType")}function qJ(e){e||Ti("initialIsRequired"),Pp(e)||Ti("initialType"),VJ(e)&&Ti("initialContent")}function ZJ(e,t){throw new Error(e[t]||e.default)}var KJ={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},Ti=Kd(ZJ)(KJ),Im={changes:HJ,selector:BJ,handler:GJ,initial:qJ};function YJ(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Im.initial(e),Im.handler(t);var n={current:e},r=Kd(XJ)(n,t),s=Kd(QJ)(n),l=Kd(Im.changes)(e),c=Kd(WJ)(n);function d(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(g){return g};return Im.selector(h),h(n.current)}function f(h){zJ(r,s,l,c)(h)}return[d,f]}function WJ(e,t){return gf(t)?t(e.current):t}function QJ(e,t){return e.current=XT(XT({},e.current),t),t}function XJ(e,t,n){return gf(t)?t(e.current):Object.keys(n).forEach(function(r){var s;return(s=t[r])===null||s===void 0?void 0:s.call(t,e.current[r])}),n}var JJ={create:YJ},eee={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.54.0/min/vs"}};function tee(e){return function t(){for(var n=this,r=arguments.length,s=new Array(r),l=0;l<r;l++)s[l]=arguments[l];return s.length>=e.length?e.apply(this,s):function(){for(var c=arguments.length,d=new Array(c),f=0;f<c;f++)d[f]=arguments[f];return t.apply(n,[].concat(s,d))}}}function nee(e){return{}.toString.call(e).includes("Object")}function ree(e){return e||JT("configIsRequired"),nee(e)||JT("configType"),e.urls?(aee(),{paths:{vs:e.urls.monacoBase}}):e}function aee(){console.warn(aO.deprecation)}function see(e,t){throw new Error(e[t]||e.default)}var aO={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
695
695
  You are using deprecated way of configuration.
696
696
 
@@ -712,7 +712,7 @@ NULLABLE - field can be NULL
712
712
  REQUIRED - field cant be NULL
713
713
  REPEATED - field is an Array of Type`})]}),size:80,cell:({row:Y})=>o.jsx(xse,{mode:Y.getValue("mode"),onModeChange:Z=>{y(Y.index,{mode:Z})}}),columnIndex:4}],[y]),T=p.useCallback(()=>o.jsxs("div",{className:"flex items-center",children:[r&&o.jsx(gse,{isAllExpanded:g,onToggle:l}),o.jsxs(St,{children:[o.jsx(Ct,{className:"cursor-default",children:"Name"}),o.jsx(Et,{children:"Field name in the output schema"})]})]}),[r,g,l]),_=p.useCallback(({row:Y})=>{const Z=c[Y.index],$=(Z.type===kn.RECORD||Z.type===kn.STRUCT)&&Z.fields&&Z.fields.length>0,W=Z.path??"",k=Z.level??0,H=n.has(W);return o.jsxs("div",{className:"flex items-center",children:[k>0&&o.jsx("div",{style:{width:`${String(k*16-($?4:0))}px`},className:"flex-shrink-0"}),$?o.jsx(yse,{isExpanded:H,onToggle:()=>{s(W)},ariaLabel:H?"Collapse nested fields":"Expand nested fields"}):r&&o.jsx("div",{className:"w-5"}),o.jsx(iu,{value:Y.getValue("name"),onValueChange:B=>{y(Y.index,{name:B})},placeholder:"Field name is required",isBold:!0})]})},[c,n,r,s,y]),D=p.useCallback(({row:Y})=>{const Z=c[Y.index],ee=Z.type===kn.RECORD||Z.type===kn.STRUCT;return(Z.level??0)===0&&!ee?o.jsx(K5,{isPrimaryKey:Y.getValue("isPrimaryKey"),onPrimaryKeyChange:W=>{y(Y.index,{isPrimaryKey:W})}}):o.jsx("div",{})},[c,y]),A=p.useCallback(({row:Y})=>o.jsx(iu,{value:Y.getValue("description"),onValueChange:Z=>{y(Y.index,{description:Z})},minRows:5,placeholder:"-"}),[y]),O=p.useCallback(({row:Y})=>o.jsx(iu,{value:Y.getValue("alias"),onValueChange:Z=>{y(Y.index,{alias:Z})},placeholder:"-"}),[y]),j=p.useCallback(({row:Y})=>o.jsx(U5,{row:Y,onDeleteRow:t?v:void 0,onAddNestedField:t?b:void 0,isRecordType:f}),[t,v,b,f]),{handleDragEnd:M}=c5(e,t,c),F=p.useCallback(Y=>{const Z=c[Y.index];return Z.path??String(c.indexOf(Z))},[c]),G=m5(h5(Zg,{activationConstraint:{distance:5}}));return o.jsx(N5,{sensors:G,collisionDetection:p5,onDragEnd:M,children:o.jsx(Q5,{fields:c,onFieldsChange:t,onAddRow:w,createNewField:E,renderTypeCell:S,additionalColumns:R,fieldsForStatusCount:h,onSearchChange:d,nameColumnHeader:T,nameColumnCell:_,primaryKeyColumnCell:D,aliasColumnCell:O,descriptionColumnCell:A,actionsColumnCell:j,dragContext:k5,dragContextProps:{items:c.map(Y=>Y.path??String(c.indexOf(Y))),strategy:O5},rowComponent:P5,getRowId:F})})}function Ase({fields:e,onFieldsChange:t}){const n=p.useCallback(()=>({name:"",type:B1.STRING,isPrimaryKey:!1,status:Ga.DISCONNECTED}),[]),r=p.useCallback(({row:c,updateField:d})=>o.jsx(W5,{type:c.getValue("type"),storageType:Ie.AWS_ATHENA,onTypeChange:f=>{d(c.index,{type:f})}}),[]),{handleDragEnd:s}=c5(e,t),l=m5(h5(Zg,{activationConstraint:{distance:5}}));return o.jsx(N5,{sensors:l,collisionDetection:p5,onDragEnd:s,children:o.jsx(Q5,{fields:e,onFieldsChange:t,createNewField:n,renderTypeCell:r,dragContext:k5,dragContextProps:{items:e.map((c,d)=>d),strategy:O5},rowComponent:P5})})}function Dse({schema:e,storageType:t,onFieldsChange:n}){const r=p.useMemo(()=>{if(!e){const s=Tre(t);return n(s.fields),s}return e},[e,t,n]);return s5(r)?o.jsx(Nse,{fields:r.fields,onFieldsChange:n}):o5(r)?o.jsx(Ase,{fields:r.fields,onFieldsChange:n}):o.jsx("div",{className:"p-4 text-center",children:o.jsx("p",{children:"Unsupported schema type"})})}function Ose({definitionType:e}){const{dataMart:t,updateDataMartSchema:n,isLoading:r,error:s,runSchemaActualization:l,isSchemaActualizationLoading:c}=Wa(),{id:d="",schema:f}=t??{},{schema:h,isDirty:g,updateSchema:y,resetSchema:v}=_re(f),{operationStatus:b,startSaveOperation:w}=Nre(r,s);p.useEffect(()=>{b==="success"&&v()},[b,v]);const E=p.useCallback(D=>{y(D)},[y]),S=p.useCallback(()=>{d&&h&&(w(),n(d,h).then(()=>{l==null||l()}))},[d,h,w,n,l]),R=p.useCallback(()=>{l==null||l()},[l]),T=p.useCallback(()=>{v()},[v]),_=r||c;return t?o.jsxs("div",{className:"space-y-4",children:[o.jsx(Dse,{schema:h,storageType:t.storage.type,onFieldsChange:E}),o.jsxs("div",{className:"align-items-center mt-8 flex justify-between",children:[o.jsxs("div",{className:"flex space-x-4",children:[o.jsx(Se,{variant:"default",onClick:S,disabled:!g||_,children:"Save"}),o.jsx(Se,{type:"button",variant:"ghost",onClick:T,disabled:!g||_,children:"Discard"})]}),o.jsx(Se,{type:"button",variant:"outline",onClick:R,disabled:!e||_,children:"Refresh schema"})]})]}):o.jsx("div",{children:"Error: Data mart not found"})}function Mse(){const e=Xj(),{id:t,projectId:n}=e;return t?n?o.jsx("div",{className:"dm-page",children:o.jsx(N3,{children:o.jsx(TJ,{id:t})})}):o.jsx("div",{className:"dm-page-header",children:"Project ID is required"}):o.jsx("div",{className:"dm-page-header",children:"Data Mart ID is required"})}function Ise({className:e,...t}){return o.jsx("div",{"data-slot":"card",className:ne("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...t})}function kse({className:e,...t}){return o.jsx("div",{"data-slot":"card-header",className:ne("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...t})}function Lse({className:e,...t}){return o.jsx("div",{"data-slot":"card-title",className:ne("leading-none font-semibold",e),...t})}function Pse({className:e,...t}){return o.jsx("div",{"data-slot":"card-description",className:ne("text-muted-foreground text-sm",e),...t})}function Use({className:e,...t}){return o.jsx("div",{"data-slot":"card-content",className:ne("px-6",e),...t})}function Fse({className:e,...t}){return o.jsx("div",{"data-slot":"card-footer",className:ne("flex items-center px-6 [.border-t]:pt-6",e),...t})}const MS=p.createContext({isCollapsed:!1,collapsible:!1,handleCollapse:()=>{throw new Error("CollapsibleCardContext: handleCollapse not implemented")}});function No({icon:e,tooltip:t,subtitle:n,children:r}){const{isCollapsed:s}=p.useContext(MS);return o.jsxs("div",{className:"flex items-center gap-2 self-center",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"text-foreground flex h-7 w-7 items-center justify-center rounded-sm bg-gray-200/50 transition-colors duration-200 group-hover:bg-gray-200/75 dark:bg-white/8 dark:group-hover:bg-white/10",children:o.jsx(e,{size:18})}),o.jsx(Lse,{className:"text-md text-foreground leading-none font-medium",children:r})]}),n&&o.jsx(Pse,{className:ne("text-md text-muted-foreground/50",!s&&"hidden"),children:n}),t&&o.jsx(fs,{children:o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsxs("div",{className:"pointer-events-none ml-2 flex items-center opacity-0 transition-opacity duration-200 group-hover:pointer-events-auto group-hover:opacity-100",children:[o.jsx(zr,{className:"text-muted-foreground/50 hover:text-muted-foreground size-4 shrink-0 transition-colors"}),o.jsx("span",{className:"sr-only",children:t})]})}),o.jsx(Et,{children:o.jsx("p",{children:t})})]})})]})}No.displayName="CollapsibleCardHeaderTitle";function nh({children:e,className:t}){const n=r=>{r.stopPropagation()};return o.jsx("div",{className:ne("flex items-center gap-2 self-center",t),onClick:n,children:e})}nh.displayName="CollapsibleCardHeaderActions";function Ao({children:e}){const{collapsible:t,isCollapsed:n,handleCollapse:r}=p.useContext(MS);let s,l;return p.Children.forEach(e,c=>{if(p.isValidElement(c))switch(c.type){case No:s=c;break;case nh:l=c;break}}),o.jsxs(kse,{className:ne("group flex items-start justify-between gap-4 px-4 py-4",t&&"cursor-pointer"),onClick:t?r:void 0,children:[s,o.jsxs("div",{className:"flex items-center gap-2",children:[l,t&&o.jsx("div",{className:ne("flex h-7 w-7 items-center justify-center rounded-full transition-colors duration-200 hover:bg-gray-200/50 dark:hover:bg-white/4"),children:o.jsx("div",{className:ne("transform transition-transform duration-200",n?"rotate-0":"rotate-180"),children:o.jsx(Qa,{className:"text-muted-foreground/75 dark:text-muted-foreground/50 h-4 w-4"})})})]})]})}Ao.displayName="CollapsibleCardHeader";function Do({children:e}){return o.jsx(Use,{className:"px-4 pt-1",children:e})}Do.displayName="CollapsibleCardContent";function _i({left:e,right:t}){return o.jsxs(Fse,{className:"flex items-center gap-2 px-4 py-4",children:[o.jsx("div",{className:"flex flex-grow items-center gap-2",children:e}),t&&o.jsx("div",{className:"flex items-center",children:t})]})}_i.displayName="CollapsibleCardFooter";const wj="collapsed-card-";function jl({children:e,className:t,variant:n="default",collapsible:r=!1,defaultCollapsed:s=!1,onCollapsedChange:l,name:c}){const d=c?ks.get(`${wj}${c}`,"boolean")??s:s,[f,h]=p.useState(d);p.useEffect(()=>{c&&ks.set(`${wj}${c}`,f)},[f,c]);const g=()=>{const E=!f;h(E),l==null||l(E)};let y,v,b;p.Children.forEach(e,E=>{if(p.isValidElement(E))switch(E.type){case Ao:y=E;break;case Do:v=E;break;case _i:b=E;break}});const w={default:"rounded-md p-0 gap-0 bg-muted/50 dark:bg-white/4 border-0 border-b border-gray-200 dark:border-white/8 shadow-none",dense:"rounded-md p-0 gap-0 bg-muted/50 dark:bg-white/4 border-0 border-b border-gray-200 dark:border-white/8 shadow-none text-sm",flat:"rounded-md p-0 gap-0 border-0 border-b-0 shadow-none"};return o.jsx(MS.Provider,{value:{isCollapsed:f,collapsible:r,handleCollapse:g},children:o.jsxs(Ise,{className:ne(w[n],t),children:[y,o.jsx("div",{className:ne("grid transition-all duration-200",f?"grid-rows-[0fr]":"grid-rows-[1fr]"),children:o.jsxs("div",{className:"overflow-hidden",children:[v,b]})})]})})}function zse(){const{dataMart:e,updateDataMartStorage:t}=Fo(),n=(e==null?void 0:e.definitionType)??null,[r,s]=p.useState(n);return o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs(jl,{collapsible:!0,name:"data-storage",children:[o.jsx(Ao,{children:o.jsx(No,{icon:lu,tooltip:"Configure where your data will be stored",children:"Storage"})}),o.jsx(Do,{children:(e==null?void 0:e.storage)&&o.jsx(Vte,{dataStorage:e.storage,onDataStorageChange:t})}),o.jsx(_i,{})]}),o.jsxs(jl,{collapsible:!0,name:"input-source",children:[o.jsx(Ao,{children:o.jsx(No,{icon:Ab,tooltip:"Configure how to extract data from your data warehouse",children:"Input Source"})}),o.jsx(Do,{children:e&&o.jsx(Rre,{definitionType:r,initialDefinitionType:n,setDefinitionType:s})}),o.jsx(_i,{})]}),o.jsxs(jl,{collapsible:!0,name:"output-schema",children:[o.jsx(Ao,{children:o.jsx(No,{icon:z9,tooltip:"Configure your data mart output schema",children:"Output Schema"})}),o.jsx(Do,{children:e&&o.jsx(Ose,{definitionType:r})}),o.jsx(_i,{})]})]})}function Vse({row:e,onDeleteSuccess:t,onEditReport:n}){const[r,s]=p.useState(!1),[l,c]=p.useState(!1),[d,f]=p.useState(!1),{deleteReport:h,fetchReportsByDataMartId:g,runReport:y}=Kl(),v=`actions-menu-${e.original.id}`,b=p.useCallback(async()=>{try{await h(e.original.id),await g(e.original.dataMart.id),t==null||t(),f(!1)}catch(R){console.error("Failed to delete Google Sheet:",R)}},[h,g,t,e.original.id,e.original.dataMart.id]),w=p.useCallback(()=>{n==null||n(e.original),c(!1)},[n,e.original]),E=p.useCallback(async()=>{try{s(!0),await y(e.original.id)}catch(R){console.error("Failed to run report:",R)}finally{s(!1)}},[y,e.original.id]),S=p.useCallback(()=>{f(!0),c(!1)},[]);return o.jsxs("div",{className:"text-right",onClick:R=>{R.stopPropagation()},children:[o.jsxs(wr,{open:l,onOpenChange:c,children:[o.jsx(Rr,{asChild:!0,children:o.jsxs(Se,{variant:"ghost",className:`dm-card-table-body-row-actionbtn opacity-0 transition-opacity ${l?"opacity-100":"group-hover:opacity-100"}`,"aria-label":`Actions for report: ${e.original.title}`,"aria-haspopup":"true","aria-expanded":l,"aria-controls":v,children:[o.jsx("span",{className:"sr-only",children:"Open menu"}),o.jsx(Xa,{className:"dm-card-table-body-row-actionbtn-icon","aria-hidden":"true"})]})}),o.jsxs(Tr,{id:v,align:"end",role:"menu",children:[o.jsxs(vt,{onClick:R=>{R.stopPropagation(),w()},role:"menuitem",children:[o.jsx(Tf,{className:"text-foreground h-4 w-4","aria-hidden":"true"}),"Edit report"]}),_g(e.original.destinationConfig)&&o.jsxs(o.Fragment,{children:[o.jsx(Ka,{}),o.jsxs(vt,{onClick:R=>{R.stopPropagation(),E()},disabled:r,role:"menuitem","aria-label":r?"Running report...":`Run report: ${e.original.title}`,children:[o.jsx(Db,{className:"text-foreground h-4 w-4","aria-hidden":"true"}),r?"Running...":"Run report"]}),o.jsx(vt,{asChild:!0,children:o.jsxs("a",{href:C1(e.original.destinationConfig.spreadsheetId,e.original.destinationConfig.sheetId),target:"_blank",rel:"noopener noreferrer",role:"menuitem",onClick:R=>{R.stopPropagation()},children:[o.jsx(tL,{className:"text-foreground h-4 w-4","aria-hidden":"true"}),"Open document"]})})]}),o.jsx(Ka,{}),o.jsxs(vt,{onClick:R=>{R.stopPropagation(),S()},role:"menuitem","aria-label":`Delete report: ${e.original.title}`,children:[o.jsx(Lo,{className:"h-4 w-4 text-red-600","aria-hidden":"true"}),o.jsx("span",{className:"text-red-600",children:"Delete report"})]})]})]}),o.jsx(Hr,{open:d,onOpenChange:f,title:"Delete Report",description:`Are you sure you want to delete "${e.original.title}"? This action cannot be undone.`,confirmLabel:"Delete",cancelLabel:"Cancel",onConfirm:()=>{b()},variant:"destructive"})]})}const $se={[ln.SUCCESS]:{icon:Wp,color:"text-green-500",label:"Success"},[ln.ERROR]:{icon:sp,color:"text-red-500",label:"Fail"},[ln.RUNNING]:{icon:Rf,color:"text-primary animate-spin",label:"In progress"},[ln.CANCELLED]:{icon:sp,color:"text-gray-500",label:"Cancelled"}};function Hse({status:e,error:t}){if(!e)return null;const n=$se[e],{icon:r,color:s,label:l}=n,c=`status-tooltip-${e}-${t?"error":"normal"}`,d=()=>e===ln.ERROR&&t?`${l}: ${t}`:l;return o.jsx(fs,{children:o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx(r,{className:ne("h-5 w-5",s),role:"img","aria-label":d(),"aria-describedby":c,tabIndex:0})}),o.jsxs(Et,{id:c,side:"bottom",role:"tooltip",children:[o.jsx("div",{className:"text-xs",children:l}),e===ln.ERROR&&t&&o.jsx("div",{className:"mt-1 max-w-xs text-xs break-words whitespace-normal",children:t})]})]})})}function a0({column:e,children:t,label:n}){const r=e.getIsSorted(),s=p.useCallback(()=>{e.toggleSorting(e.getIsSorted()==="asc")},[e]),l=()=>r==="asc"?"sorted ascending":r==="desc"?"sorted descending":"not sorted",c=()=>r==="asc"?"ascending":r==="desc"?"descending":"none",d=n??(typeof t=="string"?t:"Column");return o.jsxs(Se,{variant:"ghost",onClick:s,className:"group dm-card-table-header-row-btn","aria-label":`${d} - ${l()}. Click to sort.`,"aria-sort":c(),children:[t,o.jsxs("span",{className:"flex h-4 w-4 items-center justify-center","aria-hidden":"true",children:[r==="asc"&&o.jsx(zs,{className:"text-foreground h-4 w-4"}),r==="desc"&&o.jsx(Qa,{className:"text-foreground h-4 w-4"}),!r&&o.jsx("span",{className:"opacity-0 transition-opacity duration-150 group-hover:opacity-100",children:o.jsx(zs,{className:"text-muted-foreground h-4 w-4"})})]})]})}var Ri=(e=>(e.TITLE="title",e.LAST_RUN_DATE="lastRunDate",e.LAST_RUN_STATUS="lastRunStatus",e))(Ri||{});const X5={[Ri.TITLE]:"Title",[Ri.LAST_RUN_DATE]:"Last Run Date",[Ri.LAST_RUN_STATUS]:"Last Run Status"};function Bse({table:e}){return o.jsx("div",{className:"px-4 text-right",children:o.jsxs(wr,{children:[o.jsx(Rr,{asChild:!0,children:o.jsx(Se,{variant:"ghost",className:"dm-card-table-body-row-actionbtn","aria-label":"Toggle columns",children:o.jsx(Xa,{className:"dm-card-table-body-row-actionbtn-icon"})})}),o.jsx(Tr,{align:"end",children:e.getAllColumns().filter(t=>t.getCanHide()&&t.id!=="actions").map(t=>{const n=X5[t.id]||t.id;return o.jsx(vt,{className:"capitalize",children:o.jsxs("label",{className:"flex items-center space-x-2",children:[o.jsx("button",{type:"button",role:"checkbox","aria-checked":t.getIsVisible(),"data-state":t.getIsVisible()?"checked":"unchecked","aria-label":`Toggle column ${t.id}`,className:"peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border bg-white shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white/8",onClick:()=>{t.toggleVisibility(!t.getIsVisible())},children:t.getIsVisible()&&o.jsx("span",{"data-state":"checked","data-slot":"checkbox-indicator",className:"pointer-events-none flex items-center justify-center text-current transition-none",children:o.jsx(fr,{className:"size-3.5 text-white"})})}),o.jsx("span",{children:n})]})},t.id)})})]})})}const Rj=e=>{switch(e){case"right":return"text-right";case"center":return"text-center";default:return"text-left"}},Gse=({onDeleteSuccess:e,onEditReport:t}={})=>[{accessorKey:Ri.TITLE,header:({column:n})=>o.jsx(a0,{column:n,children:X5[Ri.TITLE]}),cell:({row:n})=>n.original.title,enableColumnFilter:!0,size:50},{accessorKey:Ri.LAST_RUN_DATE,header:({column:n})=>o.jsx(a0,{column:n,children:"Last Run Date"}),cell:({row:n})=>{const r=n.original.lastRunDate;return o.jsx("div",{className:"text-muted-foreground text-sm",children:r?o.jsx(Pl,{date:new Date(r)}):"Never run"})},size:25},{accessorKey:Ri.LAST_RUN_STATUS,header:({column:n})=>o.jsx(a0,{column:n,children:"Last Run Status"}),cell:({row:n})=>n.original.lastRunStatus?o.jsx(Hse,{status:n.original.lastRunStatus,error:n.original.lastRunError}):o.jsx("span",{className:"text-muted-foreground text-sm",children:"—"}),size:25},{id:"actions",header:({table:n})=>o.jsx(Bse,{table:n}),cell:({row:n})=>o.jsx(Vse,{row:n,onDeleteSuccess:e,onEditReport:t}),size:80}];function J5({enabled:e,intervalMs:t=5e3,onlyWhenVisible:n=!0,onTick:r}){const s=p.useRef(r);s.current=r;const l=p.useRef(null);p.useEffect(()=>{var f;if(!e)return;(f=l.current)==null||f.abort(),l.current=new AbortController;const c=()=>{if(!n||document.visibilityState==="visible"){const h=new AbortController;s.current(h.signal)}};c();const d=window.setInterval(c,t);return()=>{var h;window.clearInterval(d),(h=l.current)==null||h.abort()}},[e,t,n])}const qse=5e3;function Zse({destination:e,onEditReport:t,autoRefreshEnabled:n=!1}){const{dataMart:r}=Wa(),{fetchReportsByDataMartId:s,reports:l,stopAllPolling:c,setPollingConfig:d}=Kl(),f=p.useMemo(()=>l.filter(S=>S.dataDestination.type===Dt.GOOGLE_SHEETS&&S.dataDestination.id===e.id),[l,e.id]);p.useEffect(()=>{d({initialPollingIntervalMs:2e3,initialPollCount:3,regularPollingIntervalMs:5e3})},[d]),p.useEffect(()=>{(async()=>{try{if(!r)return;await s(r.id)}catch(R){console.error(R)}})()},[s,r]),J5({enabled:!!r&&n,intervalMs:qse,onTick:()=>{r&&s(r.id,{silent:!0})}}),p.useEffect(()=>()=>{c()},[r==null?void 0:r.id,c]);const h=p.useMemo(()=>Gse({onDeleteSuccess:()=>{},onEditReport:t}),[t]),{sorting:g,setSorting:y,columnVisibility:v,setColumnVisibility:b}=Zf({columns:h,storageKeyPrefix:`data-mart-google-sheets-reports-${e.id}`,defaultSortingColumn:"lastRunDate"}),w=Au({data:f,columns:h,getCoreRowModel:Nu(),onSortingChange:y,getSortedRowModel:qf(),state:{sorting:g,columnVisibility:v},onColumnVisibilityChange:b}),E=`google-sheets-reports-table-${e.id}`;return o.jsx("div",{className:"w-full",children:o.jsx("div",{className:"dm-card-table-wrap",children:o.jsxs(Du,{id:E,className:"dm-card-table",role:"table","aria-label":`${e.title} reports`,children:[o.jsx(Ou,{className:"dm-card-table-header",children:w.getHeaderGroups().map(S=>o.jsx(sr,{className:"dm-card-table-header-row",children:S.headers.map(R=>o.jsx(Iu,{className:Rj(R.column.columnDef._align),style:R.column.id==="actions"?{width:80,minWidth:80,maxWidth:80}:{width:`${String(R.column.getSize())}%`},scope:"col",children:R.isPlaceholder?null:typeof R.column.columnDef.header=="function"?R.column.columnDef.header(R.getContext()):R.column.columnDef.header},R.id))},S.id))}),o.jsx(Mu,{className:"dm-card-table-body",children:w.getRowModel().rows.length?w.getRowModel().rows.map((S,R)=>o.jsx(sr,{onClick:()=>{const T=l.find(_=>_.id===S.original.id);T&&t(T)},className:"dm-card-table-body-row group",role:"row","aria-rowindex":R+1,children:S.getVisibleCells().map((T,_)=>o.jsx(Sa,{className:`px-6 whitespace-normal ${Rj(T.column.columnDef._align)}`,style:T.column.id==="actions"?{width:80,minWidth:80,maxWidth:80}:{width:`${String(T.column.getSize())}%`},role:"cell","aria-colindex":_+1,children:typeof T.column.columnDef.cell=="function"?T.column.columnDef.cell(T.getContext()):T.column.columnDef.cell},T.id))},S.id)):o.jsx(sr,{children:o.jsx(Sa,{colSpan:h.length,className:"dm-card-table-body-row-empty",role:"cell",children:o.jsx("span",{role:"status","aria-live":"polite",children:"No reports for this destination"})})})})]})})})}function Kse({children:e,className:t,...n}){return o.jsx("div",{className:ne("group flex items-start justify-center gap-3 rounded-md border-b border-gray-200 bg-white transition-shadow duration-200 hover:shadow-xs dark:border-0 dark:bg-white/2",t),...n,children:e})}function Yse({children:e,className:t,...n}){return o.jsx("div",{className:ne("flex flex-grow flex-col gap-1 py-4",t),...n,children:e})}function Wse({children:e,className:t,...n}){return o.jsx("div",{className:ne("text-md font-medium",t),...n,children:e})}function Qse({children:e,className:t,...n}){return o.jsx("div",{className:ne("text-muted-foreground text-sm",t),...n,children:e})}function Xse({checked:e,disabled:t,loading:n,onCheckedChange:r,tooltipTextSwitchOn:s,tooltipTextSwitchOff:l,tooltipTextSwitchDisabled:c}){const d=t?c??"Disabled":e?s:l;return o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx("div",{className:"flex items-center justify-center py-5 pl-6",onClick:f=>f.stopPropagation(),children:n?o.jsx(Rf,{className:"text-muted-foreground h-5 w-5 animate-spin"}):o.jsx(KO,{checked:e,disabled:t,onCheckedChange:r})})}),o.jsx(Et,{children:d})]})}function Jse({icon:e,className:t,...n}){return o.jsx("div",{className:ne("flex flex-shrink-0 items-center justify-center self-center p-4",t),...n,children:o.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-full transition-colors duration-200 group-hover:bg-gray-200/50 dark:group-hover:bg-white/4",children:e??o.jsx(ja,{className:"text-muted-foreground/75 dark:text-muted-foreground/50 h-4 w-4"})})})}function eoe(e){const{dataMart:t}=Wa(),{reports:n,createReport:r,deleteReport:s,fetchReportsByDataMartId:l}=Kl(),[c,d]=p.useState(!1),f=p.useMemo(()=>n.find(b=>b.dataDestination.type===Dt.LOOKER_STUDIO&&b.dataDestination.id===e.id),[n,e.id]),h=p.useMemo(()=>(t==null?void 0:t.status.code)===Sr.PUBLISHED,[t==null?void 0:t.status.code]),g=p.useMemo(()=>!!f,[f]),y=p.useMemo(()=>g?"Available in Looker Studio":"Not available in Looker Studio",[g]),v=p.useCallback(async b=>{if(!(!t||!h)){d(!0);try{if(b){const w={title:`Looker Studio Report - ${e.title}`,dataMartId:t.id,dataDestinationId:e.id,destinationConfig:{type:xa.LOOKER_STUDIO_CONFIG,cacheLifetime:300}};await r(w),await l(t.id)}else f&&(await s(f.id),await l(t.id))}catch(w){console.error("Failed to toggle Looker Studio report:",w)}finally{d(!1)}}},[t,h,e,f,r,s,l]);return{existingReport:f,isLoading:c,isEnabled:h,isChecked:g,dynamicTitle:y,handleSwitchChange:v}}function toe({destination:e,onEditReport:t,...n}){const{existingReport:r,isLoading:s,isEnabled:l,isChecked:c,dynamicTitle:d,handleSwitchChange:f}=eoe(e),h=p.useCallback(()=>{r&&t(r)},[r,t]);return o.jsxs(Kse,{className:r?"cursor-pointer dark:hover:bg-white/5":"",onClick:r?h:void 0,...n,children:[o.jsx(Xse,{checked:c,disabled:!l,loading:s,onCheckedChange:g=>void f(g),tooltipTextSwitchOn:"Switch off to remove access",tooltipTextSwitchOff:"Switch on to enable access",tooltipTextSwitchDisabled:"Publish the Data Mart first to enable access in Looker Studio"}),o.jsxs(Yse,{children:[o.jsx(Wse,{children:d}),o.jsx(Qse,{children:c&&r?o.jsx(o.Fragment,{children:r.lastRunDate?o.jsxs(o.Fragment,{children:["Last fetched"," ",r.lastRunStatus===ln.SUCCESS&&"successfully ",o.jsx(Pl,{date:new Date(r.lastRunDate)}),r.lastRunStatus===ln.ERROR&&" but failed with error",r.lastRunError&&o.jsx("div",{className:"mt-1 text-red-600 dark:text-red-400",children:r.lastRunError})]}):"Waiting for Looker Studio to fetch data"}):"Switch on to enable access"})]}),c&&r&&o.jsx(Jse,{})]})}function noe(){const{scope:e}=Po();return o.jsx("div",{className:"dm-card",children:o.jsxs("div",{className:"dm-empty-state",children:[o.jsx(_b,{className:"dm-empty-state-ico",strokeWidth:1}),o.jsx("h2",{className:"dm-empty-state-title",children:"Google Sheets, Looker Studio… and friends!"}),o.jsx("p",{className:"dm-empty-state-subtitle",children:"To send your Data Mart's data to your favorite tools, create a Destination first."}),o.jsx(Se,{variant:"outline",asChild:!0,children:o.jsxs(Za,{to:e("/data-destinations"),className:"flex items-center gap-1",children:["Go to Destinations",o.jsx(ja,{className:"h-4 w-4"})]})})]})})}function roe(){const[e,t]=p.useState(!1),[n,r]=p.useState(Ln.CREATE),[s,l]=p.useState(null);return{isOpen:e,mode:n,editingReport:s,handleAddReport:()=>{r(Ln.CREATE),l(null),t(!0),Pe({event:"report_open",category:"Report",action:"CreateReport",label:"ReportForm"})},handleEditReport:h=>{r(Ln.EDIT),l(h),t(!0),Pe({event:"report_open",category:"Report",action:"EditReport",label:h.dataDestination.type})},handleCloseModal:()=>{t(!1),l(null),Pe({event:"report_close",category:"Report",action:n===Ln.EDIT?"Edit":"Create",label:"ReportForm"})}}}function aoe({destination:e,dataMartStatus:t}){const{destinationInfo:n,isVisible:r}=iK(e),{isOpen:s,mode:l,editingReport:c,handleAddReport:d,handleEditReport:f,handleCloseModal:h}=roe();return r?o.jsxs(o.Fragment,{children:[o.jsxs(jl,{name:e.id,collapsible:!0,defaultCollapsed:!1,children:[o.jsxs(Ao,{children:[o.jsx(No,{icon:n.icon,children:e.title}),o.jsx(nh,{children:e.type===Dt.GOOGLE_SHEETS&&o.jsx(soe,{dataMartStatus:t,onAddReport:d})})]}),o.jsx(Do,{children:o.jsx(boe,{destination:e,onEditReport:f,...e.type===Dt.GOOGLE_SHEETS&&{autoRefreshEnabled:!0}})}),o.jsx(_i,{})]}),o.jsx(xoe,{destination:e,isOpen:s,onClose:h,mode:l,initialReport:c})]}):null}function soe({dataMartStatus:e,onAddReport:t}){const n=(e==null?void 0:e.code)===Sr.DRAFT;return o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx("span",{children:o.jsxs(Se,{onClick:t,variant:"outline",size:"sm","aria-label":"Add new report",disabled:n,children:[o.jsx(_a,{className:"h-4 w-4"}),"Add Report"]})})}),n&&o.jsx(Et,{children:o.jsx("p",{children:"To create a report, publish the Data Mart first"})})]})}function ooe({elementId:e,isOpen:t,delay:n=100,selectText:r=!1}){p.useEffect(()=>{{const s=setTimeout(()=>{const l=document.getElementById(e);if(l){const c=l;c.focus(),r&&c.value?c.select():c.value&&c.setSelectionRange(c.value.length,c.value.length)}},n);return()=>{clearTimeout(s)}}},[t,e,n,r])}const ioe=an({title:sn().min(1,"Title is required"),documentUrl:sn().refine(z4,"Enter a valid Google Sheets URL"),dataDestinationId:sn().min(1,"Destination is required")});function loe({initialReport:e,mode:t,dataMartId:n,onSuccess:r,preSelectedDestination:s}){const[l,c]=p.useState(null),[d,f]=p.useState(!1),{updateReport:h,createReport:g,error:y,clearError:v}=Kl();p.useEffect(()=>{d&&y&&(c(y),f(!1))},[y,d]);const b=Gi({resolver:Jl(ioe),defaultValues:{title:(e==null?void 0:e.title)??"",documentUrl:e!=null&&e.destinationConfig&&_g(e.destinationConfig)?`https://docs.google.com/spreadsheets/d/${e.destinationConfig.spreadsheetId}/edit#gid=${e.destinationConfig.sheetId}`:"",dataDestinationId:(e==null?void 0:e.dataDestination.id)??(s==null?void 0:s.id)??""},mode:"onTouched"}),{register:w,handleSubmit:E,formState:S,reset:R}=b,{errors:T,isDirty:_}=S,D=p.useCallback(async A=>{try{c(null),v(),f(!0);const{spreadsheetId:O,sheetId:j}=HZ(A.documentUrl);if(!O){c("Invalid Google Sheets URL");return}let M;if(t===Ln.CREATE)M=await g({title:A.title,dataMartId:n,dataDestinationId:A.dataDestinationId,destinationConfig:{type:xa.GOOGLE_SHEETS_CONFIG,spreadsheetId:O,sheetId:j}});else{if(!e){c("Initial report is required for edit mode");return}M=await h(e.id,{title:A.title,dataDestinationId:A.dataDestinationId,destinationConfig:{type:xa.GOOGLE_SHEETS_CONFIG,spreadsheetId:O,sheetId:j}})}if(!M||y){c(y??"An error occurred while submitting the form");return}r==null||r()}catch(O){console.error("Error submitting form:",O),c("An error occurred while submitting the form")}},[t,e,n,g,h,r,v,y]);return{form:b,register:w,handleSubmit:E,errors:T,isDirty:_,reset:R,formError:l,isSubmitting:d,setFormError:c,getValues:b.getValues,onSubmit:D}}function coe(){return o.jsx(lr,{variant:"common",type:"single",collapsible:!0,children:o.jsxs(Un,{value:"service-account-details",children:[o.jsx(Fn,{children:"How do I get a correct document link?"}),o.jsxs(zn,{children:[o.jsx("p",{className:"mb-2",children:"To get the correct Google Sheets document URL with a Sheet ID (GID), follow these steps:"}),o.jsxs("ol",{className:"list-inside list-decimal space-y-2 text-sm",children:[o.jsxs("li",{children:["Open your Google Sheets document and select the specific ",o.jsx("strong",{children:"sheet tab"})," ","where the data should be inserted."]}),o.jsxs("li",{children:["Share the document with the service account email and grant it ",o.jsx("strong",{children:"Editor"})," ","access."]}),o.jsxs("li",{children:["While the correct sheet is selected, copy the URL from your browser's address bar — it should include the ",o.jsx("code",{className:"text-sm font-semibold",children:"gid"})," of that sheet."]}),o.jsx("li",{children:"Paste this URL into the field above."})]})]})]})})}function s0(e){return"serviceAccount"in e}function uoe({value:e,children:t}){const[n,r]=p.useState(!1),s=async()=>{e&&(await navigator.clipboard.writeText(e),r(!0),setTimeout(()=>r(!1),2e3))};return o.jsx(fs,{children:o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsxs("div",{role:"button",tabIndex:0,onClick:s,onKeyDown:l=>l.key==="Enter"&&s(),className:ne("flex cursor-pointer items-center justify-between gap-2 select-none","text-muted-foreground border-input rounded-md border px-3 py-1.5 text-sm","hover:bg-accent hover:text-accent-foreground transition-colors"),children:[o.jsx("span",{className:"truncate",children:t||e||"No data"}),n?o.jsx(fr,{className:"h-4 w-4 text-green-500"}):o.jsx(sf,{className:"h-4 w-4"})]})}),o.jsx(Et,{children:o.jsx("p",{children:n?"Copied!":"Click to copy"})})]})})}const doe=p.forwardRef(({initialReport:e,mode:t=Ln.EDIT,onDirtyChange:n,onFormErrorChange:r,onSubmit:s,onCancel:l,preSelectedDestination:c},d)=>{const f="google-sheets-edit-form",h="google-sheets-title-input",g="google-sheets-document-url-input",y="google-sheets-data-destination-select",{dataMart:v}=Wa(),{scope:b}=Po(),{dataDestinations:w,fetchDataDestinations:E,loading:S}=wg(),[R,T]=p.useState([]);p.useEffect(()=>{v&&E()},[v,E]),p.useEffect(()=>{if(w.length>0){const Y=w.filter(Z=>Z.type===Dt.GOOGLE_SHEETS);T(Y)}},[w]),ooe({elementId:h,isOpen:!0,delay:150});const{isDirty:_,reset:D,form:A,isSubmitting:O,formError:j,onSubmit:M}=loe({initialReport:e,mode:t,dataMartId:(v==null?void 0:v.id)??"",onSuccess:()=>{s==null||s()},preSelectedDestination:c});p.useEffect(()=>{r&&r(j)},[j,r]),p.useEffect(()=>{if(t===Ln.EDIT&&e&&_g(e.destinationConfig))D({title:e.title,documentUrl:C1(e.destinationConfig.spreadsheetId,e.destinationConfig.sheetId),dataDestinationId:e.dataDestination.id});else if(t===Ln.CREATE){const Y=(c==null?void 0:c.id)??"";D({title:"",documentUrl:"",dataDestinationId:Y})}},[e,t,D,c]),p.useEffect(()=>{n==null||n(_)},[_,n]);const F=A.watch("documentUrl"),G=F&&z4(F.trim());return o.jsx(Wl,{...A,children:o.jsxs(qi,{id:f,ref:d,noValidate:!0,onSubmit:Y=>void A.handleSubmit(M)(Y),children:[o.jsxs(Ql,{children:[o.jsxs(Hs,{title:"General",children:[o.jsx(en,{control:A.control,name:"title",render:({field:Y})=>o.jsxs(Vt,{children:[o.jsx($t,{tooltip:"Add a title that reflects the report`s purpose",children:"Title"}),o.jsx(Ht,{children:o.jsx(zt,{id:h,placeholder:"Enter a report title",...Y})}),o.jsx(on,{})]})}),o.jsx(en,{control:A.control,name:"dataDestinationId",render:({field:Y})=>o.jsxs(Vt,{children:[o.jsx($t,{tooltip:"Select one of your existing destinations",children:"Destination"}),o.jsxs(Ea,{onValueChange:Y.onChange,value:Y.value,disabled:S||R.length===0,children:[o.jsx(Ht,{children:o.jsx(Ra,{id:y,className:"w-full max-w-full overflow-hidden",children:o.jsx(wa,{className:"truncate",placeholder:"Select a destination",children:Y.value&&R.length>0&&(()=>{const Z=R.find(ee=>ee.id===Y.value);if(Z){const $=Ll.getInfo(Z.type).icon;return o.jsxs("div",{className:"flex w-full min-w-0 items-center gap-2",children:[o.jsx($,{className:"flex-shrink-0",size:18}),o.jsx("div",{className:"flex min-w-0 flex-col",children:o.jsx("span",{className:"truncate",children:Z.title})})]})}return null})()})})}),o.jsx(Ta,{children:R.map(Z=>{const $=Ll.getInfo(Z.type).icon;return o.jsx(Yn,{value:Z.id,children:o.jsxs("div",{className:"flex w-full min-w-0 items-center gap-2",children:[o.jsx($,{className:"flex-shrink-0",size:18}),o.jsxs("div",{className:"flex min-w-0 flex-col",children:[o.jsx("span",{className:"truncate",children:Z.title}),o.jsx("span",{className:"text-muted-foreground truncate text-xs",children:(s0(Z.credentials)&&Ix(Z.credentials.serviceAccount))??"No email found"})]})]})},Z.id)})})]}),R.length===0&&!S&&o.jsxs(SS,{className:"mt-2",children:[o.jsx(wf,{className:"h-4 w-4"}),o.jsx(UO,{children:"No destinations available"}),o.jsxs(CS,{children:["You need to create a Destination before you can create a report."," ",o.jsx(Za,{to:b("/data-destinations"),className:"font-medium text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300",children:"Go to Destinations"})]})]}),Y.value&&R.length>0&&(()=>{const Z=R.find(ee=>ee.id===Y.value);return Z?o.jsxs("div",{className:"mt-2 flex flex-col gap-1",children:[o.jsx($t,{children:"Service Account Email"}),o.jsx(uoe,{value:s0(Z.credentials)?Ix(Z.credentials.serviceAccount)??"No email found":"",children:s0(Z.credentials)?Ix(Z.credentials.serviceAccount):"No email found"})]}):null})(),o.jsx(on,{})]})}),o.jsx(en,{control:A.control,name:"documentUrl",render:({field:Y})=>o.jsxs(Vt,{children:[o.jsx($t,{tooltip:"The link must include the Sheet ID to insert data into the correct tab",children:"Document Link with Sheet ID (GID)"}),o.jsx(Ht,{children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(zt,{id:g,placeholder:"Document URL",className:"flex-1",...Y}),o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx("button",{type:"button",className:`flex-shrink-0 rounded-md p-2 transition-all duration-200 ${G?"text-blue-600 hover:bg-blue-50 hover:text-blue-700 dark:text-blue-400 dark:hover:bg-blue-950/20 dark:hover:text-blue-300":"text-muted-foreground/30 cursor-not-allowed"}`,onClick:()=>{G&&window.open(F.trim(),"_blank","noopener,noreferrer")},disabled:!G,"aria-label":G?"Open document in new tab":"Document link is not valid",children:o.jsx(_l,{className:"h-4 w-4","aria-hidden":"true"})})}),o.jsx(Et,{side:"top",align:"center",role:"tooltip",children:G?"Open document in new tab":"Enter a valid URL to enable link"})]})]})}),o.jsx(Pn,{children:o.jsx(coe,{})}),o.jsx(on,{})]})})]}),o.jsx(Hs,{title:"Automate Report Runs",children:o.jsx(JO,{})})]}),o.jsxs(Xl,{children:[o.jsx(Se,{variant:"default",type:"submit",className:"w-full","aria-label":t===Ln.CREATE?"Create new report":"Save changes to report",disabled:!_||O,children:O?t===Ln.CREATE?"Creating...":"Saving...":t===Ln.CREATE?"Create new report":"Save changes to report"}),l&&o.jsx(Se,{variant:"outline",type:"button",onClick:l,className:"w-full","aria-label":"Cancel",children:"Cancel"})]})]})})});function foe({isOpen:e,onClose:t,initialReport:n,mode:r,preSelectedDestination:s}){const[l,c]=p.useState(!1),[d,f]=p.useState(!1),h=p.useCallback(()=>{d?c(!0):t()},[d,t]),g=p.useCallback(()=>{c(!1),f(!1),t()},[t]),y=p.useCallback(b=>{f(b)},[]),v=p.useCallback(()=>{f(!1),t()},[t]);return o.jsxs(o.Fragment,{children:[o.jsx(Li,{open:e,onOpenChange:b=>{b||h()},children:o.jsxs(Pi,{children:[o.jsxs(Ui,{children:[o.jsx(Fi,{children:r===Ln.CREATE?"Create new report":"Edit report"}),o.jsx(Gl,{children:r===Ln.CREATE?"Fill in the details to create a new Google Sheets report":"Update details of an existing Google Sheets report"})]}),o.jsx(Eg,{children:o.jsx(doe,{initialReport:n,mode:r,onDirtyChange:y,onSubmit:v,onCancel:h,preSelectedDestination:s})})]})}),o.jsx(Hr,{open:l,onOpenChange:c,title:"Unsaved Changes",description:"You have unsaved changes. Exit without saving?",confirmLabel:"Yes, leave now",cancelLabel:"No, stay here",onConfirm:g,variant:"destructive"})]})}const hoe=an({cacheLifetime:xG().min(300,"Cache time must be at least 5 minutes (300 seconds)")});function moe({initialReport:e,dataMartId:t,onSuccess:n,preSelectedDestination:r}){const[s,l]=p.useState(null),{createReport:c,updateReport:d}=Kl(),f=Gi({resolver:Jl(hoe),defaultValues:{cacheLifetime:e!=null&&e.destinationConfig&&X4(e.destinationConfig)?e.destinationConfig.cacheLifetime:300},mode:"onTouched"});return{form:f,onSubmit:async g=>{try{l(null);const{cacheLifetime:y}=g,v={type:xa.LOOKER_STUDIO_CONFIG,cacheLifetime:y};e?await d(e.id,{title:"Looker Studio Report",dataDestinationId:e.dataDestination.id,destinationConfig:v}):await c({title:"Looker Studio Report",dataMartId:t,dataDestinationId:(r==null?void 0:r.id)??"",destinationConfig:v}),n==null||n()}catch(y){console.error("Error submitting form:",y),l("Failed to save report. Please try again.")}},formError:s,isSubmitting:f.formState.isSubmitting,isDirty:f.formState.isDirty,reset:f.reset}}function poe(){return o.jsx(lr,{variant:"common",type:"single",collapsible:!0,children:o.jsxs(Un,{value:"cache-lifetime-details",children:[o.jsx(Fn,{children:"What is the Cache Lifetime for Looker Studio?"}),o.jsx(zn,{children:o.jsx("p",{className:"mb-2",children:"Cache Lifetime - defines the period during which results from previous query executions are served from storage-side cache, eliminating the need to re-execute the query"})})]})})}const goe=[{value:300,label:"5 minutes"},{value:600,label:"10 minutes"},{value:900,label:"15 minutes"},{value:1800,label:"30 minutes"},{value:3600,label:"1 hour"},{value:7200,label:"2 hours"},{value:14400,label:"4 hours"},{value:28800,label:"8 hours"},{value:43200,label:"12 hours"}],yoe=p.forwardRef(({initialReport:e,mode:t=Ln.EDIT,onDirtyChange:n,onFormErrorChange:r,onSubmit:s,onCancel:l,preSelectedDestination:c},d)=>{const f="looker-studio-edit-form",{dataMart:h}=Wa(),{isDirty:g,reset:y,form:v,isSubmitting:b,formError:w,onSubmit:E}=moe({initialReport:e,dataMartId:(h==null?void 0:h.id)??"",onSuccess:()=>{s==null||s()},preSelectedDestination:c});return p.useEffect(()=>{r&&r(w)},[w,r]),p.useEffect(()=>{t===Ln.EDIT&&e&&X4(e.destinationConfig)?y({cacheLifetime:e.destinationConfig.cacheLifetime}):t===Ln.CREATE&&y({cacheLifetime:300})},[e,t,y]),p.useEffect(()=>{n==null||n(g)},[g,n]),o.jsx(Wl,{...v,children:o.jsxs(qi,{id:f,ref:d,noValidate:!0,onSubmit:S=>void v.handleSubmit(E)(S),children:[o.jsx(Ql,{children:o.jsx(Hs,{title:"Cache Configuration",children:o.jsx(en,{control:v.control,name:"cacheLifetime",render:({field:S})=>o.jsxs(Vt,{children:[o.jsx($t,{tooltip:"Period during which query results are served from storage-side cache, avoiding re-execution",children:"Cache Lifetime"}),o.jsxs(Ea,{onValueChange:R=>{S.onChange(parseInt(R,10))},value:S.value.toString(),defaultValue:"300",children:[o.jsx(Ht,{children:o.jsx(Ra,{className:"w-full",children:o.jsx(wa,{placeholder:"Select cache time"})})}),o.jsx(Ta,{children:goe.map(R=>o.jsx(Yn,{value:R.value.toString(),children:R.label},R.value))})]}),o.jsx(on,{}),o.jsx(Pn,{children:o.jsx(poe,{})})]})})})}),o.jsxs(Xl,{children:[o.jsx(Se,{variant:"default",type:"submit",className:"w-full","aria-label":t===Ln.CREATE?"Create":"Save changes",disabled:!g||b,children:b?t===Ln.CREATE?"Creating...":"Saving...":t===Ln.CREATE?"Create":"Save changes"}),l&&o.jsx(Se,{variant:"outline",type:"button",onClick:l,className:"w-full","aria-label":"Cancel",children:"Cancel"})]})]})})});function voe({isOpen:e,onClose:t,initialReport:n,mode:r,preSelectedDestination:s}){const[l,c]=p.useState(!1),[d,f]=p.useState(!1),h=p.useCallback(()=>{d?c(!0):t()},[d,t]),g=p.useCallback(()=>{c(!1),f(!1),t()},[t]),y=p.useCallback(b=>{f(b)},[]),v=p.useCallback(()=>{f(!1),t()},[t]);return o.jsxs(o.Fragment,{children:[o.jsx(Li,{open:e,onOpenChange:b=>{b||h()},children:o.jsxs(Pi,{children:[o.jsxs(Ui,{children:[o.jsx(Fi,{children:(s==null?void 0:s.title)??"Looker Studio"}),o.jsx(Gl,{children:r===Ln.CREATE?"Set up Data Mart as a data source":"Update connection details"})]}),o.jsx(Eg,{children:o.jsx(yoe,{initialReport:n,mode:r,onDirtyChange:y,onSubmit:v,onCancel:h,preSelectedDestination:s})})]})}),o.jsx(Hr,{open:l,onOpenChange:c,title:"Unsaved Changes",description:"You have unsaved changes. Exit without saving?",confirmLabel:"Yes, leave now",cancelLabel:"No, stay here",onConfirm:g,variant:"destructive"})]})}function xoe({destination:e,isOpen:t,onClose:n,mode:r,initialReport:s}){switch(e.type){case Dt.GOOGLE_SHEETS:return o.jsx(foe,{isOpen:t,onClose:n,mode:r,preSelectedDestination:e,initialReport:s??void 0});case Dt.LOOKER_STUDIO:return o.jsx(voe,{isOpen:t,onClose:n,mode:r,preSelectedDestination:e,initialReport:s??void 0});default:return null}}function boe({destination:e,onEditReport:t,autoRefreshEnabled:n}){switch(e.type){case Dt.GOOGLE_SHEETS:return o.jsx(Zse,{destination:e,onEditReport:t,autoRefreshEnabled:n});case Dt.LOOKER_STUDIO:return o.jsx(toe,{destination:e,onEditReport:t});default:return null}}function eM(){return o.jsx("div",{className:"flex flex-col gap-4",children:o.jsx("div",{className:"space-y-2 pb-4",children:Array.from({length:3}).map((e,t)=>o.jsx("div",{className:"border-border rounded-lg border p-4",children:o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(is,{className:"h-4 w-4 rounded-full"}),o.jsx(is,{className:"h-4 w-40"}),o.jsx(is,{className:"h-3 w-32"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(is,{className:"h-6 w-16 rounded-full"}),o.jsx(is,{className:"h-4 w-4"})]})]})},t))})})}function Soe(){const{dataMart:e}=Wa(),{dataDestinations:t,isLoading:n}=lK();return e?o.jsx("div",{className:"flex flex-col gap-4",children:n?o.jsx(eM,{}):t.length===0?o.jsx(noe,{}):t.map(r=>o.jsx(aoe,{destination:r,dataMartStatus:e.status},r.id))}):null}function Coe(){return o.jsx(Eg,{children:o.jsx($4,{children:o.jsx(Soe,{})})})}function Tj(){return o.jsxs(jl,{children:[o.jsx(Ao,{children:o.jsx(No,{icon:b9,tooltip:"Description of the Data Mart",children:"Description"})}),o.jsx(Do,{children:o.jsx(_J,{})}),o.jsx(_i,{})]})}function Eoe(){const{dataMart:e}=Fo(),[t,n]=p.useState(!1),r=p.useCallback(()=>{n(!0)},[]),s=p.useCallback(()=>{n(!1)},[]);return o.jsxs(jl,{children:[o.jsxs(Ao,{children:[o.jsx(No,{icon:Mb,tooltip:"Time triggers allow you to schedule Data Mart runs at specific times",children:"Time triggers"}),o.jsx(nh,{children:o.jsxs(Se,{variant:"outline",onClick:r,"aria-label":"Add new trigger",children:[o.jsx(_a,{className:"h-4 w-4","aria-hidden":"true"}),"Add Trigger"]})})]}),o.jsx(Do,{children:o.jsx(yu,{children:o.jsx(yne,{children:e&&o.jsxs(o.Fragment,{children:[o.jsx(are,{dataMartId:e.id}),o.jsx(ES,{isOpen:t,onClose:s,dataMartId:e.id})]})})})}),o.jsx(_i,{})]})}function woe(){const e=a5(),{navigate:t}=Po(),n=r=>{const s=e?`/data-marts/${r.id}/data-setup?preset=${e.key}`:`/data-marts/${r.id}/data-setup`;t(s)};return o.jsx("div",{className:"flex h-full w-full items-center justify-center",children:o.jsx("div",{className:"m-auto w-lg",children:o.jsxs("div",{className:"bg-muted/50 dark:bg-sidebar rounded-xl border-b border-gray-200 p-12 pt-8 dark:border-gray-700/50",children:[o.jsx("h2",{className:"mb-4 text-xl font-medium",children:"Create Data Mart"}),o.jsx(tS,{children:o.jsx(N3,{children:o.jsx(_X,{initialData:{title:(e==null?void 0:e.datamartTitle)??"New Data Mart"},onSuccess:n})})})]})})})}function tM({isOpen:e,onClose:t,id:n}){const{getDataStorageById:r,currentDataStorage:s,loading:l,clearCurrentDataStorage:c}=Lg();p.useEffect(()=>(e&&n&&r(n),()=>{e||c()}),[e,n,r,c]);const d=()=>{c(),t()};return o.jsx(F1,{open:e,onOpenChange:f=>{f||d()},children:o.jsxs(z1,{children:[o.jsxs(V1,{children:[o.jsx($1,{children:"Storage Details"}),o.jsx(H1,{children:"View detailed information about this storage."})]}),o.jsx("div",{className:"py-4",children:o.jsx(vZ,{dataStorage:s,isLoading:l})})]})})}function o0({column:e,children:t}){return o.jsxs(Se,{variant:"ghost",onClick:()=>{e.toggleSorting(e.getIsSorted()==="asc")},className:"group dm-card-table-header-row-btn",children:[t,o.jsxs("span",{className:"flex h-4 w-4 items-center justify-center","aria-hidden":"true",children:[e.getIsSorted()==="asc"&&o.jsx(zs,{"data-testid":"lucide-arrow-up-down",className:"text-foreground h-4 w-4"}),e.getIsSorted()==="desc"&&o.jsx(Qa,{"data-testid":"lucide-arrow-up-down",className:"text-foreground h-4 w-4"}),!e.getIsSorted()&&o.jsx("span",{className:"opacity-0 transition-opacity duration-150 group-hover:opacity-100",children:o.jsx(zs,{"data-testid":"lucide-arrow-up-down",className:"text-muted-foreground h-4 w-4"})})]})]})}const Roe=({id:e,onViewDetails:t,onEdit:n,onDelete:r})=>{const[s,l]=p.useState(!1);return o.jsx("div",{className:"text-right",children:o.jsxs(wr,{open:s,onOpenChange:l,children:[o.jsx(Rr,{asChild:!0,children:o.jsx(Se,{variant:"ghost",className:`dm-card-table-body-row-actionbtn opacity-0 transition-opacity ${s?"opacity-100":"group-hover:opacity-100"}`,"aria-label":"Open menu",children:o.jsx(Xa,{className:"dm-card-table-body-row-actionbtn-icon"})})}),o.jsxs(Tr,{align:"end",children:[o.jsxs(vt,{onClick:()=>t==null?void 0:t(e),children:[o.jsx(u_,{className:"text-foreground h-4 w-4","aria-hidden":"true"}),o.jsx("span",{children:"View details"})]}),o.jsxs(vt,{onClick:()=>void(n==null?void 0:n(e)),children:[o.jsx(Tf,{className:"text-foreground h-4 w-4","aria-hidden":"true"}),o.jsx("span",{children:"Edit"})]}),o.jsx(Ka,{}),o.jsxs(vt,{onClick:()=>r==null?void 0:r(e),children:[o.jsx(Lo,{className:"h-4 w-4 text-red-600","aria-hidden":"true"}),o.jsx("span",{className:"text-red-600",children:"Delete"})]})]})]})})};function Toe({table:e}){return o.jsx("div",{className:"px-4 text-right",children:o.jsxs(wr,{children:[o.jsx(Rr,{asChild:!0,children:o.jsx(Se,{variant:"ghost",className:"dm-card-table-body-row-actionbtn","aria-label":"Toggle columns",children:o.jsx(Xa,{className:"dm-card-table-body-row-actionbtn-icon"})})}),o.jsx(Tr,{align:"end",children:e.getAllColumns().filter(t=>t.getCanHide()&&t.id!=="actions").map(t=>o.jsx(vt,{className:"capitalize",children:o.jsxs("label",{className:"flex items-center space-x-2",children:[o.jsx("button",{type:"button",role:"checkbox","aria-checked":t.getIsVisible(),"data-state":t.getIsVisible()?"checked":"unchecked","aria-label":`Toggle column ${t.id}`,className:"peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border bg-white shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white/8",onClick:()=>{t.toggleVisibility(!t.getIsVisible())},children:t.getIsVisible()&&o.jsx("span",{"data-state":"checked","data-slot":"checkbox-indicator",className:"pointer-events-none flex items-center justify-center text-current transition-none",children:o.jsx(fr,{className:"size-3.5 text-white"})})}),o.jsx("span",{children:t.id})]})},t.id))})]})})}const joe=({onViewDetails:e,onEdit:t,onDelete:n}={})=>[{accessorKey:"title",size:50,header:({column:r})=>o.jsx(o0,{column:r,children:"Title"}),cell:({row:r})=>{const s=r.getValue("title");return o.jsx("div",{children:s})}},{accessorKey:"type",size:30,header:({column:r})=>o.jsx(o0,{column:r,children:"Type"}),cell:({row:r})=>{const s=r.getValue("type"),{displayName:l,icon:c}=Bi.getInfo(s);return o.jsxs("div",{className:"text-muted-foreground flex items-center gap-2",children:[o.jsx(c,{size:18}),l]})}},{accessorKey:"createdAt",size:20,sortDescFirst:!0,header:({column:r})=>o.jsx(o0,{column:r,children:"Created at"}),cell:({row:r})=>{const s=r.getValue("createdAt"),l=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"short",day:"numeric"}).format(s);return o.jsx("div",{className:"text-muted-foreground",children:l})}},{id:"actions",size:80,header:({table:r})=>o.jsx(Toe,{table:r}),cell:({row:r})=>o.jsx(Roe,{id:r.original.id,onViewDetails:e,onEdit:t,onDelete:n})}];function _oe({onOpenTypeDialog:e}){return o.jsxs("div",{className:"dm-empty-state",children:[o.jsx(H9,{className:"dm-empty-state-ico",strokeWidth:1}),o.jsx("h2",{className:"dm-empty-state-title",children:"Create your first Storage"}),o.jsx("p",{className:"dm-empty-state-subtitle",children:"A Storage combines your data warehouse and access credentials — both required to start building Data Marts."}),o.jsxs(Se,{variant:"outline",onClick:e,children:[o.jsx(_a,{className:"h-4 w-4"}),"New Storage"]})]})}function Noe({columns:e,data:t,onEdit:n,onOpenTypeDialog:r}){var R;const{sorting:s,setSorting:l,columnVisibility:c,setColumnVisibility:d}=Zf({columns:e,storageKeyPrefix:"data-storage-list"}),[f,h]=p.useState([]),[g,y]=p.useState({}),[v,b]=p.useState(!1),[w]=p.useState(null),E=Au({data:t,columns:[...e],getCoreRowModel:Nu(),getPaginationRowModel:Ag(),onSortingChange:l,getSortedRowModel:qf(),onColumnFiltersChange:h,getFilteredRowModel:Gf(),onColumnVisibilityChange:d,onRowSelectionChange:y,state:{sorting:s,columnFilters:f,columnVisibility:c,rowSelection:g},enableRowSelection:!0}),S=(T,_)=>{_.target instanceof HTMLElement&&(_.target.closest('[role="checkbox"]')||_.target.closest(".actions-cell")||_.target.closest('[role="menuitem"]'))||n==null||n(T)};return t.length?o.jsxs("div",{children:[w&&o.jsx(tM,{isOpen:v,onClose:()=>{b(!1)},id:w.id}),o.jsxs("div",{className:"dm-card",children:[o.jsxs("div",{className:"dm-card-toolbar",children:[o.jsx("div",{className:"dm-card-toolbar-left",children:o.jsxs("div",{className:"dm-card-toolbar-search",children:[o.jsx($l,{className:"dm-card-toolbar-search-icon"}),o.jsx(zt,{placeholder:"Search by title",value:(R=E.getColumn("title"))==null?void 0:R.getFilterValue(),onChange:T=>{var _;return(_=E.getColumn("title"))==null?void 0:_.setFilterValue(T.target.value)},className:"dm-card-toolbar-search-input"})]})}),o.jsx("div",{className:"dm-card-toolbar-right",children:o.jsxs(Se,{variant:"outline",className:"dm-card-toolbar-btn-primary",onClick:()=>{r==null||r()},children:[o.jsx(_a,{className:"h-4 w-4"}),"New Storage"]})})]}),o.jsx("div",{className:"dm-card-table-wrap",children:o.jsxs(Du,{className:"dm-card-table",role:"table","aria-label":"Storages table",children:[o.jsx(Ou,{className:"dm-card-table-header",children:E.getHeaderGroups().map(T=>o.jsx(sr,{className:"dm-card-table-header-row",children:T.headers.map(_=>o.jsx(Iu,{className:"[&:has([role=checkbox])]:pl-6 [&>[role=checkbox]]:translate-y-[2px]",style:_.column.id==="actions"?{width:80,minWidth:80,maxWidth:80}:{width:`${String(_.getSize())}%`},children:_.isPlaceholder?null:gu(_.column.columnDef.header,_.getContext())},_.id))},T.id))}),o.jsx(Mu,{className:"dm-card-table-body",children:E.getRowModel().rows.length?E.getRowModel().rows.map(T=>o.jsx(sr,{"data-state":T.getIsSelected()&&"selected",className:"dm-card-table-body-row group",onClick:_=>{const D=T.original.id;S(D,_)},children:T.getVisibleCells().map(_=>o.jsx(Sa,{className:`[&:has([role=checkbox])]pr-0 px-6 whitespace-normal [&>[role=checkbox]]:translate-y-[2px] ${_.column.id==="actions"?"actions-cell":""} ${_.column.id==="createdAt"?"whitespace-nowrap":""}`,style:_.column.id==="actions"?{width:80,minWidth:80,maxWidth:80}:{width:`${String(_.column.getSize())}%`},children:gu(_.column.columnDef.cell,_.getContext())},_.id))},T.id)):o.jsx(sr,{children:o.jsx(Sa,{colSpan:e.length+1,className:"dm-card-table-body-row-empty",children:"No results"})})})]})}),o.jsxs("div",{className:"dm-card-pagination",children:[o.jsx(Se,{variant:"outline",size:"sm",onClick:()=>{E.previousPage()},disabled:!E.getCanPreviousPage(),children:"Previous"}),o.jsx(Se,{variant:"outline",size:"sm",onClick:()=>{E.nextPage()},disabled:!E.getCanNextPage(),children:"Next"})]})]})]}):o.jsx("div",{className:"dm-card",children:o.jsx(_oe,{onOpenTypeDialog:r})})}const Aoe=({initialTypeDialogOpen:e=!1,onTypeDialogClose:t})=>{const[n,r]=p.useState(e),{dataStorages:s,currentDataStorage:l,clearCurrentDataStorage:c,fetchDataStorages:d,getDataStorageById:f,deleteDataStorage:h,createDataStorage:g}=Lg();p.useEffect(()=>{d()},[d]),p.useEffect(()=>{r(e)},[e]);const y=()=>{r(!1),t==null||t()},[v,b]=p.useState(!1),[w,E]=p.useState(!1),[S,R]=p.useState(null),[T,_]=p.useState(!1),[D,A]=p.useState(null),O=async k=>{try{const H=await g(k);y(),H!=null&&H.id&&(await f(H.id),b(!0))}catch(H){console.error("Failed to create storage:",H)}},j=k=>{A(k),_(!0)},M=()=>{_(!1),A(null)},F=async k=>{await f(k),b(!0)},G=k=>{R(k),E(!0)},Y=async()=>{if(S)try{await h(S),await d()}catch(k){console.error("Failed to delete storage:",k)}finally{E(!1),R(null)}},Z=async()=>{try{b(!1),await d()}catch(k){console.error("Failed to save storage:",k)}},ee=()=>{b(!1),c()},$=s.map(k=>({id:k.id,title:k.title,type:k.type,createdAt:k.createdAt,modifiedAt:k.modifiedAt})),W=joe({onViewDetails:j,onEdit:F,onDelete:G});return o.jsxs("div",{children:[o.jsx(Noe,{columns:W,data:$,onEdit:F,onOpenTypeDialog:()=>{r(!0)}}),o.jsx(tM,{isOpen:T,onClose:M,id:D??""}),o.jsx(TD,{isOpen:n,onClose:y,onSelect:O}),o.jsx(PO,{isOpen:v,onClose:ee,dataStorage:l,onSaveSuccess:()=>void Z()}),o.jsx(Hr,{open:w,onOpenChange:E,title:"Delete Storage",description:"Are you sure you want to delete this storage? This action cannot be undone.",confirmLabel:"Delete",cancelLabel:"Cancel",onConfirm:()=>{Y()},onCancel:()=>{R(null)},variant:"destructive"})]})},Doe=()=>{const[e,t]=p.useState(!1);return o.jsxs("div",{className:"dm-page",children:[o.jsx("header",{className:"dm-page-header",children:o.jsx("h1",{className:"dm-page-header-title",children:"Storages"})}),o.jsx("div",{className:"dm-page-content",children:o.jsx(tS,{children:o.jsx(Aoe,{initialTypeDialogOpen:e,onTypeDialogClose:()=>{t(!1)}})})})]})};function Ooe({onOpenTypeDialog:e}){return o.jsxs("div",{className:"dm-empty-state",children:[o.jsx(_b,{className:"dm-empty-state-ico",strokeWidth:1}),o.jsx("h2",{className:"dm-empty-state-title",children:"Create your first Destination"}),o.jsx("p",{className:"dm-empty-state-subtitle",children:"A Destination combines your reporting tool and access credentials — both needed to deliver data from Data Marts to your reports and dashboards."}),o.jsxs(Se,{variant:"outline",onClick:e,children:[o.jsx(_a,{className:"h-4 w-4"}),"New Destination"]})]})}function Moe({columns:e,data:t,onEdit:n,onOpenTypeDialog:r}){var w;const{sorting:s,setSorting:l,columnVisibility:c,setColumnVisibility:d}=Zf({columns:e,storageKeyPrefix:"data-destination-list"}),[f,h]=p.useState([]),[g,y]=p.useState({}),v=Au({data:t,columns:[...e],getCoreRowModel:Nu(),getPaginationRowModel:Ag(),onSortingChange:l,getSortedRowModel:qf(),onColumnFiltersChange:h,getFilteredRowModel:Gf(),onColumnVisibilityChange:d,onRowSelectionChange:y,state:{sorting:s,columnFilters:f,columnVisibility:c,rowSelection:g},enableRowSelection:!0}),b=(E,S)=>{S.target instanceof HTMLElement&&(S.target.closest('[role="checkbox"]')||S.target.closest(".actions-cell")||S.target.closest('[role="menuitem"]'))||n==null||n(E)};return t.length?o.jsx("div",{children:o.jsxs("div",{className:"dm-card",children:[o.jsxs("div",{className:"dm-card-toolbar",children:[o.jsx("div",{className:"dm-card-toolbar-left",children:o.jsxs("div",{className:"dm-card-toolbar-search",children:[o.jsx($l,{className:"dm-card-toolbar-search-icon"}),o.jsx(zt,{placeholder:"Search by title",value:(w=v.getColumn("title"))==null?void 0:w.getFilterValue(),onChange:E=>{var S;return(S=v.getColumn("title"))==null?void 0:S.setFilterValue(E.target.value)},className:"dm-card-toolbar-search-input"})]})}),o.jsx("div",{className:"dm-card-toolbar-right",children:o.jsxs(Se,{variant:"outline",className:"dm-card-toolbar-btn-primary",onClick:()=>{r==null||r()},children:[o.jsx(_a,{className:"h-4 w-4"}),"New Destination"]})})]}),o.jsx("div",{className:"dm-card-table-wrap",children:o.jsxs(Du,{className:"dm-card-table",role:"table","aria-label":"Destinations table",children:[o.jsx(Ou,{className:"dm-card-table-header",children:v.getHeaderGroups().map(E=>o.jsx(sr,{className:"dm-card-table-header-row",children:E.headers.map(S=>o.jsx(Iu,{className:"[&:has([role=checkbox])]:pl-6 [&>[role=checkbox]]:translate-y-[2px]",style:S.column.id==="actions"?{width:80,minWidth:80,maxWidth:80}:{width:`${String(S.getSize())}%`},children:S.isPlaceholder?null:gu(S.column.columnDef.header,S.getContext())},S.id))},E.id))}),o.jsx(Mu,{className:"dm-card-table-body",children:v.getRowModel().rows.length?v.getRowModel().rows.map(E=>o.jsx(sr,{"data-state":E.getIsSelected()&&"selected",className:"dm-card-table-body-row group",onClick:S=>{const R=E.original.id;b(R,S)},children:E.getVisibleCells().map(S=>o.jsx(Sa,{className:`[&:has([role=checkbox])]pr-0 px-6 whitespace-normal [&>[role=checkbox]]:translate-y-[2px] ${S.column.id==="actions"?"actions-cell":""} ${S.column.id==="createdAt"?"whitespace-nowrap":""}`,style:S.column.id==="actions"?{width:80,minWidth:80,maxWidth:80}:{width:`${String(S.column.getSize())}%`},children:gu(S.column.columnDef.cell,S.getContext())},S.id))},E.id)):o.jsx(sr,{children:o.jsx(Sa,{colSpan:e.length+1,className:"dm-card-table-body-row-empty",children:"No results"})})})]})}),o.jsxs("div",{className:"dm-card-pagination",children:[o.jsx(Se,{variant:"outline",size:"sm",onClick:()=>{v.previousPage()},disabled:!v.getCanPreviousPage(),children:"Previous"}),o.jsx(Se,{variant:"outline",size:"sm",onClick:()=>{v.nextPage()},disabled:!v.getCanNextPage(),children:"Next"})]})]})}):o.jsx("div",{className:"dm-card",children:o.jsx(Ooe,{onOpenTypeDialog:r})})}function i0({column:e,children:t}){return o.jsxs(Se,{variant:"ghost",onClick:()=>{e.toggleSorting(e.getIsSorted()==="asc")},className:"group dm-card-table-header-row-btn",children:[t,o.jsxs("span",{className:"flex h-4 w-4 items-center justify-center","aria-hidden":"true",children:[e.getIsSorted()==="asc"&&o.jsx(zs,{"data-testid":"lucide-arrow-up-down",className:"text-foreground h-4 w-4"}),e.getIsSorted()==="desc"&&o.jsx(Qa,{"data-testid":"lucide-arrow-up-down",className:"text-foreground h-4 w-4"}),!e.getIsSorted()&&o.jsx("span",{className:"opacity-0 transition-opacity duration-150 group-hover:opacity-100",children:o.jsx(zs,{"data-testid":"lucide-arrow-up-down",className:"text-muted-foreground h-4 w-4"})})]})]})}function IS(e){return"destinationSecretKey"in e}const Ioe=({id:e,type:t,credentials:n,onEdit:r,onDelete:s,onRotateSecretKey:l})=>{const[c,d]=p.useState(!1),f=()=>{if(n&&IS(n)){const y=E1(n);navigator.clipboard.writeText(y),At.success("JSON Config copied to clipboard")}},h=t===Dt.LOOKER_STUDIO,g=n&&"destinationSecretKey"in n&&n.destinationSecretKey;return o.jsx(o.Fragment,{children:o.jsx("div",{className:"text-right",children:o.jsxs(wr,{open:c,onOpenChange:d,children:[o.jsx(Rr,{asChild:!0,children:o.jsx(Se,{variant:"ghost",className:`dm-card-table-body-row-actionbtn opacity-0 transition-opacity ${c?"opacity-100":"group-hover:opacity-100"}`,"aria-label":"Open menu",children:o.jsx(Xa,{className:"dm-card-table-body-row-actionbtn-icon"})})}),o.jsxs(Tr,{align:"end",children:[o.jsxs(vt,{onClick:()=>void(r==null?void 0:r(e)),children:[o.jsx(Tf,{className:"text-foreground h-4 w-4","aria-hidden":"true"}),o.jsx("span",{children:"Edit"})]}),h&&g&&o.jsxs(o.Fragment,{children:[o.jsx(Ka,{}),o.jsxs(vt,{onClick:f,children:[o.jsx(sf,{className:"text-foreground h-4 w-4","aria-hidden":"true"}),o.jsx("span",{children:"Copy JSON Config"})]}),o.jsxs(vt,{onClick:()=>{l==null||l(e)},children:[o.jsx(m0,{className:"text-foreground h-4 w-4","aria-hidden":"true"}),o.jsx("span",{children:"Rotate Secret Key"})]})]}),o.jsx(Ka,{}),o.jsxs(vt,{onClick:()=>s==null?void 0:s(e),children:[o.jsx(Lo,{className:"h-4 w-4 text-red-600","aria-hidden":"true"}),o.jsx("span",{className:"text-red-600",children:"Delete"})]})]})]})})})};function koe({table:e}){return o.jsx("div",{className:"px-4 text-right",children:o.jsxs(wr,{children:[o.jsx(Rr,{asChild:!0,children:o.jsx(Se,{variant:"ghost",className:"dm-card-table-body-row-actionbtn","aria-label":"Toggle columns",children:o.jsx(Xa,{className:"dm-card-table-body-row-actionbtn-icon"})})}),o.jsx(Tr,{align:"end",children:e.getAllColumns().filter(t=>t.getCanHide()&&t.id!=="actions").map(t=>o.jsx(vt,{className:"capitalize",children:o.jsxs("label",{className:"flex items-center space-x-2",children:[o.jsx("button",{type:"button",role:"checkbox","aria-checked":t.getIsVisible(),"data-state":t.getIsVisible()?"checked":"unchecked","aria-label":`Toggle column ${t.id}`,className:"peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border bg-white shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white/8",onClick:()=>{t.toggleVisibility(!t.getIsVisible())},children:t.getIsVisible()&&o.jsx("span",{"data-state":"checked","data-slot":"checkbox-indicator",className:"pointer-events-none flex items-center justify-center text-current transition-none",children:o.jsx(fr,{className:"size-3.5 text-white"})})}),o.jsx("span",{children:t.id})]})},t.id))})]})})}const Loe=({onEdit:e,onDelete:t,onRotateSecretKey:n}={})=>[{accessorKey:"title",size:50,header:({column:r})=>o.jsx(i0,{column:r,children:"Title"}),cell:({row:r})=>{const s=r.getValue("title");return o.jsx("div",{className:"overflow-hidden text-ellipsis",children:s})}},{accessorKey:"type",size:30,header:({column:r})=>o.jsx(i0,{column:r,children:"Type"}),cell:({row:r})=>{const s=r.getValue("type"),{displayName:l,icon:c}=Ll.getInfo(s);return o.jsxs("div",{className:"text-muted-foreground flex items-center gap-2",children:[o.jsx(c,{size:18}),l]})}},{accessorKey:"createdAt",size:20,sortDescFirst:!0,header:({column:r})=>o.jsx(i0,{column:r,children:"Created at"}),cell:({row:r})=>{const s=r.getValue("createdAt"),l=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"short",day:"numeric"}).format(s);return o.jsx("div",{className:"text-muted-foreground",children:l})}},{id:"actions",size:80,header:({table:r})=>o.jsx(koe,{table:r}),cell:({row:r})=>o.jsx(Ioe,{id:r.original.id,type:r.original.type,credentials:r.original.credentials,onEdit:e,onDelete:t,onRotateSecretKey:n})}];function Poe(){return o.jsx(lr,{variant:"common",type:"single",collapsible:!0,children:o.jsxs(Un,{value:"service-account-details",children:[o.jsx(Fn,{children:"How do I get a Service Account JSON key?"}),o.jsxs(zn,{children:[o.jsx("p",{className:"mb-2",children:"To get the JSON key, you'll need to create or use an existing service account in Google Cloud."}),o.jsx("p",{className:"mb-2",children:"Here's what to do:"}),o.jsxs("ol",{className:"list-inside list-decimal space-y-2 text-sm",children:[o.jsxs("li",{children:["Go to"," ",o.jsx(or,{href:"https://console.cloud.google.com/iam-admin/serviceaccounts",children:"Google Cloud Console"})," ","."]}),o.jsxs("li",{children:["Open ",o.jsx("strong",{children:"IAM & Admin → Service Accounts"}),"."]}),o.jsx("li",{children:"Create a new service account or select an existing one."}),o.jsxs("li",{children:["Open the Service Accounts page, go to the ",o.jsx("strong",{children:"Keys"})," tab, click"," ",o.jsx("strong",{children:"Add key"}),", and select ",o.jsx("strong",{children:"Create new key"}),"."]}),o.jsxs("li",{children:["Choose ",o.jsx("strong",{children:"JSON"})," format and click ",o.jsx("strong",{children:"Create"}),"."]}),o.jsx("li",{children:"Open the downloaded file, copy its entire content, and paste it into the field above."})]})]})]})})}function Uoe({form:e}){const[t,n]=p.useState(!1),r=()=>{n(!0),e.setValue("credentials.serviceAccount","",{shouldDirty:!0})},s=()=>{n(!1),e.resetField("credentials.serviceAccount")},l=e.watch("credentials.serviceAccount"),c=l?kO(l):null;return o.jsx(en,{control:e.control,name:"credentials.serviceAccount",render:({field:d})=>o.jsxs(Vt,{children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx($t,{tooltip:"Paste a JSON key from a service account that has access to the selected destination provider",children:"Service Account"}),!t&&l&&o.jsx(Se,{variant:"ghost",size:"sm",onClick:r,type:"button",children:"Edit"}),t&&o.jsx(Se,{variant:"ghost",size:"sm",onClick:s,type:"button",children:"Cancel"})]}),o.jsx(Ht,{children:!t&&c?o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx(or,{href:c.url,children:c.email})}),o.jsx(Et,{children:o.jsx("p",{children:"View in Google Cloud Console"})})]}):o.jsx($i,{...d,className:"min-h-[150px] font-mono",rows:8,placeholder:"Paste your service account JSON here"})}),o.jsx(Pn,{children:o.jsx(Poe,{})}),o.jsx(on,{})]})})}function Foe(){return o.jsx(lr,{variant:"common",type:"single",collapsible:!0,children:o.jsxs(Un,{value:"json-config-details",children:[o.jsx(Fn,{children:"What is the JSON Config for Looker Studio?"}),o.jsxs(zn,{children:[o.jsx("p",{className:"mb-2",children:"The JSON Config contains the necessary credentials and configuration for connecting to Looker Studio."}),o.jsxs("ul",{className:"list-inside space-y-2 text-sm",children:[o.jsx("li",{children:"You need to copy this JSON config to use it in the Looker Studio Connector."}),o.jsx("li",{children:"If you need to rotate a previous secret key, you can use the corresponding function in the menu on the destinations list."})]})]})]})})}function zoe({form:e}){const t=e.getValues("credentials"),n=p.useMemo(()=>t&&IS(t)?t:{deploymentUrl:"",destinationId:"",destinationSecretKey:""},[t]),r=p.useMemo(()=>E1(n),[n]);return o.jsx(o.Fragment,{children:n.destinationSecretKey&&o.jsx(en,{control:e.control,name:"credentials.destinationSecretKey",render:()=>o.jsxs(Vt,{children:[o.jsx($t,{children:"JSON Config"}),o.jsx(Ht,{children:o.jsx(l4,{value:r,displayOnly:!0,keysToMask:["destinationSecretKey"],className:"bg-muted overflow-auto rounded-md text-sm",showCopyButton:!0})}),o.jsx(on,{}),o.jsx(Pn,{children:o.jsx(Foe,{})})]})})})}const Voe=()=>o.jsxs(Un,{value:"sheets-api-details",children:[o.jsx(Fn,{children:"How do I enable the Google Sheets API?"}),o.jsxs(zn,{children:[o.jsxs("p",{className:"mb-2",children:["To send data to Google Sheets, you need to enable the"," ",o.jsx(or,{href:"https://console.cloud.google.com/apis/library/sheets.googleapis.com",children:"Google Sheets API"})," ","in your Google Cloud project."]}),o.jsx("p",{className:"mb-2",children:"Here's how to do it:"}),o.jsxs("ol",{className:"list-inside list-decimal space-y-2 text-sm",children:[o.jsx("li",{children:"Open the link above and make sure the correct project is selected."}),o.jsxs("li",{children:["If the API isn't enabled yet, click ",o.jsx("strong",{children:"Enable"}),"."]}),o.jsx("li",{children:"If it's already enabled, you'll see the API dashboard — that's fine."})]})]})]}),$oe=()=>o.jsxs(Un,{value:"looker-studio-details",children:[o.jsx(Fn,{children:"How do I connect to Looker Studio?"}),o.jsxs(zn,{children:[o.jsxs("p",{className:"mb-2",children:["To send data to Looker Studio, you need to provide a deployment URL that the"," ",o.jsx(or,{className:"p-0",href:"https://datastudio.google.com/datasources/create?connectorId=AKfycbz6kcYn3qGuG0jVNFjcDnkXvVDiz4hewKdAFjOm-_d4VkKVcBidPjqZO991AvGL3FtM4A",children:"Looker Studio connector"})," ","will use to access your data."]}),o.jsx("p",{className:"mb-2",children:"Make sure the deployment URL is accessible from the internet and properly secured."}),o.jsx(or,{className:"p-0",href:"https://docs.owox.com/docs/destinations/supported-destinations/looker-studio/?utm_source=owox_data_marts&utm_medium=destination_enity&utm_campaign=tooltip",children:"Learn more"})]})]}),Hoe=()=>o.jsxs(Un,{value:"odata-details",children:[o.jsx(Fn,{children:"How do I use OData?"}),o.jsxs(zn,{children:[o.jsx("p",{className:"mb-2",children:"OData (Open Data Protocol) is an ISO/IEC approved, OASIS standard that defines a set of best practices for building and consuming RESTful APIs."}),o.jsx("p",{className:"mb-2",children:"This feature is coming soon."})]})]}),Boe={[Dt.GOOGLE_SHEETS]:Voe,[Dt.LOOKER_STUDIO]:$oe,[Dt.ODATA]:Hoe};function Goe({destinationType:e}){const t=Boe[e];return o.jsx(lr,{variant:"common",type:"single",collapsible:!0,children:o.jsx(t,{})})}function qoe({form:e,initialData:t}){return o.jsx(en,{control:e.control,name:"type",render:({field:n})=>o.jsxs(Vt,{children:[o.jsx($t,{tooltip:"Select the destination to send your data",children:"Destination Type"}),o.jsxs(Ea,{onValueChange:n.onChange,defaultValue:n.value,disabled:!!t,children:[o.jsx(Ht,{children:o.jsx(Ra,{className:"w-full",children:o.jsx(wa,{placeholder:"Select a destination type"})})}),o.jsx(Ta,{children:o.jsx(kg,{children:Ll.getAllTypes().map(({type:r,displayName:s,icon:l,status:c})=>{const d=c===nu.COMING_SOON;return o.jsx(Yn,{value:r,disabled:d,children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(l,{size:18}),s,d&&o.jsx(br,{variant:"secondary",children:c})]})},r)})})})]}),o.jsx(Pn,{children:o.jsx(Goe,{destinationType:n.value})}),o.jsx(on,{})]})})}function Zoe({initialData:e,onSubmit:t,onCancel:n,onDirtyChange:r}){const s=Gi({resolver:Jl(tK),defaultValues:e??{title:"New Destination",type:Dt.GOOGLE_SHEETS},mode:"onTouched"}),l=s.watch("type");p.useEffect(()=>{r==null||r(s.formState.isDirty)},[s.formState.isDirty,r]);const c=async d=>{const{dirtyFields:f}=s.formState,h=LO(d);return f.credentials||delete h.credentials,t(h)};return o.jsx(Wl,{...s,children:o.jsxs(qi,{onSubmit:d=>{s.handleSubmit(c)(d)},children:[o.jsxs(Ql,{children:[o.jsx(en,{control:s.control,name:"title",render:({field:d})=>o.jsxs(Vt,{children:[o.jsx($t,{tooltip:"Name the destination to clarify its purpose",children:"Title"}),o.jsx(Ht,{children:o.jsx(zt,{placeholder:"Enter title",...d})}),o.jsx(on,{})]})}),o.jsx(qoe,{form:s,initialData:e}),l===Dt.GOOGLE_SHEETS&&o.jsx(Uoe,{form:s}),l===Dt.LOOKER_STUDIO&&o.jsx(zoe,{form:s})]}),o.jsxs(Xl,{children:[o.jsxs(Se,{variant:"default",type:"submit",className:"w-full","aria-label":"Save",disabled:!s.formState.isDirty||s.formState.isSubmitting,children:[s.formState.isSubmitting&&o.jsx(Rf,{className:"mr-2 h-4 w-4 animate-spin"}),"Save"]}),o.jsx(Se,{variant:"outline",type:"button",onClick:n,className:"w-full","aria-label":"Cancel",children:"Cancel"})]})]})})}function Koe({isOpen:e,onClose:t,dataDestination:n,onSaveSuccess:r}){const{updateDataDestination:s,createDataDestination:l}=wg(),[c,d]=p.useState(!1),[f,h]=p.useState(!1),g=p.useCallback(()=>{f?d(!0):t()},[f,t]),y=p.useCallback(()=>{d(!1),h(!1),t()},[t]),v=p.useCallback(E=>{h(E)},[]),b=async E=>{const S=G4.getMapper(E.type);if(n){const R=S.mapToUpdateRequest(E),T=await s(n.id,R);T&&r(T)}else{const R=S.mapToCreateRequest(E),T=await l(R);T&&r(T)}t()},w=p.useRef(!1);return p.useEffect(()=>{const E=n?"Edit":"Create";e&&!w.current?(Pe({event:"data_destination_config_open",category:"DataDestination",action:E,label:n==null?void 0:n.type}),w.current=!0):!e&&w.current&&(Pe({event:"data_destination_config_close",category:"DataDestination",action:E,label:n==null?void 0:n.type}),w.current=!1)},[e,n]),o.jsxs(o.Fragment,{children:[o.jsx(Li,{open:e,onOpenChange:E=>{E||g()},children:o.jsxs(Pi,{children:[o.jsxs(Ui,{children:[o.jsx(Fi,{children:"Configure destination"}),o.jsx(Gl,{children:"Customize settings for your destination"})]}),o.jsx(Zoe,{initialData:n??void 0,onSubmit:b,onCancel:g,onDirtyChange:v})]})}),o.jsx(Hr,{open:c,onOpenChange:d,title:"Unsaved Changes",description:"You have unsaved changes. Exit without saving?",confirmLabel:"Yes, leave now",cancelLabel:"No, stay here",onConfirm:y,variant:"destructive"})]})}const Yoe=({isCreateSheetInitiallyOpen:e=!1,onCreateSheetClose:t})=>{const{dataDestinations:n,currentDataDestination:r,clearCurrentDataDestination:s,fetchDataDestinations:l,getDataDestinationById:c,deleteDataDestination:d,rotateSecretKey:f}=wg(),h=p.useCallback(()=>{s(),y(!0),t==null||t()},[s,t]),[g,y]=p.useState(!1),[v,b]=p.useState(!1),[w,E]=p.useState(!1),[S,R]=p.useState(null),[T,_]=p.useState(null);p.useEffect(()=>{l()},[l]),p.useEffect(()=>{e&&h()},[e,h]);const D=async ee=>{await c(ee),y(!0)},A=ee=>{R(ee),b(!0)},O=ee=>{_(ee),E(!0)},j=async()=>{if(T)try{const ee=await f(T);if(IS(ee.credentials)){At.success("New JSON Config copied to clipboard");const $=E1(ee.credentials);navigator.clipboard.writeText($)}await l()}catch(ee){console.error("Failed to rotate secret key:",ee)}finally{E(!1),_(null)}},M=async()=>{if(S)try{await d(S),await l()}catch(ee){console.error("Failed to delete destination:",ee)}finally{b(!1),R(null)}},F=async()=>{try{y(!1),await l()}catch(ee){console.error("Failed to save destination:",ee)}},G=()=>{y(!1),s()},Y=n.map(ee=>({id:ee.id,title:ee.title,type:ee.type,createdAt:ee.createdAt,modifiedAt:ee.modifiedAt,credentials:ee.credentials})),Z=Loe({onEdit:D,onDelete:A,onRotateSecretKey:O});return o.jsxs("div",{children:[o.jsx(Moe,{columns:Z,data:Y,onEdit:D,onDelete:A,onRotateSecretKey:O,onOpenTypeDialog:h}),o.jsx(Koe,{isOpen:g,onClose:G,dataDestination:r,onSaveSuccess:()=>void F()}),o.jsx(Hr,{open:v,onOpenChange:b,title:"Delete Destination",description:"Are you sure you want to delete this destination? This action cannot be undone.",confirmLabel:"Delete",cancelLabel:"Cancel",onConfirm:()=>{M()},onCancel:()=>{R(null)},variant:"destructive"}),o.jsx(Hr,{open:w,onOpenChange:E,title:"Rotate Secret Key",description:"Rotating the secret key will invalidate the previous key",confirmLabel:"Rotate Key",cancelLabel:"Cancel",onConfirm:()=>void j(),onCancel:()=>{E(!1)},variant:"destructive",children:o.jsxs("div",{className:"text-sm",children:[o.jsx("p",{className:"mb-2",children:"After rotation, you will need to:"}),o.jsxs("ol",{className:"mb-2 list-decimal pl-5",children:[o.jsx("li",{children:"The new JSON Config will be automatically copied to your clipboard"}),o.jsx("li",{children:"Go to your Looker Studio Connector"}),o.jsx("li",{children:"Update the configuration with the new JSON Config"}),o.jsx("li",{children:"Save the changes to restore access to your data marts"})]}),o.jsx("p",{className:"font-semibold",children:"Are you sure you want to rotate the secret key?"})]})})]})},Woe=()=>{const[e,t]=p.useState(!1);return o.jsxs("div",{className:"dm-page",children:[o.jsx("header",{className:"dm-page-header",children:o.jsx("h1",{className:"dm-page-header-title",children:"Destinations"})}),o.jsx("div",{className:"dm-page-content",children:o.jsx(Eg,{children:o.jsx(Yoe,{isCreateSheetInitiallyOpen:e,onCreateSheetClose:()=>{t(!1)}})})})]})};function Qoe({status:e}){switch(e){case ar.RUNNING:return o.jsx(br,{variant:"secondary",className:"text-primary bg-primary/10",children:"Running"});case ar.SUCCESS:return o.jsx(br,{variant:"secondary",className:"bg-green-50 text-green-600 dark:bg-green-950 dark:text-green-400",children:"Success"});case ar.FAILED:return o.jsx(br,{variant:"secondary",className:"bg-red-50 text-red-600 dark:bg-red-950 dark:text-red-400",children:"Failed"});case ar.CANCELLED:return o.jsx(br,{variant:"secondary",className:"bg-gray-50 text-gray-500 dark:bg-gray-950 dark:text-gray-400",children:"Cancelled"});case ar.INTERRUPTED:return o.jsx(br,{variant:"secondary",className:"bg-gray-50 text-gray-500 dark:bg-gray-950 dark:text-gray-400",children:"Interrupted"});case ar.PENDING:return o.jsx(br,{variant:"secondary",className:"bg-gray-50 text-gray-500 dark:bg-gray-950 dark:text-gray-400",children:"Pending"});default:return o.jsx(br,{variant:"secondary",className:"bg-gray-50 text-gray-500 dark:bg-gray-950 dark:text-gray-400",children:"Unknown"})}}var Fr=(e=>(e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.SYSTEM="SYSTEM",e))(Fr||{}),ss=(e=>(e.STRUCTURED="structured",e.RAW="raw",e.CONFIGURATION="configuration",e))(ss||{});const jj=(e,t,n=!1)=>{var c,d,f,h;const r=e.split(`
714
714
  `).filter(g=>g.trim()!=="");if(r.length>=3){const g=r[0],y=r[1],v=r.slice(2).join(`
715
- `);if(g.includes("T")&&g.includes("Z")){const b=l0(v);return{id:`log-${t.toString()}`,timestamp:zc(g),level:n?Fr.ERROR:Fr.INFO,message:b.message,metadata:{at:(c=b.metadata)!=null&&c.at?zc(b.metadata.at):zc(g),type:((d=b.metadata)==null?void 0:d.type)??(y!=="unknown"?y:null)}}}}const s=/^\[(.*?)\]\s*\[(.*?)\]\s*(.*)$/.exec(e);if(s){const g=l0(s[3]);return{id:`log-${t.toString()}`,timestamp:zc(s[1]),level:n?Fr.ERROR:s[2],message:g.message,metadata:(f=g.metadata)!=null&&f.at?{...g.metadata,at:zc(g.metadata.at)}:g.metadata}}const l=l0(e);return{id:`log-${t.toString()}`,timestamp:"N/A",level:n?Fr.ERROR:Fr.INFO,message:l.message,metadata:(h=l.metadata)!=null&&h.at?{...l.metadata,at:zc(l.metadata.at)}:l.metadata}},l0=e=>{try{const t=JSON.parse(e);if(typeof t=="object"){const n={},r={...t};"type"in r&&(n.type=r.type,delete r.type),"at"in r&&(n.at=r.at,delete r.at);const s=Object.keys(r);if(s.length===1){const l=s[0],c=r[l];return{message:typeof c=="string"?c:JSON.stringify(c),metadata:Object.keys(n).length>0?n:void 0}}return{message:JSON.stringify(r,null,2),metadata:Object.keys(n).length>0?n:void 0}}}catch{}return{message:e}},nM=e=>{var t;return(t=e.metadata)!=null&&t.type?e.metadata.type:e.level},Xoe=(e,t)=>{var d;const n=e.triggerType??"manual";let r="",s="";switch(e.type){case Cl.CONNECTOR:r=t??"",s="connector";break;case Cl.LOOKER_STUDIO:r="Looker Studio data fetching",s="report";break;case Cl.GOOGLE_SHEETS_EXPORT:r=((d=e.reportDefinition)==null?void 0:d.title)??"",s="report";break}return[pre(`${n} ${s} run`.trim()),r].join(" • ")},Joe=e=>{const t=new Blob([JSON.stringify(e,null,2)],{type:"application/json"}),n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=`datamart-run-${e.id.slice(0,8)}-logs.json`,r.click(),URL.revokeObjectURL(n)},eie=e=>{const t=e.startedAt??e.createdAt;return Vg(t.toISOString())},tie=e=>{const t=_j(e.startedAt),n=_j(e.finishedAt);let r="";return e.startedAt&&e.finishedAt&&(r=bJ(e.startedAt,e.finishedAt)),{startedAt:t,finishedAt:n,duration:r}},_j=e=>e?Vg(e.toISOString()):"N/A";function nie({logViewType:e,setLogViewType:t,searchTerm:n,setSearchTerm:r,run:s,cancelDataMartRun:l,dataMartId:c}){const d=g=>{g.stopPropagation()},f=async g=>{if(g.stopPropagation(),c)try{await l(c,s.id),rn.success("Data mart run cancelled successfully")}catch(y){rn.error(y instanceof Error?y.message:"Failed to cancel data mart run")}},h=g=>`px-3 py-2 text-sm font-medium transition-colors rounded-none ${g?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-accent"}`;return o.jsxs("div",{className:"bg-background border-border flex items-center justify-between rounded-lg border p-3",children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"bg-background border-border flex items-center rounded-lg border",children:[o.jsx("button",{onClick:g=>{g.stopPropagation(),t(ss.STRUCTURED)},className:`${h(e===ss.STRUCTURED)} rounded-l-lg`,children:"Structured"}),o.jsx("button",{onClick:g=>{g.stopPropagation(),t(ss.RAW)},className:`${h(e===ss.RAW)} rounded-none`,children:"Raw"}),o.jsx("button",{onClick:g=>{g.stopPropagation(),t(ss.CONFIGURATION)},className:`${h(e===ss.CONFIGURATION)} rounded-r-lg`,children:"Configuration"})]}),e!==ss.CONFIGURATION&&o.jsxs("div",{className:"relative",children:[o.jsx($l,{className:"text-muted-foreground absolute top-2.5 left-2 h-4 w-4"}),o.jsx(zt,{type:"text",placeholder:"Search logs...",value:n,onChange:g=>{r(g.target.value)},onClick:d,className:"border-input bg-background text-foreground placeholder:text-muted-foreground focus:ring-ring rounded-md border py-2 pr-4 pl-8 text-xs focus:border-transparent focus:ring-2 focus:outline-none"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[s.status===ar.RUNNING&&o.jsxs(Se,{variant:"destructive",size:"sm",onClick:g=>void f(g),children:[o.jsx(cu,{className:"h-4 w-4"}),"Cancel"]}),o.jsxs(Se,{variant:"outline",size:"sm",onClick:g=>{g.stopPropagation(),Joe(s)},className:"flex items-center gap-2",children:[o.jsx(q9,{className:"h-4 w-4"}),"JSON"]})]})]})}function rie(e){switch(e){case Fr.INFO:return o.jsx(zr,{className:"h-3 w-3 text-blue-500"});case Fr.WARNING:return o.jsx(Qp,{className:"h-3 w-3 text-yellow-500"});case Fr.ERROR:return o.jsx(sp,{className:"h-3 w-3 text-red-500"});case Fr.SYSTEM:return o.jsx(wf,{className:"text-muted-foreground h-3 w-3"});default:return o.jsx(zr,{className:"text-muted-foreground h-3 w-3"})}}function aie(e){switch(e){case Fr.INFO:return"text-blue-600 dark:text-blue-400";case Fr.WARNING:return"text-yellow-600 dark:text-yellow-400";case Fr.ERROR:return"text-red-600 dark:text-red-400";case Fr.SYSTEM:return"text-muted-foreground";default:return"text-muted-foreground"}}function sie(e){return e===j4.SCHEDULED?o.jsx(Mb,{size:18}):o.jsx(uL,{size:18})}function oie({logs:e}){const t=r=>{r.stopPropagation()},n=r=>{var s;return(s=r.metadata)!=null&&s.at?r.metadata.at:r.timestamp};return e.length===0?o.jsx("div",{className:"bg-background border-border rounded-lg border",children:o.jsx("div",{className:"text-muted-foreground p-8 text-center",children:"No logs found"})}):o.jsx("div",{className:"bg-background border-border rounded-lg border",children:o.jsx("div",{className:"max-h-96 overflow-y-auto",children:e.map((r,s)=>o.jsxs("div",{className:`border-border hover:bg-accent/30 flex items-start gap-3 border-b p-3 text-sm text-xs ${s===e.length-1?"border-b-0":""}`,onClick:t,children:[o.jsx("div",{className:"text-muted-foreground flex-shrink-0 font-mono text-xs",children:n(r)}),o.jsxs("div",{className:"flex min-w-0 flex-shrink-0 items-center gap-2",children:[rie(r.level),o.jsx("span",{className:`text-xs font-medium ${aie(r.level)}`,children:nM(r)})]}),o.jsx("div",{className:`min-w-0 flex-1 text-xs break-words ${r.level===Fr.ERROR?"text-red-700 dark:text-red-300":"text-foreground"}`,children:r.message.includes(`
715
+ `);if(g.includes("T")&&g.includes("Z")){const b=l0(v);return{id:`log-${t.toString()}`,timestamp:zc(g),level:n?Fr.ERROR:Fr.INFO,message:b.message,metadata:{at:(c=b.metadata)!=null&&c.at?zc(b.metadata.at):zc(g),type:((d=b.metadata)==null?void 0:d.type)??(y!=="unknown"?y:null)}}}}const s=/^\[(.*?)\]\s*\[(.*?)\]\s*(.*)$/.exec(e);if(s){const g=l0(s[3]);return{id:`log-${t.toString()}`,timestamp:zc(s[1]),level:n?Fr.ERROR:s[2],message:g.message,metadata:(f=g.metadata)!=null&&f.at?{...g.metadata,at:zc(g.metadata.at)}:g.metadata}}const l=l0(e);return{id:`log-${t.toString()}`,timestamp:"N/A",level:n?Fr.ERROR:Fr.INFO,message:l.message,metadata:(h=l.metadata)!=null&&h.at?{...l.metadata,at:zc(l.metadata.at)}:l.metadata}},l0=e=>{try{const t=JSON.parse(e);if(typeof t=="object"){const n={},r={...t};"type"in r&&(n.type=r.type,delete r.type),"at"in r&&(n.at=r.at,delete r.at);const s=Object.keys(r);if(s.length===1){const l=s[0],c=r[l];return{message:typeof c=="string"?c:JSON.stringify(c),metadata:Object.keys(n).length>0?n:void 0}}return{message:JSON.stringify(r,null,2),metadata:Object.keys(n).length>0?n:void 0}}}catch{}return{message:e}},nM=e=>{var t;return(t=e.metadata)!=null&&t.type?e.metadata.type:e.level},Xoe=(e,t)=>{var c;let n="",r="";switch(e.type){case Cl.CONNECTOR:n=t??"",r="connector";break;case Cl.LOOKER_STUDIO:n="Looker Studio data fetching",r="report";break;case Cl.GOOGLE_SHEETS_EXPORT:n=((c=e.reportDefinition)==null?void 0:c.title)??"",r="report";break}return[pre(`${e.triggerType} ${r} run`.trim()),n].join(" • ")},Joe=e=>{const t=new Blob([JSON.stringify(e,null,2)],{type:"application/json"}),n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=`datamart-run-${e.id.slice(0,8)}-logs.json`,r.click(),URL.revokeObjectURL(n)},eie=e=>{const t=e.startedAt??e.createdAt;return Vg(t.toISOString())},tie=e=>{const t=_j(e.startedAt),n=_j(e.finishedAt);let r="";return e.startedAt&&e.finishedAt&&(r=bJ(e.startedAt,e.finishedAt)),{startedAt:t,finishedAt:n,duration:r}},_j=e=>e?Vg(e.toISOString()):"N/A";function nie({logViewType:e,setLogViewType:t,searchTerm:n,setSearchTerm:r,run:s,cancelDataMartRun:l,dataMartId:c}){const d=g=>{g.stopPropagation()},f=async g=>{if(g.stopPropagation(),c)try{await l(c,s.id),rn.success("Data mart run cancelled successfully")}catch(y){rn.error(y instanceof Error?y.message:"Failed to cancel data mart run")}},h=g=>`px-3 py-2 text-sm font-medium transition-colors rounded-none ${g?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-accent"}`;return o.jsxs("div",{className:"bg-background border-border flex items-center justify-between rounded-lg border p-3",children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"bg-background border-border flex items-center rounded-lg border",children:[o.jsx("button",{onClick:g=>{g.stopPropagation(),t(ss.STRUCTURED)},className:`${h(e===ss.STRUCTURED)} rounded-l-lg`,children:"Structured"}),o.jsx("button",{onClick:g=>{g.stopPropagation(),t(ss.RAW)},className:`${h(e===ss.RAW)} rounded-none`,children:"Raw"}),o.jsx("button",{onClick:g=>{g.stopPropagation(),t(ss.CONFIGURATION)},className:`${h(e===ss.CONFIGURATION)} rounded-r-lg`,children:"Configuration"})]}),e!==ss.CONFIGURATION&&o.jsxs("div",{className:"relative",children:[o.jsx($l,{className:"text-muted-foreground absolute top-2.5 left-2 h-4 w-4"}),o.jsx(zt,{type:"text",placeholder:"Search logs...",value:n,onChange:g=>{r(g.target.value)},onClick:d,className:"border-input bg-background text-foreground placeholder:text-muted-foreground focus:ring-ring rounded-md border py-2 pr-4 pl-8 text-xs focus:border-transparent focus:ring-2 focus:outline-none"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[s.status===ar.RUNNING&&o.jsxs(Se,{variant:"destructive",size:"sm",onClick:g=>void f(g),children:[o.jsx(cu,{className:"h-4 w-4"}),"Cancel"]}),o.jsxs(Se,{variant:"outline",size:"sm",onClick:g=>{g.stopPropagation(),Joe(s)},className:"flex items-center gap-2",children:[o.jsx(q9,{className:"h-4 w-4"}),"JSON"]})]})]})}function rie(e){switch(e){case Fr.INFO:return o.jsx(zr,{className:"h-3 w-3 text-blue-500"});case Fr.WARNING:return o.jsx(Qp,{className:"h-3 w-3 text-yellow-500"});case Fr.ERROR:return o.jsx(sp,{className:"h-3 w-3 text-red-500"});case Fr.SYSTEM:return o.jsx(wf,{className:"text-muted-foreground h-3 w-3"});default:return o.jsx(zr,{className:"text-muted-foreground h-3 w-3"})}}function aie(e){switch(e){case Fr.INFO:return"text-blue-600 dark:text-blue-400";case Fr.WARNING:return"text-yellow-600 dark:text-yellow-400";case Fr.ERROR:return"text-red-600 dark:text-red-400";case Fr.SYSTEM:return"text-muted-foreground";default:return"text-muted-foreground"}}function sie(e){return e===j4.SCHEDULED?o.jsx(Mb,{size:18}):o.jsx(uL,{size:18})}function oie({logs:e}){const t=r=>{r.stopPropagation()},n=r=>{var s;return(s=r.metadata)!=null&&s.at?r.metadata.at:r.timestamp};return e.length===0?o.jsx("div",{className:"bg-background border-border rounded-lg border",children:o.jsx("div",{className:"text-muted-foreground p-8 text-center",children:"No logs found"})}):o.jsx("div",{className:"bg-background border-border rounded-lg border",children:o.jsx("div",{className:"max-h-96 overflow-y-auto",children:e.map((r,s)=>o.jsxs("div",{className:`border-border hover:bg-accent/30 flex items-start gap-3 border-b p-3 text-sm text-xs ${s===e.length-1?"border-b-0":""}`,onClick:t,children:[o.jsx("div",{className:"text-muted-foreground flex-shrink-0 font-mono text-xs",children:n(r)}),o.jsxs("div",{className:"flex min-w-0 flex-shrink-0 items-center gap-2",children:[rie(r.level),o.jsx("span",{className:`text-xs font-medium ${aie(r.level)}`,children:nM(r)})]}),o.jsx("div",{className:`min-w-0 flex-1 text-xs break-words ${r.level===Fr.ERROR?"text-red-700 dark:text-red-300":"text-foreground"}`,children:r.message.includes(`
716
716
  `)?o.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap",children:r.message}):o.jsx("span",{children:r.message})})]},r.id))})})}var $p=(e=>(e.ERROR="error",e.DEFAULT="default",e))($p||{});function Hp({text:e,section:t,variant:n="default",copiedSection:r,onCopy:s,iconOnly:l=!1}){const c=n==="error",d=r===t,f="flex items-center gap-1 px-2 py-1 text-xs rounded transition-colors cursor-pointer",h=c?"text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-950/40":"text-foreground hover:bg-muted";return o.jsx("button",{onClick:g=>{s(e,t),g.stopPropagation()},className:`${f} ${h}`,title:`Copy ${t} to clipboard`,children:l?o.jsx(o.Fragment,{children:d?o.jsx(fr,{className:"h-3 w-3"}):o.jsx(sf,{className:"h-3 w-3"})}):d?o.jsxs(o.Fragment,{children:[o.jsx(fr,{className:"h-3 w-3"}),"Copied"]}):o.jsxs(o.Fragment,{children:[o.jsx(sf,{className:"h-3 w-3"}),"Copy"]})})}function kS(){const[e,t]=p.useState(null),n=async(s,l)=>{try{await navigator.clipboard.writeText(s),t(l),setTimeout(()=>{t(null)},2e3)}catch(c){console.error("Failed to copy text: ",c)}};return{copiedSection:e,copyToClipboard:n,handleCopy:(s,l)=>{n(s,l)}}}function iie({logs:e,errors:t}){const{copiedSection:n,handleCopy:r}=kS(),s=l=>{l.stopPropagation()};return o.jsxs("div",{className:"border-border space-y-4 rounded-lg border p-4",onClick:s,children:[t.length>0&&o.jsxs("div",{children:[o.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[o.jsxs("h4",{className:"flex items-center gap-2 text-sm font-medium text-red-600 dark:text-red-400",children:[o.jsx(wf,{className:"h-4 w-4 text-red-500"}),"Error Output:"]}),o.jsx(Hp,{text:t.join(`
717
717
  `),section:"errors",variant:$p.ERROR,copiedSection:n,onCopy:r})]}),o.jsx("div",{className:"max-h-96 overflow-y-auto rounded-md bg-red-50 p-3 font-mono text-xs dark:border-red-800 dark:bg-red-950/40",children:t.map((l,c)=>o.jsx("div",{className:"mb-1 leading-relaxed text-red-700 dark:text-red-300",children:l},c))})]}),e.length>0&&o.jsxs("div",{children:[o.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[o.jsxs("h4",{className:"text-foreground flex items-center gap-2 text-sm font-medium",children:[o.jsx(zr,{className:"h-4 w-4 text-blue-500"}),"Standard Output:"]}),o.jsx(Hp,{text:e.join(`
718
718
  `),section:"logs",variant:$p.DEFAULT,copiedSection:n,onCopy:r})]}),o.jsx("div",{className:"bg-muted max-h-96 overflow-y-auto rounded-md p-3 font-mono text-xs dark:bg-white/3",children:e.map((l,c)=>o.jsx("div",{className:"mb-1 leading-relaxed",children:l},c))})]})]})}function lie({definitionRun:e,reportDefinition:t}){const{copiedSection:n,handleCopy:r}=kS(),s=l=>{l.stopPropagation()};return o.jsx("div",{className:"border-border rounded-lg border",onClick:s,children:e!=null?o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[o.jsx("h4",{className:"text-foreground text-sm font-medium",children:"Configuration:"}),o.jsx(Hp,{text:JSON.stringify(e,null,2),section:"configuration",variant:$p.DEFAULT,copiedSection:n,onCopy:r})]}),o.jsx("pre",{className:"bg-muted text-foreground overflow-x-auto rounded p-3 font-mono text-xs whitespace-pre-wrap dark:bg-white/3",children:JSON.stringify(e,null,2)}),t&&o.jsxs(o.Fragment,{children:[o.jsx("h4",{className:"text-foreground mt-3 mb-3 text-sm font-medium",children:"Report definition:"}),o.jsx("pre",{className:"bg-muted text-foreground overflow-x-auto rounded p-3 font-mono text-xs whitespace-pre-wrap dark:bg-white/3",children:JSON.stringify(t,null,2)})]})]}):o.jsx("div",{className:"text-muted-foreground p-8 text-center",children:"No configuration data available for this run"})})}const $d=18;function cie({type:e,base64Icon:t}){switch(e){case Cl.CONNECTOR:return t?o.jsx(_u,{base64:t,size:$d}):o.jsx(lu,{size:$d});case Cl.GOOGLE_SHEETS_EXPORT:{const n=Ll.getInfo(Dt.GOOGLE_SHEETS).icon;return o.jsx(n,{size:$d})}case Cl.LOOKER_STUDIO:{const n=Ll.getInfo(Dt.LOOKER_STUDIO).icon;return o.jsx(n,{size:$d})}default:return o.jsx(lu,{size:$d})}}function uie({run:e,isExpanded:t,onToggle:n,logViewType:r,setLogViewType:s,searchTerm:l,setSearchTerm:c,cancelDataMartRun:d,dataMartId:f,dataMartConnectorInfo:h}){const{copiedSection:g,handleCopy:y}=kS(),v=p.useMemo(()=>{if(e.logs.length===0&&e.errors.length===0)return[];const S=e.logs.map((_,D)=>jj(_,D)),R=e.errors.map((_,D)=>jj(_,e.logs.length+D,!0));return[...S,...R].filter(_=>{const D=nM(_);return l===""||_.message.toLowerCase().includes(l.toLowerCase())||D.toLowerCase().includes(l.toLowerCase())})},[e.logs,e.errors,l]),b=p.useCallback(()=>r===ss.STRUCTURED?o.jsx(oie,{logs:v}):r===ss.RAW?o.jsx(iie,{logs:e.logs,errors:e.errors}):o.jsx(lie,{definitionRun:e.definitionRun,reportDefinition:e.reportDefinition}),[r,v,e.logs,e.errors,e.definitionRun,e.reportDefinition]),w=eie(e),E=tie(e);return o.jsxs("div",{className:"dm-card-block",children:[o.jsxs("div",{className:"flex cursor-pointer items-center justify-between",onClick:()=>{n(e.id)},children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{children:o.jsx(cie,{type:e.type,base64Icon:h==null?void 0:h.logoBase64})}),o.jsxs(St,{children:[o.jsx(Ct,{asChild:!0,children:o.jsx("div",{className:"text-foreground align-center flex items-center font-mono text-sm font-medium",children:w})}),o.jsx(Et,{children:o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{children:["Started At: ",E.startedAt]}),o.jsxs("div",{children:["Finished At: ",E.finishedAt]}),E.duration&&o.jsxs("div",{children:["Duration: ",E.duration]})]})})]}),o.jsxs("div",{className:"text-muted-foreground ml-6 flex items-center gap-1 text-sm",children:[sie(e.triggerType),Xoe(e,h==null?void 0:h.displayName)]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Qoe,{status:e.status}),o.jsx(ja,{className:`text-muted-foreground h-4 w-4 transition-transform ${t?"rotate-90":""}`})]})]}),t&&o.jsxs("div",{className:"border-border bg-muted/30 space-y-4 border-t p-4",children:[o.jsxs("div",{className:"flex items-center",children:[o.jsxs("h3",{className:"text-foreground mr-2 font-medium",children:["Run ID: ",e.id]}),o.jsx(Hp,{text:e.id,section:"run-id",onCopy:y,copiedSection:g,iconOnly:!0})]}),o.jsx(nie,{logViewType:r,setLogViewType:s,searchTerm:l,setSearchTerm:c,run:e,cancelDataMartRun:d,dataMartId:f}),b()]})]})}function die(){const{dataMart:t,getDataMartRuns:n,loadMoreDataMartRuns:r,cancelDataMartRun:s,runs:l=[],isLoading:c}=Wa(),[d,f]=p.useState(!1),[h,g]=p.useState(!0),[y,v]=p.useState(0),[b,w]=p.useState(null),[E,S]=p.useState(ss.STRUCTURED),[R,T]=p.useState(""),_=p.useCallback(async()=>{if(!(t!=null&&t.id))return;const j=await n(t.id,20,0);v(j.length),g(j.length===20)},[t==null?void 0:t.id,n,20]),D=p.useCallback(async()=>{if(!(t!=null&&t.id)||d)return;f(!0);const j=await r(t.id,y,20);v(M=>M+j.length),g(j.length===20),f(!1)},[t==null?void 0:t.id,r,y,d,20]);p.useEffect(()=>{t!=null&&t.id&&_()},[t==null?void 0:t.id,_]);const A=p.useMemo(()=>(t==null?void 0:t.definitionType)===Ue.CONNECTOR&&t.definition&&"connector"in t.definition?t.definition.connector.info??null:null,[t]),O=j=>{w(b===j?null:j)};return c?o.jsx(eM,{}):o.jsx("div",{className:"flex flex-col gap-4 pb-4",children:l.length===0?o.jsx("div",{className:"text-muted-foreground py-8 text-center",children:"No runs found for this Data Mart"}):o.jsxs("div",{className:"space-y-2",children:[l.map(j=>o.jsx(uie,{run:j,isExpanded:b===j.id,onToggle:O,logViewType:E,setLogViewType:S,searchTerm:R,setSearchTerm:T,cancelDataMartRun:s,dataMartId:t==null?void 0:t.id,dataMartConnectorInfo:A},j.id)),h&&o.jsx("div",{className:"flex justify-center pt-4",children:o.jsx(au,{variant:"outline",size:"sm",onClick:()=>void D(),disabled:d,className:"flex items-center gap-2",children:d?o.jsxs(o.Fragment,{children:[o.jsx(VL,{className:"h-4 w-4 animate-spin"}),"Loading..."]}):"Load More"})})]})})}const fie=5e3,hie=20;function mie(){const{dataMart:e,getDataMartRuns:t}=Fo(),n=p.useMemo(()=>e!=null&&e.id?`data-mart-run-history-auto-refresh-${e.id}`:"",[e==null?void 0:e.id]),[r,s]=p.useState(()=>n?ks.get(n,"boolean")??!1:!1);return p.useEffect(()=>{n&&ks.set(n,r)},[r,n]),J5({enabled:!!(e!=null&&e.id)&&r,intervalMs:fie,onTick:()=>{e!=null&&e.id&&t(e.id,hie,0,{silent:!0})}}),o.jsx("div",{className:"flex flex-col gap-4",children:o.jsxs(jl,{collapsible:!1,name:"run-history",children:[o.jsxs(Ao,{children:[o.jsx(No,{icon:fL,tooltip:"View all Data Mart execution runs with detailed logs and errors",children:"Run History"}),o.jsx(nh,{children:o.jsxs("div",{className:"flex items-center gap-2 pl-3",children:[o.jsx(Z5,{id:`run-history-auto-refresh-${(e==null?void 0:e.id)??"unknown"}`,checked:r,onCheckedChange:l=>{s(!!l)},"aria-label":"Auto refresh"}),o.jsx("label",{htmlFor:`run-history-auto-refresh-${(e==null?void 0:e.id)??"unknown"}`,className:"text-sm",children:"Auto refresh"})]})})]}),o.jsx(Do,{children:o.jsx(die,{})})]})})}const pie=[{path:"overview",element:o.jsx(Tj,{})},{path:"data-setup",element:o.jsx(zse,{})},{path:"reports",element:o.jsx(Coe,{})},{path:"triggers",element:o.jsx(Eoe,{})},{path:"run-history",element:o.jsx(mie,{})},{index:!0,element:o.jsx(Tj,{})}];function gie({to:e="/data-marts"}){const{user:t,status:n}=Vi();if(n===Or.LOADING)return o.jsx(tu,{fullScreen:!0,message:"Loading..."});if(n===Or.UNAUTHENTICATED||!t)return o.jsx(tu,{fullScreen:!0,message:"Authentication..."});if(t.projectId){const r=gp(t.projectId,e);return o.jsx(f8,{to:r,replace:!0})}return o.jsx(tu,{fullScreen:!0,message:"Project not found"})}const yie=[{index:!0,path:"/",element:o.jsx(gie,{})},{path:"/ui/:projectId",element:o.jsx(Jq,{}),children:[{path:"about",element:o.jsx(eZ,{})},{index:!0,element:o.jsx(_T,{})},{path:"data-marts",element:o.jsx(_T,{})},{path:"data-marts/create",element:o.jsx(woe,{})},{path:"data-marts/:id",element:o.jsx(Mse,{}),children:pie},{path:"data-storages",element:o.jsx(Doe,{})},{path:"data-destinations",element:o.jsx(Woe,{})},{path:"*",element:o.jsx(CT,{})}]},{path:"*",element:o.jsx(CT,{})}],rM="gtm-script",aM="gtm-noscript",vie="GOOGLE_TAG_MANAGER_CONTAINER_ID";function xie(){return!!document.getElementById(rM)}function bie(e){const t=document.createElement("script");return t.id=rM,t.innerHTML=`
package/dist/index.html CHANGED
@@ -6,7 +6,7 @@
6
6
  <link rel="icon" type="image/png" href="/favicon.png" />
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
8
  <title>OWOX</title>
9
- <script type="module" crossorigin src="/assets/index-CZCp6mg2.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-DJhFjq6v.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="/assets/index-di36Nn7p.css">
11
11
  </head>
12
12
  <body translate="no" class="notranslate">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owox/web",
3
- "version": "0.13.0-next-20251117091742",
3
+ "version": "0.13.0-next-20251117093239",
4
4
  "description": "Web interface for OWOX Data Marts - an open-source solution for Data Analysts",
5
5
  "author": "OWOX",
6
6
  "license": "ELv2",