@starasia/admin 14.31.0 → 14.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +24 -21
- package/dist/index.umd.js +1 -1
- package/dist/types/menu.d.ts +7 -0
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Dn=require("@starasia/alert"),ir=require("@starasia/avatar"),it=require("@starasia/badges"),x=require("@starasia/box"),kt=require("@starasia/breadcrumb"),H=require("@starasia/button"),Zr=require("@starasia/card"),yt=require("@starasia/date"),Oe=require("@starasia/dialog"),lr=require("@starasia/drawer"),Et=require("@starasia/dropdown"),we=require("@starasia/hooks"),Ft=require("@starasia/http"),ut=require("@starasia/input"),O=require("@starasia/menu"),Wt=require("@starasia/pagination"),At=require("@starasia/storage"),Z=require("@starasia/table"),Sn=require("@starasia/tabs"),Gr=require("@starasia/textarea"),Bt=require("@starasia/theme"),kn=require("@starasia/toast"),It=require("@starasia/toggle"),Me=require("@starasia/tooltip"),dt=require("@starasia/checkbox"),Qr=require("@starasia/radio"),C=require("@starasia/text"),B=require("@starasia/icon"),ae=require("@starasia/flex"),Bn=require("@starasia/grid"),En=require("@starasia/progress"),Fn=require("@starasia/stepper"),In=require("@starasia/accordion"),Mn=require("@starasia/story-record"),$e=require("@starasia/skeleton"),Ln=require("@starasia/progress-stepper"),e=require("react/jsx-runtime"),u=require("react"),ur=require("react-dom"),Rs=require("react-easy-crop"),Os={menus:[],menuBottom:void 0,logo:"",appName:"Workspace",userData:null,setUserData:()=>{}},tn=u.createContext(Os),rn=()=>u.useContext(tn),ho=t=>{const[r,n]=u.useState((t==null?void 0:t.initialUserData)||null);return{userData:r,setUserData:n}},fo=u.createContext({badges:{},setBadge:()=>{},setBadges:()=>{},clearBadge:()=>{}}),mo=({children:t})=>{const[r,n]=u.useState({}),s=u.useCallback(c=>{n(a=>typeof c=="function"?c(a):c)},[]),o=u.useCallback((c,a)=>{n(d=>{const h=typeof a=="function"?a(d[c]):a;return{...d,[c]:h}})},[]),i=u.useCallback(c=>{n(a=>{if(!(c in a))return a;const d={...a};return delete d[c],d})},[]),l=u.useMemo(()=>({badges:r,setBadge:o,setBadges:s,clearBadge:i}),[r,o,s,i]);return e.jsx(fo.Provider,{value:l,children:t})},go=()=>u.useContext(fo),or=(t,r)=>{const n=r!==void 0?r:t;return n==null?null:typeof n=="string"||typeof n=="number"?{value:n}:n},nn=240,on=200,sn=480,As="sa-sidebar-width",Ur=(t,r,n)=>Math.min(Math.max(t,r),n),Ws=(t,r,n,s)=>{if(typeof window>"u")return r;try{const o=window.localStorage.getItem(t);if(!o)return r;const i=parseInt(o,10);return Number.isFinite(i)?Ur(i,n,s):r}catch{return r}},Tn=(t,r)=>{if(!(typeof window>"u"))try{window.localStorage.setItem(t,String(r))}catch{}},po=u.createContext({collapsed:!1,setCollapsed:()=>{},toggle:()=>{},collapse:()=>{},expand:()=>{},width:nn,setWidth:()=>{},resetWidth:()=>{},minWidth:on,maxWidth:sn,mobileOpen:!1,setMobileOpen:()=>{},openMobile:()=>{},closeMobile:()=>{},toggleMobile:()=>{}}),yo=({children:t,defaultCollapsed:r=!1,defaultWidth:n=nn,minWidth:s=on,maxWidth:o=sn,widthStorageKey:i=As})=>{const[l,c]=u.useState(r),[a,d]=u.useState(!1),[h,g]=u.useState(()=>Ws(i,n,s,o)),m=u.useCallback(D=>{c(T=>typeof D=="function"?D(T):D)},[]),y=u.useCallback(()=>c(D=>!D),[]),w=u.useCallback(()=>c(!0),[]),v=u.useCallback(()=>c(!1),[]),R=u.useCallback(D=>{g(T=>{const G=typeof D=="function"?D(T):D,z=Ur(Math.round(G),s,o);return Tn(i,z),z})},[s,o,i]),L=u.useCallback(()=>{const D=Ur(n,s,o);Tn(i,D),g(D)},[n,s,o,i]),M=u.useCallback(D=>{d(T=>typeof D=="function"?D(T):D)},[]),b=u.useCallback(()=>d(!0),[]),S=u.useCallback(()=>d(!1),[]),E=u.useCallback(()=>d(D=>!D),[]),I=u.useMemo(()=>({collapsed:l,setCollapsed:m,toggle:y,collapse:w,expand:v,width:h,setWidth:R,resetWidth:L,minWidth:s,maxWidth:o,mobileOpen:a,setMobileOpen:M,openMobile:b,closeMobile:S,toggleMobile:E}),[l,m,y,w,v,h,R,L,s,o,a,M,b,S,E]);return e.jsx(po.Provider,{value:I,children:t})},bo=()=>u.useContext(po),jo=u.createContext(null),vo=({adapter:t,children:r})=>e.jsx(jo.Provider,{value:t,children:r}),lt=()=>{const t=u.useContext(jo);if(!t)throw new Error("[@starasia/admin] Router adapter belum dipasang. Bungkus aplikasi dengan <App routerAdapter={...} /> atau <StarasiaRouterProvider adapter={...}>. Import adapter dari '@starasia/admin/adapters/react-router' atau '@starasia/admin/adapters/tanstack'.");return t},Co=({router:t,routerAdapter:r,menus:n=[],menuBottom:s,logo:o,appName:i="Workspace",initialUserData:l,theme:c})=>{const a=ho({initialUserData:l}),{theme:d}=Bt.useTheme();return e.jsx(vo,{adapter:r,children:e.jsx(tn.Provider,{value:{logo:o,appName:i,menus:n,userData:a.userData,setUserData:a.setUserData,menuBottom:s},children:e.jsx(mo,{children:e.jsx(yo,{children:c?e.jsx(Bt.ThemeProvider,{value:c,children:t}):d?e.jsx(Bt.ThemeProvider,{value:d,children:t}):t})})})})},zs=u.memo(Co);function wo({collapsed:t=!1,children:r}){if(!r)return null;const n=typeof r=="function",s=n?r({collapsed:t}):r;return s==null||s===!1?null:e.jsx("div",{style:{position:"sticky",top:"var(--app-header-height, 4rem)",zIndex:1,borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)",paddingLeft:t?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingRight:t?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingTop:"0.5rem",paddingBottom:"0.5rem",boxSizing:"border-box"},children:n?s:e.jsx("div",{style:{opacity:t?0:1,transition:"opacity 0.3s",visibility:t?"hidden":"visible"},children:s})})}const ln=u.createContext(null);function Do({children:t}){const[r,n]=u.useState(null),[s,o]=u.useState(null),[i,l]=u.useState(null),[c,a]=u.useState(0),d=u.useCallback(()=>(a(h=>h+1),()=>a(h=>h-1)),[]);return e.jsx(ln.Provider,{value:{prependNode:r,appendNode:s,replaceNode:i,setPrependNode:n,setAppendNode:o,setReplaceNode:l,replaceCount:c,registerReplace:d},children:t})}function So({children:t}){const r=u.useContext(ln);return r?e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:r.setPrependNode,style:{display:"contents"}}),r.replaceCount>0?e.jsx("div",{ref:r.setReplaceNode,style:{display:"contents"}}):t,e.jsx("div",{ref:r.setAppendNode,style:{display:"contents"}})]}):e.jsx(e.Fragment,{children:t})}function Hs({children:t,mode:r="append"}){const n=u.useContext(ln);if(u.useEffect(()=>{if(!(r!=="replace"||!n))return n.registerReplace()},[r,n]),!n)return process.env.NODE_ENV!=="production"&&console.warn("[HeaderLeftSlot] used outside AppLayout — content not rendered"),null;const s=r==="prepend"?n.prependNode:r==="replace"?n.replaceNode:n.appendNode;return s?ur.createPortal(t,s):null}const cn=u.createContext(null);function ko({children:t}){const[r,n]=u.useState({}),[s,o]=u.useState({}),i=u.useCallback((a,d)=>{n(h=>h[a]===d?h:{...h,[a]:d})},[]),l=u.useCallback(a=>(o(d=>({...d,[a]:(d[a]??0)+1})),()=>o(d=>({...d,[a]:Math.max(0,(d[a]??0)-1)}))),[]),c=u.useMemo(()=>({outletNodes:r,setOutletNode:i,slotCounts:s,registerSlot:l}),[r,i,s,l]);return e.jsx(cn.Provider,{value:c,children:t})}function Jr({slotKey:t,fallback:r}){const n=u.useContext(cn),s=n?(n.slotCounts[t]??0)>0:!1,o=u.useRef(n==null?void 0:n.setOutletNode);o.current=n==null?void 0:n.setOutletNode;const i=u.useCallback(l=>{var c;return(c=o.current)==null?void 0:c.call(o,t,l)},[t]);return e.jsx(e.Fragment,{children:s?e.jsx("div",{ref:i,style:{display:"contents"}}):r})}function Ps({slotKey:t,children:r}){const n=u.useContext(cn),s=u.useRef(n==null?void 0:n.registerSlot);if(s.current=n==null?void 0:n.registerSlot,u.useEffect(()=>{var i;return(i=s.current)==null?void 0:i.call(s,t)},[t]),!n)return process.env.NODE_ENV!=="production"&&console.warn("[SidebarGroupSlot] used outside AppLayout — content not rendered"),null;const o=n.outletNodes[t];return o?ur.createPortal(r,o):null}const cr="moduleSwitcherGroupId",Yr="sa-module-switcher-change";function Rn(){if(typeof window>"u")return null;const t=window.localStorage.getItem(cr);if(t===null)return null;const r=Number(t);return Number.isFinite(r)?r:null}function Bo(t){typeof window>"u"||(t===null?window.localStorage.removeItem(cr):window.localStorage.setItem(cr,String(t)),window.dispatchEvent(new CustomEvent(Yr,{detail:t})))}function Vs(){Bo(null)}function an(){const[t,r]=u.useState(()=>Rn());return u.useEffect(()=>{const s=()=>{r(Rn())},o=i=>{i.key===cr&&s()};return window.addEventListener(Yr,s),window.addEventListener("storage",o),()=>{window.removeEventListener(Yr,s),window.removeEventListener("storage",o)}},[]),{selectedGroupId:t,setSelectedGroupId:s=>{Bo(s),r(s)}}}const Ns="4.5rem",_s="var(--app-header-height, 4rem)",Eo=t=>t?Ns:_s;function On({icon:t,label:r,active:n=!1,badge:s,showLabel:o=!0,onClick:i}){const[l,c]=u.useState(!1);return e.jsx(Me.Tooltip,{fluid:!0,label:r,position:"right",children:e.jsxs(x.Box,{as:"button",onClick:i,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),"aria-label":r,"aria-current":n?"page":void 0,fullWidth:!0,direction:"column",align:"center",gap:"spacing-2",paddingBlock:"xs",style:{color:n?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)"},children:[e.jsxs(x.Box,{position:"relative",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",borderRadius:n?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:n?"white":l?"neutral":void 0,style:{borderColor:n?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:t,size:"sm"}),s&&!o&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",top:"top-n2",right:"right-n2",display:"inline-flex",borderRadius:"rounded-full",style:{boxShadow:"0 0 0 1px var(--sa-background-primary, #ffffff)"},children:e.jsx(it.BadgeDot,{tone:"error",variant:"solid",size:"xs"})}),s&&o&&e.jsx(x.Box,{position:"absolute",display:"inline-flex",style:{top:"-0.375rem",left:"1.5rem"},children:e.jsx(it.Badge,{text:String(s.value),variant:s.variant??"info",size:"xs",border:!0})})]}),o&&e.jsx(C.Text,{as:"span",fontSize:"xs",fontWeight:n?"medium":"normal",textAlign:"center",truncate:!0,style:{display:"block",maxWidth:"100%",color:"inherit"},children:r})]})})}function qs({items:t,bottomItems:r,activeKey:n,onSelect:s,onAction:o,logo:i,panelCollapsed:l,onExpandPanel:c,showLabels:a=!0}){const[d,h]=u.useState(!1),g=l&&d;return e.jsxs(x.Box,{as:"nav","aria-label":"Primary navigation",bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:"0",style:{width:Eo(a),height:"100%"},children:[e.jsxs(x.Box,{onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),position:"relative",align:"center",justify:"center",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",flexShrink:"0",style:{height:"var(--app-header-height, 4rem)"},children:[e.jsx("img",{src:i,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",transition:"opacity 0.2s",opacity:g?0:1}}),l&&e.jsx(x.Box,{as:"button",onClick:c,"aria-label":"Expand sidebar",position:"absolute",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-sm",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:"var(--sa-text-primary, #292a2e)",opacity:g?1:0,pointerEvents:g?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})})]}),e.jsx(x.Box,{flex:"1",overflow:"overflow-y-auto",paddingBlock:"md",paddingInline:"xs",gap:"xs",children:t.map(m=>e.jsx(On,{icon:m.icon,label:m.label,badge:m.badge,showLabel:a,active:m.key===n,onClick:()=>s(m.key)},m.key))}),r&&r.length>0&&e.jsx(x.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:"xs",gap:"xs",flexShrink:"0",children:r.map(m=>e.jsx(On,{icon:m.icon,label:m.label,badge:m.badge,showLabel:a,onClick:()=>o(m)},m.key))})]})}function Zs({items:t,activeKey:r,onSelect:n}){return e.jsx(x.Box,{role:"tablist","aria-label":"Primary navigation",direction:"row",gap:"xs",paddingInline:"md",paddingBlock:"sm",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",flexShrink:"0",style:{overflowX:"auto",scrollbarWidth:"none"},children:t.map(s=>{const o=s.key===r;return e.jsxs(x.Box,{as:"button",role:"tab","aria-selected":o,onClick:()=>n(s.key),direction:"row",align:"center",gap:"spacing-4",paddingInline:"sm",height:"height-32",flexShrink:"0",borderRadius:o?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:o?"white":void 0,hover:o?void 0:{bg:"neutral"},style:{whiteSpace:"nowrap",color:o?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:o?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:s.icon,size:"sm"}),e.jsx(C.Text,{as:"span",fontSize:"sm",fontWeight:o?"medium":"normal",style:{color:"inherit"},children:s.label})]},s.key)})})}const Ir=(t,r)=>!t.groupIds||t.groupIds.includes(r.id)||r.parentGroupId!==void 0&&t.groupIds.includes(r.parentGroupId);let Yt=0,Ct=!1,An=new Set;const Wn=new Set;function Gs(t,r){const[n,s]=u.useState(!1),o=u.useRef(null),i=u.useRef(null);return u.useLayoutEffect(()=>{const l=o.current;if(!l)return;let c=0;const a=()=>{c=0;const h=i.current;if(!h)return;const g=h.scrollWidth>l.clientWidth;s(m=>m===g?m:g)},d=new ResizeObserver(()=>{c||(c=requestAnimationFrame(a))});return d.observe(l),a(),()=>{c&&cancelAnimationFrame(c),d.disconnect()}},[t,r]),{containerRef:o,textRef:i,truncated:n}}function zn({text:t,textStyle:r,active:n=!1}){const{containerRef:s,textRef:o,truncated:i}=Gs(t,n),l=e.jsx(C.Text,{ref:o,as:"span",fontSize:"md",fontWeight:n?"medium":"normal",truncate:!0,style:{display:"block",...r},children:t});return e.jsx(x.Box,{ref:s,display:"block",style:{flex:1,minWidth:0},children:i?e.jsx(Me.Tooltip,{fluid:!0,label:t,position:"top",children:l}):l})}const Qs=200,Xr="var(--app-header-height, 4rem)",Hn="44px",Mr=`calc((${Xr} - 2rem) / 2)`,Pn=16;function Us({children:t,headerLeftSlot:r,profile:n,isLoadingProfile:s,onLogout:o,isLoggingOut:i,loadingComponent:l,sidebarHeaderContent:c,headerActions:a,profileRole:d,profileMenuButtons:h,profileMenuItems:g,logoutButton:m,resizableSidebar:y=!0,rail:w}){var Zt,pt;const{useSearchParams:v,useNavigate:R,useLocation:L,Outlet:M}=lt(),[b]=v(),S=b.get("embed")==="true",E=rn(),{badges:I}=go(),D=R(),T=L(),z=!we.useMediaQuery("md"),[A,V]=u.useState(!1),{collapsed:q,setCollapsed:Q,width:te,setWidth:X,resetWidth:$,minWidth:N,maxWidth:xe,mobileOpen:de,setMobileOpen:Be}=bo(),[Ve,De]=u.useState(!1),[ge,pe]=u.useState(()=>new Set(An)),[Le,Ne]=u.useState(null),{selectedGroupId:Ae,setSelectedGroupId:se}=an(),le=!!(w&&w.items.length>0),me=q&&!z&&!le,je=q&&!z&≤u.useEffect(()=>{An=ge},[ge]);const Ee=u.useRef(null),et=u.useRef(null),tt=u.useRef(null),[W,Y]=u.useState(!1),[U,ce]=u.useState(null),Se=y&&!z&&!q,ye=k=>Math.min(Math.max(k,N),xe),We=U??te,rt=k=>{var Ge,He,Je;if(!Se)return;k.preventDefault();const P=k.clientX,J=((Ge=tt.current)==null?void 0:Ge.getBoundingClientRect().width)??te;(Je=(He=k.currentTarget).setPointerCapture)==null||Je.call(He,k.pointerId),Y(!0),document.body.style.userSelect="none",document.body.style.cursor="col-resize";let ue=0,he=J;const Ie=_e=>{he=J+(_e.clientX-P),ue||(ue=requestAnimationFrame(()=>{ue=0,ce(ye(he))}))},ie=()=>{ue&&cancelAnimationFrame(ue),window.removeEventListener("pointermove",Ie),window.removeEventListener("pointerup",ie),document.body.style.userSelect="",document.body.style.cursor="",ce(null),Y(!1),he<Qs?Q(!0):X(ye(he))};window.addEventListener("pointermove",Ie),window.addEventListener("pointerup",ie)},Ze=k=>{Se&&(k.key==="ArrowLeft"?(k.preventDefault(),X(P=>P-Pn)):k.key==="ArrowRight"?(k.preventDefault(),X(P=>P+Pn)):k.key==="Home"?(k.preventDefault(),X(N)):k.key==="End"&&(k.preventDefault(),X(xe)))};u.useEffect(()=>{const k=Ee.current;if(!k)return;const P=()=>{Ct||(Yt=k.scrollTop)};return k.addEventListener("scroll",P),()=>k.removeEventListener("scroll",P)},[]);const Fe=()=>{const k=Ee.current;k&&Yt>0&&(Ct=!0,k.scrollTop=Yt,requestAnimationFrame(()=>{Ct=!1}))};u.useLayoutEffect(()=>{Ct=!0,Fe();const k=setTimeout(()=>{Ct=!1},300);return()=>clearTimeout(k)},[]),u.useLayoutEffect(()=>{E.menus.length>0&&(Yt>0?Fe():requestAnimationFrame(()=>{var P;const k=(P=Ee.current)==null?void 0:P.querySelector("[data-menu-active='true']");k&&k.scrollIntoView({block:"center",behavior:"instant"})}))},[E.menus]),u.useEffect(()=>{Ct=!0,Fe();const k=setTimeout(Fe,0),P=setTimeout(Fe,50),J=setTimeout(Fe,100),ue=setTimeout(Fe,200),he=setTimeout(()=>{Ct=!1},300),Ie=setTimeout(()=>{const ie=Ee.current,Ge=ie==null?void 0:ie.querySelector("[data-menu-active='true']");if(ie&&Ge){const He=ie.getBoundingClientRect(),Je=Ge.getBoundingClientRect();Je.top>=He.top&&Je.bottom<=He.bottom||Ge.scrollIntoView({block:"center",behavior:"smooth"})}},250);return()=>{clearTimeout(k),clearTimeout(P),clearTimeout(J),clearTimeout(ue),clearTimeout(he),clearTimeout(Ie)}},[T.pathname]),u.useEffect(()=>{et.current&&(et.current.scrollTop=0)},[T.pathname]),u.useEffect(()=>{z&&Be(!1)},[T.pathname,z]),u.useEffect(()=>{z&&Q(!0)},[z]),u.useEffect(()=>{const k=document.documentElement;return k.style.setProperty("--app-header-height",Hn),()=>{k.style.removeProperty("--app-header-height")}},[]);const ht=()=>{V(!0)},ct=()=>{V(!1)},ke=()=>{V(!1),o()},Te=k=>{const P=k.slotKey?[]:[k.to];return k.children&&P.push(...k.children.map(J=>J.to)),P},bt=[...E.menus.flatMap(k=>k.items.flatMap(Te)),...((Zt=E.menuBottom)==null?void 0:Zt.flatMap(Te))??[]],nt=k=>{if(!T.pathname.startsWith(k))return!1;const P=bt.filter(J=>T.pathname.startsWith(J)).sort((J,ue)=>ue.length-J.length)[0];return k===P},ft=u.useRef(w);ft.current=w;const mt=k=>{const P=ft.current;if(!P||P.items.length===0)return null;const J=P.defaultKey??P.items[0].key,ue=P.items.find(ie=>ie.key===k),he=E.menus.find(ie=>ie.items.some(Ge=>Te(Ge).some(nt)));if(!he)return ue?ue.key:J;if(ue&&Ir(ue,he))return ue.key;const Ie=P.items.find(ie=>ie.groupIds&&Ir(ie,he))??P.items.find(ie=>!ie.groupIds);return(Ie==null?void 0:Ie.key)??(ue==null?void 0:ue.key)??J},[gt,ze]=u.useState(()=>mt(null));u.useEffect(()=>{ze(k=>mt(k))},[T.pathname,E.menus]);const Ue=le?w.items.find(k=>k.key===gt)??w.items[0]:void 0,_t=k=>{ze(k),je&&Q(!1)},qt=k=>{k.onClick?k.onClick():k.to&&D(k.to)};u.useEffect(()=>{var P;const k=J=>{var he;const ue=J.defaultExpanded&&!Wn.has(J.id);ue&&Wn.add(J.id),(ue||(he=J.children)!=null&&he.some(Ie=>T.pathname.startsWith(Ie.to)))&&pe(Ie=>{const ie=new Set(Ie);return ie.add(J.id),ie})};E.menus.forEach(J=>{J.items.forEach(k)}),(P=E.menuBottom)==null||P.forEach(k)},[T.pathname,E.menus,E.menuBottom]);const br=k=>{pe(P=>{const J=new Set(P);return J.has(k)?J.delete(k):J.add(k),J})};u.useEffect(()=>{E.menus.length!==0&&Ae!==null&&!E.menus.some(k=>k.id===Ae)&&se(null)},[E.menus,Ae,se]);const jr=u.useMemo(()=>{if(Ue!=null&&Ue.groupIds)return E.menus.filter(he=>Ir(Ue,he));const k=E.menus,P=le?null:Ae;if(P!==null)return k.filter(he=>he.id===P||he.parentGroupId===P);const J=k.filter(he=>he.parentGroupId===void 0),ue=k.filter(he=>he.parentGroupId!==void 0).flatMap(he=>he.items);return ue.length===0?J:[...J,{id:18,name:"Pengaturan",items:ue,parentGroupId:void 0}]},[E.menus,Ae,Ue,le]);if(S)return e.jsx(x.Box,{as:"main",overflow:"overflow-y-auto",bg:"surface-inverse",style:{height:"100vh"},children:t||e.jsx(M,{})});const jt=k=>{const P=k.children&&k.children.length>0,J=!!k.slotKey,ue=P||J,he=ge.has(k.id),Ie=P?k.children.some(He=>nt(He.to)):J?!1:nt(k.to),ie=or(k.badge,I[k.id]),Ge=!!ie&&me;return e.jsxs(x.Box,{display:"block","data-menu-active":Ie||void 0,children:[e.jsxs(x.Box,{as:"button",onClick:He=>{if(J&&me)D(k.to);else if(ue)if(me){const Je=He.currentTarget.getBoundingClientRect();Ne({item:k,top:Je.top,left:Je.right+8})}else br(k.id);else D(k.to)},fullWidth:!0,direction:"row",align:"center",justify:me?"center":void 0,gap:"sm",paddingInline:me?void 0:"sm",paddingBlock:"xs",height:"height-32",borderRadius:Ie?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:Ie?"white":void 0,hover:Ie?void 0:{bg:"neutral"},title:me?k.title:void 0,style:{textAlign:"left",color:Ie?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:Ie?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsxs(x.Box,{position:"relative",display:"inline-flex",flexShrink:"0",style:{alignItems:"center"},children:[e.jsx(B.Icon,{name:k.icon,size:"sm",style:{flexShrink:0}}),Ge&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",top:"top-n2",right:"right-n2",display:"inline-flex",borderRadius:"rounded-full",style:{boxShadow:"0 0 0 1px var(--sa-background-primary, #ffffff)"},children:e.jsx(it.BadgeDot,{tone:"error",variant:"solid",size:"xs"})})]}),!me&&e.jsxs(e.Fragment,{children:[e.jsx(zn,{text:k.title,active:Ie,textStyle:{transition:"opacity 0.3s"}}),ie&&e.jsx(it.Badge,{text:String(ie.value),variant:ie.variant??"info",size:"xs",border:!0}),ue&&e.jsx(B.Icon,{name:"ChevronDown",size:"sm",style:{flexShrink:0,transition:"transform 0.2s",transform:he?"rotate(180deg)":"rotate(0deg)"}})]})]}),ue&&!me&&(()=>{const He=k.children??[],Je=J?-1:He.findIndex(Xe=>nt(Xe.to)),_e=He.map(Xe=>{const vt=or(Xe.badge,I[Xe.id]),at=nt(Xe.to);return e.jsxs(x.Box,{as:"button",onClick:()=>D(Xe.to),fullWidth:!0,direction:"row",align:"center",gap:"sm",paddingLeft:"sm",paddingRight:"sm",paddingBlock:"xs",height:"height-32",borderRadius:at?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:at?"white":void 0,hover:at?void 0:{bg:"neutral"},style:{textAlign:"left",color:at?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:at?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:Xe.icon,size:"sm",style:{flexShrink:0}}),e.jsx(zn,{text:Xe.title,active:at}),vt&&e.jsx(it.Badge,{text:String(vt.value),variant:vt.variant??"info",size:"xs",border:!0})]},Xe.id)});return e.jsxs(x.Box,{position:"relative",overflow:"overflow-hidden",style:{marginLeft:"1rem",paddingLeft:"0.75rem",transition:"all 0.3s ease-in-out",maxHeight:he?J?"none":`${He.length*36}px`:"0px",opacity:he?1:0,marginTop:he?"0.25rem":"0px"},children:[e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",left:"left-0",top:"top-0",fullHeight:!0,style:{width:"1.5px",backgroundColor:"var(--sa-border-subtle, #0b120e24)",pointerEvents:"none"}}),Je>=0&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",left:"left-0",height:"height-32",zIndex:"10",style:{top:`${Je*32}px`,width:"1.5px",backgroundColor:"var(--sa-text-primary, #292a2e)",transition:"top 0.2s ease-in-out",pointerEvents:"none"}}),J?e.jsx(Jr,{slotKey:k.slotKey,fallback:_e}):_e]})})()]},k.id)};return e.jsx(ko,{children:e.jsxs(Do,{children:[e.jsxs(x.Box,{direction:"row",position:"relative",style:{height:"100vh","--app-header-height":Hn,"--app-sidebar-width":z?"0px":le?`calc(${Eo(w.showLabels??!0)} + ${je?"0px":`${We}px`})`:q?Xr:`${We}px`,"--app-footer-zindex":z&&de?"40":"998"},children:[z&&e.jsx(x.Box,{position:"fixed",zIndex:"40",bg:"black-alpha-a50",style:{inset:0,opacity:de?.5:0,pointerEvents:de?"auto":"none",transition:"opacity 0.3s"},onClick:()=>Be(!1)}),le&&!z&&e.jsx(qs,{items:w.items,bottomItems:w.bottomItems,activeKey:Ue.key,onSelect:_t,onAction:qt,logo:E.logo,panelCollapsed:je,onExpandPanel:()=>Q(!1),showLabels:w.showLabels??!0}),e.jsxs(x.Box,{as:"aside",ref:tt,"aria-hidden":je||void 0,bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:z?void 0:"0",style:{width:z?"16.375rem":je?"0px":q?Xr:`${We}px`,...je&&{borderRightWidth:0,overflow:"hidden",visibility:"hidden"},position:z?"fixed":"relative",...z&&{inset:0,zIndex:50,transform:de?"translateX(0)":"translateX(-100%)"},transition:W?"none":"all 0.3s ease-in-out",minWidth:0},children:[e.jsx(x.Box,{onMouseEnter:()=>De(!0),onMouseLeave:()=>De(!1),direction:"row",align:"center",justify:"space-between",paddingInline:me?void 0:"lg",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",position:"relative",style:{height:"var(--app-header-height, 4rem)",...me?{paddingInline:Mr}:null},children:(()=>{const k=le&&!z,P=!z&&q&&!de&&!le,J=P&&Ve;return e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",flex:P?"1":void 0,justify:P?"center":void 0,style:{transition:"opacity 0.2s",opacity:J?0:1,pointerEvents:J?"none":"auto"},children:[!k&&e.jsx("img",{src:E.logo,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",flexShrink:0}}),(!q||de)&&e.jsx(C.Text,{as:"span",fontSize:"md",fontWeight:"semibold",color:"primary",truncate:!0,style:{transition:"opacity 0.3s"},children:k?(Ue==null?void 0:Ue.label)??E.appName:E.appName})]}),!z&&!q&&e.jsx(x.Box,{as:"button",onClick:()=>Q(!0),"aria-label":"Collapse sidebar",display:"inline-flex",align:"center",justify:"center",flexShrink:"0",style:{color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})}),P&&e.jsx(x.Box,{as:"button",onClick:()=>Q(!1),"aria-label":"Expand sidebar",position:"absolute",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-sm",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:"var(--sa-text-primary, #292a2e)",opacity:J?1:0,pointerEvents:J?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})}),z&&e.jsx(x.Box,{as:"button",onClick:()=>Be(!1),"aria-label":"Close menu",align:"center",justify:"center",borderRadius:"rounded-md",style:{padding:"0.375rem",color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"Cross",size:"md"})})]})})()}),c&&e.jsx(wo,{collapsed:z||le?!1:q,children:c}),le&&z&&e.jsx(Zs,{items:w.items,activeKey:Ue.key,onSelect:_t}),e.jsx(x.Box,{ref:Ee,flex:"1",overflow:"overflow-y-auto",paddingBlock:"lg",children:jr.map(k=>e.jsxs(x.Box,{marginBottom:"lg",children:[me?k.name&&e.jsx(x.Box,{"aria-label":k.name,direction:"row",align:"center",justify:"center",paddingBlock:"md",children:e.jsx(x.Box,{width:"width-16",style:{height:"2px",borderRadius:"1px",backgroundColor:k.color??"var(--sa-background-brand, #04254f)"}})}):k.name&&e.jsx(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"subtlest",textTransform:"uppercase",truncate:!0,style:{letterSpacing:"0.06em",paddingLeft:"1.25rem",paddingRight:"0.75rem",paddingBottom:"0.25rem",transition:"opacity 0.3s"},children:k.name}),e.jsx(x.Box,{paddingInline:me?void 0:"md",gap:"xs",style:me?{paddingInline:Mr}:void 0,children:k.slotKey?e.jsx(Jr,{slotKey:k.slotKey,fallback:k.items.map(P=>jt(P))}):k.items.map(P=>jt(P))})]},k.id))}),E.menuBottom&&E.menuBottom.length>0&&e.jsx(x.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:me?void 0:"md",bg:"surface-inverse",gap:"xs",flexShrink:"0",style:me?{paddingInline:Mr}:void 0,children:E.menuBottom.map(k=>jt(k))}),Se&&e.jsx(x.Box,{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar","aria-valuenow":te,"aria-valuemin":N,"aria-valuemax":xe,tabIndex:0,onPointerDown:rt,onKeyDown:Ze,onDoubleClick:$,title:"Drag to resize · double-click to reset",position:"absolute",top:"top-0",right:"right-0",fullHeight:!0,style:{width:"6px",transform:"translateX(50%)",cursor:"col-resize",zIndex:5,touchAction:"none",background:W?"var(--sa-background-brand, #04254f)":"transparent",transition:"background 0.15s"},onMouseEnter:k=>{W||(k.currentTarget.style.background="var(--sa-border-bold, #0b120e40)")},onMouseLeave:k=>{W||(k.currentTarget.style.background="transparent")}})]}),e.jsxs(x.Box,{flex:"1",overflow:"overflow-hidden",children:[e.jsxs(x.Box,{as:"header",bg:"white",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",direction:"row",align:"center",justify:"space-between",paddingInline:"lg",flexShrink:"0",style:{height:"var(--app-header-height, 4rem)"},children:[e.jsxs(x.Box,{direction:"row",align:"center",gap:z?"lg":void 0,children:[z&&e.jsx(x.Box,{as:"button",onClick:()=>Be(!0),align:"center",justify:"center",borderRadius:"rounded-md",style:{padding:"0.375rem",color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"MenuBurger",size:"lg"})}),e.jsx(So,{children:r})]}),e.jsxs(x.Box,{direction:"row",align:"center",gap:"md",children:[a,e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",cursor:"pointer",children:[!z&&e.jsxs(x.Box,{display:"block",textAlign:"right",customMaxWidth:"12.5rem",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",textAlign:"right",truncate:!0,lineHeight:"leading-none",children:s?"Loading...":(n==null?void 0:n.name)||"unknown"}),e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"right",truncate:!0,children:s?"":(n==null?void 0:n.email)||"unknown"})]}),e.jsx(ir.Avatar,{size:"sm",initials:((n==null?void 0:n.name)||"U")[0].toUpperCase(),bg:"var(--sa-background-brand, #04254f)",color:"var(--sa-background-primary, #ffffff)"}),e.jsx(B.Icon,{name:"ChevronDown",size:"xs",color:"subtle"})]})}),e.jsxs(O.MenuLists,{width:280,style:{paddingBlock:"12px",paddingInline:"12px",gap:"8px",marginTop:"16px"},children:[e.jsx(O.MenuHeading,{children:e.jsxs(x.Box,{align:"center",textAlign:"center",paddingBlock:"sm",fullWidth:!0,children:[e.jsx(ir.Avatar,{customSize:64,initials:((n==null?void 0:n.name)||"U")[0].toUpperCase(),bg:"var(--sa-background-brand, #04254f)",color:"var(--sa-background-primary, #ffffff)",style:{fontSize:"1.25rem",marginBottom:"0.75rem",boxShadow:"var(--sa-shadow-sm, 0 1px 2px 0 #0000000d)"}}),e.jsx(C.Text,{fontSize:"md",fontWeight:"semibold",color:"primary",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(n==null?void 0:n.name)||"unknown"}),e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(n==null?void 0:n.email)||"unknown"}),d&&e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:d})]})}),(h&&h.length>0||g)&&e.jsxs(O.MenuBody,{children:[h==null?void 0:h.map((k,P)=>e.jsx(O.MenuItem,{onClick:k.onClick,startIcon:e.jsx(B.Icon,{name:k.icon,size:"md"}),children:k.label},`${k.label}-${P}`)),g]}),m??e.jsx(O.MenuFooter,{children:e.jsx(O.MenuItem,{intent:"danger",onClick:ht,startIcon:e.jsx(B.Icon,{name:"Logout",size:"md"}),children:"Logout"})})]})]})]})]}),e.jsx(x.Box,{as:"main",ref:et,flex:"1",overflow:"overflow-y-auto",children:t||e.jsx(M,{})})]})]}),i&&l&&e.jsx(x.Box,{position:"fixed",align:"center",justify:"center",bg:"black-alpha-a70",style:{inset:0,zIndex:9999},children:l}),e.jsxs(Oe.Dialog,{isShow:A,onHide:ct,children:[e.jsx(Oe.DialogTitle,{children:"Confirmation Logout"}),e.jsx(Oe.DialogBody,{children:"Are you sure you want to end the session and exit the page?"}),e.jsx(Oe.DialogFooter,{children:e.jsx(x.Box,{direction:"column",display:"flex",align:"flex-end",justify:"center",children:e.jsxs(ae.Flex,{direction:"row",gap:"sm",align:"center",children:[e.jsx(x.Box,{direction:"column",children:e.jsx(H.Button,{secondary:!0,onClick:ct,children:"Cancel"})}),e.jsx(x.Box,{direction:"column",children:e.jsx(H.Button,{primary:!0,onClick:ke,children:"Yes, Sure"})})]})})})]}),Le&&e.jsxs(e.Fragment,{children:[e.jsx(x.Box,{onClick:()=>Ne(null),position:"fixed",style:{inset:0,zIndex:60}}),e.jsxs(x.Box,{role:"dialog","aria-label":Le.item.title,position:"fixed",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-md",shadow:"shadow-lg",padding:"sm",gap:"spacing-2",style:{top:Le.top,left:Le.left,zIndex:61,minWidth:"13rem",maxWidth:"16rem"},children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-500",textTransform:"uppercase",style:{padding:"0.25rem 0.5rem 0.5rem",letterSpacing:"0.05em"},children:Le.item.title}),(pt=Le.item.children)==null?void 0:pt.map(k=>{const P=nt(k.to),J=or(k.badge,I[k.id]);return e.jsxs(x.Box,{as:"button",onClick:()=>{D(k.to),Ne(null)},fullWidth:!0,direction:"row",align:"center",gap:"md",paddingBlock:"sm",paddingInline:"md",borderRadius:"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:P?"primary-inverse":void 0,hover:P?void 0:{bg:"primary-inverse"},style:{textAlign:"left",borderColor:"transparent",color:P?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)"},children:[k.icon&&e.jsx(B.Icon,{name:k.icon,size:"sm",style:{flexShrink:0}}),e.jsx(C.Text,{as:"span",fontSize:"md",fontWeight:P?"medium":"normal",whiteSpace:"nowrap",style:{flex:1},children:k.title}),J&&e.jsx(it.Badge,{text:String(J.value),variant:J.variant??"info",size:"xs",border:!0})]},k.id)})]})]})]})})}const Pt=u.forwardRef(({children:t,...r},n)=>e.jsx(x.Box,{ref:n,role:"button",cursor:"pointer","aria-pressed":"true",display:"inline-block",tabIndex:0,...r,children:t})),Vn=({title:t,iconName:r,textColor:n,iconColor:s,hoverTextColor:o,hoverIconColor:i})=>{const[l,c]=u.useState(!1),a=s??"var(--sa-text-subtle, #8c8f97)",d=n??"var(--sa-text-subtle, #8c8f97)",h=i??"var(--sa-text-subtle, #8c8f97)",g=o??"var(--sa-text-primary, #292a2e)";return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),style:{cursor:"pointer"},children:[e.jsx(B.Icon,{name:r||"ChevronLeft",size:"xs",style:{color:l?h:a,transition:"color 0.15s ease"}}),e.jsx(C.Text,{variant:"sub-h3",style:{color:l?g:d,transition:"color 0.15s ease"},children:t||"Back"})]})},Js=({items:t,separator:r="/",iconName:n,iconColor:s,hoverIconColor:o})=>{const{Link:i}=lt(),[l,c]=u.useState(!1),a=s??"var(--sa-text-subtle, #8c8f97)",d=o??"var(--sa-text-subtle, #8c8f97)",h=t.length>1?t[0]:void 0,g=!!(h!=null&&h.to||h!=null&&h.onClick),m=e.jsx(B.Icon,{name:n||"ChevronLeft",size:"xs",onMouseEnter:g?()=>c(!0):void 0,onMouseLeave:g?()=>c(!1):void 0,style:{color:g&&l?d:a,transition:"color 0.15s ease",cursor:g?"pointer":void 0}}),y=h!=null&&h.to?e.jsx(i,{to:h.to,replace:!0,style:{textDecoration:"none"},children:m}):h!=null&&h.onClick?e.jsx(Pt,{onClick:h.onClick,children:m}):m;return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",children:[y,e.jsx(kt.Breadcrumb,{separator:r,size:"md",children:t.map((w,v)=>{const R=v===t.length-1;return w.to&&!R?e.jsx(kt.BreadcrumbItem,{children:e.jsx(i,{to:w.to,children:w.label})},v):e.jsx(kt.BreadcrumbItem,{currentPage:R,children:e.jsx(kt.BreadcrumbLink,{onClick:R?void 0:w.onClick,children:w.label})},v)})})]})},Ys=t=>{const{Link:r}=lt(),{items:n,separator:s,onClick:o,navigateTo:i,...l}=t;return n&&n.length>0?e.jsx(Js,{items:n,separator:s,iconName:l.iconName,iconColor:l.iconColor,hoverIconColor:l.hoverIconColor}):i?e.jsx(x.Box,{direction:"row",children:e.jsx(r,{to:i,replace:!0,style:{textDecoration:"none"},children:e.jsx(Vn,{...l})})}):e.jsx(x.Box,{direction:"row",children:e.jsx(Pt,{onClick:o,children:e.jsx(Vn,{...l})})})},Lr=[{icon:"var(--sa-color-brand-400, #3366b7)",activeBg:"var(--sa-color-brand-50, #e6edf6)",activeBorder:"var(--sa-color-brand-300, #668cc9)",activeShadow:"rgba(51, 102, 183, 0.25)"},{icon:"var(--sa-color-warning-400, #ed9f30)",activeBg:"var(--sa-color-warning-50, #fef2e6)",activeBorder:"var(--sa-color-warning-300, #f1b259)",activeShadow:"rgba(237, 159, 48, 0.25)"},{icon:"var(--sa-color-secondary-300, #5468e1)",activeBg:"var(--sa-color-secondary-50, #e6e9fb)",activeBorder:"var(--sa-color-secondary-200, #8a98ea)",activeShadow:"rgba(84, 104, 225, 0.25)"},{icon:"var(--sa-color-info-500, #00abeb)",activeBg:"var(--sa-color-info-50, #effaff)",activeBorder:"var(--sa-color-info-300, #75dbff)",activeShadow:"rgba(0, 171, 235, 0.25)"},{icon:"var(--sa-color-success-500, #30ce84)",activeBg:"var(--sa-color-success-50, #ecfff6)",activeBorder:"var(--sa-color-success-300, #75dead)",activeShadow:"rgba(48, 206, 132, 0.25)"},{icon:"var(--sa-color-error-400, #ff758f)",activeBg:"var(--sa-color-error-50, #fff0f3)",activeBorder:"var(--sa-color-error-300, #ff8fa3)",activeShadow:"rgba(255, 117, 143, 0.25)"}];function Nn(t,r,n){return{display:"flex",alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"var(--sa-radii-sm, 6px)",border:t?`2px solid ${n.activeBorder}`:"2px solid var(--sa-color-gray-200, #f0f1f2)",backgroundColor:t?n.activeBg:"var(--sa-color-gray-50, #ffffff)",boxShadow:t?r?`0 8px 20px ${n.activeShadow.replace("0.25","0.35")}`:`0 2px 8px ${n.activeShadow}`:r?"0 8px 20px rgba(0, 0, 0, 0.14)":"0 1px 4px rgba(0, 0, 0, 0.08)",transform:r?"translateY(-3px) scale(1.05)":"translateY(0) scale(1)",transition:"box-shadow 0.2s ease, transform 0.2s ease, background-color 0.15s ease, border-color 0.15s ease"}}const _n={fontSize:"11px",fontWeight:500,textAlign:"center",overflowWrap:"normal",wordBreak:"normal",color:"var(--sa-background-primary, #ffffff)",lineHeight:"1.3",maxWidth:"80px"},qn={display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",background:"none",border:"none",cursor:"pointer",padding:0};function Fo({isShow:t,onHide:r,menus:n,selectedGroupId:s,onSelect:o}){const[i,l]=u.useState(void 0),c=d=>{o(d),r()},a=Lr[0];return e.jsx(Oe.Dialog,{isShow:t,onHide:r,style:{width:560,background:"transparent",boxShadow:"none",border:"none"},children:e.jsx(Oe.DialogBody,{children:e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(5, 1fr)",gap:"16px"},children:[e.jsxs("button",{onClick:()=>c(null),onMouseEnter:()=>l("all"),onMouseLeave:()=>l(void 0),style:qn,children:[e.jsx("div",{style:Nn(s===null,i==="all",a),children:e.jsx("div",{style:{color:a.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(B.Icon,{name:"Grid",size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:_n,children:"Semua"})]}),n.map((d,h)=>{var v;const g=s===d.id,m=i===d.id,y=((v=d.items[0])==null?void 0:v.icon)??"Grid",w=Lr[(h+1)%Lr.length];return e.jsxs("button",{onClick:()=>c(d.id),onMouseEnter:()=>l(d.id),onMouseLeave:()=>l(void 0),style:qn,children:[e.jsx("div",{style:Nn(g,m,w),children:e.jsx("div",{style:{color:w.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(B.Icon,{name:y,size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:_n,children:d.name})]},d.id)})]})})})}function Xs({onSelect:t,"aria-label":r="Pilih module"}={}){const n=rn(),{useNavigate:s}=lt(),o=s(),{selectedGroupId:i,setSelectedGroupId:l}=an(),[c,a]=u.useState(!1),d=h=>{var g;if(l(h),h!==null){const m=n.menus.find(w=>w.id===h),y=(g=m==null?void 0:m.items[0])==null?void 0:g.to;y&&o(y)}t==null||t(h)};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{style:{position:"relative"},children:[e.jsx("button",{onClick:()=>a(!0),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"2.25rem",height:"2.25rem",borderRadius:"var(--sa-radii-sm, 0.25rem)",border:"1px solid var(--sa-border-subtle, #0b120e24)",color:"var(--sa-text-subtle, #8c8f97)",backgroundColor:"transparent",cursor:"pointer"},"aria-label":r,onMouseEnter:h=>{h.currentTarget.style.backgroundColor="var(--sa-background-primary-inverse, #f8f8f8)"},onMouseLeave:h=>{h.currentTarget.style.backgroundColor="transparent"},children:e.jsx(B.Icon,{name:"GridApplication",size:"sm"})}),i!==null&&e.jsx("span",{style:{position:"absolute",top:"0.25rem",right:"0.25rem",width:"0.5rem",height:"0.5rem",borderRadius:"9999px",backgroundColor:"var(--sa-color-brand-500, #1a4fa0)"},"aria-hidden":"true"})]}),e.jsx(Fo,{isShow:c,onHide:()=>a(!1),menus:n.menus.filter(h=>h.parentGroupId===void 0),selectedGroupId:i,onSelect:d})]})}const $s=(t,r)=>{const n=[];if(r===0)return n.push(t),n;for(let s=0;s<t.length;s+=r){const o=t.slice(s,s+r);n.push(o)}return n},Ks=u.memo(({value:t,label:r,separator:n,labelWidth:s,lastIndex:o,labelAlign:i="top"})=>{const l=u.useMemo(()=>({padding:0,paddingBottom:o?0:12,verticalAlign:i}),[o,i]),c=u.useMemo(()=>({padding:0,paddingRight:12,paddingLeft:12,paddingBottom:o?0:12,verticalAlign:i}),[o,i]),a=()=>typeof r=="string"?e.jsx(C.Text,{fontWeight:"medium",color:"subtlest",children:r}):r,d=()=>typeof t=="string"||typeof t=="number"?e.jsx(C.Text,{color:"primary",fontWeight:"medium",children:t}):t,h=()=>typeof n=="string"||typeof n=="number"?e.jsx(C.Text,{fontWeight:"medium",color:"subtlest",children:n}):n;return e.jsxs(Z.Tr,{children:[e.jsx(Z.Td,{style:l,width:s,children:a()}),n?e.jsx(Z.Td,{style:c,width:24,children:h()}):null,e.jsx(Z.Td,{style:l,children:d()})]})}),ei=u.memo(({fields:t,separator:r,labelWidth:n})=>e.jsx(Z.Table,{withColumnBorder:!1,withRowBorder:!1,children:t.map((s,o)=>e.jsx(Ks,{separator:r,labelWidth:n,lastIndex:o===t.length-1,...s},`field-group-field-${o}`))})),ti=u.memo(({maxRow:t=0,maxColumn:r=2,separator:n=":",fields:s=[],labelWidth:o=150,bordered:i=!1})=>{const l=u.useMemo(()=>$s(s,t),[s,t]),c=l.length>2,a=()=>{switch(r){case 1:return"width-full";case 2:return"width-1-2";case 3:return"width-1-3";case 4:return"width-1-4";default:return"width-1-2"}};return e.jsx(x.Box,{gap:c?void 0:"lg",direction:"row",flexWrap:"wrap",borderRadius:"rounded-sm",padding:"lg",paddingBottom:c?"xs":"lg",bg:"accent-dark-tertiary",borderWidth:i?"border":void 0,borderStyle:i?"border-solid":void 0,borderColor:i?"border-subtle":void 0,children:l.map((d,h)=>e.jsx(x.Box,{direction:"column",flex:c?void 0:"1",width:c?a():void 0,marginBottom:c?"lg":void 0,children:e.jsx(ei,{labelWidth:o,fields:d,separator:n})},h))})}),ri=({backButton:t})=>{const[r,n]=u.useState(!1),s=(t==null?void 0:t.iconColor)??"var(--sa-text-subtle, #8c8f97)",o=(t==null?void 0:t.textColor)??"var(--sa-text-subtle, #8c8f97)",i=(t==null?void 0:t.hoverIconColor)??"var(--sa-text-subtle, #8c8f97)",l=(t==null?void 0:t.hoverTextColor)??"var(--sa-text-primary, #292a2e)";return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),style:{cursor:"pointer"},children:[e.jsx(B.Icon,{name:(t==null?void 0:t.iconName)||"ChevronLeft",size:"xs",style:{color:r?i:s,transition:"color 0.15s ease"}}),e.jsx(C.Text,{variant:"sub-h3",style:{color:r?l:o,textDecoration:r?"underline":"none",transition:"color 0.15s ease"},children:(t==null?void 0:t.title)||"Back"})]})},Io=({backButton:t,title:r,titleIcon:n,titleTag:s,children:o,header:i=!0,headerBorder:l=!1,disableAnimation:c=!1,scrollable:a=!1,stickyHeader:d=!1,subHeaders:h,action:g,titleTagProps:m,containerProps:y,headerProps:w})=>{const v=we.useMediaQuery("md"),{Link:R,useNavigate:L}=lt(),M=L(),b=t==null?void 0:t.show,S=()=>{if(typeof(t==null?void 0:t.onClick)=="function"){t.onClick();return}M(-1,{replace:!0})},E=()=>{if(!g)return null;if(u.isValidElement(g))return g;const A=g.filter(V=>V&&(V.title||V.icon));return A.length===0?null:v?e.jsx(x.Box,{direction:"row",gap:"md",children:A.map(({title:V,icon:q,buttonProps:Q,onClick:te},X)=>e.jsx(H.Button,{iconLeft:q?e.jsx(B.Icon,{name:q,size:"md"}):void 0,onClick:te,...Q,children:V},`action-${X}`))}):e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"tertiary",size:"sm",iconLeft:e.jsx(B.Icon,{name:"MenuBurger"}),"aria-label":"Actions"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{minWidth:200},children:A.map(({title:V,icon:q,buttonProps:Q,onClick:te},X)=>{const $=(Q==null?void 0:Q.tone)==="error"||(Q==null?void 0:Q.danger)===!0;return e.jsx(O.MenuItem,{intent:$?"danger":void 0,disabled:Q==null?void 0:Q.disabled,startIcon:q?e.jsx(B.Icon,{name:q}):void 0,onClick:te,children:V},`action-${X}`)})})})]})},I=()=>{const A=e.jsx(ri,{backButton:t});return t!=null&&t.navigateTo?e.jsx(x.Box,{direction:"row",children:e.jsx(R,{to:t.navigateTo,replace:!0,style:{textDecoration:"none"},children:A})}):e.jsx(x.Box,{direction:"row",children:e.jsx(Pt,{onClick:S,children:A})})},D=()=>{const A=!!r,V=Array.isArray(g)&&g.length>0,q=u.isValidElement(g)?!0:V;if(!A&&!q&&!b)return null;const te=v||!v&&V;return e.jsxs(x.Box,{direction:"column",gap:"xs",paddingBlock:(w==null?void 0:w.paddingBlock)??"sm",paddingInline:(w==null?void 0:w.paddingInline)??"md",...w,style:{...l?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...w==null?void 0:w.style},children:[b&&I(),(A||q)&&e.jsxs(x.Box,{direction:te?"row":"column",gap:"sm",justify:"space-between",align:te?"center":"flex-start",children:[A?typeof r=="string"?e.jsxs(x.Box,{direction:"row",gap:"lg",align:"center",children:[e.jsxs(x.Box,{direction:"row",gap:"sm",align:"center",children:[n&&e.jsx(B.Icon,{name:n,size:"md",color:"primary"}),e.jsx(C.Text,{variant:"h3",fontWeight:"semibold",children:r})]}),s&&e.jsx(it.Badge,{border:!0,size:"lg",text:s,...m})]}):r:null,E()]})]})},T=()=>{if(!h||h.length===0)return null;const A=h.filter(Q=>Q.show!==!1);if(A.length===0)return null;let V=0,q=-1/0;return A.forEach((Q,te)=>{const X=Q.order??0;X>=q&&(q=X,V=te)}),A.map(({content:Q,order:te,borderBottom:X=!0,keepBottomPadding:$=!1,paddingInline:N=!0,paddingBlock:xe=!0},de)=>e.jsx(x.Box,{direction:"column",paddingTop:xe?"sm":"spacing-0",paddingBottom:xe&&(X||$||de===V)?"sm":"spacing-0",paddingInline:N?"md":"spacing-0",style:{...X?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...te!==void 0?{order:te}:{}},children:Q},`sub-header-${de}`))},G=()=>{const A=i?D():null,V=T();return!A&&!V?null:e.jsxs(x.Box,{direction:"column",style:{...a?{position:"sticky",left:0,...d?{top:0}:{},zIndex:2,background:"var(--sa-background-primary, #ffffff)"}:{},marginBottom:V?"var(--sa-spacing-0)":"var(--sa-spacing-md)"},children:[A,V]})},z=()=>o;return e.jsxs(x.Box,{direction:"column",as:"main",...y,style:{...a?{height:"100%",minHeight:0,overflow:"auto"}:{},...(y==null?void 0:y.style)??{},...c?{}:{animation:"pageLayoutEnter 320ms cubic-bezier(0.16, 1, 0.3, 1) backwards"}},children:[G(),z()]})},ni=t=>{const{useLocation:r}=lt(),n=r();return e.jsx(Io,{...t},n.pathname)},oi=t=>t.remountOnRouteChange?e.jsx(ni,{...t}):e.jsx(Io,{...t}),si=u.memo(oi),ii={icon:"Cross",title:""},li=320,Zn=16,Gn=4,ci=8,Mo=u.forwardRef(({onHide:t,show:r,withBlur:n=!1,style:s,children:o,closeButton:i=ii,paddingHorizontal:l=!0,width:c,minWidth:a,maxWidth:d,hideBackdrop:h=!1,title:g,headerAction:m,header:y=!0,widthPresets:w,resizable:v=!0,resizeMin:R=li,resizeMax:L,onWidthChange:M},b)=>{const E=!we.useMediaQuery("md"),I=c??d??a??"357px",D=w??[],T=D.length>1,[G,z]=u.useState(()=>{const se=D.indexOf(I);return se>=0?se:0}),[A,V]=u.useState(null),[q,Q]=u.useState(!1),[te,X]=u.useState(!1),$=u.useRef(null),N=se=>{$.current=se,typeof b=="function"?b(se):b&&(b.current=se)},xe=T?D[G]:I,de=A!=null?`${A}px`:xe,Be=v&&!E,Ve=G===D.length-1,De=()=>{const se=(G+1)%D.length;V(null),z(se),M==null||M(D[se])},ge=u.useCallback(se=>{const le=L??window.innerWidth;return Math.min(Math.max(se,R),le)},[R,L]),pe=u.useRef(null),Le=se=>{if(!Be)return;se.preventDefault();const le=se.currentTarget;le.setPointerCapture(se.pointerId),Q(!0);const me=document.body.style.cursor,je=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let Ee=null;const et=W=>{const Y=ge(window.innerWidth-W.clientX);pe.current=Y,Ee==null&&(Ee=window.requestAnimationFrame(()=>{Ee=null,pe.current!=null&&V(pe.current)}))},tt=W=>{Ee!=null&&window.cancelAnimationFrame(Ee),pe.current!=null&&V(pe.current),le.releasePointerCapture(W.pointerId),le.removeEventListener("pointermove",et),le.removeEventListener("pointerup",tt),le.removeEventListener("pointercancel",tt),document.body.style.cursor=me,document.body.style.userSelect=je,Q(!1),pe.current!=null&&(M==null||M(`${pe.current}px`))};le.addEventListener("pointermove",et),le.addEventListener("pointerup",tt),le.addEventListener("pointercancel",tt)},Ne=se=>{var Ee;if(!Be||se.key!=="ArrowLeft"&&se.key!=="ArrowRight")return;se.preventDefault();const le=se.key==="ArrowLeft"?Zn:-Zn,me=A??((Ee=$.current)==null?void 0:Ee.offsetWidth)??R,je=ge(me+le);V(je),M==null||M(`${je}px`)},Ae=()=>{Be&&(V(null),M==null||M(xe))};return e.jsx(lr.Drawer,{blur:n,isShow:r,position:"right",onHide:t,ref:N,size:de,style:s,flush:!0,radius:"none",hideBackdrop:h,children:e.jsxs(x.Box,{direction:"column",height:"height-full",children:[Be?e.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Ubah lebar panel",tabIndex:0,onPointerDown:Le,onKeyDown:Ne,onDoubleClick:Ae,title:"Tarik untuk mengubah lebar — klik dua kali untuk reset",onPointerEnter:()=>X(!0),onPointerLeave:()=>X(!1),style:{position:"absolute",left:0,top:0,bottom:0,width:ci,cursor:"col-resize",zIndex:1,background:q||te?`linear-gradient(to right, var(--sa-border-brand, var(--sa-border-subtle)) 0 ${Gn}px, transparent ${Gn}px)`:"transparent",transition:"background 0.15s",touchAction:"none"}}):null,y?e.jsxs(x.Box,{direction:"row",align:"center",justify:"space-between",gap:"sm",paddingInline:"md",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",customHeight:"var(--app-header-height, 44px)",flexShrink:"0",children:[e.jsx(x.Box,{direction:"row",align:"center",gap:"sm",overflow:"overflow-hidden",children:typeof g=="string"?e.jsx(C.Text,{fontSize:"md",fontWeight:"bold",children:g}):g}),e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",flexShrink:"0",children:[m,T?e.jsx(H.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:De,"aria-label":Ve?"Kecilkan panel":"Lebarkan panel",iconRight:e.jsx(B.Icon,{name:Ve?"ChevronRight":"ChevronLeft"})}):null,i?e.jsx(H.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:t,"aria-label":i.title||"Tutup",iconRight:e.jsx(B.Icon,{name:i.icon}),children:i.title||void 0}):null]})]}):null,e.jsx(x.Box,{direction:"column",paddingBlock:"md",paddingInline:l?"md":"spacing-0",overflow:"overflow-y-auto",style:{flex:1,minHeight:0},children:o})]})})}),dn=u.memo(({children:t,borderBottom:r=!0,padding:n=!0})=>{const s=we.useMediaQuery("lg");return e.jsx(x.Box,{direction:"column",padding:n?"md":"spacing-0",paddingLeft:n?"md":"spacing-0",paddingRight:n?"md":"spacing-0",style:r?{borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:t})}),un=u.memo(({children:t,borderTop:r=!0,padding:n=!0})=>{const s=we.useMediaQuery("lg");return e.jsx(x.Box,{direction:"column",padding:n?"md":"spacing-0",paddingLeft:n?"md":"spacing-0",paddingRight:n?"md":"spacing-0",style:r?{borderTop:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:t})}),ai=u.memo(({children:t,...r})=>e.jsx(x.Box,{direction:"column",padding:"md",paddingLeft:"md",paddingRight:"md",gap:"md",...r,children:t})),di=u.memo(({children:t,title:r,titleTag:n,action:s,header:o,footer:i,actionContainer:l,containerProps:c,bodyProps:a,headerProps:d={borderBottom:!0},footerProps:h={borderTop:!0},variantTag:g="info"})=>{const m=we.useMediaQuery("lg"),y=()=>n?e.jsxs(x.Box,{direction:"row",gap:"sm",align:"center",children:[e.jsx(C.Text,{fontWeight:"medium",children:r}),e.jsx(it.Badges,{border:!0,text:n,variant:g})]}):e.jsx(C.Text,{fontWeight:"medium",children:r}),w=()=>o||e.jsxs(x.Box,{direction:"row",justify:"space-between",align:"flex-start",gap:"md",children:[e.jsx(x.Box,{direction:"column",children:r?y():null}),e.jsx(x.Box,{direction:"column",style:m?{width:"100%",maxWidth:"19.313rem"}:{flex:1},...l,children:s??null})]}),v=!!(o||r||s);return e.jsxs(x.Box,{direction:"column",bg:"white",borderRadius:"rounded-xs",as:"section",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",...c,style:{backgroundColor:"var(--sa-background-primary, #ffffff)",...(c==null?void 0:c.style)??{}},children:[o!==null&&v?e.jsx(dn,{...d,children:w()}):null,e.jsx(ai,{...a,children:t}),i?e.jsx(un,{...h,children:i}):null]})}),ui=t=>e.jsx(C.Text,{variant:"h1",children:t.children,...t.props}),xi=t=>e.jsx(C.Text,{variant:"h2",children:t.children,...t.props}),hi=t=>e.jsx(C.Text,{variant:"h3",children:t.children,...t.props}),fi=t=>e.jsx(C.Text,{variant:"h4",children:t.children,...t.props}),mi=t=>e.jsx(C.Text,{variant:"h5",children:t.children,...t.props}),gi=t=>e.jsx(C.Text,{variant:"h6",children:t.children,...t.props}),pi=t=>e.jsx(C.Text,{variant:"sub-h1",children:t.children,...t.props}),yi=t=>e.jsx(C.Text,{variant:"sub-h2",children:t.children,...t.props}),bi=t=>e.jsx(C.Text,{variant:"sub-h3",children:t.children,...t.props}),ji=t=>e.jsx(C.Text,{variant:"body-1",children:t.children,...t.props}),vi=t=>e.jsx(C.Text,{variant:"body-2",children:t.children,...t.props}),Ci=t=>e.jsx(C.Text,{variant:"body-3",children:t.children,...t.props}),Ke={H1:ui,H2:xi,H3:hi,H4:fi,H5:mi,H6:gi,SubH1:pi,SubH2:yi,SubH3:bi,Body1:ji,Body2:vi,Body3:Ci},qe=()=>{const{useSearchParams:t,useParams:r,useLocation:n}=lt(),[s,o]=t(),i=Ft.searchParamsToObject(s.toString()),l=r(),c=n(),a=l.id;return{setSearchParams:o,searchParams:s,searchQueries:i,isHasQuery:(y,w)=>s.has(y)&&s.get(y)===w,getQueryParam:y=>s.get(y),getRouteParam:y=>l[y],params:l,location:c,id:a,hasId:!!a}},Lo=t=>JSON.stringify(t),To=t=>JSON.stringify(t),Ro=t=>JSON.stringify(t),Oo=t=>JSON.stringify(t),wi=t=>t,Di=t=>JSON.stringify(t),zt=t=>{if(typeof t!="string"||t==="")return{};try{const r=JSON.parse(t);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}},Ht=({value:t,name:r,type:n,withSearchParam:s=!0,setSearchParams:o,searchQueries:i,dropdownSearchKey:l,filterKey:c="filter",pageKey:a="page"})=>{if(s){let d;switch(n){case"search":d=wi(t);break;case"dropdown":case"dropdown-multiple":d=Lo(t);break;case"radio":d=To(t);break;case"date-range":d=Ro(t);break;case"advanced-date-range":d=Di(t);break;case"date":d=Oo(t);break;default:d=t;break}if(typeof d<"u"){const h={...zt(i[c]),[r]:d},g={...i};l&&typeof l=="string"&&delete g[l],delete g[a];const m={...g,[c]:JSON.stringify(h)},y=new URLSearchParams(i).toString(),w=new URLSearchParams(m).toString();if(y===w)return;o(m)}}},sr=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{const o=n.get(r)||void 0,i=o&&typeof o=="string"?JSON.parse(o):void 0,l=i?i[t]:void 0;return s==="label"&&l?JSON.parse(l)[0].label:s==="value"&&l?JSON.parse(l)[0].value:l},Ao=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{const o=n.get(r)||void 0,i=o&&typeof o=="string"?JSON.parse(o):void 0,l=i?i[t]:void 0;return s==="label"&&l?JSON.parse(l).map(c=>c.label):s==="value"&&l?JSON.parse(l).map(c=>c.value):s==="array"&&l?JSON.parse(l):l},Si=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{const o=n.get(r)||void 0,i=o&&typeof o=="string"?JSON.parse(o):void 0,l=i?i[t]:void 0;return s==="id"&&l?JSON.parse(l).id:s==="label"&&l?JSON.parse(l).label:s==="value"&&l?JSON.parse(l).value:l},xr=(t,r,n)=>{const s=r.get(n||"filter")||void 0,o=s&&typeof s=="string"?JSON.parse(s):void 0;return o?o[t]:void 0},ki=({name:t,filterKey:r="filter",searchParams:n})=>{const s=n.get(r||"filter")||void 0,o=s&&typeof s=="string"?JSON.parse(s):void 0,i=o?o[t]:void 0;return{start:i?JSON.parse(i).from:void 0,end:i?JSON.parse(i).to:void 0}},Wo=({name:t,filterKey:r="filter",searchParams:n})=>{const s=n.get(r||"filter")||void 0,o=s&&typeof s=="string"?JSON.parse(s):void 0,i=o?o[t]:void 0;return i?JSON.parse(i):void 0},Bi=(t,{filterKey:r="filter",perPageKey:n="perPage",pageKey:s="page"})=>{const o=t.get(r)||void 0,i=t.get(n)||void 0,l=t.get(s)||void 0;return!!o||!!i||!!l},zo=({isOpen:t,onClose:r,filterKey:n,pageKey:s,filters:o})=>{const{searchParams:i,setSearchParams:l,searchQueries:c}=qe(),[a,d]=u.useState({}),h=()=>{i.delete(n||"filter"),l(i)},g=(m,y)=>{switch(m.type){case"radio":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}case"dropdown":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}case"date-range":return e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y);case"date":return e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y);case"dropdown-multiple":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}default:return null}};return e.jsx(Mo,{onHide:r,show:t||!1,children:e.jsxs(x.Box,{direction:"column",gap:"md",children:[e.jsxs(ae.Flex,{direction:"row",justify:"space-between",align:"center",children:[e.jsx(x.Box,{direction:"column",children:"Filter"}),e.jsx(x.Box,{direction:"column",style:{cursor:"pointer"},onClick:h,children:"Reset"})]}),o==null?void 0:o.map((m,y)=>g(m,y))]})})},Ho=({searchKey:t="q",statusKey:r="status",searchPlaceholder:n="Search",searchHighlightPlaceholder:s,extendedFilter:o,showSearchFilter:i=!0,showStatusFilter:l=!0,filterKey:c="filter",pageKey:a="page",customWidthSearch:d,handleOnReset:h,filterConfigs:g,buttonToggleProps:m,position:y="right",titleSearchLabel:w="Work Order",withTitleLabels:v=!1})=>{const L=(m==null?void 0:m.isShowLabel)??!0,[M,b]=u.useState(!1),[S,E]=u.useState(0),I=()=>{E(N=>N+1)},{searchParams:D,setSearchParams:T,getQueryParam:G}=qe(),z=Ft.searchParamsToObject(D.toString()),A=xr(t,D,c)||"",[V,q]=u.useState(A),Q=G(c),X=!!(Q&&!(()=>{if(Q)try{const N=JSON.parse(Q);return Object.keys(N).length===1&&N[t]===""}catch(N){console.error("Filter parameter is not a valid JSON:",N)}return!1})()),$=we.useMediaQuery("md");return u.useEffect(()=>{q(A)},[A]),u.useEffect(()=>{if(V===A)return;const N=window.setTimeout(()=>{Ht({value:V,name:t,type:"search",searchQueries:z,setSearchParams:T,filterKey:c,pageKey:a})},350);return()=>{window.clearTimeout(N)}},[V,A,t,z,T,c,a]),e.jsxs(ae.Flex,{gap:"md",style:{flexDirection:$&&y==="left"?"row":$&&y==="right"?"row-reverse":"column"},align:"flex-end",children:[X&&e.jsx(x.Box,{direction:"column",justify:"flex-end",children:e.jsx(H.Button,{onClick:()=>{const N=new URLSearchParams(D);N.delete(c),T(N),q(""),I(),h&&h()},variant:"outline",tone:"neutral",children:e.jsx(C.Text,{color:"error",fontWeight:"semibold",children:"Reset"})})}),o==null?void 0:o.map(({minWidth:N,content:xe,title:de,onClickContainer:Be},Ve)=>e.jsxs(x.Box,{direction:"column",gap:"sm",onClick:Be,style:{minWidth:N},children:[de&&e.jsx(Ke.SubH3,{children:de}),xe]},`extended-filter-${Ve}-${S}`)),!!(g!=null&&g.length)&&e.jsx(H.Button,{primary:X,secondary:!X,iconLeft:e.jsx(B.Icon,{size:"sm",name:(m==null?void 0:m.icon)||"FilterHorizontal",style:{color:Q?"var(--sa-background-brand, #04254f)":"var(--sa-text-primary, #292a2e)"}}),fullWidth:!$,onClick:()=>b(!0),children:L?"Filter":void 0}),l&&e.jsxs(x.Box,{direction:"column",gap:"sm",style:{minWidth:"126px"},children:[v&&e.jsx(Ke.SubH3,{children:"Status"}),e.jsx(Et.Dropdown,{dropdownLists:[{label:"Active",value:"active"},{label:"InActive",value:"inactive"}],defaultValue:sr({get:"value",name:r,searchParams:D,filterKey:c})?[{label:sr({get:"value",name:r,searchParams:D,filterKey:c})==="active"?"Active":"InActive",value:sr({get:"value",name:r,searchParams:D,filterKey:c})}]:[],onChange:N=>Ht({value:N,name:r,type:"dropdown",searchQueries:z,setSearchParams:T,filterKey:c}),placeholder:v?"All":"All Status"},S)]}),i&&e.jsxs(x.Box,{direction:"column",gap:"sm",style:{width:d&&$?d:$?"310px":""},children:[v&&e.jsxs(Ke.SubH3,{children:["Search for ",w]}),e.jsx(ut.Input,{placeholder:n,leftIcon:e.jsx(B.Icon,{name:"Search",width:20,height:20}),onChange:N=>q(N.target.value),value:V,fullWidth:!0},S+1+c)]}),e.jsx(zo,{isOpen:M,onClose:()=>b(!1),filterKey:c,filters:g,pageKey:a})]})},Ei=t=>t==="checkbox-multiple"?"dropdown-multiple":t==="radio"?"dropdown":t==="date-compact"?"date":t==="text"?"search":t;function xn({configs:t,filterKey:r="filter",activeFilterKey:n="filters",pageKey:s="page",searchKey:o="q"}){const{searchParams:i,setSearchParams:l,searchQueries:c}=qe(),a=u.useMemo(()=>Object.fromEntries(t.map(S=>[S.key,S])),[t]),d=u.useMemo(()=>{const S=(i.get(n)||"").split(",").map(I=>I.trim()).filter(Boolean),E=Object.keys(zt(i.get(r))).filter(I=>I!==o);return t.map(I=>I.key).filter(I=>{const D=a[I];return(D==null?void 0:D.locked)||S.includes(I)||E.includes(I)})},[i,n,r,o,t,a]),h=u.useCallback(S=>zt(S[r]),[r]),g=u.useCallback(S=>{const E={...c};S.length?E[n]=S.join(","):delete E[n],l(E)},[c,n,l]),m=u.useCallback(S=>{d.includes(S)||g([...d,S])},[d,g]),y=u.useCallback(S=>{var T;if((T=a[S])!=null&&T.locked)return;const E={...c},I=d.filter(G=>G!==S);I.length?E[n]=I.join(","):delete E[n];const D=h(E);S in D&&(delete D[S],Object.keys(D).length?E[r]=JSON.stringify(D):delete E[r]),delete E[s],l(E)},[c,d,n,r,s,h,l,a]),w=u.useCallback(S=>d.includes(S)?y(S):m(S),[d,m,y]),v=u.useCallback(S=>{switch(S.type){case"dropdown":case"dropdown-multiple":case"checkbox-multiple":case"radio":return Ao({name:S.key,get:"array",searchParams:i,filterKey:r})||[];case"date":{const E=Wo({name:S.key,searchParams:i,filterKey:r});return E?new Date(E):void 0}case"date-compact":{const I=h(Object.fromEntries(i.entries()))[S.key];return I&&typeof I=="object"?I:void 0}case"text":{const I=h(Object.fromEntries(i.entries()))[S.key];return typeof I=="string"?I:void 0}default:return}},[i,r,h]),R=u.useCallback((S,E)=>{if(S.type==="date-compact"||S.type==="text"){const I={...c},D=h(I);E==null||E===""?delete D[S.key]:D[S.key]=E,Object.keys(D).length?I[r]=JSON.stringify(D):delete I[r],delete I[s],l(I);return}Ht({value:E,name:S.key,type:Ei(S.type),searchQueries:c,setSearchParams:l,filterKey:r,pageKey:s})},[c,l,r,s,h]),L=u.useCallback(S=>{const E={...c},I=h(E);S in I&&(delete I[S],Object.keys(I).length?E[r]=JSON.stringify(I):delete E[r]),delete E[s],l(E)},[c,r,s,h,l]),M=u.useCallback(()=>{const S={...c};delete S[r],delete S[n],delete S[s],l(S)},[c,r,n,s,l]),b=d.length>0;return{activeKeys:d,configByKey:a,hasActiveFilter:b,addFilter:m,removeFilter:y,toggleFilter:w,getValue:v,setValue:R,clearValue:L,clearAll:M}}const hn={get(t){return At.storage.get(t)??null},set(t,r){At.storage.save(t,r)},remove(t){At.storage.delete(t)}},Mt={columns:t=>`filterbar:colprefs:${t}`,savedViews:t=>`filterbar:views:${t}`,lastState:t=>`filterbar:last:${t}`,perPage:t=>`filterbar:perpage:${t}`,tableSort:t=>`tablelayout:sort:${t}`},Xt=(t,r)=>{const n=new Set(r.map(i=>i.key)),s=t.order.filter(i=>n.has(i));for(const i of r)s.includes(i.key)||s.push(i.key);const o=t.hidden.filter(i=>n.has(i));return{order:s,hidden:o}};function Fi({columns:t,scopeId:r,storage:n,onColumnsChange:s,value:o}){const i=u.useMemo(()=>({order:t.map(D=>D.key),hidden:[]}),[t]),l=r?Mt.columns(r):void 0,c=(D,T)=>Xt({order:D.order??T,hidden:D.hidden??[]},t),[a,d]=u.useState(()=>{if(o&&(o.order||o.hidden))return c(o,t.map(D=>D.key));if(l){const D=n.get(l);if(D&&Array.isArray(D.order))return Xt(D,t)}return i}),h=t.map(D=>D.key).join("|");u.useEffect(()=>d(D=>Xt(D,t)),[h]);const g=u.useRef(a);g.current=a;const m=o?`${(o.order??[]).join("|")}~${(o.hidden??[]).join("|")}`:null,y=u.useRef(m);u.useEffect(()=>{if(m==null||y.current===m)return;y.current=m;const D=g.current,T=c(o,D.order);T.order.join("|")===D.order.join("|")&&T.hidden.join("|")===D.hidden.join("|")||(d(T),l&&n.set(l,T))},[m,h]);const w=u.useRef(!1);u.useEffect(()=>{w.current||(w.current=!0,s==null||s(a))},[]);const v=u.useCallback(D=>{d(D),l&&n.set(l,D),s==null||s(D)},[l,n,s]),R=u.useMemo(()=>{const D=new Map(t.map(T=>[T.key,T]));return a.order.filter(T=>D.has(T)).map(T=>({...D.get(T),visible:!a.hidden.includes(T)}))},[a,t]),L=u.useCallback(D=>{const T=a.hidden.includes(D)?a.hidden.filter(G=>G!==D):[...a.hidden,D];v({...a,hidden:T})},[a,v]),M=u.useCallback((D,T)=>{if(D===T)return;const G=[...a.order],[z]=G.splice(D,1);G.splice(T,0,z),v({...a,order:G})},[a,v]),b=u.useCallback(D=>{v({...a,hidden:D?t.filter(T=>!T.locked).map(T=>T.key):[]})},[a,t,v]),S=u.useCallback(()=>v(i),[v,i]),E=u.useCallback(D=>v(Xt(D,t)),[v,t]),I=a.hidden.length===0;return{state:a,orderedColumns:R,allVisible:I,toggleVisibility:L,reorder:M,setAllHidden:b,reset:S,applyState:E}}function Ii({scopeId:t,storage:r,snapshotKeys:n,pageKey:s="page",getColumns:o,applyColumns:i}){const{searchParams:l,setSearchParams:c}=qe(),a=t?Mt.savedViews(t):void 0,[d,h]=u.useState(()=>a?r.get(a)||[]:[]),g=u.useCallback(v=>{h(v),a&&r.set(a,v)},[a]),m=u.useCallback(v=>{const R=v.trim();if(!R)return;const L={};n.forEach(b=>{const S=l.get(b);S!=null&&(L[b]=S)});const M={id:`${Date.now()}`,name:R,query:L,columns:o==null?void 0:o(),createdAt:Date.now()};g([...d,M])},[n,l,o,g,d]),y=u.useCallback(v=>g(d.filter(R=>R.id!==v)),[g,d]),w=u.useCallback(v=>{const R=Object.fromEntries(l.entries());n.forEach(L=>delete R[L]),Object.assign(R,v.query),delete R[s],c(R),v.columns&&(i==null||i(v.columns))},[l,n,s,c,i]);return{enabled:!!a,views:d,saveView:m,deleteView:y,applyView:w}}function Mi(t,r){const n=zt(t);return delete n[r],Object.keys(n).length>0?JSON.stringify(n):void 0}function Qn(t,r,n){const s=t[r];if(s==null)return;const o=Mi(s,n);o===void 0?delete t[r]:t[r]=o}function Li({scopeId:t,storage:r,snapshotKeys:n,enabled:s=!0,filterKey:o="filter",searchKey:i="q",persistSearch:l=!0}){const{searchParams:c}=qe(),a=t&&s?Mt.lastState(t):void 0,d=u.useRef(a),h=u.useRef(!1);u.useEffect(()=>{if(!a){d.current=a;return}if(d.current!==a){d.current=a,h.current=!1;return}const y={};if(n.forEach(w=>{const v=c.get(w);v!=null&&(y[w]=v)}),l||Qn(y,o,i),Object.keys(y).length===0){h.current&&r.remove(a);return}h.current=!0,r.set(a,y)},[c,a,n,r,l,o,i]);const g=u.useCallback(()=>{if(!a)return null;const y=r.get(a);if(!y||typeof y!="object"||Array.isArray(y)||Object.keys(y).length===0)return null;const w=y[o];return w!=null&&Object.keys(zt(w)).length===0&&delete y[o],l||Qn(y,o,i),Object.keys(y).length>0?y:null},[a,r,l,o,i]),m=u.useCallback(()=>{a&&r.remove(a)},[a,r]);return{enabled:!!a,read:g,clear:m}}function Ti({scopeId:t,storage:r,perPageKey:n,pageSizeOptions:s,enabled:o=!0}){const{searchParams:i}=qe(),l=t&&o?Mt.perPage(t):void 0,c=i.toString(),a=u.useRef(l);u.useEffect(()=>{if(!l){a.current=l;return}if(a.current!==l){a.current=l;return}const g=i.get(n);if(!g)return;const m=Number(g);!Number.isFinite(m)||m<=0||r.set(l,m)},[c,l,n,r]);const d=u.useCallback(()=>{if(!l)return null;const g=r.get(l);if(g==null)return null;const m=Number(g);return!Number.isFinite(m)||m<=0||s&&!s.includes(m)?null:String(m)},[l,r,s]),h=u.useCallback(()=>{l&&r.remove(l)},[l,r]);return{enabled:!!l,read:d,clear:h}}let Tr={},Rr=!1,Or=null;const Ri=(t,r)=>{Object.assign(Tr,t),Or=r,!Rr&&(Rr=!0,queueMicrotask(()=>{const n=Tr,s=Or;Tr={},Rr=!1,Or=null,!(!s||Object.keys(n).length===0)&&s(o=>{const i=new URLSearchParams(o);return Object.entries(n).forEach(([l,c])=>i.set(l,c)),i},{replace:!0})}))};function Oi({enabled:t,snapshotKeys:r,perPageKey:n,readSnapshot:s,readPerPage:o}){const{searchParams:i,setSearchParams:l,location:c}=qe(),a=u.useRef(null);u.useEffect(()=>{if(!t||a.current===c.pathname)return;a.current=c.pathname;const d={};if(!i.has(n)){const h=o();h&&(d[n]=h)}if(!r.some(h=>i.has(h))){const h=s();h&&Object.assign(d,h)}Object.keys(d).length!==0&&Ri(d,l)},[c.pathname,t])}const Ai=({configs:t,activeKeys:r,onToggle:n,hasActiveFilter:s,onReset:o})=>t.length?e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:s?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"FilterHorizontal"}),"aria-label":"Add filter"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{minWidth:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:"Add Filter"}),s&&o&&e.jsx(H.Button,{variant:"link",tone:"brand",size:"xs",onClick:o,children:"Reset"})]}),children:t.map(i=>e.jsx(O.MenuItem,{selected:i.locked||r.includes(i.key),disabled:i.locked,closeOnSelect:!1,startIcon:i.icon??void 0,onClick:()=>{i.locked||n(i.key)},children:i.label},i.key))})})]}):null,Vt=({onClear:t,onRemove:r})=>e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"link",tone:"neutral",size:"xs",iconLeft:e.jsx(B.Icon,{name:"MenuHorizontal"}),"aria-label":"Filter actions"})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{width:180},children:[e.jsx(O.MenuItem,{startIcon:e.jsx(B.Icon,{name:"CrossCircle"}),onClick:t,children:"Clear value"}),r&&e.jsx(O.MenuItem,{intent:"danger",startIcon:e.jsx(B.Icon,{name:"Trash1"}),onClick:r,children:"Remove filter"})]})})]}),Wi=t=>{const r=new Date(t);return r.setHours(0,0,0,0),r},Un=(t,r,n)=>{const s=new Date(t);return n==="day"?s.setDate(s.getDate()+r):n==="week"?s.setDate(s.getDate()+r*7):n==="month"?s.setMonth(s.getMonth()+r):s.setFullYear(s.getFullYear()+r),s},Po=t=>{const r=Wi(new Date);if(t.direction==="this"){const s=new Date(r),o=new Date(r);return t.period==="week"?(s.setDate(r.getDate()-r.getDay()),o.setDate(s.getDate()+6)):t.period==="month"?(s.setDate(1),o.setMonth(o.getMonth()+1,0)):t.period==="year"&&(s.setMonth(0,1),o.setMonth(11,31)),{from:s,to:o}}const n=t.count??1;return t.direction==="past"?{from:Un(r,-n,t.period),to:r}:{from:r,to:Un(r,n,t.period)}},Jn=24,Vo=t=>t.length>Jn?`${t.slice(0,Jn)}...`:t,No=t=>t.toLocaleDateString(void 0,{day:"2-digit",month:"short",year:"numeric"}),Ar=(t,r="days")=>r==="months"?t.toLocaleDateString(void 0,{month:"short",year:"numeric"}):r==="years"?String(t.getFullYear()):No(t),ar={is:"Is","is-before":"Is before","is-after":"Is after","is-on-or-before":"Is on or before","is-on-or-after":"Is on or after","is-between":"Is between","is-relative-to-today":"Is relative to today","is-empty":"Is empty","is-not-empty":"Is not empty"},_o=["is","is-before","is-after","is-on-or-before","is-on-or-after","is-between","is-relative-to-today","is-empty","is-not-empty"],$r={past:"Past",next:"Next",this:"This"},zi=["day","week","month","year"],Hi=["past","next","this"],Pi=t=>t.field.type==="date-compact"?e.jsx(_i,{field:t.field,value:t.value,onChange:t.onChange,onClear:t.onClear,onRemove:t.onRemove}):e.jsx(Vi,{field:t.field,value:t.value,onChange:t.onChange,onClear:t.onClear,onRemove:t.onRemove}),Vi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=r?No(new Date(r)):null,l=!!i,c=l?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:Vo(i)})]}):t.label;return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l?e.jsx(B.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:c})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Vt,{onClear:s,onRemove:o})]}),children:e.jsx(yt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:t.mode,value:r,onChange:a=>a==null?s():n(a),withPadding:!1})})})]})},Ni=(t,r="days")=>{switch(t.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return t.date?`${ar[t.op]} ${Ar(new Date(t.date),r)}`:null;case"is-between":return t.from&&t.to?`${Ar(new Date(t.from),r)} - ${Ar(new Date(t.to),r)}`:null;case"is-relative-to-today":{const n=t.relative;if(!n)return null;if(n.direction==="this")return`This ${n.period}`;const s=n.count??1,o=s===1?n.period:`${n.period}s`;return`${$r[n.direction]} ${s} ${o}`}case"is-empty":case"is-not-empty":return ar[t.op];default:return null}},_i=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=t.ops&&t.ops.length>0?t.ops:_o,l=t.defaultOp&&i.includes(t.defaultOp)?t.defaultOp:i[0],c=t.mode??"days",a=(r==null?void 0:r.op)??l,d=r?Ni(r,c):null,h=!!d,g=h?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:Vo(d)})]}):t.label,m=y=>{if(y!==a){if(y==="is-empty"||y==="is-not-empty"){n({op:y});return}if(y==="is-relative-to-today"){n({op:y,relative:(r==null?void 0:r.relative)??{direction:"past",count:1,period:"week"}});return}if(y==="is-between"){n({op:y,from:r==null?void 0:r.from,to:r==null?void 0:r.to});return}n({op:y,date:r==null?void 0:r.date})}};return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:h?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:h?e.jsx(B.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:g})}),e.jsxs(O.MenuLists,{children:[e.jsx(O.MenuBody,{style:{width:320},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",gap:"xs",fullWidth:!0,children:[e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"xs",style:{minWidth:0},children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(qo,{op:a,ops:i,onChange:m})]}),e.jsx(Vt,{onClear:s,onRemove:o})]}),children:e.jsx(Zo,{value:r,op:a,mode:c,onChange:n})}),a==="is-relative-to-today"&&e.jsx(O.MenuFooter,{children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"Filter will update with the current date"})})]})]})},qo=({op:t,ops:r,onChange:n})=>e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"link",tone:"neutral",size:"xs",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:ar[t]})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:200},children:r.map(s=>e.jsx(O.MenuItem,{selected:t===s,onClick:()=>n(s),endIcon:t===s?e.jsx(B.Icon,{name:"Check"}):void 0,children:ar[s]},s))})})]}),Zo=({value:t,op:r,mode:n="days",onChange:s})=>{if(r==="is-empty"||r==="is-not-empty")return e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"No further input required."})});if(r==="is-between"){const o=t!=null&&t.from||t!=null&&t.to?{from:t!=null&&t.from?new Date(t.from):null,to:t!=null&&t.to?new Date(t.to):null}:void 0;return e.jsx(yt.StarasiaDate,{size:"sm",input:!1,clearable:!0,rangedDate:!0,filter:n,value:o,onChange:i=>{if(i==null){s({op:r});return}if(typeof i=="object"&&i!==null&&"from"in i&&"to"in i){let{from:l,to:c}=i;if(!l&&c&&(l=c,c=null),!l&&!c){s({op:r});return}s({op:r,from:l?l.toISOString():void 0,to:c?c.toISOString():void 0})}},withPadding:!1},`range-${n}`)}return r==="is-relative-to-today"?e.jsx(qi,{value:t==null?void 0:t.relative,onChange:o=>s({op:r,relative:o})}):e.jsx(yt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:n,value:t!=null&&t.date?new Date(t.date):void 0,onChange:o=>{if(o==null){s({op:r});return}o instanceof Date&&s({op:r,date:o.toISOString()})},withPadding:!1},`single-${n}`)},qi=({value:t,onChange:r})=>{const n=(t==null?void 0:t.direction)??"past",s=(t==null?void 0:t.count)??1,o=(t==null?void 0:t.period)??"week",i=n!=="this",l=Po({direction:n,count:s,period:o});return e.jsxs(x.Box,{direction:"column",display:"flex",gap:"sm",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:$r[n]})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:140},children:Hi.map(c=>e.jsx(O.MenuItem,{selected:n===c,endIcon:n===c?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>r(c==="this"?{direction:c,period:o}:{direction:c,count:s,period:o}),children:$r[c]},c))})})]}),i&&e.jsx(ut.Input,{type:"number",size:"sm",min:1,clearable:!1,value:s,onChange:c=>{const a=Number(c.target.value);r({direction:n,count:Number.isFinite(a)&&a>0?a:1,period:o})},style:{width:72}}),e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:o})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:140},children:zi.map(c=>e.jsx(O.MenuItem,{selected:o===c,endIcon:o===c?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>r(n==="this"?{direction:n,period:c}:{direction:n,count:s,period:c}),children:c},c))})})]})]}),e.jsx(yt.StarasiaDate,{size:"sm",input:!1,disabled:!0,rangedDate:!0,value:l,onChange:()=>{},withPadding:!1},"relative-preview")]})},Yn=18,Zi=t=>t.length>Yn?`${t.slice(0,Yn)}...`:t,Gi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=t.type==="dropdown-multiple",l=r.length,c=t.searchable!==!1,[a,d]=u.useState(""),h=t.options,g=typeof t.onSearch=="function",m=(()=>{if(g)return h;const L=a.trim().toLowerCase();return L?h.filter(M=>M.label.toLowerCase().includes(L)):h})(),y=L=>r.some(M=>M.value===L.value),w=L=>{if(!i){n([{label:L.label,value:L.value}]),d("");return}n(y(L)?r.filter(M=>M.value!==L.value):[...r,{label:L.label,value:L.value}])},v=L=>{var M;d(L),(M=t.onSearch)==null||M.call(t,L)},R=l===0?t.label:e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:l===1?Zi(r[0].label):`${l} Selected`})]});return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l>0?e.jsx(B.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:R})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Vt,{onClear:s,onRemove:o})]}),children:e.jsxs(x.Box,{direction:"column",gap:"sm",children:[c&&e.jsx(Et.Dropdown,{size:"sm",triggerInput:!0,fullWidth:!0,hideChevronIcon:!0,clearable:!0,multiSelect:i,searchAble:!0,searchValue:a,onSearch:v,value:r,onChange:n,placeholder:`Search ${t.label.toLowerCase()}…`}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",customMaxHeight:"240px",children:t.isLoading?e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"Loading…"})}):m.length===0?e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"No results"})}):m.map(L=>e.jsx(O.MenuItem,{closeOnSelect:!i,selected:y(L),startIcon:L.avatar,endIcon:y(L)?e.jsx(B.Icon,{name:"Check"}):void 0,description:L.description,onClick:()=>w(L),children:L.label},L.value))})]})})})]})},Xn=18,Qi=t=>t.length>Xn?`${t.slice(0,Xn)}...`:t,$n=({checked:t,indeterminate:r})=>e.jsx("span",{style:{pointerEvents:"none",display:"inline-flex"},children:e.jsx(dt.Checkbox,{size:"sm",checked:t,readOnly:!0,onChange:()=>{},variant:r?"indeterminate":"select"})}),Ui=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=new Set(r.map(m=>m.value)),l=r.length,c=t.options.length>0&&t.options.every(m=>i.has(m.value)),a=l>0&&!c,d=m=>{n(i.has(m.value)?r.filter(y=>y.value!==m.value):[...r,{label:m.label,value:m.value}])},h=()=>{n(c?[]:t.options.map(m=>({label:m.label,value:m.value})))},g=l===0?t.label:e.jsxs(e.Fragment,{children:[e.jsxs(C.Text,{as:"span",fontWeight:"semibold",children:[t.label,":"]})," ",e.jsx(C.Text,{as:"span",children:l===1?Qi(r[0].label):`${l} Selected`})]});return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l>0?e.jsx(B.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:g})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{width:240},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Vt,{onClear:s,onRemove:o})]}),children:[e.jsx(O.MenuItem,{closeOnSelect:!1,selected:c,onClick:h,startIcon:e.jsx($n,{checked:c||a,indeterminate:a}),children:"Select All"}),t.options.map(m=>e.jsx(O.MenuItem,{closeOnSelect:!1,selected:i.has(m.value),onClick:()=>d(m),startIcon:e.jsx($n,{checked:i.has(m.value)}),children:m.label},m.value))]})})]})},Kn=18,Ji=t=>t.length>Kn?`${t.slice(0,Kn)}...`:t,Yi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const[i,l]=u.useState(r??""),c=we.useDebounce(i,t.debounceMs??300);u.useEffect(()=>{c!==(r??"")&&n(c)},[c]),u.useEffect(()=>{l(r??"")},[r]);const a=!!r,d=a?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:Ji(r)})]}):t.label;return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:a?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:a?e.jsx(B.Icon,{name:"Search",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:d})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Vt,{onClear:s,onRemove:o})]}),children:e.jsx(ut.Input,{size:"sm",fullWidth:!0,value:i,placeholder:t.placeholder??"Cari…",leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:h=>l(h.target.value)})})})]})},Go=({activeKeys:t,configByKey:r,getValue:n,setValue:s,clearValue:o,removeFilter:i})=>e.jsx(e.Fragment,{children:t.map(l=>{const c=r[l];if(!c)return null;const a=n(c),d=c.locked?void 0:()=>i(l);return c.type==="date"||c.type==="date-compact"?e.jsx(Pi,{field:c,value:a,onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):c.type==="text"?e.jsx(Yi,{field:c,value:a||"",onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):c.type==="checkbox-multiple"?e.jsx(Ui,{field:c,value:a||[],onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):e.jsx(Gi,{field:c,value:a||[],onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l)})}),eo=t=>`${t} Rows`,Xi=({pagination:t,pageKey:r="page",perPageKey:n="perPage",pageSizeOptions:s=[10,25,50,100],defaultPerPage:o=10,showResultCount:i=!0,showPageSize:l=!0,showPagination:c=!0})=>{var L;const{searchQueries:a,setSearchParams:d,searchParams:h}=qe(),g=h.get(n),m=g?Number(g):o,y=M=>{d({...a,[r]:String(M)})},w=M=>{d({...a,[n]:M,[r]:"1"})},v=(t==null?void 0:t.rangeStart)??(((t==null?void 0:t.currentPage)||0)>1?(((t==null?void 0:t.currentPage)||0)-1)*((t==null?void 0:t.perPage)||0)+1:0),R=(t==null?void 0:t.rangeEnd)??((t==null?void 0:t.totalCurrentPage)!==(t==null?void 0:t.perPage)?t==null?void 0:t.totalData:((t==null?void 0:t.currentPage)||1)*((t==null?void 0:t.totalCurrentPage)||0));return e.jsxs(e.Fragment,{children:[i&&e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${v}-${R} of ${((L=t==null?void 0:t.totalData)==null?void 0:L.toLocaleString())||0}`}),l&&e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),"aria-label":"Rows per page",children:eo(m)})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{children:s.map(M=>e.jsx(O.MenuItem,{selected:M===m,onClick:()=>w(String(M)),children:eo(M)},M))})})]}),c&&((t==null?void 0:t.totalPage)??0)>1&&e.jsx(x.Box,{direction:"column",display:"flex",align:"center",gap:"sm",paddingRight:"sm",style:{borderRight:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:e.jsx(Wt.Pagination,{size:"sm",variant:"neutral",siblingCount:0,currentPage:t!=null&&t.currentPage?Number(t.currentPage):1,totalPages:Number(t==null?void 0:t.totalPage),onPageChange:y})})]})};function $i(t,r,n=!0){u.useEffect(()=>{if(!n)return;const s=o=>{var c;if(o.metaKey||o.ctrlKey||o.altKey||o.key!==t||Oe.isOverlayOpen())return;const i=o.target,l=(c=i==null?void 0:i.tagName)==null?void 0:c.toLowerCase();l==="input"||l==="textarea"||i!=null&&i.isContentEditable||(o.preventDefault(),r())};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[t,r,n])}const Ki=240,Qo=({searchKey:t="q",filterKey:r="filter",pageKey:n="page",placeholder:s="Search",shortcut:o="/",collapsible:i=!0})=>{const{searchParams:l,setSearchParams:c,searchQueries:a}=qe(),d=xr(t,l,r)||"",[h,g]=u.useState(!i||!!d),[m,y]=u.useState(i&&!d),[w,v]=u.useState(d),R=we.useDebounce(w,350),L=u.useRef(null);u.useEffect(()=>{v(d),d&&g(!0)},[d]),u.useEffect(()=>{h&&y(!1)},[h]),u.useEffect(()=>{R!==d&&Ht({value:R,name:t,type:"search",searchQueries:a,setSearchParams:c,filterKey:r,pageKey:n})},[R]);const M=u.useCallback(()=>{g(!0),requestAnimationFrame(()=>{var I;return(I=L.current)==null?void 0:I.focus()})},[]);$i(o,M);const b=()=>{i&&!w&&g(!1)},S=I=>{var D;i&&I.key==="Escape"&&!w&&(g(!1),(D=L.current)==null||D.blur())},E=()=>{h||y(!0)};return e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"spacing-0",children:[m&&e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Search",size:"sm"}),"aria-label":"Search","aria-expanded":!1,onClick:M}),e.jsxs(x.Box,{onTransitionEnd:E,style:{position:"relative",width:h?Ki:0,overflow:"hidden",transition:"width 220ms ease"},children:[e.jsx(ut.Input,{ref:L,size:"sm",fullWidth:!0,value:w,placeholder:s,leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:I=>v(I.target.value),onKeyDown:S,onBlur:b,tabIndex:h?0:-1}),h&&!w&&e.jsx(x.Box,{align:"center",justify:"center",borderColor:"border-subtle",borderWidth:"border",borderStyle:"border-solid",borderRadius:"rounded-xs",paddingInline:"spacing-1",customBackgroundColor:"var(--sa-background-surface-hover, #f1f2f4)",style:{position:"absolute",right:8,top:"50%",transform:"translateY(-50%)",pointerEvents:"none",minWidth:18,height:18,display:"inline-flex"},children:e.jsx(C.Text,{fontSize:"xs",color:"subtle",children:o})})]})]})},Uo=({columns:t,allVisible:r,onToggle:n,onReorder:s,onSetAllHidden:o})=>{const[i,l]=u.useState(null),[c,a]=u.useState(null),d=()=>{i!==null&&c!==null&&i!==c&&s(i,c),l(null),a(null)},h=(g,m)=>{const y=g+m;y<0||y>=t.length||s(g,y)};return e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:r?"outline":"secondary",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Grid",size:"sm"}),"aria-label":"Customize columns"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{children:e.jsxs(x.Box,{padding:"sm",direction:"column",customWidth:"296px",customMaxHeight:"60vh",overflow:"overflow-hidden",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Customize Column Table"}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",paddingBlock:"md",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",children:"Show in table"}),e.jsx(H.Button,{variant:"link",tone:"info",size:"xs",onClick:()=>o(r),children:r?"Hide All":"Show All"})]}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",children:t.map((g,m)=>{const y=!g.locked,w=c===m&&i!==null&&i!==m;return e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",paddingBlock:"xs",draggable:y,onDragStart:()=>y&&l(m),onDragOver:v=>{v.preventDefault(),a(m)},onDrop:d,onDragEnd:d,style:{minHeight:32,boxShadow:w?"inset 0 2px 0 0 var(--sa-background-brand, #04254f)":void 0},children:[e.jsx(x.Box,{direction:"column",as:"div",align:"center",justify:"center",role:"button",tabIndex:y?0:-1,"aria-label":`Reorder ${g.title}`,"aria-disabled":!y||void 0,color:"icon-subtlest",onKeyDown:v=>{y&&(v.key==="ArrowUp"?(v.preventDefault(),h(m,-1)):v.key==="ArrowDown"&&(v.preventDefault(),h(m,1)))},style:{display:"inline-flex",cursor:y?"grab":"default",opacity:y?1:.4},children:e.jsx(B.Icon,{name:"DragVertical",width:16,height:16})}),g.icon&&e.jsx(x.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:g.icon}),e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:g.title}),e.jsx(x.Box,{direction:"column",style:{marginLeft:"auto"},children:e.jsx(It.Toggle,{size:"sm",checked:g.visible,disabled:g.locked,onChange:()=>n(g.key),"aria-label":`Toggle ${g.title} column`})})]},g.key)})})]})})})]})},Jo=({views:t,onApply:r,onDelete:n,onSave:s})=>{const[o,i]=u.useState(""),l=()=>{const c=o.trim();c&&(s(c),i(""))};return e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:t.length>0?"secondary":"outline",tone:(t.length>0,"neutral"),size:"sm",iconLeft:e.jsx(B.Icon,{name:"Bookmark",size:"sm"}),"aria-label":"Saved views"})}),e.jsxs(O.MenuLists,{style:{width:"260px"},children:[e.jsx(O.MenuBody,{children:e.jsxs(x.Box,{direction:"column",padding:"xs",gap:"sm",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Saved Views"}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",children:t.length===0?e.jsx(x.Box,{direction:"column",paddingBlock:"sm",children:e.jsx(C.Text,{fontSize:"sm",color:"subtlest",children:"No saved views yet"})}):t.map(c=>e.jsx(O.MenuItem,{startIcon:e.jsx(B.Icon,{name:"Bookmark"}),onClick:()=>r(c),endIcon:e.jsx(H.Button,{variant:"link",tone:"error",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Trash2"}),"aria-label":`Delete ${c.name}`,onClick:a=>{a.stopPropagation(),n(c.id)}}),children:c.name},c.id))})]})}),e.jsx(O.MenuFooter,{children:e.jsxs(x.Box,{direction:"row",gap:"xs",children:[e.jsx(x.Box,{direction:"column",style:{flex:"1 0 0",minWidth:0},children:e.jsx(ut.Input,{size:"sm",fullWidth:!0,placeholder:"Save current view as…",value:o,onChange:c=>i(c.target.value),onKeyDown:c=>{c.key==="Enter"&&l()}})}),e.jsx(H.Button,{variant:"primary",tone:"brand",size:"sm",disabled:!o.trim(),onClick:l,children:"Save"})]})})]})]})},el=({isOpen:t,onClose:r,configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,onToggle:l,onReset:c,getValue:a,setValue:d,clearValue:h,removeFilter:g})=>{const m=s.length;return e.jsx(lr.Drawer,{position:"bottom",isShow:t,onHide:r,children:e.jsxs(x.Box,{direction:"column",customMaxHeight:"85vh",style:{minHeight:280},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",paddingInline:"md",paddingBlock:"sm",style:{borderBottom:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Filter"}),m>0&&e.jsxs(C.Text,{fontSize:"sm",color:"subtle",children:["(",m,")"]})]}),e.jsx(H.Button,{variant:"link",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Cross"}),"aria-label":"Close filter",onClick:r})]}),e.jsxs(x.Box,{direction:"column",gap:"lg",padding:"md",overflow:"overflow-y-auto",style:{flex:"1 1 auto",minHeight:0},children:[m>0&&e.jsxs(x.Box,{direction:"column",gap:"sm",children:[e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Filter aktif"}),e.jsx(x.Box,{direction:"row",display:"flex",wrap:"wrap",gap:"sm",align:"center",children:e.jsx(Go,{activeKeys:s,configByKey:o,getValue:a,setValue:d,clearValue:h,removeFilter:g})})]}),n.length>0&&e.jsxs(x.Box,{direction:"column",gap:"sm",children:[e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Tambah filter"}),e.jsx(x.Box,{direction:"column",children:n.map(y=>{const w=s.includes(y.key),v=!!y.locked;return e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",paddingBlock:"sm",style:{opacity:v?.5:1,borderTop:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.08))"},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{minWidth:0},children:[y.icon&&e.jsx(x.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:y.icon}),e.jsx(C.Text,{fontSize:"sm",color:"primary",truncate:!0,children:y.label})]}),e.jsx(It.Toggle,{size:"sm",checked:w||v,disabled:v,onChange:()=>l(y.key),"aria-label":`Toggle ${y.label}`})]},y.key)})})]})]}),e.jsxs(x.Box,{direction:"row",display:"flex",gap:"sm",paddingInline:"md",paddingBlock:"sm",style:{borderTop:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:[e.jsx(x.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"md",fullWidth:!0,disabled:!i,onClick:c,children:"Reset"})}),e.jsx(x.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(H.Button,{variant:"primary",tone:"brand",size:"md",fullWidth:!0,onClick:r,children:"Selesai"})})]})]})})},tl=t=>`${t} Rows`,rl=({perPageKey:t,pageKey:r,pageSizeOptions:n,defaultPerPage:s=10,showPageSize:o})=>{const{searchQueries:i,setSearchParams:l,searchParams:c}=qe(),a=c.get(t),d=a?Number(a):s,h=g=>{l({...i,[t]:g,[r]:"1"})};return o?e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"MenuVertical",size:"sm"}),"aria-label":"More options"})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{minWidth:200},children:[e.jsx(x.Box,{paddingInline:"sm",paddingBlock:"xs",children:e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Rows per page"})}),n.map(g=>e.jsx(O.MenuItem,{selected:g===d,endIcon:g===d?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>h(String(g)),children:tl(g)},g))]})})]}):null},nl=t=>{var je;const{withPadding:r,configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,toggleFilter:l,removeFilter:c,getValue:a,setValue:d,clearValue:h,onReset:g,searchable:m,searchKey:y,filterKey:w,pageKey:v,searchPlaceholder:R,searchShortcut:L,searchCollapsible:M,pagination:b,perPageKey:S,pageSizeOptions:E,defaultPerPage:I,showPagination:D,showResultCount:T,showPageSize:G,hasColumns:z,orderedColumns:A,allVisible:V,onToggleVisibility:q,onReorder:Q,onSetAllHidden:te,showSavedViews:X,savedViews:$,onApplyView:N,onDeleteView:xe,onSaveView:de,leadingActions:Be,trailingActions:Ve}=t,[De,ge]=u.useState(!1),{searchQueries:pe,setSearchParams:Le}=qe(),Ne=(b==null?void 0:b.rangeStart)??(((b==null?void 0:b.currentPage)||0)>1?(((b==null?void 0:b.currentPage)||0)-1)*((b==null?void 0:b.perPage)||0)+1:1),Ae=(b==null?void 0:b.rangeEnd)??((b==null?void 0:b.totalCurrentPage)!==(b==null?void 0:b.perPage)?b==null?void 0:b.totalData:((b==null?void 0:b.currentPage)||1)*((b==null?void 0:b.totalCurrentPage)||0)),se=Ee=>{Le({...pe,[v]:String(Ee)})},le=T||D&&!!(b!=null&&b.totalPage),me=()=>{g(),ge(!1)};return e.jsxs(x.Box,{direction:"column",gap:"sm",fullWidth:!0,paddingTop:r?"sm":void 0,paddingBottom:r?"sm":void 0,paddingLeft:r?"md":void 0,paddingRight:r?"md":void 0,role:"toolbar","aria-label":"Filter bar",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",wrap:"wrap",gap:"sm",fullWidth:!0,overflow:"overflow-auto",children:[m&&e.jsx(Qo,{searchKey:y,filterKey:w,pageKey:v,placeholder:R,shortcut:L,collapsible:M}),e.jsx(H.Button,{variant:i?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"FilterHorizontal"}),onClick:()=>ge(!0),"aria-label":"Open filters",children:i?`Filter: ${s.length}`:null}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{marginLeft:"auto"},children:[Be,X&&e.jsx(Jo,{views:$,onApply:N,onDelete:xe,onSave:de}),z&&e.jsx(Uo,{columns:A,allVisible:V,onToggle:q,onReorder:Q,onSetAllHidden:te}),e.jsx(rl,{perPageKey:S,pageKey:v,pageSizeOptions:E,defaultPerPage:I,showPageSize:G}),Ve]})]}),le&&e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",fullWidth:!0,children:[T?e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${Ne}-${Ae} of ${((je=b==null?void 0:b.totalData)==null?void 0:je.toLocaleString())||0}`}):e.jsx(x.Box,{direction:"column"}),D&&!!(b!=null&&b.totalPage)&&e.jsx(Wt.Pagination,{size:"xs",variant:"neutral",siblingCount:0,currentPage:b!=null&&b.currentPage?Number(b.currentPage):1,totalPages:Number(b.totalPage),onPageChange:se})]}),e.jsx(el,{isOpen:De,onClose:()=>ge(!1),configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,onToggle:l,onReset:me,getValue:a,setValue:d,clearValue:h,removeFilter:c})]})},ol=({withPadding:t=!1,filterConfigs:r=[],filterKey:n="filter",activeFilterKey:s="filters",pageKey:o="page",perPageKey:i="perPage",pageSizeOptions:l=[25,50,100],defaultPerPage:c,showPagination:a=!0,showResultCount:d=!0,showPageSize:h=!0,searchable:g=!1,searchKey:m="q",searchPlaceholder:y="Search",searchShortcut:w="/",searchPosition:v="right",searchCollapsible:R=!0,pagination:L,columns:M=[],onColumnsChange:b,columnsState:S,scopeId:E,savedViews:I,persistLastState:D=!0,persistSearch:T=!0,storage:G=hn,onReset:z,leadingActions:A,trailingActions:V})=>{const q=E??(I==null?void 0:I.scopeId),{activeKeys:Q,configByKey:te,hasActiveFilter:X,toggleFilter:$,removeFilter:N,getValue:xe,setValue:de,clearValue:Be,clearAll:Ve}=xn({configs:r,filterKey:n,activeFilterKey:s,pageKey:o,searchKey:m}),De=Fi({columns:M,scopeId:q,storage:G,onColumnsChange:b,value:S}),ge=Ii({scopeId:q,storage:G,snapshotKeys:[s,n,i],pageKey:o,getColumns:()=>De.state,applyColumns:De.applyState}),pe=Li({scopeId:q,storage:G,snapshotKeys:[s,n,o],enabled:D,filterKey:n,searchKey:m,persistSearch:T}),Le=Ti({scopeId:q,storage:G,perPageKey:i,pageSizeOptions:l,enabled:D});Oi({enabled:D&&!!q,snapshotKeys:[s,n,o],perPageKey:i,readSnapshot:pe.read,readPerPage:Le.read});const Ne=c??l[0]??25,Ae=!!(I!=null&&I.enabled)&&ge.enabled,se=()=>{Ve(),pe.clear(),z==null||z()},le=we.useMediaQuery("md"),me=g?e.jsx(Qo,{searchKey:m,filterKey:n,pageKey:o,placeholder:y,shortcut:w,collapsible:R}):null;return le?e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"sm",wrap:"wrap",fullWidth:!0,paddingTop:t?"sm":void 0,paddingBottom:t?"sm":void 0,paddingLeft:t?"md":void 0,paddingRight:t?"md":void 0,role:"toolbar","aria-label":"Filter bar",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(Ai,{configs:r,activeKeys:Q,onToggle:$,hasActiveFilter:X,onReset:se}),v==="left"&&me,e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",overflow:"overflow-x-auto",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(Go,{activeKeys:Q,configByKey:te,getValue:xe,setValue:de,clearValue:Be,removeFilter:N}),X&&e.jsx(H.Button,{variant:"link",tone:"brand",size:"sm",onClick:se,children:"Reset"})]})]}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",children:[A,e.jsx(Xi,{pagination:L,pageKey:o,perPageKey:i,pageSizeOptions:l,defaultPerPage:Ne,showPagination:a,showResultCount:d,showPageSize:h}),v==="right"&&me,Ae&&e.jsx(Jo,{views:ge.views,onApply:ge.applyView,onDelete:ge.deleteView,onSave:ge.saveView}),M.length>0&&e.jsx(Uo,{columns:De.orderedColumns,allVisible:De.allVisible,onToggle:De.toggleVisibility,onReorder:De.reorder,onSetAllHidden:De.setAllHidden}),V]})]}):e.jsx(nl,{withPadding:t,configs:r,activeKeys:Q,configByKey:te,hasActiveFilter:X,toggleFilter:$,removeFilter:N,getValue:xe,setValue:de,clearValue:Be,onReset:se,searchable:g,searchKey:m,filterKey:n,pageKey:o,searchPlaceholder:y,searchShortcut:w,searchCollapsible:R,pagination:L,perPageKey:i,pageSizeOptions:l,defaultPerPage:Ne,showPagination:a,showResultCount:d,showPageSize:h,hasColumns:M.length>0,orderedColumns:De.orderedColumns,allVisible:De.allVisible,onToggleVisibility:De.toggleVisibility,onReorder:De.reorder,onSetAllHidden:De.setAllHidden,showSavedViews:Ae,savedViews:ge.views,onApplyView:ge.applyView,onDeleteView:ge.deleteView,onSaveView:ge.saveView,leadingActions:A,trailingActions:V})},sl=t=>{if(!Array.isArray(t)||t.length===0)return;const r=t[0];return(r==null?void 0:r.value)!=null?String(r.value):void 0},il=t=>{if(!Array.isArray(t)||t.length===0)return;const r=t.map(n=>(n==null?void 0:n.value)!=null?String(n.value):null).filter(n=>n!=null);return r.length?r:void 0},ll=(t,r)=>{switch(t.type){case"dropdown":case"radio":return sl(r);case"dropdown-multiple":case"checkbox-multiple":return il(r);case"date":return r instanceof Date?r.toISOString():void 0;case"date-compact":return r;case"text":return typeof r=="string"&&r?r:void 0;default:return}},to=(t,r)=>{if(t==null||t==="")return r;const n=Number(t);return Number.isFinite(n)&&n>0?n:r},cl=t=>{const{filterConfigs:r,filterKey:n="filter",activeFilterKey:s="filters",pageKey:o="page",perPageKey:i="perPage",searchKey:l="q",defaultPage:c=1,defaultPerPage:a=10,paramKeys:d,serialize:h}=t,{activeKeys:g,configByKey:m,hasActiveFilter:y,getValue:w}=xn({configs:r,filterKey:n,activeFilterKey:s,pageKey:o,searchKey:l}),{searchParams:v}=qe(),R=v.toString();return u.useMemo(()=>{const M={},b={},S=to(v.get(o),c),E=to(v.get(i),a);M[(d==null?void 0:d.page)??"page"]=S,M[(d==null?void 0:d.perPage)??"perPage"]=E;const I=xr(l,v,n)||"";I&&(M[(d==null?void 0:d.search)??"search"]=I);let D=!1;for(const T of g){const G=m[T];if(!G)continue;const z=w(G);b[T]=z;const A=h==null?void 0:h[T],V=A?A(z):ll(G,z);if(V==null||Array.isArray(V)&&V.length===0)continue;const q=(d==null?void 0:d[T])??T;M[q]=V,D=!0}return{params:M,raw:b,hasActiveFilter:y||!!I||D}},[R,g.join("|"),n,s,o,i,l,c,a,d,h,m])},al=["dropdown","dropdown-multiple","checkbox-multiple","radio"],dl=({filterConfigs:t,filterKey:r,activeFilterKey:n,pageKey:s,searchKey:o})=>{const{configByKey:i,getValue:l,setValue:c,removeFilter:a,clearAll:d,hasActiveFilter:h}=xn({configs:t,filterKey:r,activeFilterKey:n,pageKey:s,searchKey:o}),g=(b,S)=>{var I;const E=b.options;return((I=E==null?void 0:E.find(D=>D.value===S))==null?void 0:I.label)??S},m=u.useCallback(b=>{const S=i[b];if(!S)return[];const E=l(S);return Array.isArray(E)?E.map(I=>String(I.value)):[]},[i,l]),y=u.useCallback((b,S)=>{const E=i[b];if(!E||!al.includes(E.type))return;const I=Array.isArray(S)?S:[S];if(I.length===0){a(b);return}c(E,I.map(D=>({label:g(E,D),value:D})))},[i,c,a]),w=u.useCallback((b,S)=>{const E=m(b);y(b,E.includes(S)?E.filter(I=>I!==S):[...E,S])},[m,y]),v=u.useCallback((b,S)=>m(b).includes(S),[m]),R=u.useCallback(b=>a(b),[a]),L=u.useCallback(b=>{const S=i[b];return S?l(S):void 0},[i,l]),M=u.useCallback((b,S)=>{const E=i[b];if(E){if(S==null){a(b);return}c(E,S)}},[i,c,a]);return{set:y,toggle:w,clear:R,clearAll:d,isActive:v,values:m,getRaw:L,setRaw:M,hasActiveFilter:h}},Wr="var(--sa-background-brand, #04254f)",ul="var(--sa-text-brand, #031f43)",xl={padding:"6px 8px",border:"1px solid var(--sa-border-subtle, #0b120e24)",borderRadius:4,font:"inherit",fontSize:13,outline:"none",width:"100%",boxSizing:"border-box"},fn={padding:"4px 8px",border:"none",background:"none",cursor:"pointer",font:"inherit",textAlign:"left",fontSize:13,color:ul},Yo=(t,r)=>{if(t.type==="text"||t.type==="date")return!!r.getRaw(t.key);if(t.type==="date-compact"){const n=r.getRaw(t.key);return!!(n&&(n.date||n.from||n.to||n.relative||n.op==="is-empty"||n.op==="is-not-empty"))}return r.values(t.key).length>0},hl=({field:t,controls:r})=>{const[n,s]=u.useState(""),o=t.type==="dropdown"||t.type==="radio",i=t.type==="checkbox-multiple"?!1:t.searchable!==!1,l=r.values(t.key),c=i&&n.trim()?t.options.filter(d=>d.label.toLowerCase().includes(n.toLowerCase())):t.options,a=d=>{o?r.set(t.key,l.includes(d)?[]:d):r.toggle(t.key,d)};return e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:4,minWidth:200},children:[i&&e.jsx("input",{value:n,onChange:d=>{var h;s(d.target.value),(h=t.onSearch)==null||h.call(t,d.target.value)},placeholder:"Cari…",style:xl}),e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:2,maxHeight:220,overflowY:"auto"},children:[c.map(d=>{const h=l.includes(d.value);return e.jsxs("button",{type:"button",onClick:()=>a(d.value),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 8px",border:"none",background:"none",cursor:"pointer",font:"inherit",textAlign:"left",borderRadius:4},children:[e.jsx("span",{style:{width:16,height:16,flexShrink:0,borderRadius:o?"50%":4,display:"inline-flex",alignItems:"center",justifyContent:"center",border:`1px solid ${h?Wr:"var(--sa-border-subtle, #0b120e24)"}`,background:h&&!o?Wr:"transparent"},children:h&&(o?e.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:Wr}}):e.jsx(B.Icon,{name:"Check",size:"xs",style:{color:"#fff"}}))}),e.jsx(C.Text,{as:"span",style:{fontSize:14},children:d.label})]},d.value)}),c.length===0&&e.jsx(C.Text,{as:"span",style:{fontSize:13,color:"var(--sa-text-subtlest, #8c8f97)",padding:"6px 8px"},children:"Tak ada hasil"})]}),l.length>0&&e.jsx("button",{type:"button",onClick:()=>r.clear(t.key),style:fn,children:"Clear"})]})},fl=({field:t,controls:r})=>{const n=r.getRaw(t.key);return e.jsx(x.Box,{style:{minWidth:240},children:e.jsx(yt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:t.mode,value:n,onChange:s=>r.setRaw(t.key,s??null),withPadding:!1})})},ml=({field:t,controls:r})=>{const n=r.getRaw(t.key),s=t.ops&&t.ops.length>0?t.ops:_o,o=t.defaultOp&&s.includes(t.defaultOp)?t.defaultOp:s[0],i=t.mode??"days",l=(n==null?void 0:n.op)??o,c=d=>r.setRaw(t.key,d),a=d=>{if(d!==l)return c(d==="is-empty"||d==="is-not-empty"?{op:d}:d==="is-relative-to-today"?{op:d,relative:(n==null?void 0:n.relative)??{direction:"past",count:1,period:"week"}}:d==="is-between"?{op:d,from:n==null?void 0:n.from,to:n==null?void 0:n.to}:{op:d,date:n==null?void 0:n.date})};return e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:280},children:[e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"xs",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(qo,{op:l,ops:s,onChange:a})]}),e.jsx(Zo,{value:n,op:l,mode:i,onChange:c}),Yo(t,r)&&e.jsx("button",{type:"button",onClick:()=>r.setRaw(t.key,null),style:fn,children:"Clear"})]})},gl=({field:t,controls:r})=>{const n=r.getRaw(t.key)??"",[s,o]=u.useState(n),i=we.useDebounce(s,t.debounceMs??300);return u.useEffect(()=>{const l=r.getRaw(t.key)??"";i!==l&&r.setRaw(t.key,i||null)},[i]),e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:220},children:[e.jsx(ut.Input,{size:"sm",fullWidth:!0,value:s,placeholder:t.placeholder??"Cari…",leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:l=>o(l.target.value)}),s&&e.jsx("button",{type:"button",onClick:()=>{o(""),r.setRaw(t.key,null)},style:fn,children:"Clear"})]})},pl=({field:t,controls:r})=>t.type==="text"?e.jsx(gl,{field:t,controls:r}):t.type==="date"?e.jsx(fl,{field:t,controls:r}):t.type==="date-compact"?e.jsx(ml,{field:t,controls:r}):e.jsx(hl,{field:t,controls:r}),yl=(t,r)=>{if(!t)return{};const{fromKey:n,toKey:s,opKey:o}=r,i={};switch(t.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return t.date&&(i[n]=new Date(t.date).toISOString()),o&&(i[o]=t.op),i;case"is-between":return t.from&&(i[n]=new Date(t.from).toISOString()),t.to&&(i[s]=new Date(t.to).toISOString()),i;case"is-relative-to-today":{if(!t.relative)return i;const{from:l,to:c}=Po(t.relative);return i[n]=l.toISOString(),i[s]=c.toISOString(),i}case"is-empty":case"is-not-empty":return o&&(i[o]=t.op==="is-empty"?"empty":"not-empty"),i;default:return i}},Xo=({children:t,borderRadius:r,height:n})=>{const s=u.useRef(null),[o,i]=u.useState("100vh");return u.useEffect(()=>{if(n)return;const l=()=>{if(s.current){const c=s.current.getBoundingClientRect().top;i(`calc(100vh - ${c}px)`)}};return l(),window.addEventListener("resize",l),()=>window.removeEventListener("resize",l)},[n]),e.jsx(x.Box,{ref:s,fullWidth:!0,borderStyle:"border-solid",borderWidth:"border",borderColor:"border-base",borderRadius:r||"rounded-xs",style:{height:n??o,display:"flex",flexDirection:"column"},children:t})},$o=({action:t,rightContent:r,leftContent:n,headerSlot:s,advanceFilter:o,showFilter:i=!0})=>{const l=we.useMediaQuery("md"),c=i?e.jsx(Ho,{...o}):null,a=()=>t?u.isValidElement(t)?t:e.jsx(x.Box,{style:{display:"flex",flexDirection:l?"row":"column",gap:"8px",width:l?"auto":"100%",textWrap:"nowrap"},children:t.map(({title:d,icon:h,buttonProps:g,onClick:m},y)=>!d&&!h?null:e.jsx(H.Button,{fullWidth:!l,iconLeft:h?e.jsx(B.Icon,{name:h}):void 0,onClick:m,...g,children:d},`action-${y}`))}):null;return e.jsx(x.Box,{style:{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",paddingLeft:"8px",paddingRight:"8px",paddingTop:"8px",paddingBottom:"8px",borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)",flexShrink:0,position:"relative",zIndex:10,flexDirection:l?"row":"column-reverse",gap:"16px"},children:s?s({filter:c}):e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flex:1,minWidth:0},children:[c,n]}),e.jsxs(x.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flexShrink:0},children:[r,a()]})]})})},bl=({totalData:t,withMarginBottom:r=!0,withMarginTop:n=!0})=>e.jsxs(x.Box,{style:{display:"flex",gap:"4px",flexDirection:"row",alignItems:"center",marginBottom:r?"16px":void 0,marginTop:n?"16px":void 0},children:[e.jsxs(Ke.Body1,{props:{color:"gray-500"},children:["Total data:"," "]}),e.jsx(Ke.Body1,{children:t||0})]}),Ko=({pagination:t,pageKey:r="page",perPageKey:n="perPage",defaultPerPage:s=10,showPagination:o=!0,totalData:i})=>{const{searchQueries:l,setSearchParams:c,searchParams:a}=qe(),d=a.get(n),h=w=>{c({...l,[r]:String(w)})},g=w=>{c({...l,[n]:w,[r]:"1"})},m=(t==null?void 0:t.rangeStart)??(((t==null?void 0:t.currentPage)||0)>1?(((t==null?void 0:t.currentPage)||0)-1)*((t==null?void 0:t.perPage)||0)+1:1),y=(t==null?void 0:t.rangeEnd)??((t==null?void 0:t.totalCurrentPage)!==(t==null?void 0:t.perPage)?t==null?void 0:t.totalData:((t==null?void 0:t.currentPage)||1)*((t==null?void 0:t.totalCurrentPage)||0));return e.jsx(x.Box,{style:{display:"flex",width:"100%",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingLeft:"16px",paddingRight:"16px",paddingTop:"8px",paddingBottom:"8px",borderTop:"1px solid var(--sa-border-subtle, #0b120e24)",flexShrink:0},children:o?e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",gap:"8px",alignItems:"center",textWrap:"nowrap"},children:[e.jsx(C.Text,{children:"Rows Per Page: "}),e.jsx(Et.Dropdown,{dropdownLists:[{label:"5",value:"5"},{label:"10",value:"10"},{label:"25",value:"25"},{label:"50",value:"50"},{label:"100",value:"100"}],onChange:w=>{g(w[0].value)},value:d?[{label:`${d} per row`,value:d}]:[{label:`${s} per row`,value:`${s}`}],defaultValue:d?[{label:`${d} per row`,value:d}]:[{label:`${s} per row`,value:`${s}`}]}),e.jsx(C.Text,{children:`${m}-${y} of ${(t==null?void 0:t.totalData)||0}`})]}),e.jsx(Wt.Pagination,{currentPage:t!=null&&t.currentPage?Number(t==null?void 0:t.currentPage):1,totalPages:t!=null&&t.totalPage?Number(t==null?void 0:t.totalPage):1,onPageChange:h})]}):e.jsx(bl,{totalData:i,withMarginBottom:!1,withMarginTop:!1})})},es=({filter:t,columnTitle:r})=>{const[n,s]=u.useState(!1),o=u.useRef(null),i=u.useRef(null),l=u.useRef(null),[c,a]=u.useState(""),[d,h]=u.useState({top:0,left:0}),g=t.selectedValues,m=u.useMemo(()=>c?t.options.filter(v=>v.label.toLowerCase().includes(c.toLowerCase())):t.options,[t.options,c]);u.useEffect(()=>{if(n&&i.current){const v=i.current.getBoundingClientRect(),R=280,L={top:v.bottom+8};t.position==="left"||v.left+R>window.innerWidth?L.right=window.innerWidth-v.right:L.left=v.left,h(L)}},[n,t.position]),u.useEffect(()=>{n&&l.current?setTimeout(()=>{var v;return(v=l.current)==null?void 0:v.focus()},50):a("")},[n]),u.useEffect(()=>{const v=R=>{o.current&&!o.current.contains(R.target)&&i.current&&!i.current.contains(R.target)&&s(!1)};return n&&document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[n]);const y=v=>{const R=g.includes(v)?g.filter(L=>L!==v):[...g,v];t.onFilterChange(R)},w=()=>t.onFilterChange([]);return e.jsxs(x.Box,{direction:"column",style:{position:"relative"},children:[e.jsx(x.Box,{ref:i,style:{display:"flex",flexDirection:"row",alignItems:"center",cursor:"pointer"},onClick:v=>{var R;v.stopPropagation(),n||(R=t.onOpen)==null||R.call(t),s(L=>!L)},children:e.jsx(B.Icon,{name:n?"ChevronUp":"ChevronDown",size:"sm",style:{color:g.length>0?"var(--sa-color-brand-500, #1a4fa0)":"var(--sa-text-subtle, #8c8f97)"}})}),n&&e.jsxs(x.Box,{ref:o,style:{position:"fixed",top:`${d.top}px`,...d.left!==void 0?{left:`${d.left}px`}:{right:`${d.right}px`},backgroundColor:"white",borderRadius:"4px",minWidth:"280px",maxHeight:"400px",display:"flex",flexDirection:"column",zIndex:9999,animation:"fadeInDropdown 0.15s ease-out",border:"1px solid var(--sa-border-subtle, #0b120e24)"},children:[e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingTop:"12px",paddingBottom:"12px",paddingLeft:"16px",paddingRight:"16px",borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)"},children:[e.jsxs(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-700",children:["Filter ",r]}),g.length>0&&e.jsx(x.Box,{direction:"column",style:{cursor:"pointer"},children:e.jsx(C.Text,{fontSize:"xs",color:"primary",fontWeight:"semibold",onClick:v=>{v.stopPropagation(),w()},children:"CLEAR"})})]}),!t.hideSearch&&e.jsx(x.Box,{direction:"column",style:{paddingLeft:"16px",paddingRight:"16px",paddingTop:"8px",paddingBottom:"8px"},children:e.jsx(ut.Input,{ref:l,placeholder:`Search ${r.toLowerCase()}...`,leftIcon:e.jsx(B.Icon,{name:"Search",size:"sm"}),value:c,onChange:v=>a(v.target.value),style:{fontSize:"14px"}})}),e.jsx(x.Box,{direction:"column",className:"ts-filter-dropdown-options",style:{overflowY:"auto",maxHeight:"250px",paddingLeft:"8px",paddingRight:"8px"},children:t.isLoadingOptions?e.jsxs(x.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(B.Icon,{name:"Loading",size:"lg",style:{color:"var(--sa-background-brand, #04254f)",animation:"spin 1s linear infinite"}}),e.jsx(C.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"Loading options..."})]}):m.length>0?e.jsx(x.Box,{direction:"column",style:{gap:"2px",paddingTop:"4px",paddingBottom:"4px"},children:m.map(v=>e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",paddingTop:"8px",paddingBottom:"8px",paddingLeft:"8px",paddingRight:"8px",cursor:"pointer",borderRadius:"8px",transition:"all 0.2s ease",backgroundColor:g.includes(v.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent"},onClick:R=>{R.stopPropagation(),y(v.value)},onMouseEnter:R=>{g.includes(v.value)||(R.currentTarget.style.backgroundColor="var(--sa-background-primary, #ffffff)"),R.currentTarget.style.transform="translateX(2px)"},onMouseLeave:R=>{R.currentTarget.style.backgroundColor=g.includes(v.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent",R.currentTarget.style.transform="translateX(0)"},children:[e.jsx(dt.Checkbox,{checked:g.includes(v.value),onChange:()=>{}}),e.jsx(C.Text,{fontSize:"sm",fontWeight:g.includes(v.value)?"medium":"normal",color:g.includes(v.value)?"primary":"gray-700",children:v.label})]},v.value))}):e.jsxs(x.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(B.Icon,{name:"Search",size:"lg",style:{color:"var(--sa-text-subtle, #8c8f97)"}}),e.jsx(C.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"No results found"})]})}),g.length>0&&e.jsx(x.Box,{direction:"column",style:{paddingTop:"8px",paddingBottom:"8px",paddingLeft:"16px",paddingRight:"16px",borderTop:"1px solid var(--sa-border-subtle, #0b120e24)",backgroundColor:"var(--sa-color-brand-50, #e6edf6)",marginTop:"auto"},children:e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"4px"},children:[e.jsx(x.Box,{direction:"column",style:{backgroundColor:"var(--sa-background-brand, #04254f)",borderRadius:"12px",padding:"2px 8px",fontSize:"11px",fontWeight:600,color:"white"},children:g.length}),e.jsxs(C.Text,{fontSize:"xs",color:"primary",fontWeight:"medium",children:["item",g.length>1?"s":""," selected"]})]})})]})]})},jl=({direction:t})=>{const r="var(--sa-text-primary, #292a2e)",n="var(--sa-text-subtle, #8c8f97)",s=t==="asc"?r:n,o=t==="desc"?r:n,i=t==="asc"?1:.45,l=t==="desc"?1:.45;return e.jsxs("span",{style:{display:"inline-flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flexShrink:0,lineHeight:0},"aria-hidden":!0,children:[e.jsx("svg",{width:"8",height:"5",viewBox:"0 0 8 5",style:{color:s,opacity:i,marginBottom:1},children:e.jsx("path",{d:"M4 0 L8 5 L0 5 Z",fill:"currentColor"})}),e.jsx("svg",{width:"8",height:"5",viewBox:"0 0 8 5",style:{color:o,opacity:l},children:e.jsx("path",{d:"M0 0 L8 0 L4 5 Z",fill:"currentColor"})})]})},vl=({frozen:t})=>e.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:t?"currentColor":"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),e.jsx("path",{d:t?"M7 11V7a5 5 0 0 1 10 0v4":"M7 11V7a5 5 0 0 1 9.9-1"})]}),zr="var(--sa-background-primary, #ffffff)",ro="var(--sa-background-primary-inverse, #f8f8f8)",ts=({columns:t,records:r,handleDetail:n,handleUpdate:s,handleDelete:o,isLoading:i,visibleHandleDelete:l,visibleHandleUpdate:c,visibleHandleDetail:a,showHeadBorder:d=!1,scrollParentRef:h,frozenCount:g=0,onFrozenCountChange:m,customActions:y,actionsOrder:w=["detail","update","delete","custom"],customEmptyState:v,enableColumnResize:R=!1,defaultColumnWidths:L,onColumnWidthsChange:M,defaultMinColumnWidth:b=60,sort:S,defaultSort:E,onSortChange:I,showActionDivider:D=!1})=>{const T=S!==void 0,[G,z]=u.useState(E??null),A=T?S??null:G,V=W=>{if(W.sortKey)return W.sortKey;if(typeof W.accessor=="string")return W.accessor},q=W=>{const Y=V(W);if(!Y)return;let U;!A||A.key!==Y?U={key:Y,direction:"asc"}:A.direction==="asc"?U={key:Y,direction:"desc"}:U=null,T||z(U),I==null||I(U)},te=[n,s,o].filter(W=>W!==void 0).length,X=!!y,$=!!n||!!s||!!o||X,N="var(--sa-border-subtle, #0b120e24)",xe=`1px solid ${N}`,de=`inset 1px 0 0 ${N}`,Be=`inset -1px 0 0 ${N}`,Ve=te===3?X?"178px":"140px":te===2?X?"140px":"102px":te===1?X?"112px":"74px":X?"74px":"",De=(W,Y)=>{if(!Y)return W;if(typeof Y=="function")return Y(W);if(typeof Y=="string")return W[Y]},[ge,pe]=u.useState(!1);u.useEffect(()=>{if(!(h!=null&&h.current))return;const W=h.current;pe(W.scrollHeight>W.clientHeight)},[r,h]);const Le=u.useRef(null),[Ne,Ae]=u.useState([]),[se,le]=u.useState(()=>L??{}),me=u.useRef(null);u.useLayoutEffect(()=>{if(!g||!Le.current){Ae([]);return}const W=Array.from(Le.current.querySelectorAll("thead tr th")),Y=[];let U=0;W.forEach((ce,Se)=>{Y[Se]=U,Se<g&&(U+=ce.offsetWidth)}),Ae(Y)},[g,t,r,se]);const je=W=>{m&&m(W<g?W:W+1)},Ee=(W,Y)=>{const U=se[W];if(U!==void 0){const ce=`${U}px`;return{width:ce,minWidth:ce,maxWidth:ce}}return Y?{width:Y}:{}},et=W=>R&&(W.resizable??!0),tt=(W,Y)=>{W.preventDefault(),W.stopPropagation();const U=W.currentTarget.closest("th");if(!U)return;const ce=Math.round(U.getBoundingClientRect().width);me.current={colIndex:Y,startX:W.clientX,startWidth:ce};const Se=document.body.style.userSelect,ye=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";const We=Ze=>{var ke;const Fe=me.current;if(!Fe)return;const ht=((ke=t[Fe.colIndex])==null?void 0:ke.minWidth)??b,ct=Math.max(ht,Fe.startWidth+(Ze.clientX-Fe.startX));le(Te=>Te[Fe.colIndex]===ct?Te:{...Te,[Fe.colIndex]:ct})},rt=()=>{document.removeEventListener("mousemove",We),document.removeEventListener("mouseup",rt),document.body.style.userSelect=Se,document.body.style.cursor=ye,me.current=null,M&&le(Ze=>(M(Ze),Ze))};document.addEventListener("mousemove",We),document.addEventListener("mouseup",rt)};return e.jsx("div",{ref:Le,children:e.jsxs(Z.Table,{fullWidth:!0,children:[e.jsx(Z.Thead,{style:{height:"40px",whiteSpace:"nowrap"},children:e.jsxs(Z.Tr,{children:[t.map((W,Y)=>{var bt,nt;const U=g>0&&Y<g,ce=Ne[Y]??0,Se=et(W),We=Y===t.length-1&&$&&D,rt=V(W),Ze=!!W.sortable&&!!rt,Fe=Ze&&(A==null?void 0:A.key)===rt?A.direction:null,ht=W.title||((bt=W.accessor)==null?void 0:bt.toString())||"",ct=(nt=W.headerTooltip)!=null&&nt.showIcon?e.jsx(B.Icon,{name:"InfoCircle",size:"xs",style:{flexShrink:0,color:"var(--sa-icon-subtle, #8c8f97)",opacity:.75}}):null,ke=e.jsx("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:ht}),Te=Ze?e.jsxs("button",{type:"button",onClick:()=>q(W),title:Fe==="asc"?"Sorted ascending — click to sort descending":Fe==="desc"?"Sorted descending — click to clear":"Click to sort ascending",style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:4,background:"none",border:"none",padding:0,margin:0,font:"inherit",color:"inherit",cursor:"pointer",textAlign:W.textAlign==="text-right"?"right":W.textAlign==="text-center"?"center":"left"},children:[ke,ct,e.jsx(jl,{direction:Fe})]}):e.jsxs("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:4},children:[ke,ct]});return e.jsxs(Z.Th,{style:{position:"sticky",top:0,left:U?ce:void 0,zIndex:U?4:2,paddingLeft:Y===0?"12px":"",borderRight:d&&!We&&!U?xe:void 0,borderBottom:d?xe:void 0,boxShadow:d&&U?Be:void 0,backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",textAlign:W.textAlign==="text-right"?"right":W.textAlign==="text-center"?"center":"left",...Ee(Y,W.width)},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4px",justifyContent:"space-between",minWidth:0},children:[W.headerTooltip?e.jsx(Me.Tooltip,{label:W.headerTooltip.content,position:"bottom",children:Te}):Te,W.filter&&e.jsx(es,{filter:W.filter,columnTitle:W.title}),m&&e.jsx("button",{onClick:()=>je(Y),title:U?"Unfreeze column":"Freeze column",style:{background:"none",border:"none",cursor:"pointer",padding:"2px",display:"flex",alignItems:"center",flexShrink:0,color:U?"var(--sa-background-brand, #04254f)":"var(--sa-text-subtle, #8c8f97)",opacity:U?1:.45,transition:"opacity 0.15s"},children:e.jsx(vl,{frozen:U})})]}),Se&&e.jsx("div",{onMouseDown:ft=>tt(ft,Y),onClick:ft=>ft.stopPropagation(),role:"separator","aria-orientation":"vertical",title:"Drag to resize",style:{position:"absolute",top:0,right:-3,width:6,height:"100%",cursor:"col-resize",userSelect:"none",zIndex:5,touchAction:"none"}})]},`table-head-${Y}`)}),$?e.jsx(Z.Th,{style:{backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",position:"sticky",top:0,right:0,zIndex:3,borderBottom:d?xe:void 0,boxShadow:d&&D?de:void 0}}):null]})}),e.jsx(Z.Tbody,{children:i?e.jsx(Z.Tr,{children:e.jsx(Z.Td,{colSpan:t.length+1,children:e.jsxs(x.Box,{direction:"column",style:{gap:"16px"},children:[e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"})]})})}):!(r!=null&&r.length)&&v?e.jsx(Z.Tr,{children:e.jsx(Z.Td,{colSpan:t.length+1,children:v})}):r==null?void 0:r.map((W,Y)=>e.jsxs(Z.Tr,{style:{transition:"background-color 0.3s ease",padding:0,borderBottom:Y===r.length-1&&ge?void 0:"1px solid var(--sa-border-subtle, #0b120e24)"},onMouseEnter:U=>{const ce=U.currentTarget;ce.style.backgroundColor=ro,Array.from(ce.querySelectorAll("td")).forEach(Se=>{Se.style.position==="sticky"&&(Se.style.backgroundColor=ro)})},onMouseLeave:U=>{const ce=U.currentTarget;ce.style.backgroundColor="",Array.from(ce.querySelectorAll("td")).forEach(Se=>{Se.style.position==="sticky"&&(Se.style.backgroundColor=zr)})},children:[t.map((U,ce)=>{const Se=U.render?U.render(W,Y,r):De(W,U.accessor),ye=g>0&&ce<g,We=Ne[ce]??0,rt=se[ce]!==void 0,Ze=ye&&ce===g-1;return e.jsx(Z.Td,{style:{position:ye?"sticky":void 0,left:ye?We:void 0,zIndex:ye?1:void 0,backgroundColor:ye?zr:void 0,transition:ye?"background-color 0.3s ease":void 0,paddingLeft:ce===0?"12px":"",whiteSpace:"nowrap",overflow:rt?"hidden":void 0,borderLeft:U.showBorderLeft?xe:void 0,borderRight:U.showBorderRight?xe:void 0,boxShadow:Ze?Be:void 0,textAlign:U.textAlign==="text-right"?"right":U.textAlign==="text-center"?"center":"left",...Ee(ce,U.width)},children:typeof Se=="string"?e.jsx(C.Text,{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textAlign:U.textAlign==="text-right"?"right":U.textAlign==="text-center"?"center":"left"},children:Se}):Se},`row-${Y}-col-${ce}`)}),$?e.jsx(Z.Td,{style:{width:Ve,position:"sticky",right:0,zIndex:1,backgroundColor:zr,boxShadow:D?de:void 0,transition:"background-color 0.3s ease"},children:e.jsx(ae.Flex,{direction:"row",align:"center",justify:"center",gap:"sm",children:w.map(U=>{const ce=Y===r.length-1?"top":"bottom";return U==="detail"&&n&&(a==null?void 0:a(W))!==!1?e.jsx(Me.Tooltip,{label:"Detail",position:ce,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>n(W.id,W),iconLeft:e.jsx(B.Icon,{name:"DocumentClean",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"detail"):U==="update"&&s&&(c==null?void 0:c(W))!==!1?e.jsx(Me.Tooltip,{label:"Update",position:ce,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>s(W),iconLeft:e.jsx(B.Icon,{name:"Edit1",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"update"):U==="delete"&&o&&(l==null?void 0:l(W))!==!1?e.jsx(Me.Tooltip,{label:"Delete",position:ce,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>o(W.id,W),iconLeft:e.jsx(B.Icon,{name:"Trash1",size:"sm",style:{color:"var(--sa-color-error-600, #c9184a)"}})})},"delete"):U==="custom"?e.jsx(u.Fragment,{children:y==null?void 0:y(W)},"custom"):null})})}):null]},`${W}${Y}`))})]})})};let no=!1;const Cl=({wrapperProps:t,dataTableProps:r,headerProps:n,footerProps:s})=>{var g;process.env.NODE_ENV!=="production"&&!no&&(no=!0,console.warn("[@starasia/admin] `TableSection` deprecated — pakai `<FilterBar>` + `<TableLayout>`. Lihat skill `starasia-list-page-pattern`. Akan dihapus di salah satu major berikutnya."));const o=u.useRef(null),[i,l]=u.useState((r==null?void 0:r.defaultFrozenCount)??0),c=(n==null?void 0:n.show)??!0,a=u.useRef(null),d=(g=r==null?void 0:r.pagination)==null?void 0:g.totalData;typeof d=="number"&&(a.current=d);const h=(s==null?void 0:s.showFooter)??(d===void 0?a.current!==0:d!==0);return e.jsxs(Xo,{...t,children:[c&&e.jsx($o,{...n}),e.jsx(x.Box,{direction:"column",ref:o,style:{flex:1,overflowY:"auto",overflowX:"auto"},children:r?e.jsx(ts,{...r,scrollParentRef:o,frozenCount:r!=null&&r.enableFreezeColumns?i:0,onFrozenCountChange:r!=null&&r.enableFreezeColumns?l:void 0}):null}),h&&e.jsx(Ko,{pagination:r==null?void 0:r.pagination,pageKey:r==null?void 0:r.pageKey,perPageKey:r==null?void 0:r.perPageKey,defaultPerPage:r==null?void 0:r.defaultPerPage,showPagination:r==null?void 0:r.showPagination,totalData:s==null?void 0:s.totalData})]})};function wl(t){return u.memo(t)}const Dl=wl(Cl),rs="(any-pointer: coarse)",Sl=t=>{if(typeof window>"u"||!window.matchMedia)return()=>{};const r=window.matchMedia(rs);return r.addEventListener("change",t),()=>r.removeEventListener("change",t)},kl=()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(rs).matches,Bl=()=>!1;function ns(){return u.useSyncExternalStore(Sl,kl,Bl)}const oo=200,$t="1px solid var(--sa-border-subtle, #0b120e24)",El=({sortDir:t,frozen:r,filterActive:n})=>t==="asc"?e.jsx(B.Icon,{name:"ChevronSmallUp"}):t==="desc"?e.jsx(B.Icon,{name:"ChevronSmallDown"}):r?e.jsx(B.Icon,{name:"LockOn",size:"xs"}):e.jsx(B.Icon,{name:"Filter",size:"xs",style:n?{color:"var(--sa-text-brand, #031f43)"}:void 0}),Kt=({icon:t,label:r,active:n,danger:s,onClick:o})=>{const i=s?"var(--sa-text-error, #a4133c)":"var(--sa-text-primary, #292a2e)";return e.jsxs("button",{type:"button",onClick:o,style:{display:"flex",alignItems:"center",gap:12,width:"100%",padding:"8px 12px",background:n?"var(--sa-background-brand-subtlest, #e6edf6)":"none",border:"none",cursor:"pointer",font:"inherit",color:i,textAlign:"left"},onMouseEnter:l=>{n||(l.currentTarget.style.background="var(--sa-background-primary-inverse, #f8f8f8)")},onMouseLeave:l=>{l.currentTarget.style.background=n?"var(--sa-background-brand-subtlest, #e6edf6)":"none"},children:[e.jsx(B.Icon,{name:t,size:"sm",style:{color:i,flexShrink:0}}),e.jsx(C.Text,{as:"span",style:{color:i},children:r})]})},Fl=t=>{let r=(t==null?void 0:t.parentElement)??null;for(;r;){const n=getComputedStyle(r).overflowX;if((n==="auto"||n==="scroll")&&r.scrollWidth>r.clientWidth)return r;r=r.parentElement}return null},os=({active:t,canSort:r,canHide:n,sortDir:s,frozen:o,onSort:i,onClearSort:l,onToggleFreeze:c,onHide:a,filterSlot:d,filterActive:h})=>{const[g,m]=u.useState(!1),y=u.useRef(null),w=u.useRef(null),[v,R]=u.useState({top:0,left:0}),L=u.useCallback(()=>{var A;const b=y.current;if(!b)return;const S=b.getBoundingClientRect(),E=b.closest(".sa-tl-scroll")??Fl(b),I=E==null?void 0:E.getBoundingClientRect();if(I&&(S.left<I.left||S.left>I.right)){m(!1);return}const D=Math.min(window.innerWidth-8,I?I.right:window.innerWidth),T=((A=w.current)==null?void 0:A.offsetWidth)||oo,G=I?I.left:8,z=Math.max(G,Math.min(S.left,D-T));R({top:S.bottom+6,left:z})},[]);u.useEffect(()=>{if(!g)return;L();const b=()=>L();return window.addEventListener("scroll",b,!0),window.addEventListener("resize",b),()=>{window.removeEventListener("scroll",b,!0),window.removeEventListener("resize",b)}},[g,L]),u.useEffect(()=>{if(!g)return;const b=S=>{w.current&&!w.current.contains(S.target)&&y.current&&!y.current.contains(S.target)&&m(!1)};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[g]);const M=b=>{b(),m(!1)};return e.jsxs(e.Fragment,{children:[e.jsx("button",{ref:y,type:"button",className:"sa-tl-menu-trigger","data-active":t||g?"true":"false",onClick:b=>{b.stopPropagation(),m(S=>!S)},title:"Column options",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:"var(--sa-radii-sm, 6px)",border:$t,background:"var(--sa-background-primary, #ffffff)",cursor:"pointer",color:"var(--sa-text-subtle, #8c8f97)",flexShrink:0},children:e.jsx(El,{sortDir:s,frozen:o,filterActive:h})}),g&&e.jsxs(x.Box,{ref:w,onClick:b=>b.stopPropagation(),style:{position:"fixed",top:`${v.top}px`,...v.left!==void 0?{left:`${v.left}px`}:{right:`${v.right}px`},minWidth:oo,backgroundColor:"var(--sa-background-primary, #ffffff)",border:$t,borderRadius:"var(--sa-radii-sm, 6px)",boxShadow:"var(--sa-shadow-xl, 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a)",zIndex:9999,padding:"4px",display:"flex",flexDirection:"column"},children:[d!=null&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{padding:"6px 12px 2px"},children:e.jsx(C.Text,{as:"span",style:{fontSize:12,fontWeight:500,color:"var(--sa-text-subtlest, #8c8f97)"},children:"Filter"})}),e.jsx("div",{style:{padding:"2px 8px 4px"},children:d}),e.jsx("div",{style:{borderTop:$t,margin:"4px 0"}})]}),r&&e.jsxs(e.Fragment,{children:[e.jsx(Kt,{icon:"ChevronUp",label:"Ascending",active:s==="asc",onClick:()=>M(()=>s==="asc"?l():i("asc"))}),e.jsx(Kt,{icon:"ChevronDown",label:"Descending",active:s==="desc",onClick:()=>M(()=>s==="desc"?l():i("desc"))}),e.jsx("div",{style:{borderTop:$t,margin:"4px 0"}})]}),e.jsx(Kt,{icon:"Pin1",label:o?"Unfreeze":"Freeze",active:o,onClick:()=>M(c)}),n&&e.jsx(Kt,{icon:"EyeClosed",label:"Hide column",danger:!0,onClick:()=>M(a)})]})]})},Il=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Ml={background:"var(--sa-background-warning-subtlest, #fef2e6)",color:"inherit",padding:0,borderRadius:2},ss=({text:t,query:r,markStyle:n})=>{const s=r==null?void 0:r.trim();if(!s||!t)return e.jsx(e.Fragment,{children:t});const o=s.split(/\s+/).filter(Boolean);if(!o.length)return e.jsx(e.Fragment,{children:t});const i=new Set(o.map(a=>a.toLowerCase())),l=new RegExp(`(${o.map(Il).join("|")})`,"gi"),c=t.split(l);return e.jsx(e.Fragment,{children:c.map((a,d)=>a&&i.has(a.toLowerCase())?e.jsx("mark",{style:{...Ml,...n},children:a},d):e.jsx(u.Fragment,{children:a},d))})},Tt="1px solid var(--sa-border-subtle, #0b120e24)",Ll="var(--sa-text-subtle, #8c8f97)",St="var(--sa-background-neutral, #f0f1f2)",so="2px 0 4px -2px var(--sa-border-subtle, #0b120e24)",Rt=40,Hr=5,Tl=28,Pr=4,er=16,Vr="var(--sa-background-brand-subtlest)",tr={display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},io="sa-table-layout-styles",Rl=()=>{if(typeof document>"u"||document.getElementById(io))return;const t=document.createElement("style");t.id=io,t.textContent=`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Dn=require("@starasia/alert"),ir=require("@starasia/avatar"),it=require("@starasia/badges"),x=require("@starasia/box"),kt=require("@starasia/breadcrumb"),H=require("@starasia/button"),Zr=require("@starasia/card"),yt=require("@starasia/date"),Oe=require("@starasia/dialog"),lr=require("@starasia/drawer"),Et=require("@starasia/dropdown"),we=require("@starasia/hooks"),Ft=require("@starasia/http"),ut=require("@starasia/input"),O=require("@starasia/menu"),Wt=require("@starasia/pagination"),At=require("@starasia/storage"),Z=require("@starasia/table"),Sn=require("@starasia/tabs"),Gr=require("@starasia/textarea"),Bt=require("@starasia/theme"),kn=require("@starasia/toast"),It=require("@starasia/toggle"),Me=require("@starasia/tooltip"),dt=require("@starasia/checkbox"),Qr=require("@starasia/radio"),C=require("@starasia/text"),B=require("@starasia/icon"),ae=require("@starasia/flex"),Bn=require("@starasia/grid"),En=require("@starasia/progress"),Fn=require("@starasia/stepper"),In=require("@starasia/accordion"),Mn=require("@starasia/story-record"),$e=require("@starasia/skeleton"),Ln=require("@starasia/progress-stepper"),e=require("react/jsx-runtime"),u=require("react"),ur=require("react-dom"),Rs=require("react-easy-crop"),Os={menus:[],menuBottom:void 0,logo:"",appName:"Workspace",userData:null,setUserData:()=>{}},tn=u.createContext(Os),rn=()=>u.useContext(tn),ho=t=>{const[r,n]=u.useState((t==null?void 0:t.initialUserData)||null);return{userData:r,setUserData:n}},fo=u.createContext({badges:{},setBadge:()=>{},setBadges:()=>{},clearBadge:()=>{}}),mo=({children:t})=>{const[r,n]=u.useState({}),s=u.useCallback(c=>{n(a=>typeof c=="function"?c(a):c)},[]),o=u.useCallback((c,a)=>{n(d=>{const h=typeof a=="function"?a(d[c]):a;return{...d,[c]:h}})},[]),i=u.useCallback(c=>{n(a=>{if(!(c in a))return a;const d={...a};return delete d[c],d})},[]),l=u.useMemo(()=>({badges:r,setBadge:o,setBadges:s,clearBadge:i}),[r,o,s,i]);return e.jsx(fo.Provider,{value:l,children:t})},go=()=>u.useContext(fo),or=(t,r)=>{const n=r!==void 0?r:t;return n==null?null:typeof n=="string"||typeof n=="number"?{value:n}:n},nn=240,on=200,sn=480,As="sa-sidebar-width",Ur=(t,r,n)=>Math.min(Math.max(t,r),n),Ws=(t,r,n,s)=>{if(typeof window>"u")return r;try{const o=window.localStorage.getItem(t);if(!o)return r;const i=parseInt(o,10);return Number.isFinite(i)?Ur(i,n,s):r}catch{return r}},Tn=(t,r)=>{if(!(typeof window>"u"))try{window.localStorage.setItem(t,String(r))}catch{}},po=u.createContext({collapsed:!1,setCollapsed:()=>{},toggle:()=>{},collapse:()=>{},expand:()=>{},width:nn,setWidth:()=>{},resetWidth:()=>{},minWidth:on,maxWidth:sn,mobileOpen:!1,setMobileOpen:()=>{},openMobile:()=>{},closeMobile:()=>{},toggleMobile:()=>{}}),yo=({children:t,defaultCollapsed:r=!1,defaultWidth:n=nn,minWidth:s=on,maxWidth:o=sn,widthStorageKey:i=As})=>{const[l,c]=u.useState(r),[a,d]=u.useState(!1),[h,g]=u.useState(()=>Ws(i,n,s,o)),m=u.useCallback(D=>{c(T=>typeof D=="function"?D(T):D)},[]),y=u.useCallback(()=>c(D=>!D),[]),w=u.useCallback(()=>c(!0),[]),v=u.useCallback(()=>c(!1),[]),R=u.useCallback(D=>{g(T=>{const G=typeof D=="function"?D(T):D,z=Ur(Math.round(G),s,o);return Tn(i,z),z})},[s,o,i]),L=u.useCallback(()=>{const D=Ur(n,s,o);Tn(i,D),g(D)},[n,s,o,i]),M=u.useCallback(D=>{d(T=>typeof D=="function"?D(T):D)},[]),b=u.useCallback(()=>d(!0),[]),S=u.useCallback(()=>d(!1),[]),E=u.useCallback(()=>d(D=>!D),[]),I=u.useMemo(()=>({collapsed:l,setCollapsed:m,toggle:y,collapse:w,expand:v,width:h,setWidth:R,resetWidth:L,minWidth:s,maxWidth:o,mobileOpen:a,setMobileOpen:M,openMobile:b,closeMobile:S,toggleMobile:E}),[l,m,y,w,v,h,R,L,s,o,a,M,b,S,E]);return e.jsx(po.Provider,{value:I,children:t})},bo=()=>u.useContext(po),jo=u.createContext(null),vo=({adapter:t,children:r})=>e.jsx(jo.Provider,{value:t,children:r}),lt=()=>{const t=u.useContext(jo);if(!t)throw new Error("[@starasia/admin] Router adapter belum dipasang. Bungkus aplikasi dengan <App routerAdapter={...} /> atau <StarasiaRouterProvider adapter={...}>. Import adapter dari '@starasia/admin/adapters/react-router' atau '@starasia/admin/adapters/tanstack'.");return t},Co=({router:t,routerAdapter:r,menus:n=[],menuBottom:s,logo:o,appName:i="Workspace",initialUserData:l,theme:c})=>{const a=ho({initialUserData:l}),{theme:d}=Bt.useTheme();return e.jsx(vo,{adapter:r,children:e.jsx(tn.Provider,{value:{logo:o,appName:i,menus:n,userData:a.userData,setUserData:a.setUserData,menuBottom:s},children:e.jsx(mo,{children:e.jsx(yo,{children:c?e.jsx(Bt.ThemeProvider,{value:c,children:t}):d?e.jsx(Bt.ThemeProvider,{value:d,children:t}):t})})})})},zs=u.memo(Co);function wo({collapsed:t=!1,children:r}){if(!r)return null;const n=typeof r=="function",s=n?r({collapsed:t}):r;return s==null||s===!1?null:e.jsx("div",{style:{position:"sticky",top:"var(--app-header-height, 4rem)",zIndex:1,borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)",paddingLeft:t?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingRight:t?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingTop:"0.5rem",paddingBottom:"0.5rem",boxSizing:"border-box"},children:n?s:e.jsx("div",{style:{opacity:t?0:1,transition:"opacity 0.3s",visibility:t?"hidden":"visible"},children:s})})}const ln=u.createContext(null);function Do({children:t}){const[r,n]=u.useState(null),[s,o]=u.useState(null),[i,l]=u.useState(null),[c,a]=u.useState(0),d=u.useCallback(()=>(a(h=>h+1),()=>a(h=>h-1)),[]);return e.jsx(ln.Provider,{value:{prependNode:r,appendNode:s,replaceNode:i,setPrependNode:n,setAppendNode:o,setReplaceNode:l,replaceCount:c,registerReplace:d},children:t})}function So({children:t}){const r=u.useContext(ln);return r?e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:r.setPrependNode,style:{display:"contents"}}),r.replaceCount>0?e.jsx("div",{ref:r.setReplaceNode,style:{display:"contents"}}):t,e.jsx("div",{ref:r.setAppendNode,style:{display:"contents"}})]}):e.jsx(e.Fragment,{children:t})}function Hs({children:t,mode:r="append"}){const n=u.useContext(ln);if(u.useEffect(()=>{if(!(r!=="replace"||!n))return n.registerReplace()},[r,n]),!n)return process.env.NODE_ENV!=="production"&&console.warn("[HeaderLeftSlot] used outside AppLayout — content not rendered"),null;const s=r==="prepend"?n.prependNode:r==="replace"?n.replaceNode:n.appendNode;return s?ur.createPortal(t,s):null}const cn=u.createContext(null);function ko({children:t}){const[r,n]=u.useState({}),[s,o]=u.useState({}),i=u.useCallback((a,d)=>{n(h=>h[a]===d?h:{...h,[a]:d})},[]),l=u.useCallback(a=>(o(d=>({...d,[a]:(d[a]??0)+1})),()=>o(d=>({...d,[a]:Math.max(0,(d[a]??0)-1)}))),[]),c=u.useMemo(()=>({outletNodes:r,setOutletNode:i,slotCounts:s,registerSlot:l}),[r,i,s,l]);return e.jsx(cn.Provider,{value:c,children:t})}function Jr({slotKey:t,fallback:r}){const n=u.useContext(cn),s=n?(n.slotCounts[t]??0)>0:!1,o=u.useRef(n==null?void 0:n.setOutletNode);o.current=n==null?void 0:n.setOutletNode;const i=u.useCallback(l=>{var c;return(c=o.current)==null?void 0:c.call(o,t,l)},[t]);return e.jsx(e.Fragment,{children:s?e.jsx("div",{ref:i,style:{display:"contents"}}):r})}function Ps({slotKey:t,children:r}){const n=u.useContext(cn),s=u.useRef(n==null?void 0:n.registerSlot);if(s.current=n==null?void 0:n.registerSlot,u.useEffect(()=>{var i;return(i=s.current)==null?void 0:i.call(s,t)},[t]),!n)return process.env.NODE_ENV!=="production"&&console.warn("[SidebarGroupSlot] used outside AppLayout — content not rendered"),null;const o=n.outletNodes[t];return o?ur.createPortal(r,o):null}const cr="moduleSwitcherGroupId",Yr="sa-module-switcher-change";function Rn(){if(typeof window>"u")return null;const t=window.localStorage.getItem(cr);if(t===null)return null;const r=Number(t);return Number.isFinite(r)?r:null}function Bo(t){typeof window>"u"||(t===null?window.localStorage.removeItem(cr):window.localStorage.setItem(cr,String(t)),window.dispatchEvent(new CustomEvent(Yr,{detail:t})))}function Vs(){Bo(null)}function an(){const[t,r]=u.useState(()=>Rn());return u.useEffect(()=>{const s=()=>{r(Rn())},o=i=>{i.key===cr&&s()};return window.addEventListener(Yr,s),window.addEventListener("storage",o),()=>{window.removeEventListener(Yr,s),window.removeEventListener("storage",o)}},[]),{selectedGroupId:t,setSelectedGroupId:s=>{Bo(s),r(s)}}}const Ns="4.5rem",_s="var(--app-header-height, 4rem)",Eo=t=>t?Ns:_s;function On({icon:t,label:r,tooltip:n=r,active:s=!1,badge:o,showLabel:i=!0,onClick:l}){const[c,a]=u.useState(!1);return e.jsx(Me.Tooltip,{fluid:!0,label:n,position:"right",children:e.jsxs(x.Box,{as:"button",onClick:l,onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),"aria-label":n,"aria-current":s?"page":void 0,fullWidth:!0,direction:"column",align:"center",gap:"spacing-2",paddingBlock:"xs",style:{color:s?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)"},children:[e.jsxs(x.Box,{position:"relative",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",borderRadius:s?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:s?"white":c?"neutral":void 0,style:{borderColor:s?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:t,size:"sm"}),o&&!i&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",top:"top-n2",right:"right-n2",display:"inline-flex",borderRadius:"rounded-full",style:{boxShadow:"0 0 0 1px var(--sa-background-primary, #ffffff)"},children:e.jsx(it.BadgeDot,{tone:"error",variant:"solid",size:"xs"})}),o&&i&&e.jsx(x.Box,{position:"absolute",display:"inline-flex",style:{top:"-0.375rem",left:"1.5rem"},children:e.jsx(it.Badge,{text:String(o.value),variant:o.variant??"info",size:"xs",border:!0})})]}),i&&e.jsx(C.Text,{as:"span",fontSize:"xs",fontWeight:s?"medium":"normal",textAlign:"center",truncate:!0,style:{display:"block",maxWidth:"100%",color:"inherit"},children:r})]})})}function qs({items:t,bottomItems:r,activeKey:n,onSelect:s,onAction:o,logo:i,panelCollapsed:l,onExpandPanel:c,showLabels:a=!0}){const[d,h]=u.useState(!1),g=l&&d;return e.jsxs(x.Box,{as:"nav","aria-label":"Primary navigation",bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:"0",style:{width:Eo(a),height:"100%"},children:[e.jsxs(x.Box,{onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),position:"relative",align:"center",justify:"center",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",flexShrink:"0",style:{height:"var(--app-header-height, 4rem)"},children:[e.jsx("img",{src:i,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",transition:"opacity 0.2s",opacity:g?0:1}}),l&&e.jsx(x.Box,{as:"button",onClick:c,"aria-label":"Expand sidebar",position:"absolute",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-sm",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:"var(--sa-text-primary, #292a2e)",opacity:g?1:0,pointerEvents:g?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})})]}),e.jsx(x.Box,{flex:"1",overflow:"overflow-y-auto",paddingBlock:"md",paddingInline:"xs",gap:"xs",children:t.map(m=>e.jsx(On,{icon:m.icon,label:m.label,tooltip:m.tooltip,badge:m.badge,showLabel:a,active:m.key===n,onClick:()=>s(m.key)},m.key))}),r&&r.length>0&&e.jsx(x.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:"xs",gap:"xs",flexShrink:"0",children:r.map(m=>e.jsx(On,{icon:m.icon,label:m.label,tooltip:m.tooltip,badge:m.badge,showLabel:a,onClick:()=>o(m)},m.key))})]})}function Zs({items:t,activeKey:r,onSelect:n}){return e.jsx(x.Box,{role:"tablist","aria-label":"Primary navigation",direction:"row",gap:"xs",paddingInline:"md",paddingBlock:"sm",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",flexShrink:"0",style:{overflowX:"auto",scrollbarWidth:"none"},children:t.map(s=>{const o=s.key===r;return e.jsxs(x.Box,{as:"button",role:"tab","aria-selected":o,onClick:()=>n(s.key),direction:"row",align:"center",gap:"spacing-4",paddingInline:"sm",height:"height-32",flexShrink:"0",borderRadius:o?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:o?"white":void 0,hover:o?void 0:{bg:"neutral"},style:{whiteSpace:"nowrap",color:o?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:o?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:s.icon,size:"sm"}),e.jsx(C.Text,{as:"span",fontSize:"sm",fontWeight:o?"medium":"normal",style:{color:"inherit"},children:s.label})]},s.key)})})}const Ir=(t,r)=>!t.groupIds||t.groupIds.includes(r.id)||r.parentGroupId!==void 0&&t.groupIds.includes(r.parentGroupId);let Yt=0,Ct=!1,An=new Set;const Wn=new Set;function Gs(t,r){const[n,s]=u.useState(!1),o=u.useRef(null),i=u.useRef(null);return u.useLayoutEffect(()=>{const l=o.current;if(!l)return;let c=0;const a=()=>{c=0;const h=i.current;if(!h)return;const g=h.scrollWidth>l.clientWidth;s(m=>m===g?m:g)},d=new ResizeObserver(()=>{c||(c=requestAnimationFrame(a))});return d.observe(l),a(),()=>{c&&cancelAnimationFrame(c),d.disconnect()}},[t,r]),{containerRef:o,textRef:i,truncated:n}}function zn({text:t,textStyle:r,active:n=!1}){const{containerRef:s,textRef:o,truncated:i}=Gs(t,n),l=e.jsx(C.Text,{ref:o,as:"span",fontSize:"md",fontWeight:n?"medium":"normal",truncate:!0,style:{display:"block",...r},children:t});return e.jsx(x.Box,{ref:s,display:"block",style:{flex:1,minWidth:0},children:i?e.jsx(Me.Tooltip,{fluid:!0,label:t,position:"top",children:l}):l})}const Qs=200,Xr="var(--app-header-height, 4rem)",Hn="44px",Mr=`calc((${Xr} - 2rem) / 2)`,Pn=16;function Us({children:t,headerLeftSlot:r,profile:n,isLoadingProfile:s,onLogout:o,isLoggingOut:i,loadingComponent:l,sidebarHeaderContent:c,headerActions:a,profileRole:d,profileMenuButtons:h,profileMenuItems:g,logoutButton:m,resizableSidebar:y=!0,rail:w}){var Zt,pt;const{useSearchParams:v,useNavigate:R,useLocation:L,Outlet:M}=lt(),[b]=v(),S=b.get("embed")==="true",E=rn(),{badges:I}=go(),D=R(),T=L(),z=!we.useMediaQuery("md"),[A,V]=u.useState(!1),{collapsed:q,setCollapsed:Q,width:te,setWidth:X,resetWidth:$,minWidth:N,maxWidth:xe,mobileOpen:de,setMobileOpen:Be}=bo(),[Ve,De]=u.useState(!1),[ge,pe]=u.useState(()=>new Set(An)),[Le,Ne]=u.useState(null),{selectedGroupId:Ae,setSelectedGroupId:se}=an(),le=!!(w&&w.items.length>0),me=q&&!z&&!le,je=q&&!z&≤u.useEffect(()=>{An=ge},[ge]);const Ee=u.useRef(null),et=u.useRef(null),tt=u.useRef(null),[W,Y]=u.useState(!1),[U,ce]=u.useState(null),Se=y&&!z&&!q,ye=k=>Math.min(Math.max(k,N),xe),We=U??te,rt=k=>{var Ge,He,Je;if(!Se)return;k.preventDefault();const P=k.clientX,J=((Ge=tt.current)==null?void 0:Ge.getBoundingClientRect().width)??te;(Je=(He=k.currentTarget).setPointerCapture)==null||Je.call(He,k.pointerId),Y(!0),document.body.style.userSelect="none",document.body.style.cursor="col-resize";let ue=0,he=J;const Ie=_e=>{he=J+(_e.clientX-P),ue||(ue=requestAnimationFrame(()=>{ue=0,ce(ye(he))}))},ie=()=>{ue&&cancelAnimationFrame(ue),window.removeEventListener("pointermove",Ie),window.removeEventListener("pointerup",ie),document.body.style.userSelect="",document.body.style.cursor="",ce(null),Y(!1),he<Qs?Q(!0):X(ye(he))};window.addEventListener("pointermove",Ie),window.addEventListener("pointerup",ie)},Ze=k=>{Se&&(k.key==="ArrowLeft"?(k.preventDefault(),X(P=>P-Pn)):k.key==="ArrowRight"?(k.preventDefault(),X(P=>P+Pn)):k.key==="Home"?(k.preventDefault(),X(N)):k.key==="End"&&(k.preventDefault(),X(xe)))};u.useEffect(()=>{const k=Ee.current;if(!k)return;const P=()=>{Ct||(Yt=k.scrollTop)};return k.addEventListener("scroll",P),()=>k.removeEventListener("scroll",P)},[]);const Fe=()=>{const k=Ee.current;k&&Yt>0&&(Ct=!0,k.scrollTop=Yt,requestAnimationFrame(()=>{Ct=!1}))};u.useLayoutEffect(()=>{Ct=!0,Fe();const k=setTimeout(()=>{Ct=!1},300);return()=>clearTimeout(k)},[]),u.useLayoutEffect(()=>{E.menus.length>0&&(Yt>0?Fe():requestAnimationFrame(()=>{var P;const k=(P=Ee.current)==null?void 0:P.querySelector("[data-menu-active='true']");k&&k.scrollIntoView({block:"center",behavior:"instant"})}))},[E.menus]),u.useEffect(()=>{Ct=!0,Fe();const k=setTimeout(Fe,0),P=setTimeout(Fe,50),J=setTimeout(Fe,100),ue=setTimeout(Fe,200),he=setTimeout(()=>{Ct=!1},300),Ie=setTimeout(()=>{const ie=Ee.current,Ge=ie==null?void 0:ie.querySelector("[data-menu-active='true']");if(ie&&Ge){const He=ie.getBoundingClientRect(),Je=Ge.getBoundingClientRect();Je.top>=He.top&&Je.bottom<=He.bottom||Ge.scrollIntoView({block:"center",behavior:"smooth"})}},250);return()=>{clearTimeout(k),clearTimeout(P),clearTimeout(J),clearTimeout(ue),clearTimeout(he),clearTimeout(Ie)}},[T.pathname]),u.useEffect(()=>{et.current&&(et.current.scrollTop=0)},[T.pathname]),u.useEffect(()=>{z&&Be(!1)},[T.pathname,z]),u.useEffect(()=>{z&&Q(!0)},[z]),u.useEffect(()=>{const k=document.documentElement;return k.style.setProperty("--app-header-height",Hn),()=>{k.style.removeProperty("--app-header-height")}},[]);const ht=()=>{V(!0)},ct=()=>{V(!1)},ke=()=>{V(!1),o()},Te=k=>{const P=k.slotKey?[]:[k.to];return k.children&&P.push(...k.children.map(J=>J.to)),P},bt=[...E.menus.flatMap(k=>k.items.flatMap(Te)),...((Zt=E.menuBottom)==null?void 0:Zt.flatMap(Te))??[]],nt=k=>{if(!T.pathname.startsWith(k))return!1;const P=bt.filter(J=>T.pathname.startsWith(J)).sort((J,ue)=>ue.length-J.length)[0];return k===P},ft=u.useRef(w);ft.current=w;const mt=k=>{const P=ft.current;if(!P||P.items.length===0)return null;const J=P.defaultKey??P.items[0].key,ue=P.items.find(ie=>ie.key===k),he=E.menus.find(ie=>ie.items.some(Ge=>Te(Ge).some(nt)));if(!he)return ue?ue.key:J;if(ue&&Ir(ue,he))return ue.key;const Ie=P.items.find(ie=>ie.groupIds&&Ir(ie,he))??P.items.find(ie=>!ie.groupIds);return(Ie==null?void 0:Ie.key)??(ue==null?void 0:ue.key)??J},[gt,ze]=u.useState(()=>mt(null));u.useEffect(()=>{ze(k=>mt(k))},[T.pathname,E.menus]);const Ue=le?w.items.find(k=>k.key===gt)??w.items[0]:void 0,_t=k=>{ze(k),je&&Q(!1)},qt=k=>{k.onClick?k.onClick():k.to&&D(k.to)};u.useEffect(()=>{var P;const k=J=>{var he;const ue=J.defaultExpanded&&!Wn.has(J.id);ue&&Wn.add(J.id),(ue||(he=J.children)!=null&&he.some(Ie=>T.pathname.startsWith(Ie.to)))&&pe(Ie=>{const ie=new Set(Ie);return ie.add(J.id),ie})};E.menus.forEach(J=>{J.items.forEach(k)}),(P=E.menuBottom)==null||P.forEach(k)},[T.pathname,E.menus,E.menuBottom]);const br=k=>{pe(P=>{const J=new Set(P);return J.has(k)?J.delete(k):J.add(k),J})};u.useEffect(()=>{E.menus.length!==0&&Ae!==null&&!E.menus.some(k=>k.id===Ae)&&se(null)},[E.menus,Ae,se]);const jr=u.useMemo(()=>{if(Ue!=null&&Ue.groupIds)return E.menus.filter(he=>Ir(Ue,he));const k=E.menus,P=le?null:Ae;if(P!==null)return k.filter(he=>he.id===P||he.parentGroupId===P);const J=k.filter(he=>he.parentGroupId===void 0),ue=k.filter(he=>he.parentGroupId!==void 0).flatMap(he=>he.items);return ue.length===0?J:[...J,{id:18,name:"Pengaturan",items:ue,parentGroupId:void 0}]},[E.menus,Ae,Ue,le]);if(S)return e.jsx(x.Box,{as:"main",overflow:"overflow-y-auto",bg:"surface-inverse",style:{height:"100vh"},children:t||e.jsx(M,{})});const jt=k=>{const P=k.children&&k.children.length>0,J=!!k.slotKey,ue=P||J,he=ge.has(k.id),Ie=P?k.children.some(He=>nt(He.to)):J?!1:nt(k.to),ie=or(k.badge,I[k.id]),Ge=!!ie&&me;return e.jsxs(x.Box,{display:"block","data-menu-active":Ie||void 0,children:[e.jsxs(x.Box,{as:"button",onClick:He=>{if(J&&me)D(k.to);else if(ue)if(me){const Je=He.currentTarget.getBoundingClientRect();Ne({item:k,top:Je.top,left:Je.right+8})}else br(k.id);else D(k.to)},fullWidth:!0,direction:"row",align:"center",justify:me?"center":void 0,gap:"sm",paddingInline:me?void 0:"sm",paddingBlock:"xs",height:"height-32",borderRadius:Ie?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:Ie?"white":void 0,hover:Ie?void 0:{bg:"neutral"},title:me?k.title:void 0,style:{textAlign:"left",color:Ie?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:Ie?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsxs(x.Box,{position:"relative",display:"inline-flex",flexShrink:"0",style:{alignItems:"center"},children:[e.jsx(B.Icon,{name:k.icon,size:"sm",style:{flexShrink:0}}),Ge&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",top:"top-n2",right:"right-n2",display:"inline-flex",borderRadius:"rounded-full",style:{boxShadow:"0 0 0 1px var(--sa-background-primary, #ffffff)"},children:e.jsx(it.BadgeDot,{tone:"error",variant:"solid",size:"xs"})})]}),!me&&e.jsxs(e.Fragment,{children:[e.jsx(zn,{text:k.title,active:Ie,textStyle:{transition:"opacity 0.3s"}}),ie&&e.jsx(it.Badge,{text:String(ie.value),variant:ie.variant??"info",size:"xs",border:!0}),ue&&e.jsx(B.Icon,{name:"ChevronDown",size:"sm",style:{flexShrink:0,transition:"transform 0.2s",transform:he?"rotate(180deg)":"rotate(0deg)"}})]})]}),ue&&!me&&(()=>{const He=k.children??[],Je=J?-1:He.findIndex(Xe=>nt(Xe.to)),_e=He.map(Xe=>{const vt=or(Xe.badge,I[Xe.id]),at=nt(Xe.to);return e.jsxs(x.Box,{as:"button",onClick:()=>D(Xe.to),fullWidth:!0,direction:"row",align:"center",gap:"sm",paddingLeft:"sm",paddingRight:"sm",paddingBlock:"xs",height:"height-32",borderRadius:at?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:at?"white":void 0,hover:at?void 0:{bg:"neutral"},style:{textAlign:"left",color:at?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:at?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:Xe.icon,size:"sm",style:{flexShrink:0}}),e.jsx(zn,{text:Xe.title,active:at}),vt&&e.jsx(it.Badge,{text:String(vt.value),variant:vt.variant??"info",size:"xs",border:!0})]},Xe.id)});return e.jsxs(x.Box,{position:"relative",overflow:"overflow-hidden",style:{marginLeft:"1rem",paddingLeft:"0.75rem",transition:"all 0.3s ease-in-out",maxHeight:he?J?"none":`${He.length*36}px`:"0px",opacity:he?1:0,marginTop:he?"0.25rem":"0px"},children:[e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",left:"left-0",top:"top-0",fullHeight:!0,style:{width:"1.5px",backgroundColor:"var(--sa-border-subtle, #0b120e24)",pointerEvents:"none"}}),Je>=0&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",left:"left-0",height:"height-32",zIndex:"10",style:{top:`${Je*32}px`,width:"1.5px",backgroundColor:"var(--sa-text-primary, #292a2e)",transition:"top 0.2s ease-in-out",pointerEvents:"none"}}),J?e.jsx(Jr,{slotKey:k.slotKey,fallback:_e}):_e]})})()]},k.id)};return e.jsx(ko,{children:e.jsxs(Do,{children:[e.jsxs(x.Box,{direction:"row",position:"relative",style:{height:"100vh","--app-header-height":Hn,"--app-sidebar-width":z?"0px":le?`calc(${Eo(w.showLabels??!0)} + ${je?"0px":`${We}px`})`:q?Xr:`${We}px`,"--app-footer-zindex":z&&de?"40":"998"},children:[z&&e.jsx(x.Box,{position:"fixed",zIndex:"40",bg:"black-alpha-a50",style:{inset:0,opacity:de?.5:0,pointerEvents:de?"auto":"none",transition:"opacity 0.3s"},onClick:()=>Be(!1)}),le&&!z&&e.jsx(qs,{items:w.items,bottomItems:w.bottomItems,activeKey:Ue.key,onSelect:_t,onAction:qt,logo:E.logo,panelCollapsed:je,onExpandPanel:()=>Q(!1),showLabels:w.showLabels??!0}),e.jsxs(x.Box,{as:"aside",ref:tt,"aria-hidden":je||void 0,bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:z?void 0:"0",style:{width:z?"16.375rem":je?"0px":q?Xr:`${We}px`,...je&&{borderRightWidth:0,overflow:"hidden",visibility:"hidden"},position:z?"fixed":"relative",...z&&{inset:0,zIndex:50,transform:de?"translateX(0)":"translateX(-100%)"},transition:W?"none":"all 0.3s ease-in-out",minWidth:0},children:[e.jsx(x.Box,{onMouseEnter:()=>De(!0),onMouseLeave:()=>De(!1),direction:"row",align:"center",justify:"space-between",paddingInline:me?void 0:"lg",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",position:"relative",style:{height:"var(--app-header-height, 4rem)",...me?{paddingInline:Mr}:null},children:(()=>{const k=le&&!z,P=!z&&q&&!de&&!le,J=P&&Ve;return e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",flex:P?"1":void 0,justify:P?"center":void 0,style:{transition:"opacity 0.2s",opacity:J?0:1,pointerEvents:J?"none":"auto"},children:[!k&&e.jsx("img",{src:E.logo,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",flexShrink:0}}),(!q||de)&&e.jsx(C.Text,{as:"span",fontSize:"md",fontWeight:"semibold",color:"primary",truncate:!0,style:{transition:"opacity 0.3s"},children:k?(Ue==null?void 0:Ue.label)??E.appName:E.appName})]}),!z&&!q&&e.jsx(x.Box,{as:"button",onClick:()=>Q(!0),"aria-label":"Collapse sidebar",display:"inline-flex",align:"center",justify:"center",flexShrink:"0",style:{color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})}),P&&e.jsx(x.Box,{as:"button",onClick:()=>Q(!1),"aria-label":"Expand sidebar",position:"absolute",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-sm",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:"var(--sa-text-primary, #292a2e)",opacity:J?1:0,pointerEvents:J?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})}),z&&e.jsx(x.Box,{as:"button",onClick:()=>Be(!1),"aria-label":"Close menu",align:"center",justify:"center",borderRadius:"rounded-md",style:{padding:"0.375rem",color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"Cross",size:"md"})})]})})()}),c&&e.jsx(wo,{collapsed:z||le?!1:q,children:c}),le&&z&&e.jsx(Zs,{items:w.items,activeKey:Ue.key,onSelect:_t}),e.jsx(x.Box,{ref:Ee,flex:"1",overflow:"overflow-y-auto",paddingBlock:"lg",children:jr.map(k=>e.jsxs(x.Box,{marginBottom:"lg",children:[me?k.name&&e.jsx(x.Box,{"aria-label":k.name,direction:"row",align:"center",justify:"center",paddingBlock:"md",children:e.jsx(x.Box,{width:"width-16",style:{height:"2px",borderRadius:"1px",backgroundColor:k.color??"var(--sa-background-brand, #04254f)"}})}):k.name&&e.jsx(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"subtlest",textTransform:"uppercase",truncate:!0,style:{letterSpacing:"0.06em",paddingLeft:"1.25rem",paddingRight:"0.75rem",paddingBottom:"0.25rem",transition:"opacity 0.3s"},children:k.name}),e.jsx(x.Box,{paddingInline:me?void 0:"md",gap:"xs",style:me?{paddingInline:Mr}:void 0,children:k.slotKey?e.jsx(Jr,{slotKey:k.slotKey,fallback:k.items.map(P=>jt(P))}):k.items.map(P=>jt(P))})]},k.id))}),E.menuBottom&&E.menuBottom.length>0&&e.jsx(x.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:me?void 0:"md",bg:"surface-inverse",gap:"xs",flexShrink:"0",style:me?{paddingInline:Mr}:void 0,children:E.menuBottom.map(k=>jt(k))}),Se&&e.jsx(x.Box,{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar","aria-valuenow":te,"aria-valuemin":N,"aria-valuemax":xe,tabIndex:0,onPointerDown:rt,onKeyDown:Ze,onDoubleClick:$,title:"Drag to resize · double-click to reset",position:"absolute",top:"top-0",right:"right-0",fullHeight:!0,style:{width:"6px",transform:"translateX(50%)",cursor:"col-resize",zIndex:5,touchAction:"none",background:W?"var(--sa-background-brand, #04254f)":"transparent",transition:"background 0.15s"},onMouseEnter:k=>{W||(k.currentTarget.style.background="var(--sa-border-bold, #0b120e40)")},onMouseLeave:k=>{W||(k.currentTarget.style.background="transparent")}})]}),e.jsxs(x.Box,{flex:"1",overflow:"overflow-hidden",children:[e.jsxs(x.Box,{as:"header",bg:"white",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",direction:"row",align:"center",justify:"space-between",paddingInline:"lg",flexShrink:"0",style:{height:"var(--app-header-height, 4rem)"},children:[e.jsxs(x.Box,{direction:"row",align:"center",gap:z?"lg":void 0,children:[z&&e.jsx(x.Box,{as:"button",onClick:()=>Be(!0),align:"center",justify:"center",borderRadius:"rounded-md",style:{padding:"0.375rem",color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"MenuBurger",size:"lg"})}),e.jsx(So,{children:r})]}),e.jsxs(x.Box,{direction:"row",align:"center",gap:"md",children:[a,e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",cursor:"pointer",children:[!z&&e.jsxs(x.Box,{display:"block",textAlign:"right",customMaxWidth:"12.5rem",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",textAlign:"right",truncate:!0,lineHeight:"leading-none",children:s?"Loading...":(n==null?void 0:n.name)||"unknown"}),e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"right",truncate:!0,children:s?"":(n==null?void 0:n.email)||"unknown"})]}),e.jsx(ir.Avatar,{size:"sm",initials:((n==null?void 0:n.name)||"U")[0].toUpperCase(),bg:"var(--sa-background-brand, #04254f)",color:"var(--sa-background-primary, #ffffff)"}),e.jsx(B.Icon,{name:"ChevronDown",size:"xs",color:"subtle"})]})}),e.jsxs(O.MenuLists,{width:280,style:{paddingBlock:"12px",paddingInline:"12px",gap:"8px",marginTop:"16px"},children:[e.jsx(O.MenuHeading,{children:e.jsxs(x.Box,{align:"center",textAlign:"center",paddingBlock:"sm",fullWidth:!0,children:[e.jsx(ir.Avatar,{customSize:64,initials:((n==null?void 0:n.name)||"U")[0].toUpperCase(),bg:"var(--sa-background-brand, #04254f)",color:"var(--sa-background-primary, #ffffff)",style:{fontSize:"1.25rem",marginBottom:"0.75rem",boxShadow:"var(--sa-shadow-sm, 0 1px 2px 0 #0000000d)"}}),e.jsx(C.Text,{fontSize:"md",fontWeight:"semibold",color:"primary",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(n==null?void 0:n.name)||"unknown"}),e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(n==null?void 0:n.email)||"unknown"}),d&&e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:d})]})}),(h&&h.length>0||g)&&e.jsxs(O.MenuBody,{children:[h==null?void 0:h.map((k,P)=>e.jsx(O.MenuItem,{onClick:k.onClick,startIcon:e.jsx(B.Icon,{name:k.icon,size:"md"}),children:k.label},`${k.label}-${P}`)),g]}),m??e.jsx(O.MenuFooter,{children:e.jsx(O.MenuItem,{intent:"danger",onClick:ht,startIcon:e.jsx(B.Icon,{name:"Logout",size:"md"}),children:"Logout"})})]})]})]})]}),e.jsx(x.Box,{as:"main",ref:et,flex:"1",overflow:"overflow-y-auto",children:t||e.jsx(M,{})})]})]}),i&&l&&e.jsx(x.Box,{position:"fixed",align:"center",justify:"center",bg:"black-alpha-a70",style:{inset:0,zIndex:9999},children:l}),e.jsxs(Oe.Dialog,{isShow:A,onHide:ct,children:[e.jsx(Oe.DialogTitle,{children:"Confirmation Logout"}),e.jsx(Oe.DialogBody,{children:"Are you sure you want to end the session and exit the page?"}),e.jsx(Oe.DialogFooter,{children:e.jsx(x.Box,{direction:"column",display:"flex",align:"flex-end",justify:"center",children:e.jsxs(ae.Flex,{direction:"row",gap:"sm",align:"center",children:[e.jsx(x.Box,{direction:"column",children:e.jsx(H.Button,{secondary:!0,onClick:ct,children:"Cancel"})}),e.jsx(x.Box,{direction:"column",children:e.jsx(H.Button,{primary:!0,onClick:ke,children:"Yes, Sure"})})]})})})]}),Le&&e.jsxs(e.Fragment,{children:[e.jsx(x.Box,{onClick:()=>Ne(null),position:"fixed",style:{inset:0,zIndex:60}}),e.jsxs(x.Box,{role:"dialog","aria-label":Le.item.title,position:"fixed",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-md",shadow:"shadow-lg",padding:"sm",gap:"spacing-2",style:{top:Le.top,left:Le.left,zIndex:61,minWidth:"13rem",maxWidth:"16rem"},children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-500",textTransform:"uppercase",style:{padding:"0.25rem 0.5rem 0.5rem",letterSpacing:"0.05em"},children:Le.item.title}),(pt=Le.item.children)==null?void 0:pt.map(k=>{const P=nt(k.to),J=or(k.badge,I[k.id]);return e.jsxs(x.Box,{as:"button",onClick:()=>{D(k.to),Ne(null)},fullWidth:!0,direction:"row",align:"center",gap:"md",paddingBlock:"sm",paddingInline:"md",borderRadius:"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:P?"primary-inverse":void 0,hover:P?void 0:{bg:"primary-inverse"},style:{textAlign:"left",borderColor:"transparent",color:P?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)"},children:[k.icon&&e.jsx(B.Icon,{name:k.icon,size:"sm",style:{flexShrink:0}}),e.jsx(C.Text,{as:"span",fontSize:"md",fontWeight:P?"medium":"normal",whiteSpace:"nowrap",style:{flex:1},children:k.title}),J&&e.jsx(it.Badge,{text:String(J.value),variant:J.variant??"info",size:"xs",border:!0})]},k.id)})]})]})]})})}const Pt=u.forwardRef(({children:t,...r},n)=>e.jsx(x.Box,{ref:n,role:"button",cursor:"pointer","aria-pressed":"true",display:"inline-block",tabIndex:0,...r,children:t})),Vn=({title:t,iconName:r,textColor:n,iconColor:s,hoverTextColor:o,hoverIconColor:i})=>{const[l,c]=u.useState(!1),a=s??"var(--sa-text-subtle, #8c8f97)",d=n??"var(--sa-text-subtle, #8c8f97)",h=i??"var(--sa-text-subtle, #8c8f97)",g=o??"var(--sa-text-primary, #292a2e)";return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),style:{cursor:"pointer"},children:[e.jsx(B.Icon,{name:r||"ChevronLeft",size:"xs",style:{color:l?h:a,transition:"color 0.15s ease"}}),e.jsx(C.Text,{variant:"sub-h3",style:{color:l?g:d,transition:"color 0.15s ease"},children:t||"Back"})]})},Js=({items:t,separator:r="/",iconName:n,iconColor:s,hoverIconColor:o})=>{const{Link:i}=lt(),[l,c]=u.useState(!1),a=s??"var(--sa-text-subtle, #8c8f97)",d=o??"var(--sa-text-subtle, #8c8f97)",h=t.length>1?t[0]:void 0,g=!!(h!=null&&h.to||h!=null&&h.onClick),m=e.jsx(B.Icon,{name:n||"ChevronLeft",size:"xs",onMouseEnter:g?()=>c(!0):void 0,onMouseLeave:g?()=>c(!1):void 0,style:{color:g&&l?d:a,transition:"color 0.15s ease",cursor:g?"pointer":void 0}}),y=h!=null&&h.to?e.jsx(i,{to:h.to,replace:!0,style:{textDecoration:"none"},children:m}):h!=null&&h.onClick?e.jsx(Pt,{onClick:h.onClick,children:m}):m;return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",children:[y,e.jsx(kt.Breadcrumb,{separator:r,size:"md",children:t.map((w,v)=>{const R=v===t.length-1;return w.to&&!R?e.jsx(kt.BreadcrumbItem,{children:e.jsx(i,{to:w.to,children:w.label})},v):e.jsx(kt.BreadcrumbItem,{currentPage:R,children:e.jsx(kt.BreadcrumbLink,{onClick:R?void 0:w.onClick,children:w.label})},v)})})]})},Ys=t=>{const{Link:r}=lt(),{items:n,separator:s,onClick:o,navigateTo:i,...l}=t;return n&&n.length>0?e.jsx(Js,{items:n,separator:s,iconName:l.iconName,iconColor:l.iconColor,hoverIconColor:l.hoverIconColor}):i?e.jsx(x.Box,{direction:"row",children:e.jsx(r,{to:i,replace:!0,style:{textDecoration:"none"},children:e.jsx(Vn,{...l})})}):e.jsx(x.Box,{direction:"row",children:e.jsx(Pt,{onClick:o,children:e.jsx(Vn,{...l})})})},Lr=[{icon:"var(--sa-color-brand-400, #3366b7)",activeBg:"var(--sa-color-brand-50, #e6edf6)",activeBorder:"var(--sa-color-brand-300, #668cc9)",activeShadow:"rgba(51, 102, 183, 0.25)"},{icon:"var(--sa-color-warning-400, #ed9f30)",activeBg:"var(--sa-color-warning-50, #fef2e6)",activeBorder:"var(--sa-color-warning-300, #f1b259)",activeShadow:"rgba(237, 159, 48, 0.25)"},{icon:"var(--sa-color-secondary-300, #5468e1)",activeBg:"var(--sa-color-secondary-50, #e6e9fb)",activeBorder:"var(--sa-color-secondary-200, #8a98ea)",activeShadow:"rgba(84, 104, 225, 0.25)"},{icon:"var(--sa-color-info-500, #00abeb)",activeBg:"var(--sa-color-info-50, #effaff)",activeBorder:"var(--sa-color-info-300, #75dbff)",activeShadow:"rgba(0, 171, 235, 0.25)"},{icon:"var(--sa-color-success-500, #30ce84)",activeBg:"var(--sa-color-success-50, #ecfff6)",activeBorder:"var(--sa-color-success-300, #75dead)",activeShadow:"rgba(48, 206, 132, 0.25)"},{icon:"var(--sa-color-error-400, #ff758f)",activeBg:"var(--sa-color-error-50, #fff0f3)",activeBorder:"var(--sa-color-error-300, #ff8fa3)",activeShadow:"rgba(255, 117, 143, 0.25)"}];function Nn(t,r,n){return{display:"flex",alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"var(--sa-radii-sm, 6px)",border:t?`2px solid ${n.activeBorder}`:"2px solid var(--sa-color-gray-200, #f0f1f2)",backgroundColor:t?n.activeBg:"var(--sa-color-gray-50, #ffffff)",boxShadow:t?r?`0 8px 20px ${n.activeShadow.replace("0.25","0.35")}`:`0 2px 8px ${n.activeShadow}`:r?"0 8px 20px rgba(0, 0, 0, 0.14)":"0 1px 4px rgba(0, 0, 0, 0.08)",transform:r?"translateY(-3px) scale(1.05)":"translateY(0) scale(1)",transition:"box-shadow 0.2s ease, transform 0.2s ease, background-color 0.15s ease, border-color 0.15s ease"}}const _n={fontSize:"11px",fontWeight:500,textAlign:"center",overflowWrap:"normal",wordBreak:"normal",color:"var(--sa-background-primary, #ffffff)",lineHeight:"1.3",maxWidth:"80px"},qn={display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",background:"none",border:"none",cursor:"pointer",padding:0};function Fo({isShow:t,onHide:r,menus:n,selectedGroupId:s,onSelect:o}){const[i,l]=u.useState(void 0),c=d=>{o(d),r()},a=Lr[0];return e.jsx(Oe.Dialog,{isShow:t,onHide:r,style:{width:560,background:"transparent",boxShadow:"none",border:"none"},children:e.jsx(Oe.DialogBody,{children:e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(5, 1fr)",gap:"16px"},children:[e.jsxs("button",{onClick:()=>c(null),onMouseEnter:()=>l("all"),onMouseLeave:()=>l(void 0),style:qn,children:[e.jsx("div",{style:Nn(s===null,i==="all",a),children:e.jsx("div",{style:{color:a.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(B.Icon,{name:"Grid",size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:_n,children:"Semua"})]}),n.map((d,h)=>{var v;const g=s===d.id,m=i===d.id,y=((v=d.items[0])==null?void 0:v.icon)??"Grid",w=Lr[(h+1)%Lr.length];return e.jsxs("button",{onClick:()=>c(d.id),onMouseEnter:()=>l(d.id),onMouseLeave:()=>l(void 0),style:qn,children:[e.jsx("div",{style:Nn(g,m,w),children:e.jsx("div",{style:{color:w.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(B.Icon,{name:y,size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:_n,children:d.name})]},d.id)})]})})})}function Xs({onSelect:t,"aria-label":r="Pilih module"}={}){const n=rn(),{useNavigate:s}=lt(),o=s(),{selectedGroupId:i,setSelectedGroupId:l}=an(),[c,a]=u.useState(!1),d=h=>{var g;if(l(h),h!==null){const m=n.menus.find(w=>w.id===h),y=(g=m==null?void 0:m.items[0])==null?void 0:g.to;y&&o(y)}t==null||t(h)};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{style:{position:"relative"},children:[e.jsx("button",{onClick:()=>a(!0),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"2.25rem",height:"2.25rem",borderRadius:"var(--sa-radii-sm, 0.25rem)",border:"1px solid var(--sa-border-subtle, #0b120e24)",color:"var(--sa-text-subtle, #8c8f97)",backgroundColor:"transparent",cursor:"pointer"},"aria-label":r,onMouseEnter:h=>{h.currentTarget.style.backgroundColor="var(--sa-background-primary-inverse, #f8f8f8)"},onMouseLeave:h=>{h.currentTarget.style.backgroundColor="transparent"},children:e.jsx(B.Icon,{name:"GridApplication",size:"sm"})}),i!==null&&e.jsx("span",{style:{position:"absolute",top:"0.25rem",right:"0.25rem",width:"0.5rem",height:"0.5rem",borderRadius:"9999px",backgroundColor:"var(--sa-color-brand-500, #1a4fa0)"},"aria-hidden":"true"})]}),e.jsx(Fo,{isShow:c,onHide:()=>a(!1),menus:n.menus.filter(h=>h.parentGroupId===void 0),selectedGroupId:i,onSelect:d})]})}const $s=(t,r)=>{const n=[];if(r===0)return n.push(t),n;for(let s=0;s<t.length;s+=r){const o=t.slice(s,s+r);n.push(o)}return n},Ks=u.memo(({value:t,label:r,separator:n,labelWidth:s,lastIndex:o,labelAlign:i="top"})=>{const l=u.useMemo(()=>({padding:0,paddingBottom:o?0:12,verticalAlign:i}),[o,i]),c=u.useMemo(()=>({padding:0,paddingRight:12,paddingLeft:12,paddingBottom:o?0:12,verticalAlign:i}),[o,i]),a=()=>typeof r=="string"?e.jsx(C.Text,{fontWeight:"medium",color:"subtlest",children:r}):r,d=()=>typeof t=="string"||typeof t=="number"?e.jsx(C.Text,{color:"primary",fontWeight:"medium",children:t}):t,h=()=>typeof n=="string"||typeof n=="number"?e.jsx(C.Text,{fontWeight:"medium",color:"subtlest",children:n}):n;return e.jsxs(Z.Tr,{children:[e.jsx(Z.Td,{style:l,width:s,children:a()}),n?e.jsx(Z.Td,{style:c,width:24,children:h()}):null,e.jsx(Z.Td,{style:l,children:d()})]})}),ei=u.memo(({fields:t,separator:r,labelWidth:n})=>e.jsx(Z.Table,{withColumnBorder:!1,withRowBorder:!1,children:t.map((s,o)=>e.jsx(Ks,{separator:r,labelWidth:n,lastIndex:o===t.length-1,...s},`field-group-field-${o}`))})),ti=u.memo(({maxRow:t=0,maxColumn:r=2,separator:n=":",fields:s=[],labelWidth:o=150,bordered:i=!1})=>{const l=u.useMemo(()=>$s(s,t),[s,t]),c=l.length>2,a=()=>{switch(r){case 1:return"width-full";case 2:return"width-1-2";case 3:return"width-1-3";case 4:return"width-1-4";default:return"width-1-2"}};return e.jsx(x.Box,{gap:c?void 0:"lg",direction:"row",flexWrap:"wrap",borderRadius:"rounded-sm",padding:"lg",paddingBottom:c?"xs":"lg",bg:"accent-dark-tertiary",borderWidth:i?"border":void 0,borderStyle:i?"border-solid":void 0,borderColor:i?"border-subtle":void 0,children:l.map((d,h)=>e.jsx(x.Box,{direction:"column",flex:c?void 0:"1",width:c?a():void 0,marginBottom:c?"lg":void 0,children:e.jsx(ei,{labelWidth:o,fields:d,separator:n})},h))})}),ri=({backButton:t})=>{const[r,n]=u.useState(!1),s=(t==null?void 0:t.iconColor)??"var(--sa-text-subtle, #8c8f97)",o=(t==null?void 0:t.textColor)??"var(--sa-text-subtle, #8c8f97)",i=(t==null?void 0:t.hoverIconColor)??"var(--sa-text-subtle, #8c8f97)",l=(t==null?void 0:t.hoverTextColor)??"var(--sa-text-primary, #292a2e)";return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),style:{cursor:"pointer"},children:[e.jsx(B.Icon,{name:(t==null?void 0:t.iconName)||"ChevronLeft",size:"xs",style:{color:r?i:s,transition:"color 0.15s ease"}}),e.jsx(C.Text,{variant:"sub-h3",style:{color:r?l:o,textDecoration:r?"underline":"none",transition:"color 0.15s ease"},children:(t==null?void 0:t.title)||"Back"})]})},Io=({backButton:t,title:r,titleIcon:n,titleTag:s,children:o,header:i=!0,headerBorder:l=!1,disableAnimation:c=!1,scrollable:a=!1,stickyHeader:d=!1,subHeaders:h,action:g,titleTagProps:m,containerProps:y,headerProps:w})=>{const v=we.useMediaQuery("md"),{Link:R,useNavigate:L}=lt(),M=L(),b=t==null?void 0:t.show,S=()=>{if(typeof(t==null?void 0:t.onClick)=="function"){t.onClick();return}M(-1,{replace:!0})},E=()=>{if(!g)return null;if(u.isValidElement(g))return g;const A=g.filter(V=>V&&(V.title||V.icon));return A.length===0?null:v?e.jsx(x.Box,{direction:"row",gap:"md",children:A.map(({title:V,icon:q,buttonProps:Q,onClick:te},X)=>e.jsx(H.Button,{iconLeft:q?e.jsx(B.Icon,{name:q,size:"md"}):void 0,onClick:te,...Q,children:V},`action-${X}`))}):e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"tertiary",size:"sm",iconLeft:e.jsx(B.Icon,{name:"MenuBurger"}),"aria-label":"Actions"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{minWidth:200},children:A.map(({title:V,icon:q,buttonProps:Q,onClick:te},X)=>{const $=(Q==null?void 0:Q.tone)==="error"||(Q==null?void 0:Q.danger)===!0;return e.jsx(O.MenuItem,{intent:$?"danger":void 0,disabled:Q==null?void 0:Q.disabled,startIcon:q?e.jsx(B.Icon,{name:q}):void 0,onClick:te,children:V},`action-${X}`)})})})]})},I=()=>{const A=e.jsx(ri,{backButton:t});return t!=null&&t.navigateTo?e.jsx(x.Box,{direction:"row",children:e.jsx(R,{to:t.navigateTo,replace:!0,style:{textDecoration:"none"},children:A})}):e.jsx(x.Box,{direction:"row",children:e.jsx(Pt,{onClick:S,children:A})})},D=()=>{const A=!!r,V=Array.isArray(g)&&g.length>0,q=u.isValidElement(g)?!0:V;if(!A&&!q&&!b)return null;const te=v||!v&&V;return e.jsxs(x.Box,{direction:"column",gap:"xs",paddingBlock:(w==null?void 0:w.paddingBlock)??"sm",paddingInline:(w==null?void 0:w.paddingInline)??"md",...w,style:{...l?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...w==null?void 0:w.style},children:[b&&I(),(A||q)&&e.jsxs(x.Box,{direction:te?"row":"column",gap:"sm",justify:"space-between",align:te?"center":"flex-start",children:[A?typeof r=="string"?e.jsxs(x.Box,{direction:"row",gap:"lg",align:"center",children:[e.jsxs(x.Box,{direction:"row",gap:"sm",align:"center",children:[n&&e.jsx(B.Icon,{name:n,size:"md",color:"primary"}),e.jsx(C.Text,{variant:"h3",fontWeight:"semibold",children:r})]}),s&&e.jsx(it.Badge,{border:!0,size:"lg",text:s,...m})]}):r:null,E()]})]})},T=()=>{if(!h||h.length===0)return null;const A=h.filter(Q=>Q.show!==!1);if(A.length===0)return null;let V=0,q=-1/0;return A.forEach((Q,te)=>{const X=Q.order??0;X>=q&&(q=X,V=te)}),A.map(({content:Q,order:te,borderBottom:X=!0,keepBottomPadding:$=!1,paddingInline:N=!0,paddingBlock:xe=!0},de)=>e.jsx(x.Box,{direction:"column",paddingTop:xe?"sm":"spacing-0",paddingBottom:xe&&(X||$||de===V)?"sm":"spacing-0",paddingInline:N?"md":"spacing-0",style:{...X?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...te!==void 0?{order:te}:{}},children:Q},`sub-header-${de}`))},G=()=>{const A=i?D():null,V=T();return!A&&!V?null:e.jsxs(x.Box,{direction:"column",style:{...a?{position:"sticky",left:0,...d?{top:0}:{},zIndex:2,background:"var(--sa-background-primary, #ffffff)"}:{},marginBottom:V?"var(--sa-spacing-0)":"var(--sa-spacing-md)"},children:[A,V]})},z=()=>o;return e.jsxs(x.Box,{direction:"column",as:"main",...y,style:{...a?{height:"100%",minHeight:0,overflow:"auto"}:{},...(y==null?void 0:y.style)??{},...c?{}:{animation:"pageLayoutEnter 320ms cubic-bezier(0.16, 1, 0.3, 1) backwards"}},children:[G(),z()]})},ni=t=>{const{useLocation:r}=lt(),n=r();return e.jsx(Io,{...t},n.pathname)},oi=t=>t.remountOnRouteChange?e.jsx(ni,{...t}):e.jsx(Io,{...t}),si=u.memo(oi),ii={icon:"Cross",title:""},li=320,Zn=16,Gn=4,ci=8,Mo=u.forwardRef(({onHide:t,show:r,withBlur:n=!1,style:s,children:o,closeButton:i=ii,paddingHorizontal:l=!0,width:c,minWidth:a,maxWidth:d,hideBackdrop:h=!1,title:g,headerAction:m,header:y=!0,widthPresets:w,resizable:v=!0,resizeMin:R=li,resizeMax:L,onWidthChange:M},b)=>{const E=!we.useMediaQuery("md"),I=c??d??a??"357px",D=w??[],T=D.length>1,[G,z]=u.useState(()=>{const se=D.indexOf(I);return se>=0?se:0}),[A,V]=u.useState(null),[q,Q]=u.useState(!1),[te,X]=u.useState(!1),$=u.useRef(null),N=se=>{$.current=se,typeof b=="function"?b(se):b&&(b.current=se)},xe=T?D[G]:I,de=A!=null?`${A}px`:xe,Be=v&&!E,Ve=G===D.length-1,De=()=>{const se=(G+1)%D.length;V(null),z(se),M==null||M(D[se])},ge=u.useCallback(se=>{const le=L??window.innerWidth;return Math.min(Math.max(se,R),le)},[R,L]),pe=u.useRef(null),Le=se=>{if(!Be)return;se.preventDefault();const le=se.currentTarget;le.setPointerCapture(se.pointerId),Q(!0);const me=document.body.style.cursor,je=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let Ee=null;const et=W=>{const Y=ge(window.innerWidth-W.clientX);pe.current=Y,Ee==null&&(Ee=window.requestAnimationFrame(()=>{Ee=null,pe.current!=null&&V(pe.current)}))},tt=W=>{Ee!=null&&window.cancelAnimationFrame(Ee),pe.current!=null&&V(pe.current),le.releasePointerCapture(W.pointerId),le.removeEventListener("pointermove",et),le.removeEventListener("pointerup",tt),le.removeEventListener("pointercancel",tt),document.body.style.cursor=me,document.body.style.userSelect=je,Q(!1),pe.current!=null&&(M==null||M(`${pe.current}px`))};le.addEventListener("pointermove",et),le.addEventListener("pointerup",tt),le.addEventListener("pointercancel",tt)},Ne=se=>{var Ee;if(!Be||se.key!=="ArrowLeft"&&se.key!=="ArrowRight")return;se.preventDefault();const le=se.key==="ArrowLeft"?Zn:-Zn,me=A??((Ee=$.current)==null?void 0:Ee.offsetWidth)??R,je=ge(me+le);V(je),M==null||M(`${je}px`)},Ae=()=>{Be&&(V(null),M==null||M(xe))};return e.jsx(lr.Drawer,{blur:n,isShow:r,position:"right",onHide:t,ref:N,size:de,style:s,flush:!0,radius:"none",hideBackdrop:h,children:e.jsxs(x.Box,{direction:"column",height:"height-full",children:[Be?e.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Ubah lebar panel",tabIndex:0,onPointerDown:Le,onKeyDown:Ne,onDoubleClick:Ae,title:"Tarik untuk mengubah lebar — klik dua kali untuk reset",onPointerEnter:()=>X(!0),onPointerLeave:()=>X(!1),style:{position:"absolute",left:0,top:0,bottom:0,width:ci,cursor:"col-resize",zIndex:1,background:q||te?`linear-gradient(to right, var(--sa-border-brand, var(--sa-border-subtle)) 0 ${Gn}px, transparent ${Gn}px)`:"transparent",transition:"background 0.15s",touchAction:"none"}}):null,y?e.jsxs(x.Box,{direction:"row",align:"center",justify:"space-between",gap:"sm",paddingInline:"md",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",customHeight:"var(--app-header-height, 44px)",flexShrink:"0",children:[e.jsx(x.Box,{direction:"row",align:"center",gap:"sm",overflow:"overflow-hidden",children:typeof g=="string"?e.jsx(C.Text,{fontSize:"md",fontWeight:"bold",children:g}):g}),e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",flexShrink:"0",children:[m,T?e.jsx(H.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:De,"aria-label":Ve?"Kecilkan panel":"Lebarkan panel",iconRight:e.jsx(B.Icon,{name:Ve?"ChevronRight":"ChevronLeft"})}):null,i?e.jsx(H.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:t,"aria-label":i.title||"Tutup",iconRight:e.jsx(B.Icon,{name:i.icon}),children:i.title||void 0}):null]})]}):null,e.jsx(x.Box,{direction:"column",paddingBlock:"md",paddingInline:l?"md":"spacing-0",overflow:"overflow-y-auto",style:{flex:1,minHeight:0},children:o})]})})}),dn=u.memo(({children:t,borderBottom:r=!0,padding:n=!0})=>{const s=we.useMediaQuery("lg");return e.jsx(x.Box,{direction:"column",padding:n?"md":"spacing-0",paddingLeft:n?"md":"spacing-0",paddingRight:n?"md":"spacing-0",style:r?{borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:t})}),un=u.memo(({children:t,borderTop:r=!0,padding:n=!0})=>{const s=we.useMediaQuery("lg");return e.jsx(x.Box,{direction:"column",padding:n?"md":"spacing-0",paddingLeft:n?"md":"spacing-0",paddingRight:n?"md":"spacing-0",style:r?{borderTop:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:t})}),ai=u.memo(({children:t,...r})=>e.jsx(x.Box,{direction:"column",padding:"md",paddingLeft:"md",paddingRight:"md",gap:"md",...r,children:t})),di=u.memo(({children:t,title:r,titleTag:n,action:s,header:o,footer:i,actionContainer:l,containerProps:c,bodyProps:a,headerProps:d={borderBottom:!0},footerProps:h={borderTop:!0},variantTag:g="info"})=>{const m=we.useMediaQuery("lg"),y=()=>n?e.jsxs(x.Box,{direction:"row",gap:"sm",align:"center",children:[e.jsx(C.Text,{fontWeight:"medium",children:r}),e.jsx(it.Badges,{border:!0,text:n,variant:g})]}):e.jsx(C.Text,{fontWeight:"medium",children:r}),w=()=>o||e.jsxs(x.Box,{direction:"row",justify:"space-between",align:"flex-start",gap:"md",children:[e.jsx(x.Box,{direction:"column",children:r?y():null}),e.jsx(x.Box,{direction:"column",style:m?{width:"100%",maxWidth:"19.313rem"}:{flex:1},...l,children:s??null})]}),v=!!(o||r||s);return e.jsxs(x.Box,{direction:"column",bg:"white",borderRadius:"rounded-xs",as:"section",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",...c,style:{backgroundColor:"var(--sa-background-primary, #ffffff)",...(c==null?void 0:c.style)??{}},children:[o!==null&&v?e.jsx(dn,{...d,children:w()}):null,e.jsx(ai,{...a,children:t}),i?e.jsx(un,{...h,children:i}):null]})}),ui=t=>e.jsx(C.Text,{variant:"h1",children:t.children,...t.props}),xi=t=>e.jsx(C.Text,{variant:"h2",children:t.children,...t.props}),hi=t=>e.jsx(C.Text,{variant:"h3",children:t.children,...t.props}),fi=t=>e.jsx(C.Text,{variant:"h4",children:t.children,...t.props}),mi=t=>e.jsx(C.Text,{variant:"h5",children:t.children,...t.props}),gi=t=>e.jsx(C.Text,{variant:"h6",children:t.children,...t.props}),pi=t=>e.jsx(C.Text,{variant:"sub-h1",children:t.children,...t.props}),yi=t=>e.jsx(C.Text,{variant:"sub-h2",children:t.children,...t.props}),bi=t=>e.jsx(C.Text,{variant:"sub-h3",children:t.children,...t.props}),ji=t=>e.jsx(C.Text,{variant:"body-1",children:t.children,...t.props}),vi=t=>e.jsx(C.Text,{variant:"body-2",children:t.children,...t.props}),Ci=t=>e.jsx(C.Text,{variant:"body-3",children:t.children,...t.props}),Ke={H1:ui,H2:xi,H3:hi,H4:fi,H5:mi,H6:gi,SubH1:pi,SubH2:yi,SubH3:bi,Body1:ji,Body2:vi,Body3:Ci},qe=()=>{const{useSearchParams:t,useParams:r,useLocation:n}=lt(),[s,o]=t(),i=Ft.searchParamsToObject(s.toString()),l=r(),c=n(),a=l.id;return{setSearchParams:o,searchParams:s,searchQueries:i,isHasQuery:(y,w)=>s.has(y)&&s.get(y)===w,getQueryParam:y=>s.get(y),getRouteParam:y=>l[y],params:l,location:c,id:a,hasId:!!a}},Lo=t=>JSON.stringify(t),To=t=>JSON.stringify(t),Ro=t=>JSON.stringify(t),Oo=t=>JSON.stringify(t),wi=t=>t,Di=t=>JSON.stringify(t),zt=t=>{if(typeof t!="string"||t==="")return{};try{const r=JSON.parse(t);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}},Ht=({value:t,name:r,type:n,withSearchParam:s=!0,setSearchParams:o,searchQueries:i,dropdownSearchKey:l,filterKey:c="filter",pageKey:a="page"})=>{if(s){let d;switch(n){case"search":d=wi(t);break;case"dropdown":case"dropdown-multiple":d=Lo(t);break;case"radio":d=To(t);break;case"date-range":d=Ro(t);break;case"advanced-date-range":d=Di(t);break;case"date":d=Oo(t);break;default:d=t;break}if(typeof d<"u"){const h={...zt(i[c]),[r]:d},g={...i};l&&typeof l=="string"&&delete g[l],delete g[a];const m={...g,[c]:JSON.stringify(h)},y=new URLSearchParams(i).toString(),w=new URLSearchParams(m).toString();if(y===w)return;o(m)}}},sr=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{const o=n.get(r)||void 0,i=o&&typeof o=="string"?JSON.parse(o):void 0,l=i?i[t]:void 0;return s==="label"&&l?JSON.parse(l)[0].label:s==="value"&&l?JSON.parse(l)[0].value:l},Ao=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{const o=n.get(r)||void 0,i=o&&typeof o=="string"?JSON.parse(o):void 0,l=i?i[t]:void 0;return s==="label"&&l?JSON.parse(l).map(c=>c.label):s==="value"&&l?JSON.parse(l).map(c=>c.value):s==="array"&&l?JSON.parse(l):l},Si=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{const o=n.get(r)||void 0,i=o&&typeof o=="string"?JSON.parse(o):void 0,l=i?i[t]:void 0;return s==="id"&&l?JSON.parse(l).id:s==="label"&&l?JSON.parse(l).label:s==="value"&&l?JSON.parse(l).value:l},xr=(t,r,n)=>{const s=r.get(n||"filter")||void 0,o=s&&typeof s=="string"?JSON.parse(s):void 0;return o?o[t]:void 0},ki=({name:t,filterKey:r="filter",searchParams:n})=>{const s=n.get(r||"filter")||void 0,o=s&&typeof s=="string"?JSON.parse(s):void 0,i=o?o[t]:void 0;return{start:i?JSON.parse(i).from:void 0,end:i?JSON.parse(i).to:void 0}},Wo=({name:t,filterKey:r="filter",searchParams:n})=>{const s=n.get(r||"filter")||void 0,o=s&&typeof s=="string"?JSON.parse(s):void 0,i=o?o[t]:void 0;return i?JSON.parse(i):void 0},Bi=(t,{filterKey:r="filter",perPageKey:n="perPage",pageKey:s="page"})=>{const o=t.get(r)||void 0,i=t.get(n)||void 0,l=t.get(s)||void 0;return!!o||!!i||!!l},zo=({isOpen:t,onClose:r,filterKey:n,pageKey:s,filters:o})=>{const{searchParams:i,setSearchParams:l,searchQueries:c}=qe(),[a,d]=u.useState({}),h=()=>{i.delete(n||"filter"),l(i)},g=(m,y)=>{switch(m.type){case"radio":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}case"dropdown":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}case"date-range":return e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y);case"date":return e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y);case"dropdown-multiple":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}default:return null}};return e.jsx(Mo,{onHide:r,show:t||!1,children:e.jsxs(x.Box,{direction:"column",gap:"md",children:[e.jsxs(ae.Flex,{direction:"row",justify:"space-between",align:"center",children:[e.jsx(x.Box,{direction:"column",children:"Filter"}),e.jsx(x.Box,{direction:"column",style:{cursor:"pointer"},onClick:h,children:"Reset"})]}),o==null?void 0:o.map((m,y)=>g(m,y))]})})},Ho=({searchKey:t="q",statusKey:r="status",searchPlaceholder:n="Search",searchHighlightPlaceholder:s,extendedFilter:o,showSearchFilter:i=!0,showStatusFilter:l=!0,filterKey:c="filter",pageKey:a="page",customWidthSearch:d,handleOnReset:h,filterConfigs:g,buttonToggleProps:m,position:y="right",titleSearchLabel:w="Work Order",withTitleLabels:v=!1})=>{const L=(m==null?void 0:m.isShowLabel)??!0,[M,b]=u.useState(!1),[S,E]=u.useState(0),I=()=>{E(N=>N+1)},{searchParams:D,setSearchParams:T,getQueryParam:G}=qe(),z=Ft.searchParamsToObject(D.toString()),A=xr(t,D,c)||"",[V,q]=u.useState(A),Q=G(c),X=!!(Q&&!(()=>{if(Q)try{const N=JSON.parse(Q);return Object.keys(N).length===1&&N[t]===""}catch(N){console.error("Filter parameter is not a valid JSON:",N)}return!1})()),$=we.useMediaQuery("md");return u.useEffect(()=>{q(A)},[A]),u.useEffect(()=>{if(V===A)return;const N=window.setTimeout(()=>{Ht({value:V,name:t,type:"search",searchQueries:z,setSearchParams:T,filterKey:c,pageKey:a})},350);return()=>{window.clearTimeout(N)}},[V,A,t,z,T,c,a]),e.jsxs(ae.Flex,{gap:"md",style:{flexDirection:$&&y==="left"?"row":$&&y==="right"?"row-reverse":"column"},align:"flex-end",children:[X&&e.jsx(x.Box,{direction:"column",justify:"flex-end",children:e.jsx(H.Button,{onClick:()=>{const N=new URLSearchParams(D);N.delete(c),T(N),q(""),I(),h&&h()},variant:"outline",tone:"neutral",children:e.jsx(C.Text,{color:"error",fontWeight:"semibold",children:"Reset"})})}),o==null?void 0:o.map(({minWidth:N,content:xe,title:de,onClickContainer:Be},Ve)=>e.jsxs(x.Box,{direction:"column",gap:"sm",onClick:Be,style:{minWidth:N},children:[de&&e.jsx(Ke.SubH3,{children:de}),xe]},`extended-filter-${Ve}-${S}`)),!!(g!=null&&g.length)&&e.jsx(H.Button,{primary:X,secondary:!X,iconLeft:e.jsx(B.Icon,{size:"sm",name:(m==null?void 0:m.icon)||"FilterHorizontal",style:{color:Q?"var(--sa-background-brand, #04254f)":"var(--sa-text-primary, #292a2e)"}}),fullWidth:!$,onClick:()=>b(!0),children:L?"Filter":void 0}),l&&e.jsxs(x.Box,{direction:"column",gap:"sm",style:{minWidth:"126px"},children:[v&&e.jsx(Ke.SubH3,{children:"Status"}),e.jsx(Et.Dropdown,{dropdownLists:[{label:"Active",value:"active"},{label:"InActive",value:"inactive"}],defaultValue:sr({get:"value",name:r,searchParams:D,filterKey:c})?[{label:sr({get:"value",name:r,searchParams:D,filterKey:c})==="active"?"Active":"InActive",value:sr({get:"value",name:r,searchParams:D,filterKey:c})}]:[],onChange:N=>Ht({value:N,name:r,type:"dropdown",searchQueries:z,setSearchParams:T,filterKey:c}),placeholder:v?"All":"All Status"},S)]}),i&&e.jsxs(x.Box,{direction:"column",gap:"sm",style:{width:d&&$?d:$?"310px":""},children:[v&&e.jsxs(Ke.SubH3,{children:["Search for ",w]}),e.jsx(ut.Input,{placeholder:n,leftIcon:e.jsx(B.Icon,{name:"Search",width:20,height:20}),onChange:N=>q(N.target.value),value:V,fullWidth:!0},S+1+c)]}),e.jsx(zo,{isOpen:M,onClose:()=>b(!1),filterKey:c,filters:g,pageKey:a})]})},Ei=t=>t==="checkbox-multiple"?"dropdown-multiple":t==="radio"?"dropdown":t==="date-compact"?"date":t==="text"?"search":t;function xn({configs:t,filterKey:r="filter",activeFilterKey:n="filters",pageKey:s="page",searchKey:o="q"}){const{searchParams:i,setSearchParams:l,searchQueries:c}=qe(),a=u.useMemo(()=>Object.fromEntries(t.map(S=>[S.key,S])),[t]),d=u.useMemo(()=>{const S=(i.get(n)||"").split(",").map(I=>I.trim()).filter(Boolean),E=Object.keys(zt(i.get(r))).filter(I=>I!==o);return t.map(I=>I.key).filter(I=>{const D=a[I];return(D==null?void 0:D.locked)||S.includes(I)||E.includes(I)})},[i,n,r,o,t,a]),h=u.useCallback(S=>zt(S[r]),[r]),g=u.useCallback(S=>{const E={...c};S.length?E[n]=S.join(","):delete E[n],l(E)},[c,n,l]),m=u.useCallback(S=>{d.includes(S)||g([...d,S])},[d,g]),y=u.useCallback(S=>{var T;if((T=a[S])!=null&&T.locked)return;const E={...c},I=d.filter(G=>G!==S);I.length?E[n]=I.join(","):delete E[n];const D=h(E);S in D&&(delete D[S],Object.keys(D).length?E[r]=JSON.stringify(D):delete E[r]),delete E[s],l(E)},[c,d,n,r,s,h,l,a]),w=u.useCallback(S=>d.includes(S)?y(S):m(S),[d,m,y]),v=u.useCallback(S=>{switch(S.type){case"dropdown":case"dropdown-multiple":case"checkbox-multiple":case"radio":return Ao({name:S.key,get:"array",searchParams:i,filterKey:r})||[];case"date":{const E=Wo({name:S.key,searchParams:i,filterKey:r});return E?new Date(E):void 0}case"date-compact":{const I=h(Object.fromEntries(i.entries()))[S.key];return I&&typeof I=="object"?I:void 0}case"text":{const I=h(Object.fromEntries(i.entries()))[S.key];return typeof I=="string"?I:void 0}default:return}},[i,r,h]),R=u.useCallback((S,E)=>{if(S.type==="date-compact"||S.type==="text"){const I={...c},D=h(I);E==null||E===""?delete D[S.key]:D[S.key]=E,Object.keys(D).length?I[r]=JSON.stringify(D):delete I[r],delete I[s],l(I);return}Ht({value:E,name:S.key,type:Ei(S.type),searchQueries:c,setSearchParams:l,filterKey:r,pageKey:s})},[c,l,r,s,h]),L=u.useCallback(S=>{const E={...c},I=h(E);S in I&&(delete I[S],Object.keys(I).length?E[r]=JSON.stringify(I):delete E[r]),delete E[s],l(E)},[c,r,s,h,l]),M=u.useCallback(()=>{const S={...c};delete S[r],delete S[n],delete S[s],l(S)},[c,r,n,s,l]),b=d.length>0;return{activeKeys:d,configByKey:a,hasActiveFilter:b,addFilter:m,removeFilter:y,toggleFilter:w,getValue:v,setValue:R,clearValue:L,clearAll:M}}const hn={get(t){return At.storage.get(t)??null},set(t,r){At.storage.save(t,r)},remove(t){At.storage.delete(t)}},Mt={columns:t=>`filterbar:colprefs:${t}`,savedViews:t=>`filterbar:views:${t}`,lastState:t=>`filterbar:last:${t}`,perPage:t=>`filterbar:perpage:${t}`,tableSort:t=>`tablelayout:sort:${t}`},Xt=(t,r)=>{const n=new Set(r.map(i=>i.key)),s=t.order.filter(i=>n.has(i));for(const i of r)s.includes(i.key)||s.push(i.key);const o=t.hidden.filter(i=>n.has(i));return{order:s,hidden:o}};function Fi({columns:t,scopeId:r,storage:n,onColumnsChange:s,value:o}){const i=u.useMemo(()=>({order:t.map(D=>D.key),hidden:[]}),[t]),l=r?Mt.columns(r):void 0,c=(D,T)=>Xt({order:D.order??T,hidden:D.hidden??[]},t),[a,d]=u.useState(()=>{if(o&&(o.order||o.hidden))return c(o,t.map(D=>D.key));if(l){const D=n.get(l);if(D&&Array.isArray(D.order))return Xt(D,t)}return i}),h=t.map(D=>D.key).join("|");u.useEffect(()=>d(D=>Xt(D,t)),[h]);const g=u.useRef(a);g.current=a;const m=o?`${(o.order??[]).join("|")}~${(o.hidden??[]).join("|")}`:null,y=u.useRef(m);u.useEffect(()=>{if(m==null||y.current===m)return;y.current=m;const D=g.current,T=c(o,D.order);T.order.join("|")===D.order.join("|")&&T.hidden.join("|")===D.hidden.join("|")||(d(T),l&&n.set(l,T))},[m,h]);const w=u.useRef(!1);u.useEffect(()=>{w.current||(w.current=!0,s==null||s(a))},[]);const v=u.useCallback(D=>{d(D),l&&n.set(l,D),s==null||s(D)},[l,n,s]),R=u.useMemo(()=>{const D=new Map(t.map(T=>[T.key,T]));return a.order.filter(T=>D.has(T)).map(T=>({...D.get(T),visible:!a.hidden.includes(T)}))},[a,t]),L=u.useCallback(D=>{const T=a.hidden.includes(D)?a.hidden.filter(G=>G!==D):[...a.hidden,D];v({...a,hidden:T})},[a,v]),M=u.useCallback((D,T)=>{if(D===T)return;const G=[...a.order],[z]=G.splice(D,1);G.splice(T,0,z),v({...a,order:G})},[a,v]),b=u.useCallback(D=>{v({...a,hidden:D?t.filter(T=>!T.locked).map(T=>T.key):[]})},[a,t,v]),S=u.useCallback(()=>v(i),[v,i]),E=u.useCallback(D=>v(Xt(D,t)),[v,t]),I=a.hidden.length===0;return{state:a,orderedColumns:R,allVisible:I,toggleVisibility:L,reorder:M,setAllHidden:b,reset:S,applyState:E}}function Ii({scopeId:t,storage:r,snapshotKeys:n,pageKey:s="page",getColumns:o,applyColumns:i}){const{searchParams:l,setSearchParams:c}=qe(),a=t?Mt.savedViews(t):void 0,[d,h]=u.useState(()=>a?r.get(a)||[]:[]),g=u.useCallback(v=>{h(v),a&&r.set(a,v)},[a]),m=u.useCallback(v=>{const R=v.trim();if(!R)return;const L={};n.forEach(b=>{const S=l.get(b);S!=null&&(L[b]=S)});const M={id:`${Date.now()}`,name:R,query:L,columns:o==null?void 0:o(),createdAt:Date.now()};g([...d,M])},[n,l,o,g,d]),y=u.useCallback(v=>g(d.filter(R=>R.id!==v)),[g,d]),w=u.useCallback(v=>{const R=Object.fromEntries(l.entries());n.forEach(L=>delete R[L]),Object.assign(R,v.query),delete R[s],c(R),v.columns&&(i==null||i(v.columns))},[l,n,s,c,i]);return{enabled:!!a,views:d,saveView:m,deleteView:y,applyView:w}}function Mi(t,r){const n=zt(t);return delete n[r],Object.keys(n).length>0?JSON.stringify(n):void 0}function Qn(t,r,n){const s=t[r];if(s==null)return;const o=Mi(s,n);o===void 0?delete t[r]:t[r]=o}function Li({scopeId:t,storage:r,snapshotKeys:n,enabled:s=!0,filterKey:o="filter",searchKey:i="q",persistSearch:l=!0}){const{searchParams:c}=qe(),a=t&&s?Mt.lastState(t):void 0,d=u.useRef(a),h=u.useRef(!1);u.useEffect(()=>{if(!a){d.current=a;return}if(d.current!==a){d.current=a,h.current=!1;return}const y={};if(n.forEach(w=>{const v=c.get(w);v!=null&&(y[w]=v)}),l||Qn(y,o,i),Object.keys(y).length===0){h.current&&r.remove(a);return}h.current=!0,r.set(a,y)},[c,a,n,r,l,o,i]);const g=u.useCallback(()=>{if(!a)return null;const y=r.get(a);if(!y||typeof y!="object"||Array.isArray(y)||Object.keys(y).length===0)return null;const w=y[o];return w!=null&&Object.keys(zt(w)).length===0&&delete y[o],l||Qn(y,o,i),Object.keys(y).length>0?y:null},[a,r,l,o,i]),m=u.useCallback(()=>{a&&r.remove(a)},[a,r]);return{enabled:!!a,read:g,clear:m}}function Ti({scopeId:t,storage:r,perPageKey:n,pageSizeOptions:s,enabled:o=!0}){const{searchParams:i}=qe(),l=t&&o?Mt.perPage(t):void 0,c=i.toString(),a=u.useRef(l);u.useEffect(()=>{if(!l){a.current=l;return}if(a.current!==l){a.current=l;return}const g=i.get(n);if(!g)return;const m=Number(g);!Number.isFinite(m)||m<=0||r.set(l,m)},[c,l,n,r]);const d=u.useCallback(()=>{if(!l)return null;const g=r.get(l);if(g==null)return null;const m=Number(g);return!Number.isFinite(m)||m<=0||s&&!s.includes(m)?null:String(m)},[l,r,s]),h=u.useCallback(()=>{l&&r.remove(l)},[l,r]);return{enabled:!!l,read:d,clear:h}}let Tr={},Rr=!1,Or=null;const Ri=(t,r)=>{Object.assign(Tr,t),Or=r,!Rr&&(Rr=!0,queueMicrotask(()=>{const n=Tr,s=Or;Tr={},Rr=!1,Or=null,!(!s||Object.keys(n).length===0)&&s(o=>{const i=new URLSearchParams(o);return Object.entries(n).forEach(([l,c])=>i.set(l,c)),i},{replace:!0})}))};function Oi({enabled:t,snapshotKeys:r,perPageKey:n,readSnapshot:s,readPerPage:o}){const{searchParams:i,setSearchParams:l,location:c}=qe(),a=u.useRef(null);u.useEffect(()=>{if(!t||a.current===c.pathname)return;a.current=c.pathname;const d={};if(!i.has(n)){const h=o();h&&(d[n]=h)}if(!r.some(h=>i.has(h))){const h=s();h&&Object.assign(d,h)}Object.keys(d).length!==0&&Ri(d,l)},[c.pathname,t])}const Ai=({configs:t,activeKeys:r,onToggle:n,hasActiveFilter:s,onReset:o})=>t.length?e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:s?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"FilterHorizontal"}),"aria-label":"Add filter"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{minWidth:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:"Add Filter"}),s&&o&&e.jsx(H.Button,{variant:"link",tone:"brand",size:"xs",onClick:o,children:"Reset"})]}),children:t.map(i=>e.jsx(O.MenuItem,{selected:i.locked||r.includes(i.key),disabled:i.locked,closeOnSelect:!1,startIcon:i.icon??void 0,onClick:()=>{i.locked||n(i.key)},children:i.label},i.key))})})]}):null,Vt=({onClear:t,onRemove:r})=>e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"link",tone:"neutral",size:"xs",iconLeft:e.jsx(B.Icon,{name:"MenuHorizontal"}),"aria-label":"Filter actions"})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{width:180},children:[e.jsx(O.MenuItem,{startIcon:e.jsx(B.Icon,{name:"CrossCircle"}),onClick:t,children:"Clear value"}),r&&e.jsx(O.MenuItem,{intent:"danger",startIcon:e.jsx(B.Icon,{name:"Trash1"}),onClick:r,children:"Remove filter"})]})})]}),Wi=t=>{const r=new Date(t);return r.setHours(0,0,0,0),r},Un=(t,r,n)=>{const s=new Date(t);return n==="day"?s.setDate(s.getDate()+r):n==="week"?s.setDate(s.getDate()+r*7):n==="month"?s.setMonth(s.getMonth()+r):s.setFullYear(s.getFullYear()+r),s},Po=t=>{const r=Wi(new Date);if(t.direction==="this"){const s=new Date(r),o=new Date(r);return t.period==="week"?(s.setDate(r.getDate()-r.getDay()),o.setDate(s.getDate()+6)):t.period==="month"?(s.setDate(1),o.setMonth(o.getMonth()+1,0)):t.period==="year"&&(s.setMonth(0,1),o.setMonth(11,31)),{from:s,to:o}}const n=t.count??1;return t.direction==="past"?{from:Un(r,-n,t.period),to:r}:{from:r,to:Un(r,n,t.period)}},Jn=24,Vo=t=>t.length>Jn?`${t.slice(0,Jn)}...`:t,No=t=>t.toLocaleDateString(void 0,{day:"2-digit",month:"short",year:"numeric"}),Ar=(t,r="days")=>r==="months"?t.toLocaleDateString(void 0,{month:"short",year:"numeric"}):r==="years"?String(t.getFullYear()):No(t),ar={is:"Is","is-before":"Is before","is-after":"Is after","is-on-or-before":"Is on or before","is-on-or-after":"Is on or after","is-between":"Is between","is-relative-to-today":"Is relative to today","is-empty":"Is empty","is-not-empty":"Is not empty"},_o=["is","is-before","is-after","is-on-or-before","is-on-or-after","is-between","is-relative-to-today","is-empty","is-not-empty"],$r={past:"Past",next:"Next",this:"This"},zi=["day","week","month","year"],Hi=["past","next","this"],Pi=t=>t.field.type==="date-compact"?e.jsx(_i,{field:t.field,value:t.value,onChange:t.onChange,onClear:t.onClear,onRemove:t.onRemove}):e.jsx(Vi,{field:t.field,value:t.value,onChange:t.onChange,onClear:t.onClear,onRemove:t.onRemove}),Vi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=r?No(new Date(r)):null,l=!!i,c=l?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:Vo(i)})]}):t.label;return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l?e.jsx(B.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:c})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Vt,{onClear:s,onRemove:o})]}),children:e.jsx(yt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:t.mode,value:r,onChange:a=>a==null?s():n(a),withPadding:!1})})})]})},Ni=(t,r="days")=>{switch(t.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return t.date?`${ar[t.op]} ${Ar(new Date(t.date),r)}`:null;case"is-between":return t.from&&t.to?`${Ar(new Date(t.from),r)} - ${Ar(new Date(t.to),r)}`:null;case"is-relative-to-today":{const n=t.relative;if(!n)return null;if(n.direction==="this")return`This ${n.period}`;const s=n.count??1,o=s===1?n.period:`${n.period}s`;return`${$r[n.direction]} ${s} ${o}`}case"is-empty":case"is-not-empty":return ar[t.op];default:return null}},_i=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=t.ops&&t.ops.length>0?t.ops:_o,l=t.defaultOp&&i.includes(t.defaultOp)?t.defaultOp:i[0],c=t.mode??"days",a=(r==null?void 0:r.op)??l,d=r?Ni(r,c):null,h=!!d,g=h?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:Vo(d)})]}):t.label,m=y=>{if(y!==a){if(y==="is-empty"||y==="is-not-empty"){n({op:y});return}if(y==="is-relative-to-today"){n({op:y,relative:(r==null?void 0:r.relative)??{direction:"past",count:1,period:"week"}});return}if(y==="is-between"){n({op:y,from:r==null?void 0:r.from,to:r==null?void 0:r.to});return}n({op:y,date:r==null?void 0:r.date})}};return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:h?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:h?e.jsx(B.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:g})}),e.jsxs(O.MenuLists,{children:[e.jsx(O.MenuBody,{style:{width:320},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",gap:"xs",fullWidth:!0,children:[e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"xs",style:{minWidth:0},children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(qo,{op:a,ops:i,onChange:m})]}),e.jsx(Vt,{onClear:s,onRemove:o})]}),children:e.jsx(Zo,{value:r,op:a,mode:c,onChange:n})}),a==="is-relative-to-today"&&e.jsx(O.MenuFooter,{children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"Filter will update with the current date"})})]})]})},qo=({op:t,ops:r,onChange:n})=>e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"link",tone:"neutral",size:"xs",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:ar[t]})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:200},children:r.map(s=>e.jsx(O.MenuItem,{selected:t===s,onClick:()=>n(s),endIcon:t===s?e.jsx(B.Icon,{name:"Check"}):void 0,children:ar[s]},s))})})]}),Zo=({value:t,op:r,mode:n="days",onChange:s})=>{if(r==="is-empty"||r==="is-not-empty")return e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"No further input required."})});if(r==="is-between"){const o=t!=null&&t.from||t!=null&&t.to?{from:t!=null&&t.from?new Date(t.from):null,to:t!=null&&t.to?new Date(t.to):null}:void 0;return e.jsx(yt.StarasiaDate,{size:"sm",input:!1,clearable:!0,rangedDate:!0,filter:n,value:o,onChange:i=>{if(i==null){s({op:r});return}if(typeof i=="object"&&i!==null&&"from"in i&&"to"in i){let{from:l,to:c}=i;if(!l&&c&&(l=c,c=null),!l&&!c){s({op:r});return}s({op:r,from:l?l.toISOString():void 0,to:c?c.toISOString():void 0})}},withPadding:!1},`range-${n}`)}return r==="is-relative-to-today"?e.jsx(qi,{value:t==null?void 0:t.relative,onChange:o=>s({op:r,relative:o})}):e.jsx(yt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:n,value:t!=null&&t.date?new Date(t.date):void 0,onChange:o=>{if(o==null){s({op:r});return}o instanceof Date&&s({op:r,date:o.toISOString()})},withPadding:!1},`single-${n}`)},qi=({value:t,onChange:r})=>{const n=(t==null?void 0:t.direction)??"past",s=(t==null?void 0:t.count)??1,o=(t==null?void 0:t.period)??"week",i=n!=="this",l=Po({direction:n,count:s,period:o});return e.jsxs(x.Box,{direction:"column",display:"flex",gap:"sm",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:$r[n]})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:140},children:Hi.map(c=>e.jsx(O.MenuItem,{selected:n===c,endIcon:n===c?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>r(c==="this"?{direction:c,period:o}:{direction:c,count:s,period:o}),children:$r[c]},c))})})]}),i&&e.jsx(ut.Input,{type:"number",size:"sm",min:1,clearable:!1,value:s,onChange:c=>{const a=Number(c.target.value);r({direction:n,count:Number.isFinite(a)&&a>0?a:1,period:o})},style:{width:72}}),e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:o})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:140},children:zi.map(c=>e.jsx(O.MenuItem,{selected:o===c,endIcon:o===c?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>r(n==="this"?{direction:n,period:c}:{direction:n,count:s,period:c}),children:c},c))})})]})]}),e.jsx(yt.StarasiaDate,{size:"sm",input:!1,disabled:!0,rangedDate:!0,value:l,onChange:()=>{},withPadding:!1},"relative-preview")]})},Yn=18,Zi=t=>t.length>Yn?`${t.slice(0,Yn)}...`:t,Gi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=t.type==="dropdown-multiple",l=r.length,c=t.searchable!==!1,[a,d]=u.useState(""),h=t.options,g=typeof t.onSearch=="function",m=(()=>{if(g)return h;const L=a.trim().toLowerCase();return L?h.filter(M=>M.label.toLowerCase().includes(L)):h})(),y=L=>r.some(M=>M.value===L.value),w=L=>{if(!i){n([{label:L.label,value:L.value}]),d("");return}n(y(L)?r.filter(M=>M.value!==L.value):[...r,{label:L.label,value:L.value}])},v=L=>{var M;d(L),(M=t.onSearch)==null||M.call(t,L)},R=l===0?t.label:e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:l===1?Zi(r[0].label):`${l} Selected`})]});return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l>0?e.jsx(B.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:R})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Vt,{onClear:s,onRemove:o})]}),children:e.jsxs(x.Box,{direction:"column",gap:"sm",children:[c&&e.jsx(Et.Dropdown,{size:"sm",triggerInput:!0,fullWidth:!0,hideChevronIcon:!0,clearable:!0,multiSelect:i,searchAble:!0,searchValue:a,onSearch:v,value:r,onChange:n,placeholder:`Search ${t.label.toLowerCase()}…`}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",customMaxHeight:"240px",children:t.isLoading?e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"Loading…"})}):m.length===0?e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"No results"})}):m.map(L=>e.jsx(O.MenuItem,{closeOnSelect:!i,selected:y(L),startIcon:L.avatar,endIcon:y(L)?e.jsx(B.Icon,{name:"Check"}):void 0,description:L.description,onClick:()=>w(L),children:L.label},L.value))})]})})})]})},Xn=18,Qi=t=>t.length>Xn?`${t.slice(0,Xn)}...`:t,$n=({checked:t,indeterminate:r})=>e.jsx("span",{style:{pointerEvents:"none",display:"inline-flex"},children:e.jsx(dt.Checkbox,{size:"sm",checked:t,readOnly:!0,onChange:()=>{},variant:r?"indeterminate":"select"})}),Ui=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=new Set(r.map(m=>m.value)),l=r.length,c=t.options.length>0&&t.options.every(m=>i.has(m.value)),a=l>0&&!c,d=m=>{n(i.has(m.value)?r.filter(y=>y.value!==m.value):[...r,{label:m.label,value:m.value}])},h=()=>{n(c?[]:t.options.map(m=>({label:m.label,value:m.value})))},g=l===0?t.label:e.jsxs(e.Fragment,{children:[e.jsxs(C.Text,{as:"span",fontWeight:"semibold",children:[t.label,":"]})," ",e.jsx(C.Text,{as:"span",children:l===1?Qi(r[0].label):`${l} Selected`})]});return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l>0?e.jsx(B.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:g})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{width:240},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Vt,{onClear:s,onRemove:o})]}),children:[e.jsx(O.MenuItem,{closeOnSelect:!1,selected:c,onClick:h,startIcon:e.jsx($n,{checked:c||a,indeterminate:a}),children:"Select All"}),t.options.map(m=>e.jsx(O.MenuItem,{closeOnSelect:!1,selected:i.has(m.value),onClick:()=>d(m),startIcon:e.jsx($n,{checked:i.has(m.value)}),children:m.label},m.value))]})})]})},Kn=18,Ji=t=>t.length>Kn?`${t.slice(0,Kn)}...`:t,Yi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const[i,l]=u.useState(r??""),c=we.useDebounce(i,t.debounceMs??300);u.useEffect(()=>{c!==(r??"")&&n(c)},[c]),u.useEffect(()=>{l(r??"")},[r]);const a=!!r,d=a?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:Ji(r)})]}):t.label;return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:a?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:a?e.jsx(B.Icon,{name:"Search",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:d})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Vt,{onClear:s,onRemove:o})]}),children:e.jsx(ut.Input,{size:"sm",fullWidth:!0,value:i,placeholder:t.placeholder??"Cari…",leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:h=>l(h.target.value)})})})]})},Go=({activeKeys:t,configByKey:r,getValue:n,setValue:s,clearValue:o,removeFilter:i})=>e.jsx(e.Fragment,{children:t.map(l=>{const c=r[l];if(!c)return null;const a=n(c),d=c.locked?void 0:()=>i(l);return c.type==="date"||c.type==="date-compact"?e.jsx(Pi,{field:c,value:a,onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):c.type==="text"?e.jsx(Yi,{field:c,value:a||"",onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):c.type==="checkbox-multiple"?e.jsx(Ui,{field:c,value:a||[],onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):e.jsx(Gi,{field:c,value:a||[],onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l)})}),eo=t=>`${t} Rows`,Xi=({pagination:t,pageKey:r="page",perPageKey:n="perPage",pageSizeOptions:s=[10,25,50,100],defaultPerPage:o=10,showResultCount:i=!0,showPageSize:l=!0,showPagination:c=!0})=>{var L;const{searchQueries:a,setSearchParams:d,searchParams:h}=qe(),g=h.get(n),m=g?Number(g):o,y=M=>{d({...a,[r]:String(M)})},w=M=>{d({...a,[n]:M,[r]:"1"})},v=(t==null?void 0:t.rangeStart)??(((t==null?void 0:t.currentPage)||0)>1?(((t==null?void 0:t.currentPage)||0)-1)*((t==null?void 0:t.perPage)||0)+1:0),R=(t==null?void 0:t.rangeEnd)??((t==null?void 0:t.totalCurrentPage)!==(t==null?void 0:t.perPage)?t==null?void 0:t.totalData:((t==null?void 0:t.currentPage)||1)*((t==null?void 0:t.totalCurrentPage)||0));return e.jsxs(e.Fragment,{children:[i&&e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${v}-${R} of ${((L=t==null?void 0:t.totalData)==null?void 0:L.toLocaleString())||0}`}),l&&e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),"aria-label":"Rows per page",children:eo(m)})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{children:s.map(M=>e.jsx(O.MenuItem,{selected:M===m,onClick:()=>w(String(M)),children:eo(M)},M))})})]}),c&&((t==null?void 0:t.totalPage)??0)>1&&e.jsx(x.Box,{direction:"column",display:"flex",align:"center",gap:"sm",paddingRight:"sm",style:{borderRight:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:e.jsx(Wt.Pagination,{size:"sm",variant:"neutral",siblingCount:0,currentPage:t!=null&&t.currentPage?Number(t.currentPage):1,totalPages:Number(t==null?void 0:t.totalPage),onPageChange:y})})]})};function $i(t,r,n=!0){u.useEffect(()=>{if(!n)return;const s=o=>{var c;if(o.metaKey||o.ctrlKey||o.altKey||o.key!==t||Oe.isOverlayOpen())return;const i=o.target,l=(c=i==null?void 0:i.tagName)==null?void 0:c.toLowerCase();l==="input"||l==="textarea"||i!=null&&i.isContentEditable||(o.preventDefault(),r())};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[t,r,n])}const Ki=240,Qo=({searchKey:t="q",filterKey:r="filter",pageKey:n="page",placeholder:s="Search",shortcut:o="/",collapsible:i=!0})=>{const{searchParams:l,setSearchParams:c,searchQueries:a}=qe(),d=xr(t,l,r)||"",[h,g]=u.useState(!i||!!d),[m,y]=u.useState(i&&!d),[w,v]=u.useState(d),R=we.useDebounce(w,350),L=u.useRef(null);u.useEffect(()=>{v(d),d&&g(!0)},[d]),u.useEffect(()=>{h&&y(!1)},[h]),u.useEffect(()=>{R!==d&&Ht({value:R,name:t,type:"search",searchQueries:a,setSearchParams:c,filterKey:r,pageKey:n})},[R]);const M=u.useCallback(()=>{g(!0),requestAnimationFrame(()=>{var I;return(I=L.current)==null?void 0:I.focus()})},[]);$i(o,M);const b=()=>{i&&!w&&g(!1)},S=I=>{var D;i&&I.key==="Escape"&&!w&&(g(!1),(D=L.current)==null||D.blur())},E=()=>{h||y(!0)};return e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"spacing-0",children:[m&&e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Search",size:"sm"}),"aria-label":"Search","aria-expanded":!1,onClick:M}),e.jsxs(x.Box,{onTransitionEnd:E,style:{position:"relative",width:h?Ki:0,overflow:"hidden",transition:"width 220ms ease"},children:[e.jsx(ut.Input,{ref:L,size:"sm",fullWidth:!0,value:w,placeholder:s,leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:I=>v(I.target.value),onKeyDown:S,onBlur:b,tabIndex:h?0:-1}),h&&!w&&e.jsx(x.Box,{align:"center",justify:"center",borderColor:"border-subtle",borderWidth:"border",borderStyle:"border-solid",borderRadius:"rounded-xs",paddingInline:"spacing-1",customBackgroundColor:"var(--sa-background-surface-hover, #f1f2f4)",style:{position:"absolute",right:8,top:"50%",transform:"translateY(-50%)",pointerEvents:"none",minWidth:18,height:18,display:"inline-flex"},children:e.jsx(C.Text,{fontSize:"xs",color:"subtle",children:o})})]})]})},Uo=({columns:t,allVisible:r,onToggle:n,onReorder:s,onSetAllHidden:o})=>{const[i,l]=u.useState(null),[c,a]=u.useState(null),d=()=>{i!==null&&c!==null&&i!==c&&s(i,c),l(null),a(null)},h=(g,m)=>{const y=g+m;y<0||y>=t.length||s(g,y)};return e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:r?"outline":"secondary",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Grid",size:"sm"}),"aria-label":"Customize columns"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{children:e.jsxs(x.Box,{padding:"sm",direction:"column",customWidth:"296px",customMaxHeight:"60vh",overflow:"overflow-hidden",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Customize Column Table"}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",paddingBlock:"md",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",children:"Show in table"}),e.jsx(H.Button,{variant:"link",tone:"info",size:"xs",onClick:()=>o(r),children:r?"Hide All":"Show All"})]}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",children:t.map((g,m)=>{const y=!g.locked,w=c===m&&i!==null&&i!==m;return e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",paddingBlock:"xs",draggable:y,onDragStart:()=>y&&l(m),onDragOver:v=>{v.preventDefault(),a(m)},onDrop:d,onDragEnd:d,style:{minHeight:32,boxShadow:w?"inset 0 2px 0 0 var(--sa-background-brand, #04254f)":void 0},children:[e.jsx(x.Box,{direction:"column",as:"div",align:"center",justify:"center",role:"button",tabIndex:y?0:-1,"aria-label":`Reorder ${g.title}`,"aria-disabled":!y||void 0,color:"icon-subtlest",onKeyDown:v=>{y&&(v.key==="ArrowUp"?(v.preventDefault(),h(m,-1)):v.key==="ArrowDown"&&(v.preventDefault(),h(m,1)))},style:{display:"inline-flex",cursor:y?"grab":"default",opacity:y?1:.4},children:e.jsx(B.Icon,{name:"DragVertical",width:16,height:16})}),g.icon&&e.jsx(x.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:g.icon}),e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:g.title}),e.jsx(x.Box,{direction:"column",style:{marginLeft:"auto"},children:e.jsx(It.Toggle,{size:"sm",checked:g.visible,disabled:g.locked,onChange:()=>n(g.key),"aria-label":`Toggle ${g.title} column`})})]},g.key)})})]})})})]})},Jo=({views:t,onApply:r,onDelete:n,onSave:s})=>{const[o,i]=u.useState(""),l=()=>{const c=o.trim();c&&(s(c),i(""))};return e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:t.length>0?"secondary":"outline",tone:(t.length>0,"neutral"),size:"sm",iconLeft:e.jsx(B.Icon,{name:"Bookmark",size:"sm"}),"aria-label":"Saved views"})}),e.jsxs(O.MenuLists,{style:{width:"260px"},children:[e.jsx(O.MenuBody,{children:e.jsxs(x.Box,{direction:"column",padding:"xs",gap:"sm",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Saved Views"}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",children:t.length===0?e.jsx(x.Box,{direction:"column",paddingBlock:"sm",children:e.jsx(C.Text,{fontSize:"sm",color:"subtlest",children:"No saved views yet"})}):t.map(c=>e.jsx(O.MenuItem,{startIcon:e.jsx(B.Icon,{name:"Bookmark"}),onClick:()=>r(c),endIcon:e.jsx(H.Button,{variant:"link",tone:"error",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Trash2"}),"aria-label":`Delete ${c.name}`,onClick:a=>{a.stopPropagation(),n(c.id)}}),children:c.name},c.id))})]})}),e.jsx(O.MenuFooter,{children:e.jsxs(x.Box,{direction:"row",gap:"xs",children:[e.jsx(x.Box,{direction:"column",style:{flex:"1 0 0",minWidth:0},children:e.jsx(ut.Input,{size:"sm",fullWidth:!0,placeholder:"Save current view as…",value:o,onChange:c=>i(c.target.value),onKeyDown:c=>{c.key==="Enter"&&l()}})}),e.jsx(H.Button,{variant:"primary",tone:"brand",size:"sm",disabled:!o.trim(),onClick:l,children:"Save"})]})})]})]})},el=({isOpen:t,onClose:r,configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,onToggle:l,onReset:c,getValue:a,setValue:d,clearValue:h,removeFilter:g})=>{const m=s.length;return e.jsx(lr.Drawer,{position:"bottom",isShow:t,onHide:r,children:e.jsxs(x.Box,{direction:"column",customMaxHeight:"85vh",style:{minHeight:280},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",paddingInline:"md",paddingBlock:"sm",style:{borderBottom:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Filter"}),m>0&&e.jsxs(C.Text,{fontSize:"sm",color:"subtle",children:["(",m,")"]})]}),e.jsx(H.Button,{variant:"link",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Cross"}),"aria-label":"Close filter",onClick:r})]}),e.jsxs(x.Box,{direction:"column",gap:"lg",padding:"md",overflow:"overflow-y-auto",style:{flex:"1 1 auto",minHeight:0},children:[m>0&&e.jsxs(x.Box,{direction:"column",gap:"sm",children:[e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Filter aktif"}),e.jsx(x.Box,{direction:"row",display:"flex",wrap:"wrap",gap:"sm",align:"center",children:e.jsx(Go,{activeKeys:s,configByKey:o,getValue:a,setValue:d,clearValue:h,removeFilter:g})})]}),n.length>0&&e.jsxs(x.Box,{direction:"column",gap:"sm",children:[e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Tambah filter"}),e.jsx(x.Box,{direction:"column",children:n.map(y=>{const w=s.includes(y.key),v=!!y.locked;return e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",paddingBlock:"sm",style:{opacity:v?.5:1,borderTop:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.08))"},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{minWidth:0},children:[y.icon&&e.jsx(x.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:y.icon}),e.jsx(C.Text,{fontSize:"sm",color:"primary",truncate:!0,children:y.label})]}),e.jsx(It.Toggle,{size:"sm",checked:w||v,disabled:v,onChange:()=>l(y.key),"aria-label":`Toggle ${y.label}`})]},y.key)})})]})]}),e.jsxs(x.Box,{direction:"row",display:"flex",gap:"sm",paddingInline:"md",paddingBlock:"sm",style:{borderTop:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:[e.jsx(x.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"md",fullWidth:!0,disabled:!i,onClick:c,children:"Reset"})}),e.jsx(x.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(H.Button,{variant:"primary",tone:"brand",size:"md",fullWidth:!0,onClick:r,children:"Selesai"})})]})]})})},tl=t=>`${t} Rows`,rl=({perPageKey:t,pageKey:r,pageSizeOptions:n,defaultPerPage:s=10,showPageSize:o})=>{const{searchQueries:i,setSearchParams:l,searchParams:c}=qe(),a=c.get(t),d=a?Number(a):s,h=g=>{l({...i,[t]:g,[r]:"1"})};return o?e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"MenuVertical",size:"sm"}),"aria-label":"More options"})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{minWidth:200},children:[e.jsx(x.Box,{paddingInline:"sm",paddingBlock:"xs",children:e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Rows per page"})}),n.map(g=>e.jsx(O.MenuItem,{selected:g===d,endIcon:g===d?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>h(String(g)),children:tl(g)},g))]})})]}):null},nl=t=>{var je;const{withPadding:r,configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,toggleFilter:l,removeFilter:c,getValue:a,setValue:d,clearValue:h,onReset:g,searchable:m,searchKey:y,filterKey:w,pageKey:v,searchPlaceholder:R,searchShortcut:L,searchCollapsible:M,pagination:b,perPageKey:S,pageSizeOptions:E,defaultPerPage:I,showPagination:D,showResultCount:T,showPageSize:G,hasColumns:z,orderedColumns:A,allVisible:V,onToggleVisibility:q,onReorder:Q,onSetAllHidden:te,showSavedViews:X,savedViews:$,onApplyView:N,onDeleteView:xe,onSaveView:de,leadingActions:Be,trailingActions:Ve}=t,[De,ge]=u.useState(!1),{searchQueries:pe,setSearchParams:Le}=qe(),Ne=(b==null?void 0:b.rangeStart)??(((b==null?void 0:b.currentPage)||0)>1?(((b==null?void 0:b.currentPage)||0)-1)*((b==null?void 0:b.perPage)||0)+1:1),Ae=(b==null?void 0:b.rangeEnd)??((b==null?void 0:b.totalCurrentPage)!==(b==null?void 0:b.perPage)?b==null?void 0:b.totalData:((b==null?void 0:b.currentPage)||1)*((b==null?void 0:b.totalCurrentPage)||0)),se=Ee=>{Le({...pe,[v]:String(Ee)})},le=T||D&&!!(b!=null&&b.totalPage),me=()=>{g(),ge(!1)};return e.jsxs(x.Box,{direction:"column",gap:"sm",fullWidth:!0,paddingTop:r?"sm":void 0,paddingBottom:r?"sm":void 0,paddingLeft:r?"md":void 0,paddingRight:r?"md":void 0,role:"toolbar","aria-label":"Filter bar",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",wrap:"wrap",gap:"sm",fullWidth:!0,overflow:"overflow-auto",children:[m&&e.jsx(Qo,{searchKey:y,filterKey:w,pageKey:v,placeholder:R,shortcut:L,collapsible:M}),e.jsx(H.Button,{variant:i?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"FilterHorizontal"}),onClick:()=>ge(!0),"aria-label":"Open filters",children:i?`Filter: ${s.length}`:null}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{marginLeft:"auto"},children:[Be,X&&e.jsx(Jo,{views:$,onApply:N,onDelete:xe,onSave:de}),z&&e.jsx(Uo,{columns:A,allVisible:V,onToggle:q,onReorder:Q,onSetAllHidden:te}),e.jsx(rl,{perPageKey:S,pageKey:v,pageSizeOptions:E,defaultPerPage:I,showPageSize:G}),Ve]})]}),le&&e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",fullWidth:!0,children:[T?e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${Ne}-${Ae} of ${((je=b==null?void 0:b.totalData)==null?void 0:je.toLocaleString())||0}`}):e.jsx(x.Box,{direction:"column"}),D&&!!(b!=null&&b.totalPage)&&e.jsx(Wt.Pagination,{size:"xs",variant:"neutral",siblingCount:0,currentPage:b!=null&&b.currentPage?Number(b.currentPage):1,totalPages:Number(b.totalPage),onPageChange:se})]}),e.jsx(el,{isOpen:De,onClose:()=>ge(!1),configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,onToggle:l,onReset:me,getValue:a,setValue:d,clearValue:h,removeFilter:c})]})},ol=({withPadding:t=!1,filterConfigs:r=[],filterKey:n="filter",activeFilterKey:s="filters",pageKey:o="page",perPageKey:i="perPage",pageSizeOptions:l=[25,50,100],defaultPerPage:c,showPagination:a=!0,showResultCount:d=!0,showPageSize:h=!0,searchable:g=!1,searchKey:m="q",searchPlaceholder:y="Search",searchShortcut:w="/",searchPosition:v="right",searchCollapsible:R=!0,pagination:L,columns:M=[],onColumnsChange:b,columnsState:S,scopeId:E,savedViews:I,persistLastState:D=!0,persistSearch:T=!0,storage:G=hn,onReset:z,leadingActions:A,trailingActions:V})=>{const q=E??(I==null?void 0:I.scopeId),{activeKeys:Q,configByKey:te,hasActiveFilter:X,toggleFilter:$,removeFilter:N,getValue:xe,setValue:de,clearValue:Be,clearAll:Ve}=xn({configs:r,filterKey:n,activeFilterKey:s,pageKey:o,searchKey:m}),De=Fi({columns:M,scopeId:q,storage:G,onColumnsChange:b,value:S}),ge=Ii({scopeId:q,storage:G,snapshotKeys:[s,n,i],pageKey:o,getColumns:()=>De.state,applyColumns:De.applyState}),pe=Li({scopeId:q,storage:G,snapshotKeys:[s,n,o],enabled:D,filterKey:n,searchKey:m,persistSearch:T}),Le=Ti({scopeId:q,storage:G,perPageKey:i,pageSizeOptions:l,enabled:D});Oi({enabled:D&&!!q,snapshotKeys:[s,n,o],perPageKey:i,readSnapshot:pe.read,readPerPage:Le.read});const Ne=c??l[0]??25,Ae=!!(I!=null&&I.enabled)&&ge.enabled,se=()=>{Ve(),pe.clear(),z==null||z()},le=we.useMediaQuery("md"),me=g?e.jsx(Qo,{searchKey:m,filterKey:n,pageKey:o,placeholder:y,shortcut:w,collapsible:R}):null;return le?e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"sm",wrap:"wrap",fullWidth:!0,paddingTop:t?"sm":void 0,paddingBottom:t?"sm":void 0,paddingLeft:t?"md":void 0,paddingRight:t?"md":void 0,role:"toolbar","aria-label":"Filter bar",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(Ai,{configs:r,activeKeys:Q,onToggle:$,hasActiveFilter:X,onReset:se}),v==="left"&&me,e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",overflow:"overflow-x-auto",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(Go,{activeKeys:Q,configByKey:te,getValue:xe,setValue:de,clearValue:Be,removeFilter:N}),X&&e.jsx(H.Button,{variant:"link",tone:"brand",size:"sm",onClick:se,children:"Reset"})]})]}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",children:[A,e.jsx(Xi,{pagination:L,pageKey:o,perPageKey:i,pageSizeOptions:l,defaultPerPage:Ne,showPagination:a,showResultCount:d,showPageSize:h}),v==="right"&&me,Ae&&e.jsx(Jo,{views:ge.views,onApply:ge.applyView,onDelete:ge.deleteView,onSave:ge.saveView}),M.length>0&&e.jsx(Uo,{columns:De.orderedColumns,allVisible:De.allVisible,onToggle:De.toggleVisibility,onReorder:De.reorder,onSetAllHidden:De.setAllHidden}),V]})]}):e.jsx(nl,{withPadding:t,configs:r,activeKeys:Q,configByKey:te,hasActiveFilter:X,toggleFilter:$,removeFilter:N,getValue:xe,setValue:de,clearValue:Be,onReset:se,searchable:g,searchKey:m,filterKey:n,pageKey:o,searchPlaceholder:y,searchShortcut:w,searchCollapsible:R,pagination:L,perPageKey:i,pageSizeOptions:l,defaultPerPage:Ne,showPagination:a,showResultCount:d,showPageSize:h,hasColumns:M.length>0,orderedColumns:De.orderedColumns,allVisible:De.allVisible,onToggleVisibility:De.toggleVisibility,onReorder:De.reorder,onSetAllHidden:De.setAllHidden,showSavedViews:Ae,savedViews:ge.views,onApplyView:ge.applyView,onDeleteView:ge.deleteView,onSaveView:ge.saveView,leadingActions:A,trailingActions:V})},sl=t=>{if(!Array.isArray(t)||t.length===0)return;const r=t[0];return(r==null?void 0:r.value)!=null?String(r.value):void 0},il=t=>{if(!Array.isArray(t)||t.length===0)return;const r=t.map(n=>(n==null?void 0:n.value)!=null?String(n.value):null).filter(n=>n!=null);return r.length?r:void 0},ll=(t,r)=>{switch(t.type){case"dropdown":case"radio":return sl(r);case"dropdown-multiple":case"checkbox-multiple":return il(r);case"date":return r instanceof Date?r.toISOString():void 0;case"date-compact":return r;case"text":return typeof r=="string"&&r?r:void 0;default:return}},to=(t,r)=>{if(t==null||t==="")return r;const n=Number(t);return Number.isFinite(n)&&n>0?n:r},cl=t=>{const{filterConfigs:r,filterKey:n="filter",activeFilterKey:s="filters",pageKey:o="page",perPageKey:i="perPage",searchKey:l="q",defaultPage:c=1,defaultPerPage:a=10,paramKeys:d,serialize:h}=t,{activeKeys:g,configByKey:m,hasActiveFilter:y,getValue:w}=xn({configs:r,filterKey:n,activeFilterKey:s,pageKey:o,searchKey:l}),{searchParams:v}=qe(),R=v.toString();return u.useMemo(()=>{const M={},b={},S=to(v.get(o),c),E=to(v.get(i),a);M[(d==null?void 0:d.page)??"page"]=S,M[(d==null?void 0:d.perPage)??"perPage"]=E;const I=xr(l,v,n)||"";I&&(M[(d==null?void 0:d.search)??"search"]=I);let D=!1;for(const T of g){const G=m[T];if(!G)continue;const z=w(G);b[T]=z;const A=h==null?void 0:h[T],V=A?A(z):ll(G,z);if(V==null||Array.isArray(V)&&V.length===0)continue;const q=(d==null?void 0:d[T])??T;M[q]=V,D=!0}return{params:M,raw:b,hasActiveFilter:y||!!I||D}},[R,g.join("|"),n,s,o,i,l,c,a,d,h,m])},al=["dropdown","dropdown-multiple","checkbox-multiple","radio"],dl=({filterConfigs:t,filterKey:r,activeFilterKey:n,pageKey:s,searchKey:o})=>{const{configByKey:i,getValue:l,setValue:c,removeFilter:a,clearAll:d,hasActiveFilter:h}=xn({configs:t,filterKey:r,activeFilterKey:n,pageKey:s,searchKey:o}),g=(b,S)=>{var I;const E=b.options;return((I=E==null?void 0:E.find(D=>D.value===S))==null?void 0:I.label)??S},m=u.useCallback(b=>{const S=i[b];if(!S)return[];const E=l(S);return Array.isArray(E)?E.map(I=>String(I.value)):[]},[i,l]),y=u.useCallback((b,S)=>{const E=i[b];if(!E||!al.includes(E.type))return;const I=Array.isArray(S)?S:[S];if(I.length===0){a(b);return}c(E,I.map(D=>({label:g(E,D),value:D})))},[i,c,a]),w=u.useCallback((b,S)=>{const E=m(b);y(b,E.includes(S)?E.filter(I=>I!==S):[...E,S])},[m,y]),v=u.useCallback((b,S)=>m(b).includes(S),[m]),R=u.useCallback(b=>a(b),[a]),L=u.useCallback(b=>{const S=i[b];return S?l(S):void 0},[i,l]),M=u.useCallback((b,S)=>{const E=i[b];if(E){if(S==null){a(b);return}c(E,S)}},[i,c,a]);return{set:y,toggle:w,clear:R,clearAll:d,isActive:v,values:m,getRaw:L,setRaw:M,hasActiveFilter:h}},Wr="var(--sa-background-brand, #04254f)",ul="var(--sa-text-brand, #031f43)",xl={padding:"6px 8px",border:"1px solid var(--sa-border-subtle, #0b120e24)",borderRadius:4,font:"inherit",fontSize:13,outline:"none",width:"100%",boxSizing:"border-box"},fn={padding:"4px 8px",border:"none",background:"none",cursor:"pointer",font:"inherit",textAlign:"left",fontSize:13,color:ul},Yo=(t,r)=>{if(t.type==="text"||t.type==="date")return!!r.getRaw(t.key);if(t.type==="date-compact"){const n=r.getRaw(t.key);return!!(n&&(n.date||n.from||n.to||n.relative||n.op==="is-empty"||n.op==="is-not-empty"))}return r.values(t.key).length>0},hl=({field:t,controls:r})=>{const[n,s]=u.useState(""),o=t.type==="dropdown"||t.type==="radio",i=t.type==="checkbox-multiple"?!1:t.searchable!==!1,l=r.values(t.key),c=i&&n.trim()?t.options.filter(d=>d.label.toLowerCase().includes(n.toLowerCase())):t.options,a=d=>{o?r.set(t.key,l.includes(d)?[]:d):r.toggle(t.key,d)};return e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:4,minWidth:200},children:[i&&e.jsx("input",{value:n,onChange:d=>{var h;s(d.target.value),(h=t.onSearch)==null||h.call(t,d.target.value)},placeholder:"Cari…",style:xl}),e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:2,maxHeight:220,overflowY:"auto"},children:[c.map(d=>{const h=l.includes(d.value);return e.jsxs("button",{type:"button",onClick:()=>a(d.value),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 8px",border:"none",background:"none",cursor:"pointer",font:"inherit",textAlign:"left",borderRadius:4},children:[e.jsx("span",{style:{width:16,height:16,flexShrink:0,borderRadius:o?"50%":4,display:"inline-flex",alignItems:"center",justifyContent:"center",border:`1px solid ${h?Wr:"var(--sa-border-subtle, #0b120e24)"}`,background:h&&!o?Wr:"transparent"},children:h&&(o?e.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:Wr}}):e.jsx(B.Icon,{name:"Check",size:"xs",style:{color:"#fff"}}))}),e.jsx(C.Text,{as:"span",style:{fontSize:14},children:d.label})]},d.value)}),c.length===0&&e.jsx(C.Text,{as:"span",style:{fontSize:13,color:"var(--sa-text-subtlest, #8c8f97)",padding:"6px 8px"},children:"Tak ada hasil"})]}),l.length>0&&e.jsx("button",{type:"button",onClick:()=>r.clear(t.key),style:fn,children:"Clear"})]})},fl=({field:t,controls:r})=>{const n=r.getRaw(t.key);return e.jsx(x.Box,{style:{minWidth:240},children:e.jsx(yt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:t.mode,value:n,onChange:s=>r.setRaw(t.key,s??null),withPadding:!1})})},ml=({field:t,controls:r})=>{const n=r.getRaw(t.key),s=t.ops&&t.ops.length>0?t.ops:_o,o=t.defaultOp&&s.includes(t.defaultOp)?t.defaultOp:s[0],i=t.mode??"days",l=(n==null?void 0:n.op)??o,c=d=>r.setRaw(t.key,d),a=d=>{if(d!==l)return c(d==="is-empty"||d==="is-not-empty"?{op:d}:d==="is-relative-to-today"?{op:d,relative:(n==null?void 0:n.relative)??{direction:"past",count:1,period:"week"}}:d==="is-between"?{op:d,from:n==null?void 0:n.from,to:n==null?void 0:n.to}:{op:d,date:n==null?void 0:n.date})};return e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:280},children:[e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"xs",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(qo,{op:l,ops:s,onChange:a})]}),e.jsx(Zo,{value:n,op:l,mode:i,onChange:c}),Yo(t,r)&&e.jsx("button",{type:"button",onClick:()=>r.setRaw(t.key,null),style:fn,children:"Clear"})]})},gl=({field:t,controls:r})=>{const n=r.getRaw(t.key)??"",[s,o]=u.useState(n),i=we.useDebounce(s,t.debounceMs??300);return u.useEffect(()=>{const l=r.getRaw(t.key)??"";i!==l&&r.setRaw(t.key,i||null)},[i]),e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:220},children:[e.jsx(ut.Input,{size:"sm",fullWidth:!0,value:s,placeholder:t.placeholder??"Cari…",leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:l=>o(l.target.value)}),s&&e.jsx("button",{type:"button",onClick:()=>{o(""),r.setRaw(t.key,null)},style:fn,children:"Clear"})]})},pl=({field:t,controls:r})=>t.type==="text"?e.jsx(gl,{field:t,controls:r}):t.type==="date"?e.jsx(fl,{field:t,controls:r}):t.type==="date-compact"?e.jsx(ml,{field:t,controls:r}):e.jsx(hl,{field:t,controls:r}),yl=(t,r)=>{if(!t)return{};const{fromKey:n,toKey:s,opKey:o}=r,i={};switch(t.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return t.date&&(i[n]=new Date(t.date).toISOString()),o&&(i[o]=t.op),i;case"is-between":return t.from&&(i[n]=new Date(t.from).toISOString()),t.to&&(i[s]=new Date(t.to).toISOString()),i;case"is-relative-to-today":{if(!t.relative)return i;const{from:l,to:c}=Po(t.relative);return i[n]=l.toISOString(),i[s]=c.toISOString(),i}case"is-empty":case"is-not-empty":return o&&(i[o]=t.op==="is-empty"?"empty":"not-empty"),i;default:return i}},Xo=({children:t,borderRadius:r,height:n})=>{const s=u.useRef(null),[o,i]=u.useState("100vh");return u.useEffect(()=>{if(n)return;const l=()=>{if(s.current){const c=s.current.getBoundingClientRect().top;i(`calc(100vh - ${c}px)`)}};return l(),window.addEventListener("resize",l),()=>window.removeEventListener("resize",l)},[n]),e.jsx(x.Box,{ref:s,fullWidth:!0,borderStyle:"border-solid",borderWidth:"border",borderColor:"border-base",borderRadius:r||"rounded-xs",style:{height:n??o,display:"flex",flexDirection:"column"},children:t})},$o=({action:t,rightContent:r,leftContent:n,headerSlot:s,advanceFilter:o,showFilter:i=!0})=>{const l=we.useMediaQuery("md"),c=i?e.jsx(Ho,{...o}):null,a=()=>t?u.isValidElement(t)?t:e.jsx(x.Box,{style:{display:"flex",flexDirection:l?"row":"column",gap:"8px",width:l?"auto":"100%",textWrap:"nowrap"},children:t.map(({title:d,icon:h,buttonProps:g,onClick:m},y)=>!d&&!h?null:e.jsx(H.Button,{fullWidth:!l,iconLeft:h?e.jsx(B.Icon,{name:h}):void 0,onClick:m,...g,children:d},`action-${y}`))}):null;return e.jsx(x.Box,{style:{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",paddingLeft:"8px",paddingRight:"8px",paddingTop:"8px",paddingBottom:"8px",borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)",flexShrink:0,position:"relative",zIndex:10,flexDirection:l?"row":"column-reverse",gap:"16px"},children:s?s({filter:c}):e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flex:1,minWidth:0},children:[c,n]}),e.jsxs(x.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flexShrink:0},children:[r,a()]})]})})},bl=({totalData:t,withMarginBottom:r=!0,withMarginTop:n=!0})=>e.jsxs(x.Box,{style:{display:"flex",gap:"4px",flexDirection:"row",alignItems:"center",marginBottom:r?"16px":void 0,marginTop:n?"16px":void 0},children:[e.jsxs(Ke.Body1,{props:{color:"gray-500"},children:["Total data:"," "]}),e.jsx(Ke.Body1,{children:t||0})]}),Ko=({pagination:t,pageKey:r="page",perPageKey:n="perPage",defaultPerPage:s=10,showPagination:o=!0,totalData:i})=>{const{searchQueries:l,setSearchParams:c,searchParams:a}=qe(),d=a.get(n),h=w=>{c({...l,[r]:String(w)})},g=w=>{c({...l,[n]:w,[r]:"1"})},m=(t==null?void 0:t.rangeStart)??(((t==null?void 0:t.currentPage)||0)>1?(((t==null?void 0:t.currentPage)||0)-1)*((t==null?void 0:t.perPage)||0)+1:1),y=(t==null?void 0:t.rangeEnd)??((t==null?void 0:t.totalCurrentPage)!==(t==null?void 0:t.perPage)?t==null?void 0:t.totalData:((t==null?void 0:t.currentPage)||1)*((t==null?void 0:t.totalCurrentPage)||0));return e.jsx(x.Box,{style:{display:"flex",width:"100%",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingLeft:"16px",paddingRight:"16px",paddingTop:"8px",paddingBottom:"8px",borderTop:"1px solid var(--sa-border-subtle, #0b120e24)",flexShrink:0},children:o?e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",gap:"8px",alignItems:"center",textWrap:"nowrap"},children:[e.jsx(C.Text,{children:"Rows Per Page: "}),e.jsx(Et.Dropdown,{dropdownLists:[{label:"5",value:"5"},{label:"10",value:"10"},{label:"25",value:"25"},{label:"50",value:"50"},{label:"100",value:"100"}],onChange:w=>{g(w[0].value)},value:d?[{label:`${d} per row`,value:d}]:[{label:`${s} per row`,value:`${s}`}],defaultValue:d?[{label:`${d} per row`,value:d}]:[{label:`${s} per row`,value:`${s}`}]}),e.jsx(C.Text,{children:`${m}-${y} of ${(t==null?void 0:t.totalData)||0}`})]}),e.jsx(Wt.Pagination,{currentPage:t!=null&&t.currentPage?Number(t==null?void 0:t.currentPage):1,totalPages:t!=null&&t.totalPage?Number(t==null?void 0:t.totalPage):1,onPageChange:h})]}):e.jsx(bl,{totalData:i,withMarginBottom:!1,withMarginTop:!1})})},es=({filter:t,columnTitle:r})=>{const[n,s]=u.useState(!1),o=u.useRef(null),i=u.useRef(null),l=u.useRef(null),[c,a]=u.useState(""),[d,h]=u.useState({top:0,left:0}),g=t.selectedValues,m=u.useMemo(()=>c?t.options.filter(v=>v.label.toLowerCase().includes(c.toLowerCase())):t.options,[t.options,c]);u.useEffect(()=>{if(n&&i.current){const v=i.current.getBoundingClientRect(),R=280,L={top:v.bottom+8};t.position==="left"||v.left+R>window.innerWidth?L.right=window.innerWidth-v.right:L.left=v.left,h(L)}},[n,t.position]),u.useEffect(()=>{n&&l.current?setTimeout(()=>{var v;return(v=l.current)==null?void 0:v.focus()},50):a("")},[n]),u.useEffect(()=>{const v=R=>{o.current&&!o.current.contains(R.target)&&i.current&&!i.current.contains(R.target)&&s(!1)};return n&&document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[n]);const y=v=>{const R=g.includes(v)?g.filter(L=>L!==v):[...g,v];t.onFilterChange(R)},w=()=>t.onFilterChange([]);return e.jsxs(x.Box,{direction:"column",style:{position:"relative"},children:[e.jsx(x.Box,{ref:i,style:{display:"flex",flexDirection:"row",alignItems:"center",cursor:"pointer"},onClick:v=>{var R;v.stopPropagation(),n||(R=t.onOpen)==null||R.call(t),s(L=>!L)},children:e.jsx(B.Icon,{name:n?"ChevronUp":"ChevronDown",size:"sm",style:{color:g.length>0?"var(--sa-color-brand-500, #1a4fa0)":"var(--sa-text-subtle, #8c8f97)"}})}),n&&e.jsxs(x.Box,{ref:o,style:{position:"fixed",top:`${d.top}px`,...d.left!==void 0?{left:`${d.left}px`}:{right:`${d.right}px`},backgroundColor:"white",borderRadius:"4px",minWidth:"280px",maxHeight:"400px",display:"flex",flexDirection:"column",zIndex:9999,animation:"fadeInDropdown 0.15s ease-out",border:"1px solid var(--sa-border-subtle, #0b120e24)"},children:[e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingTop:"12px",paddingBottom:"12px",paddingLeft:"16px",paddingRight:"16px",borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)"},children:[e.jsxs(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-700",children:["Filter ",r]}),g.length>0&&e.jsx(x.Box,{direction:"column",style:{cursor:"pointer"},children:e.jsx(C.Text,{fontSize:"xs",color:"primary",fontWeight:"semibold",onClick:v=>{v.stopPropagation(),w()},children:"CLEAR"})})]}),!t.hideSearch&&e.jsx(x.Box,{direction:"column",style:{paddingLeft:"16px",paddingRight:"16px",paddingTop:"8px",paddingBottom:"8px"},children:e.jsx(ut.Input,{ref:l,placeholder:`Search ${r.toLowerCase()}...`,leftIcon:e.jsx(B.Icon,{name:"Search",size:"sm"}),value:c,onChange:v=>a(v.target.value),style:{fontSize:"14px"}})}),e.jsx(x.Box,{direction:"column",className:"ts-filter-dropdown-options",style:{overflowY:"auto",maxHeight:"250px",paddingLeft:"8px",paddingRight:"8px"},children:t.isLoadingOptions?e.jsxs(x.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(B.Icon,{name:"Loading",size:"lg",style:{color:"var(--sa-background-brand, #04254f)",animation:"spin 1s linear infinite"}}),e.jsx(C.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"Loading options..."})]}):m.length>0?e.jsx(x.Box,{direction:"column",style:{gap:"2px",paddingTop:"4px",paddingBottom:"4px"},children:m.map(v=>e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",paddingTop:"8px",paddingBottom:"8px",paddingLeft:"8px",paddingRight:"8px",cursor:"pointer",borderRadius:"8px",transition:"all 0.2s ease",backgroundColor:g.includes(v.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent"},onClick:R=>{R.stopPropagation(),y(v.value)},onMouseEnter:R=>{g.includes(v.value)||(R.currentTarget.style.backgroundColor="var(--sa-background-primary, #ffffff)"),R.currentTarget.style.transform="translateX(2px)"},onMouseLeave:R=>{R.currentTarget.style.backgroundColor=g.includes(v.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent",R.currentTarget.style.transform="translateX(0)"},children:[e.jsx(dt.Checkbox,{checked:g.includes(v.value),onChange:()=>{}}),e.jsx(C.Text,{fontSize:"sm",fontWeight:g.includes(v.value)?"medium":"normal",color:g.includes(v.value)?"primary":"gray-700",children:v.label})]},v.value))}):e.jsxs(x.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(B.Icon,{name:"Search",size:"lg",style:{color:"var(--sa-text-subtle, #8c8f97)"}}),e.jsx(C.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"No results found"})]})}),g.length>0&&e.jsx(x.Box,{direction:"column",style:{paddingTop:"8px",paddingBottom:"8px",paddingLeft:"16px",paddingRight:"16px",borderTop:"1px solid var(--sa-border-subtle, #0b120e24)",backgroundColor:"var(--sa-color-brand-50, #e6edf6)",marginTop:"auto"},children:e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"4px"},children:[e.jsx(x.Box,{direction:"column",style:{backgroundColor:"var(--sa-background-brand, #04254f)",borderRadius:"12px",padding:"2px 8px",fontSize:"11px",fontWeight:600,color:"white"},children:g.length}),e.jsxs(C.Text,{fontSize:"xs",color:"primary",fontWeight:"medium",children:["item",g.length>1?"s":""," selected"]})]})})]})]})},jl=({direction:t})=>{const r="var(--sa-text-primary, #292a2e)",n="var(--sa-text-subtle, #8c8f97)",s=t==="asc"?r:n,o=t==="desc"?r:n,i=t==="asc"?1:.45,l=t==="desc"?1:.45;return e.jsxs("span",{style:{display:"inline-flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flexShrink:0,lineHeight:0},"aria-hidden":!0,children:[e.jsx("svg",{width:"8",height:"5",viewBox:"0 0 8 5",style:{color:s,opacity:i,marginBottom:1},children:e.jsx("path",{d:"M4 0 L8 5 L0 5 Z",fill:"currentColor"})}),e.jsx("svg",{width:"8",height:"5",viewBox:"0 0 8 5",style:{color:o,opacity:l},children:e.jsx("path",{d:"M0 0 L8 0 L4 5 Z",fill:"currentColor"})})]})},vl=({frozen:t})=>e.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:t?"currentColor":"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),e.jsx("path",{d:t?"M7 11V7a5 5 0 0 1 10 0v4":"M7 11V7a5 5 0 0 1 9.9-1"})]}),zr="var(--sa-background-primary, #ffffff)",ro="var(--sa-background-primary-inverse, #f8f8f8)",ts=({columns:t,records:r,handleDetail:n,handleUpdate:s,handleDelete:o,isLoading:i,visibleHandleDelete:l,visibleHandleUpdate:c,visibleHandleDetail:a,showHeadBorder:d=!1,scrollParentRef:h,frozenCount:g=0,onFrozenCountChange:m,customActions:y,actionsOrder:w=["detail","update","delete","custom"],customEmptyState:v,enableColumnResize:R=!1,defaultColumnWidths:L,onColumnWidthsChange:M,defaultMinColumnWidth:b=60,sort:S,defaultSort:E,onSortChange:I,showActionDivider:D=!1})=>{const T=S!==void 0,[G,z]=u.useState(E??null),A=T?S??null:G,V=W=>{if(W.sortKey)return W.sortKey;if(typeof W.accessor=="string")return W.accessor},q=W=>{const Y=V(W);if(!Y)return;let U;!A||A.key!==Y?U={key:Y,direction:"asc"}:A.direction==="asc"?U={key:Y,direction:"desc"}:U=null,T||z(U),I==null||I(U)},te=[n,s,o].filter(W=>W!==void 0).length,X=!!y,$=!!n||!!s||!!o||X,N="var(--sa-border-subtle, #0b120e24)",xe=`1px solid ${N}`,de=`inset 1px 0 0 ${N}`,Be=`inset -1px 0 0 ${N}`,Ve=te===3?X?"178px":"140px":te===2?X?"140px":"102px":te===1?X?"112px":"74px":X?"74px":"",De=(W,Y)=>{if(!Y)return W;if(typeof Y=="function")return Y(W);if(typeof Y=="string")return W[Y]},[ge,pe]=u.useState(!1);u.useEffect(()=>{if(!(h!=null&&h.current))return;const W=h.current;pe(W.scrollHeight>W.clientHeight)},[r,h]);const Le=u.useRef(null),[Ne,Ae]=u.useState([]),[se,le]=u.useState(()=>L??{}),me=u.useRef(null);u.useLayoutEffect(()=>{if(!g||!Le.current){Ae([]);return}const W=Array.from(Le.current.querySelectorAll("thead tr th")),Y=[];let U=0;W.forEach((ce,Se)=>{Y[Se]=U,Se<g&&(U+=ce.offsetWidth)}),Ae(Y)},[g,t,r,se]);const je=W=>{m&&m(W<g?W:W+1)},Ee=(W,Y)=>{const U=se[W];if(U!==void 0){const ce=`${U}px`;return{width:ce,minWidth:ce,maxWidth:ce}}return Y?{width:Y}:{}},et=W=>R&&(W.resizable??!0),tt=(W,Y)=>{W.preventDefault(),W.stopPropagation();const U=W.currentTarget.closest("th");if(!U)return;const ce=Math.round(U.getBoundingClientRect().width);me.current={colIndex:Y,startX:W.clientX,startWidth:ce};const Se=document.body.style.userSelect,ye=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";const We=Ze=>{var ke;const Fe=me.current;if(!Fe)return;const ht=((ke=t[Fe.colIndex])==null?void 0:ke.minWidth)??b,ct=Math.max(ht,Fe.startWidth+(Ze.clientX-Fe.startX));le(Te=>Te[Fe.colIndex]===ct?Te:{...Te,[Fe.colIndex]:ct})},rt=()=>{document.removeEventListener("mousemove",We),document.removeEventListener("mouseup",rt),document.body.style.userSelect=Se,document.body.style.cursor=ye,me.current=null,M&&le(Ze=>(M(Ze),Ze))};document.addEventListener("mousemove",We),document.addEventListener("mouseup",rt)};return e.jsx("div",{ref:Le,children:e.jsxs(Z.Table,{fullWidth:!0,children:[e.jsx(Z.Thead,{style:{height:"40px",whiteSpace:"nowrap"},children:e.jsxs(Z.Tr,{children:[t.map((W,Y)=>{var bt,nt;const U=g>0&&Y<g,ce=Ne[Y]??0,Se=et(W),We=Y===t.length-1&&$&&D,rt=V(W),Ze=!!W.sortable&&!!rt,Fe=Ze&&(A==null?void 0:A.key)===rt?A.direction:null,ht=W.title||((bt=W.accessor)==null?void 0:bt.toString())||"",ct=(nt=W.headerTooltip)!=null&&nt.showIcon?e.jsx(B.Icon,{name:"InfoCircle",size:"xs",style:{flexShrink:0,color:"var(--sa-icon-subtle, #8c8f97)",opacity:.75}}):null,ke=e.jsx("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:ht}),Te=Ze?e.jsxs("button",{type:"button",onClick:()=>q(W),title:Fe==="asc"?"Sorted ascending — click to sort descending":Fe==="desc"?"Sorted descending — click to clear":"Click to sort ascending",style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:4,background:"none",border:"none",padding:0,margin:0,font:"inherit",color:"inherit",cursor:"pointer",textAlign:W.textAlign==="text-right"?"right":W.textAlign==="text-center"?"center":"left"},children:[ke,ct,e.jsx(jl,{direction:Fe})]}):e.jsxs("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:4},children:[ke,ct]});return e.jsxs(Z.Th,{style:{position:"sticky",top:0,left:U?ce:void 0,zIndex:U?4:2,paddingLeft:Y===0?"12px":"",borderRight:d&&!We&&!U?xe:void 0,borderBottom:d?xe:void 0,boxShadow:d&&U?Be:void 0,backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",textAlign:W.textAlign==="text-right"?"right":W.textAlign==="text-center"?"center":"left",...Ee(Y,W.width)},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4px",justifyContent:"space-between",minWidth:0},children:[W.headerTooltip?e.jsx(Me.Tooltip,{label:W.headerTooltip.content,position:"bottom",children:Te}):Te,W.filter&&e.jsx(es,{filter:W.filter,columnTitle:W.title}),m&&e.jsx("button",{onClick:()=>je(Y),title:U?"Unfreeze column":"Freeze column",style:{background:"none",border:"none",cursor:"pointer",padding:"2px",display:"flex",alignItems:"center",flexShrink:0,color:U?"var(--sa-background-brand, #04254f)":"var(--sa-text-subtle, #8c8f97)",opacity:U?1:.45,transition:"opacity 0.15s"},children:e.jsx(vl,{frozen:U})})]}),Se&&e.jsx("div",{onMouseDown:ft=>tt(ft,Y),onClick:ft=>ft.stopPropagation(),role:"separator","aria-orientation":"vertical",title:"Drag to resize",style:{position:"absolute",top:0,right:-3,width:6,height:"100%",cursor:"col-resize",userSelect:"none",zIndex:5,touchAction:"none"}})]},`table-head-${Y}`)}),$?e.jsx(Z.Th,{style:{backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",position:"sticky",top:0,right:0,zIndex:3,borderBottom:d?xe:void 0,boxShadow:d&&D?de:void 0}}):null]})}),e.jsx(Z.Tbody,{children:i?e.jsx(Z.Tr,{children:e.jsx(Z.Td,{colSpan:t.length+1,children:e.jsxs(x.Box,{direction:"column",style:{gap:"16px"},children:[e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"})]})})}):!(r!=null&&r.length)&&v?e.jsx(Z.Tr,{children:e.jsx(Z.Td,{colSpan:t.length+1,children:v})}):r==null?void 0:r.map((W,Y)=>e.jsxs(Z.Tr,{style:{transition:"background-color 0.3s ease",padding:0,borderBottom:Y===r.length-1&&ge?void 0:"1px solid var(--sa-border-subtle, #0b120e24)"},onMouseEnter:U=>{const ce=U.currentTarget;ce.style.backgroundColor=ro,Array.from(ce.querySelectorAll("td")).forEach(Se=>{Se.style.position==="sticky"&&(Se.style.backgroundColor=ro)})},onMouseLeave:U=>{const ce=U.currentTarget;ce.style.backgroundColor="",Array.from(ce.querySelectorAll("td")).forEach(Se=>{Se.style.position==="sticky"&&(Se.style.backgroundColor=zr)})},children:[t.map((U,ce)=>{const Se=U.render?U.render(W,Y,r):De(W,U.accessor),ye=g>0&&ce<g,We=Ne[ce]??0,rt=se[ce]!==void 0,Ze=ye&&ce===g-1;return e.jsx(Z.Td,{style:{position:ye?"sticky":void 0,left:ye?We:void 0,zIndex:ye?1:void 0,backgroundColor:ye?zr:void 0,transition:ye?"background-color 0.3s ease":void 0,paddingLeft:ce===0?"12px":"",whiteSpace:"nowrap",overflow:rt?"hidden":void 0,borderLeft:U.showBorderLeft?xe:void 0,borderRight:U.showBorderRight?xe:void 0,boxShadow:Ze?Be:void 0,textAlign:U.textAlign==="text-right"?"right":U.textAlign==="text-center"?"center":"left",...Ee(ce,U.width)},children:typeof Se=="string"?e.jsx(C.Text,{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textAlign:U.textAlign==="text-right"?"right":U.textAlign==="text-center"?"center":"left"},children:Se}):Se},`row-${Y}-col-${ce}`)}),$?e.jsx(Z.Td,{style:{width:Ve,position:"sticky",right:0,zIndex:1,backgroundColor:zr,boxShadow:D?de:void 0,transition:"background-color 0.3s ease"},children:e.jsx(ae.Flex,{direction:"row",align:"center",justify:"center",gap:"sm",children:w.map(U=>{const ce=Y===r.length-1?"top":"bottom";return U==="detail"&&n&&(a==null?void 0:a(W))!==!1?e.jsx(Me.Tooltip,{label:"Detail",position:ce,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>n(W.id,W),iconLeft:e.jsx(B.Icon,{name:"DocumentClean",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"detail"):U==="update"&&s&&(c==null?void 0:c(W))!==!1?e.jsx(Me.Tooltip,{label:"Update",position:ce,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>s(W),iconLeft:e.jsx(B.Icon,{name:"Edit1",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"update"):U==="delete"&&o&&(l==null?void 0:l(W))!==!1?e.jsx(Me.Tooltip,{label:"Delete",position:ce,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>o(W.id,W),iconLeft:e.jsx(B.Icon,{name:"Trash1",size:"sm",style:{color:"var(--sa-color-error-600, #c9184a)"}})})},"delete"):U==="custom"?e.jsx(u.Fragment,{children:y==null?void 0:y(W)},"custom"):null})})}):null]},`${W}${Y}`))})]})})};let no=!1;const Cl=({wrapperProps:t,dataTableProps:r,headerProps:n,footerProps:s})=>{var g;process.env.NODE_ENV!=="production"&&!no&&(no=!0,console.warn("[@starasia/admin] `TableSection` deprecated — pakai `<FilterBar>` + `<TableLayout>`. Lihat skill `starasia-list-page-pattern`. Akan dihapus di salah satu major berikutnya."));const o=u.useRef(null),[i,l]=u.useState((r==null?void 0:r.defaultFrozenCount)??0),c=(n==null?void 0:n.show)??!0,a=u.useRef(null),d=(g=r==null?void 0:r.pagination)==null?void 0:g.totalData;typeof d=="number"&&(a.current=d);const h=(s==null?void 0:s.showFooter)??(d===void 0?a.current!==0:d!==0);return e.jsxs(Xo,{...t,children:[c&&e.jsx($o,{...n}),e.jsx(x.Box,{direction:"column",ref:o,style:{flex:1,overflowY:"auto",overflowX:"auto"},children:r?e.jsx(ts,{...r,scrollParentRef:o,frozenCount:r!=null&&r.enableFreezeColumns?i:0,onFrozenCountChange:r!=null&&r.enableFreezeColumns?l:void 0}):null}),h&&e.jsx(Ko,{pagination:r==null?void 0:r.pagination,pageKey:r==null?void 0:r.pageKey,perPageKey:r==null?void 0:r.perPageKey,defaultPerPage:r==null?void 0:r.defaultPerPage,showPagination:r==null?void 0:r.showPagination,totalData:s==null?void 0:s.totalData})]})};function wl(t){return u.memo(t)}const Dl=wl(Cl),rs="(any-pointer: coarse)",Sl=t=>{if(typeof window>"u"||!window.matchMedia)return()=>{};const r=window.matchMedia(rs);return r.addEventListener("change",t),()=>r.removeEventListener("change",t)},kl=()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(rs).matches,Bl=()=>!1;function ns(){return u.useSyncExternalStore(Sl,kl,Bl)}const oo=200,$t="1px solid var(--sa-border-subtle, #0b120e24)",El=({sortDir:t,frozen:r,filterActive:n})=>t==="asc"?e.jsx(B.Icon,{name:"ChevronSmallUp"}):t==="desc"?e.jsx(B.Icon,{name:"ChevronSmallDown"}):r?e.jsx(B.Icon,{name:"LockOn",size:"xs"}):e.jsx(B.Icon,{name:"Filter",size:"xs",style:n?{color:"var(--sa-text-brand, #031f43)"}:void 0}),Kt=({icon:t,label:r,active:n,danger:s,onClick:o})=>{const i=s?"var(--sa-text-error, #a4133c)":"var(--sa-text-primary, #292a2e)";return e.jsxs("button",{type:"button",onClick:o,style:{display:"flex",alignItems:"center",gap:12,width:"100%",padding:"8px 12px",background:n?"var(--sa-background-brand-subtlest, #e6edf6)":"none",border:"none",cursor:"pointer",font:"inherit",color:i,textAlign:"left"},onMouseEnter:l=>{n||(l.currentTarget.style.background="var(--sa-background-primary-inverse, #f8f8f8)")},onMouseLeave:l=>{l.currentTarget.style.background=n?"var(--sa-background-brand-subtlest, #e6edf6)":"none"},children:[e.jsx(B.Icon,{name:t,size:"sm",style:{color:i,flexShrink:0}}),e.jsx(C.Text,{as:"span",style:{color:i},children:r})]})},Fl=t=>{let r=(t==null?void 0:t.parentElement)??null;for(;r;){const n=getComputedStyle(r).overflowX;if((n==="auto"||n==="scroll")&&r.scrollWidth>r.clientWidth)return r;r=r.parentElement}return null},os=({active:t,canSort:r,canHide:n,sortDir:s,frozen:o,onSort:i,onClearSort:l,onToggleFreeze:c,onHide:a,filterSlot:d,filterActive:h})=>{const[g,m]=u.useState(!1),y=u.useRef(null),w=u.useRef(null),[v,R]=u.useState({top:0,left:0}),L=u.useCallback(()=>{var A;const b=y.current;if(!b)return;const S=b.getBoundingClientRect(),E=b.closest(".sa-tl-scroll")??Fl(b),I=E==null?void 0:E.getBoundingClientRect();if(I&&(S.left<I.left||S.left>I.right)){m(!1);return}const D=Math.min(window.innerWidth-8,I?I.right:window.innerWidth),T=((A=w.current)==null?void 0:A.offsetWidth)||oo,G=I?I.left:8,z=Math.max(G,Math.min(S.left,D-T));R({top:S.bottom+6,left:z})},[]);u.useEffect(()=>{if(!g)return;L();const b=()=>L();return window.addEventListener("scroll",b,!0),window.addEventListener("resize",b),()=>{window.removeEventListener("scroll",b,!0),window.removeEventListener("resize",b)}},[g,L]),u.useEffect(()=>{if(!g)return;const b=S=>{w.current&&!w.current.contains(S.target)&&y.current&&!y.current.contains(S.target)&&m(!1)};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[g]);const M=b=>{b(),m(!1)};return e.jsxs(e.Fragment,{children:[e.jsx("button",{ref:y,type:"button",className:"sa-tl-menu-trigger","data-active":t||g?"true":"false",onClick:b=>{b.stopPropagation(),m(S=>!S)},title:"Column options",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:"var(--sa-radii-sm, 6px)",border:$t,background:"var(--sa-background-primary, #ffffff)",cursor:"pointer",color:"var(--sa-text-subtle, #8c8f97)",flexShrink:0},children:e.jsx(El,{sortDir:s,frozen:o,filterActive:h})}),g&&e.jsxs(x.Box,{ref:w,onClick:b=>b.stopPropagation(),style:{position:"fixed",top:`${v.top}px`,...v.left!==void 0?{left:`${v.left}px`}:{right:`${v.right}px`},minWidth:oo,backgroundColor:"var(--sa-background-primary, #ffffff)",border:$t,borderRadius:"var(--sa-radii-sm, 6px)",boxShadow:"var(--sa-shadow-xl, 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a)",zIndex:9999,padding:"4px",display:"flex",flexDirection:"column"},children:[d!=null&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{padding:"6px 12px 2px"},children:e.jsx(C.Text,{as:"span",style:{fontSize:12,fontWeight:500,color:"var(--sa-text-subtlest, #8c8f97)"},children:"Filter"})}),e.jsx("div",{style:{padding:"2px 8px 4px"},children:d}),e.jsx("div",{style:{borderTop:$t,margin:"4px 0"}})]}),r&&e.jsxs(e.Fragment,{children:[e.jsx(Kt,{icon:"ChevronUp",label:"Ascending",active:s==="asc",onClick:()=>M(()=>s==="asc"?l():i("asc"))}),e.jsx(Kt,{icon:"ChevronDown",label:"Descending",active:s==="desc",onClick:()=>M(()=>s==="desc"?l():i("desc"))}),e.jsx("div",{style:{borderTop:$t,margin:"4px 0"}})]}),e.jsx(Kt,{icon:"Pin1",label:o?"Unfreeze":"Freeze",active:o,onClick:()=>M(c)}),n&&e.jsx(Kt,{icon:"EyeClosed",label:"Hide column",danger:!0,onClick:()=>M(a)})]})]})},Il=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Ml={background:"var(--sa-background-warning-subtlest, #fef2e6)",color:"inherit",padding:0,borderRadius:2},ss=({text:t,query:r,markStyle:n})=>{const s=r==null?void 0:r.trim();if(!s||!t)return e.jsx(e.Fragment,{children:t});const o=s.split(/\s+/).filter(Boolean);if(!o.length)return e.jsx(e.Fragment,{children:t});const i=new Set(o.map(a=>a.toLowerCase())),l=new RegExp(`(${o.map(Il).join("|")})`,"gi"),c=t.split(l);return e.jsx(e.Fragment,{children:c.map((a,d)=>a&&i.has(a.toLowerCase())?e.jsx("mark",{style:{...Ml,...n},children:a},d):e.jsx(u.Fragment,{children:a},d))})},Tt="1px solid var(--sa-border-subtle, #0b120e24)",Ll="var(--sa-text-subtle, #8c8f97)",St="var(--sa-background-neutral, #f0f1f2)",so="2px 0 4px -2px var(--sa-border-subtle, #0b120e24)",Rt=40,Hr=5,Tl=28,Pr=4,er=16,Vr="var(--sa-background-brand-subtlest)",tr={display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},io="sa-table-layout-styles",Rl=()=>{if(typeof document>"u"||document.getElementById(io))return;const t=document.createElement("style");t.id=io,t.textContent=`
|
|
2
2
|
.sa-table-layout tbody td {
|
|
3
3
|
transition: background-color 0.15s ease;
|
|
4
4
|
background-color: var(--sa-tl-bg, transparent);
|