@starasia/admin 14.48.0 → 14.49.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.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(u,mr){typeof exports=="object"&&typeof module<"u"?mr(exports,require("@starasia/alert"),require("@starasia/avatar"),require("@starasia/badges"),require("@starasia/box"),require("@starasia/breadcrumb"),require("@starasia/button"),require("@starasia/card"),require("@starasia/date"),require("@starasia/dialog"),require("@starasia/drawer"),require("@starasia/dropdown"),require("@starasia/hooks"),require("@starasia/http"),require("@starasia/input"),require("@starasia/menu"),require("@starasia/pagination"),require("@starasia/storage"),require("@starasia/table"),require("@starasia/tabs"),require("@starasia/textarea"),require("@starasia/theme"),require("@starasia/toast"),require("@starasia/toggle"),require("@starasia/tooltip"),require("@starasia/checkbox"),require("@starasia/radio"),require("@starasia/text"),require("@starasia/icon"),require("@starasia/flex"),require("@starasia/grid"),require("@starasia/progress"),require("@starasia/stepper"),require("@starasia/accordion"),require("@starasia/story-record"),require("@starasia/skeleton"),require("@starasia/progress-stepper"),require("react/jsx-runtime"),require("react"),require("react-dom"),require("react-easy-crop")):typeof define=="function"&&define.amd?define(["exports","@starasia/alert","@starasia/avatar","@starasia/badges","@starasia/box","@starasia/breadcrumb","@starasia/button","@starasia/card","@starasia/date","@starasia/dialog","@starasia/drawer","@starasia/dropdown","@starasia/hooks","@starasia/http","@starasia/input","@starasia/menu","@starasia/pagination","@starasia/storage","@starasia/table","@starasia/tabs","@starasia/textarea","@starasia/theme","@starasia/toast","@starasia/toggle","@starasia/tooltip","@starasia/checkbox","@starasia/radio","@starasia/text","@starasia/icon","@starasia/flex","@starasia/grid","@starasia/progress","@starasia/stepper","@starasia/accordion","@starasia/story-record","@starasia/skeleton","@starasia/progress-stepper","react/jsx-runtime","react","react-dom","react-easy-crop"],mr):(u=typeof globalThis<"u"?globalThis:u||self,mr(u["@starasia/admin"]={},u.alert,u.avatar,u.badges,u.box,u.breadcrumb,u.button,u.card,u.date,u.dialog,u.drawer,u.dropdown,u.hooks,u.http,u.input,u.menu,u.pagination,u.storage,u.table,u.tabs,u.textarea,u.theme,u.toast,u.toggle,u.tooltip,u.checkbox,u.radio,u.text,u.icon,u.flex,u.grid,u.progress,u.stepper,u.accordion,u.storyRecord,u.skeleton,u.progressStepper,u.jsxRuntime,u.React,u.ReactDOM,u.ReactEasyCrop))})(this,function(u,mr,Qr,rr,f,Er,j,Dt,pr,Oe,Ur,Fr,ke,Ir,hr,W,zr,Hr,Q,vo,St,Mr,Co,Tr,Le,fr,kt,S,F,ae,xo,wo,Do,So,ko,Ke,Bo,e,h,Yr,vn){"use strict";const Cn={menus:[],menuBottom:void 0,logo:"",appName:"Workspace",userData:null,setUserData:()=>{}},Bt=h.createContext(Cn),mt=()=>h.useContext(Bt),mo=r=>{const[t,o]=h.useState((r==null?void 0:r.initialUserData)||null);return{userData:t,setUserData:o}},Eo=h.createContext({badges:{},setBadge:()=>{},setBadges:()=>{},clearBadge:()=>{}}),Fo=({children:r})=>{const[t,o]=h.useState({}),n=h.useCallback(c=>{o(a=>typeof c=="function"?c(a):c)},[]),l=h.useCallback((c,a)=>{o(d=>{const g=typeof a=="function"?a(d[c]):a;return{...d,[c]:g}})},[]),s=h.useCallback(c=>{o(a=>{if(!(c in a))return a;const d={...a};return delete d[c],d})},[]),i=h.useMemo(()=>({badges:t,setBadge:l,setBadges:n,clearBadge:s}),[t,l,n,s]);return e.jsx(Eo.Provider,{value:i,children:r})},Io=()=>h.useContext(Eo),Xr=(r,t)=>{const o=t!==void 0?t:r;return o==null?null:typeof o=="string"||typeof o=="number"?{value:o}:o},Et=240,Ft=200,It=480,xn="sa-sidebar-width",Mt=(r,t,o)=>Math.min(Math.max(r,t),o),wn=(r,t,o,n)=>{if(typeof window>"u")return t;try{const l=window.localStorage.getItem(r);if(!l)return t;const s=parseInt(l,10);return Number.isFinite(s)?Mt(s,o,n):t}catch{return t}},Mo=(r,t)=>{if(!(typeof window>"u"))try{window.localStorage.setItem(r,String(t))}catch{}},To=h.createContext({collapsed:!1,setCollapsed:()=>{},toggle:()=>{},collapse:()=>{},expand:()=>{},width:Et,setWidth:()=>{},resetWidth:()=>{},minWidth:Ft,maxWidth:It,mobileOpen:!1,setMobileOpen:()=>{},openMobile:()=>{},closeMobile:()=>{},toggleMobile:()=>{}}),Lo=({children:r,defaultCollapsed:t=!1,defaultWidth:o=Et,minWidth:n=Ft,maxWidth:l=It,widthStorageKey:s=xn})=>{const[i,c]=h.useState(t),[a,d]=h.useState(!1),[g,b]=h.useState(()=>wn(s,o,n,l)),p=h.useCallback(B=>{c(O=>typeof B=="function"?B(O):B)},[]),C=h.useCallback(()=>c(B=>!B),[]),k=h.useCallback(()=>c(!0),[]),D=h.useCallback(()=>c(!1),[]),z=h.useCallback(B=>{b(O=>{const U=typeof B=="function"?B(O):B,V=Mt(Math.round(U),n,l);return Mo(s,V),V})},[n,l,s]),A=h.useCallback(()=>{const B=Mt(o,n,l);Mo(s,B),b(B)},[o,n,l,s]),L=h.useCallback(B=>{d(O=>typeof B=="function"?B(O):B)},[]),x=h.useCallback(()=>d(!0),[]),m=h.useCallback(()=>d(!1),[]),I=h.useCallback(()=>d(B=>!B),[]),T=h.useMemo(()=>({collapsed:i,setCollapsed:p,toggle:C,collapse:k,expand:D,width:g,setWidth:z,resetWidth:A,minWidth:n,maxWidth:l,mobileOpen:a,setMobileOpen:L,openMobile:x,closeMobile:m,toggleMobile:I}),[i,p,C,k,D,g,z,A,n,l,a,L,x,m,I]);return e.jsx(To.Provider,{value:T,children:r})},Ao=()=>h.useContext(To),Oo=h.createContext(null),Wo=({adapter:r,children:t})=>e.jsx(Oo.Provider,{value:r,children:t}),tr=()=>{const r=h.useContext(Oo);if(!r)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 r},zo=({router:r,routerAdapter:t,menus:o=[],menuBottom:n,logo:l,appName:s="Workspace",initialUserData:i,theme:c})=>{const a=mo({initialUserData:i}),{theme:d}=Mr.useTheme();return e.jsx(Wo,{adapter:t,children:e.jsx(Bt.Provider,{value:{logo:l,appName:s,menus:o,userData:a.userData,setUserData:a.setUserData,menuBottom:n},children:e.jsx(Fo,{children:e.jsx(Lo,{children:c?e.jsx(Mr.ThemeProvider,{value:c,children:r}):d?e.jsx(Mr.ThemeProvider,{value:d,children:r}):r})})})})},Dn=h.memo(zo);function Ho({collapsed:r=!1,children:t}){if(!t)return null;const o=typeof t=="function",n=o?t({collapsed:r}):t;return n==null||n===!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:r?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingRight:r?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingTop:"0.5rem",paddingBottom:"0.5rem",boxSizing:"border-box"},children:o?n:e.jsx("div",{style:{opacity:r?0:1,transition:"opacity 0.3s",visibility:r?"hidden":"visible"},children:n})})}const Tt=h.createContext(null);function Po({children:r}){const[t,o]=h.useState(null),[n,l]=h.useState(null),[s,i]=h.useState(null),[c,a]=h.useState(0),d=h.useCallback(()=>(a(g=>g+1),()=>a(g=>g-1)),[]);return e.jsx(Tt.Provider,{value:{prependNode:t,appendNode:n,replaceNode:s,setPrependNode:o,setAppendNode:l,setReplaceNode:i,replaceCount:c,registerReplace:d},children:r})}function Vo({children:r}){const t=h.useContext(Tt);return t?e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:t.setPrependNode,style:{display:"contents"}}),t.replaceCount>0?e.jsx("div",{ref:t.setReplaceNode,style:{display:"contents"}}):r,e.jsx("div",{ref:t.setAppendNode,style:{display:"contents"}})]}):e.jsx(e.Fragment,{children:r})}function Sn({children:r,mode:t="append"}){const o=h.useContext(Tt);if(h.useEffect(()=>{if(!(t!=="replace"||!o))return o.registerReplace()},[t,o]),!o)return process.env.NODE_ENV!=="production"&&console.warn("[HeaderLeftSlot] used outside AppLayout — content not rendered"),null;const n=t==="prepend"?o.prependNode:t==="replace"?o.replaceNode:o.appendNode;return n?Yr.createPortal(r,n):null}const Lt=h.createContext(null);function jo({children:r}){const[t,o]=h.useState({}),[n,l]=h.useState({}),s=h.useCallback((a,d)=>{o(g=>g[a]===d?g:{...g,[a]:d})},[]),i=h.useCallback(a=>(l(d=>({...d,[a]:(d[a]??0)+1})),()=>l(d=>({...d,[a]:Math.max(0,(d[a]??0)-1)}))),[]),c=h.useMemo(()=>({outletNodes:t,setOutletNode:s,slotCounts:n,registerSlot:i}),[t,s,n,i]);return e.jsx(Lt.Provider,{value:c,children:r})}function At({slotKey:r,fallback:t}){const o=h.useContext(Lt),n=o?(o.slotCounts[r]??0)>0:!1,l=h.useRef(o==null?void 0:o.setOutletNode);l.current=o==null?void 0:o.setOutletNode;const s=h.useCallback(i=>{var c;return(c=l.current)==null?void 0:c.call(l,r,i)},[r]);return e.jsx(e.Fragment,{children:n?e.jsx("div",{ref:s,style:{display:"contents"}}):t})}function kn({slotKey:r,children:t}){const o=h.useContext(Lt),n=h.useRef(o==null?void 0:o.registerSlot);if(n.current=o==null?void 0:o.registerSlot,h.useEffect(()=>{var s;return(s=n.current)==null?void 0:s.call(n,r)},[r]),!o)return process.env.NODE_ENV!=="production"&&console.warn("[SidebarGroupSlot] used outside AppLayout — content not rendered"),null;const l=o.outletNodes[r];return l?Yr.createPortal(t,l):null}const Jr="moduleSwitcherGroupId",Ot="sa-module-switcher-change";function No(){if(typeof window>"u")return null;const r=window.localStorage.getItem(Jr);if(r===null)return null;const t=Number(r);return Number.isFinite(t)?t:null}function _o(r){typeof window>"u"||(r===null?window.localStorage.removeItem(Jr):window.localStorage.setItem(Jr,String(r)),window.dispatchEvent(new CustomEvent(Ot,{detail:r})))}function Bn(){_o(null)}function Wt(){const[r,t]=h.useState(()=>No());return h.useEffect(()=>{const n=()=>{t(No())},l=s=>{s.key===Jr&&n()};return window.addEventListener(Ot,n),window.addEventListener("storage",l),()=>{window.removeEventListener(Ot,n),window.removeEventListener("storage",l)}},[]),{selectedGroupId:r,setSelectedGroupId:n=>{_o(n),t(n)}}}const mn="4.5rem",En="var(--app-header-height, 4rem)",qo=r=>r?mn:En;function Zo({icon:r,label:t,tooltip:o=t,active:n=!1,badge:l,showLabel:s=!0,onClick:i}){const[c,a]=h.useState(!1);return e.jsx(Le.Tooltip,{fluid:!0,label:o,position:"right",children:e.jsxs(f.Box,{as:"button",onClick:i,onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),"aria-label":o,"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(f.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":c?"neutral":void 0,style:{borderColor:n?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(F.Icon,{name:r,size:"sm"}),l&&!s&&e.jsx(f.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(rr.BadgeDot,{tone:"error",variant:"solid",size:"xs"})}),l&&s&&e.jsx(f.Box,{position:"absolute",display:"inline-flex",style:{top:"-0.375rem",left:"1.5rem"},children:e.jsx(rr.Badge,{text:String(l.value),variant:l.variant??"info",size:"xs",border:!0})})]}),s&&e.jsx(S.Text,{as:"span",fontSize:"xs",fontWeight:n?"medium":"normal",textAlign:"center",truncate:!0,style:{display:"block",maxWidth:"100%",color:"inherit"},children:t})]})})}function Fn({items:r,bottomItems:t,activeKey:o,onSelect:n,onAction:l,logo:s,panelCollapsed:i,onExpandPanel:c,showLabels:a=!0}){const[d,g]=h.useState(!1),b=i&&d;return e.jsxs(f.Box,{as:"nav","aria-label":"Primary navigation",bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:"0",style:{width:qo(a),height:"100%"},children:[e.jsxs(f.Box,{onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!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:s,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",transition:"opacity 0.2s",opacity:b?0:1}}),i&&e.jsx(f.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:b?1:0,pointerEvents:b?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(F.Icon,{name:"LayoutLeft",size:"sm"})})]}),e.jsx(f.Box,{flex:"1",overflow:"overflow-y-auto",paddingBlock:"md",paddingInline:"xs",gap:"xs",children:r.map(p=>e.jsx(Zo,{icon:p.icon,label:p.label,tooltip:p.tooltip,badge:p.badge,showLabel:a,active:p.key===o,onClick:()=>n(p.key)},p.key))}),t&&t.length>0&&e.jsx(f.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:"xs",gap:"xs",flexShrink:"0",children:t.map(p=>e.jsx(Zo,{icon:p.icon,label:p.label,tooltip:p.tooltip,badge:p.badge,showLabel:a,onClick:()=>l(p)},p.key))})]})}function In({items:r,activeKey:t,onSelect:o}){return e.jsx(f.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:r.map(n=>{const l=n.key===t;return e.jsxs(f.Box,{as:"button",role:"tab","aria-selected":l,onClick:()=>o(n.key),direction:"row",align:"center",gap:"spacing-4",paddingInline:"sm",height:"height-32",flexShrink:"0",borderRadius:l?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:l?"white":void 0,hover:l?void 0:{bg:"neutral"},style:{whiteSpace:"nowrap",color:l?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:l?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(F.Icon,{name:n.icon,size:"sm"}),e.jsx(S.Text,{as:"span",fontSize:"sm",fontWeight:l?"medium":"normal",style:{color:"inherit"},children:n.label})]},n.key)})})}const zt=(r,t)=>!r.groupIds||r.groupIds.includes(t.id)||t.parentGroupId!==void 0&&r.groupIds.includes(t.parentGroupId);let $r=0,Dr=!1,Go=new Set;const Qo=new Set;function Mn(r,t){const[o,n]=h.useState(!1),l=h.useRef(null),s=h.useRef(null);return h.useLayoutEffect(()=>{const i=l.current;if(!i)return;let c=0;const a=()=>{c=0;const g=s.current;if(!g)return;const b=g.scrollWidth>i.clientWidth;n(p=>p===b?p:b)},d=new ResizeObserver(()=>{c||(c=requestAnimationFrame(a))});return d.observe(i),a(),()=>{c&&cancelAnimationFrame(c),d.disconnect()}},[r,t]),{containerRef:l,textRef:s,truncated:o}}function Uo({text:r,textStyle:t,active:o=!1}){const{containerRef:n,textRef:l,truncated:s}=Mn(r,o),i=e.jsx(S.Text,{ref:l,as:"span",fontSize:"md",fontWeight:o?"medium":"normal",truncate:!0,style:{display:"block",...t},children:r});return e.jsx(f.Box,{ref:n,display:"block",style:{flex:1,minWidth:0},children:s?e.jsx(Le.Tooltip,{fluid:!0,label:r,position:"top",children:i}):i})}const Tn=200,Ht="var(--app-header-height, 4rem)",Yo="44px",Pt=`calc((${Ht} - 2rem) / 2)`,Xo=16;function Ln({children:r,headerLeftSlot:t,profile:o,isLoadingProfile:n,onLogout:l,isLoggingOut:s,loadingComponent:i,sidebarHeaderContent:c,headerActions:a,profileRole:d,profileMenuButtons:g,profileMenuItems:b,logoutButton:p,resizableSidebar:C=!0,rail:k}){var bt,wr;const{useSearchParams:D,useNavigate:z,useLocation:A,Outlet:L}=tr(),[x]=D(),m=x.get("embed")==="true",I=mt(),{badges:T}=Io(),B=z(),O=A(),V=!ke.useMediaQuery("md"),[H,N]=h.useState(!1),{collapsed:G,setCollapsed:Y,width:te,setWidth:K,resetWidth:ee,minWidth:_,maxWidth:ge,mobileOpen:fe,setMobileOpen:Fe}=Ao(),[qe,Be]=h.useState(!1),[ve,Ce]=h.useState(()=>new Set(Go)),[Ae,Ze]=h.useState(null),{selectedGroupId:He,setSelectedGroupId:ie}=Wt(),de=!!(k&&k.items.length>0),pe=G&&!V&&!de,we=G&&!V&&de;h.useEffect(()=>{Go=ve},[ve]);const Ie=h.useRef(null),sr=h.useRef(null),ir=h.useRef(null),[P,$]=h.useState(!1),[X,he]=h.useState(null),me=C&&!V&&!G,xe=E=>Math.min(Math.max(E,_),ge),Pe=X??te,cr=E=>{var Xe,Ne,Je;if(!me)return;E.preventDefault();const Z=E.clientX,J=((Xe=ir.current)==null?void 0:Xe.getBoundingClientRect().width)??te;(Je=(Ne=E.currentTarget).setPointerCapture)==null||Je.call(Ne,E.pointerId),$(!0),document.body.style.userSelect="none",document.body.style.cursor="col-resize";let ne=0,ye=J;const Te=Qe=>{ye=J+(Qe.clientX-Z),ne||(ne=requestAnimationFrame(()=>{ne=0,he(xe(ye))}))},ce=()=>{ne&&cancelAnimationFrame(ne),window.removeEventListener("pointermove",Te),window.removeEventListener("pointerup",ce),document.body.style.userSelect="",document.body.style.cursor="",he(null),$(!1),ye<Tn?Y(!0):K(xe(ye))};window.addEventListener("pointermove",Te),window.addEventListener("pointerup",ce)},Ye=E=>{me&&(E.key==="ArrowLeft"?(E.preventDefault(),K(Z=>Z-Xo)):E.key==="ArrowRight"?(E.preventDefault(),K(Z=>Z+Xo)):E.key==="Home"?(E.preventDefault(),K(_)):E.key==="End"&&(E.preventDefault(),K(ge)))};h.useEffect(()=>{const E=Ie.current;if(!E)return;const Z=()=>{Dr||($r=E.scrollTop)};return E.addEventListener("scroll",Z),()=>E.removeEventListener("scroll",Z)},[]);const Me=()=>{const E=Ie.current;E&&$r>0&&(Dr=!0,E.scrollTop=$r,requestAnimationFrame(()=>{Dr=!1}))};h.useLayoutEffect(()=>{Dr=!0,Me();const E=setTimeout(()=>{Dr=!1},300);return()=>clearTimeout(E)},[]),h.useLayoutEffect(()=>{I.menus.length>0&&($r>0?Me():requestAnimationFrame(()=>{var Z;const E=(Z=Ie.current)==null?void 0:Z.querySelector("[data-menu-active='true']");E&&E.scrollIntoView({block:"center",behavior:"instant"})}))},[I.menus]),h.useEffect(()=>{Dr=!0,Me();const E=setTimeout(Me,0),Z=setTimeout(Me,50),J=setTimeout(Me,100),ne=setTimeout(Me,200),ye=setTimeout(()=>{Dr=!1},300),Te=setTimeout(()=>{const ce=Ie.current,Xe=ce==null?void 0:ce.querySelector("[data-menu-active='true']");if(ce&&Xe){const Ne=ce.getBoundingClientRect(),Je=Xe.getBoundingClientRect();Je.top>=Ne.top&&Je.bottom<=Ne.bottom||Xe.scrollIntoView({block:"center",behavior:"smooth"})}},250);return()=>{clearTimeout(E),clearTimeout(Z),clearTimeout(J),clearTimeout(ne),clearTimeout(ye),clearTimeout(Te)}},[O.pathname]),h.useEffect(()=>{sr.current&&(sr.current.scrollTop=0)},[O.pathname]),h.useEffect(()=>{V&&Fe(!1)},[O.pathname,V]),h.useEffect(()=>{V&&Y(!0)},[V]),h.useEffect(()=>{const E=document.documentElement;return E.style.setProperty("--app-header-height",Yo),()=>{E.style.removeProperty("--app-header-height")}},[]);const br=()=>{N(!0)},ur=()=>{N(!1)},Ee=()=>{N(!1),l()},ze=E=>{const Z=E.slotKey?[]:[E.to];return E.children&&Z.push(...E.children.map(J=>J.to)),Z},Sr=[...I.menus.flatMap(E=>E.items.flatMap(ze)),...((bt=I.menuBottom)==null?void 0:bt.flatMap(ze))??[]],ar=E=>{if(!O.pathname.startsWith(E))return!1;const Z=Sr.filter(J=>O.pathname.startsWith(J)).sort((J,ne)=>ne.length-J.length)[0];return E===Z},vr=h.useRef(k);vr.current=k;const Cr=E=>{const Z=vr.current;if(!Z||Z.items.length===0)return null;const J=Z.defaultKey??Z.items[0].key,ne=Z.items.find(ce=>ce.key===E),ye=I.menus.find(ce=>ce.items.some(Xe=>ze(Xe).some(ar)));if(!ye)return ne?ne.key:J;if(ne&&zt(ne,ye))return ne.key;const Te=Z.items.find(ce=>ce.groupIds&&zt(ce,ye))??Z.items.find(ce=>!ce.groupIds);return(Te==null?void 0:Te.key)??(ne==null?void 0:ne.key)??J},[xr,je]=h.useState(()=>Cr(null));h.useEffect(()=>{je(E=>Cr(E))},[O.pathname,I.menus]);const Ge=de?k.items.find(E=>E.key===xr)??k.items[0]:void 0,yt=E=>{je(E),we&&Y(!1)},pt=E=>{E.onClick?E.onClick():E.to&&B(E.to)};h.useEffect(()=>{var Z;const E=J=>{var ye;const ne=J.defaultExpanded&&!Qo.has(J.id);ne&&Qo.add(J.id),(ne||(ye=J.children)!=null&&ye.some(Te=>O.pathname.startsWith(Te.to)))&&Ce(Te=>{const ce=new Set(Te);return ce.add(J.id),ce})};I.menus.forEach(J=>{J.items.forEach(E)}),(Z=I.menuBottom)==null||Z.forEach(E)},[O.pathname,I.menus,I.menuBottom]);const so=E=>{Ce(Z=>{const J=new Set(Z);return J.has(E)?J.delete(E):J.add(E),J})};h.useEffect(()=>{I.menus.length!==0&&He!==null&&!I.menus.some(E=>E.id===He)&&ie(null)},[I.menus,He,ie]);const io=h.useMemo(()=>{if(Ge!=null&&Ge.groupIds)return I.menus.filter(ye=>zt(Ge,ye));const E=I.menus,Z=de?null:He;if(Z!==null)return E.filter(ye=>ye.id===Z||ye.parentGroupId===Z);const J=E.filter(ye=>ye.parentGroupId===void 0),ne=E.filter(ye=>ye.parentGroupId!==void 0).flatMap(ye=>ye.items);return ne.length===0?J:[...J,{id:18,name:"Pengaturan",items:ne,parentGroupId:void 0}]},[I.menus,He,Ge,de]);if(m)return e.jsx(f.Box,{as:"main",overflow:"overflow-y-auto",bg:"surface-inverse",style:{height:"100vh"},children:r||e.jsx(L,{})});const kr=E=>{const Z=E.children&&E.children.length>0,J=!!E.slotKey,ne=Z||J,ye=ve.has(E.id),Te=Z?E.children.some(Ne=>ar(Ne.to)):J?!1:ar(E.to),ce=Xr(E.badge,T[E.id]),Xe=!!ce&&pe;return e.jsxs(f.Box,{display:"block","data-menu-active":Te||void 0,children:[e.jsxs(f.Box,{as:"button",onClick:Ne=>{if(J&&pe)B(E.to);else if(ne)if(pe){const Je=Ne.currentTarget.getBoundingClientRect();Ze({item:E,top:Je.top,left:Je.right+8})}else so(E.id);else B(E.to)},fullWidth:!0,direction:"row",align:"center",justify:pe?"center":void 0,gap:"sm",paddingInline:pe?void 0:"sm",paddingBlock:"xs",height:"height-32",borderRadius:Te?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:Te?"white":void 0,hover:Te?void 0:{bg:"neutral"},title:pe?E.title:void 0,style:{textAlign:"left",color:Te?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:Te?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsxs(f.Box,{position:"relative",display:"inline-flex",flexShrink:"0",style:{alignItems:"center"},children:[e.jsx(F.Icon,{name:E.icon,size:"sm",style:{flexShrink:0}}),Xe&&e.jsx(f.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(rr.BadgeDot,{tone:"error",variant:"solid",size:"xs"})})]}),!pe&&e.jsxs(e.Fragment,{children:[e.jsx(Uo,{text:E.title,active:Te,textStyle:{transition:"opacity 0.3s"}}),ce&&e.jsx(rr.Badge,{text:String(ce.value),variant:ce.variant??"info",size:"xs",border:!0}),ne&&e.jsx(F.Icon,{name:"ChevronDown",size:"sm",style:{flexShrink:0,transition:"transform 0.2s",transform:ye?"rotate(180deg)":"rotate(0deg)"}})]})]}),ne&&!pe&&(()=>{const Ne=E.children??[],Je=J?-1:Ne.findIndex(er=>ar(er.to)),Qe=Ne.map(er=>{const Br=Xr(er.badge,T[er.id]),gr=ar(er.to);return e.jsxs(f.Box,{as:"button",onClick:()=>B(er.to),fullWidth:!0,direction:"row",align:"center",gap:"sm",paddingLeft:"sm",paddingRight:"sm",paddingBlock:"xs",height:"height-32",borderRadius:gr?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:gr?"white":void 0,hover:gr?void 0:{bg:"neutral"},style:{textAlign:"left",color:gr?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:gr?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(F.Icon,{name:er.icon,size:"sm",style:{flexShrink:0}}),e.jsx(Uo,{text:er.title,active:gr}),Br&&e.jsx(rr.Badge,{text:String(Br.value),variant:Br.variant??"info",size:"xs",border:!0})]},er.id)});return e.jsxs(f.Box,{position:"relative",overflow:"overflow-hidden",style:{marginLeft:"1rem",paddingLeft:"0.75rem",transition:"all 0.3s ease-in-out",maxHeight:ye?J?"none":`${Ne.length*36}px`:"0px",opacity:ye?1:0,marginTop:ye?"0.25rem":"0px"},children:[e.jsx(f.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(f.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(At,{slotKey:E.slotKey,fallback:Qe}):Qe]})})()]},E.id)};return e.jsx(jo,{children:e.jsxs(Po,{children:[e.jsxs(f.Box,{direction:"row",position:"relative",style:{height:"100vh","--app-header-height":Yo,"--app-sidebar-width":V?"0px":de?`calc(${qo(k.showLabels??!0)} + ${we?"0px":`${Pe}px`})`:G?Ht:`${Pe}px`,"--app-footer-zindex":V&&fe?"40":"998"},children:[V&&e.jsx(f.Box,{position:"fixed",zIndex:"40",bg:"black-alpha-a50",style:{inset:0,opacity:fe?.5:0,pointerEvents:fe?"auto":"none",transition:"opacity 0.3s"},onClick:()=>Fe(!1)}),de&&!V&&e.jsx(Fn,{items:k.items,bottomItems:k.bottomItems,activeKey:Ge.key,onSelect:yt,onAction:pt,logo:I.logo,panelCollapsed:we,onExpandPanel:()=>Y(!1),showLabels:k.showLabels??!0}),e.jsxs(f.Box,{as:"aside",ref:ir,"aria-hidden":we||void 0,bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:V?void 0:"0",style:{width:V?"16.375rem":we?"0px":G?Ht:`${Pe}px`,...we&&{borderRightWidth:0,overflow:"hidden",visibility:"hidden"},position:V?"fixed":"relative",...V&&{inset:0,zIndex:50,transform:fe?"translateX(0)":"translateX(-100%)"},transition:P?"none":"all 0.3s ease-in-out",minWidth:0},children:[e.jsx(f.Box,{onMouseEnter:()=>Be(!0),onMouseLeave:()=>Be(!1),direction:"row",align:"center",justify:"space-between",paddingInline:pe?void 0:"lg",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",position:"relative",style:{height:"var(--app-header-height, 4rem)",...pe?{paddingInline:Pt}:null},children:(()=>{const E=de&&!V,Z=Ge!=null&&Ge.groupIds?Ge.tooltip??Ge.label:I.appName,J=!V&&G&&!fe&&!de,ne=J&&qe;return e.jsxs(e.Fragment,{children:[e.jsxs(f.Box,{direction:"row",align:"center",gap:"sm",flex:J?"1":void 0,justify:J?"center":void 0,style:{transition:"opacity 0.2s",opacity:ne?0:1,pointerEvents:ne?"none":"auto"},children:[!E&&e.jsx("img",{src:I.logo,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",flexShrink:0}}),(!G||fe)&&e.jsx(S.Text,{as:"span",fontSize:"md",fontWeight:"semibold",color:"primary",truncate:!0,style:{transition:"opacity 0.3s"},children:E?Z:I.appName})]}),!V&&!G&&e.jsx(f.Box,{as:"button",onClick:()=>Y(!0),"aria-label":"Collapse sidebar",display:"inline-flex",align:"center",justify:"center",flexShrink:"0",style:{color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(F.Icon,{name:"LayoutLeft",size:"sm"})}),J&&e.jsx(f.Box,{as:"button",onClick:()=>Y(!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:ne?1:0,pointerEvents:ne?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(F.Icon,{name:"LayoutLeft",size:"sm"})}),V&&e.jsx(f.Box,{as:"button",onClick:()=>Fe(!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(F.Icon,{name:"Cross",size:"md"})})]})})()}),c&&e.jsx(Ho,{collapsed:V||de?!1:G,children:c}),de&&V&&e.jsx(In,{items:k.items,activeKey:Ge.key,onSelect:yt}),e.jsx(f.Box,{ref:Ie,flex:"1",overflow:"overflow-y-auto",paddingBlock:"lg",children:io.map(E=>e.jsxs(f.Box,{marginBottom:"lg",children:[pe?E.name&&e.jsx(f.Box,{"aria-label":E.name,direction:"row",align:"center",justify:"center",paddingBlock:"md",children:e.jsx(f.Box,{width:"width-16",style:{height:"2px",borderRadius:"min(1px, var(--sa-radii-xs, 4px))",backgroundColor:E.color??"var(--sa-background-brand, #04254f)"}})}):E.name&&e.jsx(S.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:E.name}),e.jsx(f.Box,{paddingInline:pe?void 0:"md",gap:"xs",style:pe?{paddingInline:Pt}:void 0,children:E.slotKey?e.jsx(At,{slotKey:E.slotKey,fallback:E.items.map(Z=>kr(Z))}):E.items.map(Z=>kr(Z))})]},E.id))}),I.menuBottom&&I.menuBottom.length>0&&e.jsx(f.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:pe?void 0:"md",bg:"surface-inverse",gap:"xs",flexShrink:"0",style:pe?{paddingInline:Pt}:void 0,children:I.menuBottom.map(E=>kr(E))}),me&&e.jsx(f.Box,{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar","aria-valuenow":te,"aria-valuemin":_,"aria-valuemax":ge,tabIndex:0,onPointerDown:cr,onKeyDown:Ye,onDoubleClick:ee,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:P?"var(--sa-background-brand, #04254f)":"transparent",transition:"background 0.15s"},onMouseEnter:E=>{P||(E.currentTarget.style.background="var(--sa-border-bold, #0b120e40)")},onMouseLeave:E=>{P||(E.currentTarget.style.background="transparent")}})]}),e.jsxs(f.Box,{flex:"1",overflow:"overflow-hidden",children:[e.jsxs(f.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(f.Box,{direction:"row",align:"center",gap:V?"lg":void 0,children:[V&&e.jsx(f.Box,{as:"button",onClick:()=>Fe(!0),align:"center",justify:"center",borderRadius:"rounded-md",style:{padding:"0.375rem",color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(F.Icon,{name:"MenuBurger",size:"lg"})}),e.jsx(Vo,{children:t})]}),e.jsxs(f.Box,{direction:"row",align:"center",gap:"md",children:[a,e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsxs(f.Box,{direction:"row",align:"center",gap:"sm",cursor:"pointer",children:[!V&&e.jsxs(f.Box,{display:"block",textAlign:"right",customMaxWidth:"12.5rem",children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",textAlign:"right",truncate:!0,lineHeight:"leading-none",children:n?"Loading...":(o==null?void 0:o.name)||"unknown"}),e.jsx(S.Text,{fontSize:"sm",color:"subtle",textAlign:"right",truncate:!0,children:n?"":(o==null?void 0:o.email)||"unknown"})]}),e.jsx(Qr.Avatar,{size:"sm",initials:((o==null?void 0:o.name)||"U")[0].toUpperCase(),bg:"var(--sa-background-brand, #04254f)",color:"var(--sa-background-primary, #ffffff)"}),e.jsx(F.Icon,{name:"ChevronDown",size:"xs",color:"subtle"})]})}),e.jsxs(W.MenuLists,{width:280,style:{paddingBlock:"12px",paddingInline:"12px",gap:"8px",marginTop:"16px"},children:[e.jsx(W.MenuHeading,{children:e.jsxs(f.Box,{align:"center",textAlign:"center",paddingBlock:"sm",fullWidth:!0,children:[e.jsx(Qr.Avatar,{customSize:64,initials:((o==null?void 0:o.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(S.Text,{fontSize:"md",fontWeight:"semibold",color:"primary",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(o==null?void 0:o.name)||"unknown"}),e.jsx(S.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(o==null?void 0:o.email)||"unknown"}),d&&e.jsx(S.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:d})]})}),(g&&g.length>0||b)&&e.jsxs(W.MenuBody,{children:[g==null?void 0:g.map((E,Z)=>e.jsx(W.MenuItem,{onClick:E.onClick,startIcon:e.jsx(F.Icon,{name:E.icon,size:"md"}),children:E.label},`${E.label}-${Z}`)),b]}),p??e.jsx(W.MenuFooter,{children:e.jsx(W.MenuItem,{intent:"danger",onClick:br,startIcon:e.jsx(F.Icon,{name:"Logout",size:"md"}),children:"Logout"})})]})]})]})]}),e.jsx(f.Box,{as:"main",ref:sr,flex:"1",overflow:"overflow-y-auto",children:r||e.jsx(L,{})})]})]}),s&&i&&e.jsx(f.Box,{position:"fixed",align:"center",justify:"center",bg:"black-alpha-a70",style:{inset:0,zIndex:9999},children:i}),e.jsxs(Oe.Dialog,{isShow:H,onHide:ur,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(f.Box,{direction:"column",display:"flex",align:"flex-end",justify:"center",children:e.jsxs(ae.Flex,{direction:"row",gap:"sm",align:"center",children:[e.jsx(f.Box,{direction:"column",children:e.jsx(j.Button,{secondary:!0,onClick:ur,children:"Cancel"})}),e.jsx(f.Box,{direction:"column",children:e.jsx(j.Button,{primary:!0,onClick:Ee,children:"Yes, Sure"})})]})})})]}),Ae&&e.jsxs(e.Fragment,{children:[e.jsx(f.Box,{onClick:()=>Ze(null),position:"fixed",style:{inset:0,zIndex:60}}),e.jsxs(f.Box,{role:"dialog","aria-label":Ae.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:Ae.top,left:Ae.left,zIndex:61,minWidth:"13rem",maxWidth:"16rem"},children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-500",textTransform:"uppercase",style:{padding:"0.25rem 0.5rem 0.5rem",letterSpacing:"0.05em"},children:Ae.item.title}),(wr=Ae.item.children)==null?void 0:wr.map(E=>{const Z=ar(E.to),J=Xr(E.badge,T[E.id]);return e.jsxs(f.Box,{as:"button",onClick:()=>{B(E.to),Ze(null)},fullWidth:!0,direction:"row",align:"center",gap:"md",paddingBlock:"sm",paddingInline:"md",borderRadius:"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:Z?"primary-inverse":void 0,hover:Z?void 0:{bg:"primary-inverse"},style:{textAlign:"left",borderColor:"transparent",color:Z?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)"},children:[E.icon&&e.jsx(F.Icon,{name:E.icon,size:"sm",style:{flexShrink:0}}),e.jsx(S.Text,{as:"span",fontSize:"md",fontWeight:Z?"medium":"normal",whiteSpace:"nowrap",style:{flex:1},children:E.title}),J&&e.jsx(rr.Badge,{text:String(J.value),variant:J.variant??"info",size:"xs",border:!0})]},E.id)})]})]})]})})}const Pr=h.forwardRef(({children:r,...t},o)=>e.jsx(f.Box,{ref:o,role:"button",cursor:"pointer","aria-pressed":"true",display:"inline-block",tabIndex:0,...t,children:r})),Jo=({title:r,iconName:t,textColor:o,iconColor:n,hoverTextColor:l,hoverIconColor:s})=>{const[i,c]=h.useState(!1),a=n??"var(--sa-text-subtle, #8c8f97)",d=o??"var(--sa-text-subtle, #8c8f97)",g=s??"var(--sa-text-subtle, #8c8f97)",b=l??"var(--sa-text-primary, #292a2e)";return e.jsxs(f.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),style:{cursor:"pointer"},children:[e.jsx(F.Icon,{name:t||"ChevronLeft",size:"xs",style:{color:i?g:a,transition:"color 0.15s ease"}}),e.jsx(S.Text,{variant:"sub-h3",style:{color:i?b:d,transition:"color 0.15s ease"},children:r||"Back"})]})},An=({items:r,separator:t="/",iconName:o,iconColor:n,hoverIconColor:l})=>{const{Link:s}=tr(),[i,c]=h.useState(!1),a=n??"var(--sa-text-subtle, #8c8f97)",d=l??"var(--sa-text-subtle, #8c8f97)",g=r.length>1?r[0]:void 0,b=!!(g!=null&&g.to||g!=null&&g.onClick),p=e.jsx(F.Icon,{name:o||"ChevronLeft",size:"xs",onMouseEnter:b?()=>c(!0):void 0,onMouseLeave:b?()=>c(!1):void 0,style:{color:b&&i?d:a,transition:"color 0.15s ease",cursor:b?"pointer":void 0}}),C=g!=null&&g.to?e.jsx(s,{to:g.to,replace:!0,style:{textDecoration:"none"},children:p}):g!=null&&g.onClick?e.jsx(Pr,{onClick:g.onClick,children:p}):p;return e.jsxs(f.Box,{direction:"row",gap:"xs",align:"center",children:[C,e.jsx(Er.Breadcrumb,{separator:t,size:"md",children:r.map((k,D)=>{const z=D===r.length-1;return k.to&&!z?e.jsx(Er.BreadcrumbItem,{children:e.jsx(s,{to:k.to,children:k.label})},D):e.jsx(Er.BreadcrumbItem,{currentPage:z,children:e.jsx(Er.BreadcrumbLink,{onClick:z?void 0:k.onClick,children:k.label})},D)})})]})},On=r=>{const{Link:t}=tr(),{items:o,separator:n,onClick:l,navigateTo:s,...i}=r;return o&&o.length>0?e.jsx(An,{items:o,separator:n,iconName:i.iconName,iconColor:i.iconColor,hoverIconColor:i.hoverIconColor}):s?e.jsx(f.Box,{direction:"row",children:e.jsx(t,{to:s,replace:!0,style:{textDecoration:"none"},children:e.jsx(Jo,{...i})})}):e.jsx(f.Box,{direction:"row",children:e.jsx(Pr,{onClick:l,children:e.jsx(Jo,{...i})})})},Vt=[{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 $o(r,t,o){return{display:"flex",alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"var(--sa-radii-sm, 6px)",border:r?`2px solid ${o.activeBorder}`:"2px solid var(--sa-color-gray-200, #f0f1f2)",backgroundColor:r?o.activeBg:"var(--sa-color-gray-50, #ffffff)",boxShadow:r?t?`0 8px 20px ${o.activeShadow.replace("0.25","0.35")}`:`0 2px 8px ${o.activeShadow}`:t?"0 8px 20px rgba(0, 0, 0, 0.14)":"0 1px 4px rgba(0, 0, 0, 0.08)",transform:t?"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 Ko={fontSize:"11px",fontWeight:500,textAlign:"center",overflowWrap:"normal",wordBreak:"normal",color:"var(--sa-text-primary, #292a2e)",lineHeight:"1.3",maxWidth:"80px"},Ro={display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",background:"none",border:"none",cursor:"pointer",padding:0};function el({isShow:r,onHide:t,menus:o,selectedGroupId:n,onSelect:l}){const[s,i]=h.useState(void 0),c=d=>{l(d),t()},a=Vt[0];return e.jsx(Oe.Dialog,{isShow:r,onHide:t,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:()=>i("all"),onMouseLeave:()=>i(void 0),style:Ro,children:[e.jsx("div",{style:$o(n===null,s==="all",a),children:e.jsx("div",{style:{color:a.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(F.Icon,{name:"Grid",size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:Ko,children:"Semua"})]}),o.map((d,g)=>{var D;const b=n===d.id,p=s===d.id,C=((D=d.items[0])==null?void 0:D.icon)??"Grid",k=Vt[(g+1)%Vt.length];return e.jsxs("button",{onClick:()=>c(d.id),onMouseEnter:()=>i(d.id),onMouseLeave:()=>i(void 0),style:Ro,children:[e.jsx("div",{style:$o(b,p,k),children:e.jsx("div",{style:{color:k.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(F.Icon,{name:C,size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:Ko,children:d.name})]},d.id)})]})})})}function Wn({onSelect:r,"aria-label":t="Pilih module"}={}){const o=mt(),{useNavigate:n}=tr(),l=n(),{selectedGroupId:s,setSelectedGroupId:i}=Wt(),[c,a]=h.useState(!1),d=g=>{var b;if(i(g),g!==null){const p=o.menus.find(k=>k.id===g),C=(b=p==null?void 0:p.items[0])==null?void 0:b.to;C&&l(C)}r==null||r(g)};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":t,onMouseEnter:g=>{g.currentTarget.style.backgroundColor="var(--sa-background-primary-inverse, #f8f8f8)"},onMouseLeave:g=>{g.currentTarget.style.backgroundColor="transparent"},children:e.jsx(F.Icon,{name:"GridApplication",size:"sm"})}),s!==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(el,{isShow:c,onHide:()=>a(!1),menus:o.menus.filter(g=>g.parentGroupId===void 0),selectedGroupId:s,onSelect:d})]})}const zn=(r,t)=>{const o=[];if(t===0)return o.push(r),o;for(let n=0;n<r.length;n+=t){const l=r.slice(n,n+t);o.push(l)}return o},Hn=h.memo(({value:r,label:t,separator:o,labelWidth:n,lastIndex:l,labelAlign:s="top"})=>{const i=h.useMemo(()=>({padding:0,paddingBottom:l?0:12,verticalAlign:s}),[l,s]),c=h.useMemo(()=>({padding:0,paddingRight:12,paddingLeft:12,paddingBottom:l?0:12,verticalAlign:s}),[l,s]),a=()=>typeof t=="string"?e.jsx(S.Text,{fontWeight:"medium",color:"subtlest",children:t}):t,d=()=>typeof r=="string"||typeof r=="number"?e.jsx(S.Text,{color:"primary",fontWeight:"medium",children:r}):r,g=()=>typeof o=="string"||typeof o=="number"?e.jsx(S.Text,{fontWeight:"medium",color:"subtlest",children:o}):o;return e.jsxs(Q.Tr,{children:[e.jsx(Q.Td,{style:i,width:n,children:a()}),o?e.jsx(Q.Td,{style:c,width:24,children:g()}):null,e.jsx(Q.Td,{style:i,children:d()})]})}),Pn=h.memo(({fields:r,separator:t,labelWidth:o})=>e.jsx(Q.Table,{withColumnBorder:!1,withRowBorder:!1,children:r.map((n,l)=>e.jsx(Hn,{separator:t,labelWidth:o,lastIndex:l===r.length-1,...n},`field-group-field-${l}`))})),Vn=h.memo(({maxRow:r=0,maxColumn:t=2,separator:o=":",fields:n=[],labelWidth:l=150,bordered:s=!1})=>{const i=h.useMemo(()=>zn(n,r),[n,r]),c=i.length>2,a=()=>{switch(t){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(f.Box,{gap:c?void 0:"lg",direction:"row",flexWrap:"wrap",borderRadius:"rounded-sm",padding:"lg",paddingBottom:c?"xs":"lg",bg:"accent-dark-tertiary",borderWidth:s?"border":void 0,borderStyle:s?"border-solid":void 0,borderColor:s?"border-subtle":void 0,children:i.map((d,g)=>e.jsx(f.Box,{direction:"column",flex:c?void 0:"1",width:c?a():void 0,marginBottom:c?"lg":void 0,children:e.jsx(Pn,{labelWidth:l,fields:d,separator:o})},g))})}),jn=({backButton:r})=>{const[t,o]=h.useState(!1),n=(r==null?void 0:r.iconColor)??"var(--sa-text-subtle, #8c8f97)",l=(r==null?void 0:r.textColor)??"var(--sa-text-subtle, #8c8f97)",s=(r==null?void 0:r.hoverIconColor)??"var(--sa-text-subtle, #8c8f97)",i=(r==null?void 0:r.hoverTextColor)??"var(--sa-text-primary, #292a2e)";return e.jsxs(f.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),style:{cursor:"pointer"},children:[e.jsx(F.Icon,{name:(r==null?void 0:r.iconName)||"ChevronLeft",size:"xs",style:{color:t?s:n,transition:"color 0.15s ease"}}),e.jsx(S.Text,{variant:"sub-h3",style:{color:t?i:l,textDecoration:t?"underline":"none",transition:"color 0.15s ease"},children:(r==null?void 0:r.title)||"Back"})]})},rl=({backButton:r,title:t,titleIcon:o,titleTag:n,children:l,header:s=!0,headerBorder:i=!1,disableAnimation:c=!1,scrollable:a=!1,stickyHeader:d=!1,subHeaders:g,action:b,titleTagProps:p,containerProps:C,headerProps:k})=>{const D=ke.useMediaQuery("md"),{Link:z,useNavigate:A}=tr(),L=A(),x=r==null?void 0:r.show,m=()=>{if(typeof(r==null?void 0:r.onClick)=="function"){r.onClick();return}L(-1,{replace:!0})},I=()=>{if(!b)return null;if(h.isValidElement(b))return b;const H=b.filter(N=>N&&(N.title||N.icon));return H.length===0?null:D?e.jsx(f.Box,{direction:"row",gap:"md",children:H.map(({title:N,icon:G,buttonProps:Y,onClick:te},K)=>e.jsx(j.Button,{iconLeft:G?e.jsx(F.Icon,{name:G,size:"md"}):void 0,onClick:te,...Y,children:N},`action-${K}`))}):e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"tertiary",size:"sm",iconLeft:e.jsx(F.Icon,{name:"MenuBurger"}),"aria-label":"Actions"})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{minWidth:200},children:H.map(({title:N,icon:G,buttonProps:Y,onClick:te},K)=>{const ee=(Y==null?void 0:Y.tone)==="error"||(Y==null?void 0:Y.danger)===!0;return e.jsx(W.MenuItem,{intent:ee?"danger":void 0,disabled:Y==null?void 0:Y.disabled,startIcon:G?e.jsx(F.Icon,{name:G}):void 0,onClick:te,children:N},`action-${K}`)})})})]})},T=()=>{const H=e.jsx(jn,{backButton:r});return r!=null&&r.navigateTo?e.jsx(f.Box,{direction:"row",children:e.jsx(z,{to:r.navigateTo,replace:!0,style:{textDecoration:"none"},children:H})}):e.jsx(f.Box,{direction:"row",children:e.jsx(Pr,{onClick:m,children:H})})},B=()=>{const H=!!t,N=Array.isArray(b)&&b.length>0,G=h.isValidElement(b)?!0:N;if(!H&&!G&&!x)return null;const te=D||!D&&N;return e.jsxs(f.Box,{direction:"column",gap:"xs",paddingBlock:(k==null?void 0:k.paddingBlock)??"sm",paddingInline:(k==null?void 0:k.paddingInline)??"md",...k,style:{...i?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...k==null?void 0:k.style},children:[x&&T(),(H||G)&&e.jsxs(f.Box,{direction:te?"row":"column",gap:"sm",justify:"space-between",align:te?"center":"flex-start",children:[H?typeof t=="string"?e.jsxs(f.Box,{direction:"row",gap:"lg",align:"center",children:[e.jsxs(f.Box,{direction:"row",gap:"sm",align:"center",children:[o&&e.jsx(F.Icon,{name:o,size:"md",color:"primary"}),e.jsx(S.Text,{variant:"h3",fontWeight:"semibold",children:t})]}),n&&e.jsx(rr.Badge,{border:!0,size:"lg",text:n,...p})]}):t:null,I()]})]})},O=()=>{if(!g||g.length===0)return null;const H=g.filter(Y=>Y.show!==!1);if(H.length===0)return null;let N=0,G=-1/0;return H.forEach((Y,te)=>{const K=Y.order??0;K>=G&&(G=K,N=te)}),H.map(({content:Y,order:te,borderBottom:K=!0,keepBottomPadding:ee=!1,paddingInline:_=!0,paddingBlock:ge=!0},fe)=>e.jsx(f.Box,{direction:"column",paddingTop:ge?"sm":"spacing-0",paddingBottom:ge&&(K||ee||fe===N)?"sm":"spacing-0",paddingInline:_?"md":"spacing-0",style:{...K?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...te!==void 0?{order:te}:{}},children:Y},`sub-header-${fe}`))},U=()=>{const H=s?B():null,N=O();return!H&&!N?null:e.jsxs(f.Box,{direction:"column",style:{...a?{position:"sticky",left:0,...d?{top:0}:{},zIndex:2,background:"var(--sa-background-primary, #ffffff)"}:{},marginBottom:N?"var(--sa-spacing-0)":"var(--sa-spacing-md)"},children:[H,N]})},V=()=>l;return e.jsxs(f.Box,{direction:"column",as:"main",...C,style:{...a?{height:"100%",minHeight:0,overflow:"auto"}:{},...(C==null?void 0:C.style)??{},...c?{}:{animation:"pageLayoutEnter 320ms cubic-bezier(0.16, 1, 0.3, 1) backwards"}},children:[U(),V()]})},Nn=r=>{const{useLocation:t}=tr(),o=t();return e.jsx(rl,{...r},o.pathname)},_n=r=>r.remountOnRouteChange?e.jsx(Nn,{...r}):e.jsx(rl,{...r}),qn=h.memo(_n),Zn={icon:"Cross",title:""},Gn=320,tl=16,ol=4,Qn=8,ll=h.forwardRef(({onHide:r,show:t,withBlur:o=!1,style:n,children:l,closeButton:s=Zn,paddingHorizontal:i=!0,width:c,minWidth:a,maxWidth:d,hideBackdrop:g=!1,title:b,headerAction:p,header:C=!0,widthPresets:k,resizable:D=!0,resizeMin:z=Gn,resizeMax:A,onWidthChange:L},x)=>{const I=!ke.useMediaQuery("md"),T=c??d??a??"357px",B=k??[],O=B.length>1,[U,V]=h.useState(()=>{const ie=B.indexOf(T);return ie>=0?ie:0}),[H,N]=h.useState(null),[G,Y]=h.useState(!1),[te,K]=h.useState(!1),ee=h.useRef(null),_=ie=>{ee.current=ie,typeof x=="function"?x(ie):x&&(x.current=ie)},ge=O?B[U]:T,fe=H!=null?`${H}px`:ge,Fe=D&&!I,qe=U===B.length-1,Be=()=>{const ie=(U+1)%B.length;N(null),V(ie),L==null||L(B[ie])},ve=h.useCallback(ie=>{const de=A??window.innerWidth;return Math.min(Math.max(ie,z),de)},[z,A]),Ce=h.useRef(null),Ae=ie=>{if(!Fe)return;ie.preventDefault();const de=ie.currentTarget;de.setPointerCapture(ie.pointerId),Y(!0);const pe=document.body.style.cursor,we=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let Ie=null;const sr=P=>{const $=ve(window.innerWidth-P.clientX);Ce.current=$,Ie==null&&(Ie=window.requestAnimationFrame(()=>{Ie=null,Ce.current!=null&&N(Ce.current)}))},ir=P=>{Ie!=null&&window.cancelAnimationFrame(Ie),Ce.current!=null&&N(Ce.current),de.releasePointerCapture(P.pointerId),de.removeEventListener("pointermove",sr),de.removeEventListener("pointerup",ir),de.removeEventListener("pointercancel",ir),document.body.style.cursor=pe,document.body.style.userSelect=we,Y(!1),Ce.current!=null&&(L==null||L(`${Ce.current}px`))};de.addEventListener("pointermove",sr),de.addEventListener("pointerup",ir),de.addEventListener("pointercancel",ir)},Ze=ie=>{var Ie;if(!Fe||ie.key!=="ArrowLeft"&&ie.key!=="ArrowRight")return;ie.preventDefault();const de=ie.key==="ArrowLeft"?tl:-tl,pe=H??((Ie=ee.current)==null?void 0:Ie.offsetWidth)??z,we=ve(pe+de);N(we),L==null||L(`${we}px`)},He=()=>{Fe&&(N(null),L==null||L(ge))};return e.jsx(Ur.Drawer,{blur:o,isShow:t,position:"right",onHide:r,ref:_,size:fe,style:n,flush:!0,radius:"none",hideBackdrop:g,children:e.jsxs(f.Box,{direction:"column",height:"height-full",children:[Fe?e.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Ubah lebar panel",tabIndex:0,onPointerDown:Ae,onKeyDown:Ze,onDoubleClick:He,title:"Tarik untuk mengubah lebar — klik dua kali untuk reset",onPointerEnter:()=>K(!0),onPointerLeave:()=>K(!1),style:{position:"absolute",left:0,top:0,bottom:0,width:Qn,cursor:"col-resize",zIndex:1,background:G||te?`linear-gradient(to right, var(--sa-border-brand, var(--sa-border-subtle)) 0 ${ol}px, transparent ${ol}px)`:"transparent",transition:"background 0.15s",touchAction:"none"}}):null,C?e.jsxs(f.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(f.Box,{direction:"row",align:"center",gap:"sm",overflow:"overflow-hidden",children:typeof b=="string"?e.jsx(S.Text,{fontSize:"md",fontWeight:"bold",children:b}):b}),e.jsxs(f.Box,{direction:"row",align:"center",gap:"sm",flexShrink:"0",children:[p,O?e.jsx(j.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:Be,"aria-label":qe?"Kecilkan panel":"Lebarkan panel",iconRight:e.jsx(F.Icon,{name:qe?"ChevronRight":"ChevronLeft"})}):null,s?e.jsx(j.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:r,"aria-label":s.title||"Tutup",iconRight:e.jsx(F.Icon,{name:s.icon}),children:s.title||void 0}):null]})]}):null,e.jsx(f.Box,{direction:"column",paddingBlock:"md",paddingInline:i?"md":"spacing-0",overflow:"overflow-y-auto",style:{flex:1,minHeight:0},children:l})]})})}),jt=h.memo(({children:r,borderBottom:t=!0,padding:o=!0})=>{const n=ke.useMediaQuery("lg");return e.jsx(f.Box,{direction:"column",padding:o?"md":"spacing-0",paddingLeft:o?"md":"spacing-0",paddingRight:o?"md":"spacing-0",style:t?{borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:r})}),Nt=h.memo(({children:r,borderTop:t=!0,padding:o=!0})=>{const n=ke.useMediaQuery("lg");return e.jsx(f.Box,{direction:"column",padding:o?"md":"spacing-0",paddingLeft:o?"md":"spacing-0",paddingRight:o?"md":"spacing-0",style:t?{borderTop:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:r})}),Un=h.memo(({children:r,...t})=>e.jsx(f.Box,{direction:"column",padding:"md",paddingLeft:"md",paddingRight:"md",gap:"md",...t,children:r})),Yn=h.memo(({children:r,title:t,titleTag:o,action:n,header:l,footer:s,actionContainer:i,containerProps:c,bodyProps:a,headerProps:d={borderBottom:!0},footerProps:g={borderTop:!0},variantTag:b="info"})=>{const p=ke.useMediaQuery("lg"),C=()=>o?e.jsxs(f.Box,{direction:"row",gap:"sm",align:"center",children:[e.jsx(S.Text,{fontWeight:"medium",children:t}),e.jsx(rr.Badges,{border:!0,text:o,variant:b})]}):e.jsx(S.Text,{fontWeight:"medium",children:t}),k=()=>l||e.jsxs(f.Box,{direction:"row",justify:"space-between",align:"flex-start",gap:"md",children:[e.jsx(f.Box,{direction:"column",children:t?C():null}),e.jsx(f.Box,{direction:"column",style:p?{width:"100%",maxWidth:"19.313rem"}:{flex:1},...i,children:n??null})]}),D=!!(l||t||n);return e.jsxs(f.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:[l!==null&&D?e.jsx(jt,{...d,children:k()}):null,e.jsx(Un,{...a,children:r}),s?e.jsx(Nt,{...g,children:s}):null]})}),Re={H1:r=>e.jsx(S.Text,{variant:"h1",children:r.children,...r.props}),H2:r=>e.jsx(S.Text,{variant:"h2",children:r.children,...r.props}),H3:r=>e.jsx(S.Text,{variant:"h3",children:r.children,...r.props}),H4:r=>e.jsx(S.Text,{variant:"h4",children:r.children,...r.props}),H5:r=>e.jsx(S.Text,{variant:"h5",children:r.children,...r.props}),H6:r=>e.jsx(S.Text,{variant:"h6",children:r.children,...r.props}),SubH1:r=>e.jsx(S.Text,{variant:"sub-h1",children:r.children,...r.props}),SubH2:r=>e.jsx(S.Text,{variant:"sub-h2",children:r.children,...r.props}),SubH3:r=>e.jsx(S.Text,{variant:"sub-h3",children:r.children,...r.props}),Body1:r=>e.jsx(S.Text,{variant:"body-1",children:r.children,...r.props}),Body2:r=>e.jsx(S.Text,{variant:"body-2",children:r.children,...r.props}),Body3:r=>e.jsx(S.Text,{variant:"body-3",children:r.children,...r.props})},_e=()=>{const{useSearchParams:r,useParams:t,useLocation:o}=tr(),[n,l]=r(),s=Ir.searchParamsToObject(n.toString()),i=t(),c=o(),a=i.id;return{setSearchParams:l,searchParams:n,searchQueries:s,isHasQuery:(C,k)=>n.has(C)&&n.get(C)===k,getQueryParam:C=>n.get(C),getRouteParam:C=>i[C],params:i,location:c,id:a,hasId:!!a}},nl=r=>JSON.stringify(r),sl=r=>JSON.stringify(r),il=r=>JSON.stringify(r),cl=r=>JSON.stringify(r),Xn=r=>r,Jn=r=>JSON.stringify(r),or=r=>{if(typeof r!="string"||r==="")return{};try{const t=JSON.parse(r);return!t||typeof t!="object"||Array.isArray(t)?{}:t}catch{return{}}},lr=r=>{if(!(typeof r!="string"||r===""))try{return JSON.parse(r)}catch{return}},Vr=({value:r,name:t,type:o,withSearchParam:n=!0,setSearchParams:l,searchQueries:s,dropdownSearchKey:i,filterKey:c="filter",pageKey:a="page"})=>{if(n){let d;switch(o){case"search":d=Xn(r);break;case"dropdown":case"dropdown-multiple":d=nl(r);break;case"radio":d=sl(r);break;case"date-range":d=il(r);break;case"advanced-date-range":d=Jn(r);break;case"date":d=cl(r);break;default:d=r;break}if(typeof d<"u"){const g={...or(s[c]),[t]:d},b={...s};i&&typeof i=="string"&&delete b[i],delete b[a];const p={...b,[c]:JSON.stringify(g)},C=new URLSearchParams(s).toString(),k=new URLSearchParams(p).toString();if(C===k)return;l(p)}}},Kr=({name:r,filterKey:t="filter",searchParams:o,get:n})=>{var c,a,d,g;const l=o.get(t)||void 0,s=l&&typeof l=="string"?or(l):void 0,i=s?s[r]:void 0;return n==="label"&&i?(a=(c=lr(i))==null?void 0:c[0])==null?void 0:a.label:n==="value"&&i?(g=(d=lr(i))==null?void 0:d[0])==null?void 0:g.value:i},al=({name:r,filterKey:t="filter",searchParams:o,get:n})=>{var c,a;const l=o.get(t)||void 0,s=l&&typeof l=="string"?or(l):void 0,i=s?s[r]:void 0;return n==="label"&&i?(c=lr(i))==null?void 0:c.map(d=>d.label):n==="value"&&i?(a=lr(i))==null?void 0:a.map(d=>d.value):n==="array"&&i?lr(i):i},$n=({name:r,filterKey:t="filter",searchParams:o,get:n})=>{var c,a,d;const l=o.get(t)||void 0,s=l&&typeof l=="string"?or(l):void 0,i=s?s[r]:void 0;return n==="id"&&i?(c=lr(i))==null?void 0:c.id:n==="label"&&i?(a=lr(i))==null?void 0:a.label:n==="value"&&i?(d=lr(i))==null?void 0:d.value:i},Rr=(r,t,o)=>{const n=t.get(o||"filter")||void 0,l=n&&typeof n=="string"?or(n):void 0;return l?l[r]:void 0},Kn=({name:r,filterKey:t="filter",searchParams:o})=>{var i,c;const n=o.get(t||"filter")||void 0,l=n&&typeof n=="string"?or(n):void 0,s=l?l[r]:void 0;return{start:s?(i=lr(s))==null?void 0:i.from:void 0,end:s?(c=lr(s))==null?void 0:c.to:void 0}},dl=({name:r,filterKey:t="filter",searchParams:o})=>{const n=o.get(t||"filter")||void 0,l=n&&typeof n=="string"?or(n):void 0,s=l?l[r]:void 0;return s?lr(s):void 0},Rn=(r,{filterKey:t="filter",perPageKey:o="perPage",pageKey:n="page"})=>{const l=r.get(t)||void 0,s=r.get(o)||void 0,i=r.get(n)||void 0;return!!l||!!s||!!i},hl=({isOpen:r,onClose:t,filterKey:o,pageKey:n,filters:l})=>{const{searchParams:s,setSearchParams:i,searchQueries:c}=_e(),[a,d]=h.useState({}),g=()=>{s.delete(o||"filter"),i(s)},b=(p,C)=>{switch(p.type){case"radio":{const{show:k=!0}=p;return k&&e.jsx(f.Box,{direction:"column",children:e.jsx(f.Box,{direction:"column",children:p.title})},C)}case"dropdown":{const{show:k=!0}=p;return k&&e.jsx(f.Box,{direction:"column",children:e.jsx(f.Box,{direction:"column",children:p.title})},C)}case"date-range":return e.jsx(f.Box,{direction:"column",children:e.jsx(f.Box,{direction:"column",children:p.title})},C);case"date":return e.jsx(f.Box,{direction:"column",children:e.jsx(f.Box,{direction:"column",children:p.title})},C);case"dropdown-multiple":{const{show:k=!0}=p;return k&&e.jsx(f.Box,{direction:"column",children:e.jsx(f.Box,{direction:"column",children:p.title})},C)}default:return null}};return e.jsx(ll,{onHide:t,show:r||!1,children:e.jsxs(f.Box,{direction:"column",gap:"md",children:[e.jsxs(ae.Flex,{direction:"row",justify:"space-between",align:"center",children:[e.jsx(f.Box,{direction:"column",children:"Filter"}),e.jsx(f.Box,{direction:"column",style:{cursor:"pointer"},onClick:g,children:"Reset"})]}),l==null?void 0:l.map((p,C)=>b(p,C))]})})},fl=({searchKey:r="q",statusKey:t="status",searchPlaceholder:o="Search",searchHighlightPlaceholder:n,extendedFilter:l,showSearchFilter:s=!0,showStatusFilter:i=!0,filterKey:c="filter",pageKey:a="page",customWidthSearch:d,handleOnReset:g,filterConfigs:b,buttonToggleProps:p,position:C="right",titleSearchLabel:k="Work Order",withTitleLabels:D=!1})=>{const A=(p==null?void 0:p.isShowLabel)??!0,[L,x]=h.useState(!1),[m,I]=h.useState(0),T=()=>{I(_=>_+1)},{searchParams:B,setSearchParams:O,getQueryParam:U}=_e(),V=Ir.searchParamsToObject(B.toString()),H=Rr(r,B,c)||"",[N,G]=h.useState(H),Y=U(c),K=!!(Y&&!(()=>{if(Y)try{const _=JSON.parse(Y);return Object.keys(_).length===1&&_[r]===""}catch(_){console.error("Filter parameter is not a valid JSON:",_)}return!1})()),ee=ke.useMediaQuery("md");return h.useEffect(()=>{G(H)},[H]),h.useEffect(()=>{if(N===H)return;const _=window.setTimeout(()=>{Vr({value:N,name:r,type:"search",searchQueries:V,setSearchParams:O,filterKey:c,pageKey:a})},350);return()=>{window.clearTimeout(_)}},[N,H,r,V,O,c,a]),e.jsxs(ae.Flex,{gap:"md",style:{flexDirection:ee&&C==="left"?"row":ee&&C==="right"?"row-reverse":"column"},align:"flex-end",children:[K&&e.jsx(f.Box,{direction:"column",justify:"flex-end",children:e.jsx(j.Button,{onClick:()=>{const _=new URLSearchParams(B);_.delete(c),O(_),G(""),T(),g&&g()},variant:"outline",tone:"neutral",children:e.jsx(S.Text,{color:"error",fontWeight:"semibold",children:"Reset"})})}),l==null?void 0:l.map(({minWidth:_,content:ge,title:fe,onClickContainer:Fe},qe)=>e.jsxs(f.Box,{direction:"column",gap:"sm",onClick:Fe,style:{minWidth:_},children:[fe&&e.jsx(Re.SubH3,{children:fe}),ge]},`extended-filter-${qe}-${m}`)),!!(b!=null&&b.length)&&e.jsx(j.Button,{primary:K,secondary:!K,iconLeft:e.jsx(F.Icon,{size:"sm",name:(p==null?void 0:p.icon)||"FilterHorizontal",style:{color:Y?"var(--sa-background-brand, #04254f)":"var(--sa-text-primary, #292a2e)"}}),fullWidth:!ee,onClick:()=>x(!0),children:A?"Filter":void 0}),i&&e.jsxs(f.Box,{direction:"column",gap:"sm",style:{minWidth:"126px"},children:[D&&e.jsx(Re.SubH3,{children:"Status"}),e.jsx(Fr.Dropdown,{dropdownLists:[{label:"Active",value:"active"},{label:"InActive",value:"inactive"}],defaultValue:Kr({get:"value",name:t,searchParams:B,filterKey:c})?[{label:Kr({get:"value",name:t,searchParams:B,filterKey:c})==="active"?"Active":"InActive",value:Kr({get:"value",name:t,searchParams:B,filterKey:c})}]:[],onChange:_=>Vr({value:_,name:t,type:"dropdown",searchQueries:V,setSearchParams:O,filterKey:c}),placeholder:D?"All":"All Status"},m)]}),s&&e.jsxs(f.Box,{direction:"column",gap:"sm",style:{width:d&&ee?d:ee?"310px":""},children:[D&&e.jsxs(Re.SubH3,{children:["Search for ",k]}),e.jsx(hr.Input,{placeholder:o,leftIcon:e.jsx(F.Icon,{name:"Search",width:20,height:20}),onChange:_=>G(_.target.value),value:N,fullWidth:!0},m+1+c)]}),e.jsx(hl,{isOpen:L,onClose:()=>x(!1),filterKey:c,filters:b,pageKey:a})]})},es=r=>r==="checkbox-multiple"?"dropdown-multiple":r==="radio"?"dropdown":r==="date-compact"?"date":r==="text"?"search":r;function _t({configs:r,filterKey:t="filter",activeFilterKey:o="filters",pageKey:n="page",searchKey:l="q"}){const{searchParams:s,setSearchParams:i,searchQueries:c}=_e(),a=h.useMemo(()=>Object.fromEntries(r.map(m=>[m.key,m])),[r]),d=h.useMemo(()=>{const m=(s.get(o)||"").split(",").map(T=>T.trim()).filter(Boolean),I=Object.keys(or(s.get(t))).filter(T=>T!==l);return r.map(T=>T.key).filter(T=>{const B=a[T];return(B==null?void 0:B.locked)||m.includes(T)||I.includes(T)})},[s,o,t,l,r,a]),g=h.useCallback(m=>or(m[t]),[t]),b=h.useCallback(m=>{const I={...c};m.length?I[o]=m.join(","):delete I[o],i(I)},[c,o,i]),p=h.useCallback(m=>{d.includes(m)||b([...d,m])},[d,b]),C=h.useCallback(m=>{var O;if((O=a[m])!=null&&O.locked)return;const I={...c},T=d.filter(U=>U!==m);T.length?I[o]=T.join(","):delete I[o];const B=g(I);m in B&&(delete B[m],Object.keys(B).length?I[t]=JSON.stringify(B):delete I[t]),delete I[n],i(I)},[c,d,o,t,n,g,i,a]),k=h.useCallback(m=>d.includes(m)?C(m):p(m),[d,p,C]),D=h.useCallback(m=>{switch(m.type){case"dropdown":case"dropdown-multiple":case"checkbox-multiple":case"radio":return al({name:m.key,get:"array",searchParams:s,filterKey:t})||[];case"date":{const I=dl({name:m.key,searchParams:s,filterKey:t});return I?new Date(I):void 0}case"date-compact":{const T=g(Object.fromEntries(s.entries()))[m.key];return T&&typeof T=="object"?T:void 0}case"text":{const T=g(Object.fromEntries(s.entries()))[m.key];return typeof T=="string"?T:void 0}default:return}},[s,t,g]),z=h.useCallback((m,I)=>{if(m.type==="date-compact"||m.type==="text"){const T={...c},B=g(T);I==null||I===""?delete B[m.key]:B[m.key]=I,Object.keys(B).length?T[t]=JSON.stringify(B):delete T[t],delete T[n],i(T);return}Vr({value:I,name:m.key,type:es(m.type),searchQueries:c,setSearchParams:i,filterKey:t,pageKey:n})},[c,i,t,n,g]),A=h.useCallback(m=>{const I={...c},T=g(I);m in T&&(delete T[m],Object.keys(T).length?I[t]=JSON.stringify(T):delete I[t]),delete I[n],i(I)},[c,t,n,g,i]),L=h.useCallback(()=>{const m={...c};delete m[t],delete m[o],delete m[n],i(m)},[c,t,o,n,i]),x=d.length>0;return{activeKeys:d,configByKey:a,hasActiveFilter:x,addFilter:p,removeFilter:C,toggleFilter:k,getValue:D,setValue:z,clearValue:A,clearAll:L}}const qt={get(r){return Hr.storage.get(r)??null},set(r,t){Hr.storage.save(r,t)},remove(r){Hr.storage.delete(r)}},Lr={columns:r=>`filterbar:colprefs:${r}`,savedViews:r=>`filterbar:views:${r}`,lastState:r=>`filterbar:last:${r}`,perPage:r=>`filterbar:perpage:${r}`,tableSort:r=>`tablelayout:sort:${r}`},et=(r,t)=>{const o=new Set(t.map(s=>s.key)),n=r.order.filter(s=>o.has(s));for(const s of t)n.includes(s.key)||n.push(s.key);const l=r.hidden.filter(s=>o.has(s));return{order:n,hidden:l}};function rs({columns:r,scopeId:t,storage:o,onColumnsChange:n,value:l}){const s=h.useMemo(()=>({order:r.map(B=>B.key),hidden:[]}),[r]),i=t?Lr.columns(t):void 0,c=(B,O)=>et({order:B.order??O,hidden:B.hidden??[]},r),[a,d]=h.useState(()=>{if(l&&(l.order||l.hidden))return c(l,r.map(B=>B.key));if(i){const B=o.get(i);if(B&&Array.isArray(B.order))return et(B,r)}return s}),g=r.map(B=>B.key).join("|");h.useEffect(()=>d(B=>et(B,r)),[g]);const b=h.useRef(a);b.current=a;const p=l?`${(l.order??[]).join("|")}~${(l.hidden??[]).join("|")}`:null,C=h.useRef(p);h.useEffect(()=>{if(p==null||C.current===p)return;C.current=p;const B=b.current,O=c(l,B.order);O.order.join("|")===B.order.join("|")&&O.hidden.join("|")===B.hidden.join("|")||(d(O),i&&o.set(i,O))},[p,g]);const k=h.useRef(!1);h.useEffect(()=>{k.current||(k.current=!0,n==null||n(a))},[]);const D=h.useCallback(B=>{d(B),i&&o.set(i,B),n==null||n(B)},[i,o,n]),z=h.useMemo(()=>{const B=new Map(r.map(O=>[O.key,O]));return a.order.filter(O=>B.has(O)).map(O=>({...B.get(O),visible:!a.hidden.includes(O)}))},[a,r]),A=h.useCallback(B=>{const O=a.hidden.includes(B)?a.hidden.filter(U=>U!==B):[...a.hidden,B];D({...a,hidden:O})},[a,D]),L=h.useCallback((B,O)=>{if(B===O)return;const U=[...a.order],[V]=U.splice(B,1);U.splice(O,0,V),D({...a,order:U})},[a,D]),x=h.useCallback(B=>{D({...a,hidden:B?r.filter(O=>!O.locked).map(O=>O.key):[]})},[a,r,D]),m=h.useCallback(()=>D(s),[D,s]),I=h.useCallback(B=>D(et(B,r)),[D,r]),T=a.hidden.length===0;return{state:a,orderedColumns:z,allVisible:T,toggleVisibility:A,reorder:L,setAllHidden:x,reset:m,applyState:I}}function ts({scopeId:r,storage:t,snapshotKeys:o,pageKey:n="page",getColumns:l,applyColumns:s}){const{searchParams:i,setSearchParams:c}=_e(),a=r?Lr.savedViews(r):void 0,[d,g]=h.useState(()=>a?t.get(a)||[]:[]),b=h.useCallback(D=>{g(D),a&&t.set(a,D)},[a]),p=h.useCallback(D=>{const z=D.trim();if(!z)return;const A={};o.forEach(x=>{const m=i.get(x);m!=null&&(A[x]=m)});const L={id:`${Date.now()}`,name:z,query:A,columns:l==null?void 0:l(),createdAt:Date.now()};b([...d,L])},[o,i,l,b,d]),C=h.useCallback(D=>b(d.filter(z=>z.id!==D)),[b,d]),k=h.useCallback(D=>{const z=Object.fromEntries(i.entries());o.forEach(A=>delete z[A]),Object.assign(z,D.query),delete z[n],c(z),D.columns&&(s==null||s(D.columns))},[i,o,n,c,s]);return{enabled:!!a,views:d,saveView:p,deleteView:C,applyView:k}}function os(r,t){const o=or(r);return delete o[t],Object.keys(o).length>0?JSON.stringify(o):void 0}function ul(r,t,o){const n=r[t];if(n==null)return;const l=os(n,o);l===void 0?delete r[t]:r[t]=l}function ls({scopeId:r,storage:t,snapshotKeys:o,enabled:n=!0,filterKey:l="filter",searchKey:s="q",persistSearch:i=!0}){const{searchParams:c}=_e(),a=r&&n?Lr.lastState(r):void 0,d=h.useRef(a),g=h.useRef(!1);h.useEffect(()=>{if(!a){d.current=a;return}if(d.current!==a){d.current=a,g.current=!1;return}const C={};if(o.forEach(k=>{const D=c.get(k);D!=null&&(C[k]=D)}),i||ul(C,l,s),Object.keys(C).length===0){g.current&&t.remove(a);return}g.current=!0,t.set(a,C)},[c,a,o,t,i,l,s]);const b=h.useCallback(()=>{if(!a)return null;const C=t.get(a);if(!C||typeof C!="object"||Array.isArray(C)||Object.keys(C).length===0)return null;const k=C[l];return k!=null&&Object.keys(or(k)).length===0&&delete C[l],i||ul(C,l,s),Object.keys(C).length>0?C:null},[a,t,i,l,s]),p=h.useCallback(()=>{a&&t.remove(a)},[a,t]);return{enabled:!!a,read:b,clear:p}}function ns({scopeId:r,storage:t,perPageKey:o,pageSizeOptions:n,enabled:l=!0}){const{searchParams:s}=_e(),i=r&&l?Lr.perPage(r):void 0,c=s.toString(),a=h.useRef(i);h.useEffect(()=>{if(!i){a.current=i;return}if(a.current!==i){a.current=i;return}const b=s.get(o);if(!b)return;const p=Number(b);!Number.isFinite(p)||p<=0||t.set(i,p)},[c,i,o,t]);const d=h.useCallback(()=>{if(!i)return null;const b=t.get(i);if(b==null)return null;const p=Number(b);return!Number.isFinite(p)||p<=0||n&&!n.includes(p)?null:String(p)},[i,t,n]),g=h.useCallback(()=>{i&&t.remove(i)},[i,t]);return{enabled:!!i,read:d,clear:g}}let Zt={},Gt=!1,Qt=null;const ss=(r,t)=>{Object.assign(Zt,r),Qt=t,!Gt&&(Gt=!0,queueMicrotask(()=>{const o=Zt,n=Qt;Zt={},Gt=!1,Qt=null,!(!n||Object.keys(o).length===0)&&n(l=>{const s=new URLSearchParams(l);return Object.entries(o).forEach(([i,c])=>s.set(i,c)),s},{replace:!0})}))};function is({enabled:r,snapshotKeys:t,perPageKey:o,readSnapshot:n,readPerPage:l}){const{searchParams:s,setSearchParams:i,location:c}=_e(),a=h.useRef(null);h.useEffect(()=>{if(!r||a.current===c.pathname)return;a.current=c.pathname;const d={};if(!s.has(o)){const g=l();g&&(d[o]=g)}if(!t.some(g=>s.has(g))){const g=n();g&&Object.assign(d,g)}Object.keys(d).length!==0&&ss(d,i)},[c.pathname,r])}const cs=({configs:r,activeKeys:t,onToggle:o,hasActiveFilter:n,onReset:l})=>r.length?e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:n?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"FilterHorizontal"}),"aria-label":"Add filter"})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{minWidth:260},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:"Add Filter"}),n&&l&&e.jsx(j.Button,{variant:"link",tone:"brand",size:"xs",onClick:l,children:"Reset"})]}),children:r.map(s=>e.jsx(W.MenuItem,{selected:s.locked||t.includes(s.key),disabled:s.locked,closeOnSelect:!1,startIcon:s.icon??void 0,onClick:()=>{s.locked||o(s.key)},children:s.label},s.key))})})]}):null,jr=({onClear:r,onRemove:t})=>e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"link",tone:"neutral",size:"xs",iconLeft:e.jsx(F.Icon,{name:"MenuHorizontal"}),"aria-label":"Filter actions"})}),e.jsx(W.MenuLists,{children:e.jsxs(W.MenuBody,{style:{width:180},children:[e.jsx(W.MenuItem,{startIcon:e.jsx(F.Icon,{name:"CrossCircle"}),onClick:r,children:"Clear value"}),t&&e.jsx(W.MenuItem,{intent:"danger",startIcon:e.jsx(F.Icon,{name:"Trash1"}),onClick:t,children:"Remove filter"})]})})]}),as=r=>{const t=new Date(r);return t.setHours(0,0,0,0),t},gl=(r,t,o)=>{const n=new Date(r);return o==="day"?n.setDate(n.getDate()+t):o==="week"?n.setDate(n.getDate()+t*7):o==="month"?n.setMonth(n.getMonth()+t):n.setFullYear(n.getFullYear()+t),n},yl=r=>{const t=as(new Date);if(r.direction==="this"){const n=new Date(t),l=new Date(t);return r.period==="week"?(n.setDate(t.getDate()-t.getDay()),l.setDate(n.getDate()+6)):r.period==="month"?(n.setDate(1),l.setMonth(l.getMonth()+1,0)):r.period==="year"&&(n.setMonth(0,1),l.setMonth(11,31)),{from:n,to:l}}const o=r.count??1;return r.direction==="past"?{from:gl(t,-o,r.period),to:t}:{from:t,to:gl(t,o,r.period)}},pl=24,bl=r=>r.length>pl?`${r.slice(0,pl)}...`:r,vl=r=>r.toLocaleDateString(void 0,{day:"2-digit",month:"short",year:"numeric"}),Ut=(r,t="days")=>t==="months"?r.toLocaleDateString(void 0,{month:"short",year:"numeric"}):t==="years"?String(r.getFullYear()):vl(r),rt={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"},Cl=["is","is-before","is-after","is-on-or-before","is-on-or-after","is-between","is-relative-to-today","is-empty","is-not-empty"],Yt={past:"Past",next:"Next",this:"This"},ds=["day","week","month","year"],hs=["past","next","this"],fs=r=>r.field.type==="date-compact"?e.jsx(ys,{field:r.field,value:r.value,onChange:r.onChange,onClear:r.onClear,onRemove:r.onRemove}):e.jsx(us,{field:r.field,value:r.value,onChange:r.onChange,onClear:r.onClear,onRemove:r.onRemove}),us=({field:r,value:t,onChange:o,onClear:n,onRemove:l})=>{const s=t?vl(new Date(t)):null,i=!!s,c=i?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[r.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:bl(s)})]}):r.label;return e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:i?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:i?e.jsx(F.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:c})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:260},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(jr,{onClear:n,onRemove:l})]}),children:e.jsx(pr.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:r.mode,value:t,onChange:a=>a==null?n():o(a),withPadding:!1})})})]})},gs=(r,t="days")=>{switch(r.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return r.date?`${rt[r.op]} ${Ut(new Date(r.date),t)}`:null;case"is-between":return r.from&&r.to?`${Ut(new Date(r.from),t)} - ${Ut(new Date(r.to),t)}`:null;case"is-relative-to-today":{const o=r.relative;if(!o)return null;if(o.direction==="this")return`This ${o.period}`;const n=o.count??1,l=n===1?o.period:`${o.period}s`;return`${Yt[o.direction]} ${n} ${l}`}case"is-empty":case"is-not-empty":return rt[r.op];default:return null}},ys=({field:r,value:t,onChange:o,onClear:n,onRemove:l})=>{const s=r.ops&&r.ops.length>0?r.ops:Cl,i=r.defaultOp&&s.includes(r.defaultOp)?r.defaultOp:s[0],c=r.mode??"days",a=(t==null?void 0:t.op)??i,d=t?gs(t,c):null,g=!!d,b=g?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[r.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:bl(d)})]}):r.label,p=C=>{if(C!==a){if(C==="is-empty"||C==="is-not-empty"){o({op:C});return}if(C==="is-relative-to-today"){o({op:C,relative:(t==null?void 0:t.relative)??{direction:"past",count:1,period:"week"}});return}if(C==="is-between"){o({op:C,from:t==null?void 0:t.from,to:t==null?void 0:t.to});return}o({op:C,date:t==null?void 0:t.date})}};return e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:g?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:g?e.jsx(F.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:b})}),e.jsxs(W.MenuLists,{children:[e.jsx(W.MenuBody,{style:{width:320},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",gap:"xs",fullWidth:!0,children:[e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",gap:"xs",style:{minWidth:0},children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(xl,{op:a,ops:s,onChange:p})]}),e.jsx(jr,{onClear:n,onRemove:l})]}),children:e.jsx(wl,{value:t,op:a,mode:c,onChange:o})}),a==="is-relative-to-today"&&e.jsx(W.MenuFooter,{children:e.jsx(S.Text,{fontSize:"xs",color:"subtlest",children:"Filter will update with the current date"})})]})]})},xl=({op:r,ops:t,onChange:o})=>e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"link",tone:"neutral",size:"xs",iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:rt[r]})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:200},children:t.map(n=>e.jsx(W.MenuItem,{selected:r===n,onClick:()=>o(n),endIcon:r===n?e.jsx(F.Icon,{name:"Check"}):void 0,children:rt[n]},n))})})]}),wl=({value:r,op:t,mode:o="days",onChange:n})=>{if(t==="is-empty"||t==="is-not-empty")return e.jsx(f.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(S.Text,{fontSize:"xs",color:"subtlest",children:"No further input required."})});if(t==="is-between"){const l=r!=null&&r.from||r!=null&&r.to?{from:r!=null&&r.from?new Date(r.from):null,to:r!=null&&r.to?new Date(r.to):null}:void 0;return e.jsx(pr.StarasiaDate,{size:"sm",input:!1,clearable:!0,rangedDate:!0,filter:o,value:l,onChange:s=>{if(s==null){n({op:t});return}if(typeof s=="object"&&s!==null&&"from"in s&&"to"in s){let{from:i,to:c}=s;if(!i&&c&&(i=c,c=null),!i&&!c){n({op:t});return}n({op:t,from:i?i.toISOString():void 0,to:c?c.toISOString():void 0})}},withPadding:!1},`range-${o}`)}return t==="is-relative-to-today"?e.jsx(ps,{value:r==null?void 0:r.relative,onChange:l=>n({op:t,relative:l})}):e.jsx(pr.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:o,value:r!=null&&r.date?new Date(r.date):void 0,onChange:l=>{if(l==null){n({op:t});return}l instanceof Date&&n({op:t,date:l.toISOString()})},withPadding:!1},`single-${o}`)},ps=({value:r,onChange:t})=>{const o=(r==null?void 0:r.direction)??"past",n=(r==null?void 0:r.count)??1,l=(r==null?void 0:r.period)??"week",s=o!=="this",i=yl({direction:o,count:n,period:l});return e.jsxs(f.Box,{direction:"column",display:"flex",gap:"sm",children:[e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:Yt[o]})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:140},children:hs.map(c=>e.jsx(W.MenuItem,{selected:o===c,endIcon:o===c?e.jsx(F.Icon,{name:"Check"}):void 0,onClick:()=>t(c==="this"?{direction:c,period:l}:{direction:c,count:n,period:l}),children:Yt[c]},c))})})]}),s&&e.jsx(hr.Input,{type:"number",size:"sm",min:1,clearable:!1,value:n,onChange:c=>{const a=Number(c.target.value);t({direction:o,count:Number.isFinite(a)&&a>0?a:1,period:l})},style:{width:72}}),e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:l})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:140},children:ds.map(c=>e.jsx(W.MenuItem,{selected:l===c,endIcon:l===c?e.jsx(F.Icon,{name:"Check"}):void 0,onClick:()=>t(o==="this"?{direction:o,period:c}:{direction:o,count:n,period:c}),children:c},c))})})]})]}),e.jsx(pr.StarasiaDate,{size:"sm",input:!1,disabled:!0,rangedDate:!0,value:i,onChange:()=>{},withPadding:!1},"relative-preview")]})},Dl=18,bs=r=>r.length>Dl?`${r.slice(0,Dl)}...`:r,vs=({field:r,value:t,onChange:o,onClear:n,onRemove:l})=>{const s=r.type==="dropdown-multiple",i=t.length,c=r.searchable!==!1,[a,d]=h.useState(""),g=r.options,b=typeof r.onSearch=="function",p=(()=>{if(b)return g;const A=a.trim().toLowerCase();return A?g.filter(L=>L.label.toLowerCase().includes(A)):g})(),C=A=>t.some(L=>L.value===A.value),k=A=>{if(!s){o([{label:A.label,value:A.value}]),d("");return}o(C(A)?t.filter(L=>L.value!==A.value):[...t,{label:A.label,value:A.value}])},D=A=>{var L;d(A),(L=r.onSearch)==null||L.call(r,A)},z=i===0?r.label:e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[r.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:i===1?bs(t[0].label):`${i} Selected`})]});return e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:i>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:i>0?e.jsx(F.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:z})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:260},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(jr,{onClear:n,onRemove:l})]}),children:e.jsxs(f.Box,{direction:"column",gap:"sm",children:[c&&e.jsx(Fr.Dropdown,{size:"sm",triggerInput:!0,fullWidth:!0,hideChevronIcon:!0,clearable:!0,multiSelect:s,searchAble:!0,searchValue:a,onSearch:D,value:t,onChange:o,placeholder:`Search ${r.label.toLowerCase()}…`}),e.jsx(f.Box,{direction:"column",overflow:"overflow-y-auto",customMaxHeight:"240px",children:r.isLoading?e.jsx(f.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(S.Text,{fontSize:"xs",color:"subtlest",children:"Loading…"})}):p.length===0?e.jsx(f.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(S.Text,{fontSize:"xs",color:"subtlest",children:"No results"})}):p.map(A=>e.jsx(W.MenuItem,{closeOnSelect:!s,selected:C(A),startIcon:A.avatar,endIcon:C(A)?e.jsx(F.Icon,{name:"Check"}):void 0,description:A.description,onClick:()=>k(A),children:A.label},A.value))})]})})})]})},Sl=18,Cs=r=>r.length>Sl?`${r.slice(0,Sl)}...`:r,kl=({checked:r,indeterminate:t})=>e.jsx("span",{style:{pointerEvents:"none",display:"inline-flex"},children:e.jsx(fr.Checkbox,{size:"sm",checked:r,readOnly:!0,onChange:()=>{},variant:t?"indeterminate":"select"})}),xs=({field:r,value:t,onChange:o,onClear:n,onRemove:l})=>{const s=new Set(t.map(p=>p.value)),i=t.length,c=r.options.length>0&&r.options.every(p=>s.has(p.value)),a=i>0&&!c,d=p=>{o(s.has(p.value)?t.filter(C=>C.value!==p.value):[...t,{label:p.label,value:p.value}])},g=()=>{o(c?[]:r.options.map(p=>({label:p.label,value:p.value})))},b=i===0?r.label:e.jsxs(e.Fragment,{children:[e.jsxs(S.Text,{as:"span",fontWeight:"semibold",children:[r.label,":"]})," ",e.jsx(S.Text,{as:"span",children:i===1?Cs(t[0].label):`${i} Selected`})]});return e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:i>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:i>0?e.jsx(F.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:b})}),e.jsx(W.MenuLists,{children:e.jsxs(W.MenuBody,{style:{width:240},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(jr,{onClear:n,onRemove:l})]}),children:[e.jsx(W.MenuItem,{closeOnSelect:!1,selected:c,onClick:g,startIcon:e.jsx(kl,{checked:c||a,indeterminate:a}),children:"Select All"}),r.options.map(p=>e.jsx(W.MenuItem,{closeOnSelect:!1,selected:s.has(p.value),onClick:()=>d(p),startIcon:e.jsx(kl,{checked:s.has(p.value)}),children:p.label},p.value))]})})]})},Bl=18,ws=r=>r.length>Bl?`${r.slice(0,Bl)}...`:r,Ds=({field:r,value:t,onChange:o,onClear:n,onRemove:l})=>{const[s,i]=h.useState(t??""),c=ke.useDebounce(s,r.debounceMs??300);h.useEffect(()=>{c!==(t??"")&&o(c)},[c]),h.useEffect(()=>{i(t??"")},[t]);const a=!!t,d=a?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[r.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:ws(t)})]}):r.label;return e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:a?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:a?e.jsx(F.Icon,{name:"Search",size:"sm"}):void 0,iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:d})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:260},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(jr,{onClear:n,onRemove:l})]}),children:e.jsx(hr.Input,{size:"sm",fullWidth:!0,value:s,placeholder:r.placeholder??"Cari…",leftIcon:e.jsx(F.Icon,{name:"Search",width:16,height:16}),onChange:g=>i(g.target.value)})})})]})},ml=({activeKeys:r,configByKey:t,getValue:o,setValue:n,clearValue:l,removeFilter:s})=>e.jsx(e.Fragment,{children:r.map(i=>{const c=t[i];if(!c)return null;const a=o(c),d=c.locked?void 0:()=>s(i);return c.type==="date"||c.type==="date-compact"?e.jsx(fs,{field:c,value:a,onChange:g=>n(c,g),onClear:()=>l(i),onRemove:d},i):c.type==="text"?e.jsx(Ds,{field:c,value:a||"",onChange:g=>n(c,g),onClear:()=>l(i),onRemove:d},i):c.type==="checkbox-multiple"?e.jsx(xs,{field:c,value:a||[],onChange:g=>n(c,g),onClear:()=>l(i),onRemove:d},i):e.jsx(vs,{field:c,value:a||[],onChange:g=>n(c,g),onClear:()=>l(i),onRemove:d},i)})}),El=r=>`${r} Rows`,Ss=({pagination:r,pageKey:t="page",perPageKey:o="perPage",pageSizeOptions:n=[10,25,50,100],defaultPerPage:l=10,showResultCount:s=!0,showPageSize:i=!0,showPagination:c=!0})=>{var A;const{searchQueries:a,setSearchParams:d,searchParams:g}=_e(),b=g.get(o),p=b?Number(b):l,C=L=>{d({...a,[t]:String(L)})},k=L=>{d({...a,[o]:L,[t]:"1"})},D=(r==null?void 0:r.rangeStart)??(((r==null?void 0:r.currentPage)||0)>1?(((r==null?void 0:r.currentPage)||0)-1)*((r==null?void 0:r.perPage)||0)+1:1),z=(r==null?void 0:r.rangeEnd)??((r==null?void 0:r.totalCurrentPage)!==(r==null?void 0:r.perPage)?r==null?void 0:r.totalData:((r==null?void 0:r.currentPage)||1)*((r==null?void 0:r.totalCurrentPage)||0));return e.jsxs(e.Fragment,{children:[s&&e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${D}-${z} of ${((A=r==null?void 0:r.totalData)==null?void 0:A.toLocaleString())||0}`}),i&&e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),"aria-label":"Rows per page",children:El(p)})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{children:n.map(L=>e.jsx(W.MenuItem,{selected:L===p,onClick:()=>k(String(L)),children:El(L)},L))})})]}),c&&((r==null?void 0:r.totalPage)??0)>1&&e.jsx(f.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(zr.Pagination,{size:"sm",variant:"neutral",siblingCount:0,currentPage:r!=null&&r.currentPage?Number(r.currentPage):1,totalPages:Number(r==null?void 0:r.totalPage),onPageChange:C})})]})};function ks(r,t,o=!0){h.useEffect(()=>{if(!o)return;const n=l=>{var c;if(l.metaKey||l.ctrlKey||l.altKey||l.key!==r||Oe.isOverlayOpen())return;const s=l.target,i=(c=s==null?void 0:s.tagName)==null?void 0:c.toLowerCase();i==="input"||i==="textarea"||s!=null&&s.isContentEditable||(l.preventDefault(),t())};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[r,t,o])}const Bs=240,Fl=({searchKey:r="q",filterKey:t="filter",pageKey:o="page",placeholder:n="Search",shortcut:l="/",collapsible:s=!0})=>{const{searchParams:i,setSearchParams:c,searchQueries:a}=_e(),d=Rr(r,i,t)||"",[g,b]=h.useState(!s||!!d),[p,C]=h.useState(s&&!d),[k,D]=h.useState(d),z=ke.useDebounce(k,350),A=h.useRef(null);h.useEffect(()=>{D(d),d&&b(!0)},[d]),h.useEffect(()=>{g&&C(!1)},[g]),h.useEffect(()=>{z!==d&&Vr({value:z,name:r,type:"search",searchQueries:a,setSearchParams:c,filterKey:t,pageKey:o})},[z]);const L=h.useCallback(()=>{b(!0),requestAnimationFrame(()=>{var T;return(T=A.current)==null?void 0:T.focus()})},[]);ks(l,L);const x=()=>{s&&!k&&b(!1)},m=T=>{var B;s&&T.key==="Escape"&&!k&&(b(!1),(B=A.current)==null||B.blur())},I=()=>{g||C(!0)};return e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",gap:"spacing-0",children:[p&&e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"Search",size:"sm"}),"aria-label":"Search","aria-expanded":!1,onClick:L}),e.jsxs(f.Box,{onTransitionEnd:I,style:{position:"relative",width:g?Bs:0,overflow:"hidden",transition:"width 220ms ease"},children:[e.jsx(hr.Input,{ref:A,size:"sm",fullWidth:!0,value:k,placeholder:n,leftIcon:e.jsx(F.Icon,{name:"Search",width:16,height:16}),onChange:T=>D(T.target.value),onKeyDown:m,onBlur:x,tabIndex:g?0:-1}),g&&!k&&e.jsx(f.Box,{align:"center",justify:"center",borderColor:"border-subtle",borderWidth:"border",borderStyle:"border-solid",borderRadius:"rounded-xs",paddingInline:"spacing-1",customBackgroundColor:"var(--sa-background-hover, #f0f1f2)",style:{position:"absolute",right:8,top:"50%",transform:"translateY(-50%)",pointerEvents:"none",minWidth:18,height:18,display:"inline-flex"},children:e.jsx(S.Text,{fontSize:"xs",color:"subtle",children:l})})]})]})},Il=({columns:r,allVisible:t,onToggle:o,onReorder:n,onSetAllHidden:l})=>{const[s,i]=h.useState(null),[c,a]=h.useState(null),d=()=>{s!==null&&c!==null&&s!==c&&n(s,c),i(null),a(null)},g=(b,p)=>{const C=b+p;C<0||C>=r.length||n(b,C)};return e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:t?"outline":"secondary",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"Grid",size:"sm"}),"aria-label":"Customize columns"})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{children:e.jsxs(f.Box,{padding:"sm",direction:"column",customWidth:"296px",customMaxHeight:"60vh",overflow:"overflow-hidden",children:[e.jsx(S.Text,{fontWeight:"semibold",color:"primary",children:"Customize Column Table"}),e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",paddingBlock:"md",children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",children:"Show in table"}),e.jsx(j.Button,{variant:"link",tone:"info",size:"xs",onClick:()=>l(t),children:t?"Hide All":"Show All"})]}),e.jsx(f.Box,{direction:"column",overflow:"overflow-y-auto",children:r.map((b,p)=>{const C=!b.locked,k=c===p&&s!==null&&s!==p;return e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",paddingBlock:"xs",draggable:C,onDragStart:()=>C&&i(p),onDragOver:D=>{D.preventDefault(),a(p)},onDrop:d,onDragEnd:d,style:{minHeight:32,boxShadow:k?"inset 0 2px 0 0 var(--sa-background-brand, #04254f)":void 0},children:[e.jsx(f.Box,{direction:"column",as:"div",align:"center",justify:"center",role:"button",tabIndex:C?0:-1,"aria-label":`Reorder ${b.title}`,"aria-disabled":!C||void 0,color:"icon-subtlest",onKeyDown:D=>{C&&(D.key==="ArrowUp"?(D.preventDefault(),g(p,-1)):D.key==="ArrowDown"&&(D.preventDefault(),g(p,1)))},style:{display:"inline-flex",cursor:C?"grab":"default",opacity:C?1:.4},children:e.jsx(F.Icon,{name:"DragVertical",width:16,height:16})}),b.icon&&e.jsx(f.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:b.icon}),e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:b.title}),e.jsx(f.Box,{direction:"column",style:{marginLeft:"auto"},children:e.jsx(Tr.Toggle,{size:"sm",checked:b.visible,disabled:b.locked,onChange:()=>o(b.key),"aria-label":`Toggle ${b.title} column`})})]},b.key)})})]})})})]})},Ml=({views:r,onApply:t,onDelete:o,onSave:n})=>{const[l,s]=h.useState(""),i=()=>{const c=l.trim();c&&(n(c),s(""))};return e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:r.length>0?"secondary":"outline",tone:(r.length>0,"neutral"),size:"sm",iconLeft:e.jsx(F.Icon,{name:"Bookmark",size:"sm"}),"aria-label":"Saved views"})}),e.jsxs(W.MenuLists,{style:{width:"260px"},children:[e.jsx(W.MenuBody,{children:e.jsxs(f.Box,{direction:"column",padding:"xs",gap:"sm",children:[e.jsx(S.Text,{fontWeight:"semibold",color:"primary",children:"Saved Views"}),e.jsx(f.Box,{direction:"column",overflow:"overflow-y-auto",children:r.length===0?e.jsx(f.Box,{direction:"column",paddingBlock:"sm",children:e.jsx(S.Text,{fontSize:"sm",color:"subtlest",children:"No saved views yet"})}):r.map(c=>e.jsx(W.MenuItem,{startIcon:e.jsx(F.Icon,{name:"Bookmark"}),onClick:()=>t(c),endIcon:e.jsx(j.Button,{variant:"link",tone:"error",size:"sm",iconLeft:e.jsx(F.Icon,{name:"Trash2"}),"aria-label":`Delete ${c.name}`,onClick:a=>{a.stopPropagation(),o(c.id)}}),children:c.name},c.id))})]})}),e.jsx(W.MenuFooter,{children:e.jsxs(f.Box,{direction:"row",gap:"xs",children:[e.jsx(f.Box,{direction:"column",style:{flex:"1 0 0",minWidth:0},children:e.jsx(hr.Input,{size:"sm",fullWidth:!0,placeholder:"Save current view as…",value:l,onChange:c=>s(c.target.value),onKeyDown:c=>{c.key==="Enter"&&i()}})}),e.jsx(j.Button,{variant:"primary",tone:"brand",size:"sm",disabled:!l.trim(),onClick:i,children:"Save"})]})})]})]})},ms=({isOpen:r,onClose:t,configs:o,activeKeys:n,configByKey:l,hasActiveFilter:s,onToggle:i,onReset:c,getValue:a,setValue:d,clearValue:g,removeFilter:b})=>{const p=n.length;return e.jsx(Ur.Drawer,{position:"bottom",isShow:r,onHide:t,children:e.jsxs(f.Box,{direction:"column",customMaxHeight:"85vh",style:{minHeight:280},children:[e.jsxs(f.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(f.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsx(S.Text,{fontWeight:"semibold",color:"primary",children:"Filter"}),p>0&&e.jsxs(S.Text,{fontSize:"sm",color:"subtle",children:["(",p,")"]})]}),e.jsx(j.Button,{variant:"link",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"Cross"}),"aria-label":"Close filter",onClick:t})]}),e.jsxs(f.Box,{direction:"column",gap:"lg",padding:"md",overflow:"overflow-y-auto",style:{flex:"1 1 auto",minHeight:0},children:[p>0&&e.jsxs(f.Box,{direction:"column",gap:"sm",children:[e.jsx(S.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Filter aktif"}),e.jsx(f.Box,{direction:"row",display:"flex",wrap:"wrap",gap:"sm",align:"center",children:e.jsx(ml,{activeKeys:n,configByKey:l,getValue:a,setValue:d,clearValue:g,removeFilter:b})})]}),o.length>0&&e.jsxs(f.Box,{direction:"column",gap:"sm",children:[e.jsx(S.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Tambah filter"}),e.jsx(f.Box,{direction:"column",children:o.map(C=>{const k=n.includes(C.key),D=!!C.locked;return e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",paddingBlock:"sm",style:{opacity:D?.5:1,borderTop:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.08))"},children:[e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{minWidth:0},children:[C.icon&&e.jsx(f.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:C.icon}),e.jsx(S.Text,{fontSize:"sm",color:"primary",truncate:!0,children:C.label})]}),e.jsx(Tr.Toggle,{size:"sm",checked:k||D,disabled:D,onChange:()=>i(C.key),"aria-label":`Toggle ${C.label}`})]},C.key)})})]})]}),e.jsxs(f.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(f.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"md",fullWidth:!0,disabled:!s,onClick:c,children:"Reset"})}),e.jsx(f.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(j.Button,{variant:"primary",tone:"brand",size:"md",fullWidth:!0,onClick:t,children:"Selesai"})})]})]})})},Es=r=>`${r} Rows`,Fs=({perPageKey:r,pageKey:t,pageSizeOptions:o,defaultPerPage:n=10,showPageSize:l})=>{const{searchQueries:s,setSearchParams:i,searchParams:c}=_e(),a=c.get(r),d=a?Number(a):n,g=b=>{i({...s,[r]:b,[t]:"1"})};return l?e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"MenuVertical",size:"sm"}),"aria-label":"More options"})}),e.jsx(W.MenuLists,{children:e.jsxs(W.MenuBody,{style:{minWidth:200},children:[e.jsx(f.Box,{paddingInline:"sm",paddingBlock:"xs",children:e.jsx(S.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Rows per page"})}),o.map(b=>e.jsx(W.MenuItem,{selected:b===d,endIcon:b===d?e.jsx(F.Icon,{name:"Check"}):void 0,onClick:()=>g(String(b)),children:Es(b)},b))]})})]}):null},Is=r=>{var we;const{withPadding:t,configs:o,activeKeys:n,configByKey:l,hasActiveFilter:s,toggleFilter:i,removeFilter:c,getValue:a,setValue:d,clearValue:g,onReset:b,searchable:p,searchKey:C,filterKey:k,pageKey:D,searchPlaceholder:z,searchShortcut:A,searchCollapsible:L,pagination:x,perPageKey:m,pageSizeOptions:I,defaultPerPage:T,showPagination:B,showResultCount:O,showPageSize:U,hasColumns:V,orderedColumns:H,allVisible:N,onToggleVisibility:G,onReorder:Y,onSetAllHidden:te,showSavedViews:K,savedViews:ee,onApplyView:_,onDeleteView:ge,onSaveView:fe,leadingActions:Fe,trailingActions:qe}=r,[Be,ve]=h.useState(!1),{searchQueries:Ce,setSearchParams:Ae}=_e(),Ze=(x==null?void 0:x.rangeStart)??(((x==null?void 0:x.currentPage)||0)>1?(((x==null?void 0:x.currentPage)||0)-1)*((x==null?void 0:x.perPage)||0)+1:1),He=(x==null?void 0:x.rangeEnd)??((x==null?void 0:x.totalCurrentPage)!==(x==null?void 0:x.perPage)?x==null?void 0:x.totalData:((x==null?void 0:x.currentPage)||1)*((x==null?void 0:x.totalCurrentPage)||0)),ie=Ie=>{Ae({...Ce,[D]:String(Ie)})},de=O||B&&!!(x!=null&&x.totalPage),pe=()=>{b(),ve(!1)};return e.jsxs(f.Box,{direction:"column",gap:"sm",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(f.Box,{direction:"row",display:"flex",align:"center",wrap:"wrap",gap:"sm",fullWidth:!0,overflow:"overflow-auto",children:[p&&e.jsx(Fl,{searchKey:C,filterKey:k,pageKey:D,placeholder:z,shortcut:A,collapsible:L}),e.jsx(j.Button,{variant:s?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"FilterHorizontal"}),onClick:()=>ve(!0),"aria-label":"Open filters",children:s?`Filter: ${n.length}`:null}),e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{marginLeft:"auto"},children:[Fe,K&&e.jsx(Ml,{views:ee,onApply:_,onDelete:ge,onSave:fe}),V&&e.jsx(Il,{columns:H,allVisible:N,onToggle:G,onReorder:Y,onSetAllHidden:te}),e.jsx(Fs,{perPageKey:m,pageKey:D,pageSizeOptions:I,defaultPerPage:T,showPageSize:U}),qe]})]}),de&&e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",fullWidth:!0,children:[O?e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${Ze}-${He} of ${((we=x==null?void 0:x.totalData)==null?void 0:we.toLocaleString())||0}`}):e.jsx(f.Box,{direction:"column"}),B&&!!(x!=null&&x.totalPage)&&e.jsx(zr.Pagination,{size:"xs",variant:"neutral",siblingCount:0,currentPage:x!=null&&x.currentPage?Number(x.currentPage):1,totalPages:Number(x.totalPage),onPageChange:ie})]}),e.jsx(ms,{isOpen:Be,onClose:()=>ve(!1),configs:o,activeKeys:n,configByKey:l,hasActiveFilter:s,onToggle:i,onReset:pe,getValue:a,setValue:d,clearValue:g,removeFilter:c})]})},Ms=({withPadding:r=!1,filterConfigs:t=[],filterKey:o="filter",activeFilterKey:n="filters",pageKey:l="page",perPageKey:s="perPage",pageSizeOptions:i=[25,50,100],defaultPerPage:c,showPagination:a=!0,showResultCount:d=!0,showPageSize:g=!0,searchable:b=!1,searchKey:p="q",searchPlaceholder:C="Search",searchShortcut:k="/",searchPosition:D="right",searchCollapsible:z=!0,pagination:A,columns:L=[],onColumnsChange:x,columnsState:m,scopeId:I,savedViews:T,persistLastState:B=!0,persistSearch:O=!0,storage:U=qt,onReset:V,leadingActions:H,trailingActions:N})=>{const G=I??(T==null?void 0:T.scopeId),{activeKeys:Y,configByKey:te,hasActiveFilter:K,toggleFilter:ee,removeFilter:_,getValue:ge,setValue:fe,clearValue:Fe,clearAll:qe}=_t({configs:t,filterKey:o,activeFilterKey:n,pageKey:l,searchKey:p}),Be=rs({columns:L,scopeId:G,storage:U,onColumnsChange:x,value:m}),ve=ts({scopeId:G,storage:U,snapshotKeys:[n,o,s],pageKey:l,getColumns:()=>Be.state,applyColumns:Be.applyState}),Ce=ls({scopeId:G,storage:U,snapshotKeys:[n,o,l],enabled:B,filterKey:o,searchKey:p,persistSearch:O}),Ae=ns({scopeId:G,storage:U,perPageKey:s,pageSizeOptions:i,enabled:B});is({enabled:B&&!!G,snapshotKeys:[n,o,l],perPageKey:s,readSnapshot:Ce.read,readPerPage:Ae.read});const Ze=c??i[0]??25,He=!!(T!=null&&T.enabled)&&ve.enabled,ie=()=>{qe(),Ce.clear(),V==null||V()},de=ke.useMediaQuery("md"),pe=b?e.jsx(Fl,{searchKey:p,filterKey:o,pageKey:l,placeholder:C,shortcut:k,collapsible:z}):null;return de?e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",gap:"sm",wrap:"wrap",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(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(cs,{configs:t,activeKeys:Y,onToggle:ee,hasActiveFilter:K,onReset:ie}),D==="left"&&pe,e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",overflow:"overflow-x-auto",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(ml,{activeKeys:Y,configByKey:te,getValue:ge,setValue:fe,clearValue:Fe,removeFilter:_}),K&&e.jsx(j.Button,{variant:"link",tone:"brand",size:"sm",onClick:ie,children:"Reset"})]})]}),e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",children:[H,e.jsx(Ss,{pagination:A,pageKey:l,perPageKey:s,pageSizeOptions:i,defaultPerPage:Ze,showPagination:a,showResultCount:d,showPageSize:g}),D==="right"&&pe,He&&e.jsx(Ml,{views:ve.views,onApply:ve.applyView,onDelete:ve.deleteView,onSave:ve.saveView}),L.length>0&&e.jsx(Il,{columns:Be.orderedColumns,allVisible:Be.allVisible,onToggle:Be.toggleVisibility,onReorder:Be.reorder,onSetAllHidden:Be.setAllHidden}),N]})]}):e.jsx(Is,{withPadding:r,configs:t,activeKeys:Y,configByKey:te,hasActiveFilter:K,toggleFilter:ee,removeFilter:_,getValue:ge,setValue:fe,clearValue:Fe,onReset:ie,searchable:b,searchKey:p,filterKey:o,pageKey:l,searchPlaceholder:C,searchShortcut:k,searchCollapsible:z,pagination:A,perPageKey:s,pageSizeOptions:i,defaultPerPage:Ze,showPagination:a,showResultCount:d,showPageSize:g,hasColumns:L.length>0,orderedColumns:Be.orderedColumns,allVisible:Be.allVisible,onToggleVisibility:Be.toggleVisibility,onReorder:Be.reorder,onSetAllHidden:Be.setAllHidden,showSavedViews:He,savedViews:ve.views,onApplyView:ve.applyView,onDeleteView:ve.deleteView,onSaveView:ve.saveView,leadingActions:H,trailingActions:N})},Ts=r=>{if(!Array.isArray(r)||r.length===0)return;const t=r[0];return(t==null?void 0:t.value)!=null?String(t.value):void 0},Ls=r=>{if(!Array.isArray(r)||r.length===0)return;const t=r.map(o=>(o==null?void 0:o.value)!=null?String(o.value):null).filter(o=>o!=null);return t.length?t:void 0},As=(r,t)=>{switch(r.type){case"dropdown":case"radio":return Ts(t);case"dropdown-multiple":case"checkbox-multiple":return Ls(t);case"date":return t instanceof Date?t.toISOString():void 0;case"date-compact":return t;case"text":return typeof t=="string"&&t?t:void 0;default:return}},Tl=(r,t)=>{if(r==null||r==="")return t;const o=Number(r);return Number.isFinite(o)&&o>0?o:t},Os=r=>{const{filterConfigs:t,filterKey:o="filter",activeFilterKey:n="filters",pageKey:l="page",perPageKey:s="perPage",searchKey:i="q",defaultPage:c=1,defaultPerPage:a=10,paramKeys:d,serialize:g}=r,{activeKeys:b,configByKey:p,hasActiveFilter:C,getValue:k}=_t({configs:t,filterKey:o,activeFilterKey:n,pageKey:l,searchKey:i}),{searchParams:D}=_e(),z=D.toString();return h.useMemo(()=>{const L={},x={},m=Tl(D.get(l),c),I=Tl(D.get(s),a);L[(d==null?void 0:d.page)??"page"]=m,L[(d==null?void 0:d.perPage)??"perPage"]=I;const T=Rr(i,D,o)||"";T&&(L[(d==null?void 0:d.search)??"search"]=T);let B=!1;for(const O of b){const U=p[O];if(!U)continue;const V=k(U);x[O]=V;const H=g==null?void 0:g[O],N=H?H(V):As(U,V);if(N==null||Array.isArray(N)&&N.length===0)continue;const G=(d==null?void 0:d[O])??O;L[G]=N,B=!0}return{params:L,raw:x,hasActiveFilter:C||!!T||B}},[z,b.join("|"),o,n,l,s,i,c,a,d,g,p])},Ws=["dropdown","dropdown-multiple","checkbox-multiple","radio"],zs=({filterConfigs:r,filterKey:t,activeFilterKey:o,pageKey:n,searchKey:l})=>{const{configByKey:s,getValue:i,setValue:c,removeFilter:a,clearAll:d,hasActiveFilter:g}=_t({configs:r,filterKey:t,activeFilterKey:o,pageKey:n,searchKey:l}),b=(x,m)=>{var T;const I=x.options;return((T=I==null?void 0:I.find(B=>B.value===m))==null?void 0:T.label)??m},p=h.useCallback(x=>{const m=s[x];if(!m)return[];const I=i(m);return Array.isArray(I)?I.map(T=>String(T.value)):[]},[s,i]),C=h.useCallback((x,m)=>{const I=s[x];if(!I||!Ws.includes(I.type))return;const T=Array.isArray(m)?m:[m];if(T.length===0){a(x);return}c(I,T.map(B=>({label:b(I,B),value:B})))},[s,c,a]),k=h.useCallback((x,m)=>{const I=p(x);C(x,I.includes(m)?I.filter(T=>T!==m):[...I,m])},[p,C]),D=h.useCallback((x,m)=>p(x).includes(m),[p]),z=h.useCallback(x=>a(x),[a]),A=h.useCallback(x=>{const m=s[x];return m?i(m):void 0},[s,i]),L=h.useCallback((x,m)=>{const I=s[x];if(I){if(m==null){a(x);return}c(I,m)}},[s,c,a]);return{set:C,toggle:k,clear:z,clearAll:d,isActive:D,values:p,getRaw:A,setRaw:L,hasActiveFilter:g}},Xt="var(--sa-background-brand, #04254f)",Hs="var(--sa-text-brand, #031f43)",Ps={padding:"6px 8px",border:"1px solid var(--sa-border-subtle, #0b120e24)",borderRadius:"var(--sa-radii-xs, 4px)",font:"inherit",fontSize:13,outline:"none",width:"100%",boxSizing:"border-box"},Jt={padding:"4px 8px",border:"none",background:"none",cursor:"pointer",font:"inherit",textAlign:"left",fontSize:13,color:Hs},Ll=(r,t)=>{if(r.type==="text"||r.type==="date")return!!t.getRaw(r.key);if(r.type==="date-compact"){const o=t.getRaw(r.key);return!!(o&&(o.date||o.from||o.to||o.relative||o.op==="is-empty"||o.op==="is-not-empty"))}return t.values(r.key).length>0},Vs=({field:r,controls:t})=>{const[o,n]=h.useState(""),l=r.type==="dropdown"||r.type==="radio",s=r.type==="checkbox-multiple"?!1:r.searchable!==!1,i=t.values(r.key),c=s&&o.trim()?r.options.filter(d=>d.label.toLowerCase().includes(o.toLowerCase())):r.options,a=d=>{l?t.set(r.key,i.includes(d)?[]:d):t.toggle(r.key,d)};return e.jsxs(f.Box,{style:{display:"flex",flexDirection:"column",gap:4,minWidth:200},children:[s&&e.jsx("input",{value:o,onChange:d=>{var g;n(d.target.value),(g=r.onSearch)==null||g.call(r,d.target.value)},placeholder:"Cari…",style:Ps}),e.jsxs(f.Box,{style:{display:"flex",flexDirection:"column",gap:2,maxHeight:220,overflowY:"auto"},children:[c.map(d=>{const g=i.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:"var(--sa-radii-xs, 4px)"},children:[e.jsx("span",{style:{width:16,height:16,flexShrink:0,borderRadius:l?"50%":"var(--sa-radii-xs, 4px)",display:"inline-flex",alignItems:"center",justifyContent:"center",border:`1px solid ${g?Xt:"var(--sa-border-subtle, #0b120e24)"}`,background:g&&!l?Xt:"transparent"},children:g&&(l?e.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:Xt}}):e.jsx(F.Icon,{name:"Check",size:"xs",style:{color:"#fff"}}))}),e.jsx(S.Text,{as:"span",style:{fontSize:14},children:d.label})]},d.value)}),c.length===0&&e.jsx(S.Text,{as:"span",style:{fontSize:13,color:"var(--sa-text-subtlest, #8c8f97)",padding:"6px 8px"},children:"Tak ada hasil"})]}),i.length>0&&e.jsx("button",{type:"button",onClick:()=>t.clear(r.key),style:Jt,children:"Clear"})]})},js=({field:r,controls:t})=>{const o=t.getRaw(r.key);return e.jsx(f.Box,{style:{minWidth:240},children:e.jsx(pr.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:r.mode,value:o,onChange:n=>t.setRaw(r.key,n??null),withPadding:!1})})},Ns=({field:r,controls:t})=>{const o=t.getRaw(r.key),n=r.ops&&r.ops.length>0?r.ops:Cl,l=r.defaultOp&&n.includes(r.defaultOp)?r.defaultOp:n[0],s=r.mode??"days",i=(o==null?void 0:o.op)??l,c=d=>t.setRaw(r.key,d),a=d=>{if(d!==i)return c(d==="is-empty"||d==="is-not-empty"?{op:d}:d==="is-relative-to-today"?{op:d,relative:(o==null?void 0:o.relative)??{direction:"past",count:1,period:"week"}}:d==="is-between"?{op:d,from:o==null?void 0:o.from,to:o==null?void 0:o.to}:{op:d,date:o==null?void 0:o.date})};return e.jsxs(f.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:280},children:[e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",gap:"xs",children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(xl,{op:i,ops:n,onChange:a})]}),e.jsx(wl,{value:o,op:i,mode:s,onChange:c}),Ll(r,t)&&e.jsx("button",{type:"button",onClick:()=>t.setRaw(r.key,null),style:Jt,children:"Clear"})]})},_s=({field:r,controls:t})=>{const o=t.getRaw(r.key)??"",[n,l]=h.useState(o),s=ke.useDebounce(n,r.debounceMs??300);return h.useEffect(()=>{const i=t.getRaw(r.key)??"";s!==i&&t.setRaw(r.key,s||null)},[s]),e.jsxs(f.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:220},children:[e.jsx(hr.Input,{size:"sm",fullWidth:!0,value:n,placeholder:r.placeholder??"Cari…",leftIcon:e.jsx(F.Icon,{name:"Search",width:16,height:16}),onChange:i=>l(i.target.value)}),n&&e.jsx("button",{type:"button",onClick:()=>{l(""),t.setRaw(r.key,null)},style:Jt,children:"Clear"})]})},qs=({field:r,controls:t})=>r.type==="text"?e.jsx(_s,{field:r,controls:t}):r.type==="date"?e.jsx(js,{field:r,controls:t}):r.type==="date-compact"?e.jsx(Ns,{field:r,controls:t}):e.jsx(Vs,{field:r,controls:t}),Zs=(r,t)=>{if(!r)return{};const{fromKey:o,toKey:n,opKey:l}=t,s={};switch(r.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return r.date&&(s[o]=new Date(r.date).toISOString()),l&&(s[l]=r.op),s;case"is-between":return r.from&&(s[o]=new Date(r.from).toISOString()),r.to&&(s[n]=new Date(r.to).toISOString()),s;case"is-relative-to-today":{if(!r.relative)return s;const{from:i,to:c}=yl(r.relative);return s[o]=i.toISOString(),s[n]=c.toISOString(),s}case"is-empty":case"is-not-empty":return l&&(s[l]=r.op==="is-empty"?"empty":"not-empty"),s;default:return s}},Al=({children:r,borderRadius:t,height:o})=>{const n=h.useRef(null),[l,s]=h.useState("100vh");return h.useEffect(()=>{if(o)return;const i=()=>{if(n.current){const c=n.current.getBoundingClientRect().top;s(`calc(100vh - ${c}px)`)}};return i(),window.addEventListener("resize",i),()=>window.removeEventListener("resize",i)},[o]),e.jsx(f.Box,{ref:n,fullWidth:!0,borderStyle:"border-solid",borderWidth:"border",borderColor:"border-base",borderRadius:t||"rounded-xs",style:{height:o??l,display:"flex",flexDirection:"column"},children:r})},Ol=({action:r,rightContent:t,leftContent:o,headerSlot:n,advanceFilter:l,showFilter:s=!0})=>{const i=ke.useMediaQuery("md"),c=s?e.jsx(fl,{...l}):null,a=()=>r?h.isValidElement(r)?r:e.jsx(f.Box,{style:{display:"flex",flexDirection:i?"row":"column",gap:"8px",width:i?"auto":"100%",textWrap:"nowrap"},children:r.map(({title:d,icon:g,buttonProps:b,onClick:p},C)=>!d&&!g?null:e.jsx(j.Button,{fullWidth:!i,iconLeft:g?e.jsx(F.Icon,{name:g}):void 0,onClick:p,...b,children:d},`action-${C}`))}):null;return e.jsx(f.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:i?"row":"column-reverse",gap:"16px"},children:n?n({filter:c}):e.jsxs(e.Fragment,{children:[e.jsxs(f.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flex:1,minWidth:0},children:[c,o]}),e.jsxs(f.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flexShrink:0},children:[t,a()]})]})})},Gs=({totalData:r,withMarginBottom:t=!0,withMarginTop:o=!0})=>e.jsxs(f.Box,{style:{display:"flex",gap:"4px",flexDirection:"row",alignItems:"center",marginBottom:t?"16px":void 0,marginTop:o?"16px":void 0},children:[e.jsxs(Re.Body1,{props:{color:"gray-500"},children:["Total data:"," "]}),e.jsx(Re.Body1,{children:r||0})]}),Wl=({pagination:r,pageKey:t="page",perPageKey:o="perPage",defaultPerPage:n=10,showPagination:l=!0,totalData:s})=>{const{searchQueries:i,setSearchParams:c,searchParams:a}=_e(),d=a.get(o),g=k=>{c({...i,[t]:String(k)})},b=k=>{c({...i,[o]:k,[t]:"1"})},p=(r==null?void 0:r.rangeStart)??(((r==null?void 0:r.currentPage)||0)>1?(((r==null?void 0:r.currentPage)||0)-1)*((r==null?void 0:r.perPage)||0)+1:1),C=(r==null?void 0:r.rangeEnd)??((r==null?void 0:r.totalCurrentPage)!==(r==null?void 0:r.perPage)?r==null?void 0:r.totalData:((r==null?void 0:r.currentPage)||1)*((r==null?void 0:r.totalCurrentPage)||0));return e.jsx(f.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:l?e.jsxs(e.Fragment,{children:[e.jsxs(f.Box,{style:{display:"flex",flexDirection:"row",gap:"8px",alignItems:"center",textWrap:"nowrap"},children:[e.jsx(S.Text,{children:"Rows Per Page: "}),e.jsx(Fr.Dropdown,{dropdownLists:[{label:"5",value:"5"},{label:"10",value:"10"},{label:"25",value:"25"},{label:"50",value:"50"},{label:"100",value:"100"}],onChange:k=>{b(k[0].value)},value:d?[{label:`${d} per row`,value:d}]:[{label:`${n} per row`,value:`${n}`}],defaultValue:d?[{label:`${d} per row`,value:d}]:[{label:`${n} per row`,value:`${n}`}]}),e.jsx(S.Text,{children:`${p}-${C} of ${(r==null?void 0:r.totalData)||0}`})]}),e.jsx(zr.Pagination,{currentPage:r!=null&&r.currentPage?Number(r==null?void 0:r.currentPage):1,totalPages:r!=null&&r.totalPage?Number(r==null?void 0:r.totalPage):1,onPageChange:g})]}):e.jsx(Gs,{totalData:s,withMarginBottom:!1,withMarginTop:!1})})},zl=({filter:r,columnTitle:t})=>{const[o,n]=h.useState(!1),l=h.useRef(null),s=h.useRef(null),i=h.useRef(null),[c,a]=h.useState(""),[d,g]=h.useState({top:0,left:0}),b=r.selectedValues,p=h.useMemo(()=>c?r.options.filter(D=>D.label.toLowerCase().includes(c.toLowerCase())):r.options,[r.options,c]);h.useEffect(()=>{if(o&&s.current){const D=s.current.getBoundingClientRect(),z=280,A={top:D.bottom+8};r.position==="left"||D.left+z>window.innerWidth?A.right=window.innerWidth-D.right:A.left=D.left,g(A)}},[o,r.position]),h.useEffect(()=>{o&&i.current?setTimeout(()=>{var D;return(D=i.current)==null?void 0:D.focus()},50):a("")},[o]),h.useEffect(()=>{const D=z=>{l.current&&!l.current.contains(z.target)&&s.current&&!s.current.contains(z.target)&&n(!1)};return o&&document.addEventListener("mousedown",D),()=>document.removeEventListener("mousedown",D)},[o]);const C=D=>{const z=b.includes(D)?b.filter(A=>A!==D):[...b,D];r.onFilterChange(z)},k=()=>r.onFilterChange([]);return e.jsxs(f.Box,{direction:"column",style:{position:"relative"},children:[e.jsx(f.Box,{ref:s,style:{display:"flex",flexDirection:"row",alignItems:"center",cursor:"pointer"},onClick:D=>{var z;D.stopPropagation(),o||(z=r.onOpen)==null||z.call(r),n(A=>!A)},children:e.jsx(F.Icon,{name:o?"ChevronUp":"ChevronDown",size:"sm",style:{color:b.length>0?"var(--sa-color-brand-500, #1a4fa0)":"var(--sa-text-subtle, #8c8f97)"}})}),o&&e.jsxs(f.Box,{ref:l,style:{position:"fixed",top:`${d.top}px`,...d.left!==void 0?{left:`${d.left}px`}:{right:`${d.right}px`},backgroundColor:"white",borderRadius:"var(--sa-radii-xs, 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(f.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(S.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-700",children:["Filter ",t]}),b.length>0&&e.jsx(f.Box,{direction:"column",style:{cursor:"pointer"},children:e.jsx(S.Text,{fontSize:"xs",color:"primary",fontWeight:"semibold",onClick:D=>{D.stopPropagation(),k()},children:"CLEAR"})})]}),!r.hideSearch&&e.jsx(f.Box,{direction:"column",style:{paddingLeft:"16px",paddingRight:"16px",paddingTop:"8px",paddingBottom:"8px"},children:e.jsx(hr.Input,{ref:i,placeholder:`Search ${t.toLowerCase()}...`,leftIcon:e.jsx(F.Icon,{name:"Search",size:"sm"}),value:c,onChange:D=>a(D.target.value),style:{fontSize:"14px"}})}),e.jsx(f.Box,{direction:"column",className:"ts-filter-dropdown-options",style:{overflowY:"auto",maxHeight:"250px",paddingLeft:"8px",paddingRight:"8px"},children:r.isLoadingOptions?e.jsxs(f.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(F.Icon,{name:"Loading",size:"lg",style:{color:"var(--sa-background-brand, #04254f)",animation:"spin 1s linear infinite"}}),e.jsx(S.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"Loading options..."})]}):p.length>0?e.jsx(f.Box,{direction:"column",style:{gap:"2px",paddingTop:"4px",paddingBottom:"4px"},children:p.map(D=>e.jsxs(f.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",paddingTop:"8px",paddingBottom:"8px",paddingLeft:"8px",paddingRight:"8px",cursor:"pointer",borderRadius:"var(--sa-radii-md, 8px)",transition:"all 0.2s ease",backgroundColor:b.includes(D.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent"},onClick:z=>{z.stopPropagation(),C(D.value)},onMouseEnter:z=>{b.includes(D.value)||(z.currentTarget.style.backgroundColor="var(--sa-background-primary, #ffffff)"),z.currentTarget.style.transform="translateX(2px)"},onMouseLeave:z=>{z.currentTarget.style.backgroundColor=b.includes(D.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent",z.currentTarget.style.transform="translateX(0)"},children:[e.jsx(fr.Checkbox,{checked:b.includes(D.value),onChange:()=>{}}),e.jsx(S.Text,{fontSize:"sm",fontWeight:b.includes(D.value)?"medium":"normal",color:b.includes(D.value)?"primary":"gray-700",children:D.label})]},D.value))}):e.jsxs(f.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(F.Icon,{name:"Search",size:"lg",style:{color:"var(--sa-text-subtle, #8c8f97)"}}),e.jsx(S.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"No results found"})]})}),b.length>0&&e.jsx(f.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(f.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"4px"},children:[e.jsx(f.Box,{direction:"column",style:{backgroundColor:"var(--sa-background-brand, #04254f)",borderRadius:"var(--sa-radii-lg, 12px)",padding:"2px 8px",fontSize:"11px",fontWeight:600,color:"white"},children:b.length}),e.jsxs(S.Text,{fontSize:"xs",color:"primary",fontWeight:"medium",children:["item",b.length>1?"s":""," selected"]})]})})]})]})},Qs=({direction:r})=>{const t="var(--sa-text-primary, #292a2e)",o="var(--sa-text-subtle, #8c8f97)",n=r==="asc"?t:o,l=r==="desc"?t:o,s=r==="asc"?1:.45,i=r==="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:n,opacity:s,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:l,opacity:i},children:e.jsx("path",{d:"M0 0 L8 0 L4 5 Z",fill:"currentColor"})})]})},Us=({frozen:r})=>e.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:r?"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:r?"M7 11V7a5 5 0 0 1 10 0v4":"M7 11V7a5 5 0 0 1 9.9-1"})]}),$t="var(--sa-background-primary, #ffffff)",Hl="var(--sa-background-primary-inverse, #f8f8f8)",Pl=({columns:r,records:t,handleDetail:o,handleUpdate:n,handleDelete:l,isLoading:s,visibleHandleDelete:i,visibleHandleUpdate:c,visibleHandleDetail:a,showHeadBorder:d=!1,scrollParentRef:g,frozenCount:b=0,onFrozenCountChange:p,customActions:C,actionsOrder:k=["detail","update","delete","custom"],customEmptyState:D,enableColumnResize:z=!1,defaultColumnWidths:A,onColumnWidthsChange:L,defaultMinColumnWidth:x=60,sort:m,defaultSort:I,onSortChange:T,showActionDivider:B=!1})=>{const O=m!==void 0,[U,V]=h.useState(I??null),H=O?m??null:U,N=P=>{if(P.sortKey)return P.sortKey;if(typeof P.accessor=="string")return P.accessor},G=P=>{const $=N(P);if(!$)return;let X;!H||H.key!==$?X={key:$,direction:"asc"}:H.direction==="asc"?X={key:$,direction:"desc"}:X=null,O||V(X),T==null||T(X)},te=[o,n,l].filter(P=>P!==void 0).length,K=!!C,ee=!!o||!!n||!!l||K,_="var(--sa-border-subtle, #0b120e24)",ge=`1px solid ${_}`,fe=`inset 1px 0 0 ${_}`,Fe=`inset -1px 0 0 ${_}`,qe=te===3?K?"178px":"140px":te===2?K?"140px":"102px":te===1?K?"112px":"74px":K?"74px":"",Be=(P,$)=>{if(!$)return P;if(typeof $=="function")return $(P);if(typeof $=="string")return P[$]},[ve,Ce]=h.useState(!1);h.useEffect(()=>{if(!(g!=null&&g.current))return;const P=g.current;Ce(P.scrollHeight>P.clientHeight)},[t,g]);const Ae=h.useRef(null),[Ze,He]=h.useState([]),[ie,de]=h.useState(()=>A??{}),pe=h.useRef(null);h.useLayoutEffect(()=>{if(!b||!Ae.current){He([]);return}const P=Array.from(Ae.current.querySelectorAll("thead tr th")),$=[];let X=0;P.forEach((he,me)=>{$[me]=X,me<b&&(X+=he.offsetWidth)}),He($)},[b,r,t,ie]);const we=P=>{p&&p(P<b?P:P+1)},Ie=(P,$)=>{const X=ie[P];if(X!==void 0){const he=`${X}px`;return{width:he,minWidth:he,maxWidth:he}}return $?{width:$}:{}},sr=P=>z&&(P.resizable??!0),ir=(P,$)=>{P.preventDefault(),P.stopPropagation();const X=P.currentTarget.closest("th");if(!X)return;const he=Math.round(X.getBoundingClientRect().width);pe.current={colIndex:$,startX:P.clientX,startWidth:he};const me=document.body.style.userSelect,xe=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";const Pe=Ye=>{var Ee;const Me=pe.current;if(!Me)return;const br=((Ee=r[Me.colIndex])==null?void 0:Ee.minWidth)??x,ur=Math.max(br,Me.startWidth+(Ye.clientX-Me.startX));de(ze=>ze[Me.colIndex]===ur?ze:{...ze,[Me.colIndex]:ur})},cr=()=>{document.removeEventListener("mousemove",Pe),document.removeEventListener("mouseup",cr),document.body.style.userSelect=me,document.body.style.cursor=xe,pe.current=null,L&&de(Ye=>(L(Ye),Ye))};document.addEventListener("mousemove",Pe),document.addEventListener("mouseup",cr)};return e.jsx("div",{ref:Ae,children:e.jsxs(Q.Table,{fullWidth:!0,children:[e.jsx(Q.Thead,{style:{height:"40px",whiteSpace:"nowrap"},children:e.jsxs(Q.Tr,{children:[r.map((P,$)=>{var Sr,ar;const X=b>0&&$<b,he=Ze[$]??0,me=sr(P),Pe=$===r.length-1&&ee&&B,cr=N(P),Ye=!!P.sortable&&!!cr,Me=Ye&&(H==null?void 0:H.key)===cr?H.direction:null,br=P.title||((Sr=P.accessor)==null?void 0:Sr.toString())||"",ur=(ar=P.headerTooltip)!=null&&ar.showIcon?e.jsx(F.Icon,{name:"InfoCircle",size:"xs",style:{flexShrink:0,color:"var(--sa-icon-subtle, #8c8f97)",opacity:.75}}):null,Ee=e.jsx("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:br}),ze=Ye?e.jsxs("button",{type:"button",onClick:()=>G(P),title:Me==="asc"?"Sorted ascending — click to sort descending":Me==="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:P.textAlign==="text-right"?"right":P.textAlign==="text-center"?"center":"left"},children:[Ee,ur,e.jsx(Qs,{direction:Me})]}):e.jsxs("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:4},children:[Ee,ur]});return e.jsxs(Q.Th,{style:{position:"sticky",top:0,left:X?he:void 0,zIndex:X?4:2,paddingLeft:$===0?"12px":"",borderRight:d&&!Pe&&!X?ge:void 0,borderBottom:d?ge:void 0,boxShadow:d&&X?Fe:void 0,backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",textAlign:P.textAlign==="text-right"?"right":P.textAlign==="text-center"?"center":"left",...Ie($,P.width)},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4px",justifyContent:"space-between",minWidth:0},children:[P.headerTooltip?e.jsx(Le.Tooltip,{label:P.headerTooltip.content,position:"bottom",children:ze}):ze,P.filter&&e.jsx(zl,{filter:P.filter,columnTitle:P.title}),p&&e.jsx("button",{onClick:()=>we($),title:X?"Unfreeze column":"Freeze column",style:{background:"none",border:"none",cursor:"pointer",padding:"2px",display:"flex",alignItems:"center",flexShrink:0,color:X?"var(--sa-background-brand, #04254f)":"var(--sa-text-subtle, #8c8f97)",opacity:X?1:.45,transition:"opacity 0.15s"},children:e.jsx(Us,{frozen:X})})]}),me&&e.jsx("div",{onMouseDown:vr=>ir(vr,$),onClick:vr=>vr.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-${$}`)}),ee?e.jsx(Q.Th,{style:{backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",position:"sticky",top:0,right:0,zIndex:3,borderBottom:d?ge:void 0,boxShadow:d&&B?fe:void 0}}):null]})}),e.jsx(Q.Tbody,{children:s?e.jsx(Q.Tr,{children:e.jsx(Q.Td,{colSpan:r.length+1,children:e.jsxs(f.Box,{direction:"column",style:{gap:"16px"},children:[e.jsx(Ke.Skeleton,{variant:"list"}),e.jsx(Ke.Skeleton,{variant:"list"}),e.jsx(Ke.Skeleton,{variant:"list"}),e.jsx(Ke.Skeleton,{variant:"list"}),e.jsx(Ke.Skeleton,{variant:"list"})]})})}):!(t!=null&&t.length)&&D?e.jsx(Q.Tr,{children:e.jsx(Q.Td,{colSpan:r.length+1,children:D})}):t==null?void 0:t.map((P,$)=>e.jsxs(Q.Tr,{style:{transition:"background-color 0.3s ease",padding:0,borderBottom:$===t.length-1&&ve?void 0:"1px solid var(--sa-border-subtle, #0b120e24)"},onMouseEnter:X=>{const he=X.currentTarget;he.style.backgroundColor=Hl,Array.from(he.querySelectorAll("td")).forEach(me=>{me.style.position==="sticky"&&(me.style.backgroundColor=Hl)})},onMouseLeave:X=>{const he=X.currentTarget;he.style.backgroundColor="",Array.from(he.querySelectorAll("td")).forEach(me=>{me.style.position==="sticky"&&(me.style.backgroundColor=$t)})},children:[r.map((X,he)=>{const me=X.render?X.render(P,$,t):Be(P,X.accessor),xe=b>0&&he<b,Pe=Ze[he]??0,cr=ie[he]!==void 0,Ye=xe&&he===b-1;return e.jsx(Q.Td,{style:{position:xe?"sticky":void 0,left:xe?Pe:void 0,zIndex:xe?1:void 0,backgroundColor:xe?$t:void 0,transition:xe?"background-color 0.3s ease":void 0,paddingLeft:he===0?"12px":"",whiteSpace:"nowrap",overflow:cr?"hidden":void 0,borderLeft:X.showBorderLeft?ge:void 0,borderRight:X.showBorderRight?ge:void 0,boxShadow:Ye?Fe:void 0,textAlign:X.textAlign==="text-right"?"right":X.textAlign==="text-center"?"center":"left",...Ie(he,X.width)},children:typeof me=="string"?e.jsx(S.Text,{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textAlign:X.textAlign==="text-right"?"right":X.textAlign==="text-center"?"center":"left"},children:me}):me},`row-${$}-col-${he}`)}),ee?e.jsx(Q.Td,{style:{width:qe,position:"sticky",right:0,zIndex:1,backgroundColor:$t,boxShadow:B?fe:void 0,transition:"background-color 0.3s ease"},children:e.jsx(ae.Flex,{direction:"row",align:"center",justify:"center",gap:"sm",children:k.map(X=>{const he=$===t.length-1?"top":"bottom";return X==="detail"&&o&&(a==null?void 0:a(P))!==!1?e.jsx(Le.Tooltip,{label:"Detail",position:he,children:e.jsx(j.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>o(P.id,P),iconLeft:e.jsx(F.Icon,{name:"DocumentClean",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"detail"):X==="update"&&n&&(c==null?void 0:c(P))!==!1?e.jsx(Le.Tooltip,{label:"Update",position:he,children:e.jsx(j.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>n(P),iconLeft:e.jsx(F.Icon,{name:"Edit1",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"update"):X==="delete"&&l&&(i==null?void 0:i(P))!==!1?e.jsx(Le.Tooltip,{label:"Delete",position:he,children:e.jsx(j.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>l(P.id,P),iconLeft:e.jsx(F.Icon,{name:"Trash1",size:"sm",style:{color:"var(--sa-color-error-600, #c9184a)"}})})},"delete"):X==="custom"?e.jsx(h.Fragment,{children:C==null?void 0:C(P)},"custom"):null})})}):null]},`${P}${$}`))})]})})};let Vl=!1;const Ys=({wrapperProps:r,dataTableProps:t,headerProps:o,footerProps:n})=>{var b;process.env.NODE_ENV!=="production"&&!Vl&&(Vl=!0,console.warn("[@starasia/admin] `TableSection` deprecated — pakai `<FilterBar>` + `<TableLayout>`. Lihat skill `starasia-list-page-pattern`. Akan dihapus di salah satu major berikutnya."));const l=h.useRef(null),[s,i]=h.useState((t==null?void 0:t.defaultFrozenCount)??0),c=(o==null?void 0:o.show)??!0,a=h.useRef(null),d=(b=t==null?void 0:t.pagination)==null?void 0:b.totalData;typeof d=="number"&&(a.current=d);const g=(n==null?void 0:n.showFooter)??(d===void 0?a.current!==0:d!==0);return e.jsxs(Al,{...r,children:[c&&e.jsx(Ol,{...o}),e.jsx(f.Box,{direction:"column",ref:l,style:{flex:1,overflowY:"auto",overflowX:"auto"},children:t?e.jsx(Pl,{...t,scrollParentRef:l,frozenCount:t!=null&&t.enableFreezeColumns?s:0,onFrozenCountChange:t!=null&&t.enableFreezeColumns?i:void 0}):null}),g&&e.jsx(Wl,{pagination:t==null?void 0:t.pagination,pageKey:t==null?void 0:t.pageKey,perPageKey:t==null?void 0:t.perPageKey,defaultPerPage:t==null?void 0:t.defaultPerPage,showPagination:t==null?void 0:t.showPagination,totalData:n==null?void 0:n.totalData})]})};function Xs(r){return h.memo(r)}const Js=Xs(Ys),jl="(any-pointer: coarse)",$s=r=>{if(typeof window>"u"||!window.matchMedia)return()=>{};const t=window.matchMedia(jl);return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},Ks=()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(jl).matches,Rs=()=>!1;function Nl(){return h.useSyncExternalStore($s,Ks,Rs)}const _l=200,tt="1px solid var(--sa-border-subtle, #0b120e24)",ei=({sortDir:r,frozen:t,filterActive:o})=>r==="asc"?e.jsx(F.Icon,{name:"ChevronSmallUp"}):r==="desc"?e.jsx(F.Icon,{name:"ChevronSmallDown"}):t?e.jsx(F.Icon,{name:"LockOn",size:"xs"}):e.jsx(F.Icon,{name:"Filter",size:"xs",style:o?{color:"var(--sa-text-brand, #031f43)"}:void 0}),ot=({icon:r,label:t,active:o,danger:n,onClick:l})=>{const s=n?"var(--sa-text-error, #a4133c)":"var(--sa-text-primary, #292a2e)";return e.jsxs("button",{type:"button",onClick:l,style:{display:"flex",alignItems:"center",gap:12,width:"100%",padding:"8px 12px",background:o?"var(--sa-background-brand-subtlest, #e6edf6)":"none",border:"none",cursor:"pointer",font:"inherit",color:s,textAlign:"left"},onMouseEnter:i=>{o||(i.currentTarget.style.background="var(--sa-background-primary-inverse, #f8f8f8)")},onMouseLeave:i=>{i.currentTarget.style.background=o?"var(--sa-background-brand-subtlest, #e6edf6)":"none"},children:[e.jsx(F.Icon,{name:r,size:"sm",style:{color:s,flexShrink:0}}),e.jsx(S.Text,{as:"span",style:{color:s},children:t})]})},ri=r=>{let t=(r==null?void 0:r.parentElement)??null;for(;t;){const o=getComputedStyle(t).overflowX;if((o==="auto"||o==="scroll")&&t.scrollWidth>t.clientWidth)return t;t=t.parentElement}return null},ql=({active:r,canSort:t,canHide:o,sortDir:n,frozen:l,onSort:s,onClearSort:i,onToggleFreeze:c,onHide:a,filterSlot:d,filterActive:g})=>{const[b,p]=h.useState(!1),C=h.useRef(null),k=h.useRef(null),[D,z]=h.useState({top:0,left:0}),A=h.useCallback(()=>{var H;const x=C.current;if(!x)return;const m=x.getBoundingClientRect(),I=x.closest(".sa-tl-scroll")??ri(x),T=I==null?void 0:I.getBoundingClientRect();if(T&&(m.left<T.left||m.left>T.right)){p(!1);return}const B=Math.min(window.innerWidth-8,T?T.right:window.innerWidth),O=((H=k.current)==null?void 0:H.offsetWidth)||_l,U=T?T.left:8,V=Math.max(U,Math.min(m.left,B-O));z({top:m.bottom+6,left:V})},[]);h.useEffect(()=>{if(!b)return;A();const x=()=>A();return window.addEventListener("scroll",x,!0),window.addEventListener("resize",x),()=>{window.removeEventListener("scroll",x,!0),window.removeEventListener("resize",x)}},[b,A]),h.useEffect(()=>{if(!b)return;const x=m=>{k.current&&!k.current.contains(m.target)&&C.current&&!C.current.contains(m.target)&&p(!1)};return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[b]);const L=x=>{x(),p(!1)};return e.jsxs(e.Fragment,{children:[e.jsx("button",{ref:C,type:"button",className:"sa-tl-menu-trigger","data-active":r||b?"true":"false",onClick:x=>{x.stopPropagation(),p(m=>!m)},title:"Column options",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:"var(--sa-radii-sm, 6px)",border:tt,background:"var(--sa-background-primary, #ffffff)",cursor:"pointer",color:"var(--sa-text-subtle, #8c8f97)",flexShrink:0},children:e.jsx(ei,{sortDir:n,frozen:l,filterActive:g})}),b&&e.jsxs(f.Box,{ref:k,onClick:x=>x.stopPropagation(),style:{position:"fixed",top:`${D.top}px`,...D.left!==void 0?{left:`${D.left}px`}:{right:`${D.right}px`},minWidth:_l,backgroundColor:"var(--sa-background-primary, #ffffff)",border:tt,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(S.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:tt,margin:"4px 0"}})]}),t&&e.jsxs(e.Fragment,{children:[e.jsx(ot,{icon:"ChevronUp",label:"Ascending",active:n==="asc",onClick:()=>L(()=>n==="asc"?i():s("asc"))}),e.jsx(ot,{icon:"ChevronDown",label:"Descending",active:n==="desc",onClick:()=>L(()=>n==="desc"?i():s("desc"))}),e.jsx("div",{style:{borderTop:tt,margin:"4px 0"}})]}),e.jsx(ot,{icon:"Pin1",label:l?"Unfreeze":"Freeze",active:l,onClick:()=>L(c)}),o&&e.jsx(ot,{icon:"EyeClosed",label:"Hide column",danger:!0,onClick:()=>L(a)})]})]})},ti=r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),oi={background:"var(--sa-background-warning-subtlest, #fef2e6)",color:"inherit",padding:0,borderRadius:"min(2px, var(--sa-radii-xs, 4px))"},Zl=({text:r,query:t,markStyle:o})=>{const n=t==null?void 0:t.trim();if(!n||!r)return e.jsx(e.Fragment,{children:r});const l=n.split(/\s+/).filter(Boolean);if(!l.length)return e.jsx(e.Fragment,{children:r});const s=new Set(l.map(a=>a.toLowerCase())),i=new RegExp(`(${l.map(ti).join("|")})`,"gi"),c=r.split(i);return e.jsx(e.Fragment,{children:c.map((a,d)=>a&&s.has(a.toLowerCase())?e.jsx("mark",{style:{...oi,...o},children:a},d):e.jsx(h.Fragment,{children:a},d))})},Nr="1px solid var(--sa-border-subtle, #0b120e24)",li="var(--sa-text-subtle, #8c8f97)",Ar="var(--sa-background-neutral, #f0f1f2)",Gl="2px 0 4px -2px var(--sa-border-subtle, #0b120e24)",_r=40,Kt=5,ni=28,Rt=4,lt=16,eo="var(--sa-background-brand-subtlest)",nt={display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},Ql="sa-table-layout-styles",si=()=>{if(typeof document>"u"||document.getElementById(Ql))return;const r=document.createElement("style");r.id=Ql,r.textContent=`
1
+ (function(u,mr){typeof exports=="object"&&typeof module<"u"?mr(exports,require("@starasia/alert"),require("@starasia/avatar"),require("@starasia/badges"),require("@starasia/box"),require("@starasia/breadcrumb"),require("@starasia/button"),require("@starasia/card"),require("@starasia/date"),require("@starasia/dialog"),require("@starasia/drawer"),require("@starasia/dropdown"),require("@starasia/hooks"),require("@starasia/http"),require("@starasia/input"),require("@starasia/menu"),require("@starasia/pagination"),require("@starasia/storage"),require("@starasia/table"),require("@starasia/tabs"),require("@starasia/textarea"),require("@starasia/theme"),require("@starasia/toast"),require("@starasia/toggle"),require("@starasia/tooltip"),require("@starasia/checkbox"),require("@starasia/radio"),require("@starasia/text"),require("@starasia/icon"),require("@starasia/flex"),require("@starasia/grid"),require("@starasia/progress"),require("@starasia/stepper"),require("@starasia/accordion"),require("@starasia/story-record"),require("@starasia/skeleton"),require("@starasia/progress-stepper"),require("react/jsx-runtime"),require("react"),require("react-dom"),require("react-easy-crop")):typeof define=="function"&&define.amd?define(["exports","@starasia/alert","@starasia/avatar","@starasia/badges","@starasia/box","@starasia/breadcrumb","@starasia/button","@starasia/card","@starasia/date","@starasia/dialog","@starasia/drawer","@starasia/dropdown","@starasia/hooks","@starasia/http","@starasia/input","@starasia/menu","@starasia/pagination","@starasia/storage","@starasia/table","@starasia/tabs","@starasia/textarea","@starasia/theme","@starasia/toast","@starasia/toggle","@starasia/tooltip","@starasia/checkbox","@starasia/radio","@starasia/text","@starasia/icon","@starasia/flex","@starasia/grid","@starasia/progress","@starasia/stepper","@starasia/accordion","@starasia/story-record","@starasia/skeleton","@starasia/progress-stepper","react/jsx-runtime","react","react-dom","react-easy-crop"],mr):(u=typeof globalThis<"u"?globalThis:u||self,mr(u["@starasia/admin"]={},u.alert,u.avatar,u.badges,u.box,u.breadcrumb,u.button,u.card,u.date,u.dialog,u.drawer,u.dropdown,u.hooks,u.http,u.input,u.menu,u.pagination,u.storage,u.table,u.tabs,u.textarea,u.theme,u.toast,u.toggle,u.tooltip,u.checkbox,u.radio,u.text,u.icon,u.flex,u.grid,u.progress,u.stepper,u.accordion,u.storyRecord,u.skeleton,u.progressStepper,u.jsxRuntime,u.React,u.ReactDOM,u.ReactEasyCrop))})(this,function(u,mr,Qr,rr,f,Er,j,Dt,pr,Oe,Ur,Fr,ke,Ir,hr,W,zr,Hr,Q,vo,St,Mr,Co,Tr,Le,fr,kt,S,F,ae,xo,wo,Do,So,ko,Ke,Bo,e,h,Yr,vn){"use strict";const Cn={menus:[],menuBottom:void 0,logo:"",appName:"Workspace",userData:null,setUserData:()=>{}},Bt=h.createContext(Cn),mt=()=>h.useContext(Bt),mo=r=>{const[t,o]=h.useState((r==null?void 0:r.initialUserData)||null);return{userData:t,setUserData:o}},Eo=h.createContext({badges:{},setBadge:()=>{},setBadges:()=>{},clearBadge:()=>{}}),Fo=({children:r})=>{const[t,o]=h.useState({}),n=h.useCallback(c=>{o(a=>typeof c=="function"?c(a):c)},[]),l=h.useCallback((c,a)=>{o(d=>{const g=typeof a=="function"?a(d[c]):a;return{...d,[c]:g}})},[]),s=h.useCallback(c=>{o(a=>{if(!(c in a))return a;const d={...a};return delete d[c],d})},[]),i=h.useMemo(()=>({badges:t,setBadge:l,setBadges:n,clearBadge:s}),[t,l,n,s]);return e.jsx(Eo.Provider,{value:i,children:r})},Io=()=>h.useContext(Eo),Xr=(r,t)=>{const o=t!==void 0?t:r;return o==null?null:typeof o=="string"||typeof o=="number"?{value:o}:o},Et=240,Ft=200,It=480,xn="sa-sidebar-width",Mt=(r,t,o)=>Math.min(Math.max(r,t),o),wn=(r,t,o,n)=>{if(typeof window>"u")return t;try{const l=window.localStorage.getItem(r);if(!l)return t;const s=parseInt(l,10);return Number.isFinite(s)?Mt(s,o,n):t}catch{return t}},Mo=(r,t)=>{if(!(typeof window>"u"))try{window.localStorage.setItem(r,String(t))}catch{}},To=h.createContext({collapsed:!1,setCollapsed:()=>{},toggle:()=>{},collapse:()=>{},expand:()=>{},width:Et,setWidth:()=>{},resetWidth:()=>{},minWidth:Ft,maxWidth:It,mobileOpen:!1,setMobileOpen:()=>{},openMobile:()=>{},closeMobile:()=>{},toggleMobile:()=>{}}),Lo=({children:r,defaultCollapsed:t=!1,defaultWidth:o=Et,minWidth:n=Ft,maxWidth:l=It,widthStorageKey:s=xn})=>{const[i,c]=h.useState(t),[a,d]=h.useState(!1),[g,b]=h.useState(()=>wn(s,o,n,l)),p=h.useCallback(B=>{c(O=>typeof B=="function"?B(O):B)},[]),C=h.useCallback(()=>c(B=>!B),[]),k=h.useCallback(()=>c(!0),[]),D=h.useCallback(()=>c(!1),[]),z=h.useCallback(B=>{b(O=>{const U=typeof B=="function"?B(O):B,V=Mt(Math.round(U),n,l);return Mo(s,V),V})},[n,l,s]),A=h.useCallback(()=>{const B=Mt(o,n,l);Mo(s,B),b(B)},[o,n,l,s]),L=h.useCallback(B=>{d(O=>typeof B=="function"?B(O):B)},[]),x=h.useCallback(()=>d(!0),[]),m=h.useCallback(()=>d(!1),[]),I=h.useCallback(()=>d(B=>!B),[]),T=h.useMemo(()=>({collapsed:i,setCollapsed:p,toggle:C,collapse:k,expand:D,width:g,setWidth:z,resetWidth:A,minWidth:n,maxWidth:l,mobileOpen:a,setMobileOpen:L,openMobile:x,closeMobile:m,toggleMobile:I}),[i,p,C,k,D,g,z,A,n,l,a,L,x,m,I]);return e.jsx(To.Provider,{value:T,children:r})},Ao=()=>h.useContext(To),Oo=h.createContext(null),Wo=({adapter:r,children:t})=>e.jsx(Oo.Provider,{value:r,children:t}),tr=()=>{const r=h.useContext(Oo);if(!r)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 r},zo=({router:r,routerAdapter:t,menus:o=[],menuBottom:n,logo:l,appName:s="Workspace",initialUserData:i,theme:c})=>{const a=mo({initialUserData:i}),{theme:d}=Mr.useTheme();return e.jsx(Wo,{adapter:t,children:e.jsx(Bt.Provider,{value:{logo:l,appName:s,menus:o,userData:a.userData,setUserData:a.setUserData,menuBottom:n},children:e.jsx(Fo,{children:e.jsx(Lo,{children:c?e.jsx(Mr.ThemeProvider,{value:c,children:r}):d?e.jsx(Mr.ThemeProvider,{value:d,children:r}):r})})})})},Dn=h.memo(zo);function Ho({collapsed:r=!1,children:t}){if(!t)return null;const o=typeof t=="function",n=o?t({collapsed:r}):t;return n==null||n===!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:r?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingRight:r?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingTop:"0.5rem",paddingBottom:"0.5rem",boxSizing:"border-box"},children:o?n:e.jsx("div",{style:{opacity:r?0:1,transition:"opacity 0.3s",visibility:r?"hidden":"visible"},children:n})})}const Tt=h.createContext(null);function Po({children:r}){const[t,o]=h.useState(null),[n,l]=h.useState(null),[s,i]=h.useState(null),[c,a]=h.useState(0),d=h.useCallback(()=>(a(g=>g+1),()=>a(g=>g-1)),[]);return e.jsx(Tt.Provider,{value:{prependNode:t,appendNode:n,replaceNode:s,setPrependNode:o,setAppendNode:l,setReplaceNode:i,replaceCount:c,registerReplace:d},children:r})}function Vo({children:r}){const t=h.useContext(Tt);return t?e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:t.setPrependNode,style:{display:"contents"}}),t.replaceCount>0?e.jsx("div",{ref:t.setReplaceNode,style:{display:"contents"}}):r,e.jsx("div",{ref:t.setAppendNode,style:{display:"contents"}})]}):e.jsx(e.Fragment,{children:r})}function Sn({children:r,mode:t="append"}){const o=h.useContext(Tt);if(h.useEffect(()=>{if(!(t!=="replace"||!o))return o.registerReplace()},[t,o]),!o)return process.env.NODE_ENV!=="production"&&console.warn("[HeaderLeftSlot] used outside AppLayout — content not rendered"),null;const n=t==="prepend"?o.prependNode:t==="replace"?o.replaceNode:o.appendNode;return n?Yr.createPortal(r,n):null}const Lt=h.createContext(null);function jo({children:r}){const[t,o]=h.useState({}),[n,l]=h.useState({}),s=h.useCallback((a,d)=>{o(g=>g[a]===d?g:{...g,[a]:d})},[]),i=h.useCallback(a=>(l(d=>({...d,[a]:(d[a]??0)+1})),()=>l(d=>({...d,[a]:Math.max(0,(d[a]??0)-1)}))),[]),c=h.useMemo(()=>({outletNodes:t,setOutletNode:s,slotCounts:n,registerSlot:i}),[t,s,n,i]);return e.jsx(Lt.Provider,{value:c,children:r})}function At({slotKey:r,fallback:t}){const o=h.useContext(Lt),n=o?(o.slotCounts[r]??0)>0:!1,l=h.useRef(o==null?void 0:o.setOutletNode);l.current=o==null?void 0:o.setOutletNode;const s=h.useCallback(i=>{var c;return(c=l.current)==null?void 0:c.call(l,r,i)},[r]);return e.jsx(e.Fragment,{children:n?e.jsx("div",{ref:s,style:{display:"contents"}}):t})}function kn({slotKey:r,children:t}){const o=h.useContext(Lt),n=h.useRef(o==null?void 0:o.registerSlot);if(n.current=o==null?void 0:o.registerSlot,h.useEffect(()=>{var s;return(s=n.current)==null?void 0:s.call(n,r)},[r]),!o)return process.env.NODE_ENV!=="production"&&console.warn("[SidebarGroupSlot] used outside AppLayout — content not rendered"),null;const l=o.outletNodes[r];return l?Yr.createPortal(t,l):null}const Jr="moduleSwitcherGroupId",Ot="sa-module-switcher-change";function No(){if(typeof window>"u")return null;const r=window.localStorage.getItem(Jr);if(r===null)return null;const t=Number(r);return Number.isFinite(t)?t:null}function _o(r){typeof window>"u"||(r===null?window.localStorage.removeItem(Jr):window.localStorage.setItem(Jr,String(r)),window.dispatchEvent(new CustomEvent(Ot,{detail:r})))}function Bn(){_o(null)}function Wt(){const[r,t]=h.useState(()=>No());return h.useEffect(()=>{const n=()=>{t(No())},l=s=>{s.key===Jr&&n()};return window.addEventListener(Ot,n),window.addEventListener("storage",l),()=>{window.removeEventListener(Ot,n),window.removeEventListener("storage",l)}},[]),{selectedGroupId:r,setSelectedGroupId:n=>{_o(n),t(n)}}}const mn="4.5rem",En="var(--app-header-height, 4rem)",qo=r=>r?mn:En;function Zo({icon:r,label:t,tooltip:o=t,active:n=!1,badge:l,showLabel:s=!0,onClick:i}){const[c,a]=h.useState(!1);return e.jsx(Le.Tooltip,{fluid:!0,label:o,position:"right",children:e.jsxs(f.Box,{as:"button",onClick:i,onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),"aria-label":o,"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(f.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":c?"neutral":void 0,style:{borderColor:n?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(F.Icon,{name:r,size:"sm"}),l&&!s&&e.jsx(f.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(rr.BadgeDot,{tone:"error",variant:"solid",size:"xs"})}),l&&s&&e.jsx(f.Box,{position:"absolute",display:"inline-flex",style:{top:"-0.375rem",left:"1.5rem"},children:e.jsx(rr.Badge,{text:String(l.value),variant:l.variant??"info",size:"xs",border:!0})})]}),s&&e.jsx(S.Text,{as:"span",fontSize:"xs",fontWeight:n?"medium":"normal",textAlign:"center",truncate:!0,style:{display:"block",maxWidth:"100%",color:"inherit"},children:t})]})})}function Fn({items:r,bottomItems:t,activeKey:o,onSelect:n,onAction:l,logo:s,panelCollapsed:i,onExpandPanel:c,showLabels:a=!0}){const[d,g]=h.useState(!1),b=i&&d;return e.jsxs(f.Box,{as:"nav","aria-label":"Primary navigation",bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:"0",style:{width:qo(a),height:"100%"},children:[e.jsxs(f.Box,{onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!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:s,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",transition:"opacity 0.2s",opacity:b?0:1}}),i&&e.jsx(f.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:b?1:0,pointerEvents:b?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(F.Icon,{name:"LayoutLeft",size:"sm"})})]}),e.jsx(f.Box,{flex:"1",overflow:"overflow-y-auto",paddingBlock:"md",paddingInline:"xs",gap:"xs",children:r.map(p=>e.jsx(Zo,{icon:p.icon,label:p.label,tooltip:p.tooltip,badge:p.badge,showLabel:a,active:p.key===o,onClick:()=>n(p.key)},p.key))}),t&&t.length>0&&e.jsx(f.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:"xs",gap:"xs",flexShrink:"0",children:t.map(p=>e.jsx(Zo,{icon:p.icon,label:p.label,tooltip:p.tooltip,badge:p.badge,showLabel:a,onClick:()=>l(p)},p.key))})]})}function In({items:r,activeKey:t,onSelect:o}){return e.jsx(f.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:r.map(n=>{const l=n.key===t;return e.jsxs(f.Box,{as:"button",role:"tab","aria-selected":l,onClick:()=>o(n.key),direction:"row",align:"center",gap:"spacing-4",paddingInline:"sm",height:"height-32",flexShrink:"0",borderRadius:l?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:l?"white":void 0,hover:l?void 0:{bg:"neutral"},style:{whiteSpace:"nowrap",color:l?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:l?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(F.Icon,{name:n.icon,size:"sm"}),e.jsx(S.Text,{as:"span",fontSize:"sm",fontWeight:l?"medium":"normal",style:{color:"inherit"},children:n.label})]},n.key)})})}const zt=(r,t)=>!r.groupIds||r.groupIds.includes(t.id)||t.parentGroupId!==void 0&&r.groupIds.includes(t.parentGroupId);let $r=0,Dr=!1,Go=new Set;const Qo=new Set;function Mn(r,t){const[o,n]=h.useState(!1),l=h.useRef(null),s=h.useRef(null);return h.useLayoutEffect(()=>{const i=l.current;if(!i)return;let c=0;const a=()=>{c=0;const g=s.current;if(!g)return;const b=g.scrollWidth>i.clientWidth;n(p=>p===b?p:b)},d=new ResizeObserver(()=>{c||(c=requestAnimationFrame(a))});return d.observe(i),a(),()=>{c&&cancelAnimationFrame(c),d.disconnect()}},[r,t]),{containerRef:l,textRef:s,truncated:o}}function Uo({text:r,textStyle:t,active:o=!1}){const{containerRef:n,textRef:l,truncated:s}=Mn(r,o),i=e.jsx(S.Text,{ref:l,as:"span",fontSize:"md",fontWeight:o?"medium":"normal",truncate:!0,style:{display:"block",...t},children:r});return e.jsx(f.Box,{ref:n,display:"block",style:{flex:1,minWidth:0},children:s?e.jsx(Le.Tooltip,{fluid:!0,label:r,position:"top",children:i}):i})}const Tn=200,Ht="var(--app-header-height, 4rem)",Yo="44px",Pt=`calc((${Ht} - 2rem) / 2)`,Xo=16;function Ln({children:r,headerLeftSlot:t,profile:o,isLoadingProfile:n,onLogout:l,isLoggingOut:s,loadingComponent:i,sidebarHeaderContent:c,headerActions:a,profileRole:d,profileMenuButtons:g,profileMenuItems:b,logoutButton:p,resizableSidebar:C=!0,rail:k}){var bt,wr;const{useSearchParams:D,useNavigate:z,useLocation:A,Outlet:L}=tr(),[x]=D(),m=x.get("embed")==="true",I=mt(),{badges:T}=Io(),B=z(),O=A(),V=!ke.useMediaQuery("md"),[H,N]=h.useState(!1),{collapsed:G,setCollapsed:Y,width:te,setWidth:K,resetWidth:ee,minWidth:_,maxWidth:ge,mobileOpen:fe,setMobileOpen:Fe}=Ao(),[qe,Be]=h.useState(!1),[ve,Ce]=h.useState(()=>new Set(Go)),[Ae,Ze]=h.useState(null),{selectedGroupId:He,setSelectedGroupId:ie}=Wt(),de=!!(k&&k.items.length>0),pe=G&&!V&&!de,we=G&&!V&&de;h.useEffect(()=>{Go=ve},[ve]);const Ie=h.useRef(null),sr=h.useRef(null),ir=h.useRef(null),[P,$]=h.useState(!1),[X,he]=h.useState(null),me=C&&!V&&!G,xe=E=>Math.min(Math.max(E,_),ge),Pe=X??te,cr=E=>{var Xe,Ne,Je;if(!me)return;E.preventDefault();const Z=E.clientX,J=((Xe=ir.current)==null?void 0:Xe.getBoundingClientRect().width)??te;(Je=(Ne=E.currentTarget).setPointerCapture)==null||Je.call(Ne,E.pointerId),$(!0),document.body.style.userSelect="none",document.body.style.cursor="col-resize";let ne=0,ye=J;const Te=Qe=>{ye=J+(Qe.clientX-Z),ne||(ne=requestAnimationFrame(()=>{ne=0,he(xe(ye))}))},ce=()=>{ne&&cancelAnimationFrame(ne),window.removeEventListener("pointermove",Te),window.removeEventListener("pointerup",ce),document.body.style.userSelect="",document.body.style.cursor="",he(null),$(!1),ye<Tn?Y(!0):K(xe(ye))};window.addEventListener("pointermove",Te),window.addEventListener("pointerup",ce)},Ye=E=>{me&&(E.key==="ArrowLeft"?(E.preventDefault(),K(Z=>Z-Xo)):E.key==="ArrowRight"?(E.preventDefault(),K(Z=>Z+Xo)):E.key==="Home"?(E.preventDefault(),K(_)):E.key==="End"&&(E.preventDefault(),K(ge)))};h.useEffect(()=>{const E=Ie.current;if(!E)return;const Z=()=>{Dr||($r=E.scrollTop)};return E.addEventListener("scroll",Z),()=>E.removeEventListener("scroll",Z)},[]);const Me=()=>{const E=Ie.current;E&&$r>0&&(Dr=!0,E.scrollTop=$r,requestAnimationFrame(()=>{Dr=!1}))};h.useLayoutEffect(()=>{Dr=!0,Me();const E=setTimeout(()=>{Dr=!1},300);return()=>clearTimeout(E)},[]),h.useLayoutEffect(()=>{I.menus.length>0&&($r>0?Me():requestAnimationFrame(()=>{var Z;const E=(Z=Ie.current)==null?void 0:Z.querySelector("[data-menu-active='true']");E&&E.scrollIntoView({block:"center",behavior:"instant"})}))},[I.menus]),h.useEffect(()=>{Dr=!0,Me();const E=setTimeout(Me,0),Z=setTimeout(Me,50),J=setTimeout(Me,100),ne=setTimeout(Me,200),ye=setTimeout(()=>{Dr=!1},300),Te=setTimeout(()=>{const ce=Ie.current,Xe=ce==null?void 0:ce.querySelector("[data-menu-active='true']");if(ce&&Xe){const Ne=ce.getBoundingClientRect(),Je=Xe.getBoundingClientRect();Je.top>=Ne.top&&Je.bottom<=Ne.bottom||Xe.scrollIntoView({block:"center",behavior:"smooth"})}},250);return()=>{clearTimeout(E),clearTimeout(Z),clearTimeout(J),clearTimeout(ne),clearTimeout(ye),clearTimeout(Te)}},[O.pathname]),h.useEffect(()=>{sr.current&&(sr.current.scrollTop=0)},[O.pathname]),h.useEffect(()=>{V&&Fe(!1)},[O.pathname,V]),h.useEffect(()=>{V&&Y(!0)},[V]),h.useEffect(()=>{const E=document.documentElement;return E.style.setProperty("--app-header-height",Yo),()=>{E.style.removeProperty("--app-header-height")}},[]);const br=()=>{N(!0)},ur=()=>{N(!1)},Ee=()=>{N(!1),l()},ze=E=>{const Z=E.slotKey?[]:[E.to];return E.children&&Z.push(...E.children.map(J=>J.to)),Z},Sr=[...I.menus.flatMap(E=>E.items.flatMap(ze)),...((bt=I.menuBottom)==null?void 0:bt.flatMap(ze))??[]],ar=E=>{if(!O.pathname.startsWith(E))return!1;const Z=Sr.filter(J=>O.pathname.startsWith(J)).sort((J,ne)=>ne.length-J.length)[0];return E===Z},vr=h.useRef(k);vr.current=k;const Cr=E=>{const Z=vr.current;if(!Z||Z.items.length===0)return null;const J=Z.defaultKey??Z.items[0].key,ne=Z.items.find(ce=>ce.key===E),ye=I.menus.find(ce=>ce.items.some(Xe=>ze(Xe).some(ar)));if(!ye)return ne?ne.key:J;if(ne&&zt(ne,ye))return ne.key;const Te=Z.items.find(ce=>ce.groupIds&&zt(ce,ye))??Z.items.find(ce=>!ce.groupIds);return(Te==null?void 0:Te.key)??(ne==null?void 0:ne.key)??J},[xr,je]=h.useState(()=>Cr(null));h.useEffect(()=>{je(E=>Cr(E))},[O.pathname,I.menus]);const Ge=de?k.items.find(E=>E.key===xr)??k.items[0]:void 0,yt=E=>{je(E),we&&Y(!1)},pt=E=>{E.onClick?E.onClick():E.to&&B(E.to)};h.useEffect(()=>{var Z;const E=J=>{var ye;const ne=J.defaultExpanded&&!Qo.has(J.id);ne&&Qo.add(J.id),(ne||(ye=J.children)!=null&&ye.some(Te=>O.pathname.startsWith(Te.to)))&&Ce(Te=>{const ce=new Set(Te);return ce.add(J.id),ce})};I.menus.forEach(J=>{J.items.forEach(E)}),(Z=I.menuBottom)==null||Z.forEach(E)},[O.pathname,I.menus,I.menuBottom]);const so=E=>{Ce(Z=>{const J=new Set(Z);return J.has(E)?J.delete(E):J.add(E),J})};h.useEffect(()=>{I.menus.length!==0&&He!==null&&!I.menus.some(E=>E.id===He)&&ie(null)},[I.menus,He,ie]);const io=h.useMemo(()=>{if(Ge!=null&&Ge.groupIds)return I.menus.filter(ye=>zt(Ge,ye));const E=I.menus,Z=de?null:He;if(Z!==null)return E.filter(ye=>ye.id===Z||ye.parentGroupId===Z);const J=E.filter(ye=>ye.parentGroupId===void 0),ne=E.filter(ye=>ye.parentGroupId!==void 0).flatMap(ye=>ye.items);return ne.length===0?J:[...J,{id:18,name:"Pengaturan",items:ne,parentGroupId:void 0}]},[I.menus,He,Ge,de]);if(m)return e.jsx(f.Box,{as:"main",overflow:"overflow-y-auto",bg:"surface-inverse",style:{height:"100vh"},children:r||e.jsx(L,{})});const kr=E=>{const Z=E.children&&E.children.length>0,J=!!E.slotKey,ne=Z||J,ye=ve.has(E.id),Te=Z?E.children.some(Ne=>ar(Ne.to)):J?!1:ar(E.to),ce=Xr(E.badge,T[E.id]),Xe=!!ce&&pe;return e.jsxs(f.Box,{display:"block","data-menu-active":Te||void 0,children:[e.jsxs(f.Box,{as:"button",onClick:Ne=>{if(J&&pe)B(E.to);else if(ne)if(pe){const Je=Ne.currentTarget.getBoundingClientRect();Ze({item:E,top:Je.top,left:Je.right+8})}else so(E.id);else B(E.to)},fullWidth:!0,direction:"row",align:"center",justify:pe?"center":void 0,gap:"sm",paddingInline:pe?void 0:"sm",paddingBlock:"xs",height:"height-32",borderRadius:Te?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:Te?"white":void 0,hover:Te?void 0:{bg:"neutral"},title:pe?E.title:void 0,style:{textAlign:"left",color:Te?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:Te?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsxs(f.Box,{position:"relative",display:"inline-flex",flexShrink:"0",style:{alignItems:"center"},children:[e.jsx(F.Icon,{name:E.icon,size:"sm",style:{flexShrink:0}}),Xe&&e.jsx(f.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(rr.BadgeDot,{tone:"error",variant:"solid",size:"xs"})})]}),!pe&&e.jsxs(e.Fragment,{children:[e.jsx(Uo,{text:E.title,active:Te,textStyle:{transition:"opacity 0.3s"}}),ce&&e.jsx(rr.Badge,{text:String(ce.value),variant:ce.variant??"info",size:"xs",border:!0}),ne&&e.jsx(F.Icon,{name:"ChevronDown",size:"sm",style:{flexShrink:0,transition:"transform 0.2s",transform:ye?"rotate(180deg)":"rotate(0deg)"}})]})]}),ne&&!pe&&(()=>{const Ne=E.children??[],Je=J?-1:Ne.findIndex(er=>ar(er.to)),Qe=Ne.map(er=>{const Br=Xr(er.badge,T[er.id]),gr=ar(er.to);return e.jsxs(f.Box,{as:"button",onClick:()=>B(er.to),fullWidth:!0,direction:"row",align:"center",gap:"sm",paddingLeft:"sm",paddingRight:"sm",paddingBlock:"xs",height:"height-32",borderRadius:gr?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:gr?"white":void 0,hover:gr?void 0:{bg:"neutral"},style:{textAlign:"left",color:gr?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:gr?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(F.Icon,{name:er.icon,size:"sm",style:{flexShrink:0}}),e.jsx(Uo,{text:er.title,active:gr}),Br&&e.jsx(rr.Badge,{text:String(Br.value),variant:Br.variant??"info",size:"xs",border:!0})]},er.id)});return e.jsxs(f.Box,{position:"relative",overflow:"overflow-hidden",style:{marginLeft:"1rem",paddingLeft:"0.75rem",transition:"all 0.3s ease-in-out",maxHeight:ye?J?"none":`${Ne.length*36}px`:"0px",opacity:ye?1:0,marginTop:ye?"0.25rem":"0px"},children:[e.jsx(f.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(f.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(At,{slotKey:E.slotKey,fallback:Qe}):Qe]})})()]},E.id)};return e.jsx(jo,{children:e.jsxs(Po,{children:[e.jsxs(f.Box,{direction:"row",position:"relative",style:{height:"100vh","--app-header-height":Yo,"--app-sidebar-width":V?"0px":de?`calc(${qo(k.showLabels??!0)} + ${we?"0px":`${Pe}px`})`:G?Ht:`${Pe}px`,"--app-footer-zindex":V&&fe?"40":"998"},children:[V&&e.jsx(f.Box,{position:"fixed",zIndex:"40",bg:"black-alpha-a50",style:{inset:0,opacity:fe?.5:0,pointerEvents:fe?"auto":"none",transition:"opacity 0.3s"},onClick:()=>Fe(!1)}),de&&!V&&e.jsx(Fn,{items:k.items,bottomItems:k.bottomItems,activeKey:Ge.key,onSelect:yt,onAction:pt,logo:I.logo,panelCollapsed:we,onExpandPanel:()=>Y(!1),showLabels:k.showLabels??!0}),e.jsxs(f.Box,{as:"aside",ref:ir,"aria-hidden":we||void 0,bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:V?void 0:"0",style:{width:V?"16.375rem":we?"0px":G?Ht:`${Pe}px`,...we&&{borderRightWidth:0,overflow:"hidden",visibility:"hidden"},position:V?"fixed":"relative",...V&&{inset:0,zIndex:50,transform:fe?"translateX(0)":"translateX(-100%)"},transition:P?"none":"all 0.3s ease-in-out",minWidth:0},children:[e.jsx(f.Box,{onMouseEnter:()=>Be(!0),onMouseLeave:()=>Be(!1),direction:"row",align:"center",justify:"space-between",paddingInline:pe?void 0:"lg",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",position:"relative",style:{height:"var(--app-header-height, 4rem)",...pe?{paddingInline:Pt}:null},children:(()=>{const E=de&&!V,Z=Ge!=null&&Ge.groupIds?Ge.tooltip??Ge.label:I.appName,J=!V&&G&&!fe&&!de,ne=J&&qe;return e.jsxs(e.Fragment,{children:[e.jsxs(f.Box,{direction:"row",align:"center",gap:"sm",flex:J?"1":void 0,justify:J?"center":void 0,style:{transition:"opacity 0.2s",opacity:ne?0:1,pointerEvents:ne?"none":"auto"},children:[!E&&e.jsx("img",{src:I.logo,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",flexShrink:0}}),(!G||fe)&&e.jsx(S.Text,{as:"span",fontSize:"md",fontWeight:"semibold",color:"primary",truncate:!0,style:{transition:"opacity 0.3s"},children:E?Z:I.appName})]}),!V&&!G&&e.jsx(f.Box,{as:"button",onClick:()=>Y(!0),"aria-label":"Collapse sidebar",display:"inline-flex",align:"center",justify:"center",flexShrink:"0",style:{color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(F.Icon,{name:"LayoutLeft",size:"sm"})}),J&&e.jsx(f.Box,{as:"button",onClick:()=>Y(!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:ne?1:0,pointerEvents:ne?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(F.Icon,{name:"LayoutLeft",size:"sm"})}),V&&e.jsx(f.Box,{as:"button",onClick:()=>Fe(!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(F.Icon,{name:"Cross",size:"md"})})]})})()}),c&&e.jsx(Ho,{collapsed:V||de?!1:G,children:c}),de&&V&&e.jsx(In,{items:k.items,activeKey:Ge.key,onSelect:yt}),e.jsx(f.Box,{ref:Ie,flex:"1",overflow:"overflow-y-auto",paddingBlock:"lg",children:io.map(E=>e.jsxs(f.Box,{marginBottom:"lg",children:[pe?E.name&&e.jsx(f.Box,{"aria-label":E.name,direction:"row",align:"center",justify:"center",paddingBlock:"md",children:e.jsx(f.Box,{width:"width-16",style:{height:"2px",borderRadius:"min(1px, var(--sa-radii-xs, 4px))",backgroundColor:E.color??"var(--sa-background-brand, #04254f)"}})}):E.name&&e.jsx(S.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:E.name}),e.jsx(f.Box,{paddingInline:pe?void 0:"md",gap:"xs",style:pe?{paddingInline:Pt}:void 0,children:E.slotKey?e.jsx(At,{slotKey:E.slotKey,fallback:E.items.map(Z=>kr(Z))}):E.items.map(Z=>kr(Z))})]},E.id))}),I.menuBottom&&I.menuBottom.length>0&&e.jsx(f.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:pe?void 0:"md",bg:"surface-inverse",gap:"xs",flexShrink:"0",style:pe?{paddingInline:Pt}:void 0,children:I.menuBottom.map(E=>kr(E))}),me&&e.jsx(f.Box,{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar","aria-valuenow":te,"aria-valuemin":_,"aria-valuemax":ge,tabIndex:0,onPointerDown:cr,onKeyDown:Ye,onDoubleClick:ee,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:P?"var(--sa-background-brand, #04254f)":"transparent",transition:"background 0.15s"},onMouseEnter:E=>{P||(E.currentTarget.style.background="var(--sa-border-bold, #0b120e40)")},onMouseLeave:E=>{P||(E.currentTarget.style.background="transparent")}})]}),e.jsxs(f.Box,{flex:"1",overflow:"overflow-hidden",children:[e.jsxs(f.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(f.Box,{direction:"row",align:"center",gap:V?"lg":void 0,children:[V&&e.jsx(f.Box,{as:"button",onClick:()=>Fe(!0),align:"center",justify:"center",borderRadius:"rounded-md",style:{padding:"0.375rem",color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(F.Icon,{name:"MenuBurger",size:"lg"})}),e.jsx(Vo,{children:t})]}),e.jsxs(f.Box,{direction:"row",align:"center",gap:"md",children:[a,e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsxs(f.Box,{direction:"row",align:"center",gap:"sm",cursor:"pointer",children:[!V&&e.jsxs(f.Box,{display:"block",textAlign:"right",customMaxWidth:"12.5rem",children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",textAlign:"right",truncate:!0,lineHeight:"leading-none",children:n?"Loading...":(o==null?void 0:o.name)||"unknown"}),e.jsx(S.Text,{fontSize:"sm",color:"subtle",textAlign:"right",truncate:!0,children:n?"":(o==null?void 0:o.email)||"unknown"})]}),e.jsx(Qr.Avatar,{size:"sm",src:(o==null?void 0:o.avatar)||void 0,name:o==null?void 0:o.name,initials:((o==null?void 0:o.name)||"U")[0].toUpperCase(),bg:"var(--sa-background-brand, #04254f)",color:"var(--sa-background-primary, #ffffff)"}),e.jsx(F.Icon,{name:"ChevronDown",size:"xs",color:"subtle"})]})}),e.jsxs(W.MenuLists,{width:280,style:{paddingBlock:"12px",paddingInline:"12px",gap:"8px",marginTop:"16px"},children:[e.jsx(W.MenuHeading,{children:e.jsxs(f.Box,{align:"center",textAlign:"center",paddingBlock:"sm",fullWidth:!0,children:[e.jsx(Qr.Avatar,{customSize:64,src:(o==null?void 0:o.avatar)||void 0,name:o==null?void 0:o.name,initials:((o==null?void 0:o.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(S.Text,{fontSize:"md",fontWeight:"semibold",color:"primary",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(o==null?void 0:o.name)||"unknown"}),e.jsx(S.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(o==null?void 0:o.email)||"unknown"}),d&&e.jsx(S.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:d})]})}),(g&&g.length>0||b)&&e.jsxs(W.MenuBody,{children:[g==null?void 0:g.map((E,Z)=>e.jsx(W.MenuItem,{onClick:E.onClick,startIcon:e.jsx(F.Icon,{name:E.icon,size:"md"}),children:E.label},`${E.label}-${Z}`)),b]}),p??e.jsx(W.MenuFooter,{children:e.jsx(W.MenuItem,{intent:"danger",onClick:br,startIcon:e.jsx(F.Icon,{name:"Logout",size:"md"}),children:"Logout"})})]})]})]})]}),e.jsx(f.Box,{as:"main",ref:sr,flex:"1",overflow:"overflow-y-auto",children:r||e.jsx(L,{})})]})]}),s&&i&&e.jsx(f.Box,{position:"fixed",align:"center",justify:"center",bg:"black-alpha-a70",style:{inset:0,zIndex:9999},children:i}),e.jsxs(Oe.Dialog,{isShow:H,onHide:ur,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(f.Box,{direction:"column",display:"flex",align:"flex-end",justify:"center",children:e.jsxs(ae.Flex,{direction:"row",gap:"sm",align:"center",children:[e.jsx(f.Box,{direction:"column",children:e.jsx(j.Button,{secondary:!0,onClick:ur,children:"Cancel"})}),e.jsx(f.Box,{direction:"column",children:e.jsx(j.Button,{primary:!0,onClick:Ee,children:"Yes, Sure"})})]})})})]}),Ae&&e.jsxs(e.Fragment,{children:[e.jsx(f.Box,{onClick:()=>Ze(null),position:"fixed",style:{inset:0,zIndex:60}}),e.jsxs(f.Box,{role:"dialog","aria-label":Ae.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:Ae.top,left:Ae.left,zIndex:61,minWidth:"13rem",maxWidth:"16rem"},children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-500",textTransform:"uppercase",style:{padding:"0.25rem 0.5rem 0.5rem",letterSpacing:"0.05em"},children:Ae.item.title}),(wr=Ae.item.children)==null?void 0:wr.map(E=>{const Z=ar(E.to),J=Xr(E.badge,T[E.id]);return e.jsxs(f.Box,{as:"button",onClick:()=>{B(E.to),Ze(null)},fullWidth:!0,direction:"row",align:"center",gap:"md",paddingBlock:"sm",paddingInline:"md",borderRadius:"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:Z?"primary-inverse":void 0,hover:Z?void 0:{bg:"primary-inverse"},style:{textAlign:"left",borderColor:"transparent",color:Z?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)"},children:[E.icon&&e.jsx(F.Icon,{name:E.icon,size:"sm",style:{flexShrink:0}}),e.jsx(S.Text,{as:"span",fontSize:"md",fontWeight:Z?"medium":"normal",whiteSpace:"nowrap",style:{flex:1},children:E.title}),J&&e.jsx(rr.Badge,{text:String(J.value),variant:J.variant??"info",size:"xs",border:!0})]},E.id)})]})]})]})})}const Pr=h.forwardRef(({children:r,...t},o)=>e.jsx(f.Box,{ref:o,role:"button",cursor:"pointer","aria-pressed":"true",display:"inline-block",tabIndex:0,...t,children:r})),Jo=({title:r,iconName:t,textColor:o,iconColor:n,hoverTextColor:l,hoverIconColor:s})=>{const[i,c]=h.useState(!1),a=n??"var(--sa-text-subtle, #8c8f97)",d=o??"var(--sa-text-subtle, #8c8f97)",g=s??"var(--sa-text-subtle, #8c8f97)",b=l??"var(--sa-text-primary, #292a2e)";return e.jsxs(f.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),style:{cursor:"pointer"},children:[e.jsx(F.Icon,{name:t||"ChevronLeft",size:"xs",style:{color:i?g:a,transition:"color 0.15s ease"}}),e.jsx(S.Text,{variant:"sub-h3",style:{color:i?b:d,transition:"color 0.15s ease"},children:r||"Back"})]})},An=({items:r,separator:t="/",iconName:o,iconColor:n,hoverIconColor:l})=>{const{Link:s}=tr(),[i,c]=h.useState(!1),a=n??"var(--sa-text-subtle, #8c8f97)",d=l??"var(--sa-text-subtle, #8c8f97)",g=r.length>1?r[0]:void 0,b=!!(g!=null&&g.to||g!=null&&g.onClick),p=e.jsx(F.Icon,{name:o||"ChevronLeft",size:"xs",onMouseEnter:b?()=>c(!0):void 0,onMouseLeave:b?()=>c(!1):void 0,style:{color:b&&i?d:a,transition:"color 0.15s ease",cursor:b?"pointer":void 0}}),C=g!=null&&g.to?e.jsx(s,{to:g.to,replace:!0,style:{textDecoration:"none"},children:p}):g!=null&&g.onClick?e.jsx(Pr,{onClick:g.onClick,children:p}):p;return e.jsxs(f.Box,{direction:"row",gap:"xs",align:"center",children:[C,e.jsx(Er.Breadcrumb,{separator:t,size:"md",children:r.map((k,D)=>{const z=D===r.length-1;return k.to&&!z?e.jsx(Er.BreadcrumbItem,{children:e.jsx(s,{to:k.to,children:k.label})},D):e.jsx(Er.BreadcrumbItem,{currentPage:z,children:e.jsx(Er.BreadcrumbLink,{onClick:z?void 0:k.onClick,children:k.label})},D)})})]})},On=r=>{const{Link:t}=tr(),{items:o,separator:n,onClick:l,navigateTo:s,...i}=r;return o&&o.length>0?e.jsx(An,{items:o,separator:n,iconName:i.iconName,iconColor:i.iconColor,hoverIconColor:i.hoverIconColor}):s?e.jsx(f.Box,{direction:"row",children:e.jsx(t,{to:s,replace:!0,style:{textDecoration:"none"},children:e.jsx(Jo,{...i})})}):e.jsx(f.Box,{direction:"row",children:e.jsx(Pr,{onClick:l,children:e.jsx(Jo,{...i})})})},Vt=[{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 $o(r,t,o){return{display:"flex",alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"var(--sa-radii-sm, 6px)",border:r?`2px solid ${o.activeBorder}`:"2px solid var(--sa-color-gray-200, #f0f1f2)",backgroundColor:r?o.activeBg:"var(--sa-color-gray-50, #ffffff)",boxShadow:r?t?`0 8px 20px ${o.activeShadow.replace("0.25","0.35")}`:`0 2px 8px ${o.activeShadow}`:t?"0 8px 20px rgba(0, 0, 0, 0.14)":"0 1px 4px rgba(0, 0, 0, 0.08)",transform:t?"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 Ko={fontSize:"11px",fontWeight:500,textAlign:"center",overflowWrap:"normal",wordBreak:"normal",color:"var(--sa-text-primary, #292a2e)",lineHeight:"1.3",maxWidth:"80px"},Ro={display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",background:"none",border:"none",cursor:"pointer",padding:0};function el({isShow:r,onHide:t,menus:o,selectedGroupId:n,onSelect:l}){const[s,i]=h.useState(void 0),c=d=>{l(d),t()},a=Vt[0];return e.jsx(Oe.Dialog,{isShow:r,onHide:t,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:()=>i("all"),onMouseLeave:()=>i(void 0),style:Ro,children:[e.jsx("div",{style:$o(n===null,s==="all",a),children:e.jsx("div",{style:{color:a.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(F.Icon,{name:"Grid",size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:Ko,children:"Semua"})]}),o.map((d,g)=>{var D;const b=n===d.id,p=s===d.id,C=((D=d.items[0])==null?void 0:D.icon)??"Grid",k=Vt[(g+1)%Vt.length];return e.jsxs("button",{onClick:()=>c(d.id),onMouseEnter:()=>i(d.id),onMouseLeave:()=>i(void 0),style:Ro,children:[e.jsx("div",{style:$o(b,p,k),children:e.jsx("div",{style:{color:k.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(F.Icon,{name:C,size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:Ko,children:d.name})]},d.id)})]})})})}function Wn({onSelect:r,"aria-label":t="Pilih module"}={}){const o=mt(),{useNavigate:n}=tr(),l=n(),{selectedGroupId:s,setSelectedGroupId:i}=Wt(),[c,a]=h.useState(!1),d=g=>{var b;if(i(g),g!==null){const p=o.menus.find(k=>k.id===g),C=(b=p==null?void 0:p.items[0])==null?void 0:b.to;C&&l(C)}r==null||r(g)};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":t,onMouseEnter:g=>{g.currentTarget.style.backgroundColor="var(--sa-background-primary-inverse, #f8f8f8)"},onMouseLeave:g=>{g.currentTarget.style.backgroundColor="transparent"},children:e.jsx(F.Icon,{name:"GridApplication",size:"sm"})}),s!==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(el,{isShow:c,onHide:()=>a(!1),menus:o.menus.filter(g=>g.parentGroupId===void 0),selectedGroupId:s,onSelect:d})]})}const zn=(r,t)=>{const o=[];if(t===0)return o.push(r),o;for(let n=0;n<r.length;n+=t){const l=r.slice(n,n+t);o.push(l)}return o},Hn=h.memo(({value:r,label:t,separator:o,labelWidth:n,lastIndex:l,labelAlign:s="top"})=>{const i=h.useMemo(()=>({padding:0,paddingBottom:l?0:12,verticalAlign:s}),[l,s]),c=h.useMemo(()=>({padding:0,paddingRight:12,paddingLeft:12,paddingBottom:l?0:12,verticalAlign:s}),[l,s]),a=()=>typeof t=="string"?e.jsx(S.Text,{fontWeight:"medium",color:"subtlest",children:t}):t,d=()=>typeof r=="string"||typeof r=="number"?e.jsx(S.Text,{color:"primary",fontWeight:"medium",children:r}):r,g=()=>typeof o=="string"||typeof o=="number"?e.jsx(S.Text,{fontWeight:"medium",color:"subtlest",children:o}):o;return e.jsxs(Q.Tr,{children:[e.jsx(Q.Td,{style:i,width:n,children:a()}),o?e.jsx(Q.Td,{style:c,width:24,children:g()}):null,e.jsx(Q.Td,{style:i,children:d()})]})}),Pn=h.memo(({fields:r,separator:t,labelWidth:o})=>e.jsx(Q.Table,{withColumnBorder:!1,withRowBorder:!1,children:r.map((n,l)=>e.jsx(Hn,{separator:t,labelWidth:o,lastIndex:l===r.length-1,...n},`field-group-field-${l}`))})),Vn=h.memo(({maxRow:r=0,maxColumn:t=2,separator:o=":",fields:n=[],labelWidth:l=150,bordered:s=!1})=>{const i=h.useMemo(()=>zn(n,r),[n,r]),c=i.length>2,a=()=>{switch(t){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(f.Box,{gap:c?void 0:"lg",direction:"row",flexWrap:"wrap",borderRadius:"rounded-sm",padding:"lg",paddingBottom:c?"xs":"lg",bg:"accent-dark-tertiary",borderWidth:s?"border":void 0,borderStyle:s?"border-solid":void 0,borderColor:s?"border-subtle":void 0,children:i.map((d,g)=>e.jsx(f.Box,{direction:"column",flex:c?void 0:"1",width:c?a():void 0,marginBottom:c?"lg":void 0,children:e.jsx(Pn,{labelWidth:l,fields:d,separator:o})},g))})}),jn=({backButton:r})=>{const[t,o]=h.useState(!1),n=(r==null?void 0:r.iconColor)??"var(--sa-text-subtle, #8c8f97)",l=(r==null?void 0:r.textColor)??"var(--sa-text-subtle, #8c8f97)",s=(r==null?void 0:r.hoverIconColor)??"var(--sa-text-subtle, #8c8f97)",i=(r==null?void 0:r.hoverTextColor)??"var(--sa-text-primary, #292a2e)";return e.jsxs(f.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),style:{cursor:"pointer"},children:[e.jsx(F.Icon,{name:(r==null?void 0:r.iconName)||"ChevronLeft",size:"xs",style:{color:t?s:n,transition:"color 0.15s ease"}}),e.jsx(S.Text,{variant:"sub-h3",style:{color:t?i:l,textDecoration:t?"underline":"none",transition:"color 0.15s ease"},children:(r==null?void 0:r.title)||"Back"})]})},rl=({backButton:r,title:t,titleIcon:o,titleTag:n,children:l,header:s=!0,headerBorder:i=!1,disableAnimation:c=!1,scrollable:a=!1,stickyHeader:d=!1,subHeaders:g,action:b,titleTagProps:p,containerProps:C,headerProps:k})=>{const D=ke.useMediaQuery("md"),{Link:z,useNavigate:A}=tr(),L=A(),x=r==null?void 0:r.show,m=()=>{if(typeof(r==null?void 0:r.onClick)=="function"){r.onClick();return}L(-1,{replace:!0})},I=()=>{if(!b)return null;if(h.isValidElement(b))return b;const H=b.filter(N=>N&&(N.title||N.icon));return H.length===0?null:D?e.jsx(f.Box,{direction:"row",gap:"md",children:H.map(({title:N,icon:G,buttonProps:Y,onClick:te},K)=>e.jsx(j.Button,{iconLeft:G?e.jsx(F.Icon,{name:G,size:"md"}):void 0,onClick:te,...Y,children:N},`action-${K}`))}):e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"tertiary",size:"sm",iconLeft:e.jsx(F.Icon,{name:"MenuBurger"}),"aria-label":"Actions"})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{minWidth:200},children:H.map(({title:N,icon:G,buttonProps:Y,onClick:te},K)=>{const ee=(Y==null?void 0:Y.tone)==="error"||(Y==null?void 0:Y.danger)===!0;return e.jsx(W.MenuItem,{intent:ee?"danger":void 0,disabled:Y==null?void 0:Y.disabled,startIcon:G?e.jsx(F.Icon,{name:G}):void 0,onClick:te,children:N},`action-${K}`)})})})]})},T=()=>{const H=e.jsx(jn,{backButton:r});return r!=null&&r.navigateTo?e.jsx(f.Box,{direction:"row",children:e.jsx(z,{to:r.navigateTo,replace:!0,style:{textDecoration:"none"},children:H})}):e.jsx(f.Box,{direction:"row",children:e.jsx(Pr,{onClick:m,children:H})})},B=()=>{const H=!!t,N=Array.isArray(b)&&b.length>0,G=h.isValidElement(b)?!0:N;if(!H&&!G&&!x)return null;const te=D||!D&&N;return e.jsxs(f.Box,{direction:"column",gap:"xs",paddingBlock:(k==null?void 0:k.paddingBlock)??"sm",paddingInline:(k==null?void 0:k.paddingInline)??"md",...k,style:{...i?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...k==null?void 0:k.style},children:[x&&T(),(H||G)&&e.jsxs(f.Box,{direction:te?"row":"column",gap:"sm",justify:"space-between",align:te?"center":"flex-start",children:[H?typeof t=="string"?e.jsxs(f.Box,{direction:"row",gap:"lg",align:"center",children:[e.jsxs(f.Box,{direction:"row",gap:"sm",align:"center",children:[o&&e.jsx(F.Icon,{name:o,size:"md",color:"primary"}),e.jsx(S.Text,{variant:"h3",fontWeight:"semibold",children:t})]}),n&&e.jsx(rr.Badge,{border:!0,size:"lg",text:n,...p})]}):t:null,I()]})]})},O=()=>{if(!g||g.length===0)return null;const H=g.filter(Y=>Y.show!==!1);if(H.length===0)return null;let N=0,G=-1/0;return H.forEach((Y,te)=>{const K=Y.order??0;K>=G&&(G=K,N=te)}),H.map(({content:Y,order:te,borderBottom:K=!0,keepBottomPadding:ee=!1,paddingInline:_=!0,paddingBlock:ge=!0},fe)=>e.jsx(f.Box,{direction:"column",paddingTop:ge?"sm":"spacing-0",paddingBottom:ge&&(K||ee||fe===N)?"sm":"spacing-0",paddingInline:_?"md":"spacing-0",style:{...K?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...te!==void 0?{order:te}:{}},children:Y},`sub-header-${fe}`))},U=()=>{const H=s?B():null,N=O();return!H&&!N?null:e.jsxs(f.Box,{direction:"column",style:{...a?{position:"sticky",left:0,...d?{top:0}:{},zIndex:2,background:"var(--sa-background-primary, #ffffff)"}:{},marginBottom:N?"var(--sa-spacing-0)":"var(--sa-spacing-md)"},children:[H,N]})},V=()=>l;return e.jsxs(f.Box,{direction:"column",as:"main",...C,style:{...a?{height:"100%",minHeight:0,overflow:"auto"}:{},...(C==null?void 0:C.style)??{},...c?{}:{animation:"pageLayoutEnter 320ms cubic-bezier(0.16, 1, 0.3, 1) backwards"}},children:[U(),V()]})},Nn=r=>{const{useLocation:t}=tr(),o=t();return e.jsx(rl,{...r},o.pathname)},_n=r=>r.remountOnRouteChange?e.jsx(Nn,{...r}):e.jsx(rl,{...r}),qn=h.memo(_n),Zn={icon:"Cross",title:""},Gn=320,tl=16,ol=4,Qn=8,ll=h.forwardRef(({onHide:r,show:t,withBlur:o=!1,style:n,children:l,closeButton:s=Zn,paddingHorizontal:i=!0,width:c,minWidth:a,maxWidth:d,hideBackdrop:g=!1,title:b,headerAction:p,header:C=!0,widthPresets:k,resizable:D=!0,resizeMin:z=Gn,resizeMax:A,onWidthChange:L},x)=>{const I=!ke.useMediaQuery("md"),T=c??d??a??"357px",B=k??[],O=B.length>1,[U,V]=h.useState(()=>{const ie=B.indexOf(T);return ie>=0?ie:0}),[H,N]=h.useState(null),[G,Y]=h.useState(!1),[te,K]=h.useState(!1),ee=h.useRef(null),_=ie=>{ee.current=ie,typeof x=="function"?x(ie):x&&(x.current=ie)},ge=O?B[U]:T,fe=H!=null?`${H}px`:ge,Fe=D&&!I,qe=U===B.length-1,Be=()=>{const ie=(U+1)%B.length;N(null),V(ie),L==null||L(B[ie])},ve=h.useCallback(ie=>{const de=A??window.innerWidth;return Math.min(Math.max(ie,z),de)},[z,A]),Ce=h.useRef(null),Ae=ie=>{if(!Fe)return;ie.preventDefault();const de=ie.currentTarget;de.setPointerCapture(ie.pointerId),Y(!0);const pe=document.body.style.cursor,we=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let Ie=null;const sr=P=>{const $=ve(window.innerWidth-P.clientX);Ce.current=$,Ie==null&&(Ie=window.requestAnimationFrame(()=>{Ie=null,Ce.current!=null&&N(Ce.current)}))},ir=P=>{Ie!=null&&window.cancelAnimationFrame(Ie),Ce.current!=null&&N(Ce.current),de.releasePointerCapture(P.pointerId),de.removeEventListener("pointermove",sr),de.removeEventListener("pointerup",ir),de.removeEventListener("pointercancel",ir),document.body.style.cursor=pe,document.body.style.userSelect=we,Y(!1),Ce.current!=null&&(L==null||L(`${Ce.current}px`))};de.addEventListener("pointermove",sr),de.addEventListener("pointerup",ir),de.addEventListener("pointercancel",ir)},Ze=ie=>{var Ie;if(!Fe||ie.key!=="ArrowLeft"&&ie.key!=="ArrowRight")return;ie.preventDefault();const de=ie.key==="ArrowLeft"?tl:-tl,pe=H??((Ie=ee.current)==null?void 0:Ie.offsetWidth)??z,we=ve(pe+de);N(we),L==null||L(`${we}px`)},He=()=>{Fe&&(N(null),L==null||L(ge))};return e.jsx(Ur.Drawer,{blur:o,isShow:t,position:"right",onHide:r,ref:_,size:fe,style:n,flush:!0,radius:"none",hideBackdrop:g,children:e.jsxs(f.Box,{direction:"column",height:"height-full",children:[Fe?e.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Ubah lebar panel",tabIndex:0,onPointerDown:Ae,onKeyDown:Ze,onDoubleClick:He,title:"Tarik untuk mengubah lebar — klik dua kali untuk reset",onPointerEnter:()=>K(!0),onPointerLeave:()=>K(!1),style:{position:"absolute",left:0,top:0,bottom:0,width:Qn,cursor:"col-resize",zIndex:1,background:G||te?`linear-gradient(to right, var(--sa-border-brand, var(--sa-border-subtle)) 0 ${ol}px, transparent ${ol}px)`:"transparent",transition:"background 0.15s",touchAction:"none"}}):null,C?e.jsxs(f.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(f.Box,{direction:"row",align:"center",gap:"sm",overflow:"overflow-hidden",children:typeof b=="string"?e.jsx(S.Text,{fontSize:"md",fontWeight:"bold",children:b}):b}),e.jsxs(f.Box,{direction:"row",align:"center",gap:"sm",flexShrink:"0",children:[p,O?e.jsx(j.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:Be,"aria-label":qe?"Kecilkan panel":"Lebarkan panel",iconRight:e.jsx(F.Icon,{name:qe?"ChevronRight":"ChevronLeft"})}):null,s?e.jsx(j.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:r,"aria-label":s.title||"Tutup",iconRight:e.jsx(F.Icon,{name:s.icon}),children:s.title||void 0}):null]})]}):null,e.jsx(f.Box,{direction:"column",paddingBlock:"md",paddingInline:i?"md":"spacing-0",overflow:"overflow-y-auto",style:{flex:1,minHeight:0},children:l})]})})}),jt=h.memo(({children:r,borderBottom:t=!0,padding:o=!0})=>{const n=ke.useMediaQuery("lg");return e.jsx(f.Box,{direction:"column",padding:o?"md":"spacing-0",paddingLeft:o?"md":"spacing-0",paddingRight:o?"md":"spacing-0",style:t?{borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:r})}),Nt=h.memo(({children:r,borderTop:t=!0,padding:o=!0})=>{const n=ke.useMediaQuery("lg");return e.jsx(f.Box,{direction:"column",padding:o?"md":"spacing-0",paddingLeft:o?"md":"spacing-0",paddingRight:o?"md":"spacing-0",style:t?{borderTop:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:r})}),Un=h.memo(({children:r,...t})=>e.jsx(f.Box,{direction:"column",padding:"md",paddingLeft:"md",paddingRight:"md",gap:"md",...t,children:r})),Yn=h.memo(({children:r,title:t,titleTag:o,action:n,header:l,footer:s,actionContainer:i,containerProps:c,bodyProps:a,headerProps:d={borderBottom:!0},footerProps:g={borderTop:!0},variantTag:b="info"})=>{const p=ke.useMediaQuery("lg"),C=()=>o?e.jsxs(f.Box,{direction:"row",gap:"sm",align:"center",children:[e.jsx(S.Text,{fontWeight:"medium",children:t}),e.jsx(rr.Badges,{border:!0,text:o,variant:b})]}):e.jsx(S.Text,{fontWeight:"medium",children:t}),k=()=>l||e.jsxs(f.Box,{direction:"row",justify:"space-between",align:"flex-start",gap:"md",children:[e.jsx(f.Box,{direction:"column",children:t?C():null}),e.jsx(f.Box,{direction:"column",style:p?{width:"100%",maxWidth:"19.313rem"}:{flex:1},...i,children:n??null})]}),D=!!(l||t||n);return e.jsxs(f.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:[l!==null&&D?e.jsx(jt,{...d,children:k()}):null,e.jsx(Un,{...a,children:r}),s?e.jsx(Nt,{...g,children:s}):null]})}),Re={H1:r=>e.jsx(S.Text,{variant:"h1",children:r.children,...r.props}),H2:r=>e.jsx(S.Text,{variant:"h2",children:r.children,...r.props}),H3:r=>e.jsx(S.Text,{variant:"h3",children:r.children,...r.props}),H4:r=>e.jsx(S.Text,{variant:"h4",children:r.children,...r.props}),H5:r=>e.jsx(S.Text,{variant:"h5",children:r.children,...r.props}),H6:r=>e.jsx(S.Text,{variant:"h6",children:r.children,...r.props}),SubH1:r=>e.jsx(S.Text,{variant:"sub-h1",children:r.children,...r.props}),SubH2:r=>e.jsx(S.Text,{variant:"sub-h2",children:r.children,...r.props}),SubH3:r=>e.jsx(S.Text,{variant:"sub-h3",children:r.children,...r.props}),Body1:r=>e.jsx(S.Text,{variant:"body-1",children:r.children,...r.props}),Body2:r=>e.jsx(S.Text,{variant:"body-2",children:r.children,...r.props}),Body3:r=>e.jsx(S.Text,{variant:"body-3",children:r.children,...r.props})},_e=()=>{const{useSearchParams:r,useParams:t,useLocation:o}=tr(),[n,l]=r(),s=Ir.searchParamsToObject(n.toString()),i=t(),c=o(),a=i.id;return{setSearchParams:l,searchParams:n,searchQueries:s,isHasQuery:(C,k)=>n.has(C)&&n.get(C)===k,getQueryParam:C=>n.get(C),getRouteParam:C=>i[C],params:i,location:c,id:a,hasId:!!a}},nl=r=>JSON.stringify(r),sl=r=>JSON.stringify(r),il=r=>JSON.stringify(r),cl=r=>JSON.stringify(r),Xn=r=>r,Jn=r=>JSON.stringify(r),or=r=>{if(typeof r!="string"||r==="")return{};try{const t=JSON.parse(r);return!t||typeof t!="object"||Array.isArray(t)?{}:t}catch{return{}}},lr=r=>{if(!(typeof r!="string"||r===""))try{return JSON.parse(r)}catch{return}},Vr=({value:r,name:t,type:o,withSearchParam:n=!0,setSearchParams:l,searchQueries:s,dropdownSearchKey:i,filterKey:c="filter",pageKey:a="page"})=>{if(n){let d;switch(o){case"search":d=Xn(r);break;case"dropdown":case"dropdown-multiple":d=nl(r);break;case"radio":d=sl(r);break;case"date-range":d=il(r);break;case"advanced-date-range":d=Jn(r);break;case"date":d=cl(r);break;default:d=r;break}if(typeof d<"u"){const g={...or(s[c]),[t]:d},b={...s};i&&typeof i=="string"&&delete b[i],delete b[a];const p={...b,[c]:JSON.stringify(g)},C=new URLSearchParams(s).toString(),k=new URLSearchParams(p).toString();if(C===k)return;l(p)}}},Kr=({name:r,filterKey:t="filter",searchParams:o,get:n})=>{var c,a,d,g;const l=o.get(t)||void 0,s=l&&typeof l=="string"?or(l):void 0,i=s?s[r]:void 0;return n==="label"&&i?(a=(c=lr(i))==null?void 0:c[0])==null?void 0:a.label:n==="value"&&i?(g=(d=lr(i))==null?void 0:d[0])==null?void 0:g.value:i},al=({name:r,filterKey:t="filter",searchParams:o,get:n})=>{var c,a;const l=o.get(t)||void 0,s=l&&typeof l=="string"?or(l):void 0,i=s?s[r]:void 0;return n==="label"&&i?(c=lr(i))==null?void 0:c.map(d=>d.label):n==="value"&&i?(a=lr(i))==null?void 0:a.map(d=>d.value):n==="array"&&i?lr(i):i},$n=({name:r,filterKey:t="filter",searchParams:o,get:n})=>{var c,a,d;const l=o.get(t)||void 0,s=l&&typeof l=="string"?or(l):void 0,i=s?s[r]:void 0;return n==="id"&&i?(c=lr(i))==null?void 0:c.id:n==="label"&&i?(a=lr(i))==null?void 0:a.label:n==="value"&&i?(d=lr(i))==null?void 0:d.value:i},Rr=(r,t,o)=>{const n=t.get(o||"filter")||void 0,l=n&&typeof n=="string"?or(n):void 0;return l?l[r]:void 0},Kn=({name:r,filterKey:t="filter",searchParams:o})=>{var i,c;const n=o.get(t||"filter")||void 0,l=n&&typeof n=="string"?or(n):void 0,s=l?l[r]:void 0;return{start:s?(i=lr(s))==null?void 0:i.from:void 0,end:s?(c=lr(s))==null?void 0:c.to:void 0}},dl=({name:r,filterKey:t="filter",searchParams:o})=>{const n=o.get(t||"filter")||void 0,l=n&&typeof n=="string"?or(n):void 0,s=l?l[r]:void 0;return s?lr(s):void 0},Rn=(r,{filterKey:t="filter",perPageKey:o="perPage",pageKey:n="page"})=>{const l=r.get(t)||void 0,s=r.get(o)||void 0,i=r.get(n)||void 0;return!!l||!!s||!!i},hl=({isOpen:r,onClose:t,filterKey:o,pageKey:n,filters:l})=>{const{searchParams:s,setSearchParams:i,searchQueries:c}=_e(),[a,d]=h.useState({}),g=()=>{s.delete(o||"filter"),i(s)},b=(p,C)=>{switch(p.type){case"radio":{const{show:k=!0}=p;return k&&e.jsx(f.Box,{direction:"column",children:e.jsx(f.Box,{direction:"column",children:p.title})},C)}case"dropdown":{const{show:k=!0}=p;return k&&e.jsx(f.Box,{direction:"column",children:e.jsx(f.Box,{direction:"column",children:p.title})},C)}case"date-range":return e.jsx(f.Box,{direction:"column",children:e.jsx(f.Box,{direction:"column",children:p.title})},C);case"date":return e.jsx(f.Box,{direction:"column",children:e.jsx(f.Box,{direction:"column",children:p.title})},C);case"dropdown-multiple":{const{show:k=!0}=p;return k&&e.jsx(f.Box,{direction:"column",children:e.jsx(f.Box,{direction:"column",children:p.title})},C)}default:return null}};return e.jsx(ll,{onHide:t,show:r||!1,children:e.jsxs(f.Box,{direction:"column",gap:"md",children:[e.jsxs(ae.Flex,{direction:"row",justify:"space-between",align:"center",children:[e.jsx(f.Box,{direction:"column",children:"Filter"}),e.jsx(f.Box,{direction:"column",style:{cursor:"pointer"},onClick:g,children:"Reset"})]}),l==null?void 0:l.map((p,C)=>b(p,C))]})})},fl=({searchKey:r="q",statusKey:t="status",searchPlaceholder:o="Search",searchHighlightPlaceholder:n,extendedFilter:l,showSearchFilter:s=!0,showStatusFilter:i=!0,filterKey:c="filter",pageKey:a="page",customWidthSearch:d,handleOnReset:g,filterConfigs:b,buttonToggleProps:p,position:C="right",titleSearchLabel:k="Work Order",withTitleLabels:D=!1})=>{const A=(p==null?void 0:p.isShowLabel)??!0,[L,x]=h.useState(!1),[m,I]=h.useState(0),T=()=>{I(_=>_+1)},{searchParams:B,setSearchParams:O,getQueryParam:U}=_e(),V=Ir.searchParamsToObject(B.toString()),H=Rr(r,B,c)||"",[N,G]=h.useState(H),Y=U(c),K=!!(Y&&!(()=>{if(Y)try{const _=JSON.parse(Y);return Object.keys(_).length===1&&_[r]===""}catch(_){console.error("Filter parameter is not a valid JSON:",_)}return!1})()),ee=ke.useMediaQuery("md");return h.useEffect(()=>{G(H)},[H]),h.useEffect(()=>{if(N===H)return;const _=window.setTimeout(()=>{Vr({value:N,name:r,type:"search",searchQueries:V,setSearchParams:O,filterKey:c,pageKey:a})},350);return()=>{window.clearTimeout(_)}},[N,H,r,V,O,c,a]),e.jsxs(ae.Flex,{gap:"md",style:{flexDirection:ee&&C==="left"?"row":ee&&C==="right"?"row-reverse":"column"},align:"flex-end",children:[K&&e.jsx(f.Box,{direction:"column",justify:"flex-end",children:e.jsx(j.Button,{onClick:()=>{const _=new URLSearchParams(B);_.delete(c),O(_),G(""),T(),g&&g()},variant:"outline",tone:"neutral",children:e.jsx(S.Text,{color:"error",fontWeight:"semibold",children:"Reset"})})}),l==null?void 0:l.map(({minWidth:_,content:ge,title:fe,onClickContainer:Fe},qe)=>e.jsxs(f.Box,{direction:"column",gap:"sm",onClick:Fe,style:{minWidth:_},children:[fe&&e.jsx(Re.SubH3,{children:fe}),ge]},`extended-filter-${qe}-${m}`)),!!(b!=null&&b.length)&&e.jsx(j.Button,{primary:K,secondary:!K,iconLeft:e.jsx(F.Icon,{size:"sm",name:(p==null?void 0:p.icon)||"FilterHorizontal",style:{color:Y?"var(--sa-background-brand, #04254f)":"var(--sa-text-primary, #292a2e)"}}),fullWidth:!ee,onClick:()=>x(!0),children:A?"Filter":void 0}),i&&e.jsxs(f.Box,{direction:"column",gap:"sm",style:{minWidth:"126px"},children:[D&&e.jsx(Re.SubH3,{children:"Status"}),e.jsx(Fr.Dropdown,{dropdownLists:[{label:"Active",value:"active"},{label:"InActive",value:"inactive"}],defaultValue:Kr({get:"value",name:t,searchParams:B,filterKey:c})?[{label:Kr({get:"value",name:t,searchParams:B,filterKey:c})==="active"?"Active":"InActive",value:Kr({get:"value",name:t,searchParams:B,filterKey:c})}]:[],onChange:_=>Vr({value:_,name:t,type:"dropdown",searchQueries:V,setSearchParams:O,filterKey:c}),placeholder:D?"All":"All Status"},m)]}),s&&e.jsxs(f.Box,{direction:"column",gap:"sm",style:{width:d&&ee?d:ee?"310px":""},children:[D&&e.jsxs(Re.SubH3,{children:["Search for ",k]}),e.jsx(hr.Input,{placeholder:o,leftIcon:e.jsx(F.Icon,{name:"Search",width:20,height:20}),onChange:_=>G(_.target.value),value:N,fullWidth:!0},m+1+c)]}),e.jsx(hl,{isOpen:L,onClose:()=>x(!1),filterKey:c,filters:b,pageKey:a})]})},es=r=>r==="checkbox-multiple"?"dropdown-multiple":r==="radio"?"dropdown":r==="date-compact"?"date":r==="text"?"search":r;function _t({configs:r,filterKey:t="filter",activeFilterKey:o="filters",pageKey:n="page",searchKey:l="q"}){const{searchParams:s,setSearchParams:i,searchQueries:c}=_e(),a=h.useMemo(()=>Object.fromEntries(r.map(m=>[m.key,m])),[r]),d=h.useMemo(()=>{const m=(s.get(o)||"").split(",").map(T=>T.trim()).filter(Boolean),I=Object.keys(or(s.get(t))).filter(T=>T!==l);return r.map(T=>T.key).filter(T=>{const B=a[T];return(B==null?void 0:B.locked)||m.includes(T)||I.includes(T)})},[s,o,t,l,r,a]),g=h.useCallback(m=>or(m[t]),[t]),b=h.useCallback(m=>{const I={...c};m.length?I[o]=m.join(","):delete I[o],i(I)},[c,o,i]),p=h.useCallback(m=>{d.includes(m)||b([...d,m])},[d,b]),C=h.useCallback(m=>{var O;if((O=a[m])!=null&&O.locked)return;const I={...c},T=d.filter(U=>U!==m);T.length?I[o]=T.join(","):delete I[o];const B=g(I);m in B&&(delete B[m],Object.keys(B).length?I[t]=JSON.stringify(B):delete I[t]),delete I[n],i(I)},[c,d,o,t,n,g,i,a]),k=h.useCallback(m=>d.includes(m)?C(m):p(m),[d,p,C]),D=h.useCallback(m=>{switch(m.type){case"dropdown":case"dropdown-multiple":case"checkbox-multiple":case"radio":return al({name:m.key,get:"array",searchParams:s,filterKey:t})||[];case"date":{const I=dl({name:m.key,searchParams:s,filterKey:t});return I?new Date(I):void 0}case"date-compact":{const T=g(Object.fromEntries(s.entries()))[m.key];return T&&typeof T=="object"?T:void 0}case"text":{const T=g(Object.fromEntries(s.entries()))[m.key];return typeof T=="string"?T:void 0}default:return}},[s,t,g]),z=h.useCallback((m,I)=>{if(m.type==="date-compact"||m.type==="text"){const T={...c},B=g(T);I==null||I===""?delete B[m.key]:B[m.key]=I,Object.keys(B).length?T[t]=JSON.stringify(B):delete T[t],delete T[n],i(T);return}Vr({value:I,name:m.key,type:es(m.type),searchQueries:c,setSearchParams:i,filterKey:t,pageKey:n})},[c,i,t,n,g]),A=h.useCallback(m=>{const I={...c},T=g(I);m in T&&(delete T[m],Object.keys(T).length?I[t]=JSON.stringify(T):delete I[t]),delete I[n],i(I)},[c,t,n,g,i]),L=h.useCallback(()=>{const m={...c};delete m[t],delete m[o],delete m[n],i(m)},[c,t,o,n,i]),x=d.length>0;return{activeKeys:d,configByKey:a,hasActiveFilter:x,addFilter:p,removeFilter:C,toggleFilter:k,getValue:D,setValue:z,clearValue:A,clearAll:L}}const qt={get(r){return Hr.storage.get(r)??null},set(r,t){Hr.storage.save(r,t)},remove(r){Hr.storage.delete(r)}},Lr={columns:r=>`filterbar:colprefs:${r}`,savedViews:r=>`filterbar:views:${r}`,lastState:r=>`filterbar:last:${r}`,perPage:r=>`filterbar:perpage:${r}`,tableSort:r=>`tablelayout:sort:${r}`},et=(r,t)=>{const o=new Set(t.map(s=>s.key)),n=r.order.filter(s=>o.has(s));for(const s of t)n.includes(s.key)||n.push(s.key);const l=r.hidden.filter(s=>o.has(s));return{order:n,hidden:l}};function rs({columns:r,scopeId:t,storage:o,onColumnsChange:n,value:l}){const s=h.useMemo(()=>({order:r.map(B=>B.key),hidden:[]}),[r]),i=t?Lr.columns(t):void 0,c=(B,O)=>et({order:B.order??O,hidden:B.hidden??[]},r),[a,d]=h.useState(()=>{if(l&&(l.order||l.hidden))return c(l,r.map(B=>B.key));if(i){const B=o.get(i);if(B&&Array.isArray(B.order))return et(B,r)}return s}),g=r.map(B=>B.key).join("|");h.useEffect(()=>d(B=>et(B,r)),[g]);const b=h.useRef(a);b.current=a;const p=l?`${(l.order??[]).join("|")}~${(l.hidden??[]).join("|")}`:null,C=h.useRef(p);h.useEffect(()=>{if(p==null||C.current===p)return;C.current=p;const B=b.current,O=c(l,B.order);O.order.join("|")===B.order.join("|")&&O.hidden.join("|")===B.hidden.join("|")||(d(O),i&&o.set(i,O))},[p,g]);const k=h.useRef(!1);h.useEffect(()=>{k.current||(k.current=!0,n==null||n(a))},[]);const D=h.useCallback(B=>{d(B),i&&o.set(i,B),n==null||n(B)},[i,o,n]),z=h.useMemo(()=>{const B=new Map(r.map(O=>[O.key,O]));return a.order.filter(O=>B.has(O)).map(O=>({...B.get(O),visible:!a.hidden.includes(O)}))},[a,r]),A=h.useCallback(B=>{const O=a.hidden.includes(B)?a.hidden.filter(U=>U!==B):[...a.hidden,B];D({...a,hidden:O})},[a,D]),L=h.useCallback((B,O)=>{if(B===O)return;const U=[...a.order],[V]=U.splice(B,1);U.splice(O,0,V),D({...a,order:U})},[a,D]),x=h.useCallback(B=>{D({...a,hidden:B?r.filter(O=>!O.locked).map(O=>O.key):[]})},[a,r,D]),m=h.useCallback(()=>D(s),[D,s]),I=h.useCallback(B=>D(et(B,r)),[D,r]),T=a.hidden.length===0;return{state:a,orderedColumns:z,allVisible:T,toggleVisibility:A,reorder:L,setAllHidden:x,reset:m,applyState:I}}function ts({scopeId:r,storage:t,snapshotKeys:o,pageKey:n="page",getColumns:l,applyColumns:s}){const{searchParams:i,setSearchParams:c}=_e(),a=r?Lr.savedViews(r):void 0,[d,g]=h.useState(()=>a?t.get(a)||[]:[]),b=h.useCallback(D=>{g(D),a&&t.set(a,D)},[a]),p=h.useCallback(D=>{const z=D.trim();if(!z)return;const A={};o.forEach(x=>{const m=i.get(x);m!=null&&(A[x]=m)});const L={id:`${Date.now()}`,name:z,query:A,columns:l==null?void 0:l(),createdAt:Date.now()};b([...d,L])},[o,i,l,b,d]),C=h.useCallback(D=>b(d.filter(z=>z.id!==D)),[b,d]),k=h.useCallback(D=>{const z=Object.fromEntries(i.entries());o.forEach(A=>delete z[A]),Object.assign(z,D.query),delete z[n],c(z),D.columns&&(s==null||s(D.columns))},[i,o,n,c,s]);return{enabled:!!a,views:d,saveView:p,deleteView:C,applyView:k}}function os(r,t){const o=or(r);return delete o[t],Object.keys(o).length>0?JSON.stringify(o):void 0}function ul(r,t,o){const n=r[t];if(n==null)return;const l=os(n,o);l===void 0?delete r[t]:r[t]=l}function ls({scopeId:r,storage:t,snapshotKeys:o,enabled:n=!0,filterKey:l="filter",searchKey:s="q",persistSearch:i=!0}){const{searchParams:c}=_e(),a=r&&n?Lr.lastState(r):void 0,d=h.useRef(a),g=h.useRef(!1);h.useEffect(()=>{if(!a){d.current=a;return}if(d.current!==a){d.current=a,g.current=!1;return}const C={};if(o.forEach(k=>{const D=c.get(k);D!=null&&(C[k]=D)}),i||ul(C,l,s),Object.keys(C).length===0){g.current&&t.remove(a);return}g.current=!0,t.set(a,C)},[c,a,o,t,i,l,s]);const b=h.useCallback(()=>{if(!a)return null;const C=t.get(a);if(!C||typeof C!="object"||Array.isArray(C)||Object.keys(C).length===0)return null;const k=C[l];return k!=null&&Object.keys(or(k)).length===0&&delete C[l],i||ul(C,l,s),Object.keys(C).length>0?C:null},[a,t,i,l,s]),p=h.useCallback(()=>{a&&t.remove(a)},[a,t]);return{enabled:!!a,read:b,clear:p}}function ns({scopeId:r,storage:t,perPageKey:o,pageSizeOptions:n,enabled:l=!0}){const{searchParams:s}=_e(),i=r&&l?Lr.perPage(r):void 0,c=s.toString(),a=h.useRef(i);h.useEffect(()=>{if(!i){a.current=i;return}if(a.current!==i){a.current=i;return}const b=s.get(o);if(!b)return;const p=Number(b);!Number.isFinite(p)||p<=0||t.set(i,p)},[c,i,o,t]);const d=h.useCallback(()=>{if(!i)return null;const b=t.get(i);if(b==null)return null;const p=Number(b);return!Number.isFinite(p)||p<=0||n&&!n.includes(p)?null:String(p)},[i,t,n]),g=h.useCallback(()=>{i&&t.remove(i)},[i,t]);return{enabled:!!i,read:d,clear:g}}let Zt={},Gt=!1,Qt=null;const ss=(r,t)=>{Object.assign(Zt,r),Qt=t,!Gt&&(Gt=!0,queueMicrotask(()=>{const o=Zt,n=Qt;Zt={},Gt=!1,Qt=null,!(!n||Object.keys(o).length===0)&&n(l=>{const s=new URLSearchParams(l);return Object.entries(o).forEach(([i,c])=>s.set(i,c)),s},{replace:!0})}))};function is({enabled:r,snapshotKeys:t,perPageKey:o,readSnapshot:n,readPerPage:l}){const{searchParams:s,setSearchParams:i,location:c}=_e(),a=h.useRef(null);h.useEffect(()=>{if(!r||a.current===c.pathname)return;a.current=c.pathname;const d={};if(!s.has(o)){const g=l();g&&(d[o]=g)}if(!t.some(g=>s.has(g))){const g=n();g&&Object.assign(d,g)}Object.keys(d).length!==0&&ss(d,i)},[c.pathname,r])}const cs=({configs:r,activeKeys:t,onToggle:o,hasActiveFilter:n,onReset:l})=>r.length?e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:n?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"FilterHorizontal"}),"aria-label":"Add filter"})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{minWidth:260},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:"Add Filter"}),n&&l&&e.jsx(j.Button,{variant:"link",tone:"brand",size:"xs",onClick:l,children:"Reset"})]}),children:r.map(s=>e.jsx(W.MenuItem,{selected:s.locked||t.includes(s.key),disabled:s.locked,closeOnSelect:!1,startIcon:s.icon??void 0,onClick:()=>{s.locked||o(s.key)},children:s.label},s.key))})})]}):null,jr=({onClear:r,onRemove:t})=>e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"link",tone:"neutral",size:"xs",iconLeft:e.jsx(F.Icon,{name:"MenuHorizontal"}),"aria-label":"Filter actions"})}),e.jsx(W.MenuLists,{children:e.jsxs(W.MenuBody,{style:{width:180},children:[e.jsx(W.MenuItem,{startIcon:e.jsx(F.Icon,{name:"CrossCircle"}),onClick:r,children:"Clear value"}),t&&e.jsx(W.MenuItem,{intent:"danger",startIcon:e.jsx(F.Icon,{name:"Trash1"}),onClick:t,children:"Remove filter"})]})})]}),as=r=>{const t=new Date(r);return t.setHours(0,0,0,0),t},gl=(r,t,o)=>{const n=new Date(r);return o==="day"?n.setDate(n.getDate()+t):o==="week"?n.setDate(n.getDate()+t*7):o==="month"?n.setMonth(n.getMonth()+t):n.setFullYear(n.getFullYear()+t),n},yl=r=>{const t=as(new Date);if(r.direction==="this"){const n=new Date(t),l=new Date(t);return r.period==="week"?(n.setDate(t.getDate()-t.getDay()),l.setDate(n.getDate()+6)):r.period==="month"?(n.setDate(1),l.setMonth(l.getMonth()+1,0)):r.period==="year"&&(n.setMonth(0,1),l.setMonth(11,31)),{from:n,to:l}}const o=r.count??1;return r.direction==="past"?{from:gl(t,-o,r.period),to:t}:{from:t,to:gl(t,o,r.period)}},pl=24,bl=r=>r.length>pl?`${r.slice(0,pl)}...`:r,vl=r=>r.toLocaleDateString(void 0,{day:"2-digit",month:"short",year:"numeric"}),Ut=(r,t="days")=>t==="months"?r.toLocaleDateString(void 0,{month:"short",year:"numeric"}):t==="years"?String(r.getFullYear()):vl(r),rt={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"},Cl=["is","is-before","is-after","is-on-or-before","is-on-or-after","is-between","is-relative-to-today","is-empty","is-not-empty"],Yt={past:"Past",next:"Next",this:"This"},ds=["day","week","month","year"],hs=["past","next","this"],fs=r=>r.field.type==="date-compact"?e.jsx(ys,{field:r.field,value:r.value,onChange:r.onChange,onClear:r.onClear,onRemove:r.onRemove}):e.jsx(us,{field:r.field,value:r.value,onChange:r.onChange,onClear:r.onClear,onRemove:r.onRemove}),us=({field:r,value:t,onChange:o,onClear:n,onRemove:l})=>{const s=t?vl(new Date(t)):null,i=!!s,c=i?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[r.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:bl(s)})]}):r.label;return e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:i?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:i?e.jsx(F.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:c})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:260},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(jr,{onClear:n,onRemove:l})]}),children:e.jsx(pr.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:r.mode,value:t,onChange:a=>a==null?n():o(a),withPadding:!1})})})]})},gs=(r,t="days")=>{switch(r.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return r.date?`${rt[r.op]} ${Ut(new Date(r.date),t)}`:null;case"is-between":return r.from&&r.to?`${Ut(new Date(r.from),t)} - ${Ut(new Date(r.to),t)}`:null;case"is-relative-to-today":{const o=r.relative;if(!o)return null;if(o.direction==="this")return`This ${o.period}`;const n=o.count??1,l=n===1?o.period:`${o.period}s`;return`${Yt[o.direction]} ${n} ${l}`}case"is-empty":case"is-not-empty":return rt[r.op];default:return null}},ys=({field:r,value:t,onChange:o,onClear:n,onRemove:l})=>{const s=r.ops&&r.ops.length>0?r.ops:Cl,i=r.defaultOp&&s.includes(r.defaultOp)?r.defaultOp:s[0],c=r.mode??"days",a=(t==null?void 0:t.op)??i,d=t?gs(t,c):null,g=!!d,b=g?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[r.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:bl(d)})]}):r.label,p=C=>{if(C!==a){if(C==="is-empty"||C==="is-not-empty"){o({op:C});return}if(C==="is-relative-to-today"){o({op:C,relative:(t==null?void 0:t.relative)??{direction:"past",count:1,period:"week"}});return}if(C==="is-between"){o({op:C,from:t==null?void 0:t.from,to:t==null?void 0:t.to});return}o({op:C,date:t==null?void 0:t.date})}};return e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:g?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:g?e.jsx(F.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:b})}),e.jsxs(W.MenuLists,{children:[e.jsx(W.MenuBody,{style:{width:320},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",gap:"xs",fullWidth:!0,children:[e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",gap:"xs",style:{minWidth:0},children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(xl,{op:a,ops:s,onChange:p})]}),e.jsx(jr,{onClear:n,onRemove:l})]}),children:e.jsx(wl,{value:t,op:a,mode:c,onChange:o})}),a==="is-relative-to-today"&&e.jsx(W.MenuFooter,{children:e.jsx(S.Text,{fontSize:"xs",color:"subtlest",children:"Filter will update with the current date"})})]})]})},xl=({op:r,ops:t,onChange:o})=>e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"link",tone:"neutral",size:"xs",iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:rt[r]})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:200},children:t.map(n=>e.jsx(W.MenuItem,{selected:r===n,onClick:()=>o(n),endIcon:r===n?e.jsx(F.Icon,{name:"Check"}):void 0,children:rt[n]},n))})})]}),wl=({value:r,op:t,mode:o="days",onChange:n})=>{if(t==="is-empty"||t==="is-not-empty")return e.jsx(f.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(S.Text,{fontSize:"xs",color:"subtlest",children:"No further input required."})});if(t==="is-between"){const l=r!=null&&r.from||r!=null&&r.to?{from:r!=null&&r.from?new Date(r.from):null,to:r!=null&&r.to?new Date(r.to):null}:void 0;return e.jsx(pr.StarasiaDate,{size:"sm",input:!1,clearable:!0,rangedDate:!0,filter:o,value:l,onChange:s=>{if(s==null){n({op:t});return}if(typeof s=="object"&&s!==null&&"from"in s&&"to"in s){let{from:i,to:c}=s;if(!i&&c&&(i=c,c=null),!i&&!c){n({op:t});return}n({op:t,from:i?i.toISOString():void 0,to:c?c.toISOString():void 0})}},withPadding:!1},`range-${o}`)}return t==="is-relative-to-today"?e.jsx(ps,{value:r==null?void 0:r.relative,onChange:l=>n({op:t,relative:l})}):e.jsx(pr.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:o,value:r!=null&&r.date?new Date(r.date):void 0,onChange:l=>{if(l==null){n({op:t});return}l instanceof Date&&n({op:t,date:l.toISOString()})},withPadding:!1},`single-${o}`)},ps=({value:r,onChange:t})=>{const o=(r==null?void 0:r.direction)??"past",n=(r==null?void 0:r.count)??1,l=(r==null?void 0:r.period)??"week",s=o!=="this",i=yl({direction:o,count:n,period:l});return e.jsxs(f.Box,{direction:"column",display:"flex",gap:"sm",children:[e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:Yt[o]})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:140},children:hs.map(c=>e.jsx(W.MenuItem,{selected:o===c,endIcon:o===c?e.jsx(F.Icon,{name:"Check"}):void 0,onClick:()=>t(c==="this"?{direction:c,period:l}:{direction:c,count:n,period:l}),children:Yt[c]},c))})})]}),s&&e.jsx(hr.Input,{type:"number",size:"sm",min:1,clearable:!1,value:n,onChange:c=>{const a=Number(c.target.value);t({direction:o,count:Number.isFinite(a)&&a>0?a:1,period:l})},style:{width:72}}),e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:l})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:140},children:ds.map(c=>e.jsx(W.MenuItem,{selected:l===c,endIcon:l===c?e.jsx(F.Icon,{name:"Check"}):void 0,onClick:()=>t(o==="this"?{direction:o,period:c}:{direction:o,count:n,period:c}),children:c},c))})})]})]}),e.jsx(pr.StarasiaDate,{size:"sm",input:!1,disabled:!0,rangedDate:!0,value:i,onChange:()=>{},withPadding:!1},"relative-preview")]})},Dl=18,bs=r=>r.length>Dl?`${r.slice(0,Dl)}...`:r,vs=({field:r,value:t,onChange:o,onClear:n,onRemove:l})=>{const s=r.type==="dropdown-multiple",i=t.length,c=r.searchable!==!1,[a,d]=h.useState(""),g=r.options,b=typeof r.onSearch=="function",p=(()=>{if(b)return g;const A=a.trim().toLowerCase();return A?g.filter(L=>L.label.toLowerCase().includes(A)):g})(),C=A=>t.some(L=>L.value===A.value),k=A=>{if(!s){o([{label:A.label,value:A.value}]),d("");return}o(C(A)?t.filter(L=>L.value!==A.value):[...t,{label:A.label,value:A.value}])},D=A=>{var L;d(A),(L=r.onSearch)==null||L.call(r,A)},z=i===0?r.label:e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[r.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:i===1?bs(t[0].label):`${i} Selected`})]});return e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:i>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:i>0?e.jsx(F.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:z})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:260},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(jr,{onClear:n,onRemove:l})]}),children:e.jsxs(f.Box,{direction:"column",gap:"sm",children:[c&&e.jsx(Fr.Dropdown,{size:"sm",triggerInput:!0,fullWidth:!0,hideChevronIcon:!0,clearable:!0,multiSelect:s,searchAble:!0,searchValue:a,onSearch:D,value:t,onChange:o,placeholder:`Search ${r.label.toLowerCase()}…`}),e.jsx(f.Box,{direction:"column",overflow:"overflow-y-auto",customMaxHeight:"240px",children:r.isLoading?e.jsx(f.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(S.Text,{fontSize:"xs",color:"subtlest",children:"Loading…"})}):p.length===0?e.jsx(f.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(S.Text,{fontSize:"xs",color:"subtlest",children:"No results"})}):p.map(A=>e.jsx(W.MenuItem,{closeOnSelect:!s,selected:C(A),startIcon:A.avatar,endIcon:C(A)?e.jsx(F.Icon,{name:"Check"}):void 0,description:A.description,onClick:()=>k(A),children:A.label},A.value))})]})})})]})},Sl=18,Cs=r=>r.length>Sl?`${r.slice(0,Sl)}...`:r,kl=({checked:r,indeterminate:t})=>e.jsx("span",{style:{pointerEvents:"none",display:"inline-flex"},children:e.jsx(fr.Checkbox,{size:"sm",checked:r,readOnly:!0,onChange:()=>{},variant:t?"indeterminate":"select"})}),xs=({field:r,value:t,onChange:o,onClear:n,onRemove:l})=>{const s=new Set(t.map(p=>p.value)),i=t.length,c=r.options.length>0&&r.options.every(p=>s.has(p.value)),a=i>0&&!c,d=p=>{o(s.has(p.value)?t.filter(C=>C.value!==p.value):[...t,{label:p.label,value:p.value}])},g=()=>{o(c?[]:r.options.map(p=>({label:p.label,value:p.value})))},b=i===0?r.label:e.jsxs(e.Fragment,{children:[e.jsxs(S.Text,{as:"span",fontWeight:"semibold",children:[r.label,":"]})," ",e.jsx(S.Text,{as:"span",children:i===1?Cs(t[0].label):`${i} Selected`})]});return e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:i>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:i>0?e.jsx(F.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:b})}),e.jsx(W.MenuLists,{children:e.jsxs(W.MenuBody,{style:{width:240},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(jr,{onClear:n,onRemove:l})]}),children:[e.jsx(W.MenuItem,{closeOnSelect:!1,selected:c,onClick:g,startIcon:e.jsx(kl,{checked:c||a,indeterminate:a}),children:"Select All"}),r.options.map(p=>e.jsx(W.MenuItem,{closeOnSelect:!1,selected:s.has(p.value),onClick:()=>d(p),startIcon:e.jsx(kl,{checked:s.has(p.value)}),children:p.label},p.value))]})})]})},Bl=18,ws=r=>r.length>Bl?`${r.slice(0,Bl)}...`:r,Ds=({field:r,value:t,onChange:o,onClear:n,onRemove:l})=>{const[s,i]=h.useState(t??""),c=ke.useDebounce(s,r.debounceMs??300);h.useEffect(()=>{c!==(t??"")&&o(c)},[c]),h.useEffect(()=>{i(t??"")},[t]);const a=!!t,d=a?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[r.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:ws(t)})]}):r.label;return e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:a?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:a?e.jsx(F.Icon,{name:"Search",size:"sm"}):void 0,iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),children:d})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{style:{width:260},title:e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(jr,{onClear:n,onRemove:l})]}),children:e.jsx(hr.Input,{size:"sm",fullWidth:!0,value:s,placeholder:r.placeholder??"Cari…",leftIcon:e.jsx(F.Icon,{name:"Search",width:16,height:16}),onChange:g=>i(g.target.value)})})})]})},ml=({activeKeys:r,configByKey:t,getValue:o,setValue:n,clearValue:l,removeFilter:s})=>e.jsx(e.Fragment,{children:r.map(i=>{const c=t[i];if(!c)return null;const a=o(c),d=c.locked?void 0:()=>s(i);return c.type==="date"||c.type==="date-compact"?e.jsx(fs,{field:c,value:a,onChange:g=>n(c,g),onClear:()=>l(i),onRemove:d},i):c.type==="text"?e.jsx(Ds,{field:c,value:a||"",onChange:g=>n(c,g),onClear:()=>l(i),onRemove:d},i):c.type==="checkbox-multiple"?e.jsx(xs,{field:c,value:a||[],onChange:g=>n(c,g),onClear:()=>l(i),onRemove:d},i):e.jsx(vs,{field:c,value:a||[],onChange:g=>n(c,g),onClear:()=>l(i),onRemove:d},i)})}),El=r=>`${r} Rows`,Ss=({pagination:r,pageKey:t="page",perPageKey:o="perPage",pageSizeOptions:n=[10,25,50,100],defaultPerPage:l=10,showResultCount:s=!0,showPageSize:i=!0,showPagination:c=!0})=>{var A;const{searchQueries:a,setSearchParams:d,searchParams:g}=_e(),b=g.get(o),p=b?Number(b):l,C=L=>{d({...a,[t]:String(L)})},k=L=>{d({...a,[o]:L,[t]:"1"})},D=(r==null?void 0:r.rangeStart)??(((r==null?void 0:r.currentPage)||0)>1?(((r==null?void 0:r.currentPage)||0)-1)*((r==null?void 0:r.perPage)||0)+1:1),z=(r==null?void 0:r.rangeEnd)??((r==null?void 0:r.totalCurrentPage)!==(r==null?void 0:r.perPage)?r==null?void 0:r.totalData:((r==null?void 0:r.currentPage)||1)*((r==null?void 0:r.totalCurrentPage)||0));return e.jsxs(e.Fragment,{children:[s&&e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${D}-${z} of ${((A=r==null?void 0:r.totalData)==null?void 0:A.toLocaleString())||0}`}),i&&e.jsxs(W.Menu,{position:"bottom-left",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(F.Icon,{name:"ChevronSmallDown"}),"aria-label":"Rows per page",children:El(p)})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{children:n.map(L=>e.jsx(W.MenuItem,{selected:L===p,onClick:()=>k(String(L)),children:El(L)},L))})})]}),c&&((r==null?void 0:r.totalPage)??0)>1&&e.jsx(f.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(zr.Pagination,{size:"sm",variant:"neutral",siblingCount:0,currentPage:r!=null&&r.currentPage?Number(r.currentPage):1,totalPages:Number(r==null?void 0:r.totalPage),onPageChange:C})})]})};function ks(r,t,o=!0){h.useEffect(()=>{if(!o)return;const n=l=>{var c;if(l.metaKey||l.ctrlKey||l.altKey||l.key!==r||Oe.isOverlayOpen())return;const s=l.target,i=(c=s==null?void 0:s.tagName)==null?void 0:c.toLowerCase();i==="input"||i==="textarea"||s!=null&&s.isContentEditable||(l.preventDefault(),t())};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[r,t,o])}const Bs=240,Fl=({searchKey:r="q",filterKey:t="filter",pageKey:o="page",placeholder:n="Search",shortcut:l="/",collapsible:s=!0})=>{const{searchParams:i,setSearchParams:c,searchQueries:a}=_e(),d=Rr(r,i,t)||"",[g,b]=h.useState(!s||!!d),[p,C]=h.useState(s&&!d),[k,D]=h.useState(d),z=ke.useDebounce(k,350),A=h.useRef(null);h.useEffect(()=>{D(d),d&&b(!0)},[d]),h.useEffect(()=>{g&&C(!1)},[g]),h.useEffect(()=>{z!==d&&Vr({value:z,name:r,type:"search",searchQueries:a,setSearchParams:c,filterKey:t,pageKey:o})},[z]);const L=h.useCallback(()=>{b(!0),requestAnimationFrame(()=>{var T;return(T=A.current)==null?void 0:T.focus()})},[]);ks(l,L);const x=()=>{s&&!k&&b(!1)},m=T=>{var B;s&&T.key==="Escape"&&!k&&(b(!1),(B=A.current)==null||B.blur())},I=()=>{g||C(!0)};return e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",gap:"spacing-0",children:[p&&e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"Search",size:"sm"}),"aria-label":"Search","aria-expanded":!1,onClick:L}),e.jsxs(f.Box,{onTransitionEnd:I,style:{position:"relative",width:g?Bs:0,overflow:"hidden",transition:"width 220ms ease"},children:[e.jsx(hr.Input,{ref:A,size:"sm",fullWidth:!0,value:k,placeholder:n,leftIcon:e.jsx(F.Icon,{name:"Search",width:16,height:16}),onChange:T=>D(T.target.value),onKeyDown:m,onBlur:x,tabIndex:g?0:-1}),g&&!k&&e.jsx(f.Box,{align:"center",justify:"center",borderColor:"border-subtle",borderWidth:"border",borderStyle:"border-solid",borderRadius:"rounded-xs",paddingInline:"spacing-1",customBackgroundColor:"var(--sa-background-hover, #f0f1f2)",style:{position:"absolute",right:8,top:"50%",transform:"translateY(-50%)",pointerEvents:"none",minWidth:18,height:18,display:"inline-flex"},children:e.jsx(S.Text,{fontSize:"xs",color:"subtle",children:l})})]})]})},Il=({columns:r,allVisible:t,onToggle:o,onReorder:n,onSetAllHidden:l})=>{const[s,i]=h.useState(null),[c,a]=h.useState(null),d=()=>{s!==null&&c!==null&&s!==c&&n(s,c),i(null),a(null)},g=(b,p)=>{const C=b+p;C<0||C>=r.length||n(b,C)};return e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:t?"outline":"secondary",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"Grid",size:"sm"}),"aria-label":"Customize columns"})}),e.jsx(W.MenuLists,{children:e.jsx(W.MenuBody,{children:e.jsxs(f.Box,{padding:"sm",direction:"column",customWidth:"296px",customMaxHeight:"60vh",overflow:"overflow-hidden",children:[e.jsx(S.Text,{fontWeight:"semibold",color:"primary",children:"Customize Column Table"}),e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",paddingBlock:"md",children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",children:"Show in table"}),e.jsx(j.Button,{variant:"link",tone:"info",size:"xs",onClick:()=>l(t),children:t?"Hide All":"Show All"})]}),e.jsx(f.Box,{direction:"column",overflow:"overflow-y-auto",children:r.map((b,p)=>{const C=!b.locked,k=c===p&&s!==null&&s!==p;return e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",paddingBlock:"xs",draggable:C,onDragStart:()=>C&&i(p),onDragOver:D=>{D.preventDefault(),a(p)},onDrop:d,onDragEnd:d,style:{minHeight:32,boxShadow:k?"inset 0 2px 0 0 var(--sa-background-brand, #04254f)":void 0},children:[e.jsx(f.Box,{direction:"column",as:"div",align:"center",justify:"center",role:"button",tabIndex:C?0:-1,"aria-label":`Reorder ${b.title}`,"aria-disabled":!C||void 0,color:"icon-subtlest",onKeyDown:D=>{C&&(D.key==="ArrowUp"?(D.preventDefault(),g(p,-1)):D.key==="ArrowDown"&&(D.preventDefault(),g(p,1)))},style:{display:"inline-flex",cursor:C?"grab":"default",opacity:C?1:.4},children:e.jsx(F.Icon,{name:"DragVertical",width:16,height:16})}),b.icon&&e.jsx(f.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:b.icon}),e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:b.title}),e.jsx(f.Box,{direction:"column",style:{marginLeft:"auto"},children:e.jsx(Tr.Toggle,{size:"sm",checked:b.visible,disabled:b.locked,onChange:()=>o(b.key),"aria-label":`Toggle ${b.title} column`})})]},b.key)})})]})})})]})},Ml=({views:r,onApply:t,onDelete:o,onSave:n})=>{const[l,s]=h.useState(""),i=()=>{const c=l.trim();c&&(n(c),s(""))};return e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:r.length>0?"secondary":"outline",tone:(r.length>0,"neutral"),size:"sm",iconLeft:e.jsx(F.Icon,{name:"Bookmark",size:"sm"}),"aria-label":"Saved views"})}),e.jsxs(W.MenuLists,{style:{width:"260px"},children:[e.jsx(W.MenuBody,{children:e.jsxs(f.Box,{direction:"column",padding:"xs",gap:"sm",children:[e.jsx(S.Text,{fontWeight:"semibold",color:"primary",children:"Saved Views"}),e.jsx(f.Box,{direction:"column",overflow:"overflow-y-auto",children:r.length===0?e.jsx(f.Box,{direction:"column",paddingBlock:"sm",children:e.jsx(S.Text,{fontSize:"sm",color:"subtlest",children:"No saved views yet"})}):r.map(c=>e.jsx(W.MenuItem,{startIcon:e.jsx(F.Icon,{name:"Bookmark"}),onClick:()=>t(c),endIcon:e.jsx(j.Button,{variant:"link",tone:"error",size:"sm",iconLeft:e.jsx(F.Icon,{name:"Trash2"}),"aria-label":`Delete ${c.name}`,onClick:a=>{a.stopPropagation(),o(c.id)}}),children:c.name},c.id))})]})}),e.jsx(W.MenuFooter,{children:e.jsxs(f.Box,{direction:"row",gap:"xs",children:[e.jsx(f.Box,{direction:"column",style:{flex:"1 0 0",minWidth:0},children:e.jsx(hr.Input,{size:"sm",fullWidth:!0,placeholder:"Save current view as…",value:l,onChange:c=>s(c.target.value),onKeyDown:c=>{c.key==="Enter"&&i()}})}),e.jsx(j.Button,{variant:"primary",tone:"brand",size:"sm",disabled:!l.trim(),onClick:i,children:"Save"})]})})]})]})},ms=({isOpen:r,onClose:t,configs:o,activeKeys:n,configByKey:l,hasActiveFilter:s,onToggle:i,onReset:c,getValue:a,setValue:d,clearValue:g,removeFilter:b})=>{const p=n.length;return e.jsx(Ur.Drawer,{position:"bottom",isShow:r,onHide:t,children:e.jsxs(f.Box,{direction:"column",customMaxHeight:"85vh",style:{minHeight:280},children:[e.jsxs(f.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(f.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsx(S.Text,{fontWeight:"semibold",color:"primary",children:"Filter"}),p>0&&e.jsxs(S.Text,{fontSize:"sm",color:"subtle",children:["(",p,")"]})]}),e.jsx(j.Button,{variant:"link",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"Cross"}),"aria-label":"Close filter",onClick:t})]}),e.jsxs(f.Box,{direction:"column",gap:"lg",padding:"md",overflow:"overflow-y-auto",style:{flex:"1 1 auto",minHeight:0},children:[p>0&&e.jsxs(f.Box,{direction:"column",gap:"sm",children:[e.jsx(S.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Filter aktif"}),e.jsx(f.Box,{direction:"row",display:"flex",wrap:"wrap",gap:"sm",align:"center",children:e.jsx(ml,{activeKeys:n,configByKey:l,getValue:a,setValue:d,clearValue:g,removeFilter:b})})]}),o.length>0&&e.jsxs(f.Box,{direction:"column",gap:"sm",children:[e.jsx(S.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Tambah filter"}),e.jsx(f.Box,{direction:"column",children:o.map(C=>{const k=n.includes(C.key),D=!!C.locked;return e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",paddingBlock:"sm",style:{opacity:D?.5:1,borderTop:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.08))"},children:[e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{minWidth:0},children:[C.icon&&e.jsx(f.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:C.icon}),e.jsx(S.Text,{fontSize:"sm",color:"primary",truncate:!0,children:C.label})]}),e.jsx(Tr.Toggle,{size:"sm",checked:k||D,disabled:D,onChange:()=>i(C.key),"aria-label":`Toggle ${C.label}`})]},C.key)})})]})]}),e.jsxs(f.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(f.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"md",fullWidth:!0,disabled:!s,onClick:c,children:"Reset"})}),e.jsx(f.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(j.Button,{variant:"primary",tone:"brand",size:"md",fullWidth:!0,onClick:t,children:"Selesai"})})]})]})})},Es=r=>`${r} Rows`,Fs=({perPageKey:r,pageKey:t,pageSizeOptions:o,defaultPerPage:n=10,showPageSize:l})=>{const{searchQueries:s,setSearchParams:i,searchParams:c}=_e(),a=c.get(r),d=a?Number(a):n,g=b=>{i({...s,[r]:b,[t]:"1"})};return l?e.jsxs(W.Menu,{position:"bottom-right",children:[e.jsx(W.MenuButton,{children:e.jsx(j.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"MenuVertical",size:"sm"}),"aria-label":"More options"})}),e.jsx(W.MenuLists,{children:e.jsxs(W.MenuBody,{style:{minWidth:200},children:[e.jsx(f.Box,{paddingInline:"sm",paddingBlock:"xs",children:e.jsx(S.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Rows per page"})}),o.map(b=>e.jsx(W.MenuItem,{selected:b===d,endIcon:b===d?e.jsx(F.Icon,{name:"Check"}):void 0,onClick:()=>g(String(b)),children:Es(b)},b))]})})]}):null},Is=r=>{var we;const{withPadding:t,configs:o,activeKeys:n,configByKey:l,hasActiveFilter:s,toggleFilter:i,removeFilter:c,getValue:a,setValue:d,clearValue:g,onReset:b,searchable:p,searchKey:C,filterKey:k,pageKey:D,searchPlaceholder:z,searchShortcut:A,searchCollapsible:L,pagination:x,perPageKey:m,pageSizeOptions:I,defaultPerPage:T,showPagination:B,showResultCount:O,showPageSize:U,hasColumns:V,orderedColumns:H,allVisible:N,onToggleVisibility:G,onReorder:Y,onSetAllHidden:te,showSavedViews:K,savedViews:ee,onApplyView:_,onDeleteView:ge,onSaveView:fe,leadingActions:Fe,trailingActions:qe}=r,[Be,ve]=h.useState(!1),{searchQueries:Ce,setSearchParams:Ae}=_e(),Ze=(x==null?void 0:x.rangeStart)??(((x==null?void 0:x.currentPage)||0)>1?(((x==null?void 0:x.currentPage)||0)-1)*((x==null?void 0:x.perPage)||0)+1:1),He=(x==null?void 0:x.rangeEnd)??((x==null?void 0:x.totalCurrentPage)!==(x==null?void 0:x.perPage)?x==null?void 0:x.totalData:((x==null?void 0:x.currentPage)||1)*((x==null?void 0:x.totalCurrentPage)||0)),ie=Ie=>{Ae({...Ce,[D]:String(Ie)})},de=O||B&&!!(x!=null&&x.totalPage),pe=()=>{b(),ve(!1)};return e.jsxs(f.Box,{direction:"column",gap:"sm",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(f.Box,{direction:"row",display:"flex",align:"center",wrap:"wrap",gap:"sm",fullWidth:!0,overflow:"overflow-auto",children:[p&&e.jsx(Fl,{searchKey:C,filterKey:k,pageKey:D,placeholder:z,shortcut:A,collapsible:L}),e.jsx(j.Button,{variant:s?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(F.Icon,{name:"FilterHorizontal"}),onClick:()=>ve(!0),"aria-label":"Open filters",children:s?`Filter: ${n.length}`:null}),e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{marginLeft:"auto"},children:[Fe,K&&e.jsx(Ml,{views:ee,onApply:_,onDelete:ge,onSave:fe}),V&&e.jsx(Il,{columns:H,allVisible:N,onToggle:G,onReorder:Y,onSetAllHidden:te}),e.jsx(Fs,{perPageKey:m,pageKey:D,pageSizeOptions:I,defaultPerPage:T,showPageSize:U}),qe]})]}),de&&e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",fullWidth:!0,children:[O?e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${Ze}-${He} of ${((we=x==null?void 0:x.totalData)==null?void 0:we.toLocaleString())||0}`}):e.jsx(f.Box,{direction:"column"}),B&&!!(x!=null&&x.totalPage)&&e.jsx(zr.Pagination,{size:"xs",variant:"neutral",siblingCount:0,currentPage:x!=null&&x.currentPage?Number(x.currentPage):1,totalPages:Number(x.totalPage),onPageChange:ie})]}),e.jsx(ms,{isOpen:Be,onClose:()=>ve(!1),configs:o,activeKeys:n,configByKey:l,hasActiveFilter:s,onToggle:i,onReset:pe,getValue:a,setValue:d,clearValue:g,removeFilter:c})]})},Ms=({withPadding:r=!1,filterConfigs:t=[],filterKey:o="filter",activeFilterKey:n="filters",pageKey:l="page",perPageKey:s="perPage",pageSizeOptions:i=[25,50,100],defaultPerPage:c,showPagination:a=!0,showResultCount:d=!0,showPageSize:g=!0,searchable:b=!1,searchKey:p="q",searchPlaceholder:C="Search",searchShortcut:k="/",searchPosition:D="right",searchCollapsible:z=!0,pagination:A,columns:L=[],onColumnsChange:x,columnsState:m,scopeId:I,savedViews:T,persistLastState:B=!0,persistSearch:O=!0,storage:U=qt,onReset:V,leadingActions:H,trailingActions:N})=>{const G=I??(T==null?void 0:T.scopeId),{activeKeys:Y,configByKey:te,hasActiveFilter:K,toggleFilter:ee,removeFilter:_,getValue:ge,setValue:fe,clearValue:Fe,clearAll:qe}=_t({configs:t,filterKey:o,activeFilterKey:n,pageKey:l,searchKey:p}),Be=rs({columns:L,scopeId:G,storage:U,onColumnsChange:x,value:m}),ve=ts({scopeId:G,storage:U,snapshotKeys:[n,o,s],pageKey:l,getColumns:()=>Be.state,applyColumns:Be.applyState}),Ce=ls({scopeId:G,storage:U,snapshotKeys:[n,o,l],enabled:B,filterKey:o,searchKey:p,persistSearch:O}),Ae=ns({scopeId:G,storage:U,perPageKey:s,pageSizeOptions:i,enabled:B});is({enabled:B&&!!G,snapshotKeys:[n,o,l],perPageKey:s,readSnapshot:Ce.read,readPerPage:Ae.read});const Ze=c??i[0]??25,He=!!(T!=null&&T.enabled)&&ve.enabled,ie=()=>{qe(),Ce.clear(),V==null||V()},de=ke.useMediaQuery("md"),pe=b?e.jsx(Fl,{searchKey:p,filterKey:o,pageKey:l,placeholder:C,shortcut:k,collapsible:z}):null;return de?e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",gap:"sm",wrap:"wrap",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(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(cs,{configs:t,activeKeys:Y,onToggle:ee,hasActiveFilter:K,onReset:ie}),D==="left"&&pe,e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",overflow:"overflow-x-auto",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(ml,{activeKeys:Y,configByKey:te,getValue:ge,setValue:fe,clearValue:Fe,removeFilter:_}),K&&e.jsx(j.Button,{variant:"link",tone:"brand",size:"sm",onClick:ie,children:"Reset"})]})]}),e.jsxs(f.Box,{direction:"row",display:"flex",align:"center",gap:"sm",children:[H,e.jsx(Ss,{pagination:A,pageKey:l,perPageKey:s,pageSizeOptions:i,defaultPerPage:Ze,showPagination:a,showResultCount:d,showPageSize:g}),D==="right"&&pe,He&&e.jsx(Ml,{views:ve.views,onApply:ve.applyView,onDelete:ve.deleteView,onSave:ve.saveView}),L.length>0&&e.jsx(Il,{columns:Be.orderedColumns,allVisible:Be.allVisible,onToggle:Be.toggleVisibility,onReorder:Be.reorder,onSetAllHidden:Be.setAllHidden}),N]})]}):e.jsx(Is,{withPadding:r,configs:t,activeKeys:Y,configByKey:te,hasActiveFilter:K,toggleFilter:ee,removeFilter:_,getValue:ge,setValue:fe,clearValue:Fe,onReset:ie,searchable:b,searchKey:p,filterKey:o,pageKey:l,searchPlaceholder:C,searchShortcut:k,searchCollapsible:z,pagination:A,perPageKey:s,pageSizeOptions:i,defaultPerPage:Ze,showPagination:a,showResultCount:d,showPageSize:g,hasColumns:L.length>0,orderedColumns:Be.orderedColumns,allVisible:Be.allVisible,onToggleVisibility:Be.toggleVisibility,onReorder:Be.reorder,onSetAllHidden:Be.setAllHidden,showSavedViews:He,savedViews:ve.views,onApplyView:ve.applyView,onDeleteView:ve.deleteView,onSaveView:ve.saveView,leadingActions:H,trailingActions:N})},Ts=r=>{if(!Array.isArray(r)||r.length===0)return;const t=r[0];return(t==null?void 0:t.value)!=null?String(t.value):void 0},Ls=r=>{if(!Array.isArray(r)||r.length===0)return;const t=r.map(o=>(o==null?void 0:o.value)!=null?String(o.value):null).filter(o=>o!=null);return t.length?t:void 0},As=(r,t)=>{switch(r.type){case"dropdown":case"radio":return Ts(t);case"dropdown-multiple":case"checkbox-multiple":return Ls(t);case"date":return t instanceof Date?t.toISOString():void 0;case"date-compact":return t;case"text":return typeof t=="string"&&t?t:void 0;default:return}},Tl=(r,t)=>{if(r==null||r==="")return t;const o=Number(r);return Number.isFinite(o)&&o>0?o:t},Os=r=>{const{filterConfigs:t,filterKey:o="filter",activeFilterKey:n="filters",pageKey:l="page",perPageKey:s="perPage",searchKey:i="q",defaultPage:c=1,defaultPerPage:a=10,paramKeys:d,serialize:g}=r,{activeKeys:b,configByKey:p,hasActiveFilter:C,getValue:k}=_t({configs:t,filterKey:o,activeFilterKey:n,pageKey:l,searchKey:i}),{searchParams:D}=_e(),z=D.toString();return h.useMemo(()=>{const L={},x={},m=Tl(D.get(l),c),I=Tl(D.get(s),a);L[(d==null?void 0:d.page)??"page"]=m,L[(d==null?void 0:d.perPage)??"perPage"]=I;const T=Rr(i,D,o)||"";T&&(L[(d==null?void 0:d.search)??"search"]=T);let B=!1;for(const O of b){const U=p[O];if(!U)continue;const V=k(U);x[O]=V;const H=g==null?void 0:g[O],N=H?H(V):As(U,V);if(N==null||Array.isArray(N)&&N.length===0)continue;const G=(d==null?void 0:d[O])??O;L[G]=N,B=!0}return{params:L,raw:x,hasActiveFilter:C||!!T||B}},[z,b.join("|"),o,n,l,s,i,c,a,d,g,p])},Ws=["dropdown","dropdown-multiple","checkbox-multiple","radio"],zs=({filterConfigs:r,filterKey:t,activeFilterKey:o,pageKey:n,searchKey:l})=>{const{configByKey:s,getValue:i,setValue:c,removeFilter:a,clearAll:d,hasActiveFilter:g}=_t({configs:r,filterKey:t,activeFilterKey:o,pageKey:n,searchKey:l}),b=(x,m)=>{var T;const I=x.options;return((T=I==null?void 0:I.find(B=>B.value===m))==null?void 0:T.label)??m},p=h.useCallback(x=>{const m=s[x];if(!m)return[];const I=i(m);return Array.isArray(I)?I.map(T=>String(T.value)):[]},[s,i]),C=h.useCallback((x,m)=>{const I=s[x];if(!I||!Ws.includes(I.type))return;const T=Array.isArray(m)?m:[m];if(T.length===0){a(x);return}c(I,T.map(B=>({label:b(I,B),value:B})))},[s,c,a]),k=h.useCallback((x,m)=>{const I=p(x);C(x,I.includes(m)?I.filter(T=>T!==m):[...I,m])},[p,C]),D=h.useCallback((x,m)=>p(x).includes(m),[p]),z=h.useCallback(x=>a(x),[a]),A=h.useCallback(x=>{const m=s[x];return m?i(m):void 0},[s,i]),L=h.useCallback((x,m)=>{const I=s[x];if(I){if(m==null){a(x);return}c(I,m)}},[s,c,a]);return{set:C,toggle:k,clear:z,clearAll:d,isActive:D,values:p,getRaw:A,setRaw:L,hasActiveFilter:g}},Xt="var(--sa-background-brand, #04254f)",Hs="var(--sa-text-brand, #031f43)",Ps={padding:"6px 8px",border:"1px solid var(--sa-border-subtle, #0b120e24)",borderRadius:"var(--sa-radii-xs, 4px)",font:"inherit",fontSize:13,outline:"none",width:"100%",boxSizing:"border-box"},Jt={padding:"4px 8px",border:"none",background:"none",cursor:"pointer",font:"inherit",textAlign:"left",fontSize:13,color:Hs},Ll=(r,t)=>{if(r.type==="text"||r.type==="date")return!!t.getRaw(r.key);if(r.type==="date-compact"){const o=t.getRaw(r.key);return!!(o&&(o.date||o.from||o.to||o.relative||o.op==="is-empty"||o.op==="is-not-empty"))}return t.values(r.key).length>0},Vs=({field:r,controls:t})=>{const[o,n]=h.useState(""),l=r.type==="dropdown"||r.type==="radio",s=r.type==="checkbox-multiple"?!1:r.searchable!==!1,i=t.values(r.key),c=s&&o.trim()?r.options.filter(d=>d.label.toLowerCase().includes(o.toLowerCase())):r.options,a=d=>{l?t.set(r.key,i.includes(d)?[]:d):t.toggle(r.key,d)};return e.jsxs(f.Box,{style:{display:"flex",flexDirection:"column",gap:4,minWidth:200},children:[s&&e.jsx("input",{value:o,onChange:d=>{var g;n(d.target.value),(g=r.onSearch)==null||g.call(r,d.target.value)},placeholder:"Cari…",style:Ps}),e.jsxs(f.Box,{style:{display:"flex",flexDirection:"column",gap:2,maxHeight:220,overflowY:"auto"},children:[c.map(d=>{const g=i.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:"var(--sa-radii-xs, 4px)"},children:[e.jsx("span",{style:{width:16,height:16,flexShrink:0,borderRadius:l?"50%":"var(--sa-radii-xs, 4px)",display:"inline-flex",alignItems:"center",justifyContent:"center",border:`1px solid ${g?Xt:"var(--sa-border-subtle, #0b120e24)"}`,background:g&&!l?Xt:"transparent"},children:g&&(l?e.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:Xt}}):e.jsx(F.Icon,{name:"Check",size:"xs",style:{color:"#fff"}}))}),e.jsx(S.Text,{as:"span",style:{fontSize:14},children:d.label})]},d.value)}),c.length===0&&e.jsx(S.Text,{as:"span",style:{fontSize:13,color:"var(--sa-text-subtlest, #8c8f97)",padding:"6px 8px"},children:"Tak ada hasil"})]}),i.length>0&&e.jsx("button",{type:"button",onClick:()=>t.clear(r.key),style:Jt,children:"Clear"})]})},js=({field:r,controls:t})=>{const o=t.getRaw(r.key);return e.jsx(f.Box,{style:{minWidth:240},children:e.jsx(pr.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:r.mode,value:o,onChange:n=>t.setRaw(r.key,n??null),withPadding:!1})})},Ns=({field:r,controls:t})=>{const o=t.getRaw(r.key),n=r.ops&&r.ops.length>0?r.ops:Cl,l=r.defaultOp&&n.includes(r.defaultOp)?r.defaultOp:n[0],s=r.mode??"days",i=(o==null?void 0:o.op)??l,c=d=>t.setRaw(r.key,d),a=d=>{if(d!==i)return c(d==="is-empty"||d==="is-not-empty"?{op:d}:d==="is-relative-to-today"?{op:d,relative:(o==null?void 0:o.relative)??{direction:"past",count:1,period:"week"}}:d==="is-between"?{op:d,from:o==null?void 0:o.from,to:o==null?void 0:o.to}:{op:d,date:o==null?void 0:o.date})};return e.jsxs(f.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:280},children:[e.jsxs(f.Box,{display:"flex",direction:"row",align:"center",gap:"xs",children:[e.jsx(S.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:r.label}),e.jsx(xl,{op:i,ops:n,onChange:a})]}),e.jsx(wl,{value:o,op:i,mode:s,onChange:c}),Ll(r,t)&&e.jsx("button",{type:"button",onClick:()=>t.setRaw(r.key,null),style:Jt,children:"Clear"})]})},_s=({field:r,controls:t})=>{const o=t.getRaw(r.key)??"",[n,l]=h.useState(o),s=ke.useDebounce(n,r.debounceMs??300);return h.useEffect(()=>{const i=t.getRaw(r.key)??"";s!==i&&t.setRaw(r.key,s||null)},[s]),e.jsxs(f.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:220},children:[e.jsx(hr.Input,{size:"sm",fullWidth:!0,value:n,placeholder:r.placeholder??"Cari…",leftIcon:e.jsx(F.Icon,{name:"Search",width:16,height:16}),onChange:i=>l(i.target.value)}),n&&e.jsx("button",{type:"button",onClick:()=>{l(""),t.setRaw(r.key,null)},style:Jt,children:"Clear"})]})},qs=({field:r,controls:t})=>r.type==="text"?e.jsx(_s,{field:r,controls:t}):r.type==="date"?e.jsx(js,{field:r,controls:t}):r.type==="date-compact"?e.jsx(Ns,{field:r,controls:t}):e.jsx(Vs,{field:r,controls:t}),Zs=(r,t)=>{if(!r)return{};const{fromKey:o,toKey:n,opKey:l}=t,s={};switch(r.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return r.date&&(s[o]=new Date(r.date).toISOString()),l&&(s[l]=r.op),s;case"is-between":return r.from&&(s[o]=new Date(r.from).toISOString()),r.to&&(s[n]=new Date(r.to).toISOString()),s;case"is-relative-to-today":{if(!r.relative)return s;const{from:i,to:c}=yl(r.relative);return s[o]=i.toISOString(),s[n]=c.toISOString(),s}case"is-empty":case"is-not-empty":return l&&(s[l]=r.op==="is-empty"?"empty":"not-empty"),s;default:return s}},Al=({children:r,borderRadius:t,height:o})=>{const n=h.useRef(null),[l,s]=h.useState("100vh");return h.useEffect(()=>{if(o)return;const i=()=>{if(n.current){const c=n.current.getBoundingClientRect().top;s(`calc(100vh - ${c}px)`)}};return i(),window.addEventListener("resize",i),()=>window.removeEventListener("resize",i)},[o]),e.jsx(f.Box,{ref:n,fullWidth:!0,borderStyle:"border-solid",borderWidth:"border",borderColor:"border-base",borderRadius:t||"rounded-xs",style:{height:o??l,display:"flex",flexDirection:"column"},children:r})},Ol=({action:r,rightContent:t,leftContent:o,headerSlot:n,advanceFilter:l,showFilter:s=!0})=>{const i=ke.useMediaQuery("md"),c=s?e.jsx(fl,{...l}):null,a=()=>r?h.isValidElement(r)?r:e.jsx(f.Box,{style:{display:"flex",flexDirection:i?"row":"column",gap:"8px",width:i?"auto":"100%",textWrap:"nowrap"},children:r.map(({title:d,icon:g,buttonProps:b,onClick:p},C)=>!d&&!g?null:e.jsx(j.Button,{fullWidth:!i,iconLeft:g?e.jsx(F.Icon,{name:g}):void 0,onClick:p,...b,children:d},`action-${C}`))}):null;return e.jsx(f.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:i?"row":"column-reverse",gap:"16px"},children:n?n({filter:c}):e.jsxs(e.Fragment,{children:[e.jsxs(f.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flex:1,minWidth:0},children:[c,o]}),e.jsxs(f.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flexShrink:0},children:[t,a()]})]})})},Gs=({totalData:r,withMarginBottom:t=!0,withMarginTop:o=!0})=>e.jsxs(f.Box,{style:{display:"flex",gap:"4px",flexDirection:"row",alignItems:"center",marginBottom:t?"16px":void 0,marginTop:o?"16px":void 0},children:[e.jsxs(Re.Body1,{props:{color:"gray-500"},children:["Total data:"," "]}),e.jsx(Re.Body1,{children:r||0})]}),Wl=({pagination:r,pageKey:t="page",perPageKey:o="perPage",defaultPerPage:n=10,showPagination:l=!0,totalData:s})=>{const{searchQueries:i,setSearchParams:c,searchParams:a}=_e(),d=a.get(o),g=k=>{c({...i,[t]:String(k)})},b=k=>{c({...i,[o]:k,[t]:"1"})},p=(r==null?void 0:r.rangeStart)??(((r==null?void 0:r.currentPage)||0)>1?(((r==null?void 0:r.currentPage)||0)-1)*((r==null?void 0:r.perPage)||0)+1:1),C=(r==null?void 0:r.rangeEnd)??((r==null?void 0:r.totalCurrentPage)!==(r==null?void 0:r.perPage)?r==null?void 0:r.totalData:((r==null?void 0:r.currentPage)||1)*((r==null?void 0:r.totalCurrentPage)||0));return e.jsx(f.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:l?e.jsxs(e.Fragment,{children:[e.jsxs(f.Box,{style:{display:"flex",flexDirection:"row",gap:"8px",alignItems:"center",textWrap:"nowrap"},children:[e.jsx(S.Text,{children:"Rows Per Page: "}),e.jsx(Fr.Dropdown,{dropdownLists:[{label:"5",value:"5"},{label:"10",value:"10"},{label:"25",value:"25"},{label:"50",value:"50"},{label:"100",value:"100"}],onChange:k=>{b(k[0].value)},value:d?[{label:`${d} per row`,value:d}]:[{label:`${n} per row`,value:`${n}`}],defaultValue:d?[{label:`${d} per row`,value:d}]:[{label:`${n} per row`,value:`${n}`}]}),e.jsx(S.Text,{children:`${p}-${C} of ${(r==null?void 0:r.totalData)||0}`})]}),e.jsx(zr.Pagination,{currentPage:r!=null&&r.currentPage?Number(r==null?void 0:r.currentPage):1,totalPages:r!=null&&r.totalPage?Number(r==null?void 0:r.totalPage):1,onPageChange:g})]}):e.jsx(Gs,{totalData:s,withMarginBottom:!1,withMarginTop:!1})})},zl=({filter:r,columnTitle:t})=>{const[o,n]=h.useState(!1),l=h.useRef(null),s=h.useRef(null),i=h.useRef(null),[c,a]=h.useState(""),[d,g]=h.useState({top:0,left:0}),b=r.selectedValues,p=h.useMemo(()=>c?r.options.filter(D=>D.label.toLowerCase().includes(c.toLowerCase())):r.options,[r.options,c]);h.useEffect(()=>{if(o&&s.current){const D=s.current.getBoundingClientRect(),z=280,A={top:D.bottom+8};r.position==="left"||D.left+z>window.innerWidth?A.right=window.innerWidth-D.right:A.left=D.left,g(A)}},[o,r.position]),h.useEffect(()=>{o&&i.current?setTimeout(()=>{var D;return(D=i.current)==null?void 0:D.focus()},50):a("")},[o]),h.useEffect(()=>{const D=z=>{l.current&&!l.current.contains(z.target)&&s.current&&!s.current.contains(z.target)&&n(!1)};return o&&document.addEventListener("mousedown",D),()=>document.removeEventListener("mousedown",D)},[o]);const C=D=>{const z=b.includes(D)?b.filter(A=>A!==D):[...b,D];r.onFilterChange(z)},k=()=>r.onFilterChange([]);return e.jsxs(f.Box,{direction:"column",style:{position:"relative"},children:[e.jsx(f.Box,{ref:s,style:{display:"flex",flexDirection:"row",alignItems:"center",cursor:"pointer"},onClick:D=>{var z;D.stopPropagation(),o||(z=r.onOpen)==null||z.call(r),n(A=>!A)},children:e.jsx(F.Icon,{name:o?"ChevronUp":"ChevronDown",size:"sm",style:{color:b.length>0?"var(--sa-color-brand-500, #1a4fa0)":"var(--sa-text-subtle, #8c8f97)"}})}),o&&e.jsxs(f.Box,{ref:l,style:{position:"fixed",top:`${d.top}px`,...d.left!==void 0?{left:`${d.left}px`}:{right:`${d.right}px`},backgroundColor:"white",borderRadius:"var(--sa-radii-xs, 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(f.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(S.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-700",children:["Filter ",t]}),b.length>0&&e.jsx(f.Box,{direction:"column",style:{cursor:"pointer"},children:e.jsx(S.Text,{fontSize:"xs",color:"primary",fontWeight:"semibold",onClick:D=>{D.stopPropagation(),k()},children:"CLEAR"})})]}),!r.hideSearch&&e.jsx(f.Box,{direction:"column",style:{paddingLeft:"16px",paddingRight:"16px",paddingTop:"8px",paddingBottom:"8px"},children:e.jsx(hr.Input,{ref:i,placeholder:`Search ${t.toLowerCase()}...`,leftIcon:e.jsx(F.Icon,{name:"Search",size:"sm"}),value:c,onChange:D=>a(D.target.value),style:{fontSize:"14px"}})}),e.jsx(f.Box,{direction:"column",className:"ts-filter-dropdown-options",style:{overflowY:"auto",maxHeight:"250px",paddingLeft:"8px",paddingRight:"8px"},children:r.isLoadingOptions?e.jsxs(f.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(F.Icon,{name:"Loading",size:"lg",style:{color:"var(--sa-background-brand, #04254f)",animation:"spin 1s linear infinite"}}),e.jsx(S.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"Loading options..."})]}):p.length>0?e.jsx(f.Box,{direction:"column",style:{gap:"2px",paddingTop:"4px",paddingBottom:"4px"},children:p.map(D=>e.jsxs(f.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",paddingTop:"8px",paddingBottom:"8px",paddingLeft:"8px",paddingRight:"8px",cursor:"pointer",borderRadius:"var(--sa-radii-md, 8px)",transition:"all 0.2s ease",backgroundColor:b.includes(D.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent"},onClick:z=>{z.stopPropagation(),C(D.value)},onMouseEnter:z=>{b.includes(D.value)||(z.currentTarget.style.backgroundColor="var(--sa-background-primary, #ffffff)"),z.currentTarget.style.transform="translateX(2px)"},onMouseLeave:z=>{z.currentTarget.style.backgroundColor=b.includes(D.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent",z.currentTarget.style.transform="translateX(0)"},children:[e.jsx(fr.Checkbox,{checked:b.includes(D.value),onChange:()=>{}}),e.jsx(S.Text,{fontSize:"sm",fontWeight:b.includes(D.value)?"medium":"normal",color:b.includes(D.value)?"primary":"gray-700",children:D.label})]},D.value))}):e.jsxs(f.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(F.Icon,{name:"Search",size:"lg",style:{color:"var(--sa-text-subtle, #8c8f97)"}}),e.jsx(S.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"No results found"})]})}),b.length>0&&e.jsx(f.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(f.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"4px"},children:[e.jsx(f.Box,{direction:"column",style:{backgroundColor:"var(--sa-background-brand, #04254f)",borderRadius:"var(--sa-radii-lg, 12px)",padding:"2px 8px",fontSize:"11px",fontWeight:600,color:"white"},children:b.length}),e.jsxs(S.Text,{fontSize:"xs",color:"primary",fontWeight:"medium",children:["item",b.length>1?"s":""," selected"]})]})})]})]})},Qs=({direction:r})=>{const t="var(--sa-text-primary, #292a2e)",o="var(--sa-text-subtle, #8c8f97)",n=r==="asc"?t:o,l=r==="desc"?t:o,s=r==="asc"?1:.45,i=r==="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:n,opacity:s,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:l,opacity:i},children:e.jsx("path",{d:"M0 0 L8 0 L4 5 Z",fill:"currentColor"})})]})},Us=({frozen:r})=>e.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:r?"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:r?"M7 11V7a5 5 0 0 1 10 0v4":"M7 11V7a5 5 0 0 1 9.9-1"})]}),$t="var(--sa-background-primary, #ffffff)",Hl="var(--sa-background-primary-inverse, #f8f8f8)",Pl=({columns:r,records:t,handleDetail:o,handleUpdate:n,handleDelete:l,isLoading:s,visibleHandleDelete:i,visibleHandleUpdate:c,visibleHandleDetail:a,showHeadBorder:d=!1,scrollParentRef:g,frozenCount:b=0,onFrozenCountChange:p,customActions:C,actionsOrder:k=["detail","update","delete","custom"],customEmptyState:D,enableColumnResize:z=!1,defaultColumnWidths:A,onColumnWidthsChange:L,defaultMinColumnWidth:x=60,sort:m,defaultSort:I,onSortChange:T,showActionDivider:B=!1})=>{const O=m!==void 0,[U,V]=h.useState(I??null),H=O?m??null:U,N=P=>{if(P.sortKey)return P.sortKey;if(typeof P.accessor=="string")return P.accessor},G=P=>{const $=N(P);if(!$)return;let X;!H||H.key!==$?X={key:$,direction:"asc"}:H.direction==="asc"?X={key:$,direction:"desc"}:X=null,O||V(X),T==null||T(X)},te=[o,n,l].filter(P=>P!==void 0).length,K=!!C,ee=!!o||!!n||!!l||K,_="var(--sa-border-subtle, #0b120e24)",ge=`1px solid ${_}`,fe=`inset 1px 0 0 ${_}`,Fe=`inset -1px 0 0 ${_}`,qe=te===3?K?"178px":"140px":te===2?K?"140px":"102px":te===1?K?"112px":"74px":K?"74px":"",Be=(P,$)=>{if(!$)return P;if(typeof $=="function")return $(P);if(typeof $=="string")return P[$]},[ve,Ce]=h.useState(!1);h.useEffect(()=>{if(!(g!=null&&g.current))return;const P=g.current;Ce(P.scrollHeight>P.clientHeight)},[t,g]);const Ae=h.useRef(null),[Ze,He]=h.useState([]),[ie,de]=h.useState(()=>A??{}),pe=h.useRef(null);h.useLayoutEffect(()=>{if(!b||!Ae.current){He([]);return}const P=Array.from(Ae.current.querySelectorAll("thead tr th")),$=[];let X=0;P.forEach((he,me)=>{$[me]=X,me<b&&(X+=he.offsetWidth)}),He($)},[b,r,t,ie]);const we=P=>{p&&p(P<b?P:P+1)},Ie=(P,$)=>{const X=ie[P];if(X!==void 0){const he=`${X}px`;return{width:he,minWidth:he,maxWidth:he}}return $?{width:$}:{}},sr=P=>z&&(P.resizable??!0),ir=(P,$)=>{P.preventDefault(),P.stopPropagation();const X=P.currentTarget.closest("th");if(!X)return;const he=Math.round(X.getBoundingClientRect().width);pe.current={colIndex:$,startX:P.clientX,startWidth:he};const me=document.body.style.userSelect,xe=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";const Pe=Ye=>{var Ee;const Me=pe.current;if(!Me)return;const br=((Ee=r[Me.colIndex])==null?void 0:Ee.minWidth)??x,ur=Math.max(br,Me.startWidth+(Ye.clientX-Me.startX));de(ze=>ze[Me.colIndex]===ur?ze:{...ze,[Me.colIndex]:ur})},cr=()=>{document.removeEventListener("mousemove",Pe),document.removeEventListener("mouseup",cr),document.body.style.userSelect=me,document.body.style.cursor=xe,pe.current=null,L&&de(Ye=>(L(Ye),Ye))};document.addEventListener("mousemove",Pe),document.addEventListener("mouseup",cr)};return e.jsx("div",{ref:Ae,children:e.jsxs(Q.Table,{fullWidth:!0,children:[e.jsx(Q.Thead,{style:{height:"40px",whiteSpace:"nowrap"},children:e.jsxs(Q.Tr,{children:[r.map((P,$)=>{var Sr,ar;const X=b>0&&$<b,he=Ze[$]??0,me=sr(P),Pe=$===r.length-1&&ee&&B,cr=N(P),Ye=!!P.sortable&&!!cr,Me=Ye&&(H==null?void 0:H.key)===cr?H.direction:null,br=P.title||((Sr=P.accessor)==null?void 0:Sr.toString())||"",ur=(ar=P.headerTooltip)!=null&&ar.showIcon?e.jsx(F.Icon,{name:"InfoCircle",size:"xs",style:{flexShrink:0,color:"var(--sa-icon-subtle, #8c8f97)",opacity:.75}}):null,Ee=e.jsx("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:br}),ze=Ye?e.jsxs("button",{type:"button",onClick:()=>G(P),title:Me==="asc"?"Sorted ascending — click to sort descending":Me==="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:P.textAlign==="text-right"?"right":P.textAlign==="text-center"?"center":"left"},children:[Ee,ur,e.jsx(Qs,{direction:Me})]}):e.jsxs("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:4},children:[Ee,ur]});return e.jsxs(Q.Th,{style:{position:"sticky",top:0,left:X?he:void 0,zIndex:X?4:2,paddingLeft:$===0?"12px":"",borderRight:d&&!Pe&&!X?ge:void 0,borderBottom:d?ge:void 0,boxShadow:d&&X?Fe:void 0,backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",textAlign:P.textAlign==="text-right"?"right":P.textAlign==="text-center"?"center":"left",...Ie($,P.width)},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4px",justifyContent:"space-between",minWidth:0},children:[P.headerTooltip?e.jsx(Le.Tooltip,{label:P.headerTooltip.content,position:"bottom",children:ze}):ze,P.filter&&e.jsx(zl,{filter:P.filter,columnTitle:P.title}),p&&e.jsx("button",{onClick:()=>we($),title:X?"Unfreeze column":"Freeze column",style:{background:"none",border:"none",cursor:"pointer",padding:"2px",display:"flex",alignItems:"center",flexShrink:0,color:X?"var(--sa-background-brand, #04254f)":"var(--sa-text-subtle, #8c8f97)",opacity:X?1:.45,transition:"opacity 0.15s"},children:e.jsx(Us,{frozen:X})})]}),me&&e.jsx("div",{onMouseDown:vr=>ir(vr,$),onClick:vr=>vr.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-${$}`)}),ee?e.jsx(Q.Th,{style:{backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",position:"sticky",top:0,right:0,zIndex:3,borderBottom:d?ge:void 0,boxShadow:d&&B?fe:void 0}}):null]})}),e.jsx(Q.Tbody,{children:s?e.jsx(Q.Tr,{children:e.jsx(Q.Td,{colSpan:r.length+1,children:e.jsxs(f.Box,{direction:"column",style:{gap:"16px"},children:[e.jsx(Ke.Skeleton,{variant:"list"}),e.jsx(Ke.Skeleton,{variant:"list"}),e.jsx(Ke.Skeleton,{variant:"list"}),e.jsx(Ke.Skeleton,{variant:"list"}),e.jsx(Ke.Skeleton,{variant:"list"})]})})}):!(t!=null&&t.length)&&D?e.jsx(Q.Tr,{children:e.jsx(Q.Td,{colSpan:r.length+1,children:D})}):t==null?void 0:t.map((P,$)=>e.jsxs(Q.Tr,{style:{transition:"background-color 0.3s ease",padding:0,borderBottom:$===t.length-1&&ve?void 0:"1px solid var(--sa-border-subtle, #0b120e24)"},onMouseEnter:X=>{const he=X.currentTarget;he.style.backgroundColor=Hl,Array.from(he.querySelectorAll("td")).forEach(me=>{me.style.position==="sticky"&&(me.style.backgroundColor=Hl)})},onMouseLeave:X=>{const he=X.currentTarget;he.style.backgroundColor="",Array.from(he.querySelectorAll("td")).forEach(me=>{me.style.position==="sticky"&&(me.style.backgroundColor=$t)})},children:[r.map((X,he)=>{const me=X.render?X.render(P,$,t):Be(P,X.accessor),xe=b>0&&he<b,Pe=Ze[he]??0,cr=ie[he]!==void 0,Ye=xe&&he===b-1;return e.jsx(Q.Td,{style:{position:xe?"sticky":void 0,left:xe?Pe:void 0,zIndex:xe?1:void 0,backgroundColor:xe?$t:void 0,transition:xe?"background-color 0.3s ease":void 0,paddingLeft:he===0?"12px":"",whiteSpace:"nowrap",overflow:cr?"hidden":void 0,borderLeft:X.showBorderLeft?ge:void 0,borderRight:X.showBorderRight?ge:void 0,boxShadow:Ye?Fe:void 0,textAlign:X.textAlign==="text-right"?"right":X.textAlign==="text-center"?"center":"left",...Ie(he,X.width)},children:typeof me=="string"?e.jsx(S.Text,{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textAlign:X.textAlign==="text-right"?"right":X.textAlign==="text-center"?"center":"left"},children:me}):me},`row-${$}-col-${he}`)}),ee?e.jsx(Q.Td,{style:{width:qe,position:"sticky",right:0,zIndex:1,backgroundColor:$t,boxShadow:B?fe:void 0,transition:"background-color 0.3s ease"},children:e.jsx(ae.Flex,{direction:"row",align:"center",justify:"center",gap:"sm",children:k.map(X=>{const he=$===t.length-1?"top":"bottom";return X==="detail"&&o&&(a==null?void 0:a(P))!==!1?e.jsx(Le.Tooltip,{label:"Detail",position:he,children:e.jsx(j.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>o(P.id,P),iconLeft:e.jsx(F.Icon,{name:"DocumentClean",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"detail"):X==="update"&&n&&(c==null?void 0:c(P))!==!1?e.jsx(Le.Tooltip,{label:"Update",position:he,children:e.jsx(j.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>n(P),iconLeft:e.jsx(F.Icon,{name:"Edit1",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"update"):X==="delete"&&l&&(i==null?void 0:i(P))!==!1?e.jsx(Le.Tooltip,{label:"Delete",position:he,children:e.jsx(j.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>l(P.id,P),iconLeft:e.jsx(F.Icon,{name:"Trash1",size:"sm",style:{color:"var(--sa-color-error-600, #c9184a)"}})})},"delete"):X==="custom"?e.jsx(h.Fragment,{children:C==null?void 0:C(P)},"custom"):null})})}):null]},`${P}${$}`))})]})})};let Vl=!1;const Ys=({wrapperProps:r,dataTableProps:t,headerProps:o,footerProps:n})=>{var b;process.env.NODE_ENV!=="production"&&!Vl&&(Vl=!0,console.warn("[@starasia/admin] `TableSection` deprecated — pakai `<FilterBar>` + `<TableLayout>`. Lihat skill `starasia-list-page-pattern`. Akan dihapus di salah satu major berikutnya."));const l=h.useRef(null),[s,i]=h.useState((t==null?void 0:t.defaultFrozenCount)??0),c=(o==null?void 0:o.show)??!0,a=h.useRef(null),d=(b=t==null?void 0:t.pagination)==null?void 0:b.totalData;typeof d=="number"&&(a.current=d);const g=(n==null?void 0:n.showFooter)??(d===void 0?a.current!==0:d!==0);return e.jsxs(Al,{...r,children:[c&&e.jsx(Ol,{...o}),e.jsx(f.Box,{direction:"column",ref:l,style:{flex:1,overflowY:"auto",overflowX:"auto"},children:t?e.jsx(Pl,{...t,scrollParentRef:l,frozenCount:t!=null&&t.enableFreezeColumns?s:0,onFrozenCountChange:t!=null&&t.enableFreezeColumns?i:void 0}):null}),g&&e.jsx(Wl,{pagination:t==null?void 0:t.pagination,pageKey:t==null?void 0:t.pageKey,perPageKey:t==null?void 0:t.perPageKey,defaultPerPage:t==null?void 0:t.defaultPerPage,showPagination:t==null?void 0:t.showPagination,totalData:n==null?void 0:n.totalData})]})};function Xs(r){return h.memo(r)}const Js=Xs(Ys),jl="(any-pointer: coarse)",$s=r=>{if(typeof window>"u"||!window.matchMedia)return()=>{};const t=window.matchMedia(jl);return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},Ks=()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(jl).matches,Rs=()=>!1;function Nl(){return h.useSyncExternalStore($s,Ks,Rs)}const _l=200,tt="1px solid var(--sa-border-subtle, #0b120e24)",ei=({sortDir:r,frozen:t,filterActive:o})=>r==="asc"?e.jsx(F.Icon,{name:"ChevronSmallUp"}):r==="desc"?e.jsx(F.Icon,{name:"ChevronSmallDown"}):t?e.jsx(F.Icon,{name:"LockOn",size:"xs"}):e.jsx(F.Icon,{name:"Filter",size:"xs",style:o?{color:"var(--sa-text-brand, #031f43)"}:void 0}),ot=({icon:r,label:t,active:o,danger:n,onClick:l})=>{const s=n?"var(--sa-text-error, #a4133c)":"var(--sa-text-primary, #292a2e)";return e.jsxs("button",{type:"button",onClick:l,style:{display:"flex",alignItems:"center",gap:12,width:"100%",padding:"8px 12px",background:o?"var(--sa-background-brand-subtlest, #e6edf6)":"none",border:"none",cursor:"pointer",font:"inherit",color:s,textAlign:"left"},onMouseEnter:i=>{o||(i.currentTarget.style.background="var(--sa-background-primary-inverse, #f8f8f8)")},onMouseLeave:i=>{i.currentTarget.style.background=o?"var(--sa-background-brand-subtlest, #e6edf6)":"none"},children:[e.jsx(F.Icon,{name:r,size:"sm",style:{color:s,flexShrink:0}}),e.jsx(S.Text,{as:"span",style:{color:s},children:t})]})},ri=r=>{let t=(r==null?void 0:r.parentElement)??null;for(;t;){const o=getComputedStyle(t).overflowX;if((o==="auto"||o==="scroll")&&t.scrollWidth>t.clientWidth)return t;t=t.parentElement}return null},ql=({active:r,canSort:t,canHide:o,sortDir:n,frozen:l,onSort:s,onClearSort:i,onToggleFreeze:c,onHide:a,filterSlot:d,filterActive:g})=>{const[b,p]=h.useState(!1),C=h.useRef(null),k=h.useRef(null),[D,z]=h.useState({top:0,left:0}),A=h.useCallback(()=>{var H;const x=C.current;if(!x)return;const m=x.getBoundingClientRect(),I=x.closest(".sa-tl-scroll")??ri(x),T=I==null?void 0:I.getBoundingClientRect();if(T&&(m.left<T.left||m.left>T.right)){p(!1);return}const B=Math.min(window.innerWidth-8,T?T.right:window.innerWidth),O=((H=k.current)==null?void 0:H.offsetWidth)||_l,U=T?T.left:8,V=Math.max(U,Math.min(m.left,B-O));z({top:m.bottom+6,left:V})},[]);h.useEffect(()=>{if(!b)return;A();const x=()=>A();return window.addEventListener("scroll",x,!0),window.addEventListener("resize",x),()=>{window.removeEventListener("scroll",x,!0),window.removeEventListener("resize",x)}},[b,A]),h.useEffect(()=>{if(!b)return;const x=m=>{k.current&&!k.current.contains(m.target)&&C.current&&!C.current.contains(m.target)&&p(!1)};return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[b]);const L=x=>{x(),p(!1)};return e.jsxs(e.Fragment,{children:[e.jsx("button",{ref:C,type:"button",className:"sa-tl-menu-trigger","data-active":r||b?"true":"false",onClick:x=>{x.stopPropagation(),p(m=>!m)},title:"Column options",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:"var(--sa-radii-sm, 6px)",border:tt,background:"var(--sa-background-primary, #ffffff)",cursor:"pointer",color:"var(--sa-text-subtle, #8c8f97)",flexShrink:0},children:e.jsx(ei,{sortDir:n,frozen:l,filterActive:g})}),b&&e.jsxs(f.Box,{ref:k,onClick:x=>x.stopPropagation(),style:{position:"fixed",top:`${D.top}px`,...D.left!==void 0?{left:`${D.left}px`}:{right:`${D.right}px`},minWidth:_l,backgroundColor:"var(--sa-background-primary, #ffffff)",border:tt,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(S.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:tt,margin:"4px 0"}})]}),t&&e.jsxs(e.Fragment,{children:[e.jsx(ot,{icon:"ChevronUp",label:"Ascending",active:n==="asc",onClick:()=>L(()=>n==="asc"?i():s("asc"))}),e.jsx(ot,{icon:"ChevronDown",label:"Descending",active:n==="desc",onClick:()=>L(()=>n==="desc"?i():s("desc"))}),e.jsx("div",{style:{borderTop:tt,margin:"4px 0"}})]}),e.jsx(ot,{icon:"Pin1",label:l?"Unfreeze":"Freeze",active:l,onClick:()=>L(c)}),o&&e.jsx(ot,{icon:"EyeClosed",label:"Hide column",danger:!0,onClick:()=>L(a)})]})]})},ti=r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),oi={background:"var(--sa-background-warning-subtlest, #fef2e6)",color:"inherit",padding:0,borderRadius:"min(2px, var(--sa-radii-xs, 4px))"},Zl=({text:r,query:t,markStyle:o})=>{const n=t==null?void 0:t.trim();if(!n||!r)return e.jsx(e.Fragment,{children:r});const l=n.split(/\s+/).filter(Boolean);if(!l.length)return e.jsx(e.Fragment,{children:r});const s=new Set(l.map(a=>a.toLowerCase())),i=new RegExp(`(${l.map(ti).join("|")})`,"gi"),c=r.split(i);return e.jsx(e.Fragment,{children:c.map((a,d)=>a&&s.has(a.toLowerCase())?e.jsx("mark",{style:{...oi,...o},children:a},d):e.jsx(h.Fragment,{children:a},d))})},Nr="1px solid var(--sa-border-subtle, #0b120e24)",li="var(--sa-text-subtle, #8c8f97)",Ar="var(--sa-background-neutral, #f0f1f2)",Gl="2px 0 4px -2px var(--sa-border-subtle, #0b120e24)",_r=40,Kt=5,ni=28,Rt=4,lt=16,eo="var(--sa-background-brand-subtlest)",nt={display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},Ql="sa-table-layout-styles",si=()=>{if(typeof document>"u"||document.getElementById(Ql))return;const r=document.createElement("style");r.id=Ql,r.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);