@starasia/admin 14.47.0 → 14.47.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +2 -2
- package/dist/index.umd.js +1 -1
- package/dist/style.css +1 -1
- package/package.json +5 -5
package/dist/index.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Sn=require("@starasia/alert"),lr=require("@starasia/avatar"),it=require("@starasia/badges"),x=require("@starasia/box"),Et=require("@starasia/breadcrumb"),H=require("@starasia/button"),Gr=require("@starasia/card"),jt=require("@starasia/date"),Oe=require("@starasia/dialog"),cr=require("@starasia/drawer"),It=require("@starasia/dropdown"),we=require("@starasia/hooks"),Mt=require("@starasia/http"),ht=require("@starasia/input"),O=require("@starasia/menu"),Ht=require("@starasia/pagination"),zt=require("@starasia/storage"),Z=require("@starasia/table"),kn=require("@starasia/tabs"),Qr=require("@starasia/textarea"),Ft=require("@starasia/theme"),Bn=require("@starasia/toast"),Lt=require("@starasia/toggle"),Me=require("@starasia/tooltip"),xt=require("@starasia/checkbox"),Ur=require("@starasia/radio"),C=require("@starasia/text"),B=require("@starasia/icon"),de=require("@starasia/flex"),En=require("@starasia/grid"),Fn=require("@starasia/progress"),In=require("@starasia/stepper"),Mn=require("@starasia/accordion"),Ln=require("@starasia/story-record"),$e=require("@starasia/skeleton"),Tn=require("@starasia/progress-stepper"),e=require("react/jsx-runtime"),u=require("react"),xr=require("react-dom"),Os=require("react-easy-crop"),As={menus:[],menuBottom:void 0,logo:"",appName:"Workspace",userData:null,setUserData:()=>{}},rn=u.createContext(As),nn=()=>u.useContext(rn),fo=t=>{const[r,n]=u.useState((t==null?void 0:t.initialUserData)||null);return{userData:r,setUserData:n}},mo=u.createContext({badges:{},setBadge:()=>{},setBadges:()=>{},clearBadge:()=>{}}),go=({children:t})=>{const[r,n]=u.useState({}),s=u.useCallback(c=>{n(a=>typeof c=="function"?c(a):c)},[]),o=u.useCallback((c,a)=>{n(d=>{const h=typeof a=="function"?a(d[c]):a;return{...d,[c]:h}})},[]),i=u.useCallback(c=>{n(a=>{if(!(c in a))return a;const d={...a};return delete d[c],d})},[]),l=u.useMemo(()=>({badges:r,setBadge:o,setBadges:s,clearBadge:i}),[r,o,s,i]);return e.jsx(mo.Provider,{value:l,children:t})},po=()=>u.useContext(mo),sr=(t,r)=>{const n=r!==void 0?r:t;return n==null?null:typeof n=="string"||typeof n=="number"?{value:n}:n},on=240,sn=200,ln=480,Ws="sa-sidebar-width",Yr=(t,r,n)=>Math.min(Math.max(t,r),n),zs=(t,r,n,s)=>{if(typeof window>"u")return r;try{const o=window.localStorage.getItem(t);if(!o)return r;const i=parseInt(o,10);return Number.isFinite(i)?Yr(i,n,s):r}catch{return r}},Rn=(t,r)=>{if(!(typeof window>"u"))try{window.localStorage.setItem(t,String(r))}catch{}},yo=u.createContext({collapsed:!1,setCollapsed:()=>{},toggle:()=>{},collapse:()=>{},expand:()=>{},width:on,setWidth:()=>{},resetWidth:()=>{},minWidth:sn,maxWidth:ln,mobileOpen:!1,setMobileOpen:()=>{},openMobile:()=>{},closeMobile:()=>{},toggleMobile:()=>{}}),bo=({children:t,defaultCollapsed:r=!1,defaultWidth:n=on,minWidth:s=sn,maxWidth:o=ln,widthStorageKey:i=Ws})=>{const[l,c]=u.useState(r),[a,d]=u.useState(!1),[h,g]=u.useState(()=>zs(i,n,s,o)),m=u.useCallback(D=>{c(T=>typeof D=="function"?D(T):D)},[]),y=u.useCallback(()=>c(D=>!D),[]),w=u.useCallback(()=>c(!0),[]),v=u.useCallback(()=>c(!1),[]),R=u.useCallback(D=>{g(T=>{const G=typeof D=="function"?D(T):D,z=Yr(Math.round(G),s,o);return Rn(i,z),z})},[s,o,i]),L=u.useCallback(()=>{const D=Yr(n,s,o);Rn(i,D),g(D)},[n,s,o,i]),M=u.useCallback(D=>{d(T=>typeof D=="function"?D(T):D)},[]),b=u.useCallback(()=>d(!0),[]),S=u.useCallback(()=>d(!1),[]),E=u.useCallback(()=>d(D=>!D),[]),I=u.useMemo(()=>({collapsed:l,setCollapsed:m,toggle:y,collapse:w,expand:v,width:h,setWidth:R,resetWidth:L,minWidth:s,maxWidth:o,mobileOpen:a,setMobileOpen:M,openMobile:b,closeMobile:S,toggleMobile:E}),[l,m,y,w,v,h,R,L,s,o,a,M,b,S,E]);return e.jsx(yo.Provider,{value:I,children:t})},jo=()=>u.useContext(yo),vo=u.createContext(null),Co=({adapter:t,children:r})=>e.jsx(vo.Provider,{value:t,children:r}),at=()=>{const t=u.useContext(vo);if(!t)throw new Error("[@starasia/admin] Router adapter belum dipasang. Bungkus aplikasi dengan <App routerAdapter={...} /> atau <StarasiaRouterProvider adapter={...}>. Import adapter dari '@starasia/admin/adapters/react-router' atau '@starasia/admin/adapters/tanstack'.");return t},wo=({router:t,routerAdapter:r,menus:n=[],menuBottom:s,logo:o,appName:i="Workspace",initialUserData:l,theme:c})=>{const a=fo({initialUserData:l}),{theme:d}=Ft.useTheme();return e.jsx(Co,{adapter:r,children:e.jsx(rn.Provider,{value:{logo:o,appName:i,menus:n,userData:a.userData,setUserData:a.setUserData,menuBottom:s},children:e.jsx(go,{children:e.jsx(bo,{children:c?e.jsx(Ft.ThemeProvider,{value:c,children:t}):d?e.jsx(Ft.ThemeProvider,{value:d,children:t}):t})})})})},Hs=u.memo(wo);function Do({collapsed:t=!1,children:r}){if(!r)return null;const n=typeof r=="function",s=n?r({collapsed:t}):r;return s==null||s===!1?null:e.jsx("div",{style:{position:"sticky",top:"var(--app-header-height, 4rem)",zIndex:1,borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)",paddingLeft:t?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingRight:t?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingTop:"0.5rem",paddingBottom:"0.5rem",boxSizing:"border-box"},children:n?s:e.jsx("div",{style:{opacity:t?0:1,transition:"opacity 0.3s",visibility:t?"hidden":"visible"},children:s})})}const cn=u.createContext(null);function So({children:t}){const[r,n]=u.useState(null),[s,o]=u.useState(null),[i,l]=u.useState(null),[c,a]=u.useState(0),d=u.useCallback(()=>(a(h=>h+1),()=>a(h=>h-1)),[]);return e.jsx(cn.Provider,{value:{prependNode:r,appendNode:s,replaceNode:i,setPrependNode:n,setAppendNode:o,setReplaceNode:l,replaceCount:c,registerReplace:d},children:t})}function ko({children:t}){const r=u.useContext(cn);return r?e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:r.setPrependNode,style:{display:"contents"}}),r.replaceCount>0?e.jsx("div",{ref:r.setReplaceNode,style:{display:"contents"}}):t,e.jsx("div",{ref:r.setAppendNode,style:{display:"contents"}})]}):e.jsx(e.Fragment,{children:t})}function Ps({children:t,mode:r="append"}){const n=u.useContext(cn);if(u.useEffect(()=>{if(!(r!=="replace"||!n))return n.registerReplace()},[r,n]),!n)return process.env.NODE_ENV!=="production"&&console.warn("[HeaderLeftSlot] used outside AppLayout — content not rendered"),null;const s=r==="prepend"?n.prependNode:r==="replace"?n.replaceNode:n.appendNode;return s?xr.createPortal(t,s):null}const an=u.createContext(null);function Bo({children:t}){const[r,n]=u.useState({}),[s,o]=u.useState({}),i=u.useCallback((a,d)=>{n(h=>h[a]===d?h:{...h,[a]:d})},[]),l=u.useCallback(a=>(o(d=>({...d,[a]:(d[a]??0)+1})),()=>o(d=>({...d,[a]:Math.max(0,(d[a]??0)-1)}))),[]),c=u.useMemo(()=>({outletNodes:r,setOutletNode:i,slotCounts:s,registerSlot:l}),[r,i,s,l]);return e.jsx(an.Provider,{value:c,children:t})}function Xr({slotKey:t,fallback:r}){const n=u.useContext(an),s=n?(n.slotCounts[t]??0)>0:!1,o=u.useRef(n==null?void 0:n.setOutletNode);o.current=n==null?void 0:n.setOutletNode;const i=u.useCallback(l=>{var c;return(c=o.current)==null?void 0:c.call(o,t,l)},[t]);return e.jsx(e.Fragment,{children:s?e.jsx("div",{ref:i,style:{display:"contents"}}):r})}function Vs({slotKey:t,children:r}){const n=u.useContext(an),s=u.useRef(n==null?void 0:n.registerSlot);if(s.current=n==null?void 0:n.registerSlot,u.useEffect(()=>{var i;return(i=s.current)==null?void 0:i.call(s,t)},[t]),!n)return process.env.NODE_ENV!=="production"&&console.warn("[SidebarGroupSlot] used outside AppLayout — content not rendered"),null;const o=n.outletNodes[t];return o?xr.createPortal(r,o):null}const ar="moduleSwitcherGroupId",Jr="sa-module-switcher-change";function On(){if(typeof window>"u")return null;const t=window.localStorage.getItem(ar);if(t===null)return null;const r=Number(t);return Number.isFinite(r)?r:null}function Eo(t){typeof window>"u"||(t===null?window.localStorage.removeItem(ar):window.localStorage.setItem(ar,String(t)),window.dispatchEvent(new CustomEvent(Jr,{detail:t})))}function Ns(){Eo(null)}function dn(){const[t,r]=u.useState(()=>On());return u.useEffect(()=>{const s=()=>{r(On())},o=i=>{i.key===ar&&s()};return window.addEventListener(Jr,s),window.addEventListener("storage",o),()=>{window.removeEventListener(Jr,s),window.removeEventListener("storage",o)}},[]),{selectedGroupId:t,setSelectedGroupId:s=>{Eo(s),r(s)}}}const _s="4.5rem",qs="var(--app-header-height, 4rem)",Fo=t=>t?_s:qs;function An({icon:t,label:r,tooltip:n=r,active:s=!1,badge:o,showLabel:i=!0,onClick:l}){const[c,a]=u.useState(!1);return e.jsx(Me.Tooltip,{fluid:!0,label:n,position:"right",children:e.jsxs(x.Box,{as:"button",onClick:l,onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),"aria-label":n,"aria-current":s?"page":void 0,fullWidth:!0,direction:"column",align:"center",gap:"spacing-2",paddingBlock:"xs",style:{color:s?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)"},children:[e.jsxs(x.Box,{position:"relative",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",borderRadius:s?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:s?"white":c?"neutral":void 0,style:{borderColor:s?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:t,size:"sm"}),o&&!i&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",top:"top-n2",right:"right-n2",display:"inline-flex",borderRadius:"rounded-full",style:{boxShadow:"0 0 0 1px var(--sa-background-primary, #ffffff)"},children:e.jsx(it.BadgeDot,{tone:"error",variant:"solid",size:"xs"})}),o&&i&&e.jsx(x.Box,{position:"absolute",display:"inline-flex",style:{top:"-0.375rem",left:"1.5rem"},children:e.jsx(it.Badge,{text:String(o.value),variant:o.variant??"info",size:"xs",border:!0})})]}),i&&e.jsx(C.Text,{as:"span",fontSize:"xs",fontWeight:s?"medium":"normal",textAlign:"center",truncate:!0,style:{display:"block",maxWidth:"100%",color:"inherit"},children:r})]})})}function Zs({items:t,bottomItems:r,activeKey:n,onSelect:s,onAction:o,logo:i,panelCollapsed:l,onExpandPanel:c,showLabels:a=!0}){const[d,h]=u.useState(!1),g=l&&d;return e.jsxs(x.Box,{as:"nav","aria-label":"Primary navigation",bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:"0",style:{width:Fo(a),height:"100%"},children:[e.jsxs(x.Box,{onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),position:"relative",align:"center",justify:"center",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",flexShrink:"0",style:{height:"var(--app-header-height, 4rem)"},children:[e.jsx("img",{src:i,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",transition:"opacity 0.2s",opacity:g?0:1}}),l&&e.jsx(x.Box,{as:"button",onClick:c,"aria-label":"Expand sidebar",position:"absolute",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-sm",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:"var(--sa-text-primary, #292a2e)",opacity:g?1:0,pointerEvents:g?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})})]}),e.jsx(x.Box,{flex:"1",overflow:"overflow-y-auto",paddingBlock:"md",paddingInline:"xs",gap:"xs",children:t.map(m=>e.jsx(An,{icon:m.icon,label:m.label,tooltip:m.tooltip,badge:m.badge,showLabel:a,active:m.key===n,onClick:()=>s(m.key)},m.key))}),r&&r.length>0&&e.jsx(x.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:"xs",gap:"xs",flexShrink:"0",children:r.map(m=>e.jsx(An,{icon:m.icon,label:m.label,tooltip:m.tooltip,badge:m.badge,showLabel:a,onClick:()=>o(m)},m.key))})]})}function Gs({items:t,activeKey:r,onSelect:n}){return e.jsx(x.Box,{role:"tablist","aria-label":"Primary navigation",direction:"row",gap:"xs",paddingInline:"md",paddingBlock:"sm",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",flexShrink:"0",style:{overflowX:"auto",scrollbarWidth:"none"},children:t.map(s=>{const o=s.key===r;return e.jsxs(x.Box,{as:"button",role:"tab","aria-selected":o,onClick:()=>n(s.key),direction:"row",align:"center",gap:"spacing-4",paddingInline:"sm",height:"height-32",flexShrink:"0",borderRadius:o?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:o?"white":void 0,hover:o?void 0:{bg:"neutral"},style:{whiteSpace:"nowrap",color:o?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:o?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:s.icon,size:"sm"}),e.jsx(C.Text,{as:"span",fontSize:"sm",fontWeight:o?"medium":"normal",style:{color:"inherit"},children:s.label})]},s.key)})})}const Mr=(t,r)=>!t.groupIds||t.groupIds.includes(r.id)||r.parentGroupId!==void 0&&t.groupIds.includes(r.parentGroupId);let Jt=0,Dt=!1,Wn=new Set;const zn=new Set;function Qs(t,r){const[n,s]=u.useState(!1),o=u.useRef(null),i=u.useRef(null);return u.useLayoutEffect(()=>{const l=o.current;if(!l)return;let c=0;const a=()=>{c=0;const h=i.current;if(!h)return;const g=h.scrollWidth>l.clientWidth;s(m=>m===g?m:g)},d=new ResizeObserver(()=>{c||(c=requestAnimationFrame(a))});return d.observe(l),a(),()=>{c&&cancelAnimationFrame(c),d.disconnect()}},[t,r]),{containerRef:o,textRef:i,truncated:n}}function Hn({text:t,textStyle:r,active:n=!1}){const{containerRef:s,textRef:o,truncated:i}=Qs(t,n),l=e.jsx(C.Text,{ref:o,as:"span",fontSize:"md",fontWeight:n?"medium":"normal",truncate:!0,style:{display:"block",...r},children:t});return e.jsx(x.Box,{ref:s,display:"block",style:{flex:1,minWidth:0},children:i?e.jsx(Me.Tooltip,{fluid:!0,label:t,position:"top",children:l}):l})}const Us=200,$r="var(--app-header-height, 4rem)",Pn="44px",Lr=`calc((${$r} - 2rem) / 2)`,Vn=16;function Ys({children:t,headerLeftSlot:r,profile:n,isLoadingProfile:s,onLogout:o,isLoggingOut:i,loadingComponent:l,sidebarHeaderContent:c,headerActions:a,profileRole:d,profileMenuButtons:h,profileMenuItems:g,logoutButton:m,resizableSidebar:y=!0,rail:w}){var Gt,bt;const{useSearchParams:v,useNavigate:R,useLocation:L,Outlet:M}=at(),[b]=v(),S=b.get("embed")==="true",E=nn(),{badges:I}=po(),D=R(),T=L(),z=!we.useMediaQuery("md"),[A,P]=u.useState(!1),{collapsed:q,setCollapsed:Q,width:te,setWidth:J,resetWidth:$,minWidth:V,maxWidth:xe,mobileOpen:ue,setMobileOpen:Be}=jo(),[Ve,De]=u.useState(!1),[ge,pe]=u.useState(()=>new Set(Wn)),[Le,Ne]=u.useState(null),{selectedGroupId:Ae,setSelectedGroupId:ie}=dn(),ce=!!(w&&w.items.length>0),me=q&&!z&&!ce,je=q&&!z&&ce;u.useEffect(()=>{Wn=ge},[ge]);const Ee=u.useRef(null),et=u.useRef(null),tt=u.useRef(null),[W,X]=u.useState(!1),[U,ae]=u.useState(null),Se=y&&!z&&!q,ye=k=>Math.min(Math.max(k,V),xe),We=U??te,rt=k=>{var Qe,He,Ye;if(!Se)return;k.preventDefault();const _=k.clientX,Y=((Qe=tt.current)==null?void 0:Qe.getBoundingClientRect().width)??te;(Ye=(He=k.currentTarget).setPointerCapture)==null||Ye.call(He,k.pointerId),X(!0),document.body.style.userSelect="none",document.body.style.cursor="col-resize";let oe=0,he=Y;const Ie=qe=>{he=Y+(qe.clientX-_),oe||(oe=requestAnimationFrame(()=>{oe=0,ae(ye(he))}))},le=()=>{oe&&cancelAnimationFrame(oe),window.removeEventListener("pointermove",Ie),window.removeEventListener("pointerup",le),document.body.style.userSelect="",document.body.style.cursor="",ae(null),X(!1),he<Us?Q(!0):J(ye(he))};window.addEventListener("pointermove",Ie),window.addEventListener("pointerup",le)},Ge=k=>{Se&&(k.key==="ArrowLeft"?(k.preventDefault(),J(_=>_-Vn)):k.key==="ArrowRight"?(k.preventDefault(),J(_=>_+Vn)):k.key==="Home"?(k.preventDefault(),J(V)):k.key==="End"&&(k.preventDefault(),J(xe)))};u.useEffect(()=>{const k=Ee.current;if(!k)return;const _=()=>{Dt||(Jt=k.scrollTop)};return k.addEventListener("scroll",_),()=>k.removeEventListener("scroll",_)},[]);const Fe=()=>{const k=Ee.current;k&&Jt>0&&(Dt=!0,k.scrollTop=Jt,requestAnimationFrame(()=>{Dt=!1}))};u.useLayoutEffect(()=>{Dt=!0,Fe();const k=setTimeout(()=>{Dt=!1},300);return()=>clearTimeout(k)},[]),u.useLayoutEffect(()=>{E.menus.length>0&&(Jt>0?Fe():requestAnimationFrame(()=>{var _;const k=(_=Ee.current)==null?void 0:_.querySelector("[data-menu-active='true']");k&&k.scrollIntoView({block:"center",behavior:"instant"})}))},[E.menus]),u.useEffect(()=>{Dt=!0,Fe();const k=setTimeout(Fe,0),_=setTimeout(Fe,50),Y=setTimeout(Fe,100),oe=setTimeout(Fe,200),he=setTimeout(()=>{Dt=!1},300),Ie=setTimeout(()=>{const le=Ee.current,Qe=le==null?void 0:le.querySelector("[data-menu-active='true']");if(le&&Qe){const He=le.getBoundingClientRect(),Ye=Qe.getBoundingClientRect();Ye.top>=He.top&&Ye.bottom<=He.bottom||Qe.scrollIntoView({block:"center",behavior:"smooth"})}},250);return()=>{clearTimeout(k),clearTimeout(_),clearTimeout(Y),clearTimeout(oe),clearTimeout(he),clearTimeout(Ie)}},[T.pathname]),u.useEffect(()=>{et.current&&(et.current.scrollTop=0)},[T.pathname]),u.useEffect(()=>{z&&Be(!1)},[T.pathname,z]),u.useEffect(()=>{z&&Q(!0)},[z]),u.useEffect(()=>{const k=document.documentElement;return k.style.setProperty("--app-header-height",Pn),()=>{k.style.removeProperty("--app-header-height")}},[]);const mt=()=>{P(!0)},dt=()=>{P(!1)},ke=()=>{P(!1),o()},Te=k=>{const _=k.slotKey?[]:[k.to];return k.children&&_.push(...k.children.map(Y=>Y.to)),_},vt=[...E.menus.flatMap(k=>k.items.flatMap(Te)),...((Gt=E.menuBottom)==null?void 0:Gt.flatMap(Te))??[]],nt=k=>{if(!T.pathname.startsWith(k))return!1;const _=vt.filter(Y=>T.pathname.startsWith(Y)).sort((Y,oe)=>oe.length-Y.length)[0];return k===_},gt=u.useRef(w);gt.current=w;const pt=k=>{const _=gt.current;if(!_||_.items.length===0)return null;const Y=_.defaultKey??_.items[0].key,oe=_.items.find(le=>le.key===k),he=E.menus.find(le=>le.items.some(Qe=>Te(Qe).some(nt)));if(!he)return oe?oe.key:Y;if(oe&&Mr(oe,he))return oe.key;const Ie=_.items.find(le=>le.groupIds&&Mr(le,he))??_.items.find(le=>!le.groupIds);return(Ie==null?void 0:Ie.key)??(oe==null?void 0:oe.key)??Y},[yt,ze]=u.useState(()=>pt(null));u.useEffect(()=>{ze(k=>pt(k))},[T.pathname,E.menus]);const _e=ce?w.items.find(k=>k.key===yt)??w.items[0]:void 0,qt=k=>{ze(k),je&&Q(!1)},Zt=k=>{k.onClick?k.onClick():k.to&&D(k.to)};u.useEffect(()=>{var _;const k=Y=>{var he;const oe=Y.defaultExpanded&&!zn.has(Y.id);oe&&zn.add(Y.id),(oe||(he=Y.children)!=null&&he.some(Ie=>T.pathname.startsWith(Ie.to)))&&pe(Ie=>{const le=new Set(Ie);return le.add(Y.id),le})};E.menus.forEach(Y=>{Y.items.forEach(k)}),(_=E.menuBottom)==null||_.forEach(k)},[T.pathname,E.menus,E.menuBottom]);const jr=k=>{pe(_=>{const Y=new Set(_);return Y.has(k)?Y.delete(k):Y.add(k),Y})};u.useEffect(()=>{E.menus.length!==0&&Ae!==null&&!E.menus.some(k=>k.id===Ae)&&ie(null)},[E.menus,Ae,ie]);const vr=u.useMemo(()=>{if(_e!=null&&_e.groupIds)return E.menus.filter(he=>Mr(_e,he));const k=E.menus,_=ce?null:Ae;if(_!==null)return k.filter(he=>he.id===_||he.parentGroupId===_);const Y=k.filter(he=>he.parentGroupId===void 0),oe=k.filter(he=>he.parentGroupId!==void 0).flatMap(he=>he.items);return oe.length===0?Y:[...Y,{id:18,name:"Pengaturan",items:oe,parentGroupId:void 0}]},[E.menus,Ae,_e,ce]);if(S)return e.jsx(x.Box,{as:"main",overflow:"overflow-y-auto",bg:"surface-inverse",style:{height:"100vh"},children:t||e.jsx(M,{})});const Ct=k=>{const _=k.children&&k.children.length>0,Y=!!k.slotKey,oe=_||Y,he=ge.has(k.id),Ie=_?k.children.some(He=>nt(He.to)):Y?!1:nt(k.to),le=sr(k.badge,I[k.id]),Qe=!!le&&me;return e.jsxs(x.Box,{display:"block","data-menu-active":Ie||void 0,children:[e.jsxs(x.Box,{as:"button",onClick:He=>{if(Y&&me)D(k.to);else if(oe)if(me){const Ye=He.currentTarget.getBoundingClientRect();Ne({item:k,top:Ye.top,left:Ye.right+8})}else jr(k.id);else D(k.to)},fullWidth:!0,direction:"row",align:"center",justify:me?"center":void 0,gap:"sm",paddingInline:me?void 0:"sm",paddingBlock:"xs",height:"height-32",borderRadius:Ie?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:Ie?"white":void 0,hover:Ie?void 0:{bg:"neutral"},title:me?k.title:void 0,style:{textAlign:"left",color:Ie?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:Ie?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsxs(x.Box,{position:"relative",display:"inline-flex",flexShrink:"0",style:{alignItems:"center"},children:[e.jsx(B.Icon,{name:k.icon,size:"sm",style:{flexShrink:0}}),Qe&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",top:"top-n2",right:"right-n2",display:"inline-flex",borderRadius:"rounded-full",style:{boxShadow:"0 0 0 1px var(--sa-background-primary, #ffffff)"},children:e.jsx(it.BadgeDot,{tone:"error",variant:"solid",size:"xs"})})]}),!me&&e.jsxs(e.Fragment,{children:[e.jsx(Hn,{text:k.title,active:Ie,textStyle:{transition:"opacity 0.3s"}}),le&&e.jsx(it.Badge,{text:String(le.value),variant:le.variant??"info",size:"xs",border:!0}),oe&&e.jsx(B.Icon,{name:"ChevronDown",size:"sm",style:{flexShrink:0,transition:"transform 0.2s",transform:he?"rotate(180deg)":"rotate(0deg)"}})]})]}),oe&&!me&&(()=>{const He=k.children??[],Ye=Y?-1:He.findIndex(Je=>nt(Je.to)),qe=He.map(Je=>{const wt=sr(Je.badge,I[Je.id]),ut=nt(Je.to);return e.jsxs(x.Box,{as:"button",onClick:()=>D(Je.to),fullWidth:!0,direction:"row",align:"center",gap:"sm",paddingLeft:"sm",paddingRight:"sm",paddingBlock:"xs",height:"height-32",borderRadius:ut?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:ut?"white":void 0,hover:ut?void 0:{bg:"neutral"},style:{textAlign:"left",color:ut?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:ut?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:Je.icon,size:"sm",style:{flexShrink:0}}),e.jsx(Hn,{text:Je.title,active:ut}),wt&&e.jsx(it.Badge,{text:String(wt.value),variant:wt.variant??"info",size:"xs",border:!0})]},Je.id)});return e.jsxs(x.Box,{position:"relative",overflow:"overflow-hidden",style:{marginLeft:"1rem",paddingLeft:"0.75rem",transition:"all 0.3s ease-in-out",maxHeight:he?Y?"none":`${He.length*36}px`:"0px",opacity:he?1:0,marginTop:he?"0.25rem":"0px"},children:[e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",left:"left-0",top:"top-0",fullHeight:!0,style:{width:"1.5px",backgroundColor:"var(--sa-border-subtle, #0b120e24)",pointerEvents:"none"}}),Ye>=0&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",left:"left-0",height:"height-32",zIndex:"10",style:{top:`${Ye*32}px`,width:"1.5px",backgroundColor:"var(--sa-text-primary, #292a2e)",transition:"top 0.2s ease-in-out",pointerEvents:"none"}}),Y?e.jsx(Xr,{slotKey:k.slotKey,fallback:qe}):qe]})})()]},k.id)};return e.jsx(Bo,{children:e.jsxs(So,{children:[e.jsxs(x.Box,{direction:"row",position:"relative",style:{height:"100vh","--app-header-height":Pn,"--app-sidebar-width":z?"0px":ce?`calc(${Fo(w.showLabels??!0)} + ${je?"0px":`${We}px`})`:q?$r:`${We}px`,"--app-footer-zindex":z&&ue?"40":"998"},children:[z&&e.jsx(x.Box,{position:"fixed",zIndex:"40",bg:"black-alpha-a50",style:{inset:0,opacity:ue?.5:0,pointerEvents:ue?"auto":"none",transition:"opacity 0.3s"},onClick:()=>Be(!1)}),ce&&!z&&e.jsx(Zs,{items:w.items,bottomItems:w.bottomItems,activeKey:_e.key,onSelect:qt,onAction:Zt,logo:E.logo,panelCollapsed:je,onExpandPanel:()=>Q(!1),showLabels:w.showLabels??!0}),e.jsxs(x.Box,{as:"aside",ref:tt,"aria-hidden":je||void 0,bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:z?void 0:"0",style:{width:z?"16.375rem":je?"0px":q?$r:`${We}px`,...je&&{borderRightWidth:0,overflow:"hidden",visibility:"hidden"},position:z?"fixed":"relative",...z&&{inset:0,zIndex:50,transform:ue?"translateX(0)":"translateX(-100%)"},transition:W?"none":"all 0.3s ease-in-out",minWidth:0},children:[e.jsx(x.Box,{onMouseEnter:()=>De(!0),onMouseLeave:()=>De(!1),direction:"row",align:"center",justify:"space-between",paddingInline:me?void 0:"lg",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",position:"relative",style:{height:"var(--app-header-height, 4rem)",...me?{paddingInline:Lr}:null},children:(()=>{const k=ce&&!z,_=_e!=null&&_e.groupIds?_e.tooltip??_e.label:E.appName,Y=!z&&q&&!ue&&!ce,oe=Y&&Ve;return e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",flex:Y?"1":void 0,justify:Y?"center":void 0,style:{transition:"opacity 0.2s",opacity:oe?0:1,pointerEvents:oe?"none":"auto"},children:[!k&&e.jsx("img",{src:E.logo,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",flexShrink:0}}),(!q||ue)&&e.jsx(C.Text,{as:"span",fontSize:"md",fontWeight:"semibold",color:"primary",truncate:!0,style:{transition:"opacity 0.3s"},children:k?_:E.appName})]}),!z&&!q&&e.jsx(x.Box,{as:"button",onClick:()=>Q(!0),"aria-label":"Collapse sidebar",display:"inline-flex",align:"center",justify:"center",flexShrink:"0",style:{color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})}),Y&&e.jsx(x.Box,{as:"button",onClick:()=>Q(!1),"aria-label":"Expand sidebar",position:"absolute",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-sm",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:"var(--sa-text-primary, #292a2e)",opacity:oe?1:0,pointerEvents:oe?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})}),z&&e.jsx(x.Box,{as:"button",onClick:()=>Be(!1),"aria-label":"Close menu",align:"center",justify:"center",borderRadius:"rounded-md",style:{padding:"0.375rem",color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"Cross",size:"md"})})]})})()}),c&&e.jsx(Do,{collapsed:z||ce?!1:q,children:c}),ce&&z&&e.jsx(Gs,{items:w.items,activeKey:_e.key,onSelect:qt}),e.jsx(x.Box,{ref:Ee,flex:"1",overflow:"overflow-y-auto",paddingBlock:"lg",children:vr.map(k=>e.jsxs(x.Box,{marginBottom:"lg",children:[me?k.name&&e.jsx(x.Box,{"aria-label":k.name,direction:"row",align:"center",justify:"center",paddingBlock:"md",children:e.jsx(x.Box,{width:"width-16",style:{height:"2px",borderRadius:"1px",backgroundColor:k.color??"var(--sa-background-brand, #04254f)"}})}):k.name&&e.jsx(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"subtlest",textTransform:"uppercase",truncate:!0,style:{letterSpacing:"0.06em",paddingLeft:"1.25rem",paddingRight:"0.75rem",paddingBottom:"0.25rem",transition:"opacity 0.3s"},children:k.name}),e.jsx(x.Box,{paddingInline:me?void 0:"md",gap:"xs",style:me?{paddingInline:Lr}:void 0,children:k.slotKey?e.jsx(Xr,{slotKey:k.slotKey,fallback:k.items.map(_=>Ct(_))}):k.items.map(_=>Ct(_))})]},k.id))}),E.menuBottom&&E.menuBottom.length>0&&e.jsx(x.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:me?void 0:"md",bg:"surface-inverse",gap:"xs",flexShrink:"0",style:me?{paddingInline:Lr}:void 0,children:E.menuBottom.map(k=>Ct(k))}),Se&&e.jsx(x.Box,{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar","aria-valuenow":te,"aria-valuemin":V,"aria-valuemax":xe,tabIndex:0,onPointerDown:rt,onKeyDown:Ge,onDoubleClick:$,title:"Drag to resize · double-click to reset",position:"absolute",top:"top-0",right:"right-0",fullHeight:!0,style:{width:"6px",transform:"translateX(50%)",cursor:"col-resize",zIndex:5,touchAction:"none",background:W?"var(--sa-background-brand, #04254f)":"transparent",transition:"background 0.15s"},onMouseEnter:k=>{W||(k.currentTarget.style.background="var(--sa-border-bold, #0b120e40)")},onMouseLeave:k=>{W||(k.currentTarget.style.background="transparent")}})]}),e.jsxs(x.Box,{flex:"1",overflow:"overflow-hidden",children:[e.jsxs(x.Box,{as:"header",bg:"white",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",direction:"row",align:"center",justify:"space-between",paddingInline:"lg",flexShrink:"0",style:{height:"var(--app-header-height, 4rem)"},children:[e.jsxs(x.Box,{direction:"row",align:"center",gap:z?"lg":void 0,children:[z&&e.jsx(x.Box,{as:"button",onClick:()=>Be(!0),align:"center",justify:"center",borderRadius:"rounded-md",style:{padding:"0.375rem",color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"MenuBurger",size:"lg"})}),e.jsx(ko,{children:r})]}),e.jsxs(x.Box,{direction:"row",align:"center",gap:"md",children:[a,e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",cursor:"pointer",children:[!z&&e.jsxs(x.Box,{display:"block",textAlign:"right",customMaxWidth:"12.5rem",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",textAlign:"right",truncate:!0,lineHeight:"leading-none",children:s?"Loading...":(n==null?void 0:n.name)||"unknown"}),e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"right",truncate:!0,children:s?"":(n==null?void 0:n.email)||"unknown"})]}),e.jsx(lr.Avatar,{size:"sm",initials:((n==null?void 0:n.name)||"U")[0].toUpperCase(),bg:"var(--sa-background-brand, #04254f)",color:"var(--sa-background-primary, #ffffff)"}),e.jsx(B.Icon,{name:"ChevronDown",size:"xs",color:"subtle"})]})}),e.jsxs(O.MenuLists,{width:280,style:{paddingBlock:"12px",paddingInline:"12px",gap:"8px",marginTop:"16px"},children:[e.jsx(O.MenuHeading,{children:e.jsxs(x.Box,{align:"center",textAlign:"center",paddingBlock:"sm",fullWidth:!0,children:[e.jsx(lr.Avatar,{customSize:64,initials:((n==null?void 0:n.name)||"U")[0].toUpperCase(),bg:"var(--sa-background-brand, #04254f)",color:"var(--sa-background-primary, #ffffff)",style:{fontSize:"1.25rem",marginBottom:"0.75rem",boxShadow:"var(--sa-shadow-sm, 0 1px 2px 0 #0000000d)"}}),e.jsx(C.Text,{fontSize:"md",fontWeight:"semibold",color:"primary",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(n==null?void 0:n.name)||"unknown"}),e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(n==null?void 0:n.email)||"unknown"}),d&&e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:d})]})}),(h&&h.length>0||g)&&e.jsxs(O.MenuBody,{children:[h==null?void 0:h.map((k,_)=>e.jsx(O.MenuItem,{onClick:k.onClick,startIcon:e.jsx(B.Icon,{name:k.icon,size:"md"}),children:k.label},`${k.label}-${_}`)),g]}),m??e.jsx(O.MenuFooter,{children:e.jsx(O.MenuItem,{intent:"danger",onClick:mt,startIcon:e.jsx(B.Icon,{name:"Logout",size:"md"}),children:"Logout"})})]})]})]})]}),e.jsx(x.Box,{as:"main",ref:et,flex:"1",overflow:"overflow-y-auto",children:t||e.jsx(M,{})})]})]}),i&&l&&e.jsx(x.Box,{position:"fixed",align:"center",justify:"center",bg:"black-alpha-a70",style:{inset:0,zIndex:9999},children:l}),e.jsxs(Oe.Dialog,{isShow:A,onHide:dt,children:[e.jsx(Oe.DialogTitle,{children:"Confirmation Logout"}),e.jsx(Oe.DialogBody,{children:"Are you sure you want to end the session and exit the page?"}),e.jsx(Oe.DialogFooter,{children:e.jsx(x.Box,{direction:"column",display:"flex",align:"flex-end",justify:"center",children:e.jsxs(de.Flex,{direction:"row",gap:"sm",align:"center",children:[e.jsx(x.Box,{direction:"column",children:e.jsx(H.Button,{secondary:!0,onClick:dt,children:"Cancel"})}),e.jsx(x.Box,{direction:"column",children:e.jsx(H.Button,{primary:!0,onClick:ke,children:"Yes, Sure"})})]})})})]}),Le&&e.jsxs(e.Fragment,{children:[e.jsx(x.Box,{onClick:()=>Ne(null),position:"fixed",style:{inset:0,zIndex:60}}),e.jsxs(x.Box,{role:"dialog","aria-label":Le.item.title,position:"fixed",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-md",shadow:"shadow-lg",padding:"sm",gap:"spacing-2",style:{top:Le.top,left:Le.left,zIndex:61,minWidth:"13rem",maxWidth:"16rem"},children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-500",textTransform:"uppercase",style:{padding:"0.25rem 0.5rem 0.5rem",letterSpacing:"0.05em"},children:Le.item.title}),(bt=Le.item.children)==null?void 0:bt.map(k=>{const _=nt(k.to),Y=sr(k.badge,I[k.id]);return e.jsxs(x.Box,{as:"button",onClick:()=>{D(k.to),Ne(null)},fullWidth:!0,direction:"row",align:"center",gap:"md",paddingBlock:"sm",paddingInline:"md",borderRadius:"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:_?"primary-inverse":void 0,hover:_?void 0:{bg:"primary-inverse"},style:{textAlign:"left",borderColor:"transparent",color:_?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)"},children:[k.icon&&e.jsx(B.Icon,{name:k.icon,size:"sm",style:{flexShrink:0}}),e.jsx(C.Text,{as:"span",fontSize:"md",fontWeight:_?"medium":"normal",whiteSpace:"nowrap",style:{flex:1},children:k.title}),Y&&e.jsx(it.Badge,{text:String(Y.value),variant:Y.variant??"info",size:"xs",border:!0})]},k.id)})]})]})]})})}const Vt=u.forwardRef(({children:t,...r},n)=>e.jsx(x.Box,{ref:n,role:"button",cursor:"pointer","aria-pressed":"true",display:"inline-block",tabIndex:0,...r,children:t})),Nn=({title:t,iconName:r,textColor:n,iconColor:s,hoverTextColor:o,hoverIconColor:i})=>{const[l,c]=u.useState(!1),a=s??"var(--sa-text-subtle, #8c8f97)",d=n??"var(--sa-text-subtle, #8c8f97)",h=i??"var(--sa-text-subtle, #8c8f97)",g=o??"var(--sa-text-primary, #292a2e)";return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),style:{cursor:"pointer"},children:[e.jsx(B.Icon,{name:r||"ChevronLeft",size:"xs",style:{color:l?h:a,transition:"color 0.15s ease"}}),e.jsx(C.Text,{variant:"sub-h3",style:{color:l?g:d,transition:"color 0.15s ease"},children:t||"Back"})]})},Xs=({items:t,separator:r="/",iconName:n,iconColor:s,hoverIconColor:o})=>{const{Link:i}=at(),[l,c]=u.useState(!1),a=s??"var(--sa-text-subtle, #8c8f97)",d=o??"var(--sa-text-subtle, #8c8f97)",h=t.length>1?t[0]:void 0,g=!!(h!=null&&h.to||h!=null&&h.onClick),m=e.jsx(B.Icon,{name:n||"ChevronLeft",size:"xs",onMouseEnter:g?()=>c(!0):void 0,onMouseLeave:g?()=>c(!1):void 0,style:{color:g&&l?d:a,transition:"color 0.15s ease",cursor:g?"pointer":void 0}}),y=h!=null&&h.to?e.jsx(i,{to:h.to,replace:!0,style:{textDecoration:"none"},children:m}):h!=null&&h.onClick?e.jsx(Vt,{onClick:h.onClick,children:m}):m;return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",children:[y,e.jsx(Et.Breadcrumb,{separator:r,size:"md",children:t.map((w,v)=>{const R=v===t.length-1;return w.to&&!R?e.jsx(Et.BreadcrumbItem,{children:e.jsx(i,{to:w.to,children:w.label})},v):e.jsx(Et.BreadcrumbItem,{currentPage:R,children:e.jsx(Et.BreadcrumbLink,{onClick:R?void 0:w.onClick,children:w.label})},v)})})]})},Js=t=>{const{Link:r}=at(),{items:n,separator:s,onClick:o,navigateTo:i,...l}=t;return n&&n.length>0?e.jsx(Xs,{items:n,separator:s,iconName:l.iconName,iconColor:l.iconColor,hoverIconColor:l.hoverIconColor}):i?e.jsx(x.Box,{direction:"row",children:e.jsx(r,{to:i,replace:!0,style:{textDecoration:"none"},children:e.jsx(Nn,{...l})})}):e.jsx(x.Box,{direction:"row",children:e.jsx(Vt,{onClick:o,children:e.jsx(Nn,{...l})})})},Tr=[{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 _n(t,r,n){return{display:"flex",alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"var(--sa-radii-sm, 6px)",border:t?`2px solid ${n.activeBorder}`:"2px solid var(--sa-color-gray-200, #f0f1f2)",backgroundColor:t?n.activeBg:"var(--sa-color-gray-50, #ffffff)",boxShadow:t?r?`0 8px 20px ${n.activeShadow.replace("0.25","0.35")}`:`0 2px 8px ${n.activeShadow}`:r?"0 8px 20px rgba(0, 0, 0, 0.14)":"0 1px 4px rgba(0, 0, 0, 0.08)",transform:r?"translateY(-3px) scale(1.05)":"translateY(0) scale(1)",transition:"box-shadow 0.2s ease, transform 0.2s ease, background-color 0.15s ease, border-color 0.15s ease"}}const qn={fontSize:"11px",fontWeight:500,textAlign:"center",overflowWrap:"normal",wordBreak:"normal",color:"var(--sa-text-primary, #292a2e)",lineHeight:"1.3",maxWidth:"80px"},Zn={display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",background:"none",border:"none",cursor:"pointer",padding:0};function Io({isShow:t,onHide:r,menus:n,selectedGroupId:s,onSelect:o}){const[i,l]=u.useState(void 0),c=d=>{o(d),r()},a=Tr[0];return e.jsx(Oe.Dialog,{isShow:t,onHide:r,style:{width:560,background:"transparent",boxShadow:"none",border:"none"},children:e.jsx(Oe.DialogBody,{children:e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(5, 1fr)",gap:"16px"},children:[e.jsxs("button",{onClick:()=>c(null),onMouseEnter:()=>l("all"),onMouseLeave:()=>l(void 0),style:Zn,children:[e.jsx("div",{style:_n(s===null,i==="all",a),children:e.jsx("div",{style:{color:a.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(B.Icon,{name:"Grid",size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:qn,children:"Semua"})]}),n.map((d,h)=>{var v;const g=s===d.id,m=i===d.id,y=((v=d.items[0])==null?void 0:v.icon)??"Grid",w=Tr[(h+1)%Tr.length];return e.jsxs("button",{onClick:()=>c(d.id),onMouseEnter:()=>l(d.id),onMouseLeave:()=>l(void 0),style:Zn,children:[e.jsx("div",{style:_n(g,m,w),children:e.jsx("div",{style:{color:w.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(B.Icon,{name:y,size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:qn,children:d.name})]},d.id)})]})})})}function $s({onSelect:t,"aria-label":r="Pilih module"}={}){const n=nn(),{useNavigate:s}=at(),o=s(),{selectedGroupId:i,setSelectedGroupId:l}=dn(),[c,a]=u.useState(!1),d=h=>{var g;if(l(h),h!==null){const m=n.menus.find(w=>w.id===h),y=(g=m==null?void 0:m.items[0])==null?void 0:g.to;y&&o(y)}t==null||t(h)};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{style:{position:"relative"},children:[e.jsx("button",{onClick:()=>a(!0),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"2.25rem",height:"2.25rem",borderRadius:"var(--sa-radii-sm, 0.25rem)",border:"1px solid var(--sa-border-subtle, #0b120e24)",color:"var(--sa-text-subtle, #8c8f97)",backgroundColor:"transparent",cursor:"pointer"},"aria-label":r,onMouseEnter:h=>{h.currentTarget.style.backgroundColor="var(--sa-background-primary-inverse, #f8f8f8)"},onMouseLeave:h=>{h.currentTarget.style.backgroundColor="transparent"},children:e.jsx(B.Icon,{name:"GridApplication",size:"sm"})}),i!==null&&e.jsx("span",{style:{position:"absolute",top:"0.25rem",right:"0.25rem",width:"0.5rem",height:"0.5rem",borderRadius:"9999px",backgroundColor:"var(--sa-color-brand-500, #1a4fa0)"},"aria-hidden":"true"})]}),e.jsx(Io,{isShow:c,onHide:()=>a(!1),menus:n.menus.filter(h=>h.parentGroupId===void 0),selectedGroupId:i,onSelect:d})]})}const Ks=(t,r)=>{const n=[];if(r===0)return n.push(t),n;for(let s=0;s<t.length;s+=r){const o=t.slice(s,s+r);n.push(o)}return n},ei=u.memo(({value:t,label:r,separator:n,labelWidth:s,lastIndex:o,labelAlign:i="top"})=>{const l=u.useMemo(()=>({padding:0,paddingBottom:o?0:12,verticalAlign:i}),[o,i]),c=u.useMemo(()=>({padding:0,paddingRight:12,paddingLeft:12,paddingBottom:o?0:12,verticalAlign:i}),[o,i]),a=()=>typeof r=="string"?e.jsx(C.Text,{fontWeight:"medium",color:"subtlest",children:r}):r,d=()=>typeof t=="string"||typeof t=="number"?e.jsx(C.Text,{color:"primary",fontWeight:"medium",children:t}):t,h=()=>typeof n=="string"||typeof n=="number"?e.jsx(C.Text,{fontWeight:"medium",color:"subtlest",children:n}):n;return e.jsxs(Z.Tr,{children:[e.jsx(Z.Td,{style:l,width:s,children:a()}),n?e.jsx(Z.Td,{style:c,width:24,children:h()}):null,e.jsx(Z.Td,{style:l,children:d()})]})}),ti=u.memo(({fields:t,separator:r,labelWidth:n})=>e.jsx(Z.Table,{withColumnBorder:!1,withRowBorder:!1,children:t.map((s,o)=>e.jsx(ei,{separator:r,labelWidth:n,lastIndex:o===t.length-1,...s},`field-group-field-${o}`))})),ri=u.memo(({maxRow:t=0,maxColumn:r=2,separator:n=":",fields:s=[],labelWidth:o=150,bordered:i=!1})=>{const l=u.useMemo(()=>Ks(s,t),[s,t]),c=l.length>2,a=()=>{switch(r){case 1:return"width-full";case 2:return"width-1-2";case 3:return"width-1-3";case 4:return"width-1-4";default:return"width-1-2"}};return e.jsx(x.Box,{gap:c?void 0:"lg",direction:"row",flexWrap:"wrap",borderRadius:"rounded-sm",padding:"lg",paddingBottom:c?"xs":"lg",bg:"accent-dark-tertiary",borderWidth:i?"border":void 0,borderStyle:i?"border-solid":void 0,borderColor:i?"border-subtle":void 0,children:l.map((d,h)=>e.jsx(x.Box,{direction:"column",flex:c?void 0:"1",width:c?a():void 0,marginBottom:c?"lg":void 0,children:e.jsx(ti,{labelWidth:o,fields:d,separator:n})},h))})}),ni=({backButton:t})=>{const[r,n]=u.useState(!1),s=(t==null?void 0:t.iconColor)??"var(--sa-text-subtle, #8c8f97)",o=(t==null?void 0:t.textColor)??"var(--sa-text-subtle, #8c8f97)",i=(t==null?void 0:t.hoverIconColor)??"var(--sa-text-subtle, #8c8f97)",l=(t==null?void 0:t.hoverTextColor)??"var(--sa-text-primary, #292a2e)";return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),style:{cursor:"pointer"},children:[e.jsx(B.Icon,{name:(t==null?void 0:t.iconName)||"ChevronLeft",size:"xs",style:{color:r?i:s,transition:"color 0.15s ease"}}),e.jsx(C.Text,{variant:"sub-h3",style:{color:r?l:o,textDecoration:r?"underline":"none",transition:"color 0.15s ease"},children:(t==null?void 0:t.title)||"Back"})]})},Mo=({backButton:t,title:r,titleIcon:n,titleTag:s,children:o,header:i=!0,headerBorder:l=!1,disableAnimation:c=!1,scrollable:a=!1,stickyHeader:d=!1,subHeaders:h,action:g,titleTagProps:m,containerProps:y,headerProps:w})=>{const v=we.useMediaQuery("md"),{Link:R,useNavigate:L}=at(),M=L(),b=t==null?void 0:t.show,S=()=>{if(typeof(t==null?void 0:t.onClick)=="function"){t.onClick();return}M(-1,{replace:!0})},E=()=>{if(!g)return null;if(u.isValidElement(g))return g;const A=g.filter(P=>P&&(P.title||P.icon));return A.length===0?null:v?e.jsx(x.Box,{direction:"row",gap:"md",children:A.map(({title:P,icon:q,buttonProps:Q,onClick:te},J)=>e.jsx(H.Button,{iconLeft:q?e.jsx(B.Icon,{name:q,size:"md"}):void 0,onClick:te,...Q,children:P},`action-${J}`))}):e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"tertiary",size:"sm",iconLeft:e.jsx(B.Icon,{name:"MenuBurger"}),"aria-label":"Actions"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{minWidth:200},children:A.map(({title:P,icon:q,buttonProps:Q,onClick:te},J)=>{const $=(Q==null?void 0:Q.tone)==="error"||(Q==null?void 0:Q.danger)===!0;return e.jsx(O.MenuItem,{intent:$?"danger":void 0,disabled:Q==null?void 0:Q.disabled,startIcon:q?e.jsx(B.Icon,{name:q}):void 0,onClick:te,children:P},`action-${J}`)})})})]})},I=()=>{const A=e.jsx(ni,{backButton:t});return t!=null&&t.navigateTo?e.jsx(x.Box,{direction:"row",children:e.jsx(R,{to:t.navigateTo,replace:!0,style:{textDecoration:"none"},children:A})}):e.jsx(x.Box,{direction:"row",children:e.jsx(Vt,{onClick:S,children:A})})},D=()=>{const A=!!r,P=Array.isArray(g)&&g.length>0,q=u.isValidElement(g)?!0:P;if(!A&&!q&&!b)return null;const te=v||!v&&P;return e.jsxs(x.Box,{direction:"column",gap:"xs",paddingBlock:(w==null?void 0:w.paddingBlock)??"sm",paddingInline:(w==null?void 0:w.paddingInline)??"md",...w,style:{...l?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...w==null?void 0:w.style},children:[b&&I(),(A||q)&&e.jsxs(x.Box,{direction:te?"row":"column",gap:"sm",justify:"space-between",align:te?"center":"flex-start",children:[A?typeof r=="string"?e.jsxs(x.Box,{direction:"row",gap:"lg",align:"center",children:[e.jsxs(x.Box,{direction:"row",gap:"sm",align:"center",children:[n&&e.jsx(B.Icon,{name:n,size:"md",color:"primary"}),e.jsx(C.Text,{variant:"h3",fontWeight:"semibold",children:r})]}),s&&e.jsx(it.Badge,{border:!0,size:"lg",text:s,...m})]}):r:null,E()]})]})},T=()=>{if(!h||h.length===0)return null;const A=h.filter(Q=>Q.show!==!1);if(A.length===0)return null;let P=0,q=-1/0;return A.forEach((Q,te)=>{const J=Q.order??0;J>=q&&(q=J,P=te)}),A.map(({content:Q,order:te,borderBottom:J=!0,keepBottomPadding:$=!1,paddingInline:V=!0,paddingBlock:xe=!0},ue)=>e.jsx(x.Box,{direction:"column",paddingTop:xe?"sm":"spacing-0",paddingBottom:xe&&(J||$||ue===P)?"sm":"spacing-0",paddingInline:V?"md":"spacing-0",style:{...J?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...te!==void 0?{order:te}:{}},children:Q},`sub-header-${ue}`))},G=()=>{const A=i?D():null,P=T();return!A&&!P?null:e.jsxs(x.Box,{direction:"column",style:{...a?{position:"sticky",left:0,...d?{top:0}:{},zIndex:2,background:"var(--sa-background-primary, #ffffff)"}:{},marginBottom:P?"var(--sa-spacing-0)":"var(--sa-spacing-md)"},children:[A,P]})},z=()=>o;return e.jsxs(x.Box,{direction:"column",as:"main",...y,style:{...a?{height:"100%",minHeight:0,overflow:"auto"}:{},...(y==null?void 0:y.style)??{},...c?{}:{animation:"pageLayoutEnter 320ms cubic-bezier(0.16, 1, 0.3, 1) backwards"}},children:[G(),z()]})},oi=t=>{const{useLocation:r}=at(),n=r();return e.jsx(Mo,{...t},n.pathname)},si=t=>t.remountOnRouteChange?e.jsx(oi,{...t}):e.jsx(Mo,{...t}),ii=u.memo(si),li={icon:"Cross",title:""},ci=320,Gn=16,Qn=4,ai=8,Lo=u.forwardRef(({onHide:t,show:r,withBlur:n=!1,style:s,children:o,closeButton:i=li,paddingHorizontal:l=!0,width:c,minWidth:a,maxWidth:d,hideBackdrop:h=!1,title:g,headerAction:m,header:y=!0,widthPresets:w,resizable:v=!0,resizeMin:R=ci,resizeMax:L,onWidthChange:M},b)=>{const E=!we.useMediaQuery("md"),I=c??d??a??"357px",D=w??[],T=D.length>1,[G,z]=u.useState(()=>{const ie=D.indexOf(I);return ie>=0?ie:0}),[A,P]=u.useState(null),[q,Q]=u.useState(!1),[te,J]=u.useState(!1),$=u.useRef(null),V=ie=>{$.current=ie,typeof b=="function"?b(ie):b&&(b.current=ie)},xe=T?D[G]:I,ue=A!=null?`${A}px`:xe,Be=v&&!E,Ve=G===D.length-1,De=()=>{const ie=(G+1)%D.length;P(null),z(ie),M==null||M(D[ie])},ge=u.useCallback(ie=>{const ce=L??window.innerWidth;return Math.min(Math.max(ie,R),ce)},[R,L]),pe=u.useRef(null),Le=ie=>{if(!Be)return;ie.preventDefault();const ce=ie.currentTarget;ce.setPointerCapture(ie.pointerId),Q(!0);const me=document.body.style.cursor,je=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let Ee=null;const et=W=>{const X=ge(window.innerWidth-W.clientX);pe.current=X,Ee==null&&(Ee=window.requestAnimationFrame(()=>{Ee=null,pe.current!=null&&P(pe.current)}))},tt=W=>{Ee!=null&&window.cancelAnimationFrame(Ee),pe.current!=null&&P(pe.current),ce.releasePointerCapture(W.pointerId),ce.removeEventListener("pointermove",et),ce.removeEventListener("pointerup",tt),ce.removeEventListener("pointercancel",tt),document.body.style.cursor=me,document.body.style.userSelect=je,Q(!1),pe.current!=null&&(M==null||M(`${pe.current}px`))};ce.addEventListener("pointermove",et),ce.addEventListener("pointerup",tt),ce.addEventListener("pointercancel",tt)},Ne=ie=>{var Ee;if(!Be||ie.key!=="ArrowLeft"&&ie.key!=="ArrowRight")return;ie.preventDefault();const ce=ie.key==="ArrowLeft"?Gn:-Gn,me=A??((Ee=$.current)==null?void 0:Ee.offsetWidth)??R,je=ge(me+ce);P(je),M==null||M(`${je}px`)},Ae=()=>{Be&&(P(null),M==null||M(xe))};return e.jsx(cr.Drawer,{blur:n,isShow:r,position:"right",onHide:t,ref:V,size:ue,style:s,flush:!0,radius:"none",hideBackdrop:h,children:e.jsxs(x.Box,{direction:"column",height:"height-full",children:[Be?e.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Ubah lebar panel",tabIndex:0,onPointerDown:Le,onKeyDown:Ne,onDoubleClick:Ae,title:"Tarik untuk mengubah lebar — klik dua kali untuk reset",onPointerEnter:()=>J(!0),onPointerLeave:()=>J(!1),style:{position:"absolute",left:0,top:0,bottom:0,width:ai,cursor:"col-resize",zIndex:1,background:q||te?`linear-gradient(to right, var(--sa-border-brand, var(--sa-border-subtle)) 0 ${Qn}px, transparent ${Qn}px)`:"transparent",transition:"background 0.15s",touchAction:"none"}}):null,y?e.jsxs(x.Box,{direction:"row",align:"center",justify:"space-between",gap:"sm",paddingInline:"md",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",customHeight:"var(--app-header-height, 44px)",flexShrink:"0",children:[e.jsx(x.Box,{direction:"row",align:"center",gap:"sm",overflow:"overflow-hidden",children:typeof g=="string"?e.jsx(C.Text,{fontSize:"md",fontWeight:"bold",children:g}):g}),e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",flexShrink:"0",children:[m,T?e.jsx(H.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:De,"aria-label":Ve?"Kecilkan panel":"Lebarkan panel",iconRight:e.jsx(B.Icon,{name:Ve?"ChevronRight":"ChevronLeft"})}):null,i?e.jsx(H.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:t,"aria-label":i.title||"Tutup",iconRight:e.jsx(B.Icon,{name:i.icon}),children:i.title||void 0}):null]})]}):null,e.jsx(x.Box,{direction:"column",paddingBlock:"md",paddingInline:l?"md":"spacing-0",overflow:"overflow-y-auto",style:{flex:1,minHeight:0},children:o})]})})}),un=u.memo(({children:t,borderBottom:r=!0,padding:n=!0})=>{const s=we.useMediaQuery("lg");return e.jsx(x.Box,{direction:"column",padding:n?"md":"spacing-0",paddingLeft:n?"md":"spacing-0",paddingRight:n?"md":"spacing-0",style:r?{borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:t})}),xn=u.memo(({children:t,borderTop:r=!0,padding:n=!0})=>{const s=we.useMediaQuery("lg");return e.jsx(x.Box,{direction:"column",padding:n?"md":"spacing-0",paddingLeft:n?"md":"spacing-0",paddingRight:n?"md":"spacing-0",style:r?{borderTop:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:t})}),di=u.memo(({children:t,...r})=>e.jsx(x.Box,{direction:"column",padding:"md",paddingLeft:"md",paddingRight:"md",gap:"md",...r,children:t})),ui=u.memo(({children:t,title:r,titleTag:n,action:s,header:o,footer:i,actionContainer:l,containerProps:c,bodyProps:a,headerProps:d={borderBottom:!0},footerProps:h={borderTop:!0},variantTag:g="info"})=>{const m=we.useMediaQuery("lg"),y=()=>n?e.jsxs(x.Box,{direction:"row",gap:"sm",align:"center",children:[e.jsx(C.Text,{fontWeight:"medium",children:r}),e.jsx(it.Badges,{border:!0,text:n,variant:g})]}):e.jsx(C.Text,{fontWeight:"medium",children:r}),w=()=>o||e.jsxs(x.Box,{direction:"row",justify:"space-between",align:"flex-start",gap:"md",children:[e.jsx(x.Box,{direction:"column",children:r?y():null}),e.jsx(x.Box,{direction:"column",style:m?{width:"100%",maxWidth:"19.313rem"}:{flex:1},...l,children:s??null})]}),v=!!(o||r||s);return e.jsxs(x.Box,{direction:"column",bg:"white",borderRadius:"rounded-xs",as:"section",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",...c,style:{backgroundColor:"var(--sa-background-primary, #ffffff)",...(c==null?void 0:c.style)??{}},children:[o!==null&&v?e.jsx(un,{...d,children:w()}):null,e.jsx(di,{...a,children:t}),i?e.jsx(xn,{...h,children:i}):null]})}),xi=t=>e.jsx(C.Text,{variant:"h1",children:t.children,...t.props}),hi=t=>e.jsx(C.Text,{variant:"h2",children:t.children,...t.props}),fi=t=>e.jsx(C.Text,{variant:"h3",children:t.children,...t.props}),mi=t=>e.jsx(C.Text,{variant:"h4",children:t.children,...t.props}),gi=t=>e.jsx(C.Text,{variant:"h5",children:t.children,...t.props}),pi=t=>e.jsx(C.Text,{variant:"h6",children:t.children,...t.props}),yi=t=>e.jsx(C.Text,{variant:"sub-h1",children:t.children,...t.props}),bi=t=>e.jsx(C.Text,{variant:"sub-h2",children:t.children,...t.props}),ji=t=>e.jsx(C.Text,{variant:"sub-h3",children:t.children,...t.props}),vi=t=>e.jsx(C.Text,{variant:"body-1",children:t.children,...t.props}),Ci=t=>e.jsx(C.Text,{variant:"body-2",children:t.children,...t.props}),wi=t=>e.jsx(C.Text,{variant:"body-3",children:t.children,...t.props}),Ke={H1:xi,H2:hi,H3:fi,H4:mi,H5:gi,H6:pi,SubH1:yi,SubH2:bi,SubH3:ji,Body1:vi,Body2:Ci,Body3:wi},Ze=()=>{const{useSearchParams:t,useParams:r,useLocation:n}=at(),[s,o]=t(),i=Mt.searchParamsToObject(s.toString()),l=r(),c=n(),a=l.id;return{setSearchParams:o,searchParams:s,searchQueries:i,isHasQuery:(y,w)=>s.has(y)&&s.get(y)===w,getQueryParam:y=>s.get(y),getRouteParam:y=>l[y],params:l,location:c,id:a,hasId:!!a}},To=t=>JSON.stringify(t),Ro=t=>JSON.stringify(t),Oo=t=>JSON.stringify(t),Ao=t=>JSON.stringify(t),Di=t=>t,Si=t=>JSON.stringify(t),ct=t=>{if(typeof t!="string"||t==="")return{};try{const r=JSON.parse(t);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}},lt=t=>{if(!(typeof t!="string"||t===""))try{return JSON.parse(t)}catch{return}},Pt=({value:t,name:r,type:n,withSearchParam:s=!0,setSearchParams:o,searchQueries:i,dropdownSearchKey:l,filterKey:c="filter",pageKey:a="page"})=>{if(s){let d;switch(n){case"search":d=Di(t);break;case"dropdown":case"dropdown-multiple":d=To(t);break;case"radio":d=Ro(t);break;case"date-range":d=Oo(t);break;case"advanced-date-range":d=Si(t);break;case"date":d=Ao(t);break;default:d=t;break}if(typeof d<"u"){const h={...ct(i[c]),[r]:d},g={...i};l&&typeof l=="string"&&delete g[l],delete g[a];const m={...g,[c]:JSON.stringify(h)},y=new URLSearchParams(i).toString(),w=new URLSearchParams(m).toString();if(y===w)return;o(m)}}},ir=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{var c,a,d,h;const o=n.get(r)||void 0,i=o&&typeof o=="string"?ct(o):void 0,l=i?i[t]:void 0;return s==="label"&&l?(a=(c=lt(l))==null?void 0:c[0])==null?void 0:a.label:s==="value"&&l?(h=(d=lt(l))==null?void 0:d[0])==null?void 0:h.value:l},Wo=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{var c,a;const o=n.get(r)||void 0,i=o&&typeof o=="string"?ct(o):void 0,l=i?i[t]:void 0;return s==="label"&&l?(c=lt(l))==null?void 0:c.map(d=>d.label):s==="value"&&l?(a=lt(l))==null?void 0:a.map(d=>d.value):s==="array"&&l?lt(l):l},ki=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{var c,a,d;const o=n.get(r)||void 0,i=o&&typeof o=="string"?ct(o):void 0,l=i?i[t]:void 0;return s==="id"&&l?(c=lt(l))==null?void 0:c.id:s==="label"&&l?(a=lt(l))==null?void 0:a.label:s==="value"&&l?(d=lt(l))==null?void 0:d.value:l},hr=(t,r,n)=>{const s=r.get(n||"filter")||void 0,o=s&&typeof s=="string"?ct(s):void 0;return o?o[t]:void 0},Bi=({name:t,filterKey:r="filter",searchParams:n})=>{var l,c;const s=n.get(r||"filter")||void 0,o=s&&typeof s=="string"?ct(s):void 0,i=o?o[t]:void 0;return{start:i?(l=lt(i))==null?void 0:l.from:void 0,end:i?(c=lt(i))==null?void 0:c.to:void 0}},zo=({name:t,filterKey:r="filter",searchParams:n})=>{const s=n.get(r||"filter")||void 0,o=s&&typeof s=="string"?ct(s):void 0,i=o?o[t]:void 0;return i?lt(i):void 0},Ei=(t,{filterKey:r="filter",perPageKey:n="perPage",pageKey:s="page"})=>{const o=t.get(r)||void 0,i=t.get(n)||void 0,l=t.get(s)||void 0;return!!o||!!i||!!l},Ho=({isOpen:t,onClose:r,filterKey:n,pageKey:s,filters:o})=>{const{searchParams:i,setSearchParams:l,searchQueries:c}=Ze(),[a,d]=u.useState({}),h=()=>{i.delete(n||"filter"),l(i)},g=(m,y)=>{switch(m.type){case"radio":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}case"dropdown":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}case"date-range":return e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y);case"date":return e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y);case"dropdown-multiple":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}default:return null}};return e.jsx(Lo,{onHide:r,show:t||!1,children:e.jsxs(x.Box,{direction:"column",gap:"md",children:[e.jsxs(de.Flex,{direction:"row",justify:"space-between",align:"center",children:[e.jsx(x.Box,{direction:"column",children:"Filter"}),e.jsx(x.Box,{direction:"column",style:{cursor:"pointer"},onClick:h,children:"Reset"})]}),o==null?void 0:o.map((m,y)=>g(m,y))]})})},Po=({searchKey:t="q",statusKey:r="status",searchPlaceholder:n="Search",searchHighlightPlaceholder:s,extendedFilter:o,showSearchFilter:i=!0,showStatusFilter:l=!0,filterKey:c="filter",pageKey:a="page",customWidthSearch:d,handleOnReset:h,filterConfigs:g,buttonToggleProps:m,position:y="right",titleSearchLabel:w="Work Order",withTitleLabels:v=!1})=>{const L=(m==null?void 0:m.isShowLabel)??!0,[M,b]=u.useState(!1),[S,E]=u.useState(0),I=()=>{E(V=>V+1)},{searchParams:D,setSearchParams:T,getQueryParam:G}=Ze(),z=Mt.searchParamsToObject(D.toString()),A=hr(t,D,c)||"",[P,q]=u.useState(A),Q=G(c),J=!!(Q&&!(()=>{if(Q)try{const V=JSON.parse(Q);return Object.keys(V).length===1&&V[t]===""}catch(V){console.error("Filter parameter is not a valid JSON:",V)}return!1})()),$=we.useMediaQuery("md");return u.useEffect(()=>{q(A)},[A]),u.useEffect(()=>{if(P===A)return;const V=window.setTimeout(()=>{Pt({value:P,name:t,type:"search",searchQueries:z,setSearchParams:T,filterKey:c,pageKey:a})},350);return()=>{window.clearTimeout(V)}},[P,A,t,z,T,c,a]),e.jsxs(de.Flex,{gap:"md",style:{flexDirection:$&&y==="left"?"row":$&&y==="right"?"row-reverse":"column"},align:"flex-end",children:[J&&e.jsx(x.Box,{direction:"column",justify:"flex-end",children:e.jsx(H.Button,{onClick:()=>{const V=new URLSearchParams(D);V.delete(c),T(V),q(""),I(),h&&h()},variant:"outline",tone:"neutral",children:e.jsx(C.Text,{color:"error",fontWeight:"semibold",children:"Reset"})})}),o==null?void 0:o.map(({minWidth:V,content:xe,title:ue,onClickContainer:Be},Ve)=>e.jsxs(x.Box,{direction:"column",gap:"sm",onClick:Be,style:{minWidth:V},children:[ue&&e.jsx(Ke.SubH3,{children:ue}),xe]},`extended-filter-${Ve}-${S}`)),!!(g!=null&&g.length)&&e.jsx(H.Button,{primary:J,secondary:!J,iconLeft:e.jsx(B.Icon,{size:"sm",name:(m==null?void 0:m.icon)||"FilterHorizontal",style:{color:Q?"var(--sa-background-brand, #04254f)":"var(--sa-text-primary, #292a2e)"}}),fullWidth:!$,onClick:()=>b(!0),children:L?"Filter":void 0}),l&&e.jsxs(x.Box,{direction:"column",gap:"sm",style:{minWidth:"126px"},children:[v&&e.jsx(Ke.SubH3,{children:"Status"}),e.jsx(It.Dropdown,{dropdownLists:[{label:"Active",value:"active"},{label:"InActive",value:"inactive"}],defaultValue:ir({get:"value",name:r,searchParams:D,filterKey:c})?[{label:ir({get:"value",name:r,searchParams:D,filterKey:c})==="active"?"Active":"InActive",value:ir({get:"value",name:r,searchParams:D,filterKey:c})}]:[],onChange:V=>Pt({value:V,name:r,type:"dropdown",searchQueries:z,setSearchParams:T,filterKey:c}),placeholder:v?"All":"All Status"},S)]}),i&&e.jsxs(x.Box,{direction:"column",gap:"sm",style:{width:d&&$?d:$?"310px":""},children:[v&&e.jsxs(Ke.SubH3,{children:["Search for ",w]}),e.jsx(ht.Input,{placeholder:n,leftIcon:e.jsx(B.Icon,{name:"Search",width:20,height:20}),onChange:V=>q(V.target.value),value:P,fullWidth:!0},S+1+c)]}),e.jsx(Ho,{isOpen:M,onClose:()=>b(!1),filterKey:c,filters:g,pageKey:a})]})},Fi=t=>t==="checkbox-multiple"?"dropdown-multiple":t==="radio"?"dropdown":t==="date-compact"?"date":t==="text"?"search":t;function hn({configs:t,filterKey:r="filter",activeFilterKey:n="filters",pageKey:s="page",searchKey:o="q"}){const{searchParams:i,setSearchParams:l,searchQueries:c}=Ze(),a=u.useMemo(()=>Object.fromEntries(t.map(S=>[S.key,S])),[t]),d=u.useMemo(()=>{const S=(i.get(n)||"").split(",").map(I=>I.trim()).filter(Boolean),E=Object.keys(ct(i.get(r))).filter(I=>I!==o);return t.map(I=>I.key).filter(I=>{const D=a[I];return(D==null?void 0:D.locked)||S.includes(I)||E.includes(I)})},[i,n,r,o,t,a]),h=u.useCallback(S=>ct(S[r]),[r]),g=u.useCallback(S=>{const E={...c};S.length?E[n]=S.join(","):delete E[n],l(E)},[c,n,l]),m=u.useCallback(S=>{d.includes(S)||g([...d,S])},[d,g]),y=u.useCallback(S=>{var T;if((T=a[S])!=null&&T.locked)return;const E={...c},I=d.filter(G=>G!==S);I.length?E[n]=I.join(","):delete E[n];const D=h(E);S in D&&(delete D[S],Object.keys(D).length?E[r]=JSON.stringify(D):delete E[r]),delete E[s],l(E)},[c,d,n,r,s,h,l,a]),w=u.useCallback(S=>d.includes(S)?y(S):m(S),[d,m,y]),v=u.useCallback(S=>{switch(S.type){case"dropdown":case"dropdown-multiple":case"checkbox-multiple":case"radio":return Wo({name:S.key,get:"array",searchParams:i,filterKey:r})||[];case"date":{const E=zo({name:S.key,searchParams:i,filterKey:r});return E?new Date(E):void 0}case"date-compact":{const I=h(Object.fromEntries(i.entries()))[S.key];return I&&typeof I=="object"?I:void 0}case"text":{const I=h(Object.fromEntries(i.entries()))[S.key];return typeof I=="string"?I:void 0}default:return}},[i,r,h]),R=u.useCallback((S,E)=>{if(S.type==="date-compact"||S.type==="text"){const I={...c},D=h(I);E==null||E===""?delete D[S.key]:D[S.key]=E,Object.keys(D).length?I[r]=JSON.stringify(D):delete I[r],delete I[s],l(I);return}Pt({value:E,name:S.key,type:Fi(S.type),searchQueries:c,setSearchParams:l,filterKey:r,pageKey:s})},[c,l,r,s,h]),L=u.useCallback(S=>{const E={...c},I=h(E);S in I&&(delete I[S],Object.keys(I).length?E[r]=JSON.stringify(I):delete E[r]),delete E[s],l(E)},[c,r,s,h,l]),M=u.useCallback(()=>{const S={...c};delete S[r],delete S[n],delete S[s],l(S)},[c,r,n,s,l]),b=d.length>0;return{activeKeys:d,configByKey:a,hasActiveFilter:b,addFilter:m,removeFilter:y,toggleFilter:w,getValue:v,setValue:R,clearValue:L,clearAll:M}}const fn={get(t){return zt.storage.get(t)??null},set(t,r){zt.storage.save(t,r)},remove(t){zt.storage.delete(t)}},Tt={columns:t=>`filterbar:colprefs:${t}`,savedViews:t=>`filterbar:views:${t}`,lastState:t=>`filterbar:last:${t}`,perPage:t=>`filterbar:perpage:${t}`,tableSort:t=>`tablelayout:sort:${t}`},$t=(t,r)=>{const n=new Set(r.map(i=>i.key)),s=t.order.filter(i=>n.has(i));for(const i of r)s.includes(i.key)||s.push(i.key);const o=t.hidden.filter(i=>n.has(i));return{order:s,hidden:o}};function Ii({columns:t,scopeId:r,storage:n,onColumnsChange:s,value:o}){const i=u.useMemo(()=>({order:t.map(D=>D.key),hidden:[]}),[t]),l=r?Tt.columns(r):void 0,c=(D,T)=>$t({order:D.order??T,hidden:D.hidden??[]},t),[a,d]=u.useState(()=>{if(o&&(o.order||o.hidden))return c(o,t.map(D=>D.key));if(l){const D=n.get(l);if(D&&Array.isArray(D.order))return $t(D,t)}return i}),h=t.map(D=>D.key).join("|");u.useEffect(()=>d(D=>$t(D,t)),[h]);const g=u.useRef(a);g.current=a;const m=o?`${(o.order??[]).join("|")}~${(o.hidden??[]).join("|")}`:null,y=u.useRef(m);u.useEffect(()=>{if(m==null||y.current===m)return;y.current=m;const D=g.current,T=c(o,D.order);T.order.join("|")===D.order.join("|")&&T.hidden.join("|")===D.hidden.join("|")||(d(T),l&&n.set(l,T))},[m,h]);const w=u.useRef(!1);u.useEffect(()=>{w.current||(w.current=!0,s==null||s(a))},[]);const v=u.useCallback(D=>{d(D),l&&n.set(l,D),s==null||s(D)},[l,n,s]),R=u.useMemo(()=>{const D=new Map(t.map(T=>[T.key,T]));return a.order.filter(T=>D.has(T)).map(T=>({...D.get(T),visible:!a.hidden.includes(T)}))},[a,t]),L=u.useCallback(D=>{const T=a.hidden.includes(D)?a.hidden.filter(G=>G!==D):[...a.hidden,D];v({...a,hidden:T})},[a,v]),M=u.useCallback((D,T)=>{if(D===T)return;const G=[...a.order],[z]=G.splice(D,1);G.splice(T,0,z),v({...a,order:G})},[a,v]),b=u.useCallback(D=>{v({...a,hidden:D?t.filter(T=>!T.locked).map(T=>T.key):[]})},[a,t,v]),S=u.useCallback(()=>v(i),[v,i]),E=u.useCallback(D=>v($t(D,t)),[v,t]),I=a.hidden.length===0;return{state:a,orderedColumns:R,allVisible:I,toggleVisibility:L,reorder:M,setAllHidden:b,reset:S,applyState:E}}function Mi({scopeId:t,storage:r,snapshotKeys:n,pageKey:s="page",getColumns:o,applyColumns:i}){const{searchParams:l,setSearchParams:c}=Ze(),a=t?Tt.savedViews(t):void 0,[d,h]=u.useState(()=>a?r.get(a)||[]:[]),g=u.useCallback(v=>{h(v),a&&r.set(a,v)},[a]),m=u.useCallback(v=>{const R=v.trim();if(!R)return;const L={};n.forEach(b=>{const S=l.get(b);S!=null&&(L[b]=S)});const M={id:`${Date.now()}`,name:R,query:L,columns:o==null?void 0:o(),createdAt:Date.now()};g([...d,M])},[n,l,o,g,d]),y=u.useCallback(v=>g(d.filter(R=>R.id!==v)),[g,d]),w=u.useCallback(v=>{const R=Object.fromEntries(l.entries());n.forEach(L=>delete R[L]),Object.assign(R,v.query),delete R[s],c(R),v.columns&&(i==null||i(v.columns))},[l,n,s,c,i]);return{enabled:!!a,views:d,saveView:m,deleteView:y,applyView:w}}function Li(t,r){const n=ct(t);return delete n[r],Object.keys(n).length>0?JSON.stringify(n):void 0}function Un(t,r,n){const s=t[r];if(s==null)return;const o=Li(s,n);o===void 0?delete t[r]:t[r]=o}function Ti({scopeId:t,storage:r,snapshotKeys:n,enabled:s=!0,filterKey:o="filter",searchKey:i="q",persistSearch:l=!0}){const{searchParams:c}=Ze(),a=t&&s?Tt.lastState(t):void 0,d=u.useRef(a),h=u.useRef(!1);u.useEffect(()=>{if(!a){d.current=a;return}if(d.current!==a){d.current=a,h.current=!1;return}const y={};if(n.forEach(w=>{const v=c.get(w);v!=null&&(y[w]=v)}),l||Un(y,o,i),Object.keys(y).length===0){h.current&&r.remove(a);return}h.current=!0,r.set(a,y)},[c,a,n,r,l,o,i]);const g=u.useCallback(()=>{if(!a)return null;const y=r.get(a);if(!y||typeof y!="object"||Array.isArray(y)||Object.keys(y).length===0)return null;const w=y[o];return w!=null&&Object.keys(ct(w)).length===0&&delete y[o],l||Un(y,o,i),Object.keys(y).length>0?y:null},[a,r,l,o,i]),m=u.useCallback(()=>{a&&r.remove(a)},[a,r]);return{enabled:!!a,read:g,clear:m}}function Ri({scopeId:t,storage:r,perPageKey:n,pageSizeOptions:s,enabled:o=!0}){const{searchParams:i}=Ze(),l=t&&o?Tt.perPage(t):void 0,c=i.toString(),a=u.useRef(l);u.useEffect(()=>{if(!l){a.current=l;return}if(a.current!==l){a.current=l;return}const g=i.get(n);if(!g)return;const m=Number(g);!Number.isFinite(m)||m<=0||r.set(l,m)},[c,l,n,r]);const d=u.useCallback(()=>{if(!l)return null;const g=r.get(l);if(g==null)return null;const m=Number(g);return!Number.isFinite(m)||m<=0||s&&!s.includes(m)?null:String(m)},[l,r,s]),h=u.useCallback(()=>{l&&r.remove(l)},[l,r]);return{enabled:!!l,read:d,clear:h}}let Rr={},Or=!1,Ar=null;const Oi=(t,r)=>{Object.assign(Rr,t),Ar=r,!Or&&(Or=!0,queueMicrotask(()=>{const n=Rr,s=Ar;Rr={},Or=!1,Ar=null,!(!s||Object.keys(n).length===0)&&s(o=>{const i=new URLSearchParams(o);return Object.entries(n).forEach(([l,c])=>i.set(l,c)),i},{replace:!0})}))};function Ai({enabled:t,snapshotKeys:r,perPageKey:n,readSnapshot:s,readPerPage:o}){const{searchParams:i,setSearchParams:l,location:c}=Ze(),a=u.useRef(null);u.useEffect(()=>{if(!t||a.current===c.pathname)return;a.current=c.pathname;const d={};if(!i.has(n)){const h=o();h&&(d[n]=h)}if(!r.some(h=>i.has(h))){const h=s();h&&Object.assign(d,h)}Object.keys(d).length!==0&&Oi(d,l)},[c.pathname,t])}const Wi=({configs:t,activeKeys:r,onToggle:n,hasActiveFilter:s,onReset:o})=>t.length?e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:s?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"FilterHorizontal"}),"aria-label":"Add filter"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{minWidth:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:"Add Filter"}),s&&o&&e.jsx(H.Button,{variant:"link",tone:"brand",size:"xs",onClick:o,children:"Reset"})]}),children:t.map(i=>e.jsx(O.MenuItem,{selected:i.locked||r.includes(i.key),disabled:i.locked,closeOnSelect:!1,startIcon:i.icon??void 0,onClick:()=>{i.locked||n(i.key)},children:i.label},i.key))})})]}):null,Nt=({onClear:t,onRemove:r})=>e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"link",tone:"neutral",size:"xs",iconLeft:e.jsx(B.Icon,{name:"MenuHorizontal"}),"aria-label":"Filter actions"})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{width:180},children:[e.jsx(O.MenuItem,{startIcon:e.jsx(B.Icon,{name:"CrossCircle"}),onClick:t,children:"Clear value"}),r&&e.jsx(O.MenuItem,{intent:"danger",startIcon:e.jsx(B.Icon,{name:"Trash1"}),onClick:r,children:"Remove filter"})]})})]}),zi=t=>{const r=new Date(t);return r.setHours(0,0,0,0),r},Yn=(t,r,n)=>{const s=new Date(t);return n==="day"?s.setDate(s.getDate()+r):n==="week"?s.setDate(s.getDate()+r*7):n==="month"?s.setMonth(s.getMonth()+r):s.setFullYear(s.getFullYear()+r),s},Vo=t=>{const r=zi(new Date);if(t.direction==="this"){const s=new Date(r),o=new Date(r);return t.period==="week"?(s.setDate(r.getDate()-r.getDay()),o.setDate(s.getDate()+6)):t.period==="month"?(s.setDate(1),o.setMonth(o.getMonth()+1,0)):t.period==="year"&&(s.setMonth(0,1),o.setMonth(11,31)),{from:s,to:o}}const n=t.count??1;return t.direction==="past"?{from:Yn(r,-n,t.period),to:r}:{from:r,to:Yn(r,n,t.period)}},Xn=24,No=t=>t.length>Xn?`${t.slice(0,Xn)}...`:t,_o=t=>t.toLocaleDateString(void 0,{day:"2-digit",month:"short",year:"numeric"}),Wr=(t,r="days")=>r==="months"?t.toLocaleDateString(void 0,{month:"short",year:"numeric"}):r==="years"?String(t.getFullYear()):_o(t),dr={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"},qo=["is","is-before","is-after","is-on-or-before","is-on-or-after","is-between","is-relative-to-today","is-empty","is-not-empty"],Kr={past:"Past",next:"Next",this:"This"},Hi=["day","week","month","year"],Pi=["past","next","this"],Vi=t=>t.field.type==="date-compact"?e.jsx(qi,{field:t.field,value:t.value,onChange:t.onChange,onClear:t.onClear,onRemove:t.onRemove}):e.jsx(Ni,{field:t.field,value:t.value,onChange:t.onChange,onClear:t.onClear,onRemove:t.onRemove}),Ni=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=r?_o(new Date(r)):null,l=!!i,c=l?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:No(i)})]}):t.label;return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l?e.jsx(B.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:c})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Nt,{onClear:s,onRemove:o})]}),children:e.jsx(jt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:t.mode,value:r,onChange:a=>a==null?s():n(a),withPadding:!1})})})]})},_i=(t,r="days")=>{switch(t.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return t.date?`${dr[t.op]} ${Wr(new Date(t.date),r)}`:null;case"is-between":return t.from&&t.to?`${Wr(new Date(t.from),r)} - ${Wr(new Date(t.to),r)}`:null;case"is-relative-to-today":{const n=t.relative;if(!n)return null;if(n.direction==="this")return`This ${n.period}`;const s=n.count??1,o=s===1?n.period:`${n.period}s`;return`${Kr[n.direction]} ${s} ${o}`}case"is-empty":case"is-not-empty":return dr[t.op];default:return null}},qi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=t.ops&&t.ops.length>0?t.ops:qo,l=t.defaultOp&&i.includes(t.defaultOp)?t.defaultOp:i[0],c=t.mode??"days",a=(r==null?void 0:r.op)??l,d=r?_i(r,c):null,h=!!d,g=h?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:No(d)})]}):t.label,m=y=>{if(y!==a){if(y==="is-empty"||y==="is-not-empty"){n({op:y});return}if(y==="is-relative-to-today"){n({op:y,relative:(r==null?void 0:r.relative)??{direction:"past",count:1,period:"week"}});return}if(y==="is-between"){n({op:y,from:r==null?void 0:r.from,to:r==null?void 0:r.to});return}n({op:y,date:r==null?void 0:r.date})}};return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:h?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:h?e.jsx(B.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:g})}),e.jsxs(O.MenuLists,{children:[e.jsx(O.MenuBody,{style:{width:320},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",gap:"xs",fullWidth:!0,children:[e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"xs",style:{minWidth:0},children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Zo,{op:a,ops:i,onChange:m})]}),e.jsx(Nt,{onClear:s,onRemove:o})]}),children:e.jsx(Go,{value:r,op:a,mode:c,onChange:n})}),a==="is-relative-to-today"&&e.jsx(O.MenuFooter,{children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"Filter will update with the current date"})})]})]})},Zo=({op:t,ops:r,onChange:n})=>e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"link",tone:"neutral",size:"xs",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:dr[t]})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:200},children:r.map(s=>e.jsx(O.MenuItem,{selected:t===s,onClick:()=>n(s),endIcon:t===s?e.jsx(B.Icon,{name:"Check"}):void 0,children:dr[s]},s))})})]}),Go=({value:t,op:r,mode:n="days",onChange:s})=>{if(r==="is-empty"||r==="is-not-empty")return e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"No further input required."})});if(r==="is-between"){const o=t!=null&&t.from||t!=null&&t.to?{from:t!=null&&t.from?new Date(t.from):null,to:t!=null&&t.to?new Date(t.to):null}:void 0;return e.jsx(jt.StarasiaDate,{size:"sm",input:!1,clearable:!0,rangedDate:!0,filter:n,value:o,onChange:i=>{if(i==null){s({op:r});return}if(typeof i=="object"&&i!==null&&"from"in i&&"to"in i){let{from:l,to:c}=i;if(!l&&c&&(l=c,c=null),!l&&!c){s({op:r});return}s({op:r,from:l?l.toISOString():void 0,to:c?c.toISOString():void 0})}},withPadding:!1},`range-${n}`)}return r==="is-relative-to-today"?e.jsx(Zi,{value:t==null?void 0:t.relative,onChange:o=>s({op:r,relative:o})}):e.jsx(jt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:n,value:t!=null&&t.date?new Date(t.date):void 0,onChange:o=>{if(o==null){s({op:r});return}o instanceof Date&&s({op:r,date:o.toISOString()})},withPadding:!1},`single-${n}`)},Zi=({value:t,onChange:r})=>{const n=(t==null?void 0:t.direction)??"past",s=(t==null?void 0:t.count)??1,o=(t==null?void 0:t.period)??"week",i=n!=="this",l=Vo({direction:n,count:s,period:o});return e.jsxs(x.Box,{direction:"column",display:"flex",gap:"sm",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:Kr[n]})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:140},children:Pi.map(c=>e.jsx(O.MenuItem,{selected:n===c,endIcon:n===c?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>r(c==="this"?{direction:c,period:o}:{direction:c,count:s,period:o}),children:Kr[c]},c))})})]}),i&&e.jsx(ht.Input,{type:"number",size:"sm",min:1,clearable:!1,value:s,onChange:c=>{const a=Number(c.target.value);r({direction:n,count:Number.isFinite(a)&&a>0?a:1,period:o})},style:{width:72}}),e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:o})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:140},children:Hi.map(c=>e.jsx(O.MenuItem,{selected:o===c,endIcon:o===c?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>r(n==="this"?{direction:n,period:c}:{direction:n,count:s,period:c}),children:c},c))})})]})]}),e.jsx(jt.StarasiaDate,{size:"sm",input:!1,disabled:!0,rangedDate:!0,value:l,onChange:()=>{},withPadding:!1},"relative-preview")]})},Jn=18,Gi=t=>t.length>Jn?`${t.slice(0,Jn)}...`:t,Qi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=t.type==="dropdown-multiple",l=r.length,c=t.searchable!==!1,[a,d]=u.useState(""),h=t.options,g=typeof t.onSearch=="function",m=(()=>{if(g)return h;const L=a.trim().toLowerCase();return L?h.filter(M=>M.label.toLowerCase().includes(L)):h})(),y=L=>r.some(M=>M.value===L.value),w=L=>{if(!i){n([{label:L.label,value:L.value}]),d("");return}n(y(L)?r.filter(M=>M.value!==L.value):[...r,{label:L.label,value:L.value}])},v=L=>{var M;d(L),(M=t.onSearch)==null||M.call(t,L)},R=l===0?t.label:e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:l===1?Gi(r[0].label):`${l} Selected`})]});return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l>0?e.jsx(B.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:R})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Nt,{onClear:s,onRemove:o})]}),children:e.jsxs(x.Box,{direction:"column",gap:"sm",children:[c&&e.jsx(It.Dropdown,{size:"sm",triggerInput:!0,fullWidth:!0,hideChevronIcon:!0,clearable:!0,multiSelect:i,searchAble:!0,searchValue:a,onSearch:v,value:r,onChange:n,placeholder:`Search ${t.label.toLowerCase()}…`}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",customMaxHeight:"240px",children:t.isLoading?e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"Loading…"})}):m.length===0?e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"No results"})}):m.map(L=>e.jsx(O.MenuItem,{closeOnSelect:!i,selected:y(L),startIcon:L.avatar,endIcon:y(L)?e.jsx(B.Icon,{name:"Check"}):void 0,description:L.description,onClick:()=>w(L),children:L.label},L.value))})]})})})]})},$n=18,Ui=t=>t.length>$n?`${t.slice(0,$n)}...`:t,Kn=({checked:t,indeterminate:r})=>e.jsx("span",{style:{pointerEvents:"none",display:"inline-flex"},children:e.jsx(xt.Checkbox,{size:"sm",checked:t,readOnly:!0,onChange:()=>{},variant:r?"indeterminate":"select"})}),Yi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=new Set(r.map(m=>m.value)),l=r.length,c=t.options.length>0&&t.options.every(m=>i.has(m.value)),a=l>0&&!c,d=m=>{n(i.has(m.value)?r.filter(y=>y.value!==m.value):[...r,{label:m.label,value:m.value}])},h=()=>{n(c?[]:t.options.map(m=>({label:m.label,value:m.value})))},g=l===0?t.label:e.jsxs(e.Fragment,{children:[e.jsxs(C.Text,{as:"span",fontWeight:"semibold",children:[t.label,":"]})," ",e.jsx(C.Text,{as:"span",children:l===1?Ui(r[0].label):`${l} Selected`})]});return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l>0?e.jsx(B.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:g})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{width:240},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Nt,{onClear:s,onRemove:o})]}),children:[e.jsx(O.MenuItem,{closeOnSelect:!1,selected:c,onClick:h,startIcon:e.jsx(Kn,{checked:c||a,indeterminate:a}),children:"Select All"}),t.options.map(m=>e.jsx(O.MenuItem,{closeOnSelect:!1,selected:i.has(m.value),onClick:()=>d(m),startIcon:e.jsx(Kn,{checked:i.has(m.value)}),children:m.label},m.value))]})})]})},eo=18,Xi=t=>t.length>eo?`${t.slice(0,eo)}...`:t,Ji=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const[i,l]=u.useState(r??""),c=we.useDebounce(i,t.debounceMs??300);u.useEffect(()=>{c!==(r??"")&&n(c)},[c]),u.useEffect(()=>{l(r??"")},[r]);const a=!!r,d=a?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:Xi(r)})]}):t.label;return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:a?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:a?e.jsx(B.Icon,{name:"Search",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:d})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Nt,{onClear:s,onRemove:o})]}),children:e.jsx(ht.Input,{size:"sm",fullWidth:!0,value:i,placeholder:t.placeholder??"Cari…",leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:h=>l(h.target.value)})})})]})},Qo=({activeKeys:t,configByKey:r,getValue:n,setValue:s,clearValue:o,removeFilter:i})=>e.jsx(e.Fragment,{children:t.map(l=>{const c=r[l];if(!c)return null;const a=n(c),d=c.locked?void 0:()=>i(l);return c.type==="date"||c.type==="date-compact"?e.jsx(Vi,{field:c,value:a,onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):c.type==="text"?e.jsx(Ji,{field:c,value:a||"",onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):c.type==="checkbox-multiple"?e.jsx(Yi,{field:c,value:a||[],onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):e.jsx(Qi,{field:c,value:a||[],onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l)})}),to=t=>`${t} Rows`,$i=({pagination:t,pageKey:r="page",perPageKey:n="perPage",pageSizeOptions:s=[10,25,50,100],defaultPerPage:o=10,showResultCount:i=!0,showPageSize:l=!0,showPagination:c=!0})=>{var L;const{searchQueries:a,setSearchParams:d,searchParams:h}=Ze(),g=h.get(n),m=g?Number(g):o,y=M=>{d({...a,[r]:String(M)})},w=M=>{d({...a,[n]:M,[r]:"1"})},v=(t==null?void 0:t.rangeStart)??(((t==null?void 0:t.currentPage)||0)>1?(((t==null?void 0:t.currentPage)||0)-1)*((t==null?void 0:t.perPage)||0)+1:1),R=(t==null?void 0:t.rangeEnd)??((t==null?void 0:t.totalCurrentPage)!==(t==null?void 0:t.perPage)?t==null?void 0:t.totalData:((t==null?void 0:t.currentPage)||1)*((t==null?void 0:t.totalCurrentPage)||0));return e.jsxs(e.Fragment,{children:[i&&e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${v}-${R} of ${((L=t==null?void 0:t.totalData)==null?void 0:L.toLocaleString())||0}`}),l&&e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),"aria-label":"Rows per page",children:to(m)})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{children:s.map(M=>e.jsx(O.MenuItem,{selected:M===m,onClick:()=>w(String(M)),children:to(M)},M))})})]}),c&&((t==null?void 0:t.totalPage)??0)>1&&e.jsx(x.Box,{direction:"column",display:"flex",align:"center",gap:"sm",paddingRight:"sm",style:{borderRight:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:e.jsx(Ht.Pagination,{size:"sm",variant:"neutral",siblingCount:0,currentPage:t!=null&&t.currentPage?Number(t.currentPage):1,totalPages:Number(t==null?void 0:t.totalPage),onPageChange:y})})]})};function Ki(t,r,n=!0){u.useEffect(()=>{if(!n)return;const s=o=>{var c;if(o.metaKey||o.ctrlKey||o.altKey||o.key!==t||Oe.isOverlayOpen())return;const i=o.target,l=(c=i==null?void 0:i.tagName)==null?void 0:c.toLowerCase();l==="input"||l==="textarea"||i!=null&&i.isContentEditable||(o.preventDefault(),r())};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[t,r,n])}const el=240,Uo=({searchKey:t="q",filterKey:r="filter",pageKey:n="page",placeholder:s="Search",shortcut:o="/",collapsible:i=!0})=>{const{searchParams:l,setSearchParams:c,searchQueries:a}=Ze(),d=hr(t,l,r)||"",[h,g]=u.useState(!i||!!d),[m,y]=u.useState(i&&!d),[w,v]=u.useState(d),R=we.useDebounce(w,350),L=u.useRef(null);u.useEffect(()=>{v(d),d&&g(!0)},[d]),u.useEffect(()=>{h&&y(!1)},[h]),u.useEffect(()=>{R!==d&&Pt({value:R,name:t,type:"search",searchQueries:a,setSearchParams:c,filterKey:r,pageKey:n})},[R]);const M=u.useCallback(()=>{g(!0),requestAnimationFrame(()=>{var I;return(I=L.current)==null?void 0:I.focus()})},[]);Ki(o,M);const b=()=>{i&&!w&&g(!1)},S=I=>{var D;i&&I.key==="Escape"&&!w&&(g(!1),(D=L.current)==null||D.blur())},E=()=>{h||y(!0)};return e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"spacing-0",children:[m&&e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Search",size:"sm"}),"aria-label":"Search","aria-expanded":!1,onClick:M}),e.jsxs(x.Box,{onTransitionEnd:E,style:{position:"relative",width:h?el:0,overflow:"hidden",transition:"width 220ms ease"},children:[e.jsx(ht.Input,{ref:L,size:"sm",fullWidth:!0,value:w,placeholder:s,leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:I=>v(I.target.value),onKeyDown:S,onBlur:b,tabIndex:h?0:-1}),h&&!w&&e.jsx(x.Box,{align:"center",justify:"center",borderColor:"border-subtle",borderWidth:"border",borderStyle:"border-solid",borderRadius:"rounded-xs",paddingInline:"spacing-1",customBackgroundColor:"var(--sa-background-surface-hover, #f1f2f4)",style:{position:"absolute",right:8,top:"50%",transform:"translateY(-50%)",pointerEvents:"none",minWidth:18,height:18,display:"inline-flex"},children:e.jsx(C.Text,{fontSize:"xs",color:"subtle",children:o})})]})]})},Yo=({columns:t,allVisible:r,onToggle:n,onReorder:s,onSetAllHidden:o})=>{const[i,l]=u.useState(null),[c,a]=u.useState(null),d=()=>{i!==null&&c!==null&&i!==c&&s(i,c),l(null),a(null)},h=(g,m)=>{const y=g+m;y<0||y>=t.length||s(g,y)};return e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:r?"outline":"secondary",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Grid",size:"sm"}),"aria-label":"Customize columns"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{children:e.jsxs(x.Box,{padding:"sm",direction:"column",customWidth:"296px",customMaxHeight:"60vh",overflow:"overflow-hidden",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Customize Column Table"}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",paddingBlock:"md",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",children:"Show in table"}),e.jsx(H.Button,{variant:"link",tone:"info",size:"xs",onClick:()=>o(r),children:r?"Hide All":"Show All"})]}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",children:t.map((g,m)=>{const y=!g.locked,w=c===m&&i!==null&&i!==m;return e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",paddingBlock:"xs",draggable:y,onDragStart:()=>y&&l(m),onDragOver:v=>{v.preventDefault(),a(m)},onDrop:d,onDragEnd:d,style:{minHeight:32,boxShadow:w?"inset 0 2px 0 0 var(--sa-background-brand, #04254f)":void 0},children:[e.jsx(x.Box,{direction:"column",as:"div",align:"center",justify:"center",role:"button",tabIndex:y?0:-1,"aria-label":`Reorder ${g.title}`,"aria-disabled":!y||void 0,color:"icon-subtlest",onKeyDown:v=>{y&&(v.key==="ArrowUp"?(v.preventDefault(),h(m,-1)):v.key==="ArrowDown"&&(v.preventDefault(),h(m,1)))},style:{display:"inline-flex",cursor:y?"grab":"default",opacity:y?1:.4},children:e.jsx(B.Icon,{name:"DragVertical",width:16,height:16})}),g.icon&&e.jsx(x.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:g.icon}),e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:g.title}),e.jsx(x.Box,{direction:"column",style:{marginLeft:"auto"},children:e.jsx(Lt.Toggle,{size:"sm",checked:g.visible,disabled:g.locked,onChange:()=>n(g.key),"aria-label":`Toggle ${g.title} column`})})]},g.key)})})]})})})]})},Xo=({views:t,onApply:r,onDelete:n,onSave:s})=>{const[o,i]=u.useState(""),l=()=>{const c=o.trim();c&&(s(c),i(""))};return e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:t.length>0?"secondary":"outline",tone:(t.length>0,"neutral"),size:"sm",iconLeft:e.jsx(B.Icon,{name:"Bookmark",size:"sm"}),"aria-label":"Saved views"})}),e.jsxs(O.MenuLists,{style:{width:"260px"},children:[e.jsx(O.MenuBody,{children:e.jsxs(x.Box,{direction:"column",padding:"xs",gap:"sm",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Saved Views"}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",children:t.length===0?e.jsx(x.Box,{direction:"column",paddingBlock:"sm",children:e.jsx(C.Text,{fontSize:"sm",color:"subtlest",children:"No saved views yet"})}):t.map(c=>e.jsx(O.MenuItem,{startIcon:e.jsx(B.Icon,{name:"Bookmark"}),onClick:()=>r(c),endIcon:e.jsx(H.Button,{variant:"link",tone:"error",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Trash2"}),"aria-label":`Delete ${c.name}`,onClick:a=>{a.stopPropagation(),n(c.id)}}),children:c.name},c.id))})]})}),e.jsx(O.MenuFooter,{children:e.jsxs(x.Box,{direction:"row",gap:"xs",children:[e.jsx(x.Box,{direction:"column",style:{flex:"1 0 0",minWidth:0},children:e.jsx(ht.Input,{size:"sm",fullWidth:!0,placeholder:"Save current view as…",value:o,onChange:c=>i(c.target.value),onKeyDown:c=>{c.key==="Enter"&&l()}})}),e.jsx(H.Button,{variant:"primary",tone:"brand",size:"sm",disabled:!o.trim(),onClick:l,children:"Save"})]})})]})]})},tl=({isOpen:t,onClose:r,configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,onToggle:l,onReset:c,getValue:a,setValue:d,clearValue:h,removeFilter:g})=>{const m=s.length;return e.jsx(cr.Drawer,{position:"bottom",isShow:t,onHide:r,children:e.jsxs(x.Box,{direction:"column",customMaxHeight:"85vh",style:{minHeight:280},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",paddingInline:"md",paddingBlock:"sm",style:{borderBottom:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Filter"}),m>0&&e.jsxs(C.Text,{fontSize:"sm",color:"subtle",children:["(",m,")"]})]}),e.jsx(H.Button,{variant:"link",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Cross"}),"aria-label":"Close filter",onClick:r})]}),e.jsxs(x.Box,{direction:"column",gap:"lg",padding:"md",overflow:"overflow-y-auto",style:{flex:"1 1 auto",minHeight:0},children:[m>0&&e.jsxs(x.Box,{direction:"column",gap:"sm",children:[e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Filter aktif"}),e.jsx(x.Box,{direction:"row",display:"flex",wrap:"wrap",gap:"sm",align:"center",children:e.jsx(Qo,{activeKeys:s,configByKey:o,getValue:a,setValue:d,clearValue:h,removeFilter:g})})]}),n.length>0&&e.jsxs(x.Box,{direction:"column",gap:"sm",children:[e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Tambah filter"}),e.jsx(x.Box,{direction:"column",children:n.map(y=>{const w=s.includes(y.key),v=!!y.locked;return e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",paddingBlock:"sm",style:{opacity:v?.5:1,borderTop:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.08))"},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{minWidth:0},children:[y.icon&&e.jsx(x.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:y.icon}),e.jsx(C.Text,{fontSize:"sm",color:"primary",truncate:!0,children:y.label})]}),e.jsx(Lt.Toggle,{size:"sm",checked:w||v,disabled:v,onChange:()=>l(y.key),"aria-label":`Toggle ${y.label}`})]},y.key)})})]})]}),e.jsxs(x.Box,{direction:"row",display:"flex",gap:"sm",paddingInline:"md",paddingBlock:"sm",style:{borderTop:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:[e.jsx(x.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"md",fullWidth:!0,disabled:!i,onClick:c,children:"Reset"})}),e.jsx(x.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(H.Button,{variant:"primary",tone:"brand",size:"md",fullWidth:!0,onClick:r,children:"Selesai"})})]})]})})},rl=t=>`${t} Rows`,nl=({perPageKey:t,pageKey:r,pageSizeOptions:n,defaultPerPage:s=10,showPageSize:o})=>{const{searchQueries:i,setSearchParams:l,searchParams:c}=Ze(),a=c.get(t),d=a?Number(a):s,h=g=>{l({...i,[t]:g,[r]:"1"})};return o?e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"MenuVertical",size:"sm"}),"aria-label":"More options"})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{minWidth:200},children:[e.jsx(x.Box,{paddingInline:"sm",paddingBlock:"xs",children:e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Rows per page"})}),n.map(g=>e.jsx(O.MenuItem,{selected:g===d,endIcon:g===d?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>h(String(g)),children:rl(g)},g))]})})]}):null},ol=t=>{var je;const{withPadding:r,configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,toggleFilter:l,removeFilter:c,getValue:a,setValue:d,clearValue:h,onReset:g,searchable:m,searchKey:y,filterKey:w,pageKey:v,searchPlaceholder:R,searchShortcut:L,searchCollapsible:M,pagination:b,perPageKey:S,pageSizeOptions:E,defaultPerPage:I,showPagination:D,showResultCount:T,showPageSize:G,hasColumns:z,orderedColumns:A,allVisible:P,onToggleVisibility:q,onReorder:Q,onSetAllHidden:te,showSavedViews:J,savedViews:$,onApplyView:V,onDeleteView:xe,onSaveView:ue,leadingActions:Be,trailingActions:Ve}=t,[De,ge]=u.useState(!1),{searchQueries:pe,setSearchParams:Le}=Ze(),Ne=(b==null?void 0:b.rangeStart)??(((b==null?void 0:b.currentPage)||0)>1?(((b==null?void 0:b.currentPage)||0)-1)*((b==null?void 0:b.perPage)||0)+1:1),Ae=(b==null?void 0:b.rangeEnd)??((b==null?void 0:b.totalCurrentPage)!==(b==null?void 0:b.perPage)?b==null?void 0:b.totalData:((b==null?void 0:b.currentPage)||1)*((b==null?void 0:b.totalCurrentPage)||0)),ie=Ee=>{Le({...pe,[v]:String(Ee)})},ce=T||D&&!!(b!=null&&b.totalPage),me=()=>{g(),ge(!1)};return e.jsxs(x.Box,{direction:"column",gap:"sm",fullWidth:!0,paddingTop:r?"sm":void 0,paddingBottom:r?"sm":void 0,paddingLeft:r?"md":void 0,paddingRight:r?"md":void 0,role:"toolbar","aria-label":"Filter bar",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",wrap:"wrap",gap:"sm",fullWidth:!0,overflow:"overflow-auto",children:[m&&e.jsx(Uo,{searchKey:y,filterKey:w,pageKey:v,placeholder:R,shortcut:L,collapsible:M}),e.jsx(H.Button,{variant:i?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"FilterHorizontal"}),onClick:()=>ge(!0),"aria-label":"Open filters",children:i?`Filter: ${s.length}`:null}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{marginLeft:"auto"},children:[Be,J&&e.jsx(Xo,{views:$,onApply:V,onDelete:xe,onSave:ue}),z&&e.jsx(Yo,{columns:A,allVisible:P,onToggle:q,onReorder:Q,onSetAllHidden:te}),e.jsx(nl,{perPageKey:S,pageKey:v,pageSizeOptions:E,defaultPerPage:I,showPageSize:G}),Ve]})]}),ce&&e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",fullWidth:!0,children:[T?e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${Ne}-${Ae} of ${((je=b==null?void 0:b.totalData)==null?void 0:je.toLocaleString())||0}`}):e.jsx(x.Box,{direction:"column"}),D&&!!(b!=null&&b.totalPage)&&e.jsx(Ht.Pagination,{size:"xs",variant:"neutral",siblingCount:0,currentPage:b!=null&&b.currentPage?Number(b.currentPage):1,totalPages:Number(b.totalPage),onPageChange:ie})]}),e.jsx(tl,{isOpen:De,onClose:()=>ge(!1),configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,onToggle:l,onReset:me,getValue:a,setValue:d,clearValue:h,removeFilter:c})]})},sl=({withPadding:t=!1,filterConfigs:r=[],filterKey:n="filter",activeFilterKey:s="filters",pageKey:o="page",perPageKey:i="perPage",pageSizeOptions:l=[25,50,100],defaultPerPage:c,showPagination:a=!0,showResultCount:d=!0,showPageSize:h=!0,searchable:g=!1,searchKey:m="q",searchPlaceholder:y="Search",searchShortcut:w="/",searchPosition:v="right",searchCollapsible:R=!0,pagination:L,columns:M=[],onColumnsChange:b,columnsState:S,scopeId:E,savedViews:I,persistLastState:D=!0,persistSearch:T=!0,storage:G=fn,onReset:z,leadingActions:A,trailingActions:P})=>{const q=E??(I==null?void 0:I.scopeId),{activeKeys:Q,configByKey:te,hasActiveFilter:J,toggleFilter:$,removeFilter:V,getValue:xe,setValue:ue,clearValue:Be,clearAll:Ve}=hn({configs:r,filterKey:n,activeFilterKey:s,pageKey:o,searchKey:m}),De=Ii({columns:M,scopeId:q,storage:G,onColumnsChange:b,value:S}),ge=Mi({scopeId:q,storage:G,snapshotKeys:[s,n,i],pageKey:o,getColumns:()=>De.state,applyColumns:De.applyState}),pe=Ti({scopeId:q,storage:G,snapshotKeys:[s,n,o],enabled:D,filterKey:n,searchKey:m,persistSearch:T}),Le=Ri({scopeId:q,storage:G,perPageKey:i,pageSizeOptions:l,enabled:D});Ai({enabled:D&&!!q,snapshotKeys:[s,n,o],perPageKey:i,readSnapshot:pe.read,readPerPage:Le.read});const Ne=c??l[0]??25,Ae=!!(I!=null&&I.enabled)&&ge.enabled,ie=()=>{Ve(),pe.clear(),z==null||z()},ce=we.useMediaQuery("md"),me=g?e.jsx(Uo,{searchKey:m,filterKey:n,pageKey:o,placeholder:y,shortcut:w,collapsible:R}):null;return ce?e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"sm",wrap:"wrap",fullWidth:!0,paddingTop:t?"sm":void 0,paddingBottom:t?"sm":void 0,paddingLeft:t?"md":void 0,paddingRight:t?"md":void 0,role:"toolbar","aria-label":"Filter bar",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(Wi,{configs:r,activeKeys:Q,onToggle:$,hasActiveFilter:J,onReset:ie}),v==="left"&&me,e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",overflow:"overflow-x-auto",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(Qo,{activeKeys:Q,configByKey:te,getValue:xe,setValue:ue,clearValue:Be,removeFilter:V}),J&&e.jsx(H.Button,{variant:"link",tone:"brand",size:"sm",onClick:ie,children:"Reset"})]})]}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",children:[A,e.jsx($i,{pagination:L,pageKey:o,perPageKey:i,pageSizeOptions:l,defaultPerPage:Ne,showPagination:a,showResultCount:d,showPageSize:h}),v==="right"&&me,Ae&&e.jsx(Xo,{views:ge.views,onApply:ge.applyView,onDelete:ge.deleteView,onSave:ge.saveView}),M.length>0&&e.jsx(Yo,{columns:De.orderedColumns,allVisible:De.allVisible,onToggle:De.toggleVisibility,onReorder:De.reorder,onSetAllHidden:De.setAllHidden}),P]})]}):e.jsx(ol,{withPadding:t,configs:r,activeKeys:Q,configByKey:te,hasActiveFilter:J,toggleFilter:$,removeFilter:V,getValue:xe,setValue:ue,clearValue:Be,onReset:ie,searchable:g,searchKey:m,filterKey:n,pageKey:o,searchPlaceholder:y,searchShortcut:w,searchCollapsible:R,pagination:L,perPageKey:i,pageSizeOptions:l,defaultPerPage:Ne,showPagination:a,showResultCount:d,showPageSize:h,hasColumns:M.length>0,orderedColumns:De.orderedColumns,allVisible:De.allVisible,onToggleVisibility:De.toggleVisibility,onReorder:De.reorder,onSetAllHidden:De.setAllHidden,showSavedViews:Ae,savedViews:ge.views,onApplyView:ge.applyView,onDeleteView:ge.deleteView,onSaveView:ge.saveView,leadingActions:A,trailingActions:P})},il=t=>{if(!Array.isArray(t)||t.length===0)return;const r=t[0];return(r==null?void 0:r.value)!=null?String(r.value):void 0},ll=t=>{if(!Array.isArray(t)||t.length===0)return;const r=t.map(n=>(n==null?void 0:n.value)!=null?String(n.value):null).filter(n=>n!=null);return r.length?r:void 0},cl=(t,r)=>{switch(t.type){case"dropdown":case"radio":return il(r);case"dropdown-multiple":case"checkbox-multiple":return ll(r);case"date":return r instanceof Date?r.toISOString():void 0;case"date-compact":return r;case"text":return typeof r=="string"&&r?r:void 0;default:return}},ro=(t,r)=>{if(t==null||t==="")return r;const n=Number(t);return Number.isFinite(n)&&n>0?n:r},al=t=>{const{filterConfigs:r,filterKey:n="filter",activeFilterKey:s="filters",pageKey:o="page",perPageKey:i="perPage",searchKey:l="q",defaultPage:c=1,defaultPerPage:a=10,paramKeys:d,serialize:h}=t,{activeKeys:g,configByKey:m,hasActiveFilter:y,getValue:w}=hn({configs:r,filterKey:n,activeFilterKey:s,pageKey:o,searchKey:l}),{searchParams:v}=Ze(),R=v.toString();return u.useMemo(()=>{const M={},b={},S=ro(v.get(o),c),E=ro(v.get(i),a);M[(d==null?void 0:d.page)??"page"]=S,M[(d==null?void 0:d.perPage)??"perPage"]=E;const I=hr(l,v,n)||"";I&&(M[(d==null?void 0:d.search)??"search"]=I);let D=!1;for(const T of g){const G=m[T];if(!G)continue;const z=w(G);b[T]=z;const A=h==null?void 0:h[T],P=A?A(z):cl(G,z);if(P==null||Array.isArray(P)&&P.length===0)continue;const q=(d==null?void 0:d[T])??T;M[q]=P,D=!0}return{params:M,raw:b,hasActiveFilter:y||!!I||D}},[R,g.join("|"),n,s,o,i,l,c,a,d,h,m])},dl=["dropdown","dropdown-multiple","checkbox-multiple","radio"],ul=({filterConfigs:t,filterKey:r,activeFilterKey:n,pageKey:s,searchKey:o})=>{const{configByKey:i,getValue:l,setValue:c,removeFilter:a,clearAll:d,hasActiveFilter:h}=hn({configs:t,filterKey:r,activeFilterKey:n,pageKey:s,searchKey:o}),g=(b,S)=>{var I;const E=b.options;return((I=E==null?void 0:E.find(D=>D.value===S))==null?void 0:I.label)??S},m=u.useCallback(b=>{const S=i[b];if(!S)return[];const E=l(S);return Array.isArray(E)?E.map(I=>String(I.value)):[]},[i,l]),y=u.useCallback((b,S)=>{const E=i[b];if(!E||!dl.includes(E.type))return;const I=Array.isArray(S)?S:[S];if(I.length===0){a(b);return}c(E,I.map(D=>({label:g(E,D),value:D})))},[i,c,a]),w=u.useCallback((b,S)=>{const E=m(b);y(b,E.includes(S)?E.filter(I=>I!==S):[...E,S])},[m,y]),v=u.useCallback((b,S)=>m(b).includes(S),[m]),R=u.useCallback(b=>a(b),[a]),L=u.useCallback(b=>{const S=i[b];return S?l(S):void 0},[i,l]),M=u.useCallback((b,S)=>{const E=i[b];if(E){if(S==null){a(b);return}c(E,S)}},[i,c,a]);return{set:y,toggle:w,clear:R,clearAll:d,isActive:v,values:m,getRaw:L,setRaw:M,hasActiveFilter:h}},zr="var(--sa-background-brand, #04254f)",xl="var(--sa-text-brand, #031f43)",hl={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"},mn={padding:"4px 8px",border:"none",background:"none",cursor:"pointer",font:"inherit",textAlign:"left",fontSize:13,color:xl},Jo=(t,r)=>{if(t.type==="text"||t.type==="date")return!!r.getRaw(t.key);if(t.type==="date-compact"){const n=r.getRaw(t.key);return!!(n&&(n.date||n.from||n.to||n.relative||n.op==="is-empty"||n.op==="is-not-empty"))}return r.values(t.key).length>0},fl=({field:t,controls:r})=>{const[n,s]=u.useState(""),o=t.type==="dropdown"||t.type==="radio",i=t.type==="checkbox-multiple"?!1:t.searchable!==!1,l=r.values(t.key),c=i&&n.trim()?t.options.filter(d=>d.label.toLowerCase().includes(n.toLowerCase())):t.options,a=d=>{o?r.set(t.key,l.includes(d)?[]:d):r.toggle(t.key,d)};return e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:4,minWidth:200},children:[i&&e.jsx("input",{value:n,onChange:d=>{var h;s(d.target.value),(h=t.onSearch)==null||h.call(t,d.target.value)},placeholder:"Cari…",style:hl}),e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:2,maxHeight:220,overflowY:"auto"},children:[c.map(d=>{const h=l.includes(d.value);return e.jsxs("button",{type:"button",onClick:()=>a(d.value),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 8px",border:"none",background:"none",cursor:"pointer",font:"inherit",textAlign:"left",borderRadius:"var(--sa-radii-xs, 4px)"},children:[e.jsx("span",{style:{width:16,height:16,flexShrink:0,borderRadius:o?"50%":4,display:"inline-flex",alignItems:"center",justifyContent:"center",border:`1px solid ${h?zr:"var(--sa-border-subtle, #0b120e24)"}`,background:h&&!o?zr:"transparent"},children:h&&(o?e.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:zr}}):e.jsx(B.Icon,{name:"Check",size:"xs",style:{color:"#fff"}}))}),e.jsx(C.Text,{as:"span",style:{fontSize:14},children:d.label})]},d.value)}),c.length===0&&e.jsx(C.Text,{as:"span",style:{fontSize:13,color:"var(--sa-text-subtlest, #8c8f97)",padding:"6px 8px"},children:"Tak ada hasil"})]}),l.length>0&&e.jsx("button",{type:"button",onClick:()=>r.clear(t.key),style:mn,children:"Clear"})]})},ml=({field:t,controls:r})=>{const n=r.getRaw(t.key);return e.jsx(x.Box,{style:{minWidth:240},children:e.jsx(jt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:t.mode,value:n,onChange:s=>r.setRaw(t.key,s??null),withPadding:!1})})},gl=({field:t,controls:r})=>{const n=r.getRaw(t.key),s=t.ops&&t.ops.length>0?t.ops:qo,o=t.defaultOp&&s.includes(t.defaultOp)?t.defaultOp:s[0],i=t.mode??"days",l=(n==null?void 0:n.op)??o,c=d=>r.setRaw(t.key,d),a=d=>{if(d!==l)return c(d==="is-empty"||d==="is-not-empty"?{op:d}:d==="is-relative-to-today"?{op:d,relative:(n==null?void 0:n.relative)??{direction:"past",count:1,period:"week"}}:d==="is-between"?{op:d,from:n==null?void 0:n.from,to:n==null?void 0:n.to}:{op:d,date:n==null?void 0:n.date})};return e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:280},children:[e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"xs",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Zo,{op:l,ops:s,onChange:a})]}),e.jsx(Go,{value:n,op:l,mode:i,onChange:c}),Jo(t,r)&&e.jsx("button",{type:"button",onClick:()=>r.setRaw(t.key,null),style:mn,children:"Clear"})]})},pl=({field:t,controls:r})=>{const n=r.getRaw(t.key)??"",[s,o]=u.useState(n),i=we.useDebounce(s,t.debounceMs??300);return u.useEffect(()=>{const l=r.getRaw(t.key)??"";i!==l&&r.setRaw(t.key,i||null)},[i]),e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:220},children:[e.jsx(ht.Input,{size:"sm",fullWidth:!0,value:s,placeholder:t.placeholder??"Cari…",leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:l=>o(l.target.value)}),s&&e.jsx("button",{type:"button",onClick:()=>{o(""),r.setRaw(t.key,null)},style:mn,children:"Clear"})]})},yl=({field:t,controls:r})=>t.type==="text"?e.jsx(pl,{field:t,controls:r}):t.type==="date"?e.jsx(ml,{field:t,controls:r}):t.type==="date-compact"?e.jsx(gl,{field:t,controls:r}):e.jsx(fl,{field:t,controls:r}),bl=(t,r)=>{if(!t)return{};const{fromKey:n,toKey:s,opKey:o}=r,i={};switch(t.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return t.date&&(i[n]=new Date(t.date).toISOString()),o&&(i[o]=t.op),i;case"is-between":return t.from&&(i[n]=new Date(t.from).toISOString()),t.to&&(i[s]=new Date(t.to).toISOString()),i;case"is-relative-to-today":{if(!t.relative)return i;const{from:l,to:c}=Vo(t.relative);return i[n]=l.toISOString(),i[s]=c.toISOString(),i}case"is-empty":case"is-not-empty":return o&&(i[o]=t.op==="is-empty"?"empty":"not-empty"),i;default:return i}},$o=({children:t,borderRadius:r,height:n})=>{const s=u.useRef(null),[o,i]=u.useState("100vh");return u.useEffect(()=>{if(n)return;const l=()=>{if(s.current){const c=s.current.getBoundingClientRect().top;i(`calc(100vh - ${c}px)`)}};return l(),window.addEventListener("resize",l),()=>window.removeEventListener("resize",l)},[n]),e.jsx(x.Box,{ref:s,fullWidth:!0,borderStyle:"border-solid",borderWidth:"border",borderColor:"border-base",borderRadius:r||"rounded-xs",style:{height:n??o,display:"flex",flexDirection:"column"},children:t})},Ko=({action:t,rightContent:r,leftContent:n,headerSlot:s,advanceFilter:o,showFilter:i=!0})=>{const l=we.useMediaQuery("md"),c=i?e.jsx(Po,{...o}):null,a=()=>t?u.isValidElement(t)?t:e.jsx(x.Box,{style:{display:"flex",flexDirection:l?"row":"column",gap:"8px",width:l?"auto":"100%",textWrap:"nowrap"},children:t.map(({title:d,icon:h,buttonProps:g,onClick:m},y)=>!d&&!h?null:e.jsx(H.Button,{fullWidth:!l,iconLeft:h?e.jsx(B.Icon,{name:h}):void 0,onClick:m,...g,children:d},`action-${y}`))}):null;return e.jsx(x.Box,{style:{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",paddingLeft:"8px",paddingRight:"8px",paddingTop:"8px",paddingBottom:"8px",borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)",flexShrink:0,position:"relative",zIndex:10,flexDirection:l?"row":"column-reverse",gap:"16px"},children:s?s({filter:c}):e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flex:1,minWidth:0},children:[c,n]}),e.jsxs(x.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flexShrink:0},children:[r,a()]})]})})},jl=({totalData:t,withMarginBottom:r=!0,withMarginTop:n=!0})=>e.jsxs(x.Box,{style:{display:"flex",gap:"4px",flexDirection:"row",alignItems:"center",marginBottom:r?"16px":void 0,marginTop:n?"16px":void 0},children:[e.jsxs(Ke.Body1,{props:{color:"gray-500"},children:["Total data:"," "]}),e.jsx(Ke.Body1,{children:t||0})]}),es=({pagination:t,pageKey:r="page",perPageKey:n="perPage",defaultPerPage:s=10,showPagination:o=!0,totalData:i})=>{const{searchQueries:l,setSearchParams:c,searchParams:a}=Ze(),d=a.get(n),h=w=>{c({...l,[r]:String(w)})},g=w=>{c({...l,[n]:w,[r]:"1"})},m=(t==null?void 0:t.rangeStart)??(((t==null?void 0:t.currentPage)||0)>1?(((t==null?void 0:t.currentPage)||0)-1)*((t==null?void 0:t.perPage)||0)+1:1),y=(t==null?void 0:t.rangeEnd)??((t==null?void 0:t.totalCurrentPage)!==(t==null?void 0:t.perPage)?t==null?void 0:t.totalData:((t==null?void 0:t.currentPage)||1)*((t==null?void 0:t.totalCurrentPage)||0));return e.jsx(x.Box,{style:{display:"flex",width:"100%",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingLeft:"16px",paddingRight:"16px",paddingTop:"8px",paddingBottom:"8px",borderTop:"1px solid var(--sa-border-subtle, #0b120e24)",flexShrink:0},children:o?e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",gap:"8px",alignItems:"center",textWrap:"nowrap"},children:[e.jsx(C.Text,{children:"Rows Per Page: "}),e.jsx(It.Dropdown,{dropdownLists:[{label:"5",value:"5"},{label:"10",value:"10"},{label:"25",value:"25"},{label:"50",value:"50"},{label:"100",value:"100"}],onChange:w=>{g(w[0].value)},value:d?[{label:`${d} per row`,value:d}]:[{label:`${s} per row`,value:`${s}`}],defaultValue:d?[{label:`${d} per row`,value:d}]:[{label:`${s} per row`,value:`${s}`}]}),e.jsx(C.Text,{children:`${m}-${y} of ${(t==null?void 0:t.totalData)||0}`})]}),e.jsx(Ht.Pagination,{currentPage:t!=null&&t.currentPage?Number(t==null?void 0:t.currentPage):1,totalPages:t!=null&&t.totalPage?Number(t==null?void 0:t.totalPage):1,onPageChange:h})]}):e.jsx(jl,{totalData:i,withMarginBottom:!1,withMarginTop:!1})})},ts=({filter:t,columnTitle:r})=>{const[n,s]=u.useState(!1),o=u.useRef(null),i=u.useRef(null),l=u.useRef(null),[c,a]=u.useState(""),[d,h]=u.useState({top:0,left:0}),g=t.selectedValues,m=u.useMemo(()=>c?t.options.filter(v=>v.label.toLowerCase().includes(c.toLowerCase())):t.options,[t.options,c]);u.useEffect(()=>{if(n&&i.current){const v=i.current.getBoundingClientRect(),R=280,L={top:v.bottom+8};t.position==="left"||v.left+R>window.innerWidth?L.right=window.innerWidth-v.right:L.left=v.left,h(L)}},[n,t.position]),u.useEffect(()=>{n&&l.current?setTimeout(()=>{var v;return(v=l.current)==null?void 0:v.focus()},50):a("")},[n]),u.useEffect(()=>{const v=R=>{o.current&&!o.current.contains(R.target)&&i.current&&!i.current.contains(R.target)&&s(!1)};return n&&document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[n]);const y=v=>{const R=g.includes(v)?g.filter(L=>L!==v):[...g,v];t.onFilterChange(R)},w=()=>t.onFilterChange([]);return e.jsxs(x.Box,{direction:"column",style:{position:"relative"},children:[e.jsx(x.Box,{ref:i,style:{display:"flex",flexDirection:"row",alignItems:"center",cursor:"pointer"},onClick:v=>{var R;v.stopPropagation(),n||(R=t.onOpen)==null||R.call(t),s(L=>!L)},children:e.jsx(B.Icon,{name:n?"ChevronUp":"ChevronDown",size:"sm",style:{color:g.length>0?"var(--sa-color-brand-500, #1a4fa0)":"var(--sa-text-subtle, #8c8f97)"}})}),n&&e.jsxs(x.Box,{ref:o,style:{position:"fixed",top:`${d.top}px`,...d.left!==void 0?{left:`${d.left}px`}:{right:`${d.right}px`},backgroundColor:"white",borderRadius:"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(x.Box,{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingTop:"12px",paddingBottom:"12px",paddingLeft:"16px",paddingRight:"16px",borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)"},children:[e.jsxs(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-700",children:["Filter ",r]}),g.length>0&&e.jsx(x.Box,{direction:"column",style:{cursor:"pointer"},children:e.jsx(C.Text,{fontSize:"xs",color:"primary",fontWeight:"semibold",onClick:v=>{v.stopPropagation(),w()},children:"CLEAR"})})]}),!t.hideSearch&&e.jsx(x.Box,{direction:"column",style:{paddingLeft:"16px",paddingRight:"16px",paddingTop:"8px",paddingBottom:"8px"},children:e.jsx(ht.Input,{ref:l,placeholder:`Search ${r.toLowerCase()}...`,leftIcon:e.jsx(B.Icon,{name:"Search",size:"sm"}),value:c,onChange:v=>a(v.target.value),style:{fontSize:"14px"}})}),e.jsx(x.Box,{direction:"column",className:"ts-filter-dropdown-options",style:{overflowY:"auto",maxHeight:"250px",paddingLeft:"8px",paddingRight:"8px"},children:t.isLoadingOptions?e.jsxs(x.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(B.Icon,{name:"Loading",size:"lg",style:{color:"var(--sa-background-brand, #04254f)",animation:"spin 1s linear infinite"}}),e.jsx(C.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"Loading options..."})]}):m.length>0?e.jsx(x.Box,{direction:"column",style:{gap:"2px",paddingTop:"4px",paddingBottom:"4px"},children:m.map(v=>e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",paddingTop:"8px",paddingBottom:"8px",paddingLeft:"8px",paddingRight:"8px",cursor:"pointer",borderRadius:"var(--sa-radii-md, 8px)",transition:"all 0.2s ease",backgroundColor:g.includes(v.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent"},onClick:R=>{R.stopPropagation(),y(v.value)},onMouseEnter:R=>{g.includes(v.value)||(R.currentTarget.style.backgroundColor="var(--sa-background-primary, #ffffff)"),R.currentTarget.style.transform="translateX(2px)"},onMouseLeave:R=>{R.currentTarget.style.backgroundColor=g.includes(v.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent",R.currentTarget.style.transform="translateX(0)"},children:[e.jsx(xt.Checkbox,{checked:g.includes(v.value),onChange:()=>{}}),e.jsx(C.Text,{fontSize:"sm",fontWeight:g.includes(v.value)?"medium":"normal",color:g.includes(v.value)?"primary":"gray-700",children:v.label})]},v.value))}):e.jsxs(x.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(B.Icon,{name:"Search",size:"lg",style:{color:"var(--sa-text-subtle, #8c8f97)"}}),e.jsx(C.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"No results found"})]})}),g.length>0&&e.jsx(x.Box,{direction:"column",style:{paddingTop:"8px",paddingBottom:"8px",paddingLeft:"16px",paddingRight:"16px",borderTop:"1px solid var(--sa-border-subtle, #0b120e24)",backgroundColor:"var(--sa-color-brand-50, #e6edf6)",marginTop:"auto"},children:e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"4px"},children:[e.jsx(x.Box,{direction:"column",style:{backgroundColor:"var(--sa-background-brand, #04254f)",borderRadius:"var(--sa-radii-lg, 12px)",padding:"2px 8px",fontSize:"11px",fontWeight:600,color:"white"},children:g.length}),e.jsxs(C.Text,{fontSize:"xs",color:"primary",fontWeight:"medium",children:["item",g.length>1?"s":""," selected"]})]})})]})]})},vl=({direction:t})=>{const r="var(--sa-text-primary, #292a2e)",n="var(--sa-text-subtle, #8c8f97)",s=t==="asc"?r:n,o=t==="desc"?r:n,i=t==="asc"?1:.45,l=t==="desc"?1:.45;return e.jsxs("span",{style:{display:"inline-flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flexShrink:0,lineHeight:0},"aria-hidden":!0,children:[e.jsx("svg",{width:"8",height:"5",viewBox:"0 0 8 5",style:{color:s,opacity:i,marginBottom:1},children:e.jsx("path",{d:"M4 0 L8 5 L0 5 Z",fill:"currentColor"})}),e.jsx("svg",{width:"8",height:"5",viewBox:"0 0 8 5",style:{color:o,opacity:l},children:e.jsx("path",{d:"M0 0 L8 0 L4 5 Z",fill:"currentColor"})})]})},Cl=({frozen:t})=>e.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:t?"currentColor":"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),e.jsx("path",{d:t?"M7 11V7a5 5 0 0 1 10 0v4":"M7 11V7a5 5 0 0 1 9.9-1"})]}),Hr="var(--sa-background-primary, #ffffff)",no="var(--sa-background-primary-inverse, #f8f8f8)",rs=({columns:t,records:r,handleDetail:n,handleUpdate:s,handleDelete:o,isLoading:i,visibleHandleDelete:l,visibleHandleUpdate:c,visibleHandleDetail:a,showHeadBorder:d=!1,scrollParentRef:h,frozenCount:g=0,onFrozenCountChange:m,customActions:y,actionsOrder:w=["detail","update","delete","custom"],customEmptyState:v,enableColumnResize:R=!1,defaultColumnWidths:L,onColumnWidthsChange:M,defaultMinColumnWidth:b=60,sort:S,defaultSort:E,onSortChange:I,showActionDivider:D=!1})=>{const T=S!==void 0,[G,z]=u.useState(E??null),A=T?S??null:G,P=W=>{if(W.sortKey)return W.sortKey;if(typeof W.accessor=="string")return W.accessor},q=W=>{const X=P(W);if(!X)return;let U;!A||A.key!==X?U={key:X,direction:"asc"}:A.direction==="asc"?U={key:X,direction:"desc"}:U=null,T||z(U),I==null||I(U)},te=[n,s,o].filter(W=>W!==void 0).length,J=!!y,$=!!n||!!s||!!o||J,V="var(--sa-border-subtle, #0b120e24)",xe=`1px solid ${V}`,ue=`inset 1px 0 0 ${V}`,Be=`inset -1px 0 0 ${V}`,Ve=te===3?J?"178px":"140px":te===2?J?"140px":"102px":te===1?J?"112px":"74px":J?"74px":"",De=(W,X)=>{if(!X)return W;if(typeof X=="function")return X(W);if(typeof X=="string")return W[X]},[ge,pe]=u.useState(!1);u.useEffect(()=>{if(!(h!=null&&h.current))return;const W=h.current;pe(W.scrollHeight>W.clientHeight)},[r,h]);const Le=u.useRef(null),[Ne,Ae]=u.useState([]),[ie,ce]=u.useState(()=>L??{}),me=u.useRef(null);u.useLayoutEffect(()=>{if(!g||!Le.current){Ae([]);return}const W=Array.from(Le.current.querySelectorAll("thead tr th")),X=[];let U=0;W.forEach((ae,Se)=>{X[Se]=U,Se<g&&(U+=ae.offsetWidth)}),Ae(X)},[g,t,r,ie]);const je=W=>{m&&m(W<g?W:W+1)},Ee=(W,X)=>{const U=ie[W];if(U!==void 0){const ae=`${U}px`;return{width:ae,minWidth:ae,maxWidth:ae}}return X?{width:X}:{}},et=W=>R&&(W.resizable??!0),tt=(W,X)=>{W.preventDefault(),W.stopPropagation();const U=W.currentTarget.closest("th");if(!U)return;const ae=Math.round(U.getBoundingClientRect().width);me.current={colIndex:X,startX:W.clientX,startWidth:ae};const Se=document.body.style.userSelect,ye=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";const We=Ge=>{var ke;const Fe=me.current;if(!Fe)return;const mt=((ke=t[Fe.colIndex])==null?void 0:ke.minWidth)??b,dt=Math.max(mt,Fe.startWidth+(Ge.clientX-Fe.startX));ce(Te=>Te[Fe.colIndex]===dt?Te:{...Te,[Fe.colIndex]:dt})},rt=()=>{document.removeEventListener("mousemove",We),document.removeEventListener("mouseup",rt),document.body.style.userSelect=Se,document.body.style.cursor=ye,me.current=null,M&&ce(Ge=>(M(Ge),Ge))};document.addEventListener("mousemove",We),document.addEventListener("mouseup",rt)};return e.jsx("div",{ref:Le,children:e.jsxs(Z.Table,{fullWidth:!0,children:[e.jsx(Z.Thead,{style:{height:"40px",whiteSpace:"nowrap"},children:e.jsxs(Z.Tr,{children:[t.map((W,X)=>{var vt,nt;const U=g>0&&X<g,ae=Ne[X]??0,Se=et(W),We=X===t.length-1&&$&&D,rt=P(W),Ge=!!W.sortable&&!!rt,Fe=Ge&&(A==null?void 0:A.key)===rt?A.direction:null,mt=W.title||((vt=W.accessor)==null?void 0:vt.toString())||"",dt=(nt=W.headerTooltip)!=null&&nt.showIcon?e.jsx(B.Icon,{name:"InfoCircle",size:"xs",style:{flexShrink:0,color:"var(--sa-icon-subtle, #8c8f97)",opacity:.75}}):null,ke=e.jsx("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:mt}),Te=Ge?e.jsxs("button",{type:"button",onClick:()=>q(W),title:Fe==="asc"?"Sorted ascending — click to sort descending":Fe==="desc"?"Sorted descending — click to clear":"Click to sort ascending",style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:4,background:"none",border:"none",padding:0,margin:0,font:"inherit",color:"inherit",cursor:"pointer",textAlign:W.textAlign==="text-right"?"right":W.textAlign==="text-center"?"center":"left"},children:[ke,dt,e.jsx(vl,{direction:Fe})]}):e.jsxs("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:4},children:[ke,dt]});return e.jsxs(Z.Th,{style:{position:"sticky",top:0,left:U?ae:void 0,zIndex:U?4:2,paddingLeft:X===0?"12px":"",borderRight:d&&!We&&!U?xe:void 0,borderBottom:d?xe:void 0,boxShadow:d&&U?Be:void 0,backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",textAlign:W.textAlign==="text-right"?"right":W.textAlign==="text-center"?"center":"left",...Ee(X,W.width)},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4px",justifyContent:"space-between",minWidth:0},children:[W.headerTooltip?e.jsx(Me.Tooltip,{label:W.headerTooltip.content,position:"bottom",children:Te}):Te,W.filter&&e.jsx(ts,{filter:W.filter,columnTitle:W.title}),m&&e.jsx("button",{onClick:()=>je(X),title:U?"Unfreeze column":"Freeze column",style:{background:"none",border:"none",cursor:"pointer",padding:"2px",display:"flex",alignItems:"center",flexShrink:0,color:U?"var(--sa-background-brand, #04254f)":"var(--sa-text-subtle, #8c8f97)",opacity:U?1:.45,transition:"opacity 0.15s"},children:e.jsx(Cl,{frozen:U})})]}),Se&&e.jsx("div",{onMouseDown:gt=>tt(gt,X),onClick:gt=>gt.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-${X}`)}),$?e.jsx(Z.Th,{style:{backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",position:"sticky",top:0,right:0,zIndex:3,borderBottom:d?xe:void 0,boxShadow:d&&D?ue:void 0}}):null]})}),e.jsx(Z.Tbody,{children:i?e.jsx(Z.Tr,{children:e.jsx(Z.Td,{colSpan:t.length+1,children:e.jsxs(x.Box,{direction:"column",style:{gap:"16px"},children:[e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"})]})})}):!(r!=null&&r.length)&&v?e.jsx(Z.Tr,{children:e.jsx(Z.Td,{colSpan:t.length+1,children:v})}):r==null?void 0:r.map((W,X)=>e.jsxs(Z.Tr,{style:{transition:"background-color 0.3s ease",padding:0,borderBottom:X===r.length-1&&ge?void 0:"1px solid var(--sa-border-subtle, #0b120e24)"},onMouseEnter:U=>{const ae=U.currentTarget;ae.style.backgroundColor=no,Array.from(ae.querySelectorAll("td")).forEach(Se=>{Se.style.position==="sticky"&&(Se.style.backgroundColor=no)})},onMouseLeave:U=>{const ae=U.currentTarget;ae.style.backgroundColor="",Array.from(ae.querySelectorAll("td")).forEach(Se=>{Se.style.position==="sticky"&&(Se.style.backgroundColor=Hr)})},children:[t.map((U,ae)=>{const Se=U.render?U.render(W,X,r):De(W,U.accessor),ye=g>0&&ae<g,We=Ne[ae]??0,rt=ie[ae]!==void 0,Ge=ye&&ae===g-1;return e.jsx(Z.Td,{style:{position:ye?"sticky":void 0,left:ye?We:void 0,zIndex:ye?1:void 0,backgroundColor:ye?Hr:void 0,transition:ye?"background-color 0.3s ease":void 0,paddingLeft:ae===0?"12px":"",whiteSpace:"nowrap",overflow:rt?"hidden":void 0,borderLeft:U.showBorderLeft?xe:void 0,borderRight:U.showBorderRight?xe:void 0,boxShadow:Ge?Be:void 0,textAlign:U.textAlign==="text-right"?"right":U.textAlign==="text-center"?"center":"left",...Ee(ae,U.width)},children:typeof Se=="string"?e.jsx(C.Text,{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textAlign:U.textAlign==="text-right"?"right":U.textAlign==="text-center"?"center":"left"},children:Se}):Se},`row-${X}-col-${ae}`)}),$?e.jsx(Z.Td,{style:{width:Ve,position:"sticky",right:0,zIndex:1,backgroundColor:Hr,boxShadow:D?ue:void 0,transition:"background-color 0.3s ease"},children:e.jsx(de.Flex,{direction:"row",align:"center",justify:"center",gap:"sm",children:w.map(U=>{const ae=X===r.length-1?"top":"bottom";return U==="detail"&&n&&(a==null?void 0:a(W))!==!1?e.jsx(Me.Tooltip,{label:"Detail",position:ae,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>n(W.id,W),iconLeft:e.jsx(B.Icon,{name:"DocumentClean",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"detail"):U==="update"&&s&&(c==null?void 0:c(W))!==!1?e.jsx(Me.Tooltip,{label:"Update",position:ae,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>s(W),iconLeft:e.jsx(B.Icon,{name:"Edit1",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"update"):U==="delete"&&o&&(l==null?void 0:l(W))!==!1?e.jsx(Me.Tooltip,{label:"Delete",position:ae,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>o(W.id,W),iconLeft:e.jsx(B.Icon,{name:"Trash1",size:"sm",style:{color:"var(--sa-color-error-600, #c9184a)"}})})},"delete"):U==="custom"?e.jsx(u.Fragment,{children:y==null?void 0:y(W)},"custom"):null})})}):null]},`${W}${X}`))})]})})};let oo=!1;const wl=({wrapperProps:t,dataTableProps:r,headerProps:n,footerProps:s})=>{var g;process.env.NODE_ENV!=="production"&&!oo&&(oo=!0,console.warn("[@starasia/admin] `TableSection` deprecated — pakai `<FilterBar>` + `<TableLayout>`. Lihat skill `starasia-list-page-pattern`. Akan dihapus di salah satu major berikutnya."));const o=u.useRef(null),[i,l]=u.useState((r==null?void 0:r.defaultFrozenCount)??0),c=(n==null?void 0:n.show)??!0,a=u.useRef(null),d=(g=r==null?void 0:r.pagination)==null?void 0:g.totalData;typeof d=="number"&&(a.current=d);const h=(s==null?void 0:s.showFooter)??(d===void 0?a.current!==0:d!==0);return e.jsxs($o,{...t,children:[c&&e.jsx(Ko,{...n}),e.jsx(x.Box,{direction:"column",ref:o,style:{flex:1,overflowY:"auto",overflowX:"auto"},children:r?e.jsx(rs,{...r,scrollParentRef:o,frozenCount:r!=null&&r.enableFreezeColumns?i:0,onFrozenCountChange:r!=null&&r.enableFreezeColumns?l:void 0}):null}),h&&e.jsx(es,{pagination:r==null?void 0:r.pagination,pageKey:r==null?void 0:r.pageKey,perPageKey:r==null?void 0:r.perPageKey,defaultPerPage:r==null?void 0:r.defaultPerPage,showPagination:r==null?void 0:r.showPagination,totalData:s==null?void 0:s.totalData})]})};function Dl(t){return u.memo(t)}const Sl=Dl(wl),ns="(any-pointer: coarse)",kl=t=>{if(typeof window>"u"||!window.matchMedia)return()=>{};const r=window.matchMedia(ns);return r.addEventListener("change",t),()=>r.removeEventListener("change",t)},Bl=()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(ns).matches,El=()=>!1;function os(){return u.useSyncExternalStore(kl,Bl,El)}const so=200,Kt="1px solid var(--sa-border-subtle, #0b120e24)",Fl=({sortDir:t,frozen:r,filterActive:n})=>t==="asc"?e.jsx(B.Icon,{name:"ChevronSmallUp"}):t==="desc"?e.jsx(B.Icon,{name:"ChevronSmallDown"}):r?e.jsx(B.Icon,{name:"LockOn",size:"xs"}):e.jsx(B.Icon,{name:"Filter",size:"xs",style:n?{color:"var(--sa-text-brand, #031f43)"}:void 0}),er=({icon:t,label:r,active:n,danger:s,onClick:o})=>{const i=s?"var(--sa-text-error, #a4133c)":"var(--sa-text-primary, #292a2e)";return e.jsxs("button",{type:"button",onClick:o,style:{display:"flex",alignItems:"center",gap:12,width:"100%",padding:"8px 12px",background:n?"var(--sa-background-brand-subtlest, #e6edf6)":"none",border:"none",cursor:"pointer",font:"inherit",color:i,textAlign:"left"},onMouseEnter:l=>{n||(l.currentTarget.style.background="var(--sa-background-primary-inverse, #f8f8f8)")},onMouseLeave:l=>{l.currentTarget.style.background=n?"var(--sa-background-brand-subtlest, #e6edf6)":"none"},children:[e.jsx(B.Icon,{name:t,size:"sm",style:{color:i,flexShrink:0}}),e.jsx(C.Text,{as:"span",style:{color:i},children:r})]})},Il=t=>{let r=(t==null?void 0:t.parentElement)??null;for(;r;){const n=getComputedStyle(r).overflowX;if((n==="auto"||n==="scroll")&&r.scrollWidth>r.clientWidth)return r;r=r.parentElement}return null},ss=({active:t,canSort:r,canHide:n,sortDir:s,frozen:o,onSort:i,onClearSort:l,onToggleFreeze:c,onHide:a,filterSlot:d,filterActive:h})=>{const[g,m]=u.useState(!1),y=u.useRef(null),w=u.useRef(null),[v,R]=u.useState({top:0,left:0}),L=u.useCallback(()=>{var A;const b=y.current;if(!b)return;const S=b.getBoundingClientRect(),E=b.closest(".sa-tl-scroll")??Il(b),I=E==null?void 0:E.getBoundingClientRect();if(I&&(S.left<I.left||S.left>I.right)){m(!1);return}const D=Math.min(window.innerWidth-8,I?I.right:window.innerWidth),T=((A=w.current)==null?void 0:A.offsetWidth)||so,G=I?I.left:8,z=Math.max(G,Math.min(S.left,D-T));R({top:S.bottom+6,left:z})},[]);u.useEffect(()=>{if(!g)return;L();const b=()=>L();return window.addEventListener("scroll",b,!0),window.addEventListener("resize",b),()=>{window.removeEventListener("scroll",b,!0),window.removeEventListener("resize",b)}},[g,L]),u.useEffect(()=>{if(!g)return;const b=S=>{w.current&&!w.current.contains(S.target)&&y.current&&!y.current.contains(S.target)&&m(!1)};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[g]);const M=b=>{b(),m(!1)};return e.jsxs(e.Fragment,{children:[e.jsx("button",{ref:y,type:"button",className:"sa-tl-menu-trigger","data-active":t||g?"true":"false",onClick:b=>{b.stopPropagation(),m(S=>!S)},title:"Column options",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:"var(--sa-radii-sm, 6px)",border:Kt,background:"var(--sa-background-primary, #ffffff)",cursor:"pointer",color:"var(--sa-text-subtle, #8c8f97)",flexShrink:0},children:e.jsx(Fl,{sortDir:s,frozen:o,filterActive:h})}),g&&e.jsxs(x.Box,{ref:w,onClick:b=>b.stopPropagation(),style:{position:"fixed",top:`${v.top}px`,...v.left!==void 0?{left:`${v.left}px`}:{right:`${v.right}px`},minWidth:so,backgroundColor:"var(--sa-background-primary, #ffffff)",border:Kt,borderRadius:"var(--sa-radii-sm, 6px)",boxShadow:"var(--sa-shadow-xl, 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a)",zIndex:9999,padding:"4px",display:"flex",flexDirection:"column"},children:[d!=null&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{padding:"6px 12px 2px"},children:e.jsx(C.Text,{as:"span",style:{fontSize:12,fontWeight:500,color:"var(--sa-text-subtlest, #8c8f97)"},children:"Filter"})}),e.jsx("div",{style:{padding:"2px 8px 4px"},children:d}),e.jsx("div",{style:{borderTop:Kt,margin:"4px 0"}})]}),r&&e.jsxs(e.Fragment,{children:[e.jsx(er,{icon:"ChevronUp",label:"Ascending",active:s==="asc",onClick:()=>M(()=>s==="asc"?l():i("asc"))}),e.jsx(er,{icon:"ChevronDown",label:"Descending",active:s==="desc",onClick:()=>M(()=>s==="desc"?l():i("desc"))}),e.jsx("div",{style:{borderTop:Kt,margin:"4px 0"}})]}),e.jsx(er,{icon:"Pin1",label:o?"Unfreeze":"Freeze",active:o,onClick:()=>M(c)}),n&&e.jsx(er,{icon:"EyeClosed",label:"Hide column",danger:!0,onClick:()=>M(a)})]})]})},Ml=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Ll={background:"var(--sa-background-warning-subtlest, #fef2e6)",color:"inherit",padding:0,borderRadius:"min(2px, var(--sa-radii-xs, 4px))"},is=({text:t,query:r,markStyle:n})=>{const s=r==null?void 0:r.trim();if(!s||!t)return e.jsx(e.Fragment,{children:t});const o=s.split(/\s+/).filter(Boolean);if(!o.length)return e.jsx(e.Fragment,{children:t});const i=new Set(o.map(a=>a.toLowerCase())),l=new RegExp(`(${o.map(Ml).join("|")})`,"gi"),c=t.split(l);return e.jsx(e.Fragment,{children:c.map((a,d)=>a&&i.has(a.toLowerCase())?e.jsx("mark",{style:{...Ll,...n},children:a},d):e.jsx(u.Fragment,{children:a},d))})},Ot="1px solid var(--sa-border-subtle, #0b120e24)",Tl="var(--sa-text-subtle, #8c8f97)",Bt="var(--sa-background-neutral, #f0f1f2)",io="2px 0 4px -2px var(--sa-border-subtle, #0b120e24)",At=40,Pr=5,Rl=28,Vr=4,tr=16,Nr="var(--sa-background-brand-subtlest)",rr={display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},lo="sa-table-layout-styles",Ol=()=>{if(typeof document>"u"||document.getElementById(lo))return;const t=document.createElement("style");t.id=lo,t.textContent=`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Sn=require("@starasia/alert"),lr=require("@starasia/avatar"),it=require("@starasia/badges"),x=require("@starasia/box"),Et=require("@starasia/breadcrumb"),H=require("@starasia/button"),Gr=require("@starasia/card"),jt=require("@starasia/date"),Oe=require("@starasia/dialog"),cr=require("@starasia/drawer"),It=require("@starasia/dropdown"),we=require("@starasia/hooks"),Mt=require("@starasia/http"),ht=require("@starasia/input"),O=require("@starasia/menu"),Ht=require("@starasia/pagination"),zt=require("@starasia/storage"),Z=require("@starasia/table"),kn=require("@starasia/tabs"),Qr=require("@starasia/textarea"),Ft=require("@starasia/theme"),Bn=require("@starasia/toast"),Lt=require("@starasia/toggle"),Me=require("@starasia/tooltip"),xt=require("@starasia/checkbox"),Ur=require("@starasia/radio"),C=require("@starasia/text"),B=require("@starasia/icon"),de=require("@starasia/flex"),En=require("@starasia/grid"),Fn=require("@starasia/progress"),In=require("@starasia/stepper"),Mn=require("@starasia/accordion"),Ln=require("@starasia/story-record"),$e=require("@starasia/skeleton"),Tn=require("@starasia/progress-stepper"),e=require("react/jsx-runtime"),u=require("react"),xr=require("react-dom"),Os=require("react-easy-crop"),As={menus:[],menuBottom:void 0,logo:"",appName:"Workspace",userData:null,setUserData:()=>{}},rn=u.createContext(As),nn=()=>u.useContext(rn),fo=t=>{const[r,n]=u.useState((t==null?void 0:t.initialUserData)||null);return{userData:r,setUserData:n}},mo=u.createContext({badges:{},setBadge:()=>{},setBadges:()=>{},clearBadge:()=>{}}),go=({children:t})=>{const[r,n]=u.useState({}),s=u.useCallback(c=>{n(a=>typeof c=="function"?c(a):c)},[]),o=u.useCallback((c,a)=>{n(d=>{const h=typeof a=="function"?a(d[c]):a;return{...d,[c]:h}})},[]),i=u.useCallback(c=>{n(a=>{if(!(c in a))return a;const d={...a};return delete d[c],d})},[]),l=u.useMemo(()=>({badges:r,setBadge:o,setBadges:s,clearBadge:i}),[r,o,s,i]);return e.jsx(mo.Provider,{value:l,children:t})},po=()=>u.useContext(mo),sr=(t,r)=>{const n=r!==void 0?r:t;return n==null?null:typeof n=="string"||typeof n=="number"?{value:n}:n},on=240,sn=200,ln=480,Ws="sa-sidebar-width",Yr=(t,r,n)=>Math.min(Math.max(t,r),n),zs=(t,r,n,s)=>{if(typeof window>"u")return r;try{const o=window.localStorage.getItem(t);if(!o)return r;const i=parseInt(o,10);return Number.isFinite(i)?Yr(i,n,s):r}catch{return r}},Rn=(t,r)=>{if(!(typeof window>"u"))try{window.localStorage.setItem(t,String(r))}catch{}},yo=u.createContext({collapsed:!1,setCollapsed:()=>{},toggle:()=>{},collapse:()=>{},expand:()=>{},width:on,setWidth:()=>{},resetWidth:()=>{},minWidth:sn,maxWidth:ln,mobileOpen:!1,setMobileOpen:()=>{},openMobile:()=>{},closeMobile:()=>{},toggleMobile:()=>{}}),bo=({children:t,defaultCollapsed:r=!1,defaultWidth:n=on,minWidth:s=sn,maxWidth:o=ln,widthStorageKey:i=Ws})=>{const[l,c]=u.useState(r),[a,d]=u.useState(!1),[h,g]=u.useState(()=>zs(i,n,s,o)),m=u.useCallback(D=>{c(T=>typeof D=="function"?D(T):D)},[]),y=u.useCallback(()=>c(D=>!D),[]),w=u.useCallback(()=>c(!0),[]),v=u.useCallback(()=>c(!1),[]),R=u.useCallback(D=>{g(T=>{const G=typeof D=="function"?D(T):D,z=Yr(Math.round(G),s,o);return Rn(i,z),z})},[s,o,i]),L=u.useCallback(()=>{const D=Yr(n,s,o);Rn(i,D),g(D)},[n,s,o,i]),M=u.useCallback(D=>{d(T=>typeof D=="function"?D(T):D)},[]),b=u.useCallback(()=>d(!0),[]),S=u.useCallback(()=>d(!1),[]),E=u.useCallback(()=>d(D=>!D),[]),I=u.useMemo(()=>({collapsed:l,setCollapsed:m,toggle:y,collapse:w,expand:v,width:h,setWidth:R,resetWidth:L,minWidth:s,maxWidth:o,mobileOpen:a,setMobileOpen:M,openMobile:b,closeMobile:S,toggleMobile:E}),[l,m,y,w,v,h,R,L,s,o,a,M,b,S,E]);return e.jsx(yo.Provider,{value:I,children:t})},jo=()=>u.useContext(yo),vo=u.createContext(null),Co=({adapter:t,children:r})=>e.jsx(vo.Provider,{value:t,children:r}),at=()=>{const t=u.useContext(vo);if(!t)throw new Error("[@starasia/admin] Router adapter belum dipasang. Bungkus aplikasi dengan <App routerAdapter={...} /> atau <StarasiaRouterProvider adapter={...}>. Import adapter dari '@starasia/admin/adapters/react-router' atau '@starasia/admin/adapters/tanstack'.");return t},wo=({router:t,routerAdapter:r,menus:n=[],menuBottom:s,logo:o,appName:i="Workspace",initialUserData:l,theme:c})=>{const a=fo({initialUserData:l}),{theme:d}=Ft.useTheme();return e.jsx(Co,{adapter:r,children:e.jsx(rn.Provider,{value:{logo:o,appName:i,menus:n,userData:a.userData,setUserData:a.setUserData,menuBottom:s},children:e.jsx(go,{children:e.jsx(bo,{children:c?e.jsx(Ft.ThemeProvider,{value:c,children:t}):d?e.jsx(Ft.ThemeProvider,{value:d,children:t}):t})})})})},Hs=u.memo(wo);function Do({collapsed:t=!1,children:r}){if(!r)return null;const n=typeof r=="function",s=n?r({collapsed:t}):r;return s==null||s===!1?null:e.jsx("div",{style:{position:"sticky",top:"var(--app-header-height, 4rem)",zIndex:1,borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)",paddingLeft:t?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingRight:t?"calc((var(--app-header-height, 4rem) - 2rem) / 2)":"0.5rem",paddingTop:"0.5rem",paddingBottom:"0.5rem",boxSizing:"border-box"},children:n?s:e.jsx("div",{style:{opacity:t?0:1,transition:"opacity 0.3s",visibility:t?"hidden":"visible"},children:s})})}const cn=u.createContext(null);function So({children:t}){const[r,n]=u.useState(null),[s,o]=u.useState(null),[i,l]=u.useState(null),[c,a]=u.useState(0),d=u.useCallback(()=>(a(h=>h+1),()=>a(h=>h-1)),[]);return e.jsx(cn.Provider,{value:{prependNode:r,appendNode:s,replaceNode:i,setPrependNode:n,setAppendNode:o,setReplaceNode:l,replaceCount:c,registerReplace:d},children:t})}function ko({children:t}){const r=u.useContext(cn);return r?e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:r.setPrependNode,style:{display:"contents"}}),r.replaceCount>0?e.jsx("div",{ref:r.setReplaceNode,style:{display:"contents"}}):t,e.jsx("div",{ref:r.setAppendNode,style:{display:"contents"}})]}):e.jsx(e.Fragment,{children:t})}function Ps({children:t,mode:r="append"}){const n=u.useContext(cn);if(u.useEffect(()=>{if(!(r!=="replace"||!n))return n.registerReplace()},[r,n]),!n)return process.env.NODE_ENV!=="production"&&console.warn("[HeaderLeftSlot] used outside AppLayout — content not rendered"),null;const s=r==="prepend"?n.prependNode:r==="replace"?n.replaceNode:n.appendNode;return s?xr.createPortal(t,s):null}const an=u.createContext(null);function Bo({children:t}){const[r,n]=u.useState({}),[s,o]=u.useState({}),i=u.useCallback((a,d)=>{n(h=>h[a]===d?h:{...h,[a]:d})},[]),l=u.useCallback(a=>(o(d=>({...d,[a]:(d[a]??0)+1})),()=>o(d=>({...d,[a]:Math.max(0,(d[a]??0)-1)}))),[]),c=u.useMemo(()=>({outletNodes:r,setOutletNode:i,slotCounts:s,registerSlot:l}),[r,i,s,l]);return e.jsx(an.Provider,{value:c,children:t})}function Xr({slotKey:t,fallback:r}){const n=u.useContext(an),s=n?(n.slotCounts[t]??0)>0:!1,o=u.useRef(n==null?void 0:n.setOutletNode);o.current=n==null?void 0:n.setOutletNode;const i=u.useCallback(l=>{var c;return(c=o.current)==null?void 0:c.call(o,t,l)},[t]);return e.jsx(e.Fragment,{children:s?e.jsx("div",{ref:i,style:{display:"contents"}}):r})}function Vs({slotKey:t,children:r}){const n=u.useContext(an),s=u.useRef(n==null?void 0:n.registerSlot);if(s.current=n==null?void 0:n.registerSlot,u.useEffect(()=>{var i;return(i=s.current)==null?void 0:i.call(s,t)},[t]),!n)return process.env.NODE_ENV!=="production"&&console.warn("[SidebarGroupSlot] used outside AppLayout — content not rendered"),null;const o=n.outletNodes[t];return o?xr.createPortal(r,o):null}const ar="moduleSwitcherGroupId",Jr="sa-module-switcher-change";function On(){if(typeof window>"u")return null;const t=window.localStorage.getItem(ar);if(t===null)return null;const r=Number(t);return Number.isFinite(r)?r:null}function Eo(t){typeof window>"u"||(t===null?window.localStorage.removeItem(ar):window.localStorage.setItem(ar,String(t)),window.dispatchEvent(new CustomEvent(Jr,{detail:t})))}function Ns(){Eo(null)}function dn(){const[t,r]=u.useState(()=>On());return u.useEffect(()=>{const s=()=>{r(On())},o=i=>{i.key===ar&&s()};return window.addEventListener(Jr,s),window.addEventListener("storage",o),()=>{window.removeEventListener(Jr,s),window.removeEventListener("storage",o)}},[]),{selectedGroupId:t,setSelectedGroupId:s=>{Eo(s),r(s)}}}const _s="4.5rem",qs="var(--app-header-height, 4rem)",Fo=t=>t?_s:qs;function An({icon:t,label:r,tooltip:n=r,active:s=!1,badge:o,showLabel:i=!0,onClick:l}){const[c,a]=u.useState(!1);return e.jsx(Me.Tooltip,{fluid:!0,label:n,position:"right",children:e.jsxs(x.Box,{as:"button",onClick:l,onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),"aria-label":n,"aria-current":s?"page":void 0,fullWidth:!0,direction:"column",align:"center",gap:"spacing-2",paddingBlock:"xs",style:{color:s?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)"},children:[e.jsxs(x.Box,{position:"relative",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",borderRadius:s?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:s?"white":c?"neutral":void 0,style:{borderColor:s?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:t,size:"sm"}),o&&!i&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",top:"top-n2",right:"right-n2",display:"inline-flex",borderRadius:"rounded-full",style:{boxShadow:"0 0 0 1px var(--sa-background-primary, #ffffff)"},children:e.jsx(it.BadgeDot,{tone:"error",variant:"solid",size:"xs"})}),o&&i&&e.jsx(x.Box,{position:"absolute",display:"inline-flex",style:{top:"-0.375rem",left:"1.5rem"},children:e.jsx(it.Badge,{text:String(o.value),variant:o.variant??"info",size:"xs",border:!0})})]}),i&&e.jsx(C.Text,{as:"span",fontSize:"xs",fontWeight:s?"medium":"normal",textAlign:"center",truncate:!0,style:{display:"block",maxWidth:"100%",color:"inherit"},children:r})]})})}function Zs({items:t,bottomItems:r,activeKey:n,onSelect:s,onAction:o,logo:i,panelCollapsed:l,onExpandPanel:c,showLabels:a=!0}){const[d,h]=u.useState(!1),g=l&&d;return e.jsxs(x.Box,{as:"nav","aria-label":"Primary navigation",bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:"0",style:{width:Fo(a),height:"100%"},children:[e.jsxs(x.Box,{onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),position:"relative",align:"center",justify:"center",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",flexShrink:"0",style:{height:"var(--app-header-height, 4rem)"},children:[e.jsx("img",{src:i,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",transition:"opacity 0.2s",opacity:g?0:1}}),l&&e.jsx(x.Box,{as:"button",onClick:c,"aria-label":"Expand sidebar",position:"absolute",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-sm",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:"var(--sa-text-primary, #292a2e)",opacity:g?1:0,pointerEvents:g?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})})]}),e.jsx(x.Box,{flex:"1",overflow:"overflow-y-auto",paddingBlock:"md",paddingInline:"xs",gap:"xs",children:t.map(m=>e.jsx(An,{icon:m.icon,label:m.label,tooltip:m.tooltip,badge:m.badge,showLabel:a,active:m.key===n,onClick:()=>s(m.key)},m.key))}),r&&r.length>0&&e.jsx(x.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:"xs",gap:"xs",flexShrink:"0",children:r.map(m=>e.jsx(An,{icon:m.icon,label:m.label,tooltip:m.tooltip,badge:m.badge,showLabel:a,onClick:()=>o(m)},m.key))})]})}function Gs({items:t,activeKey:r,onSelect:n}){return e.jsx(x.Box,{role:"tablist","aria-label":"Primary navigation",direction:"row",gap:"xs",paddingInline:"md",paddingBlock:"sm",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",flexShrink:"0",style:{overflowX:"auto",scrollbarWidth:"none"},children:t.map(s=>{const o=s.key===r;return e.jsxs(x.Box,{as:"button",role:"tab","aria-selected":o,onClick:()=>n(s.key),direction:"row",align:"center",gap:"spacing-4",paddingInline:"sm",height:"height-32",flexShrink:"0",borderRadius:o?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:o?"white":void 0,hover:o?void 0:{bg:"neutral"},style:{whiteSpace:"nowrap",color:o?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:o?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:s.icon,size:"sm"}),e.jsx(C.Text,{as:"span",fontSize:"sm",fontWeight:o?"medium":"normal",style:{color:"inherit"},children:s.label})]},s.key)})})}const Mr=(t,r)=>!t.groupIds||t.groupIds.includes(r.id)||r.parentGroupId!==void 0&&t.groupIds.includes(r.parentGroupId);let Jt=0,Dt=!1,Wn=new Set;const zn=new Set;function Qs(t,r){const[n,s]=u.useState(!1),o=u.useRef(null),i=u.useRef(null);return u.useLayoutEffect(()=>{const l=o.current;if(!l)return;let c=0;const a=()=>{c=0;const h=i.current;if(!h)return;const g=h.scrollWidth>l.clientWidth;s(m=>m===g?m:g)},d=new ResizeObserver(()=>{c||(c=requestAnimationFrame(a))});return d.observe(l),a(),()=>{c&&cancelAnimationFrame(c),d.disconnect()}},[t,r]),{containerRef:o,textRef:i,truncated:n}}function Hn({text:t,textStyle:r,active:n=!1}){const{containerRef:s,textRef:o,truncated:i}=Qs(t,n),l=e.jsx(C.Text,{ref:o,as:"span",fontSize:"md",fontWeight:n?"medium":"normal",truncate:!0,style:{display:"block",...r},children:t});return e.jsx(x.Box,{ref:s,display:"block",style:{flex:1,minWidth:0},children:i?e.jsx(Me.Tooltip,{fluid:!0,label:t,position:"top",children:l}):l})}const Us=200,$r="var(--app-header-height, 4rem)",Pn="44px",Lr=`calc((${$r} - 2rem) / 2)`,Vn=16;function Ys({children:t,headerLeftSlot:r,profile:n,isLoadingProfile:s,onLogout:o,isLoggingOut:i,loadingComponent:l,sidebarHeaderContent:c,headerActions:a,profileRole:d,profileMenuButtons:h,profileMenuItems:g,logoutButton:m,resizableSidebar:y=!0,rail:w}){var Gt,bt;const{useSearchParams:v,useNavigate:R,useLocation:L,Outlet:M}=at(),[b]=v(),S=b.get("embed")==="true",E=nn(),{badges:I}=po(),D=R(),T=L(),z=!we.useMediaQuery("md"),[A,P]=u.useState(!1),{collapsed:q,setCollapsed:Q,width:te,setWidth:J,resetWidth:$,minWidth:V,maxWidth:xe,mobileOpen:ue,setMobileOpen:Be}=jo(),[Ve,De]=u.useState(!1),[ge,pe]=u.useState(()=>new Set(Wn)),[Le,Ne]=u.useState(null),{selectedGroupId:Ae,setSelectedGroupId:ie}=dn(),ce=!!(w&&w.items.length>0),me=q&&!z&&!ce,je=q&&!z&&ce;u.useEffect(()=>{Wn=ge},[ge]);const Ee=u.useRef(null),et=u.useRef(null),tt=u.useRef(null),[W,X]=u.useState(!1),[U,ae]=u.useState(null),Se=y&&!z&&!q,ye=k=>Math.min(Math.max(k,V),xe),We=U??te,rt=k=>{var Qe,He,Ye;if(!Se)return;k.preventDefault();const _=k.clientX,Y=((Qe=tt.current)==null?void 0:Qe.getBoundingClientRect().width)??te;(Ye=(He=k.currentTarget).setPointerCapture)==null||Ye.call(He,k.pointerId),X(!0),document.body.style.userSelect="none",document.body.style.cursor="col-resize";let oe=0,he=Y;const Ie=qe=>{he=Y+(qe.clientX-_),oe||(oe=requestAnimationFrame(()=>{oe=0,ae(ye(he))}))},le=()=>{oe&&cancelAnimationFrame(oe),window.removeEventListener("pointermove",Ie),window.removeEventListener("pointerup",le),document.body.style.userSelect="",document.body.style.cursor="",ae(null),X(!1),he<Us?Q(!0):J(ye(he))};window.addEventListener("pointermove",Ie),window.addEventListener("pointerup",le)},Ge=k=>{Se&&(k.key==="ArrowLeft"?(k.preventDefault(),J(_=>_-Vn)):k.key==="ArrowRight"?(k.preventDefault(),J(_=>_+Vn)):k.key==="Home"?(k.preventDefault(),J(V)):k.key==="End"&&(k.preventDefault(),J(xe)))};u.useEffect(()=>{const k=Ee.current;if(!k)return;const _=()=>{Dt||(Jt=k.scrollTop)};return k.addEventListener("scroll",_),()=>k.removeEventListener("scroll",_)},[]);const Fe=()=>{const k=Ee.current;k&&Jt>0&&(Dt=!0,k.scrollTop=Jt,requestAnimationFrame(()=>{Dt=!1}))};u.useLayoutEffect(()=>{Dt=!0,Fe();const k=setTimeout(()=>{Dt=!1},300);return()=>clearTimeout(k)},[]),u.useLayoutEffect(()=>{E.menus.length>0&&(Jt>0?Fe():requestAnimationFrame(()=>{var _;const k=(_=Ee.current)==null?void 0:_.querySelector("[data-menu-active='true']");k&&k.scrollIntoView({block:"center",behavior:"instant"})}))},[E.menus]),u.useEffect(()=>{Dt=!0,Fe();const k=setTimeout(Fe,0),_=setTimeout(Fe,50),Y=setTimeout(Fe,100),oe=setTimeout(Fe,200),he=setTimeout(()=>{Dt=!1},300),Ie=setTimeout(()=>{const le=Ee.current,Qe=le==null?void 0:le.querySelector("[data-menu-active='true']");if(le&&Qe){const He=le.getBoundingClientRect(),Ye=Qe.getBoundingClientRect();Ye.top>=He.top&&Ye.bottom<=He.bottom||Qe.scrollIntoView({block:"center",behavior:"smooth"})}},250);return()=>{clearTimeout(k),clearTimeout(_),clearTimeout(Y),clearTimeout(oe),clearTimeout(he),clearTimeout(Ie)}},[T.pathname]),u.useEffect(()=>{et.current&&(et.current.scrollTop=0)},[T.pathname]),u.useEffect(()=>{z&&Be(!1)},[T.pathname,z]),u.useEffect(()=>{z&&Q(!0)},[z]),u.useEffect(()=>{const k=document.documentElement;return k.style.setProperty("--app-header-height",Pn),()=>{k.style.removeProperty("--app-header-height")}},[]);const mt=()=>{P(!0)},dt=()=>{P(!1)},ke=()=>{P(!1),o()},Te=k=>{const _=k.slotKey?[]:[k.to];return k.children&&_.push(...k.children.map(Y=>Y.to)),_},vt=[...E.menus.flatMap(k=>k.items.flatMap(Te)),...((Gt=E.menuBottom)==null?void 0:Gt.flatMap(Te))??[]],nt=k=>{if(!T.pathname.startsWith(k))return!1;const _=vt.filter(Y=>T.pathname.startsWith(Y)).sort((Y,oe)=>oe.length-Y.length)[0];return k===_},gt=u.useRef(w);gt.current=w;const pt=k=>{const _=gt.current;if(!_||_.items.length===0)return null;const Y=_.defaultKey??_.items[0].key,oe=_.items.find(le=>le.key===k),he=E.menus.find(le=>le.items.some(Qe=>Te(Qe).some(nt)));if(!he)return oe?oe.key:Y;if(oe&&Mr(oe,he))return oe.key;const Ie=_.items.find(le=>le.groupIds&&Mr(le,he))??_.items.find(le=>!le.groupIds);return(Ie==null?void 0:Ie.key)??(oe==null?void 0:oe.key)??Y},[yt,ze]=u.useState(()=>pt(null));u.useEffect(()=>{ze(k=>pt(k))},[T.pathname,E.menus]);const _e=ce?w.items.find(k=>k.key===yt)??w.items[0]:void 0,qt=k=>{ze(k),je&&Q(!1)},Zt=k=>{k.onClick?k.onClick():k.to&&D(k.to)};u.useEffect(()=>{var _;const k=Y=>{var he;const oe=Y.defaultExpanded&&!zn.has(Y.id);oe&&zn.add(Y.id),(oe||(he=Y.children)!=null&&he.some(Ie=>T.pathname.startsWith(Ie.to)))&&pe(Ie=>{const le=new Set(Ie);return le.add(Y.id),le})};E.menus.forEach(Y=>{Y.items.forEach(k)}),(_=E.menuBottom)==null||_.forEach(k)},[T.pathname,E.menus,E.menuBottom]);const jr=k=>{pe(_=>{const Y=new Set(_);return Y.has(k)?Y.delete(k):Y.add(k),Y})};u.useEffect(()=>{E.menus.length!==0&&Ae!==null&&!E.menus.some(k=>k.id===Ae)&&ie(null)},[E.menus,Ae,ie]);const vr=u.useMemo(()=>{if(_e!=null&&_e.groupIds)return E.menus.filter(he=>Mr(_e,he));const k=E.menus,_=ce?null:Ae;if(_!==null)return k.filter(he=>he.id===_||he.parentGroupId===_);const Y=k.filter(he=>he.parentGroupId===void 0),oe=k.filter(he=>he.parentGroupId!==void 0).flatMap(he=>he.items);return oe.length===0?Y:[...Y,{id:18,name:"Pengaturan",items:oe,parentGroupId:void 0}]},[E.menus,Ae,_e,ce]);if(S)return e.jsx(x.Box,{as:"main",overflow:"overflow-y-auto",bg:"surface-inverse",style:{height:"100vh"},children:t||e.jsx(M,{})});const Ct=k=>{const _=k.children&&k.children.length>0,Y=!!k.slotKey,oe=_||Y,he=ge.has(k.id),Ie=_?k.children.some(He=>nt(He.to)):Y?!1:nt(k.to),le=sr(k.badge,I[k.id]),Qe=!!le&&me;return e.jsxs(x.Box,{display:"block","data-menu-active":Ie||void 0,children:[e.jsxs(x.Box,{as:"button",onClick:He=>{if(Y&&me)D(k.to);else if(oe)if(me){const Ye=He.currentTarget.getBoundingClientRect();Ne({item:k,top:Ye.top,left:Ye.right+8})}else jr(k.id);else D(k.to)},fullWidth:!0,direction:"row",align:"center",justify:me?"center":void 0,gap:"sm",paddingInline:me?void 0:"sm",paddingBlock:"xs",height:"height-32",borderRadius:Ie?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:Ie?"white":void 0,hover:Ie?void 0:{bg:"neutral"},title:me?k.title:void 0,style:{textAlign:"left",color:Ie?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:Ie?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsxs(x.Box,{position:"relative",display:"inline-flex",flexShrink:"0",style:{alignItems:"center"},children:[e.jsx(B.Icon,{name:k.icon,size:"sm",style:{flexShrink:0}}),Qe&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",top:"top-n2",right:"right-n2",display:"inline-flex",borderRadius:"rounded-full",style:{boxShadow:"0 0 0 1px var(--sa-background-primary, #ffffff)"},children:e.jsx(it.BadgeDot,{tone:"error",variant:"solid",size:"xs"})})]}),!me&&e.jsxs(e.Fragment,{children:[e.jsx(Hn,{text:k.title,active:Ie,textStyle:{transition:"opacity 0.3s"}}),le&&e.jsx(it.Badge,{text:String(le.value),variant:le.variant??"info",size:"xs",border:!0}),oe&&e.jsx(B.Icon,{name:"ChevronDown",size:"sm",style:{flexShrink:0,transition:"transform 0.2s",transform:he?"rotate(180deg)":"rotate(0deg)"}})]})]}),oe&&!me&&(()=>{const He=k.children??[],Ye=Y?-1:He.findIndex(Je=>nt(Je.to)),qe=He.map(Je=>{const wt=sr(Je.badge,I[Je.id]),ut=nt(Je.to);return e.jsxs(x.Box,{as:"button",onClick:()=>D(Je.to),fullWidth:!0,direction:"row",align:"center",gap:"sm",paddingLeft:"sm",paddingRight:"sm",paddingBlock:"xs",height:"height-32",borderRadius:ut?"rounded-sm":"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:ut?"white":void 0,hover:ut?void 0:{bg:"neutral"},style:{textAlign:"left",color:ut?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)",borderColor:ut?"var(--sa-border-subtle, #0b120e24)":"transparent"},children:[e.jsx(B.Icon,{name:Je.icon,size:"sm",style:{flexShrink:0}}),e.jsx(Hn,{text:Je.title,active:ut}),wt&&e.jsx(it.Badge,{text:String(wt.value),variant:wt.variant??"info",size:"xs",border:!0})]},Je.id)});return e.jsxs(x.Box,{position:"relative",overflow:"overflow-hidden",style:{marginLeft:"1rem",paddingLeft:"0.75rem",transition:"all 0.3s ease-in-out",maxHeight:he?Y?"none":`${He.length*36}px`:"0px",opacity:he?1:0,marginTop:he?"0.25rem":"0px"},children:[e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",left:"left-0",top:"top-0",fullHeight:!0,style:{width:"1.5px",backgroundColor:"var(--sa-border-subtle, #0b120e24)",pointerEvents:"none"}}),Ye>=0&&e.jsx(x.Box,{"aria-hidden":"true",position:"absolute",left:"left-0",height:"height-32",zIndex:"10",style:{top:`${Ye*32}px`,width:"1.5px",backgroundColor:"var(--sa-text-primary, #292a2e)",transition:"top 0.2s ease-in-out",pointerEvents:"none"}}),Y?e.jsx(Xr,{slotKey:k.slotKey,fallback:qe}):qe]})})()]},k.id)};return e.jsx(Bo,{children:e.jsxs(So,{children:[e.jsxs(x.Box,{direction:"row",position:"relative",style:{height:"100vh","--app-header-height":Pn,"--app-sidebar-width":z?"0px":ce?`calc(${Fo(w.showLabels??!0)} + ${je?"0px":`${We}px`})`:q?$r:`${We}px`,"--app-footer-zindex":z&&ue?"40":"998"},children:[z&&e.jsx(x.Box,{position:"fixed",zIndex:"40",bg:"black-alpha-a50",style:{inset:0,opacity:ue?.5:0,pointerEvents:ue?"auto":"none",transition:"opacity 0.3s"},onClick:()=>Be(!1)}),ce&&!z&&e.jsx(Zs,{items:w.items,bottomItems:w.bottomItems,activeKey:_e.key,onSelect:qt,onAction:Zt,logo:E.logo,panelCollapsed:je,onExpandPanel:()=>Q(!1),showLabels:w.showLabels??!0}),e.jsxs(x.Box,{as:"aside",ref:tt,"aria-hidden":je||void 0,bg:"surface-inverse",borderWidth:"border-r",borderStyle:"border-solid-r",borderColor:"border-base",flexShrink:z?void 0:"0",style:{width:z?"16.375rem":je?"0px":q?$r:`${We}px`,...je&&{borderRightWidth:0,overflow:"hidden",visibility:"hidden"},position:z?"fixed":"relative",...z&&{inset:0,zIndex:50,transform:ue?"translateX(0)":"translateX(-100%)"},transition:W?"none":"all 0.3s ease-in-out",minWidth:0},children:[e.jsx(x.Box,{onMouseEnter:()=>De(!0),onMouseLeave:()=>De(!1),direction:"row",align:"center",justify:"space-between",paddingInline:me?void 0:"lg",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",position:"relative",style:{height:"var(--app-header-height, 4rem)",...me?{paddingInline:Lr}:null},children:(()=>{const k=ce&&!z,_=_e!=null&&_e.groupIds?_e.tooltip??_e.label:E.appName,Y=!z&&q&&!ue&&!ce,oe=Y&&Ve;return e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",flex:Y?"1":void 0,justify:Y?"center":void 0,style:{transition:"opacity 0.2s",opacity:oe?0:1,pointerEvents:oe?"none":"auto"},children:[!k&&e.jsx("img",{src:E.logo,alt:"Logo",style:{width:"1.5rem",height:"1.5rem",flexShrink:0}}),(!q||ue)&&e.jsx(C.Text,{as:"span",fontSize:"md",fontWeight:"semibold",color:"primary",truncate:!0,style:{transition:"opacity 0.3s"},children:k?_:E.appName})]}),!z&&!q&&e.jsx(x.Box,{as:"button",onClick:()=>Q(!0),"aria-label":"Collapse sidebar",display:"inline-flex",align:"center",justify:"center",flexShrink:"0",style:{color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})}),Y&&e.jsx(x.Box,{as:"button",onClick:()=>Q(!1),"aria-label":"Expand sidebar",position:"absolute",display:"inline-flex",align:"center",justify:"center",width:"width-32",height:"height-32",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-sm",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:"var(--sa-text-primary, #292a2e)",opacity:oe?1:0,pointerEvents:oe?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(B.Icon,{name:"LayoutLeft",size:"sm"})}),z&&e.jsx(x.Box,{as:"button",onClick:()=>Be(!1),"aria-label":"Close menu",align:"center",justify:"center",borderRadius:"rounded-md",style:{padding:"0.375rem",color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"Cross",size:"md"})})]})})()}),c&&e.jsx(Do,{collapsed:z||ce?!1:q,children:c}),ce&&z&&e.jsx(Gs,{items:w.items,activeKey:_e.key,onSelect:qt}),e.jsx(x.Box,{ref:Ee,flex:"1",overflow:"overflow-y-auto",paddingBlock:"lg",children:vr.map(k=>e.jsxs(x.Box,{marginBottom:"lg",children:[me?k.name&&e.jsx(x.Box,{"aria-label":k.name,direction:"row",align:"center",justify:"center",paddingBlock:"md",children:e.jsx(x.Box,{width:"width-16",style:{height:"2px",borderRadius:"min(1px, var(--sa-radii-xs, 4px))",backgroundColor:k.color??"var(--sa-background-brand, #04254f)"}})}):k.name&&e.jsx(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"subtlest",textTransform:"uppercase",truncate:!0,style:{letterSpacing:"0.06em",paddingLeft:"1.25rem",paddingRight:"0.75rem",paddingBottom:"0.25rem",transition:"opacity 0.3s"},children:k.name}),e.jsx(x.Box,{paddingInline:me?void 0:"md",gap:"xs",style:me?{paddingInline:Lr}:void 0,children:k.slotKey?e.jsx(Xr,{slotKey:k.slotKey,fallback:k.items.map(_=>Ct(_))}):k.items.map(_=>Ct(_))})]},k.id))}),E.menuBottom&&E.menuBottom.length>0&&e.jsx(x.Box,{borderWidth:"border-t",borderStyle:"border-solid-t",borderColor:"border-base",paddingBlock:"md",paddingInline:me?void 0:"md",bg:"surface-inverse",gap:"xs",flexShrink:"0",style:me?{paddingInline:Lr}:void 0,children:E.menuBottom.map(k=>Ct(k))}),Se&&e.jsx(x.Box,{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar","aria-valuenow":te,"aria-valuemin":V,"aria-valuemax":xe,tabIndex:0,onPointerDown:rt,onKeyDown:Ge,onDoubleClick:$,title:"Drag to resize · double-click to reset",position:"absolute",top:"top-0",right:"right-0",fullHeight:!0,style:{width:"6px",transform:"translateX(50%)",cursor:"col-resize",zIndex:5,touchAction:"none",background:W?"var(--sa-background-brand, #04254f)":"transparent",transition:"background 0.15s"},onMouseEnter:k=>{W||(k.currentTarget.style.background="var(--sa-border-bold, #0b120e40)")},onMouseLeave:k=>{W||(k.currentTarget.style.background="transparent")}})]}),e.jsxs(x.Box,{flex:"1",overflow:"overflow-hidden",children:[e.jsxs(x.Box,{as:"header",bg:"white",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",direction:"row",align:"center",justify:"space-between",paddingInline:"lg",flexShrink:"0",style:{height:"var(--app-header-height, 4rem)"},children:[e.jsxs(x.Box,{direction:"row",align:"center",gap:z?"lg":void 0,children:[z&&e.jsx(x.Box,{as:"button",onClick:()=>Be(!0),align:"center",justify:"center",borderRadius:"rounded-md",style:{padding:"0.375rem",color:"var(--sa-text-subtle, #8c8f97)"},children:e.jsx(B.Icon,{name:"MenuBurger",size:"lg"})}),e.jsx(ko,{children:r})]}),e.jsxs(x.Box,{direction:"row",align:"center",gap:"md",children:[a,e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",cursor:"pointer",children:[!z&&e.jsxs(x.Box,{display:"block",textAlign:"right",customMaxWidth:"12.5rem",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",textAlign:"right",truncate:!0,lineHeight:"leading-none",children:s?"Loading...":(n==null?void 0:n.name)||"unknown"}),e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"right",truncate:!0,children:s?"":(n==null?void 0:n.email)||"unknown"})]}),e.jsx(lr.Avatar,{size:"sm",initials:((n==null?void 0:n.name)||"U")[0].toUpperCase(),bg:"var(--sa-background-brand, #04254f)",color:"var(--sa-background-primary, #ffffff)"}),e.jsx(B.Icon,{name:"ChevronDown",size:"xs",color:"subtle"})]})}),e.jsxs(O.MenuLists,{width:280,style:{paddingBlock:"12px",paddingInline:"12px",gap:"8px",marginTop:"16px"},children:[e.jsx(O.MenuHeading,{children:e.jsxs(x.Box,{align:"center",textAlign:"center",paddingBlock:"sm",fullWidth:!0,children:[e.jsx(lr.Avatar,{customSize:64,initials:((n==null?void 0:n.name)||"U")[0].toUpperCase(),bg:"var(--sa-background-brand, #04254f)",color:"var(--sa-background-primary, #ffffff)",style:{fontSize:"1.25rem",marginBottom:"0.75rem",boxShadow:"var(--sa-shadow-sm, 0 1px 2px 0 #0000000d)"}}),e.jsx(C.Text,{fontSize:"md",fontWeight:"semibold",color:"primary",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(n==null?void 0:n.name)||"unknown"}),e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:(n==null?void 0:n.email)||"unknown"}),d&&e.jsx(C.Text,{fontSize:"sm",color:"subtle",textAlign:"center",truncate:!0,style:{maxWidth:"100%"},children:d})]})}),(h&&h.length>0||g)&&e.jsxs(O.MenuBody,{children:[h==null?void 0:h.map((k,_)=>e.jsx(O.MenuItem,{onClick:k.onClick,startIcon:e.jsx(B.Icon,{name:k.icon,size:"md"}),children:k.label},`${k.label}-${_}`)),g]}),m??e.jsx(O.MenuFooter,{children:e.jsx(O.MenuItem,{intent:"danger",onClick:mt,startIcon:e.jsx(B.Icon,{name:"Logout",size:"md"}),children:"Logout"})})]})]})]})]}),e.jsx(x.Box,{as:"main",ref:et,flex:"1",overflow:"overflow-y-auto",children:t||e.jsx(M,{})})]})]}),i&&l&&e.jsx(x.Box,{position:"fixed",align:"center",justify:"center",bg:"black-alpha-a70",style:{inset:0,zIndex:9999},children:l}),e.jsxs(Oe.Dialog,{isShow:A,onHide:dt,children:[e.jsx(Oe.DialogTitle,{children:"Confirmation Logout"}),e.jsx(Oe.DialogBody,{children:"Are you sure you want to end the session and exit the page?"}),e.jsx(Oe.DialogFooter,{children:e.jsx(x.Box,{direction:"column",display:"flex",align:"flex-end",justify:"center",children:e.jsxs(de.Flex,{direction:"row",gap:"sm",align:"center",children:[e.jsx(x.Box,{direction:"column",children:e.jsx(H.Button,{secondary:!0,onClick:dt,children:"Cancel"})}),e.jsx(x.Box,{direction:"column",children:e.jsx(H.Button,{primary:!0,onClick:ke,children:"Yes, Sure"})})]})})})]}),Le&&e.jsxs(e.Fragment,{children:[e.jsx(x.Box,{onClick:()=>Ne(null),position:"fixed",style:{inset:0,zIndex:60}}),e.jsxs(x.Box,{role:"dialog","aria-label":Le.item.title,position:"fixed",bg:"white",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",borderRadius:"rounded-md",shadow:"shadow-lg",padding:"sm",gap:"spacing-2",style:{top:Le.top,left:Le.left,zIndex:61,minWidth:"13rem",maxWidth:"16rem"},children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-500",textTransform:"uppercase",style:{padding:"0.25rem 0.5rem 0.5rem",letterSpacing:"0.05em"},children:Le.item.title}),(bt=Le.item.children)==null?void 0:bt.map(k=>{const _=nt(k.to),Y=sr(k.badge,I[k.id]);return e.jsxs(x.Box,{as:"button",onClick:()=>{D(k.to),Ne(null)},fullWidth:!0,direction:"row",align:"center",gap:"md",paddingBlock:"sm",paddingInline:"md",borderRadius:"rounded-md",borderWidth:"border",borderStyle:"border-solid",bg:_?"primary-inverse":void 0,hover:_?void 0:{bg:"primary-inverse"},style:{textAlign:"left",borderColor:"transparent",color:_?"var(--sa-text-primary, #292a2e)":"var(--sa-text-subtle, #505258)"},children:[k.icon&&e.jsx(B.Icon,{name:k.icon,size:"sm",style:{flexShrink:0}}),e.jsx(C.Text,{as:"span",fontSize:"md",fontWeight:_?"medium":"normal",whiteSpace:"nowrap",style:{flex:1},children:k.title}),Y&&e.jsx(it.Badge,{text:String(Y.value),variant:Y.variant??"info",size:"xs",border:!0})]},k.id)})]})]})]})})}const Vt=u.forwardRef(({children:t,...r},n)=>e.jsx(x.Box,{ref:n,role:"button",cursor:"pointer","aria-pressed":"true",display:"inline-block",tabIndex:0,...r,children:t})),Nn=({title:t,iconName:r,textColor:n,iconColor:s,hoverTextColor:o,hoverIconColor:i})=>{const[l,c]=u.useState(!1),a=s??"var(--sa-text-subtle, #8c8f97)",d=n??"var(--sa-text-subtle, #8c8f97)",h=i??"var(--sa-text-subtle, #8c8f97)",g=o??"var(--sa-text-primary, #292a2e)";return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),style:{cursor:"pointer"},children:[e.jsx(B.Icon,{name:r||"ChevronLeft",size:"xs",style:{color:l?h:a,transition:"color 0.15s ease"}}),e.jsx(C.Text,{variant:"sub-h3",style:{color:l?g:d,transition:"color 0.15s ease"},children:t||"Back"})]})},Xs=({items:t,separator:r="/",iconName:n,iconColor:s,hoverIconColor:o})=>{const{Link:i}=at(),[l,c]=u.useState(!1),a=s??"var(--sa-text-subtle, #8c8f97)",d=o??"var(--sa-text-subtle, #8c8f97)",h=t.length>1?t[0]:void 0,g=!!(h!=null&&h.to||h!=null&&h.onClick),m=e.jsx(B.Icon,{name:n||"ChevronLeft",size:"xs",onMouseEnter:g?()=>c(!0):void 0,onMouseLeave:g?()=>c(!1):void 0,style:{color:g&&l?d:a,transition:"color 0.15s ease",cursor:g?"pointer":void 0}}),y=h!=null&&h.to?e.jsx(i,{to:h.to,replace:!0,style:{textDecoration:"none"},children:m}):h!=null&&h.onClick?e.jsx(Vt,{onClick:h.onClick,children:m}):m;return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",children:[y,e.jsx(Et.Breadcrumb,{separator:r,size:"md",children:t.map((w,v)=>{const R=v===t.length-1;return w.to&&!R?e.jsx(Et.BreadcrumbItem,{children:e.jsx(i,{to:w.to,children:w.label})},v):e.jsx(Et.BreadcrumbItem,{currentPage:R,children:e.jsx(Et.BreadcrumbLink,{onClick:R?void 0:w.onClick,children:w.label})},v)})})]})},Js=t=>{const{Link:r}=at(),{items:n,separator:s,onClick:o,navigateTo:i,...l}=t;return n&&n.length>0?e.jsx(Xs,{items:n,separator:s,iconName:l.iconName,iconColor:l.iconColor,hoverIconColor:l.hoverIconColor}):i?e.jsx(x.Box,{direction:"row",children:e.jsx(r,{to:i,replace:!0,style:{textDecoration:"none"},children:e.jsx(Nn,{...l})})}):e.jsx(x.Box,{direction:"row",children:e.jsx(Vt,{onClick:o,children:e.jsx(Nn,{...l})})})},Tr=[{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 _n(t,r,n){return{display:"flex",alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"var(--sa-radii-sm, 6px)",border:t?`2px solid ${n.activeBorder}`:"2px solid var(--sa-color-gray-200, #f0f1f2)",backgroundColor:t?n.activeBg:"var(--sa-color-gray-50, #ffffff)",boxShadow:t?r?`0 8px 20px ${n.activeShadow.replace("0.25","0.35")}`:`0 2px 8px ${n.activeShadow}`:r?"0 8px 20px rgba(0, 0, 0, 0.14)":"0 1px 4px rgba(0, 0, 0, 0.08)",transform:r?"translateY(-3px) scale(1.05)":"translateY(0) scale(1)",transition:"box-shadow 0.2s ease, transform 0.2s ease, background-color 0.15s ease, border-color 0.15s ease"}}const qn={fontSize:"11px",fontWeight:500,textAlign:"center",overflowWrap:"normal",wordBreak:"normal",color:"var(--sa-text-primary, #292a2e)",lineHeight:"1.3",maxWidth:"80px"},Zn={display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",background:"none",border:"none",cursor:"pointer",padding:0};function Io({isShow:t,onHide:r,menus:n,selectedGroupId:s,onSelect:o}){const[i,l]=u.useState(void 0),c=d=>{o(d),r()},a=Tr[0];return e.jsx(Oe.Dialog,{isShow:t,onHide:r,style:{width:560,background:"transparent",boxShadow:"none",border:"none"},children:e.jsx(Oe.DialogBody,{children:e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(5, 1fr)",gap:"16px"},children:[e.jsxs("button",{onClick:()=>c(null),onMouseEnter:()=>l("all"),onMouseLeave:()=>l(void 0),style:Zn,children:[e.jsx("div",{style:_n(s===null,i==="all",a),children:e.jsx("div",{style:{color:a.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(B.Icon,{name:"Grid",size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:qn,children:"Semua"})]}),n.map((d,h)=>{var v;const g=s===d.id,m=i===d.id,y=((v=d.items[0])==null?void 0:v.icon)??"Grid",w=Tr[(h+1)%Tr.length];return e.jsxs("button",{onClick:()=>c(d.id),onMouseEnter:()=>l(d.id),onMouseLeave:()=>l(void 0),style:Zn,children:[e.jsx("div",{style:_n(g,m,w),children:e.jsx("div",{style:{color:w.icon,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(B.Icon,{name:y,size:"lg",style:{width:32,height:32}})})}),e.jsx("span",{style:qn,children:d.name})]},d.id)})]})})})}function $s({onSelect:t,"aria-label":r="Pilih module"}={}){const n=nn(),{useNavigate:s}=at(),o=s(),{selectedGroupId:i,setSelectedGroupId:l}=dn(),[c,a]=u.useState(!1),d=h=>{var g;if(l(h),h!==null){const m=n.menus.find(w=>w.id===h),y=(g=m==null?void 0:m.items[0])==null?void 0:g.to;y&&o(y)}t==null||t(h)};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{style:{position:"relative"},children:[e.jsx("button",{onClick:()=>a(!0),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"2.25rem",height:"2.25rem",borderRadius:"var(--sa-radii-sm, 0.25rem)",border:"1px solid var(--sa-border-subtle, #0b120e24)",color:"var(--sa-text-subtle, #8c8f97)",backgroundColor:"transparent",cursor:"pointer"},"aria-label":r,onMouseEnter:h=>{h.currentTarget.style.backgroundColor="var(--sa-background-primary-inverse, #f8f8f8)"},onMouseLeave:h=>{h.currentTarget.style.backgroundColor="transparent"},children:e.jsx(B.Icon,{name:"GridApplication",size:"sm"})}),i!==null&&e.jsx("span",{style:{position:"absolute",top:"0.25rem",right:"0.25rem",width:"0.5rem",height:"0.5rem",borderRadius:"9999px",backgroundColor:"var(--sa-color-brand-500, #1a4fa0)"},"aria-hidden":"true"})]}),e.jsx(Io,{isShow:c,onHide:()=>a(!1),menus:n.menus.filter(h=>h.parentGroupId===void 0),selectedGroupId:i,onSelect:d})]})}const Ks=(t,r)=>{const n=[];if(r===0)return n.push(t),n;for(let s=0;s<t.length;s+=r){const o=t.slice(s,s+r);n.push(o)}return n},ei=u.memo(({value:t,label:r,separator:n,labelWidth:s,lastIndex:o,labelAlign:i="top"})=>{const l=u.useMemo(()=>({padding:0,paddingBottom:o?0:12,verticalAlign:i}),[o,i]),c=u.useMemo(()=>({padding:0,paddingRight:12,paddingLeft:12,paddingBottom:o?0:12,verticalAlign:i}),[o,i]),a=()=>typeof r=="string"?e.jsx(C.Text,{fontWeight:"medium",color:"subtlest",children:r}):r,d=()=>typeof t=="string"||typeof t=="number"?e.jsx(C.Text,{color:"primary",fontWeight:"medium",children:t}):t,h=()=>typeof n=="string"||typeof n=="number"?e.jsx(C.Text,{fontWeight:"medium",color:"subtlest",children:n}):n;return e.jsxs(Z.Tr,{children:[e.jsx(Z.Td,{style:l,width:s,children:a()}),n?e.jsx(Z.Td,{style:c,width:24,children:h()}):null,e.jsx(Z.Td,{style:l,children:d()})]})}),ti=u.memo(({fields:t,separator:r,labelWidth:n})=>e.jsx(Z.Table,{withColumnBorder:!1,withRowBorder:!1,children:t.map((s,o)=>e.jsx(ei,{separator:r,labelWidth:n,lastIndex:o===t.length-1,...s},`field-group-field-${o}`))})),ri=u.memo(({maxRow:t=0,maxColumn:r=2,separator:n=":",fields:s=[],labelWidth:o=150,bordered:i=!1})=>{const l=u.useMemo(()=>Ks(s,t),[s,t]),c=l.length>2,a=()=>{switch(r){case 1:return"width-full";case 2:return"width-1-2";case 3:return"width-1-3";case 4:return"width-1-4";default:return"width-1-2"}};return e.jsx(x.Box,{gap:c?void 0:"lg",direction:"row",flexWrap:"wrap",borderRadius:"rounded-sm",padding:"lg",paddingBottom:c?"xs":"lg",bg:"accent-dark-tertiary",borderWidth:i?"border":void 0,borderStyle:i?"border-solid":void 0,borderColor:i?"border-subtle":void 0,children:l.map((d,h)=>e.jsx(x.Box,{direction:"column",flex:c?void 0:"1",width:c?a():void 0,marginBottom:c?"lg":void 0,children:e.jsx(ti,{labelWidth:o,fields:d,separator:n})},h))})}),ni=({backButton:t})=>{const[r,n]=u.useState(!1),s=(t==null?void 0:t.iconColor)??"var(--sa-text-subtle, #8c8f97)",o=(t==null?void 0:t.textColor)??"var(--sa-text-subtle, #8c8f97)",i=(t==null?void 0:t.hoverIconColor)??"var(--sa-text-subtle, #8c8f97)",l=(t==null?void 0:t.hoverTextColor)??"var(--sa-text-primary, #292a2e)";return e.jsxs(x.Box,{direction:"row",gap:"xs",align:"center",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),style:{cursor:"pointer"},children:[e.jsx(B.Icon,{name:(t==null?void 0:t.iconName)||"ChevronLeft",size:"xs",style:{color:r?i:s,transition:"color 0.15s ease"}}),e.jsx(C.Text,{variant:"sub-h3",style:{color:r?l:o,textDecoration:r?"underline":"none",transition:"color 0.15s ease"},children:(t==null?void 0:t.title)||"Back"})]})},Mo=({backButton:t,title:r,titleIcon:n,titleTag:s,children:o,header:i=!0,headerBorder:l=!1,disableAnimation:c=!1,scrollable:a=!1,stickyHeader:d=!1,subHeaders:h,action:g,titleTagProps:m,containerProps:y,headerProps:w})=>{const v=we.useMediaQuery("md"),{Link:R,useNavigate:L}=at(),M=L(),b=t==null?void 0:t.show,S=()=>{if(typeof(t==null?void 0:t.onClick)=="function"){t.onClick();return}M(-1,{replace:!0})},E=()=>{if(!g)return null;if(u.isValidElement(g))return g;const A=g.filter(P=>P&&(P.title||P.icon));return A.length===0?null:v?e.jsx(x.Box,{direction:"row",gap:"md",children:A.map(({title:P,icon:q,buttonProps:Q,onClick:te},J)=>e.jsx(H.Button,{iconLeft:q?e.jsx(B.Icon,{name:q,size:"md"}):void 0,onClick:te,...Q,children:P},`action-${J}`))}):e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"tertiary",size:"sm",iconLeft:e.jsx(B.Icon,{name:"MenuBurger"}),"aria-label":"Actions"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{minWidth:200},children:A.map(({title:P,icon:q,buttonProps:Q,onClick:te},J)=>{const $=(Q==null?void 0:Q.tone)==="error"||(Q==null?void 0:Q.danger)===!0;return e.jsx(O.MenuItem,{intent:$?"danger":void 0,disabled:Q==null?void 0:Q.disabled,startIcon:q?e.jsx(B.Icon,{name:q}):void 0,onClick:te,children:P},`action-${J}`)})})})]})},I=()=>{const A=e.jsx(ni,{backButton:t});return t!=null&&t.navigateTo?e.jsx(x.Box,{direction:"row",children:e.jsx(R,{to:t.navigateTo,replace:!0,style:{textDecoration:"none"},children:A})}):e.jsx(x.Box,{direction:"row",children:e.jsx(Vt,{onClick:S,children:A})})},D=()=>{const A=!!r,P=Array.isArray(g)&&g.length>0,q=u.isValidElement(g)?!0:P;if(!A&&!q&&!b)return null;const te=v||!v&&P;return e.jsxs(x.Box,{direction:"column",gap:"xs",paddingBlock:(w==null?void 0:w.paddingBlock)??"sm",paddingInline:(w==null?void 0:w.paddingInline)??"md",...w,style:{...l?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...w==null?void 0:w.style},children:[b&&I(),(A||q)&&e.jsxs(x.Box,{direction:te?"row":"column",gap:"sm",justify:"space-between",align:te?"center":"flex-start",children:[A?typeof r=="string"?e.jsxs(x.Box,{direction:"row",gap:"lg",align:"center",children:[e.jsxs(x.Box,{direction:"row",gap:"sm",align:"center",children:[n&&e.jsx(B.Icon,{name:n,size:"md",color:"primary"}),e.jsx(C.Text,{variant:"h3",fontWeight:"semibold",children:r})]}),s&&e.jsx(it.Badge,{border:!0,size:"lg",text:s,...m})]}):r:null,E()]})]})},T=()=>{if(!h||h.length===0)return null;const A=h.filter(Q=>Q.show!==!1);if(A.length===0)return null;let P=0,q=-1/0;return A.forEach((Q,te)=>{const J=Q.order??0;J>=q&&(q=J,P=te)}),A.map(({content:Q,order:te,borderBottom:J=!0,keepBottomPadding:$=!1,paddingInline:V=!0,paddingBlock:xe=!0},ue)=>e.jsx(x.Box,{direction:"column",paddingTop:xe?"sm":"spacing-0",paddingBottom:xe&&(J||$||ue===P)?"sm":"spacing-0",paddingInline:V?"md":"spacing-0",style:{...J?{boxShadow:"inset 0 -1px 0 0 var(--sa-border-subtle, #0b120e24)"}:{},...te!==void 0?{order:te}:{}},children:Q},`sub-header-${ue}`))},G=()=>{const A=i?D():null,P=T();return!A&&!P?null:e.jsxs(x.Box,{direction:"column",style:{...a?{position:"sticky",left:0,...d?{top:0}:{},zIndex:2,background:"var(--sa-background-primary, #ffffff)"}:{},marginBottom:P?"var(--sa-spacing-0)":"var(--sa-spacing-md)"},children:[A,P]})},z=()=>o;return e.jsxs(x.Box,{direction:"column",as:"main",...y,style:{...a?{height:"100%",minHeight:0,overflow:"auto"}:{},...(y==null?void 0:y.style)??{},...c?{}:{animation:"pageLayoutEnter 320ms cubic-bezier(0.16, 1, 0.3, 1) backwards"}},children:[G(),z()]})},oi=t=>{const{useLocation:r}=at(),n=r();return e.jsx(Mo,{...t},n.pathname)},si=t=>t.remountOnRouteChange?e.jsx(oi,{...t}):e.jsx(Mo,{...t}),ii=u.memo(si),li={icon:"Cross",title:""},ci=320,Gn=16,Qn=4,ai=8,Lo=u.forwardRef(({onHide:t,show:r,withBlur:n=!1,style:s,children:o,closeButton:i=li,paddingHorizontal:l=!0,width:c,minWidth:a,maxWidth:d,hideBackdrop:h=!1,title:g,headerAction:m,header:y=!0,widthPresets:w,resizable:v=!0,resizeMin:R=ci,resizeMax:L,onWidthChange:M},b)=>{const E=!we.useMediaQuery("md"),I=c??d??a??"357px",D=w??[],T=D.length>1,[G,z]=u.useState(()=>{const ie=D.indexOf(I);return ie>=0?ie:0}),[A,P]=u.useState(null),[q,Q]=u.useState(!1),[te,J]=u.useState(!1),$=u.useRef(null),V=ie=>{$.current=ie,typeof b=="function"?b(ie):b&&(b.current=ie)},xe=T?D[G]:I,ue=A!=null?`${A}px`:xe,Be=v&&!E,Ve=G===D.length-1,De=()=>{const ie=(G+1)%D.length;P(null),z(ie),M==null||M(D[ie])},ge=u.useCallback(ie=>{const ce=L??window.innerWidth;return Math.min(Math.max(ie,R),ce)},[R,L]),pe=u.useRef(null),Le=ie=>{if(!Be)return;ie.preventDefault();const ce=ie.currentTarget;ce.setPointerCapture(ie.pointerId),Q(!0);const me=document.body.style.cursor,je=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let Ee=null;const et=W=>{const X=ge(window.innerWidth-W.clientX);pe.current=X,Ee==null&&(Ee=window.requestAnimationFrame(()=>{Ee=null,pe.current!=null&&P(pe.current)}))},tt=W=>{Ee!=null&&window.cancelAnimationFrame(Ee),pe.current!=null&&P(pe.current),ce.releasePointerCapture(W.pointerId),ce.removeEventListener("pointermove",et),ce.removeEventListener("pointerup",tt),ce.removeEventListener("pointercancel",tt),document.body.style.cursor=me,document.body.style.userSelect=je,Q(!1),pe.current!=null&&(M==null||M(`${pe.current}px`))};ce.addEventListener("pointermove",et),ce.addEventListener("pointerup",tt),ce.addEventListener("pointercancel",tt)},Ne=ie=>{var Ee;if(!Be||ie.key!=="ArrowLeft"&&ie.key!=="ArrowRight")return;ie.preventDefault();const ce=ie.key==="ArrowLeft"?Gn:-Gn,me=A??((Ee=$.current)==null?void 0:Ee.offsetWidth)??R,je=ge(me+ce);P(je),M==null||M(`${je}px`)},Ae=()=>{Be&&(P(null),M==null||M(xe))};return e.jsx(cr.Drawer,{blur:n,isShow:r,position:"right",onHide:t,ref:V,size:ue,style:s,flush:!0,radius:"none",hideBackdrop:h,children:e.jsxs(x.Box,{direction:"column",height:"height-full",children:[Be?e.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Ubah lebar panel",tabIndex:0,onPointerDown:Le,onKeyDown:Ne,onDoubleClick:Ae,title:"Tarik untuk mengubah lebar — klik dua kali untuk reset",onPointerEnter:()=>J(!0),onPointerLeave:()=>J(!1),style:{position:"absolute",left:0,top:0,bottom:0,width:ai,cursor:"col-resize",zIndex:1,background:q||te?`linear-gradient(to right, var(--sa-border-brand, var(--sa-border-subtle)) 0 ${Qn}px, transparent ${Qn}px)`:"transparent",transition:"background 0.15s",touchAction:"none"}}):null,y?e.jsxs(x.Box,{direction:"row",align:"center",justify:"space-between",gap:"sm",paddingInline:"md",borderWidth:"border-b",borderStyle:"border-solid-b",borderColor:"border-base",customHeight:"var(--app-header-height, 44px)",flexShrink:"0",children:[e.jsx(x.Box,{direction:"row",align:"center",gap:"sm",overflow:"overflow-hidden",children:typeof g=="string"?e.jsx(C.Text,{fontSize:"md",fontWeight:"bold",children:g}):g}),e.jsxs(x.Box,{direction:"row",align:"center",gap:"sm",flexShrink:"0",children:[m,T?e.jsx(H.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:De,"aria-label":Ve?"Kecilkan panel":"Lebarkan panel",iconRight:e.jsx(B.Icon,{name:Ve?"ChevronRight":"ChevronLeft"})}):null,i?e.jsx(H.Button,{variant:"tertiary",tone:"neutral",size:"xs",onClick:t,"aria-label":i.title||"Tutup",iconRight:e.jsx(B.Icon,{name:i.icon}),children:i.title||void 0}):null]})]}):null,e.jsx(x.Box,{direction:"column",paddingBlock:"md",paddingInline:l?"md":"spacing-0",overflow:"overflow-y-auto",style:{flex:1,minHeight:0},children:o})]})})}),un=u.memo(({children:t,borderBottom:r=!0,padding:n=!0})=>{const s=we.useMediaQuery("lg");return e.jsx(x.Box,{direction:"column",padding:n?"md":"spacing-0",paddingLeft:n?"md":"spacing-0",paddingRight:n?"md":"spacing-0",style:r?{borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:t})}),xn=u.memo(({children:t,borderTop:r=!0,padding:n=!0})=>{const s=we.useMediaQuery("lg");return e.jsx(x.Box,{direction:"column",padding:n?"md":"spacing-0",paddingLeft:n?"md":"spacing-0",paddingRight:n?"md":"spacing-0",style:r?{borderTop:"1px solid var(--sa-border-subtle, #0b120e24)"}:void 0,children:t})}),di=u.memo(({children:t,...r})=>e.jsx(x.Box,{direction:"column",padding:"md",paddingLeft:"md",paddingRight:"md",gap:"md",...r,children:t})),ui=u.memo(({children:t,title:r,titleTag:n,action:s,header:o,footer:i,actionContainer:l,containerProps:c,bodyProps:a,headerProps:d={borderBottom:!0},footerProps:h={borderTop:!0},variantTag:g="info"})=>{const m=we.useMediaQuery("lg"),y=()=>n?e.jsxs(x.Box,{direction:"row",gap:"sm",align:"center",children:[e.jsx(C.Text,{fontWeight:"medium",children:r}),e.jsx(it.Badges,{border:!0,text:n,variant:g})]}):e.jsx(C.Text,{fontWeight:"medium",children:r}),w=()=>o||e.jsxs(x.Box,{direction:"row",justify:"space-between",align:"flex-start",gap:"md",children:[e.jsx(x.Box,{direction:"column",children:r?y():null}),e.jsx(x.Box,{direction:"column",style:m?{width:"100%",maxWidth:"19.313rem"}:{flex:1},...l,children:s??null})]}),v=!!(o||r||s);return e.jsxs(x.Box,{direction:"column",bg:"white",borderRadius:"rounded-xs",as:"section",borderWidth:"border",borderStyle:"border-solid",borderColor:"border-base",...c,style:{backgroundColor:"var(--sa-background-primary, #ffffff)",...(c==null?void 0:c.style)??{}},children:[o!==null&&v?e.jsx(un,{...d,children:w()}):null,e.jsx(di,{...a,children:t}),i?e.jsx(xn,{...h,children:i}):null]})}),xi=t=>e.jsx(C.Text,{variant:"h1",children:t.children,...t.props}),hi=t=>e.jsx(C.Text,{variant:"h2",children:t.children,...t.props}),fi=t=>e.jsx(C.Text,{variant:"h3",children:t.children,...t.props}),mi=t=>e.jsx(C.Text,{variant:"h4",children:t.children,...t.props}),gi=t=>e.jsx(C.Text,{variant:"h5",children:t.children,...t.props}),pi=t=>e.jsx(C.Text,{variant:"h6",children:t.children,...t.props}),yi=t=>e.jsx(C.Text,{variant:"sub-h1",children:t.children,...t.props}),bi=t=>e.jsx(C.Text,{variant:"sub-h2",children:t.children,...t.props}),ji=t=>e.jsx(C.Text,{variant:"sub-h3",children:t.children,...t.props}),vi=t=>e.jsx(C.Text,{variant:"body-1",children:t.children,...t.props}),Ci=t=>e.jsx(C.Text,{variant:"body-2",children:t.children,...t.props}),wi=t=>e.jsx(C.Text,{variant:"body-3",children:t.children,...t.props}),Ke={H1:xi,H2:hi,H3:fi,H4:mi,H5:gi,H6:pi,SubH1:yi,SubH2:bi,SubH3:ji,Body1:vi,Body2:Ci,Body3:wi},Ze=()=>{const{useSearchParams:t,useParams:r,useLocation:n}=at(),[s,o]=t(),i=Mt.searchParamsToObject(s.toString()),l=r(),c=n(),a=l.id;return{setSearchParams:o,searchParams:s,searchQueries:i,isHasQuery:(y,w)=>s.has(y)&&s.get(y)===w,getQueryParam:y=>s.get(y),getRouteParam:y=>l[y],params:l,location:c,id:a,hasId:!!a}},To=t=>JSON.stringify(t),Ro=t=>JSON.stringify(t),Oo=t=>JSON.stringify(t),Ao=t=>JSON.stringify(t),Di=t=>t,Si=t=>JSON.stringify(t),ct=t=>{if(typeof t!="string"||t==="")return{};try{const r=JSON.parse(t);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}},lt=t=>{if(!(typeof t!="string"||t===""))try{return JSON.parse(t)}catch{return}},Pt=({value:t,name:r,type:n,withSearchParam:s=!0,setSearchParams:o,searchQueries:i,dropdownSearchKey:l,filterKey:c="filter",pageKey:a="page"})=>{if(s){let d;switch(n){case"search":d=Di(t);break;case"dropdown":case"dropdown-multiple":d=To(t);break;case"radio":d=Ro(t);break;case"date-range":d=Oo(t);break;case"advanced-date-range":d=Si(t);break;case"date":d=Ao(t);break;default:d=t;break}if(typeof d<"u"){const h={...ct(i[c]),[r]:d},g={...i};l&&typeof l=="string"&&delete g[l],delete g[a];const m={...g,[c]:JSON.stringify(h)},y=new URLSearchParams(i).toString(),w=new URLSearchParams(m).toString();if(y===w)return;o(m)}}},ir=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{var c,a,d,h;const o=n.get(r)||void 0,i=o&&typeof o=="string"?ct(o):void 0,l=i?i[t]:void 0;return s==="label"&&l?(a=(c=lt(l))==null?void 0:c[0])==null?void 0:a.label:s==="value"&&l?(h=(d=lt(l))==null?void 0:d[0])==null?void 0:h.value:l},Wo=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{var c,a;const o=n.get(r)||void 0,i=o&&typeof o=="string"?ct(o):void 0,l=i?i[t]:void 0;return s==="label"&&l?(c=lt(l))==null?void 0:c.map(d=>d.label):s==="value"&&l?(a=lt(l))==null?void 0:a.map(d=>d.value):s==="array"&&l?lt(l):l},ki=({name:t,filterKey:r="filter",searchParams:n,get:s})=>{var c,a,d;const o=n.get(r)||void 0,i=o&&typeof o=="string"?ct(o):void 0,l=i?i[t]:void 0;return s==="id"&&l?(c=lt(l))==null?void 0:c.id:s==="label"&&l?(a=lt(l))==null?void 0:a.label:s==="value"&&l?(d=lt(l))==null?void 0:d.value:l},hr=(t,r,n)=>{const s=r.get(n||"filter")||void 0,o=s&&typeof s=="string"?ct(s):void 0;return o?o[t]:void 0},Bi=({name:t,filterKey:r="filter",searchParams:n})=>{var l,c;const s=n.get(r||"filter")||void 0,o=s&&typeof s=="string"?ct(s):void 0,i=o?o[t]:void 0;return{start:i?(l=lt(i))==null?void 0:l.from:void 0,end:i?(c=lt(i))==null?void 0:c.to:void 0}},zo=({name:t,filterKey:r="filter",searchParams:n})=>{const s=n.get(r||"filter")||void 0,o=s&&typeof s=="string"?ct(s):void 0,i=o?o[t]:void 0;return i?lt(i):void 0},Ei=(t,{filterKey:r="filter",perPageKey:n="perPage",pageKey:s="page"})=>{const o=t.get(r)||void 0,i=t.get(n)||void 0,l=t.get(s)||void 0;return!!o||!!i||!!l},Ho=({isOpen:t,onClose:r,filterKey:n,pageKey:s,filters:o})=>{const{searchParams:i,setSearchParams:l,searchQueries:c}=Ze(),[a,d]=u.useState({}),h=()=>{i.delete(n||"filter"),l(i)},g=(m,y)=>{switch(m.type){case"radio":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}case"dropdown":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}case"date-range":return e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y);case"date":return e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y);case"dropdown-multiple":{const{show:w=!0}=m;return w&&e.jsx(x.Box,{direction:"column",children:e.jsx(x.Box,{direction:"column",children:m.title})},y)}default:return null}};return e.jsx(Lo,{onHide:r,show:t||!1,children:e.jsxs(x.Box,{direction:"column",gap:"md",children:[e.jsxs(de.Flex,{direction:"row",justify:"space-between",align:"center",children:[e.jsx(x.Box,{direction:"column",children:"Filter"}),e.jsx(x.Box,{direction:"column",style:{cursor:"pointer"},onClick:h,children:"Reset"})]}),o==null?void 0:o.map((m,y)=>g(m,y))]})})},Po=({searchKey:t="q",statusKey:r="status",searchPlaceholder:n="Search",searchHighlightPlaceholder:s,extendedFilter:o,showSearchFilter:i=!0,showStatusFilter:l=!0,filterKey:c="filter",pageKey:a="page",customWidthSearch:d,handleOnReset:h,filterConfigs:g,buttonToggleProps:m,position:y="right",titleSearchLabel:w="Work Order",withTitleLabels:v=!1})=>{const L=(m==null?void 0:m.isShowLabel)??!0,[M,b]=u.useState(!1),[S,E]=u.useState(0),I=()=>{E(V=>V+1)},{searchParams:D,setSearchParams:T,getQueryParam:G}=Ze(),z=Mt.searchParamsToObject(D.toString()),A=hr(t,D,c)||"",[P,q]=u.useState(A),Q=G(c),J=!!(Q&&!(()=>{if(Q)try{const V=JSON.parse(Q);return Object.keys(V).length===1&&V[t]===""}catch(V){console.error("Filter parameter is not a valid JSON:",V)}return!1})()),$=we.useMediaQuery("md");return u.useEffect(()=>{q(A)},[A]),u.useEffect(()=>{if(P===A)return;const V=window.setTimeout(()=>{Pt({value:P,name:t,type:"search",searchQueries:z,setSearchParams:T,filterKey:c,pageKey:a})},350);return()=>{window.clearTimeout(V)}},[P,A,t,z,T,c,a]),e.jsxs(de.Flex,{gap:"md",style:{flexDirection:$&&y==="left"?"row":$&&y==="right"?"row-reverse":"column"},align:"flex-end",children:[J&&e.jsx(x.Box,{direction:"column",justify:"flex-end",children:e.jsx(H.Button,{onClick:()=>{const V=new URLSearchParams(D);V.delete(c),T(V),q(""),I(),h&&h()},variant:"outline",tone:"neutral",children:e.jsx(C.Text,{color:"error",fontWeight:"semibold",children:"Reset"})})}),o==null?void 0:o.map(({minWidth:V,content:xe,title:ue,onClickContainer:Be},Ve)=>e.jsxs(x.Box,{direction:"column",gap:"sm",onClick:Be,style:{minWidth:V},children:[ue&&e.jsx(Ke.SubH3,{children:ue}),xe]},`extended-filter-${Ve}-${S}`)),!!(g!=null&&g.length)&&e.jsx(H.Button,{primary:J,secondary:!J,iconLeft:e.jsx(B.Icon,{size:"sm",name:(m==null?void 0:m.icon)||"FilterHorizontal",style:{color:Q?"var(--sa-background-brand, #04254f)":"var(--sa-text-primary, #292a2e)"}}),fullWidth:!$,onClick:()=>b(!0),children:L?"Filter":void 0}),l&&e.jsxs(x.Box,{direction:"column",gap:"sm",style:{minWidth:"126px"},children:[v&&e.jsx(Ke.SubH3,{children:"Status"}),e.jsx(It.Dropdown,{dropdownLists:[{label:"Active",value:"active"},{label:"InActive",value:"inactive"}],defaultValue:ir({get:"value",name:r,searchParams:D,filterKey:c})?[{label:ir({get:"value",name:r,searchParams:D,filterKey:c})==="active"?"Active":"InActive",value:ir({get:"value",name:r,searchParams:D,filterKey:c})}]:[],onChange:V=>Pt({value:V,name:r,type:"dropdown",searchQueries:z,setSearchParams:T,filterKey:c}),placeholder:v?"All":"All Status"},S)]}),i&&e.jsxs(x.Box,{direction:"column",gap:"sm",style:{width:d&&$?d:$?"310px":""},children:[v&&e.jsxs(Ke.SubH3,{children:["Search for ",w]}),e.jsx(ht.Input,{placeholder:n,leftIcon:e.jsx(B.Icon,{name:"Search",width:20,height:20}),onChange:V=>q(V.target.value),value:P,fullWidth:!0},S+1+c)]}),e.jsx(Ho,{isOpen:M,onClose:()=>b(!1),filterKey:c,filters:g,pageKey:a})]})},Fi=t=>t==="checkbox-multiple"?"dropdown-multiple":t==="radio"?"dropdown":t==="date-compact"?"date":t==="text"?"search":t;function hn({configs:t,filterKey:r="filter",activeFilterKey:n="filters",pageKey:s="page",searchKey:o="q"}){const{searchParams:i,setSearchParams:l,searchQueries:c}=Ze(),a=u.useMemo(()=>Object.fromEntries(t.map(S=>[S.key,S])),[t]),d=u.useMemo(()=>{const S=(i.get(n)||"").split(",").map(I=>I.trim()).filter(Boolean),E=Object.keys(ct(i.get(r))).filter(I=>I!==o);return t.map(I=>I.key).filter(I=>{const D=a[I];return(D==null?void 0:D.locked)||S.includes(I)||E.includes(I)})},[i,n,r,o,t,a]),h=u.useCallback(S=>ct(S[r]),[r]),g=u.useCallback(S=>{const E={...c};S.length?E[n]=S.join(","):delete E[n],l(E)},[c,n,l]),m=u.useCallback(S=>{d.includes(S)||g([...d,S])},[d,g]),y=u.useCallback(S=>{var T;if((T=a[S])!=null&&T.locked)return;const E={...c},I=d.filter(G=>G!==S);I.length?E[n]=I.join(","):delete E[n];const D=h(E);S in D&&(delete D[S],Object.keys(D).length?E[r]=JSON.stringify(D):delete E[r]),delete E[s],l(E)},[c,d,n,r,s,h,l,a]),w=u.useCallback(S=>d.includes(S)?y(S):m(S),[d,m,y]),v=u.useCallback(S=>{switch(S.type){case"dropdown":case"dropdown-multiple":case"checkbox-multiple":case"radio":return Wo({name:S.key,get:"array",searchParams:i,filterKey:r})||[];case"date":{const E=zo({name:S.key,searchParams:i,filterKey:r});return E?new Date(E):void 0}case"date-compact":{const I=h(Object.fromEntries(i.entries()))[S.key];return I&&typeof I=="object"?I:void 0}case"text":{const I=h(Object.fromEntries(i.entries()))[S.key];return typeof I=="string"?I:void 0}default:return}},[i,r,h]),R=u.useCallback((S,E)=>{if(S.type==="date-compact"||S.type==="text"){const I={...c},D=h(I);E==null||E===""?delete D[S.key]:D[S.key]=E,Object.keys(D).length?I[r]=JSON.stringify(D):delete I[r],delete I[s],l(I);return}Pt({value:E,name:S.key,type:Fi(S.type),searchQueries:c,setSearchParams:l,filterKey:r,pageKey:s})},[c,l,r,s,h]),L=u.useCallback(S=>{const E={...c},I=h(E);S in I&&(delete I[S],Object.keys(I).length?E[r]=JSON.stringify(I):delete E[r]),delete E[s],l(E)},[c,r,s,h,l]),M=u.useCallback(()=>{const S={...c};delete S[r],delete S[n],delete S[s],l(S)},[c,r,n,s,l]),b=d.length>0;return{activeKeys:d,configByKey:a,hasActiveFilter:b,addFilter:m,removeFilter:y,toggleFilter:w,getValue:v,setValue:R,clearValue:L,clearAll:M}}const fn={get(t){return zt.storage.get(t)??null},set(t,r){zt.storage.save(t,r)},remove(t){zt.storage.delete(t)}},Tt={columns:t=>`filterbar:colprefs:${t}`,savedViews:t=>`filterbar:views:${t}`,lastState:t=>`filterbar:last:${t}`,perPage:t=>`filterbar:perpage:${t}`,tableSort:t=>`tablelayout:sort:${t}`},$t=(t,r)=>{const n=new Set(r.map(i=>i.key)),s=t.order.filter(i=>n.has(i));for(const i of r)s.includes(i.key)||s.push(i.key);const o=t.hidden.filter(i=>n.has(i));return{order:s,hidden:o}};function Ii({columns:t,scopeId:r,storage:n,onColumnsChange:s,value:o}){const i=u.useMemo(()=>({order:t.map(D=>D.key),hidden:[]}),[t]),l=r?Tt.columns(r):void 0,c=(D,T)=>$t({order:D.order??T,hidden:D.hidden??[]},t),[a,d]=u.useState(()=>{if(o&&(o.order||o.hidden))return c(o,t.map(D=>D.key));if(l){const D=n.get(l);if(D&&Array.isArray(D.order))return $t(D,t)}return i}),h=t.map(D=>D.key).join("|");u.useEffect(()=>d(D=>$t(D,t)),[h]);const g=u.useRef(a);g.current=a;const m=o?`${(o.order??[]).join("|")}~${(o.hidden??[]).join("|")}`:null,y=u.useRef(m);u.useEffect(()=>{if(m==null||y.current===m)return;y.current=m;const D=g.current,T=c(o,D.order);T.order.join("|")===D.order.join("|")&&T.hidden.join("|")===D.hidden.join("|")||(d(T),l&&n.set(l,T))},[m,h]);const w=u.useRef(!1);u.useEffect(()=>{w.current||(w.current=!0,s==null||s(a))},[]);const v=u.useCallback(D=>{d(D),l&&n.set(l,D),s==null||s(D)},[l,n,s]),R=u.useMemo(()=>{const D=new Map(t.map(T=>[T.key,T]));return a.order.filter(T=>D.has(T)).map(T=>({...D.get(T),visible:!a.hidden.includes(T)}))},[a,t]),L=u.useCallback(D=>{const T=a.hidden.includes(D)?a.hidden.filter(G=>G!==D):[...a.hidden,D];v({...a,hidden:T})},[a,v]),M=u.useCallback((D,T)=>{if(D===T)return;const G=[...a.order],[z]=G.splice(D,1);G.splice(T,0,z),v({...a,order:G})},[a,v]),b=u.useCallback(D=>{v({...a,hidden:D?t.filter(T=>!T.locked).map(T=>T.key):[]})},[a,t,v]),S=u.useCallback(()=>v(i),[v,i]),E=u.useCallback(D=>v($t(D,t)),[v,t]),I=a.hidden.length===0;return{state:a,orderedColumns:R,allVisible:I,toggleVisibility:L,reorder:M,setAllHidden:b,reset:S,applyState:E}}function Mi({scopeId:t,storage:r,snapshotKeys:n,pageKey:s="page",getColumns:o,applyColumns:i}){const{searchParams:l,setSearchParams:c}=Ze(),a=t?Tt.savedViews(t):void 0,[d,h]=u.useState(()=>a?r.get(a)||[]:[]),g=u.useCallback(v=>{h(v),a&&r.set(a,v)},[a]),m=u.useCallback(v=>{const R=v.trim();if(!R)return;const L={};n.forEach(b=>{const S=l.get(b);S!=null&&(L[b]=S)});const M={id:`${Date.now()}`,name:R,query:L,columns:o==null?void 0:o(),createdAt:Date.now()};g([...d,M])},[n,l,o,g,d]),y=u.useCallback(v=>g(d.filter(R=>R.id!==v)),[g,d]),w=u.useCallback(v=>{const R=Object.fromEntries(l.entries());n.forEach(L=>delete R[L]),Object.assign(R,v.query),delete R[s],c(R),v.columns&&(i==null||i(v.columns))},[l,n,s,c,i]);return{enabled:!!a,views:d,saveView:m,deleteView:y,applyView:w}}function Li(t,r){const n=ct(t);return delete n[r],Object.keys(n).length>0?JSON.stringify(n):void 0}function Un(t,r,n){const s=t[r];if(s==null)return;const o=Li(s,n);o===void 0?delete t[r]:t[r]=o}function Ti({scopeId:t,storage:r,snapshotKeys:n,enabled:s=!0,filterKey:o="filter",searchKey:i="q",persistSearch:l=!0}){const{searchParams:c}=Ze(),a=t&&s?Tt.lastState(t):void 0,d=u.useRef(a),h=u.useRef(!1);u.useEffect(()=>{if(!a){d.current=a;return}if(d.current!==a){d.current=a,h.current=!1;return}const y={};if(n.forEach(w=>{const v=c.get(w);v!=null&&(y[w]=v)}),l||Un(y,o,i),Object.keys(y).length===0){h.current&&r.remove(a);return}h.current=!0,r.set(a,y)},[c,a,n,r,l,o,i]);const g=u.useCallback(()=>{if(!a)return null;const y=r.get(a);if(!y||typeof y!="object"||Array.isArray(y)||Object.keys(y).length===0)return null;const w=y[o];return w!=null&&Object.keys(ct(w)).length===0&&delete y[o],l||Un(y,o,i),Object.keys(y).length>0?y:null},[a,r,l,o,i]),m=u.useCallback(()=>{a&&r.remove(a)},[a,r]);return{enabled:!!a,read:g,clear:m}}function Ri({scopeId:t,storage:r,perPageKey:n,pageSizeOptions:s,enabled:o=!0}){const{searchParams:i}=Ze(),l=t&&o?Tt.perPage(t):void 0,c=i.toString(),a=u.useRef(l);u.useEffect(()=>{if(!l){a.current=l;return}if(a.current!==l){a.current=l;return}const g=i.get(n);if(!g)return;const m=Number(g);!Number.isFinite(m)||m<=0||r.set(l,m)},[c,l,n,r]);const d=u.useCallback(()=>{if(!l)return null;const g=r.get(l);if(g==null)return null;const m=Number(g);return!Number.isFinite(m)||m<=0||s&&!s.includes(m)?null:String(m)},[l,r,s]),h=u.useCallback(()=>{l&&r.remove(l)},[l,r]);return{enabled:!!l,read:d,clear:h}}let Rr={},Or=!1,Ar=null;const Oi=(t,r)=>{Object.assign(Rr,t),Ar=r,!Or&&(Or=!0,queueMicrotask(()=>{const n=Rr,s=Ar;Rr={},Or=!1,Ar=null,!(!s||Object.keys(n).length===0)&&s(o=>{const i=new URLSearchParams(o);return Object.entries(n).forEach(([l,c])=>i.set(l,c)),i},{replace:!0})}))};function Ai({enabled:t,snapshotKeys:r,perPageKey:n,readSnapshot:s,readPerPage:o}){const{searchParams:i,setSearchParams:l,location:c}=Ze(),a=u.useRef(null);u.useEffect(()=>{if(!t||a.current===c.pathname)return;a.current=c.pathname;const d={};if(!i.has(n)){const h=o();h&&(d[n]=h)}if(!r.some(h=>i.has(h))){const h=s();h&&Object.assign(d,h)}Object.keys(d).length!==0&&Oi(d,l)},[c.pathname,t])}const Wi=({configs:t,activeKeys:r,onToggle:n,hasActiveFilter:s,onReset:o})=>t.length?e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:s?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"FilterHorizontal"}),"aria-label":"Add filter"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{minWidth:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:"Add Filter"}),s&&o&&e.jsx(H.Button,{variant:"link",tone:"brand",size:"xs",onClick:o,children:"Reset"})]}),children:t.map(i=>e.jsx(O.MenuItem,{selected:i.locked||r.includes(i.key),disabled:i.locked,closeOnSelect:!1,startIcon:i.icon??void 0,onClick:()=>{i.locked||n(i.key)},children:i.label},i.key))})})]}):null,Nt=({onClear:t,onRemove:r})=>e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"link",tone:"neutral",size:"xs",iconLeft:e.jsx(B.Icon,{name:"MenuHorizontal"}),"aria-label":"Filter actions"})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{width:180},children:[e.jsx(O.MenuItem,{startIcon:e.jsx(B.Icon,{name:"CrossCircle"}),onClick:t,children:"Clear value"}),r&&e.jsx(O.MenuItem,{intent:"danger",startIcon:e.jsx(B.Icon,{name:"Trash1"}),onClick:r,children:"Remove filter"})]})})]}),zi=t=>{const r=new Date(t);return r.setHours(0,0,0,0),r},Yn=(t,r,n)=>{const s=new Date(t);return n==="day"?s.setDate(s.getDate()+r):n==="week"?s.setDate(s.getDate()+r*7):n==="month"?s.setMonth(s.getMonth()+r):s.setFullYear(s.getFullYear()+r),s},Vo=t=>{const r=zi(new Date);if(t.direction==="this"){const s=new Date(r),o=new Date(r);return t.period==="week"?(s.setDate(r.getDate()-r.getDay()),o.setDate(s.getDate()+6)):t.period==="month"?(s.setDate(1),o.setMonth(o.getMonth()+1,0)):t.period==="year"&&(s.setMonth(0,1),o.setMonth(11,31)),{from:s,to:o}}const n=t.count??1;return t.direction==="past"?{from:Yn(r,-n,t.period),to:r}:{from:r,to:Yn(r,n,t.period)}},Xn=24,No=t=>t.length>Xn?`${t.slice(0,Xn)}...`:t,_o=t=>t.toLocaleDateString(void 0,{day:"2-digit",month:"short",year:"numeric"}),Wr=(t,r="days")=>r==="months"?t.toLocaleDateString(void 0,{month:"short",year:"numeric"}):r==="years"?String(t.getFullYear()):_o(t),dr={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"},qo=["is","is-before","is-after","is-on-or-before","is-on-or-after","is-between","is-relative-to-today","is-empty","is-not-empty"],Kr={past:"Past",next:"Next",this:"This"},Hi=["day","week","month","year"],Pi=["past","next","this"],Vi=t=>t.field.type==="date-compact"?e.jsx(qi,{field:t.field,value:t.value,onChange:t.onChange,onClear:t.onClear,onRemove:t.onRemove}):e.jsx(Ni,{field:t.field,value:t.value,onChange:t.onChange,onClear:t.onClear,onRemove:t.onRemove}),Ni=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=r?_o(new Date(r)):null,l=!!i,c=l?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:No(i)})]}):t.label;return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l?e.jsx(B.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:c})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Nt,{onClear:s,onRemove:o})]}),children:e.jsx(jt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:t.mode,value:r,onChange:a=>a==null?s():n(a),withPadding:!1})})})]})},_i=(t,r="days")=>{switch(t.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return t.date?`${dr[t.op]} ${Wr(new Date(t.date),r)}`:null;case"is-between":return t.from&&t.to?`${Wr(new Date(t.from),r)} - ${Wr(new Date(t.to),r)}`:null;case"is-relative-to-today":{const n=t.relative;if(!n)return null;if(n.direction==="this")return`This ${n.period}`;const s=n.count??1,o=s===1?n.period:`${n.period}s`;return`${Kr[n.direction]} ${s} ${o}`}case"is-empty":case"is-not-empty":return dr[t.op];default:return null}},qi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=t.ops&&t.ops.length>0?t.ops:qo,l=t.defaultOp&&i.includes(t.defaultOp)?t.defaultOp:i[0],c=t.mode??"days",a=(r==null?void 0:r.op)??l,d=r?_i(r,c):null,h=!!d,g=h?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:No(d)})]}):t.label,m=y=>{if(y!==a){if(y==="is-empty"||y==="is-not-empty"){n({op:y});return}if(y==="is-relative-to-today"){n({op:y,relative:(r==null?void 0:r.relative)??{direction:"past",count:1,period:"week"}});return}if(y==="is-between"){n({op:y,from:r==null?void 0:r.from,to:r==null?void 0:r.to});return}n({op:y,date:r==null?void 0:r.date})}};return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:h?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:h?e.jsx(B.Icon,{name:"Calendar",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:g})}),e.jsxs(O.MenuLists,{children:[e.jsx(O.MenuBody,{style:{width:320},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",gap:"xs",fullWidth:!0,children:[e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"xs",style:{minWidth:0},children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Zo,{op:a,ops:i,onChange:m})]}),e.jsx(Nt,{onClear:s,onRemove:o})]}),children:e.jsx(Go,{value:r,op:a,mode:c,onChange:n})}),a==="is-relative-to-today"&&e.jsx(O.MenuFooter,{children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"Filter will update with the current date"})})]})]})},Zo=({op:t,ops:r,onChange:n})=>e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"link",tone:"neutral",size:"xs",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:dr[t]})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:200},children:r.map(s=>e.jsx(O.MenuItem,{selected:t===s,onClick:()=>n(s),endIcon:t===s?e.jsx(B.Icon,{name:"Check"}):void 0,children:dr[s]},s))})})]}),Go=({value:t,op:r,mode:n="days",onChange:s})=>{if(r==="is-empty"||r==="is-not-empty")return e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"No further input required."})});if(r==="is-between"){const o=t!=null&&t.from||t!=null&&t.to?{from:t!=null&&t.from?new Date(t.from):null,to:t!=null&&t.to?new Date(t.to):null}:void 0;return e.jsx(jt.StarasiaDate,{size:"sm",input:!1,clearable:!0,rangedDate:!0,filter:n,value:o,onChange:i=>{if(i==null){s({op:r});return}if(typeof i=="object"&&i!==null&&"from"in i&&"to"in i){let{from:l,to:c}=i;if(!l&&c&&(l=c,c=null),!l&&!c){s({op:r});return}s({op:r,from:l?l.toISOString():void 0,to:c?c.toISOString():void 0})}},withPadding:!1},`range-${n}`)}return r==="is-relative-to-today"?e.jsx(Zi,{value:t==null?void 0:t.relative,onChange:o=>s({op:r,relative:o})}):e.jsx(jt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:n,value:t!=null&&t.date?new Date(t.date):void 0,onChange:o=>{if(o==null){s({op:r});return}o instanceof Date&&s({op:r,date:o.toISOString()})},withPadding:!1},`single-${n}`)},Zi=({value:t,onChange:r})=>{const n=(t==null?void 0:t.direction)??"past",s=(t==null?void 0:t.count)??1,o=(t==null?void 0:t.period)??"week",i=n!=="this",l=Vo({direction:n,count:s,period:o});return e.jsxs(x.Box,{direction:"column",display:"flex",gap:"sm",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:Kr[n]})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:140},children:Pi.map(c=>e.jsx(O.MenuItem,{selected:n===c,endIcon:n===c?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>r(c==="this"?{direction:c,period:o}:{direction:c,count:s,period:o}),children:Kr[c]},c))})})]}),i&&e.jsx(ht.Input,{type:"number",size:"sm",min:1,clearable:!1,value:s,onChange:c=>{const a=Number(c.target.value);r({direction:n,count:Number.isFinite(a)&&a>0?a:1,period:o})},style:{width:72}}),e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:o})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:140},children:Hi.map(c=>e.jsx(O.MenuItem,{selected:o===c,endIcon:o===c?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>r(n==="this"?{direction:n,period:c}:{direction:n,count:s,period:c}),children:c},c))})})]})]}),e.jsx(jt.StarasiaDate,{size:"sm",input:!1,disabled:!0,rangedDate:!0,value:l,onChange:()=>{},withPadding:!1},"relative-preview")]})},Jn=18,Gi=t=>t.length>Jn?`${t.slice(0,Jn)}...`:t,Qi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=t.type==="dropdown-multiple",l=r.length,c=t.searchable!==!1,[a,d]=u.useState(""),h=t.options,g=typeof t.onSearch=="function",m=(()=>{if(g)return h;const L=a.trim().toLowerCase();return L?h.filter(M=>M.label.toLowerCase().includes(L)):h})(),y=L=>r.some(M=>M.value===L.value),w=L=>{if(!i){n([{label:L.label,value:L.value}]),d("");return}n(y(L)?r.filter(M=>M.value!==L.value):[...r,{label:L.label,value:L.value}])},v=L=>{var M;d(L),(M=t.onSearch)==null||M.call(t,L)},R=l===0?t.label:e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:l===1?Gi(r[0].label):`${l} Selected`})]});return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l>0?e.jsx(B.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:R})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Nt,{onClear:s,onRemove:o})]}),children:e.jsxs(x.Box,{direction:"column",gap:"sm",children:[c&&e.jsx(It.Dropdown,{size:"sm",triggerInput:!0,fullWidth:!0,hideChevronIcon:!0,clearable:!0,multiSelect:i,searchAble:!0,searchValue:a,onSearch:v,value:r,onChange:n,placeholder:`Search ${t.label.toLowerCase()}…`}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",customMaxHeight:"240px",children:t.isLoading?e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"Loading…"})}):m.length===0?e.jsx(x.Box,{paddingBlock:"sm",paddingInline:"sm",children:e.jsx(C.Text,{fontSize:"xs",color:"subtlest",children:"No results"})}):m.map(L=>e.jsx(O.MenuItem,{closeOnSelect:!i,selected:y(L),startIcon:L.avatar,endIcon:y(L)?e.jsx(B.Icon,{name:"Check"}):void 0,description:L.description,onClick:()=>w(L),children:L.label},L.value))})]})})})]})},$n=18,Ui=t=>t.length>$n?`${t.slice(0,$n)}...`:t,Kn=({checked:t,indeterminate:r})=>e.jsx("span",{style:{pointerEvents:"none",display:"inline-flex"},children:e.jsx(xt.Checkbox,{size:"sm",checked:t,readOnly:!0,onChange:()=>{},variant:r?"indeterminate":"select"})}),Yi=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const i=new Set(r.map(m=>m.value)),l=r.length,c=t.options.length>0&&t.options.every(m=>i.has(m.value)),a=l>0&&!c,d=m=>{n(i.has(m.value)?r.filter(y=>y.value!==m.value):[...r,{label:m.label,value:m.value}])},h=()=>{n(c?[]:t.options.map(m=>({label:m.label,value:m.value})))},g=l===0?t.label:e.jsxs(e.Fragment,{children:[e.jsxs(C.Text,{as:"span",fontWeight:"semibold",children:[t.label,":"]})," ",e.jsx(C.Text,{as:"span",children:l===1?Ui(r[0].label):`${l} Selected`})]});return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:l>0?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:l>0?e.jsx(B.Icon,{name:"Tag",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:g})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{width:240},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Nt,{onClear:s,onRemove:o})]}),children:[e.jsx(O.MenuItem,{closeOnSelect:!1,selected:c,onClick:h,startIcon:e.jsx(Kn,{checked:c||a,indeterminate:a}),children:"Select All"}),t.options.map(m=>e.jsx(O.MenuItem,{closeOnSelect:!1,selected:i.has(m.value),onClick:()=>d(m),startIcon:e.jsx(Kn,{checked:i.has(m.value)}),children:m.label},m.value))]})})]})},eo=18,Xi=t=>t.length>eo?`${t.slice(0,eo)}...`:t,Ji=({field:t,value:r,onChange:n,onClear:s,onRemove:o})=>{const[i,l]=u.useState(r??""),c=we.useDebounce(i,t.debounceMs??300);u.useEffect(()=>{c!==(r??"")&&n(c)},[c]),u.useEffect(()=>{l(r??"")},[r]);const a=!!r,d=a?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontWeight:500},children:[t.label,":"]})," ",e.jsx("span",{style:{fontWeight:400},children:Xi(r)})]}):t.label;return e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:a?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:a?e.jsx(B.Icon,{name:"Search",size:"sm"}):void 0,iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),children:d})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{style:{width:260},title:e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",justify:"space-between",fullWidth:!0,children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Nt,{onClear:s,onRemove:o})]}),children:e.jsx(ht.Input,{size:"sm",fullWidth:!0,value:i,placeholder:t.placeholder??"Cari…",leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:h=>l(h.target.value)})})})]})},Qo=({activeKeys:t,configByKey:r,getValue:n,setValue:s,clearValue:o,removeFilter:i})=>e.jsx(e.Fragment,{children:t.map(l=>{const c=r[l];if(!c)return null;const a=n(c),d=c.locked?void 0:()=>i(l);return c.type==="date"||c.type==="date-compact"?e.jsx(Vi,{field:c,value:a,onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):c.type==="text"?e.jsx(Ji,{field:c,value:a||"",onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):c.type==="checkbox-multiple"?e.jsx(Yi,{field:c,value:a||[],onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l):e.jsx(Qi,{field:c,value:a||[],onChange:h=>s(c,h),onClear:()=>o(l),onRemove:d},l)})}),to=t=>`${t} Rows`,$i=({pagination:t,pageKey:r="page",perPageKey:n="perPage",pageSizeOptions:s=[10,25,50,100],defaultPerPage:o=10,showResultCount:i=!0,showPageSize:l=!0,showPagination:c=!0})=>{var L;const{searchQueries:a,setSearchParams:d,searchParams:h}=Ze(),g=h.get(n),m=g?Number(g):o,y=M=>{d({...a,[r]:String(M)})},w=M=>{d({...a,[n]:M,[r]:"1"})},v=(t==null?void 0:t.rangeStart)??(((t==null?void 0:t.currentPage)||0)>1?(((t==null?void 0:t.currentPage)||0)-1)*((t==null?void 0:t.perPage)||0)+1:1),R=(t==null?void 0:t.rangeEnd)??((t==null?void 0:t.totalCurrentPage)!==(t==null?void 0:t.perPage)?t==null?void 0:t.totalData:((t==null?void 0:t.currentPage)||1)*((t==null?void 0:t.totalCurrentPage)||0));return e.jsxs(e.Fragment,{children:[i&&e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${v}-${R} of ${((L=t==null?void 0:t.totalData)==null?void 0:L.toLocaleString())||0}`}),l&&e.jsxs(O.Menu,{position:"bottom-left",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconRight:e.jsx(B.Icon,{name:"ChevronSmallDown"}),"aria-label":"Rows per page",children:to(m)})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{children:s.map(M=>e.jsx(O.MenuItem,{selected:M===m,onClick:()=>w(String(M)),children:to(M)},M))})})]}),c&&((t==null?void 0:t.totalPage)??0)>1&&e.jsx(x.Box,{direction:"column",display:"flex",align:"center",gap:"sm",paddingRight:"sm",style:{borderRight:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:e.jsx(Ht.Pagination,{size:"sm",variant:"neutral",siblingCount:0,currentPage:t!=null&&t.currentPage?Number(t.currentPage):1,totalPages:Number(t==null?void 0:t.totalPage),onPageChange:y})})]})};function Ki(t,r,n=!0){u.useEffect(()=>{if(!n)return;const s=o=>{var c;if(o.metaKey||o.ctrlKey||o.altKey||o.key!==t||Oe.isOverlayOpen())return;const i=o.target,l=(c=i==null?void 0:i.tagName)==null?void 0:c.toLowerCase();l==="input"||l==="textarea"||i!=null&&i.isContentEditable||(o.preventDefault(),r())};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[t,r,n])}const el=240,Uo=({searchKey:t="q",filterKey:r="filter",pageKey:n="page",placeholder:s="Search",shortcut:o="/",collapsible:i=!0})=>{const{searchParams:l,setSearchParams:c,searchQueries:a}=Ze(),d=hr(t,l,r)||"",[h,g]=u.useState(!i||!!d),[m,y]=u.useState(i&&!d),[w,v]=u.useState(d),R=we.useDebounce(w,350),L=u.useRef(null);u.useEffect(()=>{v(d),d&&g(!0)},[d]),u.useEffect(()=>{h&&y(!1)},[h]),u.useEffect(()=>{R!==d&&Pt({value:R,name:t,type:"search",searchQueries:a,setSearchParams:c,filterKey:r,pageKey:n})},[R]);const M=u.useCallback(()=>{g(!0),requestAnimationFrame(()=>{var I;return(I=L.current)==null?void 0:I.focus()})},[]);Ki(o,M);const b=()=>{i&&!w&&g(!1)},S=I=>{var D;i&&I.key==="Escape"&&!w&&(g(!1),(D=L.current)==null||D.blur())},E=()=>{h||y(!0)};return e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"spacing-0",children:[m&&e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Search",size:"sm"}),"aria-label":"Search","aria-expanded":!1,onClick:M}),e.jsxs(x.Box,{onTransitionEnd:E,style:{position:"relative",width:h?el:0,overflow:"hidden",transition:"width 220ms ease"},children:[e.jsx(ht.Input,{ref:L,size:"sm",fullWidth:!0,value:w,placeholder:s,leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:I=>v(I.target.value),onKeyDown:S,onBlur:b,tabIndex:h?0:-1}),h&&!w&&e.jsx(x.Box,{align:"center",justify:"center",borderColor:"border-subtle",borderWidth:"border",borderStyle:"border-solid",borderRadius:"rounded-xs",paddingInline:"spacing-1",customBackgroundColor:"var(--sa-background-surface-hover, #f1f2f4)",style:{position:"absolute",right:8,top:"50%",transform:"translateY(-50%)",pointerEvents:"none",minWidth:18,height:18,display:"inline-flex"},children:e.jsx(C.Text,{fontSize:"xs",color:"subtle",children:o})})]})]})},Yo=({columns:t,allVisible:r,onToggle:n,onReorder:s,onSetAllHidden:o})=>{const[i,l]=u.useState(null),[c,a]=u.useState(null),d=()=>{i!==null&&c!==null&&i!==c&&s(i,c),l(null),a(null)},h=(g,m)=>{const y=g+m;y<0||y>=t.length||s(g,y)};return e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:r?"outline":"secondary",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Grid",size:"sm"}),"aria-label":"Customize columns"})}),e.jsx(O.MenuLists,{children:e.jsx(O.MenuBody,{children:e.jsxs(x.Box,{padding:"sm",direction:"column",customWidth:"296px",customMaxHeight:"60vh",overflow:"overflow-hidden",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Customize Column Table"}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",paddingBlock:"md",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtle",children:"Show in table"}),e.jsx(H.Button,{variant:"link",tone:"info",size:"xs",onClick:()=>o(r),children:r?"Hide All":"Show All"})]}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",children:t.map((g,m)=>{const y=!g.locked,w=c===m&&i!==null&&i!==m;return e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",paddingBlock:"xs",draggable:y,onDragStart:()=>y&&l(m),onDragOver:v=>{v.preventDefault(),a(m)},onDrop:d,onDragEnd:d,style:{minHeight:32,boxShadow:w?"inset 0 2px 0 0 var(--sa-background-brand, #04254f)":void 0},children:[e.jsx(x.Box,{direction:"column",as:"div",align:"center",justify:"center",role:"button",tabIndex:y?0:-1,"aria-label":`Reorder ${g.title}`,"aria-disabled":!y||void 0,color:"icon-subtlest",onKeyDown:v=>{y&&(v.key==="ArrowUp"?(v.preventDefault(),h(m,-1)):v.key==="ArrowDown"&&(v.preventDefault(),h(m,1)))},style:{display:"inline-flex",cursor:y?"grab":"default",opacity:y?1:.4},children:e.jsx(B.Icon,{name:"DragVertical",width:16,height:16})}),g.icon&&e.jsx(x.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:g.icon}),e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:g.title}),e.jsx(x.Box,{direction:"column",style:{marginLeft:"auto"},children:e.jsx(Lt.Toggle,{size:"sm",checked:g.visible,disabled:g.locked,onChange:()=>n(g.key),"aria-label":`Toggle ${g.title} column`})})]},g.key)})})]})})})]})},Xo=({views:t,onApply:r,onDelete:n,onSave:s})=>{const[o,i]=u.useState(""),l=()=>{const c=o.trim();c&&(s(c),i(""))};return e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:t.length>0?"secondary":"outline",tone:(t.length>0,"neutral"),size:"sm",iconLeft:e.jsx(B.Icon,{name:"Bookmark",size:"sm"}),"aria-label":"Saved views"})}),e.jsxs(O.MenuLists,{style:{width:"260px"},children:[e.jsx(O.MenuBody,{children:e.jsxs(x.Box,{direction:"column",padding:"xs",gap:"sm",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Saved Views"}),e.jsx(x.Box,{direction:"column",overflow:"overflow-y-auto",children:t.length===0?e.jsx(x.Box,{direction:"column",paddingBlock:"sm",children:e.jsx(C.Text,{fontSize:"sm",color:"subtlest",children:"No saved views yet"})}):t.map(c=>e.jsx(O.MenuItem,{startIcon:e.jsx(B.Icon,{name:"Bookmark"}),onClick:()=>r(c),endIcon:e.jsx(H.Button,{variant:"link",tone:"error",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Trash2"}),"aria-label":`Delete ${c.name}`,onClick:a=>{a.stopPropagation(),n(c.id)}}),children:c.name},c.id))})]})}),e.jsx(O.MenuFooter,{children:e.jsxs(x.Box,{direction:"row",gap:"xs",children:[e.jsx(x.Box,{direction:"column",style:{flex:"1 0 0",minWidth:0},children:e.jsx(ht.Input,{size:"sm",fullWidth:!0,placeholder:"Save current view as…",value:o,onChange:c=>i(c.target.value),onKeyDown:c=>{c.key==="Enter"&&l()}})}),e.jsx(H.Button,{variant:"primary",tone:"brand",size:"sm",disabled:!o.trim(),onClick:l,children:"Save"})]})})]})]})},tl=({isOpen:t,onClose:r,configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,onToggle:l,onReset:c,getValue:a,setValue:d,clearValue:h,removeFilter:g})=>{const m=s.length;return e.jsx(cr.Drawer,{position:"bottom",isShow:t,onHide:r,children:e.jsxs(x.Box,{direction:"column",customMaxHeight:"85vh",style:{minHeight:280},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",paddingInline:"md",paddingBlock:"sm",style:{borderBottom:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"xs",children:[e.jsx(C.Text,{fontWeight:"semibold",color:"primary",children:"Filter"}),m>0&&e.jsxs(C.Text,{fontSize:"sm",color:"subtle",children:["(",m,")"]})]}),e.jsx(H.Button,{variant:"link",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"Cross"}),"aria-label":"Close filter",onClick:r})]}),e.jsxs(x.Box,{direction:"column",gap:"lg",padding:"md",overflow:"overflow-y-auto",style:{flex:"1 1 auto",minHeight:0},children:[m>0&&e.jsxs(x.Box,{direction:"column",gap:"sm",children:[e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Filter aktif"}),e.jsx(x.Box,{direction:"row",display:"flex",wrap:"wrap",gap:"sm",align:"center",children:e.jsx(Qo,{activeKeys:s,configByKey:o,getValue:a,setValue:d,clearValue:h,removeFilter:g})})]}),n.length>0&&e.jsxs(x.Box,{direction:"column",gap:"sm",children:[e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Tambah filter"}),e.jsx(x.Box,{direction:"column",children:n.map(y=>{const w=s.includes(y.key),v=!!y.locked;return e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",paddingBlock:"sm",style:{opacity:v?.5:1,borderTop:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.08))"},children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{minWidth:0},children:[y.icon&&e.jsx(x.Box,{direction:"column",align:"center",color:"icon-subtle",style:{display:"inline-flex"},children:y.icon}),e.jsx(C.Text,{fontSize:"sm",color:"primary",truncate:!0,children:y.label})]}),e.jsx(Lt.Toggle,{size:"sm",checked:w||v,disabled:v,onChange:()=>l(y.key),"aria-label":`Toggle ${y.label}`})]},y.key)})})]})]}),e.jsxs(x.Box,{direction:"row",display:"flex",gap:"sm",paddingInline:"md",paddingBlock:"sm",style:{borderTop:"1px solid var(--sa-border-subtle, rgba(11, 18, 14, 0.14))"},children:[e.jsx(x.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"md",fullWidth:!0,disabled:!i,onClick:c,children:"Reset"})}),e.jsx(x.Box,{direction:"column",style:{flex:"1 1 0"},children:e.jsx(H.Button,{variant:"primary",tone:"brand",size:"md",fullWidth:!0,onClick:r,children:"Selesai"})})]})]})})},rl=t=>`${t} Rows`,nl=({perPageKey:t,pageKey:r,pageSizeOptions:n,defaultPerPage:s=10,showPageSize:o})=>{const{searchQueries:i,setSearchParams:l,searchParams:c}=Ze(),a=c.get(t),d=a?Number(a):s,h=g=>{l({...i,[t]:g,[r]:"1"})};return o?e.jsxs(O.Menu,{position:"bottom-right",children:[e.jsx(O.MenuButton,{children:e.jsx(H.Button,{variant:"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"MenuVertical",size:"sm"}),"aria-label":"More options"})}),e.jsx(O.MenuLists,{children:e.jsxs(O.MenuBody,{style:{minWidth:200},children:[e.jsx(x.Box,{paddingInline:"sm",paddingBlock:"xs",children:e.jsx(C.Text,{fontSize:"xs",fontWeight:"medium",color:"subtlest",children:"Rows per page"})}),n.map(g=>e.jsx(O.MenuItem,{selected:g===d,endIcon:g===d?e.jsx(B.Icon,{name:"Check"}):void 0,onClick:()=>h(String(g)),children:rl(g)},g))]})})]}):null},ol=t=>{var je;const{withPadding:r,configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,toggleFilter:l,removeFilter:c,getValue:a,setValue:d,clearValue:h,onReset:g,searchable:m,searchKey:y,filterKey:w,pageKey:v,searchPlaceholder:R,searchShortcut:L,searchCollapsible:M,pagination:b,perPageKey:S,pageSizeOptions:E,defaultPerPage:I,showPagination:D,showResultCount:T,showPageSize:G,hasColumns:z,orderedColumns:A,allVisible:P,onToggleVisibility:q,onReorder:Q,onSetAllHidden:te,showSavedViews:J,savedViews:$,onApplyView:V,onDeleteView:xe,onSaveView:ue,leadingActions:Be,trailingActions:Ve}=t,[De,ge]=u.useState(!1),{searchQueries:pe,setSearchParams:Le}=Ze(),Ne=(b==null?void 0:b.rangeStart)??(((b==null?void 0:b.currentPage)||0)>1?(((b==null?void 0:b.currentPage)||0)-1)*((b==null?void 0:b.perPage)||0)+1:1),Ae=(b==null?void 0:b.rangeEnd)??((b==null?void 0:b.totalCurrentPage)!==(b==null?void 0:b.perPage)?b==null?void 0:b.totalData:((b==null?void 0:b.currentPage)||1)*((b==null?void 0:b.totalCurrentPage)||0)),ie=Ee=>{Le({...pe,[v]:String(Ee)})},ce=T||D&&!!(b!=null&&b.totalPage),me=()=>{g(),ge(!1)};return e.jsxs(x.Box,{direction:"column",gap:"sm",fullWidth:!0,paddingTop:r?"sm":void 0,paddingBottom:r?"sm":void 0,paddingLeft:r?"md":void 0,paddingRight:r?"md":void 0,role:"toolbar","aria-label":"Filter bar",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",wrap:"wrap",gap:"sm",fullWidth:!0,overflow:"overflow-auto",children:[m&&e.jsx(Uo,{searchKey:y,filterKey:w,pageKey:v,placeholder:R,shortcut:L,collapsible:M}),e.jsx(H.Button,{variant:i?"secondary":"outline",tone:"neutral",size:"sm",iconLeft:e.jsx(B.Icon,{name:"FilterHorizontal"}),onClick:()=>ge(!0),"aria-label":"Open filters",children:i?`Filter: ${s.length}`:null}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{marginLeft:"auto"},children:[Be,J&&e.jsx(Xo,{views:$,onApply:V,onDelete:xe,onSave:ue}),z&&e.jsx(Yo,{columns:A,allVisible:P,onToggle:q,onReorder:Q,onSetAllHidden:te}),e.jsx(nl,{perPageKey:S,pageKey:v,pageSizeOptions:E,defaultPerPage:I,showPageSize:G}),Ve]})]}),ce&&e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",justify:"space-between",gap:"sm",fullWidth:!0,children:[T?e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"primary",truncate:!0,children:`${Ne}-${Ae} of ${((je=b==null?void 0:b.totalData)==null?void 0:je.toLocaleString())||0}`}):e.jsx(x.Box,{direction:"column"}),D&&!!(b!=null&&b.totalPage)&&e.jsx(Ht.Pagination,{size:"xs",variant:"neutral",siblingCount:0,currentPage:b!=null&&b.currentPage?Number(b.currentPage):1,totalPages:Number(b.totalPage),onPageChange:ie})]}),e.jsx(tl,{isOpen:De,onClose:()=>ge(!1),configs:n,activeKeys:s,configByKey:o,hasActiveFilter:i,onToggle:l,onReset:me,getValue:a,setValue:d,clearValue:h,removeFilter:c})]})},sl=({withPadding:t=!1,filterConfigs:r=[],filterKey:n="filter",activeFilterKey:s="filters",pageKey:o="page",perPageKey:i="perPage",pageSizeOptions:l=[25,50,100],defaultPerPage:c,showPagination:a=!0,showResultCount:d=!0,showPageSize:h=!0,searchable:g=!1,searchKey:m="q",searchPlaceholder:y="Search",searchShortcut:w="/",searchPosition:v="right",searchCollapsible:R=!0,pagination:L,columns:M=[],onColumnsChange:b,columnsState:S,scopeId:E,savedViews:I,persistLastState:D=!0,persistSearch:T=!0,storage:G=fn,onReset:z,leadingActions:A,trailingActions:P})=>{const q=E??(I==null?void 0:I.scopeId),{activeKeys:Q,configByKey:te,hasActiveFilter:J,toggleFilter:$,removeFilter:V,getValue:xe,setValue:ue,clearValue:Be,clearAll:Ve}=hn({configs:r,filterKey:n,activeFilterKey:s,pageKey:o,searchKey:m}),De=Ii({columns:M,scopeId:q,storage:G,onColumnsChange:b,value:S}),ge=Mi({scopeId:q,storage:G,snapshotKeys:[s,n,i],pageKey:o,getColumns:()=>De.state,applyColumns:De.applyState}),pe=Ti({scopeId:q,storage:G,snapshotKeys:[s,n,o],enabled:D,filterKey:n,searchKey:m,persistSearch:T}),Le=Ri({scopeId:q,storage:G,perPageKey:i,pageSizeOptions:l,enabled:D});Ai({enabled:D&&!!q,snapshotKeys:[s,n,o],perPageKey:i,readSnapshot:pe.read,readPerPage:Le.read});const Ne=c??l[0]??25,Ae=!!(I!=null&&I.enabled)&&ge.enabled,ie=()=>{Ve(),pe.clear(),z==null||z()},ce=we.useMediaQuery("md"),me=g?e.jsx(Uo,{searchKey:m,filterKey:n,pageKey:o,placeholder:y,shortcut:w,collapsible:R}):null;return ce?e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"sm",wrap:"wrap",fullWidth:!0,paddingTop:t?"sm":void 0,paddingBottom:t?"sm":void 0,paddingLeft:t?"md":void 0,paddingRight:t?"md":void 0,role:"toolbar","aria-label":"Filter bar",children:[e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(Wi,{configs:r,activeKeys:Q,onToggle:$,hasActiveFilter:J,onReset:ie}),v==="left"&&me,e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",overflow:"overflow-x-auto",style:{flex:"1 1 0",minWidth:0},children:[e.jsx(Qo,{activeKeys:Q,configByKey:te,getValue:xe,setValue:ue,clearValue:Be,removeFilter:V}),J&&e.jsx(H.Button,{variant:"link",tone:"brand",size:"sm",onClick:ie,children:"Reset"})]})]}),e.jsxs(x.Box,{direction:"row",display:"flex",align:"center",gap:"sm",children:[A,e.jsx($i,{pagination:L,pageKey:o,perPageKey:i,pageSizeOptions:l,defaultPerPage:Ne,showPagination:a,showResultCount:d,showPageSize:h}),v==="right"&&me,Ae&&e.jsx(Xo,{views:ge.views,onApply:ge.applyView,onDelete:ge.deleteView,onSave:ge.saveView}),M.length>0&&e.jsx(Yo,{columns:De.orderedColumns,allVisible:De.allVisible,onToggle:De.toggleVisibility,onReorder:De.reorder,onSetAllHidden:De.setAllHidden}),P]})]}):e.jsx(ol,{withPadding:t,configs:r,activeKeys:Q,configByKey:te,hasActiveFilter:J,toggleFilter:$,removeFilter:V,getValue:xe,setValue:ue,clearValue:Be,onReset:ie,searchable:g,searchKey:m,filterKey:n,pageKey:o,searchPlaceholder:y,searchShortcut:w,searchCollapsible:R,pagination:L,perPageKey:i,pageSizeOptions:l,defaultPerPage:Ne,showPagination:a,showResultCount:d,showPageSize:h,hasColumns:M.length>0,orderedColumns:De.orderedColumns,allVisible:De.allVisible,onToggleVisibility:De.toggleVisibility,onReorder:De.reorder,onSetAllHidden:De.setAllHidden,showSavedViews:Ae,savedViews:ge.views,onApplyView:ge.applyView,onDeleteView:ge.deleteView,onSaveView:ge.saveView,leadingActions:A,trailingActions:P})},il=t=>{if(!Array.isArray(t)||t.length===0)return;const r=t[0];return(r==null?void 0:r.value)!=null?String(r.value):void 0},ll=t=>{if(!Array.isArray(t)||t.length===0)return;const r=t.map(n=>(n==null?void 0:n.value)!=null?String(n.value):null).filter(n=>n!=null);return r.length?r:void 0},cl=(t,r)=>{switch(t.type){case"dropdown":case"radio":return il(r);case"dropdown-multiple":case"checkbox-multiple":return ll(r);case"date":return r instanceof Date?r.toISOString():void 0;case"date-compact":return r;case"text":return typeof r=="string"&&r?r:void 0;default:return}},ro=(t,r)=>{if(t==null||t==="")return r;const n=Number(t);return Number.isFinite(n)&&n>0?n:r},al=t=>{const{filterConfigs:r,filterKey:n="filter",activeFilterKey:s="filters",pageKey:o="page",perPageKey:i="perPage",searchKey:l="q",defaultPage:c=1,defaultPerPage:a=10,paramKeys:d,serialize:h}=t,{activeKeys:g,configByKey:m,hasActiveFilter:y,getValue:w}=hn({configs:r,filterKey:n,activeFilterKey:s,pageKey:o,searchKey:l}),{searchParams:v}=Ze(),R=v.toString();return u.useMemo(()=>{const M={},b={},S=ro(v.get(o),c),E=ro(v.get(i),a);M[(d==null?void 0:d.page)??"page"]=S,M[(d==null?void 0:d.perPage)??"perPage"]=E;const I=hr(l,v,n)||"";I&&(M[(d==null?void 0:d.search)??"search"]=I);let D=!1;for(const T of g){const G=m[T];if(!G)continue;const z=w(G);b[T]=z;const A=h==null?void 0:h[T],P=A?A(z):cl(G,z);if(P==null||Array.isArray(P)&&P.length===0)continue;const q=(d==null?void 0:d[T])??T;M[q]=P,D=!0}return{params:M,raw:b,hasActiveFilter:y||!!I||D}},[R,g.join("|"),n,s,o,i,l,c,a,d,h,m])},dl=["dropdown","dropdown-multiple","checkbox-multiple","radio"],ul=({filterConfigs:t,filterKey:r,activeFilterKey:n,pageKey:s,searchKey:o})=>{const{configByKey:i,getValue:l,setValue:c,removeFilter:a,clearAll:d,hasActiveFilter:h}=hn({configs:t,filterKey:r,activeFilterKey:n,pageKey:s,searchKey:o}),g=(b,S)=>{var I;const E=b.options;return((I=E==null?void 0:E.find(D=>D.value===S))==null?void 0:I.label)??S},m=u.useCallback(b=>{const S=i[b];if(!S)return[];const E=l(S);return Array.isArray(E)?E.map(I=>String(I.value)):[]},[i,l]),y=u.useCallback((b,S)=>{const E=i[b];if(!E||!dl.includes(E.type))return;const I=Array.isArray(S)?S:[S];if(I.length===0){a(b);return}c(E,I.map(D=>({label:g(E,D),value:D})))},[i,c,a]),w=u.useCallback((b,S)=>{const E=m(b);y(b,E.includes(S)?E.filter(I=>I!==S):[...E,S])},[m,y]),v=u.useCallback((b,S)=>m(b).includes(S),[m]),R=u.useCallback(b=>a(b),[a]),L=u.useCallback(b=>{const S=i[b];return S?l(S):void 0},[i,l]),M=u.useCallback((b,S)=>{const E=i[b];if(E){if(S==null){a(b);return}c(E,S)}},[i,c,a]);return{set:y,toggle:w,clear:R,clearAll:d,isActive:v,values:m,getRaw:L,setRaw:M,hasActiveFilter:h}},zr="var(--sa-background-brand, #04254f)",xl="var(--sa-text-brand, #031f43)",hl={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"},mn={padding:"4px 8px",border:"none",background:"none",cursor:"pointer",font:"inherit",textAlign:"left",fontSize:13,color:xl},Jo=(t,r)=>{if(t.type==="text"||t.type==="date")return!!r.getRaw(t.key);if(t.type==="date-compact"){const n=r.getRaw(t.key);return!!(n&&(n.date||n.from||n.to||n.relative||n.op==="is-empty"||n.op==="is-not-empty"))}return r.values(t.key).length>0},fl=({field:t,controls:r})=>{const[n,s]=u.useState(""),o=t.type==="dropdown"||t.type==="radio",i=t.type==="checkbox-multiple"?!1:t.searchable!==!1,l=r.values(t.key),c=i&&n.trim()?t.options.filter(d=>d.label.toLowerCase().includes(n.toLowerCase())):t.options,a=d=>{o?r.set(t.key,l.includes(d)?[]:d):r.toggle(t.key,d)};return e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:4,minWidth:200},children:[i&&e.jsx("input",{value:n,onChange:d=>{var h;s(d.target.value),(h=t.onSearch)==null||h.call(t,d.target.value)},placeholder:"Cari…",style:hl}),e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:2,maxHeight:220,overflowY:"auto"},children:[c.map(d=>{const h=l.includes(d.value);return e.jsxs("button",{type:"button",onClick:()=>a(d.value),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 8px",border:"none",background:"none",cursor:"pointer",font:"inherit",textAlign:"left",borderRadius:"var(--sa-radii-xs, 4px)"},children:[e.jsx("span",{style:{width:16,height:16,flexShrink:0,borderRadius:o?"50%":"var(--sa-radii-xs, 4px)",display:"inline-flex",alignItems:"center",justifyContent:"center",border:`1px solid ${h?zr:"var(--sa-border-subtle, #0b120e24)"}`,background:h&&!o?zr:"transparent"},children:h&&(o?e.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:zr}}):e.jsx(B.Icon,{name:"Check",size:"xs",style:{color:"#fff"}}))}),e.jsx(C.Text,{as:"span",style:{fontSize:14},children:d.label})]},d.value)}),c.length===0&&e.jsx(C.Text,{as:"span",style:{fontSize:13,color:"var(--sa-text-subtlest, #8c8f97)",padding:"6px 8px"},children:"Tak ada hasil"})]}),l.length>0&&e.jsx("button",{type:"button",onClick:()=>r.clear(t.key),style:mn,children:"Clear"})]})},ml=({field:t,controls:r})=>{const n=r.getRaw(t.key);return e.jsx(x.Box,{style:{minWidth:240},children:e.jsx(jt.StarasiaDate,{size:"sm",input:!1,clearable:!0,filter:t.mode,value:n,onChange:s=>r.setRaw(t.key,s??null),withPadding:!1})})},gl=({field:t,controls:r})=>{const n=r.getRaw(t.key),s=t.ops&&t.ops.length>0?t.ops:qo,o=t.defaultOp&&s.includes(t.defaultOp)?t.defaultOp:s[0],i=t.mode??"days",l=(n==null?void 0:n.op)??o,c=d=>r.setRaw(t.key,d),a=d=>{if(d!==l)return c(d==="is-empty"||d==="is-not-empty"?{op:d}:d==="is-relative-to-today"?{op:d,relative:(n==null?void 0:n.relative)??{direction:"past",count:1,period:"week"}}:d==="is-between"?{op:d,from:n==null?void 0:n.from,to:n==null?void 0:n.to}:{op:d,date:n==null?void 0:n.date})};return e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:280},children:[e.jsxs(x.Box,{display:"flex",direction:"row",align:"center",gap:"xs",children:[e.jsx(C.Text,{fontSize:"sm",fontWeight:"medium",color:"subtlest",children:t.label}),e.jsx(Zo,{op:l,ops:s,onChange:a})]}),e.jsx(Go,{value:n,op:l,mode:i,onChange:c}),Jo(t,r)&&e.jsx("button",{type:"button",onClick:()=>r.setRaw(t.key,null),style:mn,children:"Clear"})]})},pl=({field:t,controls:r})=>{const n=r.getRaw(t.key)??"",[s,o]=u.useState(n),i=we.useDebounce(s,t.debounceMs??300);return u.useEffect(()=>{const l=r.getRaw(t.key)??"";i!==l&&r.setRaw(t.key,i||null)},[i]),e.jsxs(x.Box,{style:{display:"flex",flexDirection:"column",gap:6,minWidth:220},children:[e.jsx(ht.Input,{size:"sm",fullWidth:!0,value:s,placeholder:t.placeholder??"Cari…",leftIcon:e.jsx(B.Icon,{name:"Search",width:16,height:16}),onChange:l=>o(l.target.value)}),s&&e.jsx("button",{type:"button",onClick:()=>{o(""),r.setRaw(t.key,null)},style:mn,children:"Clear"})]})},yl=({field:t,controls:r})=>t.type==="text"?e.jsx(pl,{field:t,controls:r}):t.type==="date"?e.jsx(ml,{field:t,controls:r}):t.type==="date-compact"?e.jsx(gl,{field:t,controls:r}):e.jsx(fl,{field:t,controls:r}),bl=(t,r)=>{if(!t)return{};const{fromKey:n,toKey:s,opKey:o}=r,i={};switch(t.op){case"is":case"is-before":case"is-after":case"is-on-or-before":case"is-on-or-after":return t.date&&(i[n]=new Date(t.date).toISOString()),o&&(i[o]=t.op),i;case"is-between":return t.from&&(i[n]=new Date(t.from).toISOString()),t.to&&(i[s]=new Date(t.to).toISOString()),i;case"is-relative-to-today":{if(!t.relative)return i;const{from:l,to:c}=Vo(t.relative);return i[n]=l.toISOString(),i[s]=c.toISOString(),i}case"is-empty":case"is-not-empty":return o&&(i[o]=t.op==="is-empty"?"empty":"not-empty"),i;default:return i}},$o=({children:t,borderRadius:r,height:n})=>{const s=u.useRef(null),[o,i]=u.useState("100vh");return u.useEffect(()=>{if(n)return;const l=()=>{if(s.current){const c=s.current.getBoundingClientRect().top;i(`calc(100vh - ${c}px)`)}};return l(),window.addEventListener("resize",l),()=>window.removeEventListener("resize",l)},[n]),e.jsx(x.Box,{ref:s,fullWidth:!0,borderStyle:"border-solid",borderWidth:"border",borderColor:"border-base",borderRadius:r||"rounded-xs",style:{height:n??o,display:"flex",flexDirection:"column"},children:t})},Ko=({action:t,rightContent:r,leftContent:n,headerSlot:s,advanceFilter:o,showFilter:i=!0})=>{const l=we.useMediaQuery("md"),c=i?e.jsx(Po,{...o}):null,a=()=>t?u.isValidElement(t)?t:e.jsx(x.Box,{style:{display:"flex",flexDirection:l?"row":"column",gap:"8px",width:l?"auto":"100%",textWrap:"nowrap"},children:t.map(({title:d,icon:h,buttonProps:g,onClick:m},y)=>!d&&!h?null:e.jsx(H.Button,{fullWidth:!l,iconLeft:h?e.jsx(B.Icon,{name:h}):void 0,onClick:m,...g,children:d},`action-${y}`))}):null;return e.jsx(x.Box,{style:{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",paddingLeft:"8px",paddingRight:"8px",paddingTop:"8px",paddingBottom:"8px",borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)",flexShrink:0,position:"relative",zIndex:10,flexDirection:l?"row":"column-reverse",gap:"16px"},children:s?s({filter:c}):e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flex:1,minWidth:0},children:[c,n]}),e.jsxs(x.Box,{style:{display:"flex",gap:"8px",flexDirection:"row",alignItems:"center",flexShrink:0},children:[r,a()]})]})})},jl=({totalData:t,withMarginBottom:r=!0,withMarginTop:n=!0})=>e.jsxs(x.Box,{style:{display:"flex",gap:"4px",flexDirection:"row",alignItems:"center",marginBottom:r?"16px":void 0,marginTop:n?"16px":void 0},children:[e.jsxs(Ke.Body1,{props:{color:"gray-500"},children:["Total data:"," "]}),e.jsx(Ke.Body1,{children:t||0})]}),es=({pagination:t,pageKey:r="page",perPageKey:n="perPage",defaultPerPage:s=10,showPagination:o=!0,totalData:i})=>{const{searchQueries:l,setSearchParams:c,searchParams:a}=Ze(),d=a.get(n),h=w=>{c({...l,[r]:String(w)})},g=w=>{c({...l,[n]:w,[r]:"1"})},m=(t==null?void 0:t.rangeStart)??(((t==null?void 0:t.currentPage)||0)>1?(((t==null?void 0:t.currentPage)||0)-1)*((t==null?void 0:t.perPage)||0)+1:1),y=(t==null?void 0:t.rangeEnd)??((t==null?void 0:t.totalCurrentPage)!==(t==null?void 0:t.perPage)?t==null?void 0:t.totalData:((t==null?void 0:t.currentPage)||1)*((t==null?void 0:t.totalCurrentPage)||0));return e.jsx(x.Box,{style:{display:"flex",width:"100%",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingLeft:"16px",paddingRight:"16px",paddingTop:"8px",paddingBottom:"8px",borderTop:"1px solid var(--sa-border-subtle, #0b120e24)",flexShrink:0},children:o?e.jsxs(e.Fragment,{children:[e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",gap:"8px",alignItems:"center",textWrap:"nowrap"},children:[e.jsx(C.Text,{children:"Rows Per Page: "}),e.jsx(It.Dropdown,{dropdownLists:[{label:"5",value:"5"},{label:"10",value:"10"},{label:"25",value:"25"},{label:"50",value:"50"},{label:"100",value:"100"}],onChange:w=>{g(w[0].value)},value:d?[{label:`${d} per row`,value:d}]:[{label:`${s} per row`,value:`${s}`}],defaultValue:d?[{label:`${d} per row`,value:d}]:[{label:`${s} per row`,value:`${s}`}]}),e.jsx(C.Text,{children:`${m}-${y} of ${(t==null?void 0:t.totalData)||0}`})]}),e.jsx(Ht.Pagination,{currentPage:t!=null&&t.currentPage?Number(t==null?void 0:t.currentPage):1,totalPages:t!=null&&t.totalPage?Number(t==null?void 0:t.totalPage):1,onPageChange:h})]}):e.jsx(jl,{totalData:i,withMarginBottom:!1,withMarginTop:!1})})},ts=({filter:t,columnTitle:r})=>{const[n,s]=u.useState(!1),o=u.useRef(null),i=u.useRef(null),l=u.useRef(null),[c,a]=u.useState(""),[d,h]=u.useState({top:0,left:0}),g=t.selectedValues,m=u.useMemo(()=>c?t.options.filter(v=>v.label.toLowerCase().includes(c.toLowerCase())):t.options,[t.options,c]);u.useEffect(()=>{if(n&&i.current){const v=i.current.getBoundingClientRect(),R=280,L={top:v.bottom+8};t.position==="left"||v.left+R>window.innerWidth?L.right=window.innerWidth-v.right:L.left=v.left,h(L)}},[n,t.position]),u.useEffect(()=>{n&&l.current?setTimeout(()=>{var v;return(v=l.current)==null?void 0:v.focus()},50):a("")},[n]),u.useEffect(()=>{const v=R=>{o.current&&!o.current.contains(R.target)&&i.current&&!i.current.contains(R.target)&&s(!1)};return n&&document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[n]);const y=v=>{const R=g.includes(v)?g.filter(L=>L!==v):[...g,v];t.onFilterChange(R)},w=()=>t.onFilterChange([]);return e.jsxs(x.Box,{direction:"column",style:{position:"relative"},children:[e.jsx(x.Box,{ref:i,style:{display:"flex",flexDirection:"row",alignItems:"center",cursor:"pointer"},onClick:v=>{var R;v.stopPropagation(),n||(R=t.onOpen)==null||R.call(t),s(L=>!L)},children:e.jsx(B.Icon,{name:n?"ChevronUp":"ChevronDown",size:"sm",style:{color:g.length>0?"var(--sa-color-brand-500, #1a4fa0)":"var(--sa-text-subtle, #8c8f97)"}})}),n&&e.jsxs(x.Box,{ref:o,style:{position:"fixed",top:`${d.top}px`,...d.left!==void 0?{left:`${d.left}px`}:{right:`${d.right}px`},backgroundColor:"white",borderRadius:"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(x.Box,{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingTop:"12px",paddingBottom:"12px",paddingLeft:"16px",paddingRight:"16px",borderBottom:"1px solid var(--sa-border-subtle, #0b120e24)"},children:[e.jsxs(C.Text,{fontSize:"sm",fontWeight:"semibold",color:"gray-700",children:["Filter ",r]}),g.length>0&&e.jsx(x.Box,{direction:"column",style:{cursor:"pointer"},children:e.jsx(C.Text,{fontSize:"xs",color:"primary",fontWeight:"semibold",onClick:v=>{v.stopPropagation(),w()},children:"CLEAR"})})]}),!t.hideSearch&&e.jsx(x.Box,{direction:"column",style:{paddingLeft:"16px",paddingRight:"16px",paddingTop:"8px",paddingBottom:"8px"},children:e.jsx(ht.Input,{ref:l,placeholder:`Search ${r.toLowerCase()}...`,leftIcon:e.jsx(B.Icon,{name:"Search",size:"sm"}),value:c,onChange:v=>a(v.target.value),style:{fontSize:"14px"}})}),e.jsx(x.Box,{direction:"column",className:"ts-filter-dropdown-options",style:{overflowY:"auto",maxHeight:"250px",paddingLeft:"8px",paddingRight:"8px"},children:t.isLoadingOptions?e.jsxs(x.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(B.Icon,{name:"Loading",size:"lg",style:{color:"var(--sa-background-brand, #04254f)",animation:"spin 1s linear infinite"}}),e.jsx(C.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"Loading options..."})]}):m.length>0?e.jsx(x.Box,{direction:"column",style:{gap:"2px",paddingTop:"4px",paddingBottom:"4px"},children:m.map(v=>e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",paddingTop:"8px",paddingBottom:"8px",paddingLeft:"8px",paddingRight:"8px",cursor:"pointer",borderRadius:"var(--sa-radii-md, 8px)",transition:"all 0.2s ease",backgroundColor:g.includes(v.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent"},onClick:R=>{R.stopPropagation(),y(v.value)},onMouseEnter:R=>{g.includes(v.value)||(R.currentTarget.style.backgroundColor="var(--sa-background-primary, #ffffff)"),R.currentTarget.style.transform="translateX(2px)"},onMouseLeave:R=>{R.currentTarget.style.backgroundColor=g.includes(v.value)?"var(--sa-color-brand-50, #e6edf6)":"transparent",R.currentTarget.style.transform="translateX(0)"},children:[e.jsx(xt.Checkbox,{checked:g.includes(v.value),onChange:()=>{}}),e.jsx(C.Text,{fontSize:"sm",fontWeight:g.includes(v.value)?"medium":"normal",color:g.includes(v.value)?"primary":"gray-700",children:v.label})]},v.value))}):e.jsxs(x.Box,{style:{paddingTop:"40px",paddingBottom:"40px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[e.jsx(B.Icon,{name:"Search",size:"lg",style:{color:"var(--sa-text-subtle, #8c8f97)"}}),e.jsx(C.Text,{fontSize:"sm",color:"gray-500",style:{textAlign:"center",marginTop:"8px"},children:"No results found"})]})}),g.length>0&&e.jsx(x.Box,{direction:"column",style:{paddingTop:"8px",paddingBottom:"8px",paddingLeft:"16px",paddingRight:"16px",borderTop:"1px solid var(--sa-border-subtle, #0b120e24)",backgroundColor:"var(--sa-color-brand-50, #e6edf6)",marginTop:"auto"},children:e.jsxs(x.Box,{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"4px"},children:[e.jsx(x.Box,{direction:"column",style:{backgroundColor:"var(--sa-background-brand, #04254f)",borderRadius:"var(--sa-radii-lg, 12px)",padding:"2px 8px",fontSize:"11px",fontWeight:600,color:"white"},children:g.length}),e.jsxs(C.Text,{fontSize:"xs",color:"primary",fontWeight:"medium",children:["item",g.length>1?"s":""," selected"]})]})})]})]})},vl=({direction:t})=>{const r="var(--sa-text-primary, #292a2e)",n="var(--sa-text-subtle, #8c8f97)",s=t==="asc"?r:n,o=t==="desc"?r:n,i=t==="asc"?1:.45,l=t==="desc"?1:.45;return e.jsxs("span",{style:{display:"inline-flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flexShrink:0,lineHeight:0},"aria-hidden":!0,children:[e.jsx("svg",{width:"8",height:"5",viewBox:"0 0 8 5",style:{color:s,opacity:i,marginBottom:1},children:e.jsx("path",{d:"M4 0 L8 5 L0 5 Z",fill:"currentColor"})}),e.jsx("svg",{width:"8",height:"5",viewBox:"0 0 8 5",style:{color:o,opacity:l},children:e.jsx("path",{d:"M0 0 L8 0 L4 5 Z",fill:"currentColor"})})]})},Cl=({frozen:t})=>e.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:t?"currentColor":"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),e.jsx("path",{d:t?"M7 11V7a5 5 0 0 1 10 0v4":"M7 11V7a5 5 0 0 1 9.9-1"})]}),Hr="var(--sa-background-primary, #ffffff)",no="var(--sa-background-primary-inverse, #f8f8f8)",rs=({columns:t,records:r,handleDetail:n,handleUpdate:s,handleDelete:o,isLoading:i,visibleHandleDelete:l,visibleHandleUpdate:c,visibleHandleDetail:a,showHeadBorder:d=!1,scrollParentRef:h,frozenCount:g=0,onFrozenCountChange:m,customActions:y,actionsOrder:w=["detail","update","delete","custom"],customEmptyState:v,enableColumnResize:R=!1,defaultColumnWidths:L,onColumnWidthsChange:M,defaultMinColumnWidth:b=60,sort:S,defaultSort:E,onSortChange:I,showActionDivider:D=!1})=>{const T=S!==void 0,[G,z]=u.useState(E??null),A=T?S??null:G,P=W=>{if(W.sortKey)return W.sortKey;if(typeof W.accessor=="string")return W.accessor},q=W=>{const X=P(W);if(!X)return;let U;!A||A.key!==X?U={key:X,direction:"asc"}:A.direction==="asc"?U={key:X,direction:"desc"}:U=null,T||z(U),I==null||I(U)},te=[n,s,o].filter(W=>W!==void 0).length,J=!!y,$=!!n||!!s||!!o||J,V="var(--sa-border-subtle, #0b120e24)",xe=`1px solid ${V}`,ue=`inset 1px 0 0 ${V}`,Be=`inset -1px 0 0 ${V}`,Ve=te===3?J?"178px":"140px":te===2?J?"140px":"102px":te===1?J?"112px":"74px":J?"74px":"",De=(W,X)=>{if(!X)return W;if(typeof X=="function")return X(W);if(typeof X=="string")return W[X]},[ge,pe]=u.useState(!1);u.useEffect(()=>{if(!(h!=null&&h.current))return;const W=h.current;pe(W.scrollHeight>W.clientHeight)},[r,h]);const Le=u.useRef(null),[Ne,Ae]=u.useState([]),[ie,ce]=u.useState(()=>L??{}),me=u.useRef(null);u.useLayoutEffect(()=>{if(!g||!Le.current){Ae([]);return}const W=Array.from(Le.current.querySelectorAll("thead tr th")),X=[];let U=0;W.forEach((ae,Se)=>{X[Se]=U,Se<g&&(U+=ae.offsetWidth)}),Ae(X)},[g,t,r,ie]);const je=W=>{m&&m(W<g?W:W+1)},Ee=(W,X)=>{const U=ie[W];if(U!==void 0){const ae=`${U}px`;return{width:ae,minWidth:ae,maxWidth:ae}}return X?{width:X}:{}},et=W=>R&&(W.resizable??!0),tt=(W,X)=>{W.preventDefault(),W.stopPropagation();const U=W.currentTarget.closest("th");if(!U)return;const ae=Math.round(U.getBoundingClientRect().width);me.current={colIndex:X,startX:W.clientX,startWidth:ae};const Se=document.body.style.userSelect,ye=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";const We=Ge=>{var ke;const Fe=me.current;if(!Fe)return;const mt=((ke=t[Fe.colIndex])==null?void 0:ke.minWidth)??b,dt=Math.max(mt,Fe.startWidth+(Ge.clientX-Fe.startX));ce(Te=>Te[Fe.colIndex]===dt?Te:{...Te,[Fe.colIndex]:dt})},rt=()=>{document.removeEventListener("mousemove",We),document.removeEventListener("mouseup",rt),document.body.style.userSelect=Se,document.body.style.cursor=ye,me.current=null,M&&ce(Ge=>(M(Ge),Ge))};document.addEventListener("mousemove",We),document.addEventListener("mouseup",rt)};return e.jsx("div",{ref:Le,children:e.jsxs(Z.Table,{fullWidth:!0,children:[e.jsx(Z.Thead,{style:{height:"40px",whiteSpace:"nowrap"},children:e.jsxs(Z.Tr,{children:[t.map((W,X)=>{var vt,nt;const U=g>0&&X<g,ae=Ne[X]??0,Se=et(W),We=X===t.length-1&&$&&D,rt=P(W),Ge=!!W.sortable&&!!rt,Fe=Ge&&(A==null?void 0:A.key)===rt?A.direction:null,mt=W.title||((vt=W.accessor)==null?void 0:vt.toString())||"",dt=(nt=W.headerTooltip)!=null&&nt.showIcon?e.jsx(B.Icon,{name:"InfoCircle",size:"xs",style:{flexShrink:0,color:"var(--sa-icon-subtle, #8c8f97)",opacity:.75}}):null,ke=e.jsx("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:mt}),Te=Ge?e.jsxs("button",{type:"button",onClick:()=>q(W),title:Fe==="asc"?"Sorted ascending — click to sort descending":Fe==="desc"?"Sorted descending — click to clear":"Click to sort ascending",style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:4,background:"none",border:"none",padding:0,margin:0,font:"inherit",color:"inherit",cursor:"pointer",textAlign:W.textAlign==="text-right"?"right":W.textAlign==="text-center"?"center":"left"},children:[ke,dt,e.jsx(vl,{direction:Fe})]}):e.jsxs("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:4},children:[ke,dt]});return e.jsxs(Z.Th,{style:{position:"sticky",top:0,left:U?ae:void 0,zIndex:U?4:2,paddingLeft:X===0?"12px":"",borderRight:d&&!We&&!U?xe:void 0,borderBottom:d?xe:void 0,boxShadow:d&&U?Be:void 0,backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",textAlign:W.textAlign==="text-right"?"right":W.textAlign==="text-center"?"center":"left",...Ee(X,W.width)},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4px",justifyContent:"space-between",minWidth:0},children:[W.headerTooltip?e.jsx(Me.Tooltip,{label:W.headerTooltip.content,position:"bottom",children:Te}):Te,W.filter&&e.jsx(ts,{filter:W.filter,columnTitle:W.title}),m&&e.jsx("button",{onClick:()=>je(X),title:U?"Unfreeze column":"Freeze column",style:{background:"none",border:"none",cursor:"pointer",padding:"2px",display:"flex",alignItems:"center",flexShrink:0,color:U?"var(--sa-background-brand, #04254f)":"var(--sa-text-subtle, #8c8f97)",opacity:U?1:.45,transition:"opacity 0.15s"},children:e.jsx(Cl,{frozen:U})})]}),Se&&e.jsx("div",{onMouseDown:gt=>tt(gt,X),onClick:gt=>gt.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-${X}`)}),$?e.jsx(Z.Th,{style:{backgroundColor:"var(--sa-background-primary-inverse, #f8f8f8)",position:"sticky",top:0,right:0,zIndex:3,borderBottom:d?xe:void 0,boxShadow:d&&D?ue:void 0}}):null]})}),e.jsx(Z.Tbody,{children:i?e.jsx(Z.Tr,{children:e.jsx(Z.Td,{colSpan:t.length+1,children:e.jsxs(x.Box,{direction:"column",style:{gap:"16px"},children:[e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"}),e.jsx($e.Skeleton,{variant:"list"})]})})}):!(r!=null&&r.length)&&v?e.jsx(Z.Tr,{children:e.jsx(Z.Td,{colSpan:t.length+1,children:v})}):r==null?void 0:r.map((W,X)=>e.jsxs(Z.Tr,{style:{transition:"background-color 0.3s ease",padding:0,borderBottom:X===r.length-1&&ge?void 0:"1px solid var(--sa-border-subtle, #0b120e24)"},onMouseEnter:U=>{const ae=U.currentTarget;ae.style.backgroundColor=no,Array.from(ae.querySelectorAll("td")).forEach(Se=>{Se.style.position==="sticky"&&(Se.style.backgroundColor=no)})},onMouseLeave:U=>{const ae=U.currentTarget;ae.style.backgroundColor="",Array.from(ae.querySelectorAll("td")).forEach(Se=>{Se.style.position==="sticky"&&(Se.style.backgroundColor=Hr)})},children:[t.map((U,ae)=>{const Se=U.render?U.render(W,X,r):De(W,U.accessor),ye=g>0&&ae<g,We=Ne[ae]??0,rt=ie[ae]!==void 0,Ge=ye&&ae===g-1;return e.jsx(Z.Td,{style:{position:ye?"sticky":void 0,left:ye?We:void 0,zIndex:ye?1:void 0,backgroundColor:ye?Hr:void 0,transition:ye?"background-color 0.3s ease":void 0,paddingLeft:ae===0?"12px":"",whiteSpace:"nowrap",overflow:rt?"hidden":void 0,borderLeft:U.showBorderLeft?xe:void 0,borderRight:U.showBorderRight?xe:void 0,boxShadow:Ge?Be:void 0,textAlign:U.textAlign==="text-right"?"right":U.textAlign==="text-center"?"center":"left",...Ee(ae,U.width)},children:typeof Se=="string"?e.jsx(C.Text,{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textAlign:U.textAlign==="text-right"?"right":U.textAlign==="text-center"?"center":"left"},children:Se}):Se},`row-${X}-col-${ae}`)}),$?e.jsx(Z.Td,{style:{width:Ve,position:"sticky",right:0,zIndex:1,backgroundColor:Hr,boxShadow:D?ue:void 0,transition:"background-color 0.3s ease"},children:e.jsx(de.Flex,{direction:"row",align:"center",justify:"center",gap:"sm",children:w.map(U=>{const ae=X===r.length-1?"top":"bottom";return U==="detail"&&n&&(a==null?void 0:a(W))!==!1?e.jsx(Me.Tooltip,{label:"Detail",position:ae,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>n(W.id,W),iconLeft:e.jsx(B.Icon,{name:"DocumentClean",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"detail"):U==="update"&&s&&(c==null?void 0:c(W))!==!1?e.jsx(Me.Tooltip,{label:"Update",position:ae,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>s(W),iconLeft:e.jsx(B.Icon,{name:"Edit1",size:"sm",style:{color:"var(--sa-text-subtle, #8c8f97)"}})})},"update"):U==="delete"&&o&&(l==null?void 0:l(W))!==!1?e.jsx(Me.Tooltip,{label:"Delete",position:ae,children:e.jsx(H.Button,{size:"xs",variant:"outline",tone:"neutral",onClick:()=>o(W.id,W),iconLeft:e.jsx(B.Icon,{name:"Trash1",size:"sm",style:{color:"var(--sa-color-error-600, #c9184a)"}})})},"delete"):U==="custom"?e.jsx(u.Fragment,{children:y==null?void 0:y(W)},"custom"):null})})}):null]},`${W}${X}`))})]})})};let oo=!1;const wl=({wrapperProps:t,dataTableProps:r,headerProps:n,footerProps:s})=>{var g;process.env.NODE_ENV!=="production"&&!oo&&(oo=!0,console.warn("[@starasia/admin] `TableSection` deprecated — pakai `<FilterBar>` + `<TableLayout>`. Lihat skill `starasia-list-page-pattern`. Akan dihapus di salah satu major berikutnya."));const o=u.useRef(null),[i,l]=u.useState((r==null?void 0:r.defaultFrozenCount)??0),c=(n==null?void 0:n.show)??!0,a=u.useRef(null),d=(g=r==null?void 0:r.pagination)==null?void 0:g.totalData;typeof d=="number"&&(a.current=d);const h=(s==null?void 0:s.showFooter)??(d===void 0?a.current!==0:d!==0);return e.jsxs($o,{...t,children:[c&&e.jsx(Ko,{...n}),e.jsx(x.Box,{direction:"column",ref:o,style:{flex:1,overflowY:"auto",overflowX:"auto"},children:r?e.jsx(rs,{...r,scrollParentRef:o,frozenCount:r!=null&&r.enableFreezeColumns?i:0,onFrozenCountChange:r!=null&&r.enableFreezeColumns?l:void 0}):null}),h&&e.jsx(es,{pagination:r==null?void 0:r.pagination,pageKey:r==null?void 0:r.pageKey,perPageKey:r==null?void 0:r.perPageKey,defaultPerPage:r==null?void 0:r.defaultPerPage,showPagination:r==null?void 0:r.showPagination,totalData:s==null?void 0:s.totalData})]})};function Dl(t){return u.memo(t)}const Sl=Dl(wl),ns="(any-pointer: coarse)",kl=t=>{if(typeof window>"u"||!window.matchMedia)return()=>{};const r=window.matchMedia(ns);return r.addEventListener("change",t),()=>r.removeEventListener("change",t)},Bl=()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(ns).matches,El=()=>!1;function os(){return u.useSyncExternalStore(kl,Bl,El)}const so=200,Kt="1px solid var(--sa-border-subtle, #0b120e24)",Fl=({sortDir:t,frozen:r,filterActive:n})=>t==="asc"?e.jsx(B.Icon,{name:"ChevronSmallUp"}):t==="desc"?e.jsx(B.Icon,{name:"ChevronSmallDown"}):r?e.jsx(B.Icon,{name:"LockOn",size:"xs"}):e.jsx(B.Icon,{name:"Filter",size:"xs",style:n?{color:"var(--sa-text-brand, #031f43)"}:void 0}),er=({icon:t,label:r,active:n,danger:s,onClick:o})=>{const i=s?"var(--sa-text-error, #a4133c)":"var(--sa-text-primary, #292a2e)";return e.jsxs("button",{type:"button",onClick:o,style:{display:"flex",alignItems:"center",gap:12,width:"100%",padding:"8px 12px",background:n?"var(--sa-background-brand-subtlest, #e6edf6)":"none",border:"none",cursor:"pointer",font:"inherit",color:i,textAlign:"left"},onMouseEnter:l=>{n||(l.currentTarget.style.background="var(--sa-background-primary-inverse, #f8f8f8)")},onMouseLeave:l=>{l.currentTarget.style.background=n?"var(--sa-background-brand-subtlest, #e6edf6)":"none"},children:[e.jsx(B.Icon,{name:t,size:"sm",style:{color:i,flexShrink:0}}),e.jsx(C.Text,{as:"span",style:{color:i},children:r})]})},Il=t=>{let r=(t==null?void 0:t.parentElement)??null;for(;r;){const n=getComputedStyle(r).overflowX;if((n==="auto"||n==="scroll")&&r.scrollWidth>r.clientWidth)return r;r=r.parentElement}return null},ss=({active:t,canSort:r,canHide:n,sortDir:s,frozen:o,onSort:i,onClearSort:l,onToggleFreeze:c,onHide:a,filterSlot:d,filterActive:h})=>{const[g,m]=u.useState(!1),y=u.useRef(null),w=u.useRef(null),[v,R]=u.useState({top:0,left:0}),L=u.useCallback(()=>{var A;const b=y.current;if(!b)return;const S=b.getBoundingClientRect(),E=b.closest(".sa-tl-scroll")??Il(b),I=E==null?void 0:E.getBoundingClientRect();if(I&&(S.left<I.left||S.left>I.right)){m(!1);return}const D=Math.min(window.innerWidth-8,I?I.right:window.innerWidth),T=((A=w.current)==null?void 0:A.offsetWidth)||so,G=I?I.left:8,z=Math.max(G,Math.min(S.left,D-T));R({top:S.bottom+6,left:z})},[]);u.useEffect(()=>{if(!g)return;L();const b=()=>L();return window.addEventListener("scroll",b,!0),window.addEventListener("resize",b),()=>{window.removeEventListener("scroll",b,!0),window.removeEventListener("resize",b)}},[g,L]),u.useEffect(()=>{if(!g)return;const b=S=>{w.current&&!w.current.contains(S.target)&&y.current&&!y.current.contains(S.target)&&m(!1)};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[g]);const M=b=>{b(),m(!1)};return e.jsxs(e.Fragment,{children:[e.jsx("button",{ref:y,type:"button",className:"sa-tl-menu-trigger","data-active":t||g?"true":"false",onClick:b=>{b.stopPropagation(),m(S=>!S)},title:"Column options",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:"var(--sa-radii-sm, 6px)",border:Kt,background:"var(--sa-background-primary, #ffffff)",cursor:"pointer",color:"var(--sa-text-subtle, #8c8f97)",flexShrink:0},children:e.jsx(Fl,{sortDir:s,frozen:o,filterActive:h})}),g&&e.jsxs(x.Box,{ref:w,onClick:b=>b.stopPropagation(),style:{position:"fixed",top:`${v.top}px`,...v.left!==void 0?{left:`${v.left}px`}:{right:`${v.right}px`},minWidth:so,backgroundColor:"var(--sa-background-primary, #ffffff)",border:Kt,borderRadius:"var(--sa-radii-sm, 6px)",boxShadow:"var(--sa-shadow-xl, 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a)",zIndex:9999,padding:"4px",display:"flex",flexDirection:"column"},children:[d!=null&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{padding:"6px 12px 2px"},children:e.jsx(C.Text,{as:"span",style:{fontSize:12,fontWeight:500,color:"var(--sa-text-subtlest, #8c8f97)"},children:"Filter"})}),e.jsx("div",{style:{padding:"2px 8px 4px"},children:d}),e.jsx("div",{style:{borderTop:Kt,margin:"4px 0"}})]}),r&&e.jsxs(e.Fragment,{children:[e.jsx(er,{icon:"ChevronUp",label:"Ascending",active:s==="asc",onClick:()=>M(()=>s==="asc"?l():i("asc"))}),e.jsx(er,{icon:"ChevronDown",label:"Descending",active:s==="desc",onClick:()=>M(()=>s==="desc"?l():i("desc"))}),e.jsx("div",{style:{borderTop:Kt,margin:"4px 0"}})]}),e.jsx(er,{icon:"Pin1",label:o?"Unfreeze":"Freeze",active:o,onClick:()=>M(c)}),n&&e.jsx(er,{icon:"EyeClosed",label:"Hide column",danger:!0,onClick:()=>M(a)})]})]})},Ml=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Ll={background:"var(--sa-background-warning-subtlest, #fef2e6)",color:"inherit",padding:0,borderRadius:"min(2px, var(--sa-radii-xs, 4px))"},is=({text:t,query:r,markStyle:n})=>{const s=r==null?void 0:r.trim();if(!s||!t)return e.jsx(e.Fragment,{children:t});const o=s.split(/\s+/).filter(Boolean);if(!o.length)return e.jsx(e.Fragment,{children:t});const i=new Set(o.map(a=>a.toLowerCase())),l=new RegExp(`(${o.map(Ml).join("|")})`,"gi"),c=t.split(l);return e.jsx(e.Fragment,{children:c.map((a,d)=>a&&i.has(a.toLowerCase())?e.jsx("mark",{style:{...Ll,...n},children:a},d):e.jsx(u.Fragment,{children:a},d))})},Ot="1px solid var(--sa-border-subtle, #0b120e24)",Tl="var(--sa-text-subtle, #8c8f97)",Bt="var(--sa-background-neutral, #f0f1f2)",io="2px 0 4px -2px var(--sa-border-subtle, #0b120e24)",At=40,Pr=5,Rl=28,Vr=4,tr=16,Nr="var(--sa-background-brand-subtlest)",rr={display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},lo="sa-table-layout-styles",Ol=()=>{if(typeof document>"u"||document.getElementById(lo))return;const t=document.createElement("style");t.id=lo,t.textContent=`
|
|
2
2
|
.sa-table-layout tbody td {
|
|
3
3
|
transition: background-color 0.15s ease;
|
|
4
4
|
background-color: var(--sa-tl-bg, transparent);
|