@thewrong/ui 0.3.0 → 0.4.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 (65) hide show
  1. package/README.md +2 -2
  2. package/dist/components/button/Button.cjs +1 -1
  3. package/dist/components/button/Button.d.ts +3 -0
  4. package/dist/components/button/Button.esm.js +17 -5
  5. package/dist/components/button/types.d.ts +3 -1
  6. package/dist/components/button/utils.cjs +1 -1
  7. package/dist/components/button/utils.d.ts +2 -2
  8. package/dist/components/button/utils.esm.js +6 -2
  9. package/dist/components/progress/Progress.cjs +1 -1
  10. package/dist/components/progress/Progress.d.ts +3 -4
  11. package/dist/components/progress/Progress.esm.js +5 -5
  12. package/dist/components/progress/types.d.ts +2 -2
  13. package/dist/components/select/MultiSelect.cjs +1 -1
  14. package/dist/components/select/MultiSelect.esm.js +140 -138
  15. package/dist/components/select/Select.cjs +1 -1
  16. package/dist/components/select/Select.esm.js +190 -182
  17. package/dist/components/select/types.d.ts +7 -0
  18. package/dist/components/slider/Slider.cjs +1 -0
  19. package/dist/components/slider/Slider.d.ts +6 -0
  20. package/dist/components/slider/Slider.esm.js +36 -0
  21. package/dist/components/slider/index.d.ts +2 -0
  22. package/dist/components/slider/types.d.ts +15 -0
  23. package/dist/components/slider/utils.cjs +1 -0
  24. package/dist/components/slider/utils.d.ts +3 -0
  25. package/dist/components/slider/utils.esm.js +15 -0
  26. package/dist/components/table/accordion-table.cjs +1 -1
  27. package/dist/components/table/accordion-table.esm.js +194 -180
  28. package/dist/components/table/components/SortHeader.cjs +1 -0
  29. package/dist/components/table/components/SortHeader.d.ts +10 -0
  30. package/dist/components/table/components/SortHeader.esm.js +27 -0
  31. package/dist/components/table/components/SortableHeaderCell.cjs +1 -1
  32. package/dist/components/table/components/SortableHeaderCell.d.ts +10 -2
  33. package/dist/components/table/components/SortableHeaderCell.esm.js +54 -26
  34. package/dist/components/table/hooks/sort-state.cjs +1 -0
  35. package/dist/components/table/hooks/sort-state.d.ts +5 -0
  36. package/dist/components/table/hooks/sort-state.esm.js +21 -0
  37. package/dist/components/table/hooks/useTableSort.cjs +1 -1
  38. package/dist/components/table/hooks/useTableSort.d.ts +6 -3
  39. package/dist/components/table/hooks/useTableSort.esm.js +18 -19
  40. package/dist/components/table/paginated-table.d.ts +2 -0
  41. package/dist/components/table/table.cjs +1 -1
  42. package/dist/components/table/table.d.ts +2 -0
  43. package/dist/components/table/table.esm.js +119 -104
  44. package/dist/components/table/types.d.ts +11 -4
  45. package/dist/components/tabs/Tabs.cjs +1 -0
  46. package/dist/components/tabs/Tabs.d.ts +8 -0
  47. package/dist/components/tabs/Tabs.esm.js +53 -0
  48. package/dist/components/tabs/index.d.ts +2 -0
  49. package/dist/components/tabs/navigation.cjs +1 -0
  50. package/dist/components/tabs/navigation.d.ts +2 -0
  51. package/dist/components/tabs/navigation.esm.js +18 -0
  52. package/dist/components/tabs/types.d.ts +20 -0
  53. package/dist/index.cjs +1 -1
  54. package/dist/index.d.ts +2 -0
  55. package/dist/index.esm.js +3 -1
  56. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-down.cjs +1 -0
  57. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-down.esm.js +10 -0
  58. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up-down.cjs +1 -0
  59. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up-down.esm.js +21 -0
  60. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up.cjs +1 -0
  61. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up.esm.js +10 -0
  62. package/dist/tokens.css +78 -5
  63. package/dist/ui.css +1 -1
  64. package/llms.txt +9 -6
  65. package/package.json +1 -1
@@ -1 +1 @@
1
- const e=require("../../lib/utils.cjs"),t=require("../checkbox/Checkbox.cjs"),n=require("../../node_modules/lucide-react/dist/esm/icons/chevron-right.cjs"),r=require("../loading-spinner/LoadingSpinner.cjs"),i=require("../select/Select.cjs"),a=require("./components/SortableHeaderCell.cjs"),o=require("./hooks/useColumnResize.cjs"),s=require("../../hooks/useFillEmptyRows.cjs"),ee=require("./hooks/useTableSort.cjs"),c=require("./utils.cjs"),te=require("./components/KeyboardNavButton.cjs"),ne=require("./components/PageJumpInput.cjs"),re=require("./components/Pagination.cjs");let l=require("react"),u=require("react/jsx-runtime"),d=require("@dnd-kit/core"),f=require("@dnd-kit/sortable");var ie=[30,50,100],p=36,m=(0,l.forwardRef)((m,h)=>{let{data:g,columns:_,rowHeight:v,loading:ae=!1,emptyMessage:oe=`데이터가 없어요`,onRowClick:y,selectedRows:b=[],onRowSelect:x,enableRowSelection:S=!1,enableSelectAll:C=!1,rowCompare:w,enableSorting:T=!1,serverSideSorting:E=!1,onSortChange:se,initialSort:ce,variant:le=`default`,size:ue=`medium`,stickyHeader:D=!0,height:O,maxHeight:k,currentPage:A,totalPages:j,onPageChange:M,pageSize:N,pageSizeOptions:de=ie,onPageSizeChange:P,totalElements:F,storageKey:fe,columnState:I,fillEmptyRows:L=!0,enableKeyboardPagination:R=!0,expandable:z,className:B=``,"data-testid":V,...H}=m,U=!!z,W=z?.stickyDetail??!0,{sort:pe,sortedData:G}=ee.useTableSort({initialSort:ce,serverSide:E,onSort:se||void 0}),K=(0,l.useMemo)(()=>!T||E?g:G(g,(e,t)=>{let n=_.find(e=>e.key===t);if(n?.accessor){let r=n.accessor(e);return typeof r==`string`||typeof r==`number`?r:e[t]}return e[t]}),[g,T,E,pe,G,_]),q=(0,l.useRef)(null),J=(0,l.useRef)(null),Y=(0,l.useRef)(null),X=(0,l.useRef)(null),[me,he]=(0,l.useState)(0),ge=!!I,_e=(0,d.useSensors)((0,d.useSensor)(d.PointerSensor,{activationConstraint:{distance:5}}),(0,d.useSensor)(d.KeyboardSensor,{coordinateGetter:f.sortableKeyboardCoordinates})),ve=e=>{let{active:t,over:n}=e;if(!I||!n||t.id===n.id||_.find(e=>e.key===n.id)?.excludeFromPreset)return;let r=I.columnOrder,i=r.indexOf(String(t.id)),a=r.indexOf(String(n.id));i===-1||a===-1||I.onColumnOrderChange((0,f.arrayMove)(r,i,a))},Z=(0,l.useMemo)(()=>{if(!I)return _.filter(e=>!e.hidden);let e=new Map(_.map(e=>[e.key,e])),t=new Set(I.hiddenColumns);return I.columnOrder.map(t=>e.get(t)).filter(e=>!!e).filter(e=>!e.hidden&&!t.has(e.key))},[_,I]),{handleMouseDown:ye,handleDoubleClick:be,getColumnWidth:Q,measureRef:xe}=o.useColumnResize({columns:Z,data:K,getCellContent:(e,t)=>{let n=Z.find(e=>e.key===t);return n?.accessor?n.accessor(e):e[t]},tableRef:q,...I?{controlledWidths:I.columnWidths,onColumnWidthsChange:I.onColumnWidthsChange}:{storageKey:fe}}),Se=c.getTableBaseClasses(),Ce=c.getTableVariantClasses(le),we=c.getTableSizeClasses(ue),Te=(0,l.useMemo)(()=>{let e={};return O&&(e.height=typeof O==`number`?`${O}px`:O),k&&(e.maxHeight=typeof k==`number`?`${k}px`:k),e},[O,k]),{emptyRowCount:Ee,measuredRowHeight:De}=s.useFillEmptyRows({enabled:L,containerRef:J,theadRef:Y,tbodyRef:X,excludeRowsSelector:`tr:not([data-empty-row]):not([data-expanded-row])`,remainingMode:`tbody-height`,observeTbody:!0,deps:[K,Z]});(0,l.useLayoutEffect)(()=>{if(!W||!U)return;let e=J.current;if(!e)return;let t=()=>{he(t=>t===e.clientWidth?t:e.clientWidth)};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[W,U]);let Oe=e=>{e.altKey||e.metaKey||e.ctrlKey||e.shiftKey||(e.key===`ArrowLeft`&&A>1?(e.preventDefault(),M(A-1)):e.key===`ArrowRight`&&A<j&&(e.preventDefault(),M(A+1)))},$=e=>!S||b.length===0?!1:w?b.some(t=>w(t,e)):b.some(t=>t===e),ke=(0,l.useMemo)(()=>!S||!C||K.length===0?!1:K.every(e=>$(e)),[S,C,K,$]),Ae=()=>{!S||!x||(ke?K.forEach(e=>{$(e)&&x(e,!1)}):K.forEach(e=>{$(e)||x(e,!0)}))},je=(t,n)=>{let r=[c.getStripedRowClasses(n)];return $(t)&&r.push(c.getSelectedRowClasses()),(y||U)&&r.push(c.getHoverableRowClasses()),e.cn(r)},Me=!!P||F!==void 0||typeof j==`number`&&j>0,Ne=e=>{z&&z.onToggle(z.getRowId(e))},Pe=(e,t)=>{U&&(e.key===` `||e.key===`Enter`)&&(e.preventDefault(),Ne(t))},Fe=(S&&C?1:0)+ +!!U+Z.length+1;return ae?(0,u.jsx)(`div`,{ref:h,className:e.cn(`flex items-center justify-center p-8 flex-1`,B),style:Te,"data-testid":V,...H,children:(0,u.jsx)(r.LoadingSpinner,{message:`데이터를 불러오는 중이에요...`,className:`min-h-0`})}):(0,u.jsxs)(`div`,{ref:h,className:e.cn(`isolate relative flex flex-col min-h-0`,B),style:Te,"data-testid":V,...H,children:[(0,u.jsx)(`div`,{ref:xe,className:`absolute invisible whitespace-nowrap`,style:{top:`-9999px`,left:`-9999px`}}),(0,u.jsxs)(`div`,{className:`flex flex-1 flex-col min-h-0`,children:[(0,u.jsx)(`div`,{ref:J,className:`overflow-auto flex-1 bg-bg-page`,children:K.length===0?(0,u.jsx)(`div`,{className:`flex items-center justify-center p-8 h-full`,children:(0,u.jsx)(`p`,{className:`text-fg-muted`,children:oe})}):(0,u.jsx)(d.DndContext,{sensors:_e,collisionDetection:d.closestCenter,onDragEnd:ve,children:(0,u.jsxs)(`table`,{ref:q,className:e.cn(Se,Ce,we),style:{tableLayout:`fixed`,minWidth:`100%`,width:`100%`},children:[(0,u.jsxs)(`colgroup`,{children:[S&&C&&(0,u.jsx)(`col`,{style:{width:`48px`}}),U&&(0,u.jsx)(`col`,{style:{width:`${p}px`}}),Z.map(e=>(0,u.jsx)(`col`,{"data-col-key":e.key,style:{width:Q(e.key,e.width)}},e.key)),(0,u.jsx)(`col`,{style:{width:`100%`}})]}),(0,u.jsx)(`thead`,{ref:Y,className:c.getTableHeaderClasses(),style:{position:D?`sticky`:`relative`,top:D?0:void 0,zIndex:D?20:void 0},children:(0,u.jsxs)(`tr`,{children:[S&&C&&(0,u.jsx)(`th`,{className:e.cn(c.getTableHeaderCellClasses(),c.getColumnAlignClasses(`center`),`border-r-0 w-12`),children:(0,u.jsx)(t.Checkbox.Circle,{id:`accordion-table-select-all`,size:20,checked:ke,onCheckedChange:Ae})}),U&&(0,u.jsx)(`th`,{"aria-hidden":`true`,className:e.cn(c.getTableHeaderCellClasses(),`border-r-0`),style:{width:`${p}px`}}),(0,u.jsx)(f.SortableContext,{items:Z.map(e=>e.key),strategy:f.horizontalListSortingStrategy,children:Z.map(t=>{let n=!ge||t.excludeFromPreset===!0;return(0,u.jsxs)(a.SortableHeaderCell,{id:t.key,disabled:n,as:`th`,className:e.cn(c.getTableHeaderCellClasses(),c.getColumnAlignClasses(`center`),`relative`,t.sticky&&`sticky left-0 z-20 bg-bg-table-header`,t.hideOnMobile&&`hidden md:table-cell`),style:{width:Q(t.key,t.width),minWidth:t.minWidth||50},children:[(0,u.jsx)(`div`,{className:`flex items-center justify-center w-full pr-1 select-none`,children:(0,u.jsx)(`span`,{children:t.header})}),t.excludeFromPreset!==!0&&(0,u.jsx)(`div`,{className:`absolute right-0 top-0 h-full w-4 cursor-col-resize hover:bg-primary/30 active:bg-primary/50 z-50`,onPointerDown:e=>e.stopPropagation(),onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),ye(t.key,e)},onDoubleClick:e=>{e.preventDefault(),e.stopPropagation(),be(t.key,e)},onClick:e=>{e.preventDefault(),e.stopPropagation()},style:{touchAction:`none`},title:`드래그하여 너비 조절, 더블 클릭하여 자동 조절`})]},t.key)})}),(0,u.jsx)(`th`,{"aria-hidden":`true`,className:`bg-bg-table-header border-b border-l border-border-table-header`})]})}),(0,u.jsxs)(`tbody`,{ref:X,children:[K.map((r,i)=>{let a=$(r),o=z?z.getRowId(r):void 0,s=z?z.expandedIds.has(o):!1;return(0,u.jsxs)(l.Fragment,{children:[(0,u.jsxs)(`tr`,{className:je(r,i),onClick:e=>{let t=e.target;if(t!==e.currentTarget){let n=t.closest(`button, a, input, select, textarea, label`);if(n&&e.currentTarget.contains(n))return}y?.(r,i),U&&Ne(r)},onKeyDown:e=>Pe(e,r),tabIndex:U?0:void 0,role:U?`button`:void 0,"aria-expanded":U?s:void 0,style:v?{height:`${v}px`}:void 0,children:[S&&C&&(0,u.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),c.getColumnAlignClasses(`center`),`border-r-0 w-12`),onClick:e=>e.stopPropagation(),children:(0,u.jsx)(t.Checkbox.Circle,{size:20,checked:a,onCheckedChange:e=>x?.(r,e)})}),U&&(0,u.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),c.getColumnAlignClasses(`center`),`border-r-0`),style:{width:`${p}px`},children:(0,u.jsx)(n.ChevronRight,{"aria-hidden":`true`,className:e.cn(`mx-auto h-4 w-4 text-fg-muted hover:text-fg-default transition-transform duration-200`,s&&`rotate-90`)})}),Z.map((t,n)=>{let i=t.accessor?t.accessor(r):r[t.key],a=n===Z.length-1&&!S;return(0,u.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),c.getColumnAlignClasses(t.align),a&&`border-r-0`,t.sticky&&`sticky left-0 z-10 bg-inherit`,t.hideOnMobile&&`hidden md:table-cell`),style:{width:Q(t.key,t.width),minWidth:t.minWidth||50,...v?{height:`${v}px`,maxHeight:`${v}px`,overflow:`hidden`}:{}},children:i},t.key)}),(0,u.jsx)(`td`,{"aria-hidden":`true`,className:`border-b border-l border-border-table-cell bg-transparent`})]}),U&&(0,u.jsx)(`tr`,{"data-expanded-row":!0,className:`bg-bg-surface`,children:(0,u.jsx)(`td`,{colSpan:Fe,className:`p-0 border-b border-border-table-cell text-fg-default`,children:(0,u.jsx)(`div`,{className:W?`sticky left-0`:void 0,style:W&&me>0?{width:`${me}px`}:void 0,children:(0,u.jsx)(`div`,{className:`grid transition-[grid-template-rows,opacity] duration-200 ease-out`,style:{gridTemplateRows:s?`1fr`:`0fr`,opacity:+!!s},"aria-hidden":!s,children:(0,u.jsx)(`div`,{className:`overflow-hidden`,children:z.renderRow(r)})})})})})]},i)}),L&&Array.from({length:Ee}).map((t,n)=>{let r=K.length+n,i=v??De??void 0;return(0,u.jsxs)(`tr`,{"data-empty-row":!0,"aria-hidden":`true`,className:c.getStripedRowClasses(r),style:i?{height:`${i}px`}:void 0,children:[S&&C&&(0,u.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),`border-r-0 w-12`),style:i?{height:`${i}px`}:void 0}),U&&(0,u.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),`border-r-0`),style:{width:`${p}px`,...i?{height:`${i}px`}:{}}}),Z.map((t,n)=>{let r=n===Z.length-1&&!S;return(0,u.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),r&&`border-r-0`,t.hideOnMobile&&`hidden md:table-cell`),style:{width:Q(t.key,t.width),minWidth:t.minWidth||50,...i?{height:`${i}px`}:{}}},t.key)}),(0,u.jsx)(`td`,{"aria-hidden":`true`,className:`border-b border-l border-border-table-cell bg-transparent`,style:i?{height:`${i}px`}:void 0})]},`empty-${n}`)})]})]})})}),Me&&(0,u.jsxs)(`nav`,{"aria-label":`페이지 네비게이션`,className:`@container/pagebar group/footer flex flex-wrap items-center justify-between gap-x-3 gap-y-2 border-t border-border-subtle px-4 py-2 shrink-0`,children:[(0,u.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-2 text-sm text-fg-muted`,children:[F!==void 0&&(0,u.jsxs)(`span`,{children:[`총 `,F.toLocaleString(),`건`]}),P&&N!==void 0&&(0,u.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,u.jsx)(`span`,{className:`text-fg-muted`,children:`페이지당`}),(0,u.jsx)(`div`,{className:`w-20`,children:(0,u.jsx)(i.Select,{variant:`box`,selectSize:`mini`,value:String(N),onChange:e=>P(Number(e)),options:de.map(e=>({value:String(e),label:String(e)})),"data-testid":V?`${V}-page-size`:void 0})})]}),(0,u.jsx)(`div`,{className:`contents @min-[640px]/pagebar:hidden`,children:j!==void 0&&A!==void 0&&M&&j>1&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ne.PageJumpInput,{currentPage:A,totalPages:j,onPageChange:M,"data-testid":V?`${V}-page-jump`:void 0}),R&&(0,u.jsx)(te.KeyboardNavButton,{onKeyDown:Oe})]})})]}),(0,u.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,u.jsx)(`div`,{className:`hidden @min-[640px]/pagebar:contents`,children:j!==void 0&&A!==void 0&&M&&j>1&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ne.PageJumpInput,{currentPage:A,totalPages:j,onPageChange:M,"data-testid":V?`${V}-page-jump`:void 0}),R&&(0,u.jsx)(te.KeyboardNavButton,{onKeyDown:Oe})]})}),j!==void 0&&A!==void 0&&M&&(0,u.jsx)(re.Pagination,{currentPage:A,totalPages:j,onPageChange:M,hasPreviousPage:A>1,hasNextPage:A<j,"data-testid":V?`${V}-pagination`:void 0})]})]})]})]})});m.displayName=`AccordionTable`,exports.AccordionTable=m;
1
+ const e=require("../../lib/utils.cjs"),t=require("../checkbox/Checkbox.cjs"),n=require("../../node_modules/lucide-react/dist/esm/icons/chevron-right.cjs"),r=require("../loading-spinner/LoadingSpinner.cjs"),i=require("../select/Select.cjs"),a=require("./components/SortableHeaderCell.cjs"),o=require("./components/SortHeader.cjs"),s=require("./hooks/sort-state.cjs"),ee=require("./hooks/useColumnResize.cjs"),te=require("../../hooks/useFillEmptyRows.cjs"),ne=require("./hooks/useTableSort.cjs"),c=require("./utils.cjs"),l=require("./components/KeyboardNavButton.cjs"),u=require("./components/PageJumpInput.cjs"),re=require("./components/Pagination.cjs");let d=require("react"),f=require("react/jsx-runtime"),p=require("@dnd-kit/core"),m=require("@dnd-kit/sortable");var ie=[30,50,100],h=36,g=(0,d.forwardRef)((g,ae)=>{let{data:_,columns:v,rowHeight:y,loading:oe=!1,emptyMessage:se=`데이터가 없어요`,onRowClick:b,selectedRows:x=[],onRowSelect:S,enableRowSelection:C=!1,enableSelectAll:w=!1,rowCompare:T,enableSorting:E=!1,sortCycle:ce=`tri`,formatSortLabel:le,serverSideSorting:D=!1,onSortChange:ue,initialSort:de,variant:fe=`default`,size:pe=`medium`,stickyHeader:O=!0,height:k,maxHeight:A,currentPage:j,totalPages:M,onPageChange:N,pageSize:P,pageSizeOptions:me=ie,onPageSizeChange:F,totalElements:I,storageKey:he,columnState:L,fillEmptyRows:R=!0,enableKeyboardPagination:z=!0,expandable:B,className:V=``,"data-testid":H,...U}=g,W=!!B,G=B?.stickyDetail??!0,{sort:K,sortedData:ge,handleSort:_e}=ne.useTableSort({initialSort:de,cycle:ce,serverSide:D,onSort:ue||void 0}),q=e=>!!(e.sortable&&(E||D)),ve=e=>q(e)?s.ariaSort(s.sortDirectionFor(K,e.key)):void 0,ye=e=>{if(!q(e))return(0,f.jsx)(`span`,{children:e.header});let t=s.sortDirectionFor(K,e.key),n=s.nextSort(K,e.key,ce)?.direction??null;return(0,f.jsx)(o.SortHeader,{current:t,label:le?.(e,t,n),onSort:()=>_e(e.key),children:e.header})},J=(0,d.useMemo)(()=>!E||D?_:ge(_,(e,t)=>{let n=v.find(e=>e.key===t);if(n?.accessor){let r=n.accessor(e);return typeof r==`string`||typeof r==`number`?r:e[t]}return e[t]}),[_,E,D,K,ge,v]),be=(0,d.useRef)(null),Y=(0,d.useRef)(null),xe=(0,d.useRef)(null),Se=(0,d.useRef)(null),[Ce,we]=(0,d.useState)(0),Te=!!L,Ee=(0,p.useSensors)((0,p.useSensor)(p.PointerSensor,{activationConstraint:{distance:5}}),(0,p.useSensor)(p.KeyboardSensor,{coordinateGetter:m.sortableKeyboardCoordinates})),De=e=>{let{active:t,over:n}=e;if(!L||!n||t.id===n.id||v.find(e=>e.key===n.id)?.excludeFromPreset)return;let r=L.columnOrder,i=r.indexOf(String(t.id)),a=r.indexOf(String(n.id));i===-1||a===-1||L.onColumnOrderChange((0,m.arrayMove)(r,i,a))},X=(0,d.useMemo)(()=>{if(!L)return v.filter(e=>!e.hidden);let e=new Map(v.map(e=>[e.key,e])),t=new Set(L.hiddenColumns);return L.columnOrder.map(t=>e.get(t)).filter(e=>!!e).filter(e=>!e.hidden&&!t.has(e.key))},[v,L]),{handleMouseDown:Oe,handleDoubleClick:ke,getColumnWidth:Z,measureRef:Ae}=ee.useColumnResize({columns:X,data:J,getCellContent:(e,t)=>{let n=X.find(e=>e.key===t);return n?.accessor?n.accessor(e):e[t]},tableRef:be,...L?{controlledWidths:L.columnWidths,onColumnWidthsChange:L.onColumnWidthsChange}:{storageKey:he}}),je=c.getTableBaseClasses(),Me=c.getTableVariantClasses(fe),Ne=c.getTableSizeClasses(pe),Pe=(0,d.useMemo)(()=>{let e={};return k&&(e.height=typeof k==`number`?`${k}px`:k),A&&(e.maxHeight=typeof A==`number`?`${A}px`:A),e},[k,A]),{emptyRowCount:Fe,measuredRowHeight:Ie}=te.useFillEmptyRows({enabled:R,containerRef:Y,theadRef:xe,tbodyRef:Se,excludeRowsSelector:`tr:not([data-empty-row]):not([data-expanded-row])`,remainingMode:`tbody-height`,observeTbody:!0,deps:[J,X]});(0,d.useLayoutEffect)(()=>{if(!G||!W)return;let e=Y.current;if(!e)return;let t=()=>{we(t=>t===e.clientWidth?t:e.clientWidth)};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[G,W]);let Le=e=>{e.altKey||e.metaKey||e.ctrlKey||e.shiftKey||(e.key===`ArrowLeft`&&j>1?(e.preventDefault(),N(j-1)):e.key===`ArrowRight`&&j<M&&(e.preventDefault(),N(j+1)))},Q=e=>!C||x.length===0?!1:T?x.some(t=>T(t,e)):x.some(t=>t===e),Re=(0,d.useMemo)(()=>!C||!w||J.length===0?!1:J.every(e=>Q(e)),[C,w,J,Q]),ze=()=>{!C||!S||(Re?J.forEach(e=>{Q(e)&&S(e,!1)}):J.forEach(e=>{Q(e)||S(e,!0)}))},Be=(t,n)=>{let r=[c.getStripedRowClasses(n)];return Q(t)&&r.push(c.getSelectedRowClasses()),(b||W)&&r.push(c.getHoverableRowClasses()),e.cn(r)},Ve=!!F||I!==void 0||typeof M==`number`&&M>0,$=e=>{B&&B.onToggle(B.getRowId(e))},He=(e,t)=>{W&&(e.key===` `||e.key===`Enter`)&&(e.preventDefault(),$(t))},Ue=(C&&w?1:0)+ +!!W+X.length+1;return oe?(0,f.jsx)(`div`,{ref:ae,className:e.cn(`flex items-center justify-center p-8 flex-1`,V),style:Pe,"data-testid":H,...U,children:(0,f.jsx)(r.LoadingSpinner,{message:`데이터를 불러오는 중이에요...`,className:`min-h-0`})}):(0,f.jsxs)(`div`,{ref:ae,className:e.cn(`isolate relative flex flex-col min-h-0`,V),style:Pe,"data-testid":H,...U,children:[(0,f.jsx)(`div`,{ref:Ae,className:`absolute invisible whitespace-nowrap`,style:{top:`-9999px`,left:`-9999px`}}),(0,f.jsxs)(`div`,{className:`flex flex-1 flex-col min-h-0`,children:[(0,f.jsx)(`div`,{ref:Y,className:`overflow-auto flex-1 bg-bg-page`,children:J.length===0?(0,f.jsx)(`div`,{className:`flex items-center justify-center p-8 h-full`,children:(0,f.jsx)(`p`,{className:`text-fg-muted`,children:se})}):(0,f.jsx)(p.DndContext,{sensors:Ee,collisionDetection:p.closestCenter,onDragEnd:De,children:(0,f.jsxs)(`table`,{ref:be,className:e.cn(je,Me,Ne),style:{tableLayout:`fixed`,minWidth:`100%`,width:`100%`},children:[(0,f.jsxs)(`colgroup`,{children:[C&&w&&(0,f.jsx)(`col`,{style:{width:`48px`}}),W&&(0,f.jsx)(`col`,{style:{width:`${h}px`}}),X.map(e=>(0,f.jsx)(`col`,{"data-col-key":e.key,style:{width:Z(e.key,e.width)}},e.key)),(0,f.jsx)(`col`,{style:{width:`100%`}})]}),(0,f.jsx)(`thead`,{ref:xe,className:c.getTableHeaderClasses(),style:{position:O?`sticky`:`relative`,top:O?0:void 0,zIndex:O?20:void 0},children:(0,f.jsxs)(`tr`,{children:[C&&w&&(0,f.jsx)(`th`,{className:e.cn(c.getTableHeaderCellClasses(),c.getColumnAlignClasses(`center`),`border-r-0 w-12`),children:(0,f.jsx)(t.Checkbox.Circle,{id:`accordion-table-select-all`,size:20,checked:Re,onCheckedChange:ze})}),W&&(0,f.jsx)(`th`,{"aria-hidden":`true`,className:e.cn(c.getTableHeaderCellClasses(),`border-r-0`),style:{width:`${h}px`}}),(0,f.jsx)(m.SortableContext,{items:X.map(e=>e.key),strategy:m.horizontalListSortingStrategy,children:X.map(t=>{let n=!Te||t.excludeFromPreset===!0;return(0,f.jsxs)(a.SortableHeaderCell,{id:t.key,disabled:n,as:`th`,"aria-sort":ve(t),hasSortButton:q(t),className:e.cn(c.getTableHeaderCellClasses(),c.getColumnAlignClasses(`center`),`relative`,t.sticky&&`sticky left-0 z-20 bg-bg-table-header`,t.hideOnMobile&&`hidden md:table-cell`),style:{width:Z(t.key,t.width),minWidth:t.minWidth||50},children:[(0,f.jsx)(`div`,{className:`flex items-center justify-center w-full pr-1 select-none`,children:ye(t)}),t.excludeFromPreset!==!0&&(0,f.jsx)(`div`,{className:`absolute right-0 top-0 h-full w-4 cursor-col-resize hover:bg-primary/30 active:bg-primary/50 z-50`,onPointerDown:e=>e.stopPropagation(),onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),Oe(t.key,e)},onDoubleClick:e=>{e.preventDefault(),e.stopPropagation(),ke(t.key,e)},onClick:e=>{e.preventDefault(),e.stopPropagation()},style:{touchAction:`none`},title:`드래그하여 너비 조절, 더블 클릭하여 자동 조절`})]},t.key)})}),(0,f.jsx)(`th`,{"aria-hidden":`true`,className:`bg-bg-table-header border-b border-l border-border-table-header`})]})}),(0,f.jsxs)(`tbody`,{ref:Se,children:[J.map((r,i)=>{let a=Q(r),o=B?B.getRowId(r):void 0,s=B?B.expandedIds.has(o):!1;return(0,f.jsxs)(d.Fragment,{children:[(0,f.jsxs)(`tr`,{className:Be(r,i),onClick:e=>{let t=e.target;if(t!==e.currentTarget){let n=t.closest(`button, a, input, select, textarea, label`);if(n&&e.currentTarget.contains(n))return}b?.(r,i),W&&$(r)},onKeyDown:e=>He(e,r),tabIndex:W?0:void 0,role:W?`button`:void 0,"aria-expanded":W?s:void 0,style:y?{height:`${y}px`}:void 0,children:[C&&w&&(0,f.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),c.getColumnAlignClasses(`center`),`border-r-0 w-12`),onClick:e=>e.stopPropagation(),children:(0,f.jsx)(t.Checkbox.Circle,{size:20,checked:a,onCheckedChange:e=>S?.(r,e)})}),W&&(0,f.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),c.getColumnAlignClasses(`center`),`border-r-0`),style:{width:`${h}px`},children:(0,f.jsx)(n.ChevronRight,{"aria-hidden":`true`,className:e.cn(`mx-auto h-4 w-4 text-fg-muted hover:text-fg-default transition-transform duration-200`,s&&`rotate-90`)})}),X.map((t,n)=>{let i=t.accessor?t.accessor(r):r[t.key],a=n===X.length-1&&!C;return(0,f.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),c.getColumnAlignClasses(t.align),a&&`border-r-0`,t.sticky&&`sticky left-0 z-10 bg-inherit`,t.hideOnMobile&&`hidden md:table-cell`),style:{width:Z(t.key,t.width),minWidth:t.minWidth||50,...y?{height:`${y}px`,maxHeight:`${y}px`,overflow:`hidden`}:{}},children:i},t.key)}),(0,f.jsx)(`td`,{"aria-hidden":`true`,className:`border-b border-l border-border-table-cell bg-transparent`})]}),W&&(0,f.jsx)(`tr`,{"data-expanded-row":!0,className:`bg-bg-surface`,children:(0,f.jsx)(`td`,{colSpan:Ue,className:`p-0 border-b border-border-table-cell text-fg-default`,children:(0,f.jsx)(`div`,{className:G?`sticky left-0`:void 0,style:G&&Ce>0?{width:`${Ce}px`}:void 0,children:(0,f.jsx)(`div`,{className:`grid transition-[grid-template-rows,opacity] duration-200 ease-out`,style:{gridTemplateRows:s?`1fr`:`0fr`,opacity:+!!s},"aria-hidden":!s,children:(0,f.jsx)(`div`,{className:`overflow-hidden`,children:B.renderRow(r)})})})})})]},i)}),R&&Array.from({length:Fe}).map((t,n)=>{let r=J.length+n,i=y??Ie??void 0;return(0,f.jsxs)(`tr`,{"data-empty-row":!0,"aria-hidden":`true`,className:c.getStripedRowClasses(r),style:i?{height:`${i}px`}:void 0,children:[C&&w&&(0,f.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),`border-r-0 w-12`),style:i?{height:`${i}px`}:void 0}),W&&(0,f.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),`border-r-0`),style:{width:`${h}px`,...i?{height:`${i}px`}:{}}}),X.map((t,n)=>{let r=n===X.length-1&&!C;return(0,f.jsx)(`td`,{className:e.cn(c.getTableCellClasses(),r&&`border-r-0`,t.hideOnMobile&&`hidden md:table-cell`),style:{width:Z(t.key,t.width),minWidth:t.minWidth||50,...i?{height:`${i}px`}:{}}},t.key)}),(0,f.jsx)(`td`,{"aria-hidden":`true`,className:`border-b border-l border-border-table-cell bg-transparent`,style:i?{height:`${i}px`}:void 0})]},`empty-${n}`)})]})]})})}),Ve&&(0,f.jsxs)(`nav`,{"aria-label":`페이지 네비게이션`,className:`@container/pagebar group/footer flex flex-wrap items-center justify-between gap-x-3 gap-y-2 border-t border-border-subtle px-4 py-2 shrink-0`,children:[(0,f.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-2 text-sm text-fg-muted`,children:[I!==void 0&&(0,f.jsxs)(`span`,{children:[`총 `,I.toLocaleString(),`건`]}),F&&P!==void 0&&(0,f.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,f.jsx)(`span`,{className:`text-fg-muted`,children:`페이지당`}),(0,f.jsx)(`div`,{className:`w-20`,children:(0,f.jsx)(i.Select,{variant:`box`,selectSize:`mini`,value:String(P),onChange:e=>F(Number(e)),options:me.map(e=>({value:String(e),label:String(e)})),"data-testid":H?`${H}-page-size`:void 0})})]}),(0,f.jsx)(`div`,{className:`contents @min-[640px]/pagebar:hidden`,children:M!==void 0&&j!==void 0&&N&&M>1&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(u.PageJumpInput,{currentPage:j,totalPages:M,onPageChange:N,"data-testid":H?`${H}-page-jump`:void 0}),z&&(0,f.jsx)(l.KeyboardNavButton,{onKeyDown:Le})]})})]}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(`div`,{className:`hidden @min-[640px]/pagebar:contents`,children:M!==void 0&&j!==void 0&&N&&M>1&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(u.PageJumpInput,{currentPage:j,totalPages:M,onPageChange:N,"data-testid":H?`${H}-page-jump`:void 0}),z&&(0,f.jsx)(l.KeyboardNavButton,{onKeyDown:Le})]})}),M!==void 0&&j!==void 0&&N&&(0,f.jsx)(re.Pagination,{currentPage:j,totalPages:M,onPageChange:N,hasPreviousPage:j>1,hasNextPage:j<M,"data-testid":H?`${H}-pagination`:void 0})]})]})]})]})});g.displayName=`AccordionTable`,exports.AccordionTable=g;