@skdx/react 0.32.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/index.d.cts +1 -1
  2. package/dist/index.d.ts +1 -1
  3. package/dist/primitives/table.cjs +1 -1
  4. package/dist/primitives/table.js +1 -1
  5. package/dist/table/Table.cjs +1 -1
  6. package/dist/table/Table.d.cts +5 -5
  7. package/dist/table/Table.d.ts +5 -5
  8. package/dist/table/Table.js +1 -1
  9. package/dist/table/TableAnatomy.d.cts +6 -1
  10. package/dist/table/TableAnatomy.d.ts +6 -1
  11. package/dist/table/TableCell.d.cts +1 -1
  12. package/dist/table/TableCell.d.ts +1 -1
  13. package/dist/table/TableColumnPinTrigger.d.cts +17 -0
  14. package/dist/table/TableColumnPinTrigger.d.ts +17 -0
  15. package/dist/table/TableColumnReorderTrigger.d.cts +17 -0
  16. package/dist/table/TableColumnReorderTrigger.d.ts +17 -0
  17. package/dist/table/TableGroupRow.d.cts +14 -0
  18. package/dist/table/TableGroupRow.d.ts +14 -0
  19. package/dist/table/TableHeaderCell.d.cts +1 -1
  20. package/dist/table/TableHeaderCell.d.ts +1 -1
  21. package/dist/table/TableRow.d.cts +1 -1
  22. package/dist/table/TableRow.d.ts +1 -1
  23. package/dist/table/TableTreeTrigger.d.cts +17 -0
  24. package/dist/table/TableTreeTrigger.d.ts +17 -0
  25. package/dist/table/index.d.cts +1 -1
  26. package/dist/table/index.d.ts +1 -1
  27. package/dist/table/primitives.d.cts +6 -2
  28. package/dist/table/primitives.d.ts +6 -2
  29. package/dist/table/types.d.cts +206 -0
  30. package/dist/table/types.d.ts +206 -0
  31. package/dist/table/useColumnOrder.d.cts +12 -0
  32. package/dist/table/useColumnOrder.d.ts +12 -0
  33. package/dist/table/useIdSet.d.cts +2 -0
  34. package/dist/table/useIdSet.d.ts +2 -0
  35. package/dist/table/useTableSelection.d.cts +13 -0
  36. package/dist/table/useTableSelection.d.ts +13 -0
  37. package/dist/table/useTableSort.d.cts +5 -0
  38. package/dist/table/useTableSort.d.ts +5 -0
  39. package/package.json +5 -5
package/dist/index.d.cts CHANGED
@@ -71,7 +71,7 @@ export { Toolbar, type ToolbarProps, type ToolbarItem } from './toolbar/index.cj
71
71
  export { NavigationMenu, type NavigationMenuProps, type NavigationMenuItem, } from './navigation-menu/index.cjs';
72
72
  export { Breadcrumb, type BreadcrumbProps, type BreadcrumbItem } from './breadcrumb/index.cjs';
73
73
  export { Pagination, type PaginationLabels, type PaginationProps } from './pagination/index.cjs';
74
- export { Table, TableRow, TableCell, type TableColumn, type TableColumnWidths, type TableContextValue, type TableProps, type TableRowProps, type TableCellProps, type TableSort, type TableSortState, type TableFilterState, type SortDirection, type TableSelectionMode, } from './table/index.cjs';
74
+ export { Table, TableRow, TableCell, type TableColumn, type TableColumnWidths, type TableColumnPins, type TableContextValue, type TableProps, type TableRowProps, type TableCellProps, type TableSort, type TableSortState, type TableFilterState, type SortDirection, type TableSelectionMode, } from './table/index.cjs';
75
75
  export { Tree, type TreeNode, type TreeProps } from './tree/index.cjs';
76
76
  export { Stepper, type StepStatus, type StepperOrientation, type StepperNavigationMode, type StepperProps, type StepperStep, } from './stepper/index.cjs';
77
77
  export { Timeline, type TimelineProps, type TimelineItem } from './timeline/index.cjs';
package/dist/index.d.ts CHANGED
@@ -71,7 +71,7 @@ export { Toolbar, type ToolbarProps, type ToolbarItem } from './toolbar/index.js
71
71
  export { NavigationMenu, type NavigationMenuProps, type NavigationMenuItem, } from './navigation-menu/index.js';
72
72
  export { Breadcrumb, type BreadcrumbProps, type BreadcrumbItem } from './breadcrumb/index.js';
73
73
  export { Pagination, type PaginationLabels, type PaginationProps } from './pagination/index.js';
74
- export { Table, TableRow, TableCell, type TableColumn, type TableColumnWidths, type TableContextValue, type TableProps, type TableRowProps, type TableCellProps, type TableSort, type TableSortState, type TableFilterState, type SortDirection, type TableSelectionMode, } from './table/index.js';
74
+ export { Table, TableRow, TableCell, type TableColumn, type TableColumnWidths, type TableColumnPins, type TableContextValue, type TableProps, type TableRowProps, type TableCellProps, type TableSort, type TableSortState, type TableFilterState, type SortDirection, type TableSelectionMode, } from './table/index.js';
75
75
  export { Tree, type TreeNode, type TreeProps } from './tree/index.js';
76
76
  export { Stepper, type StepStatus, type StepperOrientation, type StepperNavigationMode, type StepperProps, type StepperStep, } from './stepper/index.js';
77
77
  export { Timeline, type TimelineProps, type TimelineItem } from './timeline/index.js';
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var b=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var E=(o,e)=>{for(var a in e)b(o,a,{get:e[a],enumerable:!0})},h=(o,e,a,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of w(e))!y.call(o,l)&&l!==a&&b(o,l,{get:()=>e[l],enumerable:!(p=H(e,l))||p.enumerable});return o};var F=o=>h(b({},"__esModule",{value:!0}),o);var k={};E(k,{TableBody:()=>x.TableBody,TableCaption:()=>f.TableCaption,TableCell:()=>n.TableCell,TableColumnHeaderFilterInput:()=>c.TableColumnHeaderFilterInput,TableColumnHeaderSortTrigger:()=>P.TableColumnHeaderSortTrigger,TableColumnResizeTrigger:()=>R.TableColumnResizeTrigger,TableEmpty:()=>S.TableEmpty,TableExpandTrigger:()=>i.TableExpandTrigger,TableExpandedRow:()=>C.TableExpandedRow,TableFooter:()=>m.TableFooter,TableHeader:()=>T.TableHeader,TableHeaderCell:()=>s.TableHeaderCell,TableRoot:()=>r.TableRoot,TableRow:()=>d.TableRow,TableRowSelectCheckbox:()=>g.TableRowSelectCheckbox,TableSelectAllCheckbox:()=>t.TableSelectAllCheckbox,TableSortIndicator:()=>u.TableSortIndicator,defaultGetSortLabel:()=>r.defaultGetSortLabel,defaultSelectAllLabel:()=>t.defaultSelectAllLabel,useTableContext:()=>r.useTableContext});module.exports=F(k);var r=require("../table/Table.cjs"),T=require("../table/Table.cjs"),x=require("../table/Table.cjs"),m=require("../table/Table.cjs"),d=require("../table/Table.cjs"),s=require("../table/Table.cjs"),n=require("../table/Table.cjs"),f=require("../table/Table.cjs"),i=require("../table/Table.cjs"),C=require("../table/Table.cjs"),S=require("../table/Table.cjs"),P=require("../table/Table.cjs"),c=require("../table/Table.cjs"),u=require("../table/Table.cjs"),t=require("../table/Table.cjs"),g=require("../table/Table.cjs"),R=require("../table/Table.cjs");0&&(module.exports={TableBody,TableCaption,TableCell,TableColumnHeaderFilterInput,TableColumnHeaderSortTrigger,TableColumnResizeTrigger,TableEmpty,TableExpandTrigger,TableExpandedRow,TableFooter,TableHeader,TableHeaderCell,TableRoot,TableRow,TableRowSelectCheckbox,TableSelectAllCheckbox,TableSortIndicator,defaultGetSortLabel,defaultSelectAllLabel,useTableContext});
2
+ "use strict";var T=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var A=(r,e)=>{for(var a in e)T(r,a,{get:e[a],enumerable:!0})},G=(r,e,a,b)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of F(e))!k.call(r,l)&&l!==a&&T(r,l,{get:()=>e[l],enumerable:!(b=h(e,l))||b.enumerable});return r};var I=r=>G(T({},"__esModule",{value:!0}),r);var L={};A(L,{TableBody:()=>m.TableBody,TableCaption:()=>d.TableCaption,TableCell:()=>s.TableCell,TableColumnHeaderFilterInput:()=>u.TableColumnHeaderFilterInput,TableColumnHeaderSortTrigger:()=>P.TableColumnHeaderSortTrigger,TableColumnPinTrigger:()=>H.TableColumnPinTrigger,TableColumnReorderTrigger:()=>w.TableColumnReorderTrigger,TableColumnResizeTrigger:()=>R.TableColumnResizeTrigger,TableEmpty:()=>C.TableEmpty,TableExpandTrigger:()=>f.TableExpandTrigger,TableExpandedRow:()=>g.TableExpandedRow,TableFooter:()=>x.TableFooter,TableGroupRow:()=>y.TableGroupRow,TableHeader:()=>p.TableHeader,TableHeaderCell:()=>i.TableHeaderCell,TableRoot:()=>o.TableRoot,TableRow:()=>n.TableRow,TableRowSelectCheckbox:()=>c.TableRowSelectCheckbox,TableSelectAllCheckbox:()=>t.TableSelectAllCheckbox,TableSortIndicator:()=>S.TableSortIndicator,TableTreeTrigger:()=>E.TableTreeTrigger,defaultGetMoveLabel:()=>o.defaultGetMoveLabel,defaultGetSortLabel:()=>o.defaultGetSortLabel,defaultSelectAllLabel:()=>t.defaultSelectAllLabel,useTableContext:()=>o.useTableContext});module.exports=I(L);var o=require("../table/Table.cjs"),p=require("../table/Table.cjs"),m=require("../table/Table.cjs"),x=require("../table/Table.cjs"),n=require("../table/Table.cjs"),i=require("../table/Table.cjs"),s=require("../table/Table.cjs"),d=require("../table/Table.cjs"),f=require("../table/Table.cjs"),g=require("../table/Table.cjs"),C=require("../table/Table.cjs"),P=require("../table/Table.cjs"),u=require("../table/Table.cjs"),S=require("../table/Table.cjs"),t=require("../table/Table.cjs"),c=require("../table/Table.cjs"),R=require("../table/Table.cjs"),w=require("../table/Table.cjs"),H=require("../table/Table.cjs"),y=require("../table/Table.cjs"),E=require("../table/Table.cjs");0&&(module.exports={TableBody,TableCaption,TableCell,TableColumnHeaderFilterInput,TableColumnHeaderSortTrigger,TableColumnPinTrigger,TableColumnReorderTrigger,TableColumnResizeTrigger,TableEmpty,TableExpandTrigger,TableExpandedRow,TableFooter,TableGroupRow,TableHeader,TableHeaderCell,TableRoot,TableRow,TableRowSelectCheckbox,TableSelectAllCheckbox,TableSortIndicator,TableTreeTrigger,defaultGetMoveLabel,defaultGetSortLabel,defaultSelectAllLabel,useTableContext});
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{TableRoot as r,useTableContext as l,defaultGetSortLabel as a}from"../table/Table.js";import{TableHeader as b}from"../table/Table.js";import{TableBody as T}from"../table/Table.js";import{TableFooter as m}from"../table/Table.js";import{TableRow as s}from"../table/Table.js";import{TableHeaderCell as f}from"../table/Table.js";import{TableCell as C}from"../table/Table.js";import{TableCaption as P}from"../table/Table.js";import{TableExpandTrigger as u}from"../table/Table.js";import{TableExpandedRow as R}from"../table/Table.js";import{TableEmpty as w}from"../table/Table.js";import{TableColumnHeaderSortTrigger as E}from"../table/Table.js";import{TableColumnHeaderFilterInput as F}from"../table/Table.js";import{TableSortIndicator as A}from"../table/Table.js";import{TableSelectAllCheckbox as z,defaultSelectAllLabel as B}from"../table/Table.js";import{TableRowSelectCheckbox as D}from"../table/Table.js";import{TableColumnResizeTrigger as M}from"../table/Table.js";export{T as TableBody,P as TableCaption,C as TableCell,F as TableColumnHeaderFilterInput,E as TableColumnHeaderSortTrigger,M as TableColumnResizeTrigger,w as TableEmpty,u as TableExpandTrigger,R as TableExpandedRow,m as TableFooter,b as TableHeader,f as TableHeaderCell,r as TableRoot,s as TableRow,D as TableRowSelectCheckbox,z as TableSelectAllCheckbox,A as TableSortIndicator,a as defaultGetSortLabel,B as defaultSelectAllLabel,l as useTableContext};
2
+ import{TableRoot as r,useTableContext as l,defaultGetSortLabel as a,defaultGetMoveLabel as t}from"../table/Table.js";import{TableHeader as b}from"../table/Table.js";import{TableBody as m}from"../table/Table.js";import{TableFooter as n}from"../table/Table.js";import{TableRow as s}from"../table/Table.js";import{TableHeaderCell as f}from"../table/Table.js";import{TableCell as C}from"../table/Table.js";import{TableCaption as u}from"../table/Table.js";import{TableExpandTrigger as c}from"../table/Table.js";import{TableExpandedRow as w}from"../table/Table.js";import{TableEmpty as y}from"../table/Table.js";import{TableColumnHeaderSortTrigger as h}from"../table/Table.js";import{TableColumnHeaderFilterInput as k}from"../table/Table.js";import{TableSortIndicator as G}from"../table/Table.js";import{TableSelectAllCheckbox as L,defaultSelectAllLabel as z}from"../table/Table.js";import{TableRowSelectCheckbox as M}from"../table/Table.js";import{TableColumnResizeTrigger as D}from"../table/Table.js";import{TableColumnReorderTrigger as W}from"../table/Table.js";import{TableColumnPinTrigger as q}from"../table/Table.js";import{TableGroupRow as K}from"../table/Table.js";import{TableTreeTrigger as O}from"../table/Table.js";export{m as TableBody,u as TableCaption,C as TableCell,k as TableColumnHeaderFilterInput,h as TableColumnHeaderSortTrigger,q as TableColumnPinTrigger,W as TableColumnReorderTrigger,D as TableColumnResizeTrigger,y as TableEmpty,c as TableExpandTrigger,w as TableExpandedRow,n as TableFooter,K as TableGroupRow,b as TableHeader,f as TableHeaderCell,r as TableRoot,s as TableRow,M as TableRowSelectCheckbox,L as TableSelectAllCheckbox,G as TableSortIndicator,O as TableTreeTrigger,t as defaultGetMoveLabel,a as defaultGetSortLabel,z as defaultSelectAllLabel,l as useTableContext};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var br=Object.create;var ae=Object.defineProperty;var Tr=Object.getOwnPropertyDescriptor;var Rr=Object.getOwnPropertyNames;var Cr=Object.getPrototypeOf,gr=Object.prototype.hasOwnProperty;var xr=(e,t)=>{for(var r in t)ae(e,r,{get:t[r],enumerable:!0})},Xe=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Rr(t))!gr.call(e,a)&&a!==r&&ae(e,a,{get:()=>t[a],enumerable:!(o=Tr(t,a))||o.enumerable});return e};var G=(e,t,r)=>(r=e!=null?br(Cr(e)):{},Xe(t||!e||!e.__esModule?ae(r,"default",{value:e,enumerable:!0}):r,e)),yr=e=>Xe(ae({},"__esModule",{value:!0}),e);var _r={};xr(_r,{Table:()=>De,TableBody:()=>ne,TableCaption:()=>le,TableCell:()=>_,TableColumnHeaderFilterInput:()=>q,TableColumnHeaderSortTrigger:()=>Z,TableColumnResizeTrigger:()=>Te,TableEmpty:()=>ie,TableExpandTrigger:()=>me,TableExpandedRow:()=>se,TableFooter:()=>qt,TableHeader:()=>fe,TableHeaderCell:()=>X,TableHeaderCellProvider:()=>We,TableProvider:()=>Yt,TableRoot:()=>Ie,TableRow:()=>U,TableRowSelectCheckbox:()=>Ce,TableSelectAllCheckbox:()=>ge,TableSortIndicator:()=>er,defaultGetSortLabel:()=>Bt,defaultSelectAllLabel:()=>Ht,tableDetailRowId:()=>J,useTableContext:()=>c,useTableHeaderCellContext:()=>z});module.exports=yr(_r);var m=G(require("react"),1),Kt=require("../utils/appearance.cjs"),$t=require("../utils/composeRefs.cjs"),Le=require("../utils/createContext.cjs"),_t=require("../utils/liveAnnouncer.cjs"),Ot=require("../utils/part.cjs"),Vt=require("../utils/primitive.cjs"),Xt=require("../utils/recipeAxis.cjs"),Ut=require("../utils/useCallbackRef.cjs"),j=require("../utils/useControllableState.cjs");var ye=G(require("react"),1);var Ue=require("../utils/part.cjs"),Be=require("../utils/primitive.cjs"),Ye=require("react/jsx-runtime"),ne=({ref:e,...t})=>(0,Ye.jsx)(Be.Primitive.tbody,{...t,...(0,Ue.skdxPart)("table","body",t.className),ref:e});ne.displayName="TableBody";var Ge=require("../utils/part.cjs"),Je=require("../utils/primitive.cjs"),qe=require("react/jsx-runtime"),le=({ref:e,...t})=>(0,qe.jsx)(Je.Primitive.caption,{...t,...(0,Ge.skdxPart)("table","caption",t.className),ref:e});le.displayName="TableCaption";var Ze=require("../utils/part.cjs"),Qe=require("../utils/primitive.cjs"),je=require("react/jsx-runtime"),_=({ref:e,...t})=>(0,je.jsx)(Qe.Primitive.td,{...t,...(0,Ze.skdxPart)("table","cell",t.className),ref:e});_.displayName="TableCell";var et=require("../utils/part.cjs"),tt=require("../utils/primitive.cjs");var Ee=require("react/jsx-runtime"),ie=({colSpan:e,children:t,ref:r,...o})=>{let a=c("TableEmpty");return(0,Ee.jsx)(tt.Primitive.tr,{"data-state":"empty","data-skdx-table-empty":"",...o,...(0,et.skdxPart)("table","empty",o.className),ref:r,children:o.asChild?t:(0,Ee.jsx)("td",{colSpan:e??a.headerCellCount,children:t})})};ie.displayName="TableEmpty";var rt=require("../utils/part.cjs"),ot=require("../utils/primitive.cjs");var He=require("react/jsx-runtime"),se=({rowId:e,colSpan:t,children:r,ref:o,...a})=>{let n=c("TableExpandedRow"),l=n.isRowExpanded(e);return(0,He.jsx)(ot.Primitive.tr,{id:J(n.tableId,e),"data-state":l?"expanded":"collapsed","data-skdx-table-detail-row":"",hidden:!l,...a,...(0,rt.skdxPart)("table","expanded-row",a.className),ref:o,children:a.asChild?r:(0,He.jsx)("td",{colSpan:t??n.headerCellCount,children:r})})};se.displayName="TableExpandedRow";var at=require("../utils/Glyph.cjs"),nt=require("../utils/part.cjs"),ce=require("../utils/primitive.cjs");var de=require("react/jsx-runtime"),Sr=()=>(0,de.jsx)(at.Glyph,{name:"chevron-right"}),me=({rowId:e,ref:t,...r})=>{let o=c("TableExpandTrigger"),a=o.isRowExpanded(e);return(0,de.jsx)(ce.Primitive.button,{type:"button","aria-expanded":a,"aria-controls":J(o.tableId,e),"data-state":a?"expanded":"collapsed","data-skdx-table-expand-trigger":"",...r,...(0,nt.skdxPart)("table","expand-trigger",r.className),ref:t,onClick:(0,ce.composeEventHandlers)(r.onClick,n=>{n.stopPropagation(),o.toggleRowExpanded(e)}),children:r.children??(0,de.jsx)(Sr,{})})};me.displayName="TableExpandTrigger";var lt=require("../utils/part.cjs"),it=require("../utils/primitive.cjs"),st=require("react/jsx-runtime"),fe=({ref:e,...t})=>(0,st.jsx)(it.Primitive.thead,{...t,...(0,lt.skdxPart)("table","header",t.className),ref:e});fe.displayName="TableHeader";var F=G(require("react"),1),Rt=require("../utils/part.cjs"),Ct=require("../utils/primitive.cjs");var dt=require("../utils/part.cjs"),ue=require("../utils/primitive.cjs");var ct=require("react/jsx-runtime"),q=({columnKey:e,ref:t,...r})=>{let o=c("TableColumnHeaderFilterInput"),a=z("TableColumnHeaderFilterInput"),n=e??(a.filterable?a.columnKey:void 0);if(n===void 0)return null;let l=o.filterMap[n]??"";return(0,ct.jsx)(ue.Primitive.input,{type:"search","aria-label":a.filterLabel??`Filter ${n}`,"data-skdx-table-filter-input":"","data-filtered":l===""?void 0:"",...r,value:l,...(0,dt.skdxPart)("table","column-header-filter-input",r.className),ref:t,onChange:(0,ue.composeEventHandlers)(r.onChange,f=>{o.setColumnFilter(n,f.currentTarget.value)})})};q.displayName="TableColumnHeaderFilterInput";var mt=require("../utils/part.cjs"),pe=require("../utils/primitive.cjs");var ft=require("react/jsx-runtime"),Z=({columnKey:e,ref:t,...r})=>{let o=c("TableColumnHeaderSortTrigger"),a=z("TableColumnHeaderSortTrigger"),n=e??(a.sortable?a.columnKey:void 0);if(n===void 0)return null;let l=o.sortList.findIndex(u=>u.columnKey===n),f=o.sortList[l]?.direction;return(0,ft.jsx)(pe.Primitive.button,{type:"button","data-skdx-table-sort-trigger":"","data-sort-direction":f,"data-sort-index":o.multiSort&&l!==-1?l:void 0,...r,...(0,mt.skdxPart)("table","column-header-sort-trigger",r.className),ref:t,onClick:(0,pe.composeEventHandlers)(r.onClick,u=>{o.toggleSort(n,u.currentTarget.textContent?.trim()||n)})})};Z.displayName="TableColumnHeaderSortTrigger";var M=G(require("react"),1),ut=require("../utils/clamp.cjs"),pt=require("../utils/composeRefs.cjs"),V=require("../utils/direction.cjs"),bt=require("../utils/part.cjs"),v=require("../utils/primitive.cjs"),be=require("../utils/useCallbackRef.cjs");var Tt=require("react/jsx-runtime"),hr=40,Pr=1e3,kr=8,wr=new Set(["ArrowLeft","ArrowRight","Home","End"]),Te=({columnKey:e,minWidth:t,maxWidth:r,step:o,label:a,ref:n,...l})=>{let f=c("TableColumnResizeTrigger"),u=z("TableColumnResizeTrigger"),S=(0,V.useDirection)(),R=M.useRef(null),L=(0,pt.useComposedRefs)(n,R),h=M.useRef(null),[P,k]=M.useState(!1),C=e??u.columnKey,x=t??u.minWidth??hr,I=r??u.maxWidth??Pr,d=o??u.resizeStep??kr,N=C===void 0?void 0:f.columnWidths[C],y=M.useRef(!1),w=(0,be.useCallbackRef)(s=>{if(C===void 0)return;let T=(0,ut.clamp)(Math.round(s),x,I);T!==f.columnWidths[C]&&(y.current=!0),f.setColumnWidth(C,T)}),H=(0,be.useCallbackRef)(()=>{y.current&&(y.current=!1,f.commitColumnWidths())}),K=()=>N!==void 0?N:(R.current?.closest("th")?.getBoundingClientRect().width??0)||x,A=(0,be.useCallbackRef)(()=>{let s=h.current;if(!s)return null;h.current=null,k(!1);let T=R.current;return T?.hasPointerCapture?.(s.pointerId)&&T.releasePointerCapture(s.pointerId),s});M.useEffect(()=>{if(!P)return;let s=T=>{if(T.key!=="Escape")return;let O=A();O&&(w(O.startWidth),H())};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[P,A,w,H]);let B=(0,v.useComposedEventHandlers)(l.onPointerDown,s=>{s.button===0&&(s.preventDefault(),s.stopPropagation(),h.current={startX:s.clientX,startWidth:K(),pointerId:s.pointerId},k(!0),s.currentTarget.setPointerCapture?.(s.pointerId))}),Se=(0,v.useComposedEventHandlers)(l.onPointerMove,s=>{let T=h.current;if(!T)return;let he=(0,V.resolveDirection)(s.currentTarget,S)==="rtl"?T.startX-s.clientX:s.clientX-T.startX;w(T.startWidth+he)}),te=(0,v.useComposedEventHandlers)(l.onKeyDown,s=>{let T=(0,V.directionalKey)(s.key,s.currentTarget,S);if(T==="ArrowRight")w(K()+d);else if(T==="ArrowLeft")w(K()-d);else if(s.key==="Home")w(x);else if(s.key==="End")w(I);else return;s.preventDefault(),s.stopPropagation()});return C===void 0?null:(0,Tt.jsx)(v.Primitive.span,{role:"separator","aria-orientation":"vertical","aria-label":a??u.resizeLabel??"Resize column","aria-valuenow":Math.round(N??x),"aria-valuemin":x,"aria-valuemax":I,tabIndex:0,"data-skdx-table-resizer":"","data-dragging":P?"":void 0,...l,...(0,bt.skdxPart)("table","column-resize-trigger",l.className),ref:L,onPointerDown:B,onPointerMove:Se,onPointerUp:(0,v.composeEventHandlers)(l.onPointerUp,()=>{A()&&H()}),onPointerCancel:(0,v.composeEventHandlers)(l.onPointerCancel,()=>{A()&&H()}),onKeyDown:te,onKeyUp:(0,v.composeEventHandlers)(l.onKeyUp,s=>{wr.has(s.key)&&H()})})};Te.displayName="TableColumnResizeTrigger";var W=require("react/jsx-runtime");function Ne(e,t){return F.Children.toArray(e).some(r=>F.isValidElement(r)?r.type===t?!0:r.type===F.Fragment&&Ne(r.props.children,t):!1)}function Er(e,t){if(e)return t==="asc"?"ascending":t==="desc"?"descending":"none"}function Hr(e,t,r){if(e)return r.find(o=>o.columnKey===t)?.direction}function Nr(e,t){let r=e&&F.isValidElement(t)?t:null,o=r?r.props.children:t;return{asChildTarget:r,label:o}}function Wr(e,t,r){let o=e===!0&&t!==void 0;return{filterable:o,filtered:o&&(r[t]??"")!==""}}function Fr({label:e,sortable:t,filterable:r,canResize:o}){return(0,W.jsxs)(W.Fragment,{children:[t&&!Ne(e,Z)?(0,W.jsx)(Z,{children:e}):e,r&&!Ne(e,q)?(0,W.jsx)(q,{}):null,o?(0,W.jsx)(Te,{}):null]})}function Lr(e,t){return e===void 0?t:{...t,width:e,"--skdx-table-column-width":`${e}px`}}var X=({columnKey:e,sortable:t,filterable:r,filterLabel:o,resizable:a=!1,minWidth:n=40,maxWidth:l=1e3,resizeLabel:f="Resize column",resizeStep:u=8,children:S,style:R,ref:L,...h})=>{let P=c("TableHeaderCell"),{registerHeaderCell:k}=P;F.useEffect(()=>k(),[k]);let C=t===!0&&e!==void 0,x=Hr(C,e,P.sortList),I=Er(C,x),{filterable:d,filtered:N}=Wr(r,e,P.filterMap),y=a&&e!==void 0,w=e===void 0?void 0:P.columnWidths[e],{asChildTarget:H,label:K}=Nr(h.asChild,S),A=(0,W.jsx)(Fr,{label:K,sortable:C,filterable:d,canResize:y});return(0,W.jsx)(We,{columnKey:e,sortable:C,filterable:d,filterLabel:o,minWidth:n,maxWidth:l,resizeLabel:f,resizeStep:u,children:(0,W.jsx)(Ct.Primitive.th,{"aria-sort":I,"data-sort-direction":x,"data-filterable":d?"":void 0,"data-filtered":N?"":void 0,"data-resizable":y?"":void 0,style:Lr(w,R),...h,...(0,Rt.skdxPart)("table","header-cell",h.className),ref:L,children:H?F.cloneElement(H,void 0,A):A})})};X.displayName="TableHeaderCell";var gt=require("../utils/part.cjs"),Re=require("../utils/primitive.cjs");var xt=require("react/jsx-runtime"),Ir='button, a, input, [role="button"]',U=({rowId:e,ref:t,...r})=>{let o=c("TableRow"),a=e!==void 0&&o.isRowSelected(e),n=o.selectionMode!=="none"&&e!==void 0;return(0,xt.jsx)(Re.Primitive.tr,{"data-state":a?"selected":void 0,"data-row-id":n?e:void 0,...r,...(0,gt.skdxPart)("table","row",r.className),ref:t,onClick:(0,Re.composeEventHandlers)(r.onClick,l=>{!n||l.target.closest(Ir)||o.toggleRow(e,l.shiftKey)})})};U.displayName="TableRow";var yt=require("../checkbox/Checkbox.cjs"),St=require("../utils/part.cjs"),ht=require("../utils/primitive.cjs");var Pt=require("react/jsx-runtime"),Ce=({rowId:e,ref:t,...r})=>{let o=c("TableRowSelectCheckbox");return(0,Pt.jsx)(yt.Checkbox,{...r,...(0,St.skdxPart)("table","row-select-checkbox",r.className),ref:t,checked:o.isRowSelected(e),"data-skdx-table-row-select":"",onClick:(0,ht.composeEventHandlers)(r.onClick,a=>{r.readOnly||o.toggleRow(e,a.shiftKey)})})};Ce.displayName="TableRowSelectCheckbox";var kt=require("../checkbox/Checkbox.cjs"),wt=require("../utils/part.cjs"),Et=require("../utils/primitive.cjs");var Nt=require("react/jsx-runtime");function Ht(e,t){let r=`${t} ${t===1?"row":"rows"}`;return e==="page"?`Select all ${r} on this page`:`Select all ${r}`}function Dr(e,t){return e.isAllSelected(t)?!0:e.isSomeSelected(t)?"indeterminate":!1}var ge=({rowIds:e,scope:t,getSelectAllLabel:r=Ht,ref:o,...a})=>{let n=c("TableSelectAllCheckbox"),l=Dr(n,e);return(0,Nt.jsx)(kt.Checkbox,{"aria-label":r(t,e.length),...a,...(0,wt.skdxPart)("table","select-all-checkbox",a.className),ref:o,checked:l,"data-skdx-table-select-all":"","data-scope":t,onClick:(0,Et.composeEventHandlers)(a.onClick,()=>{a.readOnly||n.toggleAll(e)})})};ge.displayName="TableSelectAllCheckbox";var p=require("react/jsx-runtime");function Q(e,t){return e[t]}function xe(e){return typeof e=="string"?e:String(e)}function vr(e,t){return typeof e=="number"&&typeof t=="number"?e-t:e instanceof Date&&t instanceof Date?e.getTime()-t.getTime():xe(e??"").localeCompare(xe(t??""))}function Ar(e,t){return t.length===0?[...e]:[...e].sort((r,o)=>{for(let{columnKey:a,direction:n}of t){let l=vr(Q(r,a),Q(o,a));if(l!==0)return n==="desc"?-l:l}return 0})}function zr(e,t){let r=Object.entries(t).filter(([,o])=>o!=="");return r.length===0?[...e]:e.filter(o=>r.every(([a,n])=>xe(Q(o,a)??"").toLowerCase().includes(n.toLowerCase())))}function Mr(e,t){let r=Q(e,"id");return String(typeof r=="string"||typeof r=="number"?r:t)}function Kr(e,t,r){return t.cell?t.cell(e):r?r(e,t):xe(Q(e,t.key)??"")}function Wt({size:e,columns:t,data:r,sortable:o,selectable:a,expandable:n,renderExpanded:l,resizable:f,filterable:u,empty:S,caption:R,renderCell:L,rowId:h=Mr,getRowLabel:P}){let k=c("Table"),C=Math.max(t.length+(a?1:0)+(n?1:0),1),x=ye.useMemo(()=>Ar(zr(r,k.filterMap),k.sortList),[r,k.filterMap,k.sortList]),I=x.map((d,N)=>h(d,N));return(0,p.jsxs)(p.Fragment,{children:[R?(0,p.jsx)(le,{children:R}):null,(0,p.jsx)(fe,{children:(0,p.jsxs)(U,{children:[a?(0,p.jsx)(X,{children:(0,p.jsx)(ge,{scope:"page",rowIds:I,size:e})}):null,n?(0,p.jsx)(X,{"aria-hidden":"true"}):null,t.map(d=>(0,p.jsx)(X,{columnKey:d.key,sortable:d.sortable??o,filterable:d.filterable??u,filterLabel:`Filter ${typeof d.header=="string"?d.header:d.key}`,resizable:d.resizable??f,minWidth:d.minWidth,maxWidth:d.maxWidth,children:d.header??d.key},d.key))]})}),(0,p.jsx)(ne,{children:x.length===0&&S?(0,p.jsx)(ie,{colSpan:C,children:S}):x.map((d,N)=>{let y=I[N],w=P?.(d,N)??`row ${y}`;return(0,p.jsxs)(ye.Fragment,{children:[(0,p.jsxs)(U,{rowId:y,children:[a?(0,p.jsx)(_,{children:(0,p.jsx)(Ce,{rowId:y,"aria-label":`Select ${w}`,size:e})}):null,n?(0,p.jsx)(_,{children:(0,p.jsx)(me,{rowId:y,"aria-label":`Details for ${w}`})}):null,t.map(H=>(0,p.jsx)(_,{children:Kr(d,H,L)},H.key))]}),n?(0,p.jsx)(se,{rowId:y,colSpan:C,children:l?.(d)}):null]},y)})})]})}var Ft=G(require("react"),1),Lt=require("../utils/useControllableState.cjs"),Fe={};function It(e,t,r){let[o=Fe,a]=(0,Lt.useControllableState)({prop:e,defaultProp:t??Fe,onChange:r}),n=Ft.useCallback((l,f)=>{a((u=Fe)=>{if((u[l]??"")===f)return u;let S={...u};return f===""?delete S[l]:S[l]=f,S})},[a]);return[o,n]}var ee=require("react/jsx-runtime");function Dt(e,t){return e.size===t.size&&[...t].every(r=>e.has(r))?e:t}function vt(e){return e===void 0?new Set:e instanceof Set?e:new Set(e)}var At=[],zt={},Mt=[];function $r(e,t,r){let o=e.find(n=>n.columnKey===t),a="asc";return o!==void 0&&(a=o.direction==="asc"?"desc":null),r?a===null?e.filter(n=>n.columnKey!==t):o===void 0?[...e,{columnKey:t,direction:a}]:e.map(n=>n.columnKey===t?{columnKey:t,direction:a}:n):a===null?[]:[{columnKey:t,direction:a}]}function Bt(e,t){return t===null?`${e} not sorted`:`${e} sorted ${t==="asc"?"ascending":"descending"}`}var[Yt,c]=(0,Le.createSafeContext)("Table"),[We,z]=(0,Le.createSafeContext)("TableHeaderCell",{});function J(e,t){return`${e}-detail-${t}`}var Ie=({sort:e,defaultSort:t=Mt,onSortChange:r,filter:o,defaultFilter:a,onFilterChange:n,multiSort:l=!1,selected:f,defaultSelected:u,onSelectedChange:S,selectionMode:R="none",getSortLabel:L=Bt,expandedRowIds:h,defaultExpandedRowIds:P=At,onExpandedRowIdsChange:k,columnWidths:C,defaultColumnWidths:x,onColumnWidthsChange:I,onColumnWidthsCommit:d,rowCount:N,columnCount:y,children:w,ref:H,density:K,stickyHeader:A,...B})=>{let Se=m.useId(),te=m.useRef(null),s=(0,$t.useComposedRefs)(H,te),[T=Mt,O]=(0,j.useControllableState)({prop:e,defaultProp:t,onChange:r}),he=m.useMemo(()=>f===void 0?void 0:vt(f),[f]),[$=new Set,Y]=(0,j.useControllableState)({prop:he,defaultProp:vt(u??[]),onChange:i=>S?.([...i])}),rr=m.useCallback((i,b=i)=>{let g=$r(T,i,l);O(g);let E=g.find(D=>D.columnKey===i)?.direction??null;(0,_t.announce)(L(b,E))},[T,l,O,L]),[or,ar]=It(o,a,n),ve=m.useCallback(()=>{let i=te.current;return i?[...i.querySelectorAll(":scope > tbody > tr[data-row-id]")].map(g=>g.dataset.rowId):[]},[]),Ae=m.useRef(null),nr=m.useCallback((i,b=!1)=>{if(R==="none")return;let g=Ae.current;if(b&&R==="multiple"&&g!==null&&g!==i){let E=ve(),D=E.indexOf(g),we=E.indexOf(i);if(D!==-1&&we!==-1){let pr=E.slice(Math.min(D,we),Math.max(D,we)+1);Y((Ve=new Set)=>Dt(Ve,new Set([...Ve,...pr])));return}}Ae.current=i,Y((E=new Set)=>{if(R==="single")return E.has(i)&&E.size===1?new Set:new Set([i]);let D=new Set(E);return D.has(i)?D.delete(i):D.add(i),D})},[R,Y,ve]),[ze=At,Me]=(0,j.useControllableState)({prop:h,defaultProp:P,onChange:k}),Pe=m.useMemo(()=>new Set(ze),[ze]),[re=zt,Ke]=(0,j.useControllableState)({prop:C,defaultProp:x??zt,onChange:I}),lr=m.useCallback(i=>{Me((b=[])=>b.includes(i)?b.filter(g=>g!==i):[...b,i])},[Me]),ir=m.useCallback(i=>Pe.has(i),[Pe]),oe=m.useRef(re);m.useLayoutEffect(()=>{oe.current=re},[re]);let sr=m.useCallback((i,b)=>{let g=oe.current;if(g[i]===b)return;let E={...g,[i]:b};oe.current=E,Ke(E)},[Ke]),$e=(0,Ut.useCallbackRef)(d),dr=m.useCallback(()=>{$e(oe.current)},[$e]),cr=m.useCallback(i=>$.has(i),[$]),ke=m.useCallback(i=>i.length>0&&i.every(b=>$.has(b)),[$]),mr=m.useCallback(i=>i.some(b=>$.has(b))&&!ke(i),[$,ke]),fr=m.useCallback(i=>{R!=="none"&&Y((b=new Set)=>{if(i.length>0&&i.every(g=>b.has(g))){let g=new Set(b);return i.forEach(E=>g.delete(E)),g}return Dt(b,new Set([...b,...i]))})},[R,Y]),[_e,Oe]=m.useState(0),ur=m.useCallback(()=>(Oe(i=>i+1),()=>Oe(i=>i-1)),[]);return(0,ee.jsx)(Yt,{tableId:Se,headerCellCount:_e>0?_e:y??1,registerHeaderCell:ur,sortList:T,multiSort:l,selected:$,selectionMode:R,toggleSort:rr,filterMap:or,setColumnFilter:ar,toggleRow:nr,isRowSelected:cr,toggleAll:fr,isAllSelected:ke,isSomeSelected:mr,expandedRows:Pe,toggleRowExpanded:lr,isRowExpanded:ir,columnWidths:re,setColumnWidth:sr,commitColumnWidths:dr,children:(0,ee.jsx)(Vt.Primitive.table,{"aria-rowcount":N,"aria-colcount":y,...B,...(0,Kt.appearanceAttrs)({density:K,stickyHeader:A},B),...(0,Ot.skdxPart)("table","root",B.className),ref:s,children:w})})};Ie.displayName="TableRoot";function De({columns:e,data:t,sortable:r=!1,selectable:o=!1,expandable:a=!1,renderExpanded:n,resizable:l=!1,filterable:f=!1,empty:u,caption:S,renderCell:R,rowId:L,getRowLabel:h,selectionMode:P,size:k,ref:C,...x}){return(0,ee.jsx)(Ie,{...x,"data-size":void 0,selectionMode:P??(o?"multiple":"none"),ref:C,children:(0,ee.jsx)(Wt,{size:(0,Xt.recipeAxis)(k,x,"data-size"),columns:e,data:t,sortable:r,selectable:o,expandable:a,renderExpanded:n,resizable:l,filterable:f,empty:u,caption:S,renderCell:R,rowId:L,getRowLabel:h})})}De.displayName="Table";var Gt=require("../utils/part.cjs"),Jt=require("../utils/primitive.cjs"),Zt=require("react/jsx-runtime"),qt=({ref:e,...t})=>(0,Zt.jsx)(Jt.Primitive.tfoot,{...t,...(0,Gt.skdxPart)("table","footer",t.className),ref:e});qt.displayName="TableFooter";var Qt=require("../utils/part.cjs"),jt=require("../utils/primitive.cjs");var tr=require("react/jsx-runtime"),er=({columnKey:e,ref:t,...r})=>{let o=c("TableSortIndicator"),a=z("TableSortIndicator"),n=e??a.columnKey,l=n===void 0?-1:o.sortList.findIndex(u=>u.columnKey===n),f=o.sortList[l]?.direction??"none";return(0,tr.jsx)(jt.Primitive.span,{"aria-hidden":"true","data-skdx-table-sort-indicator":"","data-sort-direction":f,"data-sort-index":o.multiSort&&l!==-1?l:void 0,...r,...(0,Qt.skdxPart)("table","sort-indicator",r.className),ref:t})};er.displayName="TableSortIndicator";0&&(module.exports={Table,TableBody,TableCaption,TableCell,TableColumnHeaderFilterInput,TableColumnHeaderSortTrigger,TableColumnResizeTrigger,TableEmpty,TableExpandTrigger,TableExpandedRow,TableFooter,TableHeader,TableHeaderCell,TableHeaderCellProvider,TableProvider,TableRoot,TableRow,TableRowSelectCheckbox,TableSelectAllCheckbox,TableSortIndicator,defaultGetSortLabel,defaultSelectAllLabel,tableDetailRowId,useTableContext,useTableHeaderCellContext});
2
+ "use strict";var pr=Object.create;var pe=Object.defineProperty;var br=Object.getOwnPropertyDescriptor;var Tr=Object.getOwnPropertyNames;var gr=Object.getPrototypeOf,Rr=Object.prototype.hasOwnProperty;var Cr=(e,t)=>{for(var o in t)pe(e,o,{get:t[o],enumerable:!0})},dt=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Tr(t))!Rr.call(e,n)&&n!==o&&pe(e,n,{get:()=>t[n],enumerable:!(r=br(t,n))||r.enumerable});return e};var W=(e,t,o)=>(o=e!=null?pr(gr(e)):{},dt(t||!e||!e.__esModule?pe(o,"default",{value:e,enumerable:!0}):o,e)),xr=e=>dt(pe({},"__esModule",{value:!0}),e);var Ur={};Cr(Ur,{Table:()=>tt,TableBody:()=>be,TableCaption:()=>Te,TableCell:()=>B,TableColumnHeaderFilterInput:()=>te,TableColumnHeaderSortTrigger:()=>oe,TableColumnPinTrigger:()=>re,TableColumnReorderTrigger:()=>ne,TableColumnResizeTrigger:()=>Le,TableEmpty:()=>ge,TableExpandTrigger:()=>ye,TableExpandedRow:()=>Re,TableFooter:()=>Fo,TableGroupRow:()=>he,TableHeader:()=>we,TableHeaderCell:()=>Z,TableHeaderCellProvider:()=>Xe,TableProvider:()=>Io,TableRoot:()=>et,TableRow:()=>Q,TableRowSelectCheckbox:()=>Ie,TableSelectAllCheckbox:()=>De,TableSortIndicator:()=>Ko,TableTreeTrigger:()=>Ae,defaultGetMoveLabel:()=>qe,defaultGetSortLabel:()=>Qe,defaultSelectAllLabel:()=>Zt,tableDetailRowId:()=>ee,useTableContext:()=>T,useTableHeaderCellContext:()=>I});module.exports=xr(Ur);var O=W(require("react"),1),ko=require("../utils/appearance.cjs"),Eo=require("../utils/composeRefs.cjs"),je=require("../utils/createContext.cjs"),No=require("../utils/part.cjs"),Ho=require("../utils/primitive.cjs"),vo=require("../utils/recipeAxis.cjs"),Lo=require("../utils/useCallbackRef.cjs"),Mo=require("../utils/useControllableState.cjs");var ie=W(require("react"),1);var ct=require("../utils/part.cjs"),ut=require("../utils/primitive.cjs"),mt=require("react/jsx-runtime"),be=({ref:e,...t})=>(0,mt.jsx)(ut.Primitive.tbody,{...t,...(0,ct.skdxPart)("table","body",t.className),ref:e});be.displayName="TableBody";var ft=require("../utils/part.cjs"),pt=require("../utils/primitive.cjs"),bt=require("react/jsx-runtime"),Te=({ref:e,...t})=>(0,bt.jsx)(pt.Primitive.caption,{...t,...(0,ft.skdxPart)("table","caption",t.className),ref:e});Te.displayName="TableCaption";var Tt=require("../utils/part.cjs"),gt=require("../utils/primitive.cjs");var Rt=require("react/jsx-runtime"),B=({columnKey:e,style:t,ref:o,...r})=>{let n=T("TableCell"),a=e===void 0?void 0:n.columnPins[e],l=e===void 0||a===void 0?void 0:n.pinOffsets[e]??0;return(0,Rt.jsx)(gt.Primitive.td,{"data-pinned":a,style:l===void 0?t:{...t,"--skdx-table-pin-offset":`${l}px`},...r,...(0,Tt.skdxPart)("table","cell",r.className),ref:o})};B.displayName="TableCell";var Ct=require("../utils/part.cjs"),xt=require("../utils/primitive.cjs");var Ge=require("react/jsx-runtime"),ge=({colSpan:e,children:t,ref:o,...r})=>{let n=T("TableEmpty");return(0,Ge.jsx)(xt.Primitive.tr,{"data-state":"empty","data-skdx-table-empty":"",...r,...(0,Ct.skdxPart)("table","empty",r.className),ref:o,children:r.asChild?t:(0,Ge.jsx)("td",{colSpan:e??n.headerCellCount,children:t})})};ge.displayName="TableEmpty";var yt=require("../utils/part.cjs"),St=require("../utils/primitive.cjs");var $e=require("react/jsx-runtime"),Re=({rowId:e,colSpan:t,children:o,ref:r,...n})=>{let a=T("TableExpandedRow"),l=a.isRowExpanded(e);return(0,$e.jsx)(St.Primitive.tr,{id:ee(a.tableId,e),"data-state":l?"expanded":"collapsed","data-skdx-table-detail-row":"",hidden:!l,...n,...(0,yt.skdxPart)("table","expanded-row",n.className),ref:r,children:n.asChild?o:(0,$e.jsx)("td",{colSpan:t??a.headerCellCount,children:o})})};Re.displayName="TableExpandedRow";var Pt=require("../utils/Glyph.cjs"),ht=require("../utils/part.cjs"),xe=require("../utils/primitive.cjs");var Ce=require("react/jsx-runtime"),yr=()=>(0,Ce.jsx)(Pt.Glyph,{name:"chevron-right"}),ye=({rowId:e,ref:t,...o})=>{let r=T("TableExpandTrigger"),n=r.isRowExpanded(e);return(0,Ce.jsx)(xe.Primitive.button,{type:"button","aria-expanded":n,"aria-controls":ee(r.tableId,e),"data-state":n?"expanded":"collapsed","data-skdx-table-expand-trigger":"",...o,...(0,ht.skdxPart)("table","expand-trigger",o.className),ref:t,onClick:(0,xe.composeEventHandlers)(o.onClick,a=>{a.stopPropagation(),r.toggleRowExpanded(e)}),children:o.children??(0,Ce.jsx)(yr,{})})};ye.displayName="TableExpandTrigger";var Se=require("../utils/part.cjs"),wt=require("../utils/primitive.cjs");var Pe=require("react/jsx-runtime"),he=({groupKey:e,colSpan:t,children:o,ref:r,...n})=>{let a=T("TableGroupRow"),l=a.isGroupCollapsed(e);return(0,Pe.jsx)(wt.Primitive.tr,{"data-state":l?"collapsed":"expanded","data-skdx-table-group-row":"",...n,...(0,Se.skdxPart)("table","group-row",n.className),ref:r,children:n.asChild?o:(0,Pe.jsx)("th",{scope:"rowgroup",colSpan:t??a.headerCellCount,...(0,Se.skdxPart)("table","group-cell"),children:(0,Pe.jsx)("button",{type:"button","aria-expanded":!l,...(0,Se.skdxPart)("table","group-trigger"),onClick:()=>a.toggleGroup(e),children:o})})})};he.displayName="TableGroupRow";var kt=require("../utils/part.cjs"),Et=require("../utils/primitive.cjs"),Nt=require("react/jsx-runtime"),we=({ref:e,...t})=>(0,Nt.jsx)(Et.Primitive.thead,{...t,...(0,kt.skdxPart)("table","header",t.className),ref:e});we.displayName="TableHeader";var F=W(require("react"),1),Kt=require("../utils/part.cjs"),Gt=require("../utils/primitive.cjs");var Ht=require("../utils/part.cjs"),ke=require("../utils/primitive.cjs");var vt=require("react/jsx-runtime"),te=({columnKey:e,ref:t,...o})=>{let r=T("TableColumnHeaderFilterInput"),n=I("TableColumnHeaderFilterInput"),a=e??(n.filterable?n.columnKey:void 0);if(a===void 0)return null;let l=r.filterMap[a]??"";return(0,vt.jsx)(ke.Primitive.input,{type:"search","aria-label":n.filterLabel??`Filter ${a}`,"data-skdx-table-filter-input":"","data-filtered":l===""?void 0:"",...o,value:l,...(0,Ht.skdxPart)("table","column-header-filter-input",o.className),ref:t,onChange:(0,ke.composeEventHandlers)(o.onChange,d=>{r.setColumnFilter(a,d.currentTarget.value)})})};te.displayName="TableColumnHeaderFilterInput";var Lt=require("../utils/part.cjs"),Ee=require("../utils/primitive.cjs");var Mt=require("react/jsx-runtime"),oe=({columnKey:e,ref:t,...o})=>{let r=T("TableColumnHeaderSortTrigger"),n=I("TableColumnHeaderSortTrigger"),a=e??(n.sortable?n.columnKey:void 0);if(a===void 0)return null;let l=r.sortList.findIndex(i=>i.columnKey===a),d=r.sortList[l]?.direction;return(0,Mt.jsx)(Ee.Primitive.button,{type:"button","data-skdx-table-sort-trigger":"","data-sort-direction":d,"data-sort-index":r.multiSort&&l!==-1?l:void 0,...o,...(0,Lt.skdxPart)("table","column-header-sort-trigger",o.className),ref:t,onClick:(0,Ee.composeEventHandlers)(o.onClick,i=>{r.toggleSort(a,i.currentTarget.textContent?.trim()||a)})})};oe.displayName="TableColumnHeaderSortTrigger";var It=require("../utils/part.cjs"),Ne=require("../utils/primitive.cjs");var _e=require("react/jsx-runtime"),re=({columnKey:e,side:t="start",label:o,ref:r,...n})=>{let a=T("TableColumnPinTrigger"),l=I("TableColumnPinTrigger"),d=e??l.columnKey;if(d===void 0)return null;let i=a.columnPins[d],m=i===t;return(0,_e.jsx)(Ne.Primitive.button,{type:"button","aria-pressed":m,"aria-label":o??l.pinLabel??"Pin column","data-skdx-table-pin-trigger":"","data-pinned":i,...n,...(0,It.skdxPart)("table","column-pin-trigger",n.className),ref:r,onClick:(0,Ne.composeEventHandlers)(n.onClick,f=>{f.stopPropagation(),a.setColumnPin(d,m?null:t)}),children:n.children??(0,_e.jsx)("span",{"aria-hidden":"true",children:t==="start"?"\u22A3":"\u22A2"})})};re.displayName="TableColumnPinTrigger";var V=W(require("react"),1),Dt=require("../utils/composeRefs.cjs"),He=require("../utils/direction.cjs"),Ot=require("../utils/part.cjs"),z=require("../utils/primitive.cjs"),Be=require("../utils/useCallbackRef.cjs");var Ve=require("react/jsx-runtime");function Sr(e,t){if(!e)return t;let o=e.cloneNode(!0);for(let r of o.querySelectorAll('[aria-hidden="true"], input, svg'))r.remove();return o.textContent?.trim()||t}var ne=({columnKey:e,label:t,ref:o,...r})=>{let n=T("TableColumnReorderTrigger"),a=I("TableColumnReorderTrigger"),l=(0,He.useDirection)(),d=V.useRef(null),i=(0,Dt.useComposedRefs)(o,d),m=V.useRef(null),[f,P]=V.useState(!1),C=e??a.columnKey,x=()=>{let s=d.current?.closest("tr");return s?[...s.querySelectorAll("th[data-column-key]")]:[]},S=s=>s.findIndex(p=>p.dataset.columnKey===C),u=(0,Be.useCallbackRef)(s=>{if(C===void 0)return;let p=d.current?.closest("th");n.moveColumn(C,s,Sr(p,C))}),g=(0,Be.useCallbackRef)(()=>{let s=m.current;if(!s)return null;m.current=null,P(!1);let p=d.current;return p?.hasPointerCapture?.(s.pointerId)&&p.releasePointerCapture(s.pointerId),s});V.useEffect(()=>{if(!f)return;let s=p=>{p.key==="Escape"&&g()};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[f,g]);let y=(0,z.useComposedEventHandlers)(r.onPointerDown,s=>{if(s.button!==0)return;s.stopPropagation();let p=S(x());p!==-1&&(m.current={pointerId:s.pointerId,from:p,to:p},P(!0),s.currentTarget.setPointerCapture?.(s.pointerId))}),w=(0,z.useComposedEventHandlers)(r.onPointerMove,s=>{let p=m.current;if(!p)return;let N=x().findIndex(v=>{let H=v.getBoundingClientRect();return s.clientX>=H.left&&s.clientX<=H.right});N!==-1&&(p.to=N)}),R=()=>{let s=g();s&&s.to!==s.from&&u(s.to)},E=(0,z.useComposedEventHandlers)(r.onKeyDown,s=>{let p=x(),N=S(p);if(N===-1)return;let v=(0,He.directionalKey)(s.key,s.currentTarget,l),H;if(v==="ArrowRight")H=N+1;else if(v==="ArrowLeft")H=N-1;else if(s.key==="Home")H=0;else if(s.key==="End")H=p.length-1;else return;s.preventDefault(),s.stopPropagation(),u(H)});return C===void 0?null:(0,Ve.jsx)(z.Primitive.button,{type:"button","aria-label":t??a.reorderLabel??"Move column","data-skdx-table-reorder-trigger":"","data-dragging":f?"":void 0,...r,...(0,Ot.skdxPart)("table","column-reorder-trigger",r.className),ref:i,onPointerDown:y,onPointerMove:w,onPointerUp:(0,z.composeEventHandlers)(r.onPointerUp,R),onPointerCancel:(0,z.composeEventHandlers)(r.onPointerCancel,R),onKeyDown:E,onClick:(0,z.composeEventHandlers)(r.onClick,s=>{s.stopPropagation()}),children:r.children??(0,Ve.jsx)("span",{"aria-hidden":"true",children:"\u283F"})})};ne.displayName="TableColumnReorderTrigger";var G=W(require("react"),1),Ft=require("../utils/clamp.cjs"),At=require("../utils/composeRefs.cjs"),J=require("../utils/direction.cjs"),Wt=require("../utils/part.cjs"),K=require("../utils/primitive.cjs"),ve=require("../utils/useCallbackRef.cjs");var zt=require("react/jsx-runtime"),Pr=40,hr=1e3,wr=8,kr=new Set(["ArrowLeft","ArrowRight","Home","End"]),Le=({columnKey:e,minWidth:t,maxWidth:o,step:r,label:n,ref:a,...l})=>{let d=T("TableColumnResizeTrigger"),i=I("TableColumnResizeTrigger"),m=(0,J.useDirection)(),f=G.useRef(null),P=(0,At.useComposedRefs)(a,f),C=G.useRef(null),[x,S]=G.useState(!1),u=e??i.columnKey,g=t??i.minWidth??Pr,y=o??i.maxWidth??hr,w=r??i.resizeStep??wr,R=u===void 0?void 0:d.columnWidths[u],E=G.useRef(!1),s=(0,ve.useCallbackRef)(b=>{if(u===void 0)return;let k=(0,Ft.clamp)(Math.round(b),g,y);k!==d.columnWidths[u]&&(E.current=!0),d.setColumnWidth(u,k)}),p=(0,ve.useCallbackRef)(()=>{E.current&&(E.current=!1,d.commitColumnWidths())}),N=()=>R!==void 0?R:(f.current?.closest("th")?.getBoundingClientRect().width??0)||g,v=(0,ve.useCallbackRef)(()=>{let b=C.current;if(!b)return null;C.current=null,S(!1);let k=f.current;return k?.hasPointerCapture?.(b.pointerId)&&k.releasePointerCapture(b.pointerId),b});G.useEffect(()=>{if(!x)return;let b=k=>{if(k.key!=="Escape")return;let M=v();M&&(s(M.startWidth),p())};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[x,v,s,p]);let H=(0,K.useComposedEventHandlers)(l.onPointerDown,b=>{b.button===0&&(b.preventDefault(),b.stopPropagation(),C.current={startX:b.clientX,startWidth:N(),pointerId:b.pointerId},S(!0),b.currentTarget.setPointerCapture?.(b.pointerId))}),$=(0,K.useComposedEventHandlers)(l.onPointerMove,b=>{let k=C.current;if(!k)return;let c=(0,J.resolveDirection)(b.currentTarget,m)==="rtl"?k.startX-b.clientX:b.clientX-k.startX;s(k.startWidth+c)}),_=(0,K.useComposedEventHandlers)(l.onKeyDown,b=>{let k=(0,J.directionalKey)(b.key,b.currentTarget,m);if(k==="ArrowRight")s(N()+w);else if(k==="ArrowLeft")s(N()-w);else if(b.key==="Home")s(g);else if(b.key==="End")s(y);else return;b.preventDefault(),b.stopPropagation()});return u===void 0?null:(0,zt.jsx)(K.Primitive.span,{role:"separator","aria-orientation":"vertical","aria-label":n??i.resizeLabel??"Resize column","aria-valuenow":Math.round(R??g),"aria-valuemin":g,"aria-valuemax":y,tabIndex:0,"data-skdx-table-resizer":"","data-dragging":x?"":void 0,...l,...(0,Wt.skdxPart)("table","column-resize-trigger",l.className),ref:P,onPointerDown:H,onPointerMove:$,onPointerUp:(0,K.composeEventHandlers)(l.onPointerUp,()=>{v()&&p()}),onPointerCancel:(0,K.composeEventHandlers)(l.onPointerCancel,()=>{v()&&p()}),onKeyDown:_,onKeyUp:(0,K.composeEventHandlers)(l.onKeyUp,b=>{kr.has(b.key)&&p()})})};Le.displayName="TableColumnResizeTrigger";var D=require("react/jsx-runtime");function le(e,t){return F.Children.toArray(e).some(o=>F.isValidElement(o)?o.type===t?!0:o.type===F.Fragment&&le(o.props.children,t):!1)}function Er(e,t){if(e)return t==="asc"?"ascending":t==="desc"?"descending":"none"}function Nr(e,t,o){if(e)return o.find(r=>r.columnKey===t)?.direction}function Hr(e,t){let o=e&&F.isValidElement(t)?t:null,r=o?o.props.children:t;return{asChildTarget:o,label:r}}function vr(e,t,o){let r=e===!0&&t!==void 0;return{filterable:r,filtered:r&&(o[t]??"")!==""}}function Lr({label:e,sortable:t,filterable:o,canReorder:r,canPin:n,canResize:a}){return(0,D.jsxs)(D.Fragment,{children:[t&&!le(e,oe)?(0,D.jsx)(oe,{children:e}):e,o&&!le(e,te)?(0,D.jsx)(te,{}):null,r&&!le(e,ne)?(0,D.jsx)(ne,{}):null,n&&!le(e,re)?(0,D.jsx)(re,{}):null,a?(0,D.jsx)(Le,{}):null]})}function Mr(e,t){let o=e!==void 0;return{sortable:t.sortable===!0&&o,canResize:t.resizable&&o,canReorder:t.reorderable&&o,canPin:t.pinnable&&o}}function Ir(e,t){if(e===void 0)return{width:void 0,pinnedSide:void 0,pinOffset:void 0};let o=t.columnPins[e];return{width:t.columnWidths[e],pinnedSide:o,pinOffset:o===void 0?void 0:t.pinOffsets[e]??0}}function ae(e){return e?"":void 0}function Dr(e,t,o){if(e===void 0&&t===void 0)return o;let r={...o};return e!==void 0&&(r.width=e,r["--skdx-table-column-width"]=`${e}px`),t!==void 0&&(r["--skdx-table-pin-offset"]=`${t}px`),r}var Z=({columnKey:e,sortable:t,filterable:o,filterLabel:r,resizable:n=!1,minWidth:a=40,maxWidth:l=1e3,resizeLabel:d="Resize column",resizeStep:i=8,reorderable:m=!1,pinnable:f=!1,reorderLabel:P="Move column",pinLabel:C="Pin column",children:x,style:S,ref:u,...g})=>{let y=T("TableHeaderCell"),{registerHeaderCell:w}=y;F.useEffect(()=>w(),[w]);let{sortable:R,canResize:E,canReorder:s,canPin:p}=Mr(e,{sortable:t,resizable:n,reorderable:m,pinnable:f}),N=Nr(R,e,y.sortList),v=Er(R,N),{filterable:H,filtered:$}=vr(o,e,y.filterMap),{width:_,pinnedSide:b,pinOffset:k}=Ir(e,y),{asChildTarget:M,label:c}=Hr(g.asChild,x),L=(0,D.jsx)(Lr,{label:c,sortable:R,filterable:H,canReorder:s,canPin:p,canResize:E});return(0,D.jsx)(Xe,{columnKey:e,sortable:R,filterable:H,filterLabel:r,minWidth:a,maxWidth:l,resizeLabel:d,resizeStep:i,reorderable:s,pinnable:p,reorderLabel:P,pinLabel:C,children:(0,D.jsx)(Gt.Primitive.th,{"aria-sort":v,"data-column-key":e,"data-sort-direction":N,"data-filterable":ae(H),"data-filtered":ae($),"data-resizable":ae(E),"data-reorderable":ae(s),"data-pinnable":ae(p),"data-pinned":b,style:Dr(_,k,S),...g,...(0,Kt.skdxPart)("table","header-cell",g.className),ref:u,children:M?F.cloneElement(M,void 0,L):L})})};Z.displayName="TableHeaderCell";var $t=require("../utils/part.cjs"),Me=require("../utils/primitive.cjs");var _t=require("react/jsx-runtime"),Or='button, a, input, [role="button"]',Q=({rowId:e,level:t,style:o,ref:r,...n})=>{let a=T("TableRow"),l=e!==void 0&&a.isRowSelected(e),d=a.selectionMode!=="none"&&e!==void 0;return(0,_t.jsx)(Me.Primitive.tr,{"data-state":l?"selected":void 0,"data-row-id":d?e:void 0,"data-level":t,style:t===void 0?o:{...o,"--skdx-table-row-level":t},...n,...(0,$t.skdxPart)("table","row",n.className),ref:r,onClick:(0,Me.composeEventHandlers)(n.onClick,i=>{!d||i.target.closest(Or)||a.toggleRow(e,i.shiftKey)})})};Q.displayName="TableRow";var Bt=require("../checkbox/Checkbox.cjs"),Vt=require("../utils/part.cjs"),Xt=require("../utils/primitive.cjs");var Ut=require("react/jsx-runtime"),Ie=({rowId:e,ref:t,...o})=>{let r=T("TableRowSelectCheckbox");return(0,Ut.jsx)(Bt.Checkbox,{...o,...(0,Vt.skdxPart)("table","row-select-checkbox",o.className),ref:t,checked:r.isRowSelected(e),"data-skdx-table-row-select":"",onClick:(0,Xt.composeEventHandlers)(o.onClick,n=>{o.readOnly||r.toggleRow(e,n.shiftKey)})})};Ie.displayName="TableRowSelectCheckbox";var Yt=require("../checkbox/Checkbox.cjs"),qt=require("../utils/part.cjs"),Jt=require("../utils/primitive.cjs");var Qt=require("react/jsx-runtime");function Zt(e,t){let o=`${t} ${t===1?"row":"rows"}`;return e==="page"?`Select all ${o} on this page`:`Select all ${o}`}function Fr(e,t){return e.isAllSelected(t)?!0:e.isSomeSelected(t)?"indeterminate":!1}var De=({rowIds:e,scope:t,getSelectAllLabel:o=Zt,ref:r,...n})=>{let a=T("TableSelectAllCheckbox"),l=Fr(a,e);return(0,Qt.jsx)(Yt.Checkbox,{"aria-label":o(t,e.length),...n,...(0,qt.skdxPart)("table","select-all-checkbox",n.className),ref:r,checked:l,"data-skdx-table-select-all":"","data-scope":t,onClick:(0,Jt.composeEventHandlers)(n.onClick,()=>{n.readOnly||a.toggleAll(e)})})};De.displayName="TableSelectAllCheckbox";var jt=require("../utils/Glyph.cjs"),eo=require("../utils/part.cjs"),Fe=require("../utils/primitive.cjs");var Oe=require("react/jsx-runtime"),Ar=()=>(0,Oe.jsx)(jt.Glyph,{name:"chevron-right"}),Ae=({rowId:e,ref:t,...o})=>{let r=T("TableTreeTrigger"),n=r.isNodeExpanded(e);return(0,Oe.jsx)(Fe.Primitive.button,{type:"button","aria-expanded":n,"data-state":n?"expanded":"collapsed","data-skdx-table-tree-trigger":"",...o,...(0,eo.skdxPart)("table","tree-trigger",o.className),ref:t,onClick:(0,Fe.composeEventHandlers)(o.onClick,a=>{a.stopPropagation(),r.toggleNode(e)}),children:o.children??(0,Oe.jsx)(Ar,{})})};Ae.displayName="TableTreeTrigger";var h=require("react/jsx-runtime");function j(e,t){return e[t]}function se(e){return typeof e=="string"?e:String(e)}function Wr(e,t){return typeof e=="number"&&typeof t=="number"?e-t:e instanceof Date&&t instanceof Date?e.getTime()-t.getTime():se(e??"").localeCompare(se(t??""))}function to(e,t){return t.length===0?[...e]:[...e].sort((o,r)=>{for(let{columnKey:n,direction:a}of t){let l=Wr(j(o,n),j(r,n));if(l!==0)return a==="desc"?-l:l}return 0})}function zr(e,t){let o=Object.entries(t).filter(([,r])=>r!=="");return o.length===0?[...e]:e.filter(r=>o.every(([n,a])=>se(j(r,n)??"").toLowerCase().includes(a.toLowerCase())))}function Kr(e,t){let o=j(e,"id");return String(typeof o=="string"||typeof o=="number"?o:t)}function Gr(e,t,o){let r=new Map(e.map(i=>[i.key,i])),n=t.map(i=>r.get(i)).filter(i=>i!==void 0),a=e.filter(i=>!t.includes(i.key)),l=[...n,...a],d=i=>l.filter(m=>{let f=o[m.key];return(f==="start"||f==="end"?f:void 0)===i});return[...d("start"),...d(void 0),...d("end")]}function oo(e,t,o,r){for(let n of e){let a=o.length,l=r.rowId(n,a),d=r.getSubRows?.(n)??[];o.push({row:n,id:l,index:a,level:t,hasChildren:d.length>0}),d.length>0&&r.isNodeExpanded(l)&&oo(to(d,r.sortList),t+1,o,r)}}function $r(e,t){let o=new Map;for(let r of e){let n=se(j(r,t)??""),a=o.get(n);a?a.push(r):o.set(n,[r])}return[...o].map(([r,n])=>({groupKey:r,rows:n}))}function _r(e,t,o){return t.cell?t.cell(e):o?o(e,t):se(j(e,t.key)??"")}function ro({size:e,columns:t,data:o,sortable:r,selectable:n,expandable:a,renderExpanded:l,resizable:d,filterable:i,reorderable:m,pinnable:f,groupBy:P,renderGroupHeader:C,getSubRows:x,empty:S,caption:u,renderCell:g,rowId:y=Kr,getRowLabel:w}){let R=T("Table"),E=Math.max(t.length+(n?1:0)+(a?1:0),1),s=Gr(t,R.columnOrder,R.columnPins),p=ie.useMemo(()=>to(zr(o,R.filterMap),R.sortList),[o,R.filterMap,R.sortList]),N=[],v=c=>{let L=N.length;return oo(c,0,N,{rowId:y,getSubRows:x,sortList:R.sortList,isNodeExpanded:R.isNodeExpanded}),N.slice(L)},H=P===void 0?null:$r(p,P),$=H===null?v(p):[],_=H?.map(c=>({...c,entries:R.isGroupCollapsed(c.groupKey)?[]:v(c.rows)}))??[],b=N.map(c=>c.id),k=c=>{let L=w?.(c.row,c.index)??`row ${c.id}`;return(0,h.jsxs)(ie.Fragment,{children:[(0,h.jsxs)(Q,{rowId:c.id,level:x?c.level:void 0,children:[n?(0,h.jsx)(B,{children:(0,h.jsx)(Ie,{rowId:c.id,"aria-label":`Select ${L}`,size:e})}):null,a?(0,h.jsx)(B,{children:(0,h.jsx)(ye,{rowId:c.id,"aria-label":`Details for ${L}`})}):null,s.map((U,ze)=>(0,h.jsxs)(B,{columnKey:U.key,children:[ze===0&&c.hasChildren?(0,h.jsx)(Ae,{rowId:c.id,"aria-label":`Children of ${L}`}):null,_r(c.row,U,g)]},U.key))]}),a?(0,h.jsx)(Re,{rowId:c.id,colSpan:E,children:l?.(c.row)}):null]},c.id)},M;return p.length===0&&S?M=(0,h.jsx)(ge,{colSpan:E,children:S}):H===null?M=$.map(k):M=_.map(c=>(0,h.jsxs)(ie.Fragment,{children:[(0,h.jsx)(he,{groupKey:c.groupKey,colSpan:E,children:C?.(c.groupKey,c.rows)??`${c.groupKey} (${c.rows.length})`}),c.entries.map(k)]},c.groupKey)),(0,h.jsxs)(h.Fragment,{children:[u?(0,h.jsx)(Te,{children:u}):null,(0,h.jsx)(we,{children:(0,h.jsxs)(Q,{children:[n?(0,h.jsx)(Z,{children:(0,h.jsx)(De,{scope:"page",rowIds:b,size:e})}):null,a?(0,h.jsx)(Z,{"aria-hidden":"true"}):null,s.map(c=>{let L=typeof c.header=="string"?c.header:c.key;return(0,h.jsx)(Z,{columnKey:c.key,sortable:c.sortable??r,filterable:c.filterable??i,filterLabel:`Filter ${L}`,resizable:c.resizable??d,reorderable:c.reorderable??m,pinnable:c.pinnable??f,reorderLabel:`Move ${L}`,pinLabel:`Pin ${L}`,minWidth:c.minWidth,maxWidth:c.maxWidth,children:c.header??c.key},c.key)})]})}),(0,h.jsx)(be,{children:M})]})}var X=W(require("react"),1),lo=require("../utils/clamp.cjs"),io=require("../utils/liveAnnouncer.cjs"),so=require("../utils/useCallbackRef.cjs"),Ye=require("../utils/useControllableState.cjs"),no=[],Ue={},ao={};function Br(e,t){let o=Object.keys(e);return o.length===Object.keys(t).length&&o.every(r=>e[r]===t[r])}function Vr(e){let t={};for(let o of["start","end"]){let r=[...e.querySelectorAll(`thead th[data-pinned="${o}"]`)];o==="end"&&r.reverse();let n=0;for(let a of r){let l=a.dataset.columnKey;l!==void 0&&(t[l]=n,n+=a.offsetWidth)}}return t}function qe(e,t,o){return`${e} moved to position ${t} of ${o}`}function co(e,t,o,r,n=qe){let[a=no,l]=(0,Ye.useControllableState)({prop:t,defaultProp:o??no,onChange:r}),d=(0,so.useCallbackRef)(n),i=X.useCallback((m,f,P=m)=>{let C=e.current;if(!C)return;let S=[...C.querySelectorAll(":scope > thead th[data-column-key]")].map(y=>y.dataset.columnKey),u=S.indexOf(m),g=(0,lo.clamp)(f,0,S.length-1);u===-1||u===g||(S.splice(u,1),S.splice(g,0,m),l(S),(0,io.announce)(d(P,g+1,S.length)))},[e,l,d]);return[a,i]}function uo(e,t,o,r){let[n=Ue,a]=(0,Ye.useControllableState)({prop:t,defaultProp:o??Ue,onChange:r}),l=X.useCallback((f,P)=>{a((C=Ue)=>{let x={...C};return P===null?delete x[f]:x[f]=P,x})},[a]),[d,i]=X.useState(ao),m=Object.keys(n).length>0;return X.useLayoutEffect(()=>{let f=e.current;if(!m||!f){i(x=>Object.keys(x).length===0?x:ao);return}let P=()=>{let x=Vr(f);i(S=>Br(S,x)?S:x)};if(P(),typeof ResizeObserver>"u")return;let C=new ResizeObserver(P);return C.observe(f),()=>C.disconnect()},[e,m,n]),[n,l,d]}var de=W(require("react"),1),mo=require("../utils/useControllableState.cjs"),Je=[];function We(e,t,o){let[r=Je,n]=(0,mo.useControllableState)({prop:e,defaultProp:t??Je,onChange:o}),a=de.useMemo(()=>new Set(r),[r]),l=de.useCallback(i=>{n((m=Je)=>m.includes(i)?m.filter(f=>f!==i):[...m,i])},[n]),d=de.useCallback(i=>a.has(i),[a]);return[a,l,d]}var fo=W(require("react"),1),po=require("../utils/useControllableState.cjs"),Ze={};function bo(e,t,o){let[r=Ze,n]=(0,po.useControllableState)({prop:e,defaultProp:t??Ze,onChange:o}),a=fo.useCallback((l,d)=>{n((i=Ze)=>{if((i[l]??"")===d)return i;let m={...i};return d===""?delete m[l]:m[l]=d,m})},[n]);return[r,a]}var A=W(require("react"),1),Ro=require("../utils/useControllableState.cjs");function To(e,t){return e.size===t.size&&[...t].every(o=>e.has(o))?e:t}function go(e){return e===void 0?new Set:e instanceof Set?e:new Set(e)}function Co(e,t,o,r,n){let a=A.useMemo(()=>t===void 0?void 0:go(t),[t]),[l=new Set,d]=(0,Ro.useControllableState)({prop:a,defaultProp:go(o??[]),onChange:u=>r?.([...u])}),i=A.useCallback(()=>{let u=e.current;return u?[...u.querySelectorAll(":scope > tbody > tr[data-row-id]")].map(y=>y.dataset.rowId):[]},[e]),m=A.useRef(null),f=A.useCallback((u,g=!1)=>{if(n==="none")return;let y=m.current;if(g&&n==="multiple"&&y!==null&&y!==u){let w=i(),R=w.indexOf(y),E=w.indexOf(u);if(R!==-1&&E!==-1){let s=w.slice(Math.min(R,E),Math.max(R,E)+1);d((p=new Set)=>To(p,new Set([...p,...s])));return}}m.current=u,d((w=new Set)=>{if(n==="single")return w.has(u)&&w.size===1?new Set:new Set([u]);let R=new Set(w);return R.has(u)?R.delete(u):R.add(u),R})},[n,d,i]),P=A.useCallback(u=>l.has(u),[l]),C=A.useCallback(u=>u.length>0&&u.every(g=>l.has(g)),[l]),x=A.useCallback(u=>u.some(g=>l.has(g))&&!C(u),[l,C]),S=A.useCallback(u=>{n!=="none"&&d((g=new Set)=>{if(u.length>0&&u.every(y=>g.has(y))){let y=new Set(g);return u.forEach(w=>y.delete(w)),y}return To(g,new Set([...g,...u]))})},[n,d]);return{selected:l,toggleRow:f,isRowSelected:P,toggleAll:S,isAllSelected:C,isSomeSelected:x}}var yo=W(require("react"),1),So=require("../utils/liveAnnouncer.cjs"),Po=require("../utils/useControllableState.cjs"),xo=[];function Xr(e,t,o){let r=e.find(a=>a.columnKey===t),n="asc";return r!==void 0&&(n=r.direction==="asc"?"desc":null),o?n===null?e.filter(a=>a.columnKey!==t):r===void 0?[...e,{columnKey:t,direction:n}]:e.map(a=>a.columnKey===t?{columnKey:t,direction:n}:a):n===null?[]:[{columnKey:t,direction:n}]}function Qe(e,t){return t===null?`${e} not sorted`:`${e} sorted ${t==="asc"?"ascending":"descending"}`}function ho(e,t,o,r,n=Qe){let[a=xo,l]=(0,Po.useControllableState)({prop:e,defaultProp:t??xo,onChange:o}),d=yo.useCallback((i,m=i)=>{let f=Xr(a,i,r);l(f);let P=f.find(C=>C.columnKey===i)?.direction??null;(0,So.announce)(n(m,P))},[a,r,l,n]);return[a,d]}var ce=require("react/jsx-runtime"),wo={},[Io,T]=(0,je.createSafeContext)("Table"),[Xe,I]=(0,je.createSafeContext)("TableHeaderCell",{});function ee(e,t){return`${e}-detail-${t}`}var et=({sort:e,defaultSort:t,onSortChange:o,filter:r,defaultFilter:n,onFilterChange:a,multiSort:l=!1,selected:d,defaultSelected:i,onSelectedChange:m,selectionMode:f="none",getSortLabel:P,expandedRowIds:C,defaultExpandedRowIds:x,onExpandedRowIdsChange:S,columnWidths:u,defaultColumnWidths:g,onColumnWidthsChange:y,onColumnWidthsCommit:w,columnOrder:R,defaultColumnOrder:E,onColumnOrderChange:s,columnPins:p,defaultColumnPins:N,onColumnPinsChange:v,getMoveLabel:H,collapsedGroups:$,defaultCollapsedGroups:_,onCollapsedGroupsChange:b,expandedNodeIds:k,defaultExpandedNodeIds:M,onExpandedNodeIdsChange:c,rowCount:L,columnCount:U,children:ze,ref:$o,density:_o,stickyHeader:Bo,...Ke})=>{let Vo=O.useId(),ue=O.useRef(null),Xo=(0,Eo.useComposedRefs)($o,ue),[Uo,Yo]=ho(e,t,o,l,P),[qo,Jo]=bo(r,n,a),Y=Co(ue,d,i,m,f),[Zo,Qo,jo]=We(C,x,S),[er,tr,or]=We($,_,b),[rr,nr,ar]=We(k,M,c),[lr,ir]=co(ue,R,E,s,H),[sr,dr,cr]=uo(ue,p,N,v),[me=wo,ot]=(0,Mo.useControllableState)({prop:u,defaultProp:g??wo,onChange:y}),fe=O.useRef(me);O.useLayoutEffect(()=>{fe.current=me},[me]);let ur=O.useCallback((q,lt)=>{let it=fe.current;if(it[q]===lt)return;let st={...it,[q]:lt};fe.current=st,ot(st)},[ot]),rt=(0,Lo.useCallbackRef)(w),mr=O.useCallback(()=>{rt(fe.current)},[rt]),[nt,at]=O.useState(0),fr=O.useCallback(()=>(at(q=>q+1),()=>at(q=>q-1)),[]);return(0,ce.jsx)(Io,{tableId:Vo,headerCellCount:nt>0?nt:U??1,registerHeaderCell:fr,sortList:Uo,multiSort:l,selected:Y.selected,selectionMode:f,toggleSort:Yo,filterMap:qo,setColumnFilter:Jo,toggleRow:Y.toggleRow,isRowSelected:Y.isRowSelected,toggleAll:Y.toggleAll,isAllSelected:Y.isAllSelected,isSomeSelected:Y.isSomeSelected,expandedRows:Zo,toggleRowExpanded:Qo,isRowExpanded:jo,columnWidths:me,setColumnWidth:ur,commitColumnWidths:mr,columnOrder:lr,moveColumn:ir,columnPins:sr,setColumnPin:dr,pinOffsets:cr,collapsedGroups:er,toggleGroup:tr,isGroupCollapsed:or,expandedNodes:rr,toggleNode:nr,isNodeExpanded:ar,children:(0,ce.jsx)(Ho.Primitive.table,{"aria-rowcount":L,"aria-colcount":U,...Ke,...(0,ko.appearanceAttrs)({density:_o,stickyHeader:Bo},Ke),...(0,No.skdxPart)("table","root",Ke.className),ref:Xo,children:ze})})};et.displayName="TableRoot";function tt({columns:e,data:t,sortable:o=!1,selectable:r=!1,expandable:n=!1,renderExpanded:a,resizable:l=!1,filterable:d=!1,reorderable:i=!1,pinnable:m=!1,groupBy:f,renderGroupHeader:P,getSubRows:C,empty:x,caption:S,renderCell:u,rowId:g,getRowLabel:y,selectionMode:w,size:R,ref:E,...s}){return(0,ce.jsx)(et,{...s,"data-size":void 0,selectionMode:w??(r?"multiple":"none"),ref:E,children:(0,ce.jsx)(ro,{size:(0,vo.recipeAxis)(R,s,"data-size"),columns:e,data:t,sortable:o,selectable:r,expandable:n,renderExpanded:a,resizable:l,filterable:d,reorderable:i,pinnable:m,groupBy:f,renderGroupHeader:P,getSubRows:C,empty:x,caption:S,renderCell:u,rowId:g,getRowLabel:y})})}tt.displayName="Table";var Do=require("../utils/part.cjs"),Oo=require("../utils/primitive.cjs"),Ao=require("react/jsx-runtime"),Fo=({ref:e,...t})=>(0,Ao.jsx)(Oo.Primitive.tfoot,{...t,...(0,Do.skdxPart)("table","footer",t.className),ref:e});Fo.displayName="TableFooter";var Wo=require("../utils/part.cjs"),zo=require("../utils/primitive.cjs");var Go=require("react/jsx-runtime"),Ko=({columnKey:e,ref:t,...o})=>{let r=T("TableSortIndicator"),n=I("TableSortIndicator"),a=e??n.columnKey,l=a===void 0?-1:r.sortList.findIndex(i=>i.columnKey===a),d=r.sortList[l]?.direction??"none";return(0,Go.jsx)(zo.Primitive.span,{"aria-hidden":"true","data-skdx-table-sort-indicator":"","data-sort-direction":d,"data-sort-index":r.multiSort&&l!==-1?l:void 0,...o,...(0,Wo.skdxPart)("table","sort-indicator",o.className),ref:t})};Ko.displayName="TableSortIndicator";0&&(module.exports={Table,TableBody,TableCaption,TableCell,TableColumnHeaderFilterInput,TableColumnHeaderSortTrigger,TableColumnPinTrigger,TableColumnReorderTrigger,TableColumnResizeTrigger,TableEmpty,TableExpandTrigger,TableExpandedRow,TableFooter,TableGroupRow,TableHeader,TableHeaderCell,TableHeaderCellProvider,TableProvider,TableRoot,TableRow,TableRowSelectCheckbox,TableSelectAllCheckbox,TableSortIndicator,TableTreeTrigger,defaultGetMoveLabel,defaultGetSortLabel,defaultSelectAllLabel,tableDetailRowId,useTableContext,useTableHeaderCellContext});
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
- import type { SortDirection, TableContextValue, TableHeaderCellContextValue, TableProps, TableRootProps } from './types.cjs';
3
- /** Default `getSortLabel`: `"Amount sorted ascending"` / `"Amount not sorted"`. */
4
- export declare function defaultGetSortLabel(column: string, direction: SortDirection | null): string;
2
+ import type { TableContextValue, TableHeaderCellContextValue, TableProps, TableRootProps } from './types.cjs';
3
+ export { defaultGetSortLabel } from './useTableSort.cjs';
4
+ export { defaultGetMoveLabel } from './useColumnOrder.cjs';
5
5
  /**
6
6
  * Reads the sort, selection, expansion, and column-width state a {@link Table} publishes, and the methods that drive them.
7
7
  *
@@ -53,10 +53,10 @@ export declare function tableDetailRowId(tableId: string, rowId: string): string
53
53
  * ```
54
54
  */
55
55
  export declare const TableRoot: {
56
- ({ sort: sortProp, defaultSort, onSortChange, filter: filterProp, defaultFilter, onFilterChange, multiSort, selected: selectedProp, defaultSelected, onSelectedChange, selectionMode, getSortLabel, expandedRowIds: expandedRowIdsProp, defaultExpandedRowIds, onExpandedRowIdsChange, columnWidths: columnWidthsProp, defaultColumnWidths, onColumnWidthsChange, onColumnWidthsCommit, rowCount, columnCount, children, ref: forwardedRef, density, stickyHeader, ...props }: TableRootProps): React.ReactNode;
56
+ ({ sort: sortProp, defaultSort, onSortChange, filter: filterProp, defaultFilter, onFilterChange, multiSort, selected: selectedProp, defaultSelected, onSelectedChange, selectionMode, getSortLabel, expandedRowIds: expandedRowIdsProp, defaultExpandedRowIds, onExpandedRowIdsChange, columnWidths: columnWidthsProp, defaultColumnWidths, onColumnWidthsChange, onColumnWidthsCommit, columnOrder: columnOrderProp, defaultColumnOrder, onColumnOrderChange, columnPins: columnPinsProp, defaultColumnPins, onColumnPinsChange, getMoveLabel, collapsedGroups: collapsedGroupsProp, defaultCollapsedGroups, onCollapsedGroupsChange, expandedNodeIds: expandedNodeIdsProp, defaultExpandedNodeIds, onExpandedNodeIdsChange, rowCount, columnCount, children, ref: forwardedRef, density, stickyHeader, ...props }: TableRootProps): React.ReactNode;
57
57
  displayName: string;
58
58
  };
59
- export declare function Table<T extends object>({ columns, data, sortable, selectable, expandable, renderExpanded, resizable, filterable, empty, caption, renderCell, rowId, getRowLabel, selectionMode, size, ref: forwardedRef, ...rootProps }: TableProps<T>): React.ReactNode;
59
+ export declare function Table<T extends object>({ columns, data, sortable, selectable, expandable, renderExpanded, resizable, filterable, reorderable, pinnable, groupBy, renderGroupHeader, getSubRows, empty, caption, renderCell, rowId, getRowLabel, selectionMode, size, ref: forwardedRef, ...rootProps }: TableProps<T>): React.ReactNode;
60
60
  export declare namespace Table {
61
61
  var displayName: string;
62
62
  }
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
- import type { SortDirection, TableContextValue, TableHeaderCellContextValue, TableProps, TableRootProps } from './types.js';
3
- /** Default `getSortLabel`: `"Amount sorted ascending"` / `"Amount not sorted"`. */
4
- export declare function defaultGetSortLabel(column: string, direction: SortDirection | null): string;
2
+ import type { TableContextValue, TableHeaderCellContextValue, TableProps, TableRootProps } from './types.js';
3
+ export { defaultGetSortLabel } from './useTableSort.js';
4
+ export { defaultGetMoveLabel } from './useColumnOrder.js';
5
5
  /**
6
6
  * Reads the sort, selection, expansion, and column-width state a {@link Table} publishes, and the methods that drive them.
7
7
  *
@@ -53,10 +53,10 @@ export declare function tableDetailRowId(tableId: string, rowId: string): string
53
53
  * ```
54
54
  */
55
55
  export declare const TableRoot: {
56
- ({ sort: sortProp, defaultSort, onSortChange, filter: filterProp, defaultFilter, onFilterChange, multiSort, selected: selectedProp, defaultSelected, onSelectedChange, selectionMode, getSortLabel, expandedRowIds: expandedRowIdsProp, defaultExpandedRowIds, onExpandedRowIdsChange, columnWidths: columnWidthsProp, defaultColumnWidths, onColumnWidthsChange, onColumnWidthsCommit, rowCount, columnCount, children, ref: forwardedRef, density, stickyHeader, ...props }: TableRootProps): React.ReactNode;
56
+ ({ sort: sortProp, defaultSort, onSortChange, filter: filterProp, defaultFilter, onFilterChange, multiSort, selected: selectedProp, defaultSelected, onSelectedChange, selectionMode, getSortLabel, expandedRowIds: expandedRowIdsProp, defaultExpandedRowIds, onExpandedRowIdsChange, columnWidths: columnWidthsProp, defaultColumnWidths, onColumnWidthsChange, onColumnWidthsCommit, columnOrder: columnOrderProp, defaultColumnOrder, onColumnOrderChange, columnPins: columnPinsProp, defaultColumnPins, onColumnPinsChange, getMoveLabel, collapsedGroups: collapsedGroupsProp, defaultCollapsedGroups, onCollapsedGroupsChange, expandedNodeIds: expandedNodeIdsProp, defaultExpandedNodeIds, onExpandedNodeIdsChange, rowCount, columnCount, children, ref: forwardedRef, density, stickyHeader, ...props }: TableRootProps): React.ReactNode;
57
57
  displayName: string;
58
58
  };
59
- export declare function Table<T extends object>({ columns, data, sortable, selectable, expandable, renderExpanded, resizable, filterable, empty, caption, renderCell, rowId, getRowLabel, selectionMode, size, ref: forwardedRef, ...rootProps }: TableProps<T>): React.ReactNode;
59
+ export declare function Table<T extends object>({ columns, data, sortable, selectable, expandable, renderExpanded, resizable, filterable, reorderable, pinnable, groupBy, renderGroupHeader, getSubRows, empty, caption, renderCell, rowId, getRowLabel, selectionMode, size, ref: forwardedRef, ...rootProps }: TableProps<T>): React.ReactNode;
60
60
  export declare namespace Table {
61
61
  var displayName: string;
62
62
  }
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import*as c from"react";import{appearanceAttrs as kr}from"../utils/appearance.js";import{useComposedRefs as wr}from"../utils/composeRefs.js";import{createSafeContext as Xe}from"../utils/createContext.js";import{announce as Er}from"../utils/liveAnnouncer.js";import{skdxPart as Hr}from"../utils/part.js";import{Primitive as Nr}from"../utils/primitive.js";import{recipeAxis as Wr}from"../utils/recipeAxis.js";import{useCallbackRef as Fr}from"../utils/useCallbackRef.js";import{useControllableState as re}from"../utils/useControllableState.js";import*as te from"react";import{skdxPart as lt}from"../utils/part.js";import{Primitive as it}from"../utils/primitive.js";import{jsx as st}from"react/jsx-runtime";var de=({ref:e,...t})=>st(it.tbody,{...t,...lt("table","body",t.className),ref:e});de.displayName="TableBody";import{skdxPart as dt}from"../utils/part.js";import{Primitive as ct}from"../utils/primitive.js";import{jsx as mt}from"react/jsx-runtime";var ce=({ref:e,...t})=>mt(ct.caption,{...t,...dt("table","caption",t.className),ref:e});ce.displayName="TableCaption";import{skdxPart as ft}from"../utils/part.js";import{Primitive as ut}from"../utils/primitive.js";import{jsx as pt}from"react/jsx-runtime";var $=({ref:e,...t})=>pt(ut.td,{...t,...ft("table","cell",t.className),ref:e});$.displayName="TableCell";import{skdxPart as bt}from"../utils/part.js";import{Primitive as Tt}from"../utils/primitive.js";import{jsx as Ie}from"react/jsx-runtime";var me=({colSpan:e,children:t,ref:r,...o})=>{let a=f("TableEmpty");return Ie(Tt.tr,{"data-state":"empty","data-skdx-table-empty":"",...o,...bt("table","empty",o.className),ref:r,children:o.asChild?t:Ie("td",{colSpan:e??a.headerCellCount,children:t})})};me.displayName="TableEmpty";import{skdxPart as Rt}from"../utils/part.js";import{Primitive as Ct}from"../utils/primitive.js";import{jsx as De}from"react/jsx-runtime";var fe=({rowId:e,colSpan:t,children:r,ref:o,...a})=>{let n=f("TableExpandedRow"),l=n.isRowExpanded(e);return De(Ct.tr,{id:q(n.tableId,e),"data-state":l?"expanded":"collapsed","data-skdx-table-detail-row":"",hidden:!l,...a,...Rt("table","expanded-row",a.className),ref:o,children:a.asChild?r:De("td",{colSpan:t??n.headerCellCount,children:r})})};fe.displayName="TableExpandedRow";import{Glyph as gt}from"../utils/Glyph.js";import{skdxPart as xt}from"../utils/part.js";import{composeEventHandlers as yt,Primitive as St}from"../utils/primitive.js";import{jsx as ue}from"react/jsx-runtime";var ht=()=>ue(gt,{name:"chevron-right"}),pe=({rowId:e,ref:t,...r})=>{let o=f("TableExpandTrigger"),a=o.isRowExpanded(e);return ue(St.button,{type:"button","aria-expanded":a,"aria-controls":q(o.tableId,e),"data-state":a?"expanded":"collapsed","data-skdx-table-expand-trigger":"",...r,...xt("table","expand-trigger",r.className),ref:t,onClick:yt(r.onClick,n=>{n.stopPropagation(),o.toggleRowExpanded(e)}),children:r.children??ue(ht,{})})};pe.displayName="TableExpandTrigger";import{skdxPart as Pt}from"../utils/part.js";import{Primitive as kt}from"../utils/primitive.js";import{jsx as wt}from"react/jsx-runtime";var be=({ref:e,...t})=>wt(kt.thead,{...t,...Pt("table","header",t.className),ref:e});be.displayName="TableHeader";import*as W from"react";import{skdxPart as Yt}from"../utils/part.js";import{Primitive as Gt}from"../utils/primitive.js";import{skdxPart as Et}from"../utils/part.js";import{composeEventHandlers as Ht,Primitive as Nt}from"../utils/primitive.js";import{jsx as Wt}from"react/jsx-runtime";var Z=({columnKey:e,ref:t,...r})=>{let o=f("TableColumnHeaderFilterInput"),a=v("TableColumnHeaderFilterInput"),n=e??(a.filterable?a.columnKey:void 0);if(n===void 0)return null;let l=o.filterMap[n]??"";return Wt(Nt.input,{type:"search","aria-label":a.filterLabel??`Filter ${n}`,"data-skdx-table-filter-input":"","data-filtered":l===""?void 0:"",...r,value:l,...Et("table","column-header-filter-input",r.className),ref:t,onChange:Ht(r.onChange,m=>{o.setColumnFilter(n,m.currentTarget.value)})})};Z.displayName="TableColumnHeaderFilterInput";import{skdxPart as Ft}from"../utils/part.js";import{composeEventHandlers as Lt,Primitive as It}from"../utils/primitive.js";import{jsx as Dt}from"react/jsx-runtime";var Q=({columnKey:e,ref:t,...r})=>{let o=f("TableColumnHeaderSortTrigger"),a=v("TableColumnHeaderSortTrigger"),n=e??(a.sortable?a.columnKey:void 0);if(n===void 0)return null;let l=o.sortList.findIndex(u=>u.columnKey===n),m=o.sortList[l]?.direction;return Dt(It.button,{type:"button","data-skdx-table-sort-trigger":"","data-sort-direction":m,"data-sort-index":o.multiSort&&l!==-1?l:void 0,...r,...Ft("table","column-header-sort-trigger",r.className),ref:t,onClick:Lt(r.onClick,u=>{o.toggleSort(n,u.currentTarget.textContent?.trim()||n)})})};Q.displayName="TableColumnHeaderSortTrigger";import*as A from"react";import{clamp as vt}from"../utils/clamp.js";import{useComposedRefs as At}from"../utils/composeRefs.js";import{directionalKey as zt,resolveDirection as Mt,useDirection as Kt}from"../utils/direction.js";import{skdxPart as $t}from"../utils/part.js";import{composeEventHandlers as Te,Primitive as _t,useComposedEventHandlers as Re}from"../utils/primitive.js";import{useCallbackRef as Ce}from"../utils/useCallbackRef.js";import{jsx as Bt}from"react/jsx-runtime";var Ot=40,Vt=1e3,Xt=8,Ut=new Set(["ArrowLeft","ArrowRight","Home","End"]),ge=({columnKey:e,minWidth:t,maxWidth:r,step:o,label:a,ref:n,...l})=>{let m=f("TableColumnResizeTrigger"),u=v("TableColumnResizeTrigger"),y=Kt(),T=A.useRef(null),F=At(n,T),S=A.useRef(null),[h,P]=A.useState(!1),R=e??u.columnKey,g=t??u.minWidth??Ot,L=r??u.maxWidth??Vt,d=o??u.resizeStep??Xt,N=R===void 0?void 0:m.columnWidths[R],x=A.useRef(!1),k=Ce(s=>{if(R===void 0)return;let b=vt(Math.round(s),g,L);b!==m.columnWidths[R]&&(x.current=!0),m.setColumnWidth(R,b)}),H=Ce(()=>{x.current&&(x.current=!1,m.commitColumnWidths())}),z=()=>N!==void 0?N:(T.current?.closest("th")?.getBoundingClientRect().width??0)||g,D=Ce(()=>{let s=S.current;if(!s)return null;S.current=null,P(!1);let b=T.current;return b?.hasPointerCapture?.(s.pointerId)&&b.releasePointerCapture(s.pointerId),s});A.useEffect(()=>{if(!h)return;let s=b=>{if(b.key!=="Escape")return;let K=D();K&&(k(K.startWidth),H())};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[h,D,k,H]);let O=Re(l.onPointerDown,s=>{s.button===0&&(s.preventDefault(),s.stopPropagation(),S.current={startX:s.clientX,startWidth:z(),pointerId:s.pointerId},P(!0),s.currentTarget.setPointerCapture?.(s.pointerId))}),ae=Re(l.onPointerMove,s=>{let b=S.current;if(!b)return;let ne=Mt(s.currentTarget,y)==="rtl"?b.startX-s.clientX:s.clientX-b.startX;k(b.startWidth+ne)}),Y=Re(l.onKeyDown,s=>{let b=zt(s.key,s.currentTarget,y);if(b==="ArrowRight")k(z()+d);else if(b==="ArrowLeft")k(z()-d);else if(s.key==="Home")k(g);else if(s.key==="End")k(L);else return;s.preventDefault(),s.stopPropagation()});return R===void 0?null:Bt(_t.span,{role:"separator","aria-orientation":"vertical","aria-label":a??u.resizeLabel??"Resize column","aria-valuenow":Math.round(N??g),"aria-valuemin":g,"aria-valuemax":L,tabIndex:0,"data-skdx-table-resizer":"","data-dragging":h?"":void 0,...l,...$t("table","column-resize-trigger",l.className),ref:F,onPointerDown:O,onPointerMove:ae,onPointerUp:Te(l.onPointerUp,()=>{D()&&H()}),onPointerCancel:Te(l.onPointerCancel,()=>{D()&&H()}),onKeyDown:Y,onKeyUp:Te(l.onKeyUp,s=>{Ut.has(s.key)&&H()})})};ge.displayName="TableColumnResizeTrigger";import{Fragment as tr,jsx as _,jsxs as rr}from"react/jsx-runtime";function xe(e,t){return W.Children.toArray(e).some(r=>W.isValidElement(r)?r.type===t?!0:r.type===W.Fragment&&xe(r.props.children,t):!1)}function Jt(e,t){if(e)return t==="asc"?"ascending":t==="desc"?"descending":"none"}function qt(e,t,r){if(e)return r.find(o=>o.columnKey===t)?.direction}function Zt(e,t){let r=e&&W.isValidElement(t)?t:null,o=r?r.props.children:t;return{asChildTarget:r,label:o}}function Qt(e,t,r){let o=e===!0&&t!==void 0;return{filterable:o,filtered:o&&(r[t]??"")!==""}}function jt({label:e,sortable:t,filterable:r,canResize:o}){return rr(tr,{children:[t&&!xe(e,Q)?_(Q,{children:e}):e,r&&!xe(e,Z)?_(Z,{}):null,o?_(ge,{}):null]})}function er(e,t){return e===void 0?t:{...t,width:e,"--skdx-table-column-width":`${e}px`}}var X=({columnKey:e,sortable:t,filterable:r,filterLabel:o,resizable:a=!1,minWidth:n=40,maxWidth:l=1e3,resizeLabel:m="Resize column",resizeStep:u=8,children:y,style:T,ref:F,...S})=>{let h=f("TableHeaderCell"),{registerHeaderCell:P}=h;W.useEffect(()=>P(),[P]);let R=t===!0&&e!==void 0,g=qt(R,e,h.sortList),L=Jt(R,g),{filterable:d,filtered:N}=Qt(r,e,h.filterMap),x=a&&e!==void 0,k=e===void 0?void 0:h.columnWidths[e],{asChildTarget:H,label:z}=Zt(S.asChild,y),D=_(jt,{label:z,sortable:R,filterable:d,canResize:x});return _(ve,{columnKey:e,sortable:R,filterable:d,filterLabel:o,minWidth:n,maxWidth:l,resizeLabel:m,resizeStep:u,children:_(Gt.th,{"aria-sort":L,"data-sort-direction":g,"data-filterable":d?"":void 0,"data-filtered":N?"":void 0,"data-resizable":x?"":void 0,style:er(k,T),...S,...Yt("table","header-cell",S.className),ref:F,children:H?W.cloneElement(H,void 0,D):D})})};X.displayName="TableHeaderCell";import{skdxPart as or}from"../utils/part.js";import{composeEventHandlers as ar,Primitive as nr}from"../utils/primitive.js";import{jsx as ir}from"react/jsx-runtime";var lr='button, a, input, [role="button"]',U=({rowId:e,ref:t,...r})=>{let o=f("TableRow"),a=e!==void 0&&o.isRowSelected(e),n=o.selectionMode!=="none"&&e!==void 0;return ir(nr.tr,{"data-state":a?"selected":void 0,"data-row-id":n?e:void 0,...r,...or("table","row",r.className),ref:t,onClick:ar(r.onClick,l=>{!n||l.target.closest(lr)||o.toggleRow(e,l.shiftKey)})})};U.displayName="TableRow";import{Checkbox as sr}from"../checkbox/Checkbox.js";import{skdxPart as dr}from"../utils/part.js";import{composeEventHandlers as cr}from"../utils/primitive.js";import{jsx as mr}from"react/jsx-runtime";var ye=({rowId:e,ref:t,...r})=>{let o=f("TableRowSelectCheckbox");return mr(sr,{...r,...dr("table","row-select-checkbox",r.className),ref:t,checked:o.isRowSelected(e),"data-skdx-table-row-select":"",onClick:cr(r.onClick,a=>{r.readOnly||o.toggleRow(e,a.shiftKey)})})};ye.displayName="TableRowSelectCheckbox";import{Checkbox as fr}from"../checkbox/Checkbox.js";import{skdxPart as ur}from"../utils/part.js";import{composeEventHandlers as pr}from"../utils/primitive.js";import{jsx as Rr}from"react/jsx-runtime";function br(e,t){let r=`${t} ${t===1?"row":"rows"}`;return e==="page"?`Select all ${r} on this page`:`Select all ${r}`}function Tr(e,t){return e.isAllSelected(t)?!0:e.isSomeSelected(t)?"indeterminate":!1}var Se=({rowIds:e,scope:t,getSelectAllLabel:r=br,ref:o,...a})=>{let n=f("TableSelectAllCheckbox"),l=Tr(n,e);return Rr(fr,{"aria-label":r(t,e.length),...a,...ur("table","select-all-checkbox",a.className),ref:o,checked:l,"data-skdx-table-select-all":"","data-scope":t,onClick:pr(a.onClick,()=>{a.readOnly||n.toggleAll(e)})})};Se.displayName="TableSelectAllCheckbox";import{Fragment as hr,jsx as E,jsxs as j}from"react/jsx-runtime";function B(e,t){return e[t]}function ee(e){return typeof e=="string"?e:String(e)}function Cr(e,t){return typeof e=="number"&&typeof t=="number"?e-t:e instanceof Date&&t instanceof Date?e.getTime()-t.getTime():ee(e??"").localeCompare(ee(t??""))}function gr(e,t){return t.length===0?[...e]:[...e].sort((r,o)=>{for(let{columnKey:a,direction:n}of t){let l=Cr(B(r,a),B(o,a));if(l!==0)return n==="desc"?-l:l}return 0})}function xr(e,t){let r=Object.entries(t).filter(([,o])=>o!=="");return r.length===0?[...e]:e.filter(o=>r.every(([a,n])=>ee(B(o,a)??"").toLowerCase().includes(n.toLowerCase())))}function yr(e,t){let r=B(e,"id");return String(typeof r=="string"||typeof r=="number"?r:t)}function Sr(e,t,r){return t.cell?t.cell(e):r?r(e,t):ee(B(e,t.key)??"")}function Ae({size:e,columns:t,data:r,sortable:o,selectable:a,expandable:n,renderExpanded:l,resizable:m,filterable:u,empty:y,caption:T,renderCell:F,rowId:S=yr,getRowLabel:h}){let P=f("Table"),R=Math.max(t.length+(a?1:0)+(n?1:0),1),g=te.useMemo(()=>gr(xr(r,P.filterMap),P.sortList),[r,P.filterMap,P.sortList]),L=g.map((d,N)=>S(d,N));return j(hr,{children:[T?E(ce,{children:T}):null,E(be,{children:j(U,{children:[a?E(X,{children:E(Se,{scope:"page",rowIds:L,size:e})}):null,n?E(X,{"aria-hidden":"true"}):null,t.map(d=>E(X,{columnKey:d.key,sortable:d.sortable??o,filterable:d.filterable??u,filterLabel:`Filter ${typeof d.header=="string"?d.header:d.key}`,resizable:d.resizable??m,minWidth:d.minWidth,maxWidth:d.maxWidth,children:d.header??d.key},d.key))]})}),E(de,{children:g.length===0&&y?E(me,{colSpan:R,children:y}):g.map((d,N)=>{let x=L[N],k=h?.(d,N)??`row ${x}`;return j(te.Fragment,{children:[j(U,{rowId:x,children:[a?E($,{children:E(ye,{rowId:x,"aria-label":`Select ${k}`,size:e})}):null,n?E($,{children:E(pe,{rowId:x,"aria-label":`Details for ${k}`})}):null,t.map(H=>E($,{children:Sr(d,H,F)},H.key))]}),n?E(fe,{rowId:x,colSpan:R,children:l?.(d)}):null]},x)})})]})}import*as ze from"react";import{useControllableState as Pr}from"../utils/useControllableState.js";var he={};function Me(e,t,r){let[o=he,a]=Pr({prop:e,defaultProp:t??he,onChange:r}),n=ze.useCallback((l,m)=>{a((u=he)=>{if((u[l]??"")===m)return u;let y={...u};return m===""?delete y[l]:y[l]=m,y})},[a]);return[o,n]}import{jsx as oe}from"react/jsx-runtime";function Ke(e,t){return e.size===t.size&&[...t].every(r=>e.has(r))?e:t}function $e(e){return e===void 0?new Set:e instanceof Set?e:new Set(e)}var _e=[],Oe={},Ve=[];function Lr(e,t,r){let o=e.find(n=>n.columnKey===t),a="asc";return o!==void 0&&(a=o.direction==="asc"?"desc":null),r?a===null?e.filter(n=>n.columnKey!==t):o===void 0?[...e,{columnKey:t,direction:a}]:e.map(n=>n.columnKey===t?{columnKey:t,direction:a}:n):a===null?[]:[{columnKey:t,direction:a}]}function Ir(e,t){return t===null?`${e} not sorted`:`${e} sorted ${t==="asc"?"ascending":"descending"}`}var[Dr,f]=Xe("Table"),[ve,v]=Xe("TableHeaderCell",{});function q(e,t){return`${e}-detail-${t}`}var Ue=({sort:e,defaultSort:t=Ve,onSortChange:r,filter:o,defaultFilter:a,onFilterChange:n,multiSort:l=!1,selected:m,defaultSelected:u,onSelectedChange:y,selectionMode:T="none",getSortLabel:F=Ir,expandedRowIds:S,defaultExpandedRowIds:h=_e,onExpandedRowIdsChange:P,columnWidths:R,defaultColumnWidths:g,onColumnWidthsChange:L,onColumnWidthsCommit:d,rowCount:N,columnCount:x,children:k,ref:H,density:z,stickyHeader:D,...O})=>{let ae=c.useId(),Y=c.useRef(null),s=wr(H,Y),[b=Ve,K]=re({prop:e,defaultProp:t,onChange:r}),ne=c.useMemo(()=>m===void 0?void 0:$e(m),[m]),[M=new Set,V]=re({prop:ne,defaultProp:$e(u??[]),onChange:i=>y?.([...i])}),Ye=c.useCallback((i,p=i)=>{let C=Lr(b,i,l);K(C);let w=C.find(I=>I.columnKey===i)?.direction??null;Er(F(p,w))},[b,l,K,F]),[Ge,Je]=Me(o,a,n),Pe=c.useCallback(()=>{let i=Y.current;return i?[...i.querySelectorAll(":scope > tbody > tr[data-row-id]")].map(C=>C.dataset.rowId):[]},[]),ke=c.useRef(null),qe=c.useCallback((i,p=!1)=>{if(T==="none")return;let C=ke.current;if(p&&T==="multiple"&&C!==null&&C!==i){let w=Pe(),I=w.indexOf(C),se=w.indexOf(i);if(I!==-1&&se!==-1){let nt=w.slice(Math.min(I,se),Math.max(I,se)+1);V((Le=new Set)=>Ke(Le,new Set([...Le,...nt])));return}}ke.current=i,V((w=new Set)=>{if(T==="single")return w.has(i)&&w.size===1?new Set:new Set([i]);let I=new Set(w);return I.has(i)?I.delete(i):I.add(i),I})},[T,V,Pe]),[we=_e,Ee]=re({prop:S,defaultProp:h,onChange:P}),le=c.useMemo(()=>new Set(we),[we]),[G=Oe,He]=re({prop:R,defaultProp:g??Oe,onChange:L}),Ze=c.useCallback(i=>{Ee((p=[])=>p.includes(i)?p.filter(C=>C!==i):[...p,i])},[Ee]),Qe=c.useCallback(i=>le.has(i),[le]),J=c.useRef(G);c.useLayoutEffect(()=>{J.current=G},[G]);let je=c.useCallback((i,p)=>{let C=J.current;if(C[i]===p)return;let w={...C,[i]:p};J.current=w,He(w)},[He]),Ne=Fr(d),et=c.useCallback(()=>{Ne(J.current)},[Ne]),tt=c.useCallback(i=>M.has(i),[M]),ie=c.useCallback(i=>i.length>0&&i.every(p=>M.has(p)),[M]),rt=c.useCallback(i=>i.some(p=>M.has(p))&&!ie(i),[M,ie]),ot=c.useCallback(i=>{T!=="none"&&V((p=new Set)=>{if(i.length>0&&i.every(C=>p.has(C))){let C=new Set(p);return i.forEach(w=>C.delete(w)),C}return Ke(p,new Set([...p,...i]))})},[T,V]),[We,Fe]=c.useState(0),at=c.useCallback(()=>(Fe(i=>i+1),()=>Fe(i=>i-1)),[]);return oe(Dr,{tableId:ae,headerCellCount:We>0?We:x??1,registerHeaderCell:at,sortList:b,multiSort:l,selected:M,selectionMode:T,toggleSort:Ye,filterMap:Ge,setColumnFilter:Je,toggleRow:qe,isRowSelected:tt,toggleAll:ot,isAllSelected:ie,isSomeSelected:rt,expandedRows:le,toggleRowExpanded:Ze,isRowExpanded:Qe,columnWidths:G,setColumnWidth:je,commitColumnWidths:et,children:oe(Nr.table,{"aria-rowcount":N,"aria-colcount":x,...O,...kr({density:z,stickyHeader:D},O),...Hr("table","root",O.className),ref:s,children:k})})};Ue.displayName="TableRoot";function Be({columns:e,data:t,sortable:r=!1,selectable:o=!1,expandable:a=!1,renderExpanded:n,resizable:l=!1,filterable:m=!1,empty:u,caption:y,renderCell:T,rowId:F,getRowLabel:S,selectionMode:h,size:P,ref:R,...g}){return oe(Ue,{...g,"data-size":void 0,selectionMode:h??(o?"multiple":"none"),ref:R,children:oe(Ae,{size:Wr(P,g,"data-size"),columns:e,data:t,sortable:r,selectable:o,expandable:a,renderExpanded:n,resizable:l,filterable:m,empty:u,caption:y,renderCell:T,rowId:F,getRowLabel:S})})}Be.displayName="Table";import{skdxPart as vr}from"../utils/part.js";import{Primitive as Ar}from"../utils/primitive.js";import{jsx as Mr}from"react/jsx-runtime";var zr=({ref:e,...t})=>Mr(Ar.tfoot,{...t,...vr("table","footer",t.className),ref:e});zr.displayName="TableFooter";import{skdxPart as Kr}from"../utils/part.js";import{Primitive as $r}from"../utils/primitive.js";import{jsx as Or}from"react/jsx-runtime";var _r=({columnKey:e,ref:t,...r})=>{let o=f("TableSortIndicator"),a=v("TableSortIndicator"),n=e??a.columnKey,l=n===void 0?-1:o.sortList.findIndex(u=>u.columnKey===n),m=o.sortList[l]?.direction??"none";return Or($r.span,{"aria-hidden":"true","data-skdx-table-sort-indicator":"","data-sort-direction":m,"data-sort-index":o.multiSort&&l!==-1?l:void 0,...r,...Kr("table","sort-indicator",r.className),ref:t})};_r.displayName="TableSortIndicator";export{Be as Table,de as TableBody,ce as TableCaption,$ as TableCell,Z as TableColumnHeaderFilterInput,Q as TableColumnHeaderSortTrigger,ge as TableColumnResizeTrigger,me as TableEmpty,pe as TableExpandTrigger,fe as TableExpandedRow,zr as TableFooter,be as TableHeader,X as TableHeaderCell,ve as TableHeaderCellProvider,Dr as TableProvider,Ue as TableRoot,U as TableRow,ye as TableRowSelectCheckbox,Se as TableSelectAllCheckbox,_r as TableSortIndicator,Ir as defaultGetSortLabel,br as defaultSelectAllLabel,q as tableDetailRowId,f as useTableContext,v as useTableHeaderCellContext};
2
+ import*as I from"react";import{appearanceAttrs as Wr}from"../utils/appearance.js";import{useComposedRefs as zr}from"../utils/composeRefs.js";import{createSafeContext as bt}from"../utils/createContext.js";import{skdxPart as Kr}from"../utils/part.js";import{Primitive as Gr}from"../utils/primitive.js";import{recipeAxis as $r}from"../utils/recipeAxis.js";import{useCallbackRef as _r}from"../utils/useCallbackRef.js";import{useControllableState as Br}from"../utils/useControllableState.js";import*as j from"react";import{skdxPart as Bt}from"../utils/part.js";import{Primitive as Vt}from"../utils/primitive.js";import{jsx as Xt}from"react/jsx-runtime";var pe=({ref:e,...t})=>Xt(Vt.tbody,{...t,...Bt("table","body",t.className),ref:e});pe.displayName="TableBody";import{skdxPart as Ut}from"../utils/part.js";import{Primitive as Yt}from"../utils/primitive.js";import{jsx as qt}from"react/jsx-runtime";var be=({ref:e,...t})=>qt(Yt.caption,{...t,...Ut("table","caption",t.className),ref:e});be.displayName="TableCaption";import{skdxPart as Jt}from"../utils/part.js";import{Primitive as Zt}from"../utils/primitive.js";import{jsx as Qt}from"react/jsx-runtime";var X=({columnKey:e,style:t,ref:o,...r})=>{let n=g("TableCell"),a=e===void 0?void 0:n.columnPins[e],l=e===void 0||a===void 0?void 0:n.pinOffsets[e]??0;return Qt(Zt.td,{"data-pinned":a,style:l===void 0?t:{...t,"--skdx-table-pin-offset":`${l}px`},...r,...Jt("table","cell",r.className),ref:o})};X.displayName="TableCell";import{skdxPart as jt}from"../utils/part.js";import{Primitive as eo}from"../utils/primitive.js";import{jsx as Be}from"react/jsx-runtime";var Te=({colSpan:e,children:t,ref:o,...r})=>{let n=g("TableEmpty");return Be(eo.tr,{"data-state":"empty","data-skdx-table-empty":"",...r,...jt("table","empty",r.className),ref:o,children:r.asChild?t:Be("td",{colSpan:e??n.headerCellCount,children:t})})};Te.displayName="TableEmpty";import{skdxPart as to}from"../utils/part.js";import{Primitive as oo}from"../utils/primitive.js";import{jsx as Ve}from"react/jsx-runtime";var ge=({rowId:e,colSpan:t,children:o,ref:r,...n})=>{let a=g("TableExpandedRow"),l=a.isRowExpanded(e);return Ve(oo.tr,{id:ae(a.tableId,e),"data-state":l?"expanded":"collapsed","data-skdx-table-detail-row":"",hidden:!l,...n,...to("table","expanded-row",n.className),ref:r,children:n.asChild?o:Ve("td",{colSpan:t??a.headerCellCount,children:o})})};ge.displayName="TableExpandedRow";import{Glyph as ro}from"../utils/Glyph.js";import{skdxPart as no}from"../utils/part.js";import{composeEventHandlers as ao,Primitive as lo}from"../utils/primitive.js";import{jsx as Re}from"react/jsx-runtime";var io=()=>Re(ro,{name:"chevron-right"}),Ce=({rowId:e,ref:t,...o})=>{let r=g("TableExpandTrigger"),n=r.isRowExpanded(e);return Re(lo.button,{type:"button","aria-expanded":n,"aria-controls":ae(r.tableId,e),"data-state":n?"expanded":"collapsed","data-skdx-table-expand-trigger":"",...o,...no("table","expand-trigger",o.className),ref:t,onClick:ao(o.onClick,a=>{a.stopPropagation(),r.toggleRowExpanded(e)}),children:o.children??Re(io,{})})};Ce.displayName="TableExpandTrigger";import{skdxPart as xe}from"../utils/part.js";import{Primitive as so}from"../utils/primitive.js";import{jsx as ye}from"react/jsx-runtime";var Se=({groupKey:e,colSpan:t,children:o,ref:r,...n})=>{let a=g("TableGroupRow"),l=a.isGroupCollapsed(e);return ye(so.tr,{"data-state":l?"collapsed":"expanded","data-skdx-table-group-row":"",...n,...xe("table","group-row",n.className),ref:r,children:n.asChild?o:ye("th",{scope:"rowgroup",colSpan:t??a.headerCellCount,...xe("table","group-cell"),children:ye("button",{type:"button","aria-expanded":!l,...xe("table","group-trigger"),onClick:()=>a.toggleGroup(e),children:o})})})};Se.displayName="TableGroupRow";import{skdxPart as co}from"../utils/part.js";import{Primitive as uo}from"../utils/primitive.js";import{jsx as mo}from"react/jsx-runtime";var Pe=({ref:e,...t})=>mo(uo.thead,{...t,...co("table","header",t.className),ref:e});Pe.displayName="TableHeader";import*as O from"react";import{skdxPart as $o}from"../utils/part.js";import{Primitive as _o}from"../utils/primitive.js";import{skdxPart as fo}from"../utils/part.js";import{composeEventHandlers as po,Primitive as bo}from"../utils/primitive.js";import{jsx as To}from"react/jsx-runtime";var le=({columnKey:e,ref:t,...o})=>{let r=g("TableColumnHeaderFilterInput"),n=D("TableColumnHeaderFilterInput"),a=e??(n.filterable?n.columnKey:void 0);if(a===void 0)return null;let l=r.filterMap[a]??"";return To(bo.input,{type:"search","aria-label":n.filterLabel??`Filter ${a}`,"data-skdx-table-filter-input":"","data-filtered":l===""?void 0:"",...o,value:l,...fo("table","column-header-filter-input",o.className),ref:t,onChange:po(o.onChange,d=>{r.setColumnFilter(a,d.currentTarget.value)})})};le.displayName="TableColumnHeaderFilterInput";import{skdxPart as go}from"../utils/part.js";import{composeEventHandlers as Ro,Primitive as Co}from"../utils/primitive.js";import{jsx as xo}from"react/jsx-runtime";var ie=({columnKey:e,ref:t,...o})=>{let r=g("TableColumnHeaderSortTrigger"),n=D("TableColumnHeaderSortTrigger"),a=e??(n.sortable?n.columnKey:void 0);if(a===void 0)return null;let l=r.sortList.findIndex(i=>i.columnKey===a),d=r.sortList[l]?.direction;return xo(Co.button,{type:"button","data-skdx-table-sort-trigger":"","data-sort-direction":d,"data-sort-index":r.multiSort&&l!==-1?l:void 0,...o,...go("table","column-header-sort-trigger",o.className),ref:t,onClick:Ro(o.onClick,i=>{r.toggleSort(a,i.currentTarget.textContent?.trim()||a)})})};ie.displayName="TableColumnHeaderSortTrigger";import{skdxPart as yo}from"../utils/part.js";import{composeEventHandlers as So,Primitive as Po}from"../utils/primitive.js";import{jsx as Xe}from"react/jsx-runtime";var se=({columnKey:e,side:t="start",label:o,ref:r,...n})=>{let a=g("TableColumnPinTrigger"),l=D("TableColumnPinTrigger"),d=e??l.columnKey;if(d===void 0)return null;let i=a.columnPins[d],m=i===t;return Xe(Po.button,{type:"button","aria-pressed":m,"aria-label":o??l.pinLabel??"Pin column","data-skdx-table-pin-trigger":"","data-pinned":i,...n,...yo("table","column-pin-trigger",n.className),ref:r,onClick:So(n.onClick,f=>{f.stopPropagation(),a.setColumnPin(d,m?null:t)}),children:n.children??Xe("span",{"aria-hidden":"true",children:t==="start"?"\u22A3":"\u22A2"})})};se.displayName="TableColumnPinTrigger";import*as G from"react";import{useComposedRefs as ho}from"../utils/composeRefs.js";import{directionalKey as wo,useDirection as ko}from"../utils/direction.js";import{skdxPart as Eo}from"../utils/part.js";import{composeEventHandlers as he,Primitive as No,useComposedEventHandlers as we}from"../utils/primitive.js";import{useCallbackRef as Ue}from"../utils/useCallbackRef.js";import{jsx as Ye}from"react/jsx-runtime";function Ho(e,t){if(!e)return t;let o=e.cloneNode(!0);for(let r of o.querySelectorAll('[aria-hidden="true"], input, svg'))r.remove();return o.textContent?.trim()||t}var de=({columnKey:e,label:t,ref:o,...r})=>{let n=g("TableColumnReorderTrigger"),a=D("TableColumnReorderTrigger"),l=ko(),d=G.useRef(null),i=ho(o,d),m=G.useRef(null),[f,P]=G.useState(!1),C=e??a.columnKey,x=()=>{let s=d.current?.closest("tr");return s?[...s.querySelectorAll("th[data-column-key]")]:[]},S=s=>s.findIndex(p=>p.dataset.columnKey===C),u=Ue(s=>{if(C===void 0)return;let p=d.current?.closest("th");n.moveColumn(C,s,Ho(p,C))}),T=Ue(()=>{let s=m.current;if(!s)return null;m.current=null,P(!1);let p=d.current;return p?.hasPointerCapture?.(s.pointerId)&&p.releasePointerCapture(s.pointerId),s});G.useEffect(()=>{if(!f)return;let s=p=>{p.key==="Escape"&&T()};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[f,T]);let y=we(r.onPointerDown,s=>{if(s.button!==0)return;s.stopPropagation();let p=S(x());p!==-1&&(m.current={pointerId:s.pointerId,from:p,to:p},P(!0),s.currentTarget.setPointerCapture?.(s.pointerId))}),h=we(r.onPointerMove,s=>{let p=m.current;if(!p)return;let E=x().findIndex(H=>{let N=H.getBoundingClientRect();return s.clientX>=N.left&&s.clientX<=N.right});E!==-1&&(p.to=E)}),R=()=>{let s=T();s&&s.to!==s.from&&u(s.to)},k=we(r.onKeyDown,s=>{let p=x(),E=S(p);if(E===-1)return;let H=wo(s.key,s.currentTarget,l),N;if(H==="ArrowRight")N=E+1;else if(H==="ArrowLeft")N=E-1;else if(s.key==="Home")N=0;else if(s.key==="End")N=p.length-1;else return;s.preventDefault(),s.stopPropagation(),u(N)});return C===void 0?null:Ye(No.button,{type:"button","aria-label":t??a.reorderLabel??"Move column","data-skdx-table-reorder-trigger":"","data-dragging":f?"":void 0,...r,...Eo("table","column-reorder-trigger",r.className),ref:i,onPointerDown:y,onPointerMove:h,onPointerUp:he(r.onPointerUp,R),onPointerCancel:he(r.onPointerCancel,R),onKeyDown:k,onClick:he(r.onClick,s=>{s.stopPropagation()}),children:r.children??Ye("span",{"aria-hidden":"true",children:"\u283F"})})};de.displayName="TableColumnReorderTrigger";import*as A from"react";import{clamp as vo}from"../utils/clamp.js";import{useComposedRefs as Lo}from"../utils/composeRefs.js";import{directionalKey as Mo,resolveDirection as Io,useDirection as Do}from"../utils/direction.js";import{skdxPart as Oo}from"../utils/part.js";import{composeEventHandlers as ke,Primitive as Fo,useComposedEventHandlers as Ee}from"../utils/primitive.js";import{useCallbackRef as Ne}from"../utils/useCallbackRef.js";import{jsx as Go}from"react/jsx-runtime";var Ao=40,Wo=1e3,zo=8,Ko=new Set(["ArrowLeft","ArrowRight","Home","End"]),He=({columnKey:e,minWidth:t,maxWidth:o,step:r,label:n,ref:a,...l})=>{let d=g("TableColumnResizeTrigger"),i=D("TableColumnResizeTrigger"),m=Do(),f=A.useRef(null),P=Lo(a,f),C=A.useRef(null),[x,S]=A.useState(!1),u=e??i.columnKey,T=t??i.minWidth??Ao,y=o??i.maxWidth??Wo,h=r??i.resizeStep??zo,R=u===void 0?void 0:d.columnWidths[u],k=A.useRef(!1),s=Ne(b=>{if(u===void 0)return;let w=vo(Math.round(b),T,y);w!==d.columnWidths[u]&&(k.current=!0),d.setColumnWidth(u,w)}),p=Ne(()=>{k.current&&(k.current=!1,d.commitColumnWidths())}),E=()=>R!==void 0?R:(f.current?.closest("th")?.getBoundingClientRect().width??0)||T,H=Ne(()=>{let b=C.current;if(!b)return null;C.current=null,S(!1);let w=f.current;return w?.hasPointerCapture?.(b.pointerId)&&w.releasePointerCapture(b.pointerId),b});A.useEffect(()=>{if(!x)return;let b=w=>{if(w.key!=="Escape")return;let M=H();M&&(s(M.startWidth),p())};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[x,H,s,p]);let N=Ee(l.onPointerDown,b=>{b.button===0&&(b.preventDefault(),b.stopPropagation(),C.current={startX:b.clientX,startWidth:E(),pointerId:b.pointerId},S(!0),b.currentTarget.setPointerCapture?.(b.pointerId))}),z=Ee(l.onPointerMove,b=>{let w=C.current;if(!w)return;let c=Io(b.currentTarget,m)==="rtl"?w.startX-b.clientX:b.clientX-w.startX;s(w.startWidth+c)}),K=Ee(l.onKeyDown,b=>{let w=Mo(b.key,b.currentTarget,m);if(w==="ArrowRight")s(E()+h);else if(w==="ArrowLeft")s(E()-h);else if(b.key==="Home")s(T);else if(b.key==="End")s(y);else return;b.preventDefault(),b.stopPropagation()});return u===void 0?null:Go(Fo.span,{role:"separator","aria-orientation":"vertical","aria-label":n??i.resizeLabel??"Resize column","aria-valuenow":Math.round(R??T),"aria-valuemin":T,"aria-valuemax":y,tabIndex:0,"data-skdx-table-resizer":"","data-dragging":x?"":void 0,...l,...Oo("table","column-resize-trigger",l.className),ref:P,onPointerDown:N,onPointerMove:z,onPointerUp:ke(l.onPointerUp,()=>{H()&&p()}),onPointerCancel:ke(l.onPointerCancel,()=>{H()&&p()}),onKeyDown:K,onKeyUp:ke(l.onKeyUp,b=>{Ko.has(b.key)&&p()})})};He.displayName="TableColumnResizeTrigger";import{Fragment as Qo,jsx as W,jsxs as jo}from"react/jsx-runtime";function J(e,t){return O.Children.toArray(e).some(o=>O.isValidElement(o)?o.type===t?!0:o.type===O.Fragment&&J(o.props.children,t):!1)}function Bo(e,t){if(e)return t==="asc"?"ascending":t==="desc"?"descending":"none"}function Vo(e,t,o){if(e)return o.find(r=>r.columnKey===t)?.direction}function Xo(e,t){let o=e&&O.isValidElement(t)?t:null,r=o?o.props.children:t;return{asChildTarget:o,label:r}}function Uo(e,t,o){let r=e===!0&&t!==void 0;return{filterable:r,filtered:r&&(o[t]??"")!==""}}function Yo({label:e,sortable:t,filterable:o,canReorder:r,canPin:n,canResize:a}){return jo(Qo,{children:[t&&!J(e,ie)?W(ie,{children:e}):e,o&&!J(e,le)?W(le,{}):null,r&&!J(e,de)?W(de,{}):null,n&&!J(e,se)?W(se,{}):null,a?W(He,{}):null]})}function qo(e,t){let o=e!==void 0;return{sortable:t.sortable===!0&&o,canResize:t.resizable&&o,canReorder:t.reorderable&&o,canPin:t.pinnable&&o}}function Jo(e,t){if(e===void 0)return{width:void 0,pinnedSide:void 0,pinOffset:void 0};let o=t.columnPins[e];return{width:t.columnWidths[e],pinnedSide:o,pinOffset:o===void 0?void 0:t.pinOffsets[e]??0}}function q(e){return e?"":void 0}function Zo(e,t,o){if(e===void 0&&t===void 0)return o;let r={...o};return e!==void 0&&(r.width=e,r["--skdx-table-column-width"]=`${e}px`),t!==void 0&&(r["--skdx-table-pin-offset"]=`${t}px`),r}var Z=({columnKey:e,sortable:t,filterable:o,filterLabel:r,resizable:n=!1,minWidth:a=40,maxWidth:l=1e3,resizeLabel:d="Resize column",resizeStep:i=8,reorderable:m=!1,pinnable:f=!1,reorderLabel:P="Move column",pinLabel:C="Pin column",children:x,style:S,ref:u,...T})=>{let y=g("TableHeaderCell"),{registerHeaderCell:h}=y;O.useEffect(()=>h(),[h]);let{sortable:R,canResize:k,canReorder:s,canPin:p}=qo(e,{sortable:t,resizable:n,reorderable:m,pinnable:f}),E=Vo(R,e,y.sortList),H=Bo(R,E),{filterable:N,filtered:z}=Uo(o,e,y.filterMap),{width:K,pinnedSide:b,pinOffset:w}=Jo(e,y),{asChildTarget:M,label:c}=Xo(T.asChild,x),L=W(Yo,{label:c,sortable:R,filterable:N,canReorder:s,canPin:p,canResize:k});return W(qe,{columnKey:e,sortable:R,filterable:N,filterLabel:r,minWidth:a,maxWidth:l,resizeLabel:d,resizeStep:i,reorderable:s,pinnable:p,reorderLabel:P,pinLabel:C,children:W(_o.th,{"aria-sort":H,"data-column-key":e,"data-sort-direction":E,"data-filterable":q(N),"data-filtered":q(z),"data-resizable":q(k),"data-reorderable":q(s),"data-pinnable":q(p),"data-pinned":b,style:Zo(K,w,S),...T,...$o("table","header-cell",T.className),ref:u,children:M?O.cloneElement(M,void 0,L):L})})};Z.displayName="TableHeaderCell";import{skdxPart as er}from"../utils/part.js";import{composeEventHandlers as tr,Primitive as or}from"../utils/primitive.js";import{jsx as nr}from"react/jsx-runtime";var rr='button, a, input, [role="button"]',Q=({rowId:e,level:t,style:o,ref:r,...n})=>{let a=g("TableRow"),l=e!==void 0&&a.isRowSelected(e),d=a.selectionMode!=="none"&&e!==void 0;return nr(or.tr,{"data-state":l?"selected":void 0,"data-row-id":d?e:void 0,"data-level":t,style:t===void 0?o:{...o,"--skdx-table-row-level":t},...n,...er("table","row",n.className),ref:r,onClick:tr(n.onClick,i=>{!d||i.target.closest(rr)||a.toggleRow(e,i.shiftKey)})})};Q.displayName="TableRow";import{Checkbox as ar}from"../checkbox/Checkbox.js";import{skdxPart as lr}from"../utils/part.js";import{composeEventHandlers as ir}from"../utils/primitive.js";import{jsx as sr}from"react/jsx-runtime";var ve=({rowId:e,ref:t,...o})=>{let r=g("TableRowSelectCheckbox");return sr(ar,{...o,...lr("table","row-select-checkbox",o.className),ref:t,checked:r.isRowSelected(e),"data-skdx-table-row-select":"",onClick:ir(o.onClick,n=>{o.readOnly||r.toggleRow(e,n.shiftKey)})})};ve.displayName="TableRowSelectCheckbox";import{Checkbox as dr}from"../checkbox/Checkbox.js";import{skdxPart as cr}from"../utils/part.js";import{composeEventHandlers as ur}from"../utils/primitive.js";import{jsx as pr}from"react/jsx-runtime";function mr(e,t){let o=`${t} ${t===1?"row":"rows"}`;return e==="page"?`Select all ${o} on this page`:`Select all ${o}`}function fr(e,t){return e.isAllSelected(t)?!0:e.isSomeSelected(t)?"indeterminate":!1}var Le=({rowIds:e,scope:t,getSelectAllLabel:o=mr,ref:r,...n})=>{let a=g("TableSelectAllCheckbox"),l=fr(a,e);return pr(dr,{"aria-label":o(t,e.length),...n,...cr("table","select-all-checkbox",n.className),ref:r,checked:l,"data-skdx-table-select-all":"","data-scope":t,onClick:ur(n.onClick,()=>{n.readOnly||a.toggleAll(e)})})};Le.displayName="TableSelectAllCheckbox";import{Glyph as br}from"../utils/Glyph.js";import{skdxPart as Tr}from"../utils/part.js";import{composeEventHandlers as gr,Primitive as Rr}from"../utils/primitive.js";import{jsx as Me}from"react/jsx-runtime";var Cr=()=>Me(br,{name:"chevron-right"}),Ie=({rowId:e,ref:t,...o})=>{let r=g("TableTreeTrigger"),n=r.isNodeExpanded(e);return Me(Rr.button,{type:"button","aria-expanded":n,"data-state":n?"expanded":"collapsed","data-skdx-table-tree-trigger":"",...o,...Tr("table","tree-trigger",o.className),ref:t,onClick:gr(o.onClick,a=>{a.stopPropagation(),r.toggleNode(e)}),children:o.children??Me(Cr,{})})};Ie.displayName="TableTreeTrigger";import{Fragment as kr,jsx as v,jsxs as U}from"react/jsx-runtime";function Y(e,t){return e[t]}function ee(e){return typeof e=="string"?e:String(e)}function xr(e,t){return typeof e=="number"&&typeof t=="number"?e-t:e instanceof Date&&t instanceof Date?e.getTime()-t.getTime():ee(e??"").localeCompare(ee(t??""))}function Je(e,t){return t.length===0?[...e]:[...e].sort((o,r)=>{for(let{columnKey:n,direction:a}of t){let l=xr(Y(o,n),Y(r,n));if(l!==0)return a==="desc"?-l:l}return 0})}function yr(e,t){let o=Object.entries(t).filter(([,r])=>r!=="");return o.length===0?[...e]:e.filter(r=>o.every(([n,a])=>ee(Y(r,n)??"").toLowerCase().includes(a.toLowerCase())))}function Sr(e,t){let o=Y(e,"id");return String(typeof o=="string"||typeof o=="number"?o:t)}function Pr(e,t,o){let r=new Map(e.map(i=>[i.key,i])),n=t.map(i=>r.get(i)).filter(i=>i!==void 0),a=e.filter(i=>!t.includes(i.key)),l=[...n,...a],d=i=>l.filter(m=>{let f=o[m.key];return(f==="start"||f==="end"?f:void 0)===i});return[...d("start"),...d(void 0),...d("end")]}function Ze(e,t,o,r){for(let n of e){let a=o.length,l=r.rowId(n,a),d=r.getSubRows?.(n)??[];o.push({row:n,id:l,index:a,level:t,hasChildren:d.length>0}),d.length>0&&r.isNodeExpanded(l)&&Ze(Je(d,r.sortList),t+1,o,r)}}function hr(e,t){let o=new Map;for(let r of e){let n=ee(Y(r,t)??""),a=o.get(n);a?a.push(r):o.set(n,[r])}return[...o].map(([r,n])=>({groupKey:r,rows:n}))}function wr(e,t,o){return t.cell?t.cell(e):o?o(e,t):ee(Y(e,t.key)??"")}function Qe({size:e,columns:t,data:o,sortable:r,selectable:n,expandable:a,renderExpanded:l,resizable:d,filterable:i,reorderable:m,pinnable:f,groupBy:P,renderGroupHeader:C,getSubRows:x,empty:S,caption:u,renderCell:T,rowId:y=Sr,getRowLabel:h}){let R=g("Table"),k=Math.max(t.length+(n?1:0)+(a?1:0),1),s=Pr(t,R.columnOrder,R.columnPins),p=j.useMemo(()=>Je(yr(o,R.filterMap),R.sortList),[o,R.filterMap,R.sortList]),E=[],H=c=>{let L=E.length;return Ze(c,0,E,{rowId:y,getSubRows:x,sortList:R.sortList,isNodeExpanded:R.isNodeExpanded}),E.slice(L)},N=P===void 0?null:hr(p,P),z=N===null?H(p):[],K=N?.map(c=>({...c,entries:R.isGroupCollapsed(c.groupKey)?[]:H(c.rows)}))??[],b=E.map(c=>c.id),w=c=>{let L=h?.(c.row,c.index)??`row ${c.id}`;return U(j.Fragment,{children:[U(Q,{rowId:c.id,level:x?c.level:void 0,children:[n?v(X,{children:v(ve,{rowId:c.id,"aria-label":`Select ${L}`,size:e})}):null,a?v(X,{children:v(Ce,{rowId:c.id,"aria-label":`Details for ${L}`})}):null,s.map((_,me)=>U(X,{columnKey:_.key,children:[me===0&&c.hasChildren?v(Ie,{rowId:c.id,"aria-label":`Children of ${L}`}):null,wr(c.row,_,T)]},_.key))]}),a?v(ge,{rowId:c.id,colSpan:k,children:l?.(c.row)}):null]},c.id)},M;return p.length===0&&S?M=v(Te,{colSpan:k,children:S}):N===null?M=z.map(w):M=K.map(c=>U(j.Fragment,{children:[v(Se,{groupKey:c.groupKey,colSpan:k,children:C?.(c.groupKey,c.rows)??`${c.groupKey} (${c.rows.length})`}),c.entries.map(w)]},c.groupKey)),U(kr,{children:[u?v(be,{children:u}):null,v(Pe,{children:U(Q,{children:[n?v(Z,{children:v(Le,{scope:"page",rowIds:b,size:e})}):null,a?v(Z,{"aria-hidden":"true"}):null,s.map(c=>{let L=typeof c.header=="string"?c.header:c.key;return v(Z,{columnKey:c.key,sortable:c.sortable??r,filterable:c.filterable??i,filterLabel:`Filter ${L}`,resizable:c.resizable??d,reorderable:c.reorderable??m,pinnable:c.pinnable??f,reorderLabel:`Move ${L}`,pinLabel:`Pin ${L}`,minWidth:c.minWidth,maxWidth:c.maxWidth,children:c.header??c.key},c.key)})]})}),v(pe,{children:M})]})}import*as $ from"react";import{clamp as Er}from"../utils/clamp.js";import{announce as Nr}from"../utils/liveAnnouncer.js";import{useCallbackRef as Hr}from"../utils/useCallbackRef.js";import{useControllableState as tt}from"../utils/useControllableState.js";var je=[],De={},et={};function vr(e,t){let o=Object.keys(e);return o.length===Object.keys(t).length&&o.every(r=>e[r]===t[r])}function Lr(e){let t={};for(let o of["start","end"]){let r=[...e.querySelectorAll(`thead th[data-pinned="${o}"]`)];o==="end"&&r.reverse();let n=0;for(let a of r){let l=a.dataset.columnKey;l!==void 0&&(t[l]=n,n+=a.offsetWidth)}}return t}function ot(e,t,o){return`${e} moved to position ${t} of ${o}`}function rt(e,t,o,r,n=ot){let[a=je,l]=tt({prop:t,defaultProp:o??je,onChange:r}),d=Hr(n),i=$.useCallback((m,f,P=m)=>{let C=e.current;if(!C)return;let S=[...C.querySelectorAll(":scope > thead th[data-column-key]")].map(y=>y.dataset.columnKey),u=S.indexOf(m),T=Er(f,0,S.length-1);u===-1||u===T||(S.splice(u,1),S.splice(T,0,m),l(S),Nr(d(P,T+1,S.length)))},[e,l,d]);return[a,i]}function nt(e,t,o,r){let[n=De,a]=tt({prop:t,defaultProp:o??De,onChange:r}),l=$.useCallback((f,P)=>{a((C=De)=>{let x={...C};return P===null?delete x[f]:x[f]=P,x})},[a]),[d,i]=$.useState(et),m=Object.keys(n).length>0;return $.useLayoutEffect(()=>{let f=e.current;if(!m||!f){i(x=>Object.keys(x).length===0?x:et);return}let P=()=>{let x=Lr(f);i(S=>vr(S,x)?S:x)};if(P(),typeof ResizeObserver>"u")return;let C=new ResizeObserver(P);return C.observe(f),()=>C.disconnect()},[e,m,n]),[n,l,d]}import*as te from"react";import{useControllableState as Mr}from"../utils/useControllableState.js";var Oe=[];function ce(e,t,o){let[r=Oe,n]=Mr({prop:e,defaultProp:t??Oe,onChange:o}),a=te.useMemo(()=>new Set(r),[r]),l=te.useCallback(i=>{n((m=Oe)=>m.includes(i)?m.filter(f=>f!==i):[...m,i])},[n]),d=te.useCallback(i=>a.has(i),[a]);return[a,l,d]}import*as at from"react";import{useControllableState as Ir}from"../utils/useControllableState.js";var Fe={};function lt(e,t,o){let[r=Fe,n]=Ir({prop:e,defaultProp:t??Fe,onChange:o}),a=at.useCallback((l,d)=>{n((i=Fe)=>{if((i[l]??"")===d)return i;let m={...i};return d===""?delete m[l]:m[l]=d,m})},[n]);return[r,a]}import*as F from"react";import{useControllableState as Dr}from"../utils/useControllableState.js";function it(e,t){return e.size===t.size&&[...t].every(o=>e.has(o))?e:t}function st(e){return e===void 0?new Set:e instanceof Set?e:new Set(e)}function dt(e,t,o,r,n){let a=F.useMemo(()=>t===void 0?void 0:st(t),[t]),[l=new Set,d]=Dr({prop:a,defaultProp:st(o??[]),onChange:u=>r?.([...u])}),i=F.useCallback(()=>{let u=e.current;return u?[...u.querySelectorAll(":scope > tbody > tr[data-row-id]")].map(y=>y.dataset.rowId):[]},[e]),m=F.useRef(null),f=F.useCallback((u,T=!1)=>{if(n==="none")return;let y=m.current;if(T&&n==="multiple"&&y!==null&&y!==u){let h=i(),R=h.indexOf(y),k=h.indexOf(u);if(R!==-1&&k!==-1){let s=h.slice(Math.min(R,k),Math.max(R,k)+1);d((p=new Set)=>it(p,new Set([...p,...s])));return}}m.current=u,d((h=new Set)=>{if(n==="single")return h.has(u)&&h.size===1?new Set:new Set([u]);let R=new Set(h);return R.has(u)?R.delete(u):R.add(u),R})},[n,d,i]),P=F.useCallback(u=>l.has(u),[l]),C=F.useCallback(u=>u.length>0&&u.every(T=>l.has(T)),[l]),x=F.useCallback(u=>u.some(T=>l.has(T))&&!C(u),[l,C]),S=F.useCallback(u=>{n!=="none"&&d((T=new Set)=>{if(u.length>0&&u.every(y=>T.has(y))){let y=new Set(T);return u.forEach(h=>y.delete(h)),y}return it(T,new Set([...T,...u]))})},[n,d]);return{selected:l,toggleRow:f,isRowSelected:P,toggleAll:S,isAllSelected:C,isSomeSelected:x}}import*as ut from"react";import{announce as Or}from"../utils/liveAnnouncer.js";import{useControllableState as Fr}from"../utils/useControllableState.js";var ct=[];function Ar(e,t,o){let r=e.find(a=>a.columnKey===t),n="asc";return r!==void 0&&(n=r.direction==="asc"?"desc":null),o?n===null?e.filter(a=>a.columnKey!==t):r===void 0?[...e,{columnKey:t,direction:n}]:e.map(a=>a.columnKey===t?{columnKey:t,direction:n}:a):n===null?[]:[{columnKey:t,direction:n}]}function mt(e,t){return t===null?`${e} not sorted`:`${e} sorted ${t==="asc"?"ascending":"descending"}`}function ft(e,t,o,r,n=mt){let[a=ct,l]=Fr({prop:e,defaultProp:t??ct,onChange:o}),d=ut.useCallback((i,m=i)=>{let f=Ar(a,i,r);l(f);let P=f.find(C=>C.columnKey===i)?.direction??null;Or(n(m,P))},[a,r,l,n]);return[a,d]}import{jsx as ue}from"react/jsx-runtime";var pt={},[Vr,g]=bt("Table"),[qe,D]=bt("TableHeaderCell",{});function ae(e,t){return`${e}-detail-${t}`}var Tt=({sort:e,defaultSort:t,onSortChange:o,filter:r,defaultFilter:n,onFilterChange:a,multiSort:l=!1,selected:d,defaultSelected:i,onSelectedChange:m,selectionMode:f="none",getSortLabel:P,expandedRowIds:C,defaultExpandedRowIds:x,onExpandedRowIdsChange:S,columnWidths:u,defaultColumnWidths:T,onColumnWidthsChange:y,onColumnWidthsCommit:h,columnOrder:R,defaultColumnOrder:k,onColumnOrderChange:s,columnPins:p,defaultColumnPins:E,onColumnPinsChange:H,getMoveLabel:N,collapsedGroups:z,defaultCollapsedGroups:K,onCollapsedGroupsChange:b,expandedNodeIds:w,defaultExpandedNodeIds:M,onExpandedNodeIdsChange:c,rowCount:L,columnCount:_,children:me,ref:Rt,density:Ct,stickyHeader:xt,...fe})=>{let yt=I.useId(),oe=I.useRef(null),St=zr(Rt,oe),[Pt,ht]=ft(e,t,o,l,P),[wt,kt]=lt(r,n,a),B=dt(oe,d,i,m,f),[Et,Nt,Ht]=ce(C,x,S),[vt,Lt,Mt]=ce(z,K,b),[It,Dt,Ot]=ce(w,M,c),[Ft,At]=rt(oe,R,k,s,N),[Wt,zt,Kt]=nt(oe,p,E,H),[re=pt,Ae]=Br({prop:u,defaultProp:T??pt,onChange:y}),ne=I.useRef(re);I.useLayoutEffect(()=>{ne.current=re},[re]);let Gt=I.useCallback((V,Ge)=>{let $e=ne.current;if($e[V]===Ge)return;let _e={...$e,[V]:Ge};ne.current=_e,Ae(_e)},[Ae]),We=_r(h),$t=I.useCallback(()=>{We(ne.current)},[We]),[ze,Ke]=I.useState(0),_t=I.useCallback(()=>(Ke(V=>V+1),()=>Ke(V=>V-1)),[]);return ue(Vr,{tableId:yt,headerCellCount:ze>0?ze:_??1,registerHeaderCell:_t,sortList:Pt,multiSort:l,selected:B.selected,selectionMode:f,toggleSort:ht,filterMap:wt,setColumnFilter:kt,toggleRow:B.toggleRow,isRowSelected:B.isRowSelected,toggleAll:B.toggleAll,isAllSelected:B.isAllSelected,isSomeSelected:B.isSomeSelected,expandedRows:Et,toggleRowExpanded:Nt,isRowExpanded:Ht,columnWidths:re,setColumnWidth:Gt,commitColumnWidths:$t,columnOrder:Ft,moveColumn:At,columnPins:Wt,setColumnPin:zt,pinOffsets:Kt,collapsedGroups:vt,toggleGroup:Lt,isGroupCollapsed:Mt,expandedNodes:It,toggleNode:Dt,isNodeExpanded:Ot,children:ue(Gr.table,{"aria-rowcount":L,"aria-colcount":_,...fe,...Wr({density:Ct,stickyHeader:xt},fe),...Kr("table","root",fe.className),ref:St,children:me})})};Tt.displayName="TableRoot";function gt({columns:e,data:t,sortable:o=!1,selectable:r=!1,expandable:n=!1,renderExpanded:a,resizable:l=!1,filterable:d=!1,reorderable:i=!1,pinnable:m=!1,groupBy:f,renderGroupHeader:P,getSubRows:C,empty:x,caption:S,renderCell:u,rowId:T,getRowLabel:y,selectionMode:h,size:R,ref:k,...s}){return ue(Tt,{...s,"data-size":void 0,selectionMode:h??(r?"multiple":"none"),ref:k,children:ue(Qe,{size:$r(R,s,"data-size"),columns:e,data:t,sortable:o,selectable:r,expandable:n,renderExpanded:a,resizable:l,filterable:d,reorderable:i,pinnable:m,groupBy:f,renderGroupHeader:P,getSubRows:C,empty:x,caption:S,renderCell:u,rowId:T,getRowLabel:y})})}gt.displayName="Table";import{skdxPart as Xr}from"../utils/part.js";import{Primitive as Ur}from"../utils/primitive.js";import{jsx as qr}from"react/jsx-runtime";var Yr=({ref:e,...t})=>qr(Ur.tfoot,{...t,...Xr("table","footer",t.className),ref:e});Yr.displayName="TableFooter";import{skdxPart as Jr}from"../utils/part.js";import{Primitive as Zr}from"../utils/primitive.js";import{jsx as jr}from"react/jsx-runtime";var Qr=({columnKey:e,ref:t,...o})=>{let r=g("TableSortIndicator"),n=D("TableSortIndicator"),a=e??n.columnKey,l=a===void 0?-1:r.sortList.findIndex(i=>i.columnKey===a),d=r.sortList[l]?.direction??"none";return jr(Zr.span,{"aria-hidden":"true","data-skdx-table-sort-indicator":"","data-sort-direction":d,"data-sort-index":r.multiSort&&l!==-1?l:void 0,...o,...Jr("table","sort-indicator",o.className),ref:t})};Qr.displayName="TableSortIndicator";export{gt as Table,pe as TableBody,be as TableCaption,X as TableCell,le as TableColumnHeaderFilterInput,ie as TableColumnHeaderSortTrigger,se as TableColumnPinTrigger,de as TableColumnReorderTrigger,He as TableColumnResizeTrigger,Te as TableEmpty,Ce as TableExpandTrigger,ge as TableExpandedRow,Yr as TableFooter,Se as TableGroupRow,Pe as TableHeader,Z as TableHeaderCell,qe as TableHeaderCellProvider,Vr as TableProvider,Tt as TableRoot,Q as TableRow,ve as TableRowSelectCheckbox,Le as TableSelectAllCheckbox,Qr as TableSortIndicator,Ie as TableTreeTrigger,ot as defaultGetMoveLabel,mt as defaultGetSortLabel,mr as defaultSelectAllLabel,ae as tableDetailRowId,g as useTableContext,D as useTableHeaderCellContext};
@@ -5,7 +5,7 @@ import type { TableColumn, TableRowSelectCheckboxProps } from './types.cjs';
5
5
  *
6
6
  * @internal
7
7
  */
8
- export declare function TableAnatomy<T extends object>({ size, columns, data, sortable, selectable, expandable, renderExpanded, resizable, filterable, empty, caption, renderCell, rowId, getRowLabel, }: {
8
+ export declare function TableAnatomy<T extends object>({ size, columns, data, sortable, selectable, expandable, renderExpanded, resizable, filterable, reorderable, pinnable, groupBy, renderGroupHeader, getSubRows, empty, caption, renderCell, rowId, getRowLabel, }: {
9
9
  size?: TableRowSelectCheckboxProps['size'] | undefined;
10
10
  columns: TableColumn<T>[];
11
11
  data: T[];
@@ -15,6 +15,11 @@ export declare function TableAnatomy<T extends object>({ size, columns, data, so
15
15
  renderExpanded?: ((row: T) => React.ReactNode) | undefined;
16
16
  resizable?: boolean | undefined;
17
17
  filterable?: boolean | undefined;
18
+ reorderable?: boolean | undefined;
19
+ pinnable?: boolean | undefined;
20
+ groupBy?: string | undefined;
21
+ renderGroupHeader?: ((groupKey: string, rows: T[]) => React.ReactNode) | undefined;
22
+ getSubRows?: ((row: T) => T[] | undefined) | undefined;
18
23
  empty?: React.ReactNode | undefined;
19
24
  caption?: React.ReactNode | undefined;
20
25
  renderCell?: ((row: T, column: TableColumn<T>) => React.ReactNode) | undefined;
@@ -5,7 +5,7 @@ import type { TableColumn, TableRowSelectCheckboxProps } from './types.js';
5
5
  *
6
6
  * @internal
7
7
  */
8
- export declare function TableAnatomy<T extends object>({ size, columns, data, sortable, selectable, expandable, renderExpanded, resizable, filterable, empty, caption, renderCell, rowId, getRowLabel, }: {
8
+ export declare function TableAnatomy<T extends object>({ size, columns, data, sortable, selectable, expandable, renderExpanded, resizable, filterable, reorderable, pinnable, groupBy, renderGroupHeader, getSubRows, empty, caption, renderCell, rowId, getRowLabel, }: {
9
9
  size?: TableRowSelectCheckboxProps['size'] | undefined;
10
10
  columns: TableColumn<T>[];
11
11
  data: T[];
@@ -15,6 +15,11 @@ export declare function TableAnatomy<T extends object>({ size, columns, data, so
15
15
  renderExpanded?: ((row: T) => React.ReactNode) | undefined;
16
16
  resizable?: boolean | undefined;
17
17
  filterable?: boolean | undefined;
18
+ reorderable?: boolean | undefined;
19
+ pinnable?: boolean | undefined;
20
+ groupBy?: string | undefined;
21
+ renderGroupHeader?: ((groupKey: string, rows: T[]) => React.ReactNode) | undefined;
22
+ getSubRows?: ((row: T) => T[] | undefined) | undefined;
18
23
  empty?: React.ReactNode | undefined;
19
24
  caption?: React.ReactNode | undefined;
20
25
  renderCell?: ((row: T, column: TableColumn<T>) => React.ReactNode) | undefined;
@@ -9,6 +9,6 @@ import type { TableCellProps } from './types.cjs';
9
9
  * ```
10
10
  */
11
11
  export declare const TableCell: {
12
- ({ ref: forwardedRef, ...props }: TableCellProps): React.ReactNode;
12
+ ({ columnKey, style, ref: forwardedRef, ...props }: TableCellProps): React.ReactNode;
13
13
  displayName: string;
14
14
  };
@@ -9,6 +9,6 @@ import type { TableCellProps } from './types.js';
9
9
  * ```
10
10
  */
11
11
  export declare const TableCell: {
12
- ({ ref: forwardedRef, ...props }: TableCellProps): React.ReactNode;
12
+ ({ columnKey, style, ref: forwardedRef, ...props }: TableCellProps): React.ReactNode;
13
13
  displayName: string;
14
14
  };
@@ -0,0 +1,17 @@
1
+ import type * as React from 'react';
2
+ import type { TableColumnPinTriggerProps } from './types.cjs';
3
+ /**
4
+ * Toggle button that pins its column to the start or end edge, staying pressed while pinned.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <TableHeaderCell columnKey="name">
9
+ * Name
10
+ * <TableColumnPinTrigger side="start" label="Pin Name column" />
11
+ * </TableHeaderCell>
12
+ * ```
13
+ */
14
+ export declare const TableColumnPinTrigger: {
15
+ ({ columnKey: columnKeyProp, side, label, ref: forwardedRef, ...props }: TableColumnPinTriggerProps): React.ReactNode;
16
+ displayName: string;
17
+ };
@@ -0,0 +1,17 @@
1
+ import type * as React from 'react';
2
+ import type { TableColumnPinTriggerProps } from './types.js';
3
+ /**
4
+ * Toggle button that pins its column to the start or end edge, staying pressed while pinned.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <TableHeaderCell columnKey="name">
9
+ * Name
10
+ * <TableColumnPinTrigger side="start" label="Pin Name column" />
11
+ * </TableHeaderCell>
12
+ * ```
13
+ */
14
+ export declare const TableColumnPinTrigger: {
15
+ ({ columnKey: columnKeyProp, side, label, ref: forwardedRef, ...props }: TableColumnPinTriggerProps): React.ReactNode;
16
+ displayName: string;
17
+ };
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import type { TableColumnReorderTriggerProps } from './types.cjs';
3
+ /**
4
+ * The grip you focus and press Arrow Left/Right on, or drag over another header, to move a column.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <TableHeaderCell columnKey="amount">
9
+ * Amount
10
+ * <TableColumnReorderTrigger label="Move Amount column" />
11
+ * </TableHeaderCell>
12
+ * ```
13
+ */
14
+ export declare const TableColumnReorderTrigger: {
15
+ ({ columnKey: columnKeyProp, label, ref: forwardedRef, ...props }: TableColumnReorderTriggerProps): React.ReactNode;
16
+ displayName: string;
17
+ };
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import type { TableColumnReorderTriggerProps } from './types.js';
3
+ /**
4
+ * The grip you focus and press Arrow Left/Right on, or drag over another header, to move a column.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <TableHeaderCell columnKey="amount">
9
+ * Amount
10
+ * <TableColumnReorderTrigger label="Move Amount column" />
11
+ * </TableHeaderCell>
12
+ * ```
13
+ */
14
+ export declare const TableColumnReorderTrigger: {
15
+ ({ columnKey: columnKeyProp, label, ref: forwardedRef, ...props }: TableColumnReorderTriggerProps): React.ReactNode;
16
+ displayName: string;
17
+ };
@@ -0,0 +1,14 @@
1
+ import type * as React from 'react';
2
+ import type { TableGroupRowProps } from './types.cjs';
3
+ /**
4
+ * Full-width row heading one group of rows, whose button collapses and expands that group.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <TableGroupRow groupKey="EMEA" colSpan={3}>EMEA (12)</TableGroupRow>
9
+ * ```
10
+ */
11
+ export declare const TableGroupRow: {
12
+ ({ groupKey, colSpan, children, ref: forwardedRef, ...props }: TableGroupRowProps): React.ReactNode;
13
+ displayName: string;
14
+ };
@@ -0,0 +1,14 @@
1
+ import type * as React from 'react';
2
+ import type { TableGroupRowProps } from './types.js';
3
+ /**
4
+ * Full-width row heading one group of rows, whose button collapses and expands that group.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <TableGroupRow groupKey="EMEA" colSpan={3}>EMEA (12)</TableGroupRow>
9
+ * ```
10
+ */
11
+ export declare const TableGroupRow: {
12
+ ({ groupKey, colSpan, children, ref: forwardedRef, ...props }: TableGroupRowProps): React.ReactNode;
13
+ displayName: string;
14
+ };
@@ -9,6 +9,6 @@ import type { TableHeaderCellProps } from './types.cjs';
9
9
  * ```
10
10
  */
11
11
  export declare const TableHeaderCell: {
12
- ({ columnKey, sortable: sortableProp, filterable: filterableProp, filterLabel, resizable, minWidth, maxWidth, resizeLabel, resizeStep, children, style, ref: forwardedRef, ...props }: TableHeaderCellProps): React.ReactNode;
12
+ ({ columnKey, sortable: sortableProp, filterable: filterableProp, filterLabel, resizable, minWidth, maxWidth, resizeLabel, resizeStep, reorderable, pinnable, reorderLabel, pinLabel, children, style, ref: forwardedRef, ...props }: TableHeaderCellProps): React.ReactNode;
13
13
  displayName: string;
14
14
  };
@@ -9,6 +9,6 @@ import type { TableHeaderCellProps } from './types.js';
9
9
  * ```
10
10
  */
11
11
  export declare const TableHeaderCell: {
12
- ({ columnKey, sortable: sortableProp, filterable: filterableProp, filterLabel, resizable, minWidth, maxWidth, resizeLabel, resizeStep, children, style, ref: forwardedRef, ...props }: TableHeaderCellProps): React.ReactNode;
12
+ ({ columnKey, sortable: sortableProp, filterable: filterableProp, filterLabel, resizable, minWidth, maxWidth, resizeLabel, resizeStep, reorderable, pinnable, reorderLabel, pinLabel, children, style, ref: forwardedRef, ...props }: TableHeaderCellProps): React.ReactNode;
13
13
  displayName: string;
14
14
  };
@@ -14,6 +14,6 @@ import type { TableRowProps } from './types.cjs';
14
14
  * ```
15
15
  */
16
16
  export declare const TableRow: {
17
- ({ rowId, ref: forwardedRef, ...props }: TableRowProps): React.ReactNode;
17
+ ({ rowId, level, style, ref: forwardedRef, ...props }: TableRowProps): React.ReactNode;
18
18
  displayName: string;
19
19
  };
@@ -14,6 +14,6 @@ import type { TableRowProps } from './types.js';
14
14
  * ```
15
15
  */
16
16
  export declare const TableRow: {
17
- ({ rowId, ref: forwardedRef, ...props }: TableRowProps): React.ReactNode;
17
+ ({ rowId, level, style, ref: forwardedRef, ...props }: TableRowProps): React.ReactNode;
18
18
  displayName: string;
19
19
  };