@mage-ui/components 1.0.64 → 1.0.66

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 (97) hide show
  1. package/dist/components/controls/dropdown/Dropdown.d.mts +4 -1
  2. package/dist/components/controls/dropdown/Dropdown.d.mts.map +1 -1
  3. package/dist/components/controls/dropdown/Dropdown.mjs +1 -1
  4. package/dist/components/controls/dropdown/Dropdown.mjs.map +1 -1
  5. package/dist/components/controls/dropdown/DropdownChevron.mjs +1 -1
  6. package/dist/components/controls/dropdown/DropdownChevron.mjs.map +1 -1
  7. package/dist/components/controls/dropdown/DropdownTargetTextInput.mjs +1 -1
  8. package/dist/components/controls/dropdown/combobox/Combobox.mjs +1 -1
  9. package/dist/components/controls/dropdown/combobox/Combobox.mjs.map +1 -1
  10. package/dist/components/controls/dropdown/select/Select.d.mts +6 -0
  11. package/dist/components/controls/dropdown/select/Select.d.mts.map +1 -1
  12. package/dist/components/controls/dropdown/select/Select.mjs +1 -1
  13. package/dist/components/controls/dropdown/select/Select.mjs.map +1 -1
  14. package/dist/components/controls/dropdown/select/SelectSearch.d.mts +12 -0
  15. package/dist/components/controls/dropdown/select/SelectSearch.d.mts.map +1 -0
  16. package/dist/components/controls/dropdown/select/SelectSearch.mjs +2 -0
  17. package/dist/components/controls/dropdown/select/SelectSearch.mjs.map +1 -0
  18. package/dist/components/controls/password-input/PasswordInput.mjs +1 -1
  19. package/dist/components/data-display/icons/icon-raw/IconRaw.d.mts +4 -3
  20. package/dist/components/data-display/icons/icon-raw/IconRaw.d.mts.map +1 -1
  21. package/dist/components/data-display/icons/icon-raw/IconRaw.mjs +1 -1
  22. package/dist/components/data-display/icons/icon-raw/IconRaw.mjs.map +1 -1
  23. package/dist/components/data-display/index.d.mts +11 -1
  24. package/dist/components/data-display/indicator/Indicator.mjs +1 -1
  25. package/dist/components/data-display/indicator/Indicator.mjs.map +1 -1
  26. package/dist/components/data-display/kanban/Kanban.d.mts +16 -2
  27. package/dist/components/data-display/kanban/Kanban.d.mts.map +1 -1
  28. package/dist/components/data-display/kanban/Kanban.mjs +1 -1
  29. package/dist/components/data-display/kanban/Kanban.mjs.map +1 -1
  30. package/dist/components/data-display/kanban/KanbanCard.d.mts +21 -0
  31. package/dist/components/data-display/kanban/KanbanCard.d.mts.map +1 -0
  32. package/dist/components/data-display/kanban/KanbanCard.mjs +2 -0
  33. package/dist/components/data-display/kanban/KanbanCard.mjs.map +1 -0
  34. package/dist/components/data-display/kanban/KanbanCardAdder.mjs +2 -0
  35. package/dist/components/data-display/kanban/KanbanCardAdder.mjs.map +1 -0
  36. package/dist/components/data-display/kanban/KanbanCardDragIndicator.mjs +2 -0
  37. package/dist/components/data-display/kanban/KanbanCardDragIndicator.mjs.map +1 -0
  38. package/dist/components/data-display/kanban/KanbanColumnHeader.mjs +1 -1
  39. package/dist/components/data-display/kanban/KanbanColumnHeader.mjs.map +1 -1
  40. package/dist/components/data-display/kanban/KanbanListFooter.mjs +2 -0
  41. package/dist/components/data-display/kanban/KanbanListFooter.mjs.map +1 -0
  42. package/dist/components/data-display/kanban/kanbanUtils.mjs +2 -0
  43. package/dist/components/data-display/kanban/kanbanUtils.mjs.map +1 -0
  44. package/dist/components/data-display/table/Table.d.mts +51 -0
  45. package/dist/components/data-display/table/Table.d.mts.map +1 -0
  46. package/dist/components/data-display/table/Table.mjs +2 -0
  47. package/dist/components/data-display/table/Table.mjs.map +1 -0
  48. package/dist/components/data-display/table/TableBody.d.mts +11 -0
  49. package/dist/components/data-display/table/TableBody.d.mts.map +1 -0
  50. package/dist/components/data-display/table/TableBody.mjs +2 -0
  51. package/dist/components/data-display/table/TableBody.mjs.map +1 -0
  52. package/dist/components/data-display/table/TableCaption.d.mts +11 -0
  53. package/dist/components/data-display/table/TableCaption.d.mts.map +1 -0
  54. package/dist/components/data-display/table/TableCaption.mjs +2 -0
  55. package/dist/components/data-display/table/TableCaption.mjs.map +1 -0
  56. package/dist/components/data-display/table/TableCell.d.mts +12 -0
  57. package/dist/components/data-display/table/TableCell.d.mts.map +1 -0
  58. package/dist/components/data-display/table/TableCell.mjs +2 -0
  59. package/dist/components/data-display/table/TableCell.mjs.map +1 -0
  60. package/dist/components/data-display/table/TableContext.mjs +2 -0
  61. package/dist/components/data-display/table/TableContext.mjs.map +1 -0
  62. package/dist/components/data-display/table/TableFoot.d.mts +11 -0
  63. package/dist/components/data-display/table/TableFoot.d.mts.map +1 -0
  64. package/dist/components/data-display/table/TableFoot.mjs +2 -0
  65. package/dist/components/data-display/table/TableFoot.mjs.map +1 -0
  66. package/dist/components/data-display/table/TableHead.d.mts +12 -0
  67. package/dist/components/data-display/table/TableHead.d.mts.map +1 -0
  68. package/dist/components/data-display/table/TableHead.mjs +2 -0
  69. package/dist/components/data-display/table/TableHead.mjs.map +1 -0
  70. package/dist/components/data-display/table/TableHeaderCell.d.mts +11 -0
  71. package/dist/components/data-display/table/TableHeaderCell.d.mts.map +1 -0
  72. package/dist/components/data-display/table/TableHeaderCell.mjs +2 -0
  73. package/dist/components/data-display/table/TableHeaderCell.mjs.map +1 -0
  74. package/dist/components/data-display/table/TableRoot.mjs +2 -0
  75. package/dist/components/data-display/table/TableRoot.mjs.map +1 -0
  76. package/dist/components/data-display/table/TableRow.d.mts +12 -0
  77. package/dist/components/data-display/table/TableRow.d.mts.map +1 -0
  78. package/dist/components/data-display/table/TableRow.mjs +2 -0
  79. package/dist/components/data-display/table/TableRow.mjs.map +1 -0
  80. package/dist/components/data-display/table/TableScroll.d.mts +14 -0
  81. package/dist/components/data-display/table/TableScroll.d.mts.map +1 -0
  82. package/dist/components/data-display/table/TableScroll.mjs +2 -0
  83. package/dist/components/data-display/table/TableScroll.mjs.map +1 -0
  84. package/dist/components/data-display/table/TableTypes.d.mts +33 -0
  85. package/dist/components/data-display/table/TableTypes.d.mts.map +1 -0
  86. package/dist/components/index.d.mts +13 -2
  87. package/dist/components/misc/index.d.mts +2 -1
  88. package/dist/components/misc/scroll-area/ScrollArea.d.mts +14 -11
  89. package/dist/components/misc/scroll-area/ScrollArea.d.mts.map +1 -1
  90. package/dist/components/misc/scroll-area/ScrollArea.mjs.map +1 -1
  91. package/dist/components/misc/virtual/Virtual.d.mts +29 -0
  92. package/dist/components/misc/virtual/Virtual.d.mts.map +1 -0
  93. package/dist/components/misc/virtual/Virtual.mjs +2 -0
  94. package/dist/components/misc/virtual/Virtual.mjs.map +1 -0
  95. package/dist/index.d.mts +14 -3
  96. package/dist/index.mjs +1 -1
  97. package/package.json +9 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KanbanListFooter.mjs","names":[],"sources":["../../../../src/components/data-display/kanban/KanbanListFooter.tsx"],"sourcesContent":["import { cx } from '@mage-ui/styled-system/css';\nimport {\n kanbanListFooter,\n kanbanListFooterButtonIcon,\n kanbanListFooterButtonIconIcon,\n kanbanListFooterButtonIconIconRaw,\n kanbanListFooterButtonIconIconRawRoot,\n kanbanListFooterButtonIconRoot,\n kanbanListFooterRoot,\n} from '@mage-ui/styled-system/recipes';\nimport { ButtonIcon } from '@/components/buttons';\n\nexport interface KanbanListFooterProps {\n onAddTask?: () => void;\n buttonText?: string;\n classNames?: {\n listFooter?: string;\n listFooterRoot?: string;\n buttonIcon?: {\n buttonIcon?: string;\n root?: string;\n icon?: string;\n iconRaw?: {\n iconRaw?: string;\n root?: string;\n };\n };\n };\n}\n\nexport const KanbanListFooter = ({\n onAddTask,\n buttonText = 'Add task',\n classNames,\n}: KanbanListFooterProps) => {\n return (\n <div\n className={cx(\n classNames?.listFooter ?? kanbanListFooter(),\n classNames?.listFooterRoot ?? kanbanListFooterRoot(),\n )}\n >\n <ButtonIcon\n onClick={onAddTask}\n label={buttonText}\n name='plus'\n path='/icons/sprite-theme.svg'\n classNames={{\n buttonIcon:\n classNames?.buttonIcon?.buttonIcon ?? kanbanListFooterButtonIcon(),\n root:\n classNames?.buttonIcon?.root ?? kanbanListFooterButtonIconRoot(),\n icon:\n classNames?.buttonIcon?.icon ?? kanbanListFooterButtonIconIcon(),\n iconRaw: {\n iconRaw:\n classNames?.buttonIcon?.iconRaw?.iconRaw ??\n kanbanListFooterButtonIconIconRaw(),\n root:\n classNames?.buttonIcon?.iconRaw?.root ??\n kanbanListFooterButtonIconIconRawRoot(),\n },\n }}\n />\n </div>\n );\n};\n"],"mappings":"obA8BA,MAAa,GAAoB,CAC/B,YACA,aAAa,WACb,gBAGE,EAAC,MAAA,CACC,UAAW,EACT,GAAY,YAAc,GAAkB,CAC5C,GAAY,gBAAkB,GAAsB,CACrD,UAED,EAAC,EAAA,CACC,QAAS,EACT,MAAO,EACP,KAAK,OACL,KAAK,0BACL,WAAY,CACV,WACE,GAAY,YAAY,YAAc,GAA4B,CACpE,KACE,GAAY,YAAY,MAAQ,GAAgC,CAClE,KACE,GAAY,YAAY,MAAQ,GAAgC,CAClE,QAAS,CACP,QACE,GAAY,YAAY,SAAS,SACjC,GAAmC,CACrC,KACE,GAAY,YAAY,SAAS,MACjC,GAAuC,CAC1C,CACF,EACD,EACE"}
@@ -0,0 +1,2 @@
1
+ const e=e=>`add-card-${e}`,t=(t,n,r=!0)=>{let i=e(t);return n[t].children.includes(i)?n:{...n,[t]:{...n[t],totalChildrenCount:n[t].totalChildrenCount+1,children:r?[i,...n[t].children]:[...n[t].children,i]},[i]:{id:i,title:`Add card`,parentId:t,children:[],totalChildrenCount:0,type:`new-card`,isDraggable:!1,content:{inTop:r,id:i}}}},n=(t,n)=>{let r=e(t),i={...n};return delete i[r],{...i,[t]:{...n[t],totalChildrenCount:n[t].totalChildrenCount-1,children:n[t].children.filter(e=>e!==r)}}},r=(e,t,r,i=!0)=>{let a=`card-${crypto.randomUUID()}`,o=n(e,t);return{...o,[e]:{...o[e],totalChildrenCount:o[e].totalChildrenCount+1,children:i?[a,...o[e].children]:[...o[e].children,a]},[a]:{id:a,title:r,parentId:e,children:[],totalChildrenCount:0,type:`card`}}};export{r as addCard,t as addCardPlaceholder,e as getAddCardPlaceholderKey,n as removeCardPlaceholder};
2
+ //# sourceMappingURL=kanbanUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kanbanUtils.mjs","names":[],"sources":["../../../../src/components/data-display/kanban/kanbanUtils.ts"],"sourcesContent":["import type { BoardData } from './Kanban';\n\nexport const getAddCardPlaceholderKey = (columnId: string) =>\n `add-card-${columnId}`;\n\nexport const addCardPlaceholder = (\n columnId: string,\n dataSource: BoardData,\n inTop = true,\n): BoardData => {\n const placeholderKey = getAddCardPlaceholderKey(columnId);\n const alreadyExists = dataSource[columnId].children.includes(placeholderKey);\n\n if (alreadyExists) return dataSource;\n\n return {\n ...dataSource,\n [columnId]: {\n ...dataSource[columnId],\n totalChildrenCount: dataSource[columnId].totalChildrenCount + 1,\n children: inTop\n ? [placeholderKey, ...dataSource[columnId].children]\n : [...dataSource[columnId].children, placeholderKey],\n },\n [placeholderKey]: {\n id: placeholderKey,\n title: 'Add card',\n parentId: columnId,\n children: [],\n totalChildrenCount: 0,\n type: 'new-card',\n isDraggable: false,\n content: {\n inTop,\n id: placeholderKey,\n },\n },\n } as BoardData;\n};\n\nexport const removeCardPlaceholder = (\n columnId: string,\n dataSource: BoardData,\n): BoardData => {\n const placeholderKey = getAddCardPlaceholderKey(columnId);\n const updated = { ...dataSource };\n delete updated[placeholderKey];\n return {\n ...updated,\n [columnId]: {\n ...dataSource[columnId],\n totalChildrenCount: dataSource[columnId].totalChildrenCount - 1,\n children: dataSource[columnId].children.filter(\n (id) => id !== placeholderKey,\n ),\n },\n };\n};\n\nexport const addCard = (\n columnId: string,\n dataSource: BoardData,\n title: string,\n inTop = true,\n): BoardData => {\n const newCardId = `card-${crypto.randomUUID()}`;\n const withoutPlaceholder = removeCardPlaceholder(columnId, dataSource);\n\n return {\n ...withoutPlaceholder,\n [columnId]: {\n ...withoutPlaceholder[columnId],\n totalChildrenCount: withoutPlaceholder[columnId].totalChildrenCount + 1,\n children: inTop\n ? [newCardId, ...withoutPlaceholder[columnId].children]\n : [...withoutPlaceholder[columnId].children, newCardId],\n },\n [newCardId]: {\n id: newCardId,\n title,\n parentId: columnId,\n children: [],\n totalChildrenCount: 0,\n type: 'card',\n },\n } as BoardData;\n};\n"],"mappings":"AAEA,MAAa,EAA4B,GACvC,YAAY,IAED,GACX,EACA,EACA,EAAQ,KACM,CACd,IAAM,EAAiB,EAAyB,EAAS,CAKzD,OAJsB,EAAW,GAAU,SAAS,SAAS,EAAe,CAElD,EAEnB,CACL,GAAG,GACF,GAAW,CACV,GAAG,EAAW,GACd,mBAAoB,EAAW,GAAU,mBAAqB,EAC9D,SAAU,EACN,CAAC,EAAgB,GAAG,EAAW,GAAU,SAAS,CAClD,CAAC,GAAG,EAAW,GAAU,SAAU,EAAe,CACvD,EACA,GAAiB,CAChB,GAAI,EACJ,MAAO,WACP,SAAU,EACV,SAAU,EAAE,CACZ,mBAAoB,EACpB,KAAM,WACN,YAAa,GACb,QAAS,CACP,QACA,GAAI,EACL,CACF,CACF,EAGU,GACX,EACA,IACc,CACd,IAAM,EAAiB,EAAyB,EAAS,CACnD,EAAU,CAAE,GAAG,EAAY,CAEjC,OADA,OAAO,EAAQ,GACR,CACL,GAAG,GACF,GAAW,CACV,GAAG,EAAW,GACd,mBAAoB,EAAW,GAAU,mBAAqB,EAC9D,SAAU,EAAW,GAAU,SAAS,OACrC,GAAO,IAAO,EAChB,CACF,CACF,EAGU,GACX,EACA,EACA,EACA,EAAQ,KACM,CACd,IAAM,EAAY,QAAQ,OAAO,YAAY,GACvC,EAAqB,EAAsB,EAAU,EAAW,CAEtE,MAAO,CACL,GAAG,GACF,GAAW,CACV,GAAG,EAAmB,GACtB,mBAAoB,EAAmB,GAAU,mBAAqB,EACtE,SAAU,EACN,CAAC,EAAW,GAAG,EAAmB,GAAU,SAAS,CACrD,CAAC,GAAG,EAAmB,GAAU,SAAU,EAAU,CAC1D,EACA,GAAY,CACX,GAAI,EACJ,QACA,SAAU,EACV,SAAU,EAAE,CACZ,mBAAoB,EACpB,KAAM,OACP,CACF"}
@@ -0,0 +1,51 @@
1
+ import { TableClassNames, TableProps } from "./TableTypes.mjs";
2
+ import { TableHeadProps } from "./TableHead.mjs";
3
+ import { TableBodyProps } from "./TableBody.mjs";
4
+ import { TableFootProps } from "./TableFoot.mjs";
5
+ import { TableRowProps } from "./TableRow.mjs";
6
+ import { TableHeaderCellProps } from "./TableHeaderCell.mjs";
7
+ import { TableCellProps } from "./TableCell.mjs";
8
+ import { TableCaptionProps } from "./TableCaption.mjs";
9
+ import * as react from "react";
10
+
11
+ //#region src/components/data-display/table/Table.d.ts
12
+ declare const Table: (({
13
+ children,
14
+ classNames,
15
+ scrollable,
16
+ ...tableProps
17
+ }: TableProps) => react.ReactNode) & {
18
+ Head: ({
19
+ classNames,
20
+ ref,
21
+ ...props
22
+ }: TableHeadProps) => react.ReactNode;
23
+ Body: ({
24
+ classNames,
25
+ children,
26
+ ...props
27
+ }: TableBodyProps) => react.ReactNode;
28
+ Foot: ({
29
+ classNames,
30
+ ...props
31
+ }: TableFootProps) => react.ReactNode;
32
+ Row: ({
33
+ classNames,
34
+ ...props
35
+ }: TableRowProps) => react.ReactNode;
36
+ HeaderCell: ({
37
+ classNames,
38
+ ...props
39
+ }: TableHeaderCellProps) => react.ReactNode;
40
+ Cell: ({
41
+ classNames,
42
+ ...props
43
+ }: TableCellProps) => react.ReactNode;
44
+ Caption: ({
45
+ classNames,
46
+ ...props
47
+ }: TableCaptionProps) => react.ReactNode;
48
+ };
49
+ //#endregion
50
+ export { Table };
51
+ //# sourceMappingURL=Table.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.d.mts","names":[],"sources":["../../../../src/components/data-display/table/Table.tsx"],"mappings":";;;;;;;;;;;cAkBa,KAAA;EAAK,QAAA;EAAA,UAAA;EAAA,UAAA;EAAA,GAAA;AAAA,GAAA,UAAA,KAAA,KAAA,CAAA,SAAA"}
@@ -0,0 +1,2 @@
1
+ import{TableBody as e}from"./TableBody.mjs";import{TableCaption as t}from"./TableCaption.mjs";import{TableCell as n}from"./TableCell.mjs";import{TableFoot as r}from"./TableFoot.mjs";import{TableHead as i}from"./TableHead.mjs";import{TableHeaderCell as a}from"./TableHeaderCell.mjs";import{TableRoot as o}from"./TableRoot.mjs";import{TableRow as s}from"./TableRow.mjs";const c=Object.assign(o,{Head:i,Body:e,Foot:r,Row:s,HeaderCell:a,Cell:n,Caption:t});export{c as Table};
2
+ //# sourceMappingURL=Table.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.mjs","names":[],"sources":["../../../../src/components/data-display/table/Table.tsx"],"sourcesContent":["export type { TableBodyProps } from './TableBody';\nexport type { TableCaptionProps } from './TableCaption';\nexport type { TableCellProps } from './TableCell';\nexport type { TableFootProps } from './TableFoot';\nexport type { TableHeadProps } from './TableHead';\nexport type { TableHeaderCellProps } from './TableHeaderCell';\nexport type { TableRowProps } from './TableRow';\nexport type { TableClassNames, TableProps } from './TableTypes';\n\nimport { TableBody } from './TableBody';\nimport { TableCaption } from './TableCaption';\nimport { TableCell } from './TableCell';\nimport { TableFoot } from './TableFoot';\nimport { TableHead } from './TableHead';\nimport { TableHeaderCell } from './TableHeaderCell';\nimport { TableRoot } from './TableRoot';\nimport { TableRow } from './TableRow';\n\nexport const Table = Object.assign(TableRoot, {\n Head: TableHead,\n Body: TableBody,\n Foot: TableFoot,\n Row: TableRow,\n HeaderCell: TableHeaderCell,\n Cell: TableCell,\n Caption: TableCaption,\n});\n"],"mappings":"gXAkBA,MAAa,EAAQ,OAAO,OAAO,EAAW,CAC5C,KAAM,EACN,KAAM,EACN,KAAM,EACN,IAAK,EACL,WAAY,EACZ,KAAM,EACN,QAAS,EACV,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { TableClassNames } from "./TableTypes.mjs";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/data-display/table/TableBody.d.ts
5
+ type TableBodyProps = {
6
+ children: ReactNode;
7
+ classNames?: Pick<TableClassNames, 'tbody'>;
8
+ };
9
+ //#endregion
10
+ export { TableBodyProps };
11
+ //# sourceMappingURL=TableBody.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableBody.d.mts","names":[],"sources":["../../../../src/components/data-display/table/TableBody.tsx"],"mappings":";;;;KAwCY,cAAA;EACV,QAAA,EAAU,SAAA;EACV,UAAA,GAAa,IAAA,CAAK,eAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{Virtual as e}from"../../misc/virtual/Virtual.mjs";import{useScrollableContext as t}from"./TableContext.mjs";import{Table as n}from"@mantine/core";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";import{Children as o,cloneElement as s,isValidElement as c}from"react";const l=({height:e})=>e<=0?null:i(`tr`,{"aria-hidden":!0,children:i(`td`,{style:{height:e}})}),u=({item:e})=>{let t=e.row;if(!c(t))return t;let n=t.props.ref;return s(t,{ref:t=>{e.measureRef(t),typeof n==`function`?n(t):n&&(n.current=t)}})},d=({classNames:s,children:c,...d})=>{let f=t();if(f){let t=o.toArray(c);return i(n.Tbody,{className:s?.tbody,...d,children:i(e,{rows:t,estimateSize:f.estimateSize,scrollRef:f.viewportRef,overscan:f.overscan,children:(e,t)=>a(r,{children:[i(l,{height:t.top}),e.map(e=>i(u,{item:e},e.index)),i(l,{height:t.bottom})]})})})}return i(n.Tbody,{className:s?.tbody,...d,children:c})};export{d as TableBody};
2
+ //# sourceMappingURL=TableBody.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableBody.mjs","names":["MantineTable"],"sources":["../../../../src/components/data-display/table/TableBody.tsx"],"sourcesContent":["import { Children, cloneElement, isValidElement, type ReactNode } from 'react';\n\nimport { Table as MantineTable } from '@mantine/core';\n\nimport { Virtual, type VirtualItem } from '../../misc/virtual/Virtual';\nimport { useScrollableContext } from './TableContext';\nimport type { TableClassNames } from './TableTypes';\n\nconst SpacerRow = ({ height }: { height: number }): ReactNode => {\n if (height <= 0) return null;\n return (\n <tr aria-hidden>\n <td style={{ height }} />\n </tr>\n );\n};\n\nconst VirtualRow = ({ item }: { item: VirtualItem<ReactNode> }): ReactNode => {\n const child = item.row;\n if (!isValidElement(child)) return child;\n\n const existingRef = (child.props as Record<string, unknown>).ref as\n | React.Ref<Element>\n | undefined;\n\n return cloneElement(\n child as React.ReactElement<{ ref?: React.Ref<Element> }>,\n {\n ref: (node: Element | null) => {\n item.measureRef(node);\n if (typeof existingRef === 'function') {\n existingRef(node);\n } else if (existingRef) {\n existingRef.current = node;\n }\n },\n },\n );\n};\n\nexport type TableBodyProps = {\n children: ReactNode;\n classNames?: Pick<TableClassNames, 'tbody'>;\n};\n\nexport const TableBody = ({\n classNames,\n children,\n ...props\n}: TableBodyProps): ReactNode => {\n const scrollable = useScrollableContext();\n\n if (scrollable) {\n const childArray = Children.toArray(children);\n\n return (\n <MantineTable.Tbody className={classNames?.tbody} {...props}>\n <Virtual\n rows={childArray}\n estimateSize={scrollable.estimateSize}\n scrollRef={scrollable.viewportRef}\n overscan={scrollable.overscan}\n >\n {(items, padding) => (\n <>\n <SpacerRow height={padding.top} />\n {items.map((item) => (\n <VirtualRow key={item.index} item={item} />\n ))}\n <SpacerRow height={padding.bottom} />\n </>\n )}\n </Virtual>\n </MantineTable.Tbody>\n );\n }\n\n return (\n <MantineTable.Tbody className={classNames?.tbody} {...props}>\n {children}\n </MantineTable.Tbody>\n );\n};\n"],"mappings":"gSAQA,MAAM,GAAa,CAAE,YACf,GAAU,EAAU,KAEtB,EAAC,KAAA,CAAG,cAAA,YACF,EAAC,KAAA,CAAG,MAAO,CAAE,SAAQ,CAAA,CAAI,EACtB,CAIH,GAAc,CAAE,UAAwD,CAC5E,IAAM,EAAQ,EAAK,IACnB,GAAI,CAAC,EAAe,EAAM,CAAE,OAAO,EAEnC,IAAM,EAAe,EAAM,MAAkC,IAI7D,OAAO,EACL,EACA,CACE,IAAM,GAAyB,CAC7B,EAAK,WAAW,EAAK,CACjB,OAAO,GAAgB,WACzB,EAAY,EAAK,CACR,IACT,EAAY,QAAU,IAG3B,CACF,EAQU,GAAa,CACxB,aACA,WACA,GAAG,KAC4B,CAC/B,IAAM,EAAa,GAAsB,CAEzC,GAAI,EAAY,CACd,IAAM,EAAa,EAAS,QAAQ,EAAS,CAE7C,OACE,EAACA,EAAa,MAAA,CAAM,UAAW,GAAY,MAAO,GAAI,WACpD,EAAC,EAAA,CACC,KAAM,EACN,aAAc,EAAW,aACzB,UAAW,EAAW,YACtB,SAAU,EAAW,mBAEnB,EAAO,IACP,EAAA,EAAA,CAAA,SAAA,CACE,EAAC,EAAA,CAAU,OAAQ,EAAQ,IAAA,CAAO,CACjC,EAAM,IAAK,GACV,EAAC,EAAA,CAAkC,OAAA,CAAlB,EAAK,MAAqB,CAC3C,CACF,EAAC,EAAA,CAAU,OAAQ,EAAQ,OAAA,CAAU,GACpC,EAEG,EACS,CAIzB,OACE,EAACA,EAAa,MAAA,CAAM,UAAW,GAAY,MAAO,GAAI,EACnD,YACkB"}
@@ -0,0 +1,11 @@
1
+ import { TableClassNames } from "./TableTypes.mjs";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/data-display/table/TableCaption.d.ts
5
+ type TableCaptionProps = {
6
+ children: ReactNode;
7
+ classNames?: Pick<TableClassNames, 'caption'>;
8
+ };
9
+ //#endregion
10
+ export { TableCaptionProps };
11
+ //# sourceMappingURL=TableCaption.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableCaption.d.mts","names":[],"sources":["../../../../src/components/data-display/table/TableCaption.tsx"],"mappings":";;;;KAMY,iBAAA;EACV,QAAA,EAAU,SAAA;EACV,UAAA,GAAa,IAAA,CAAK,eAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{Table as e}from"@mantine/core";import{jsx as t}from"react/jsx-runtime";const n=({classNames:n,...r})=>t(e.Caption,{className:n?.caption,...r});export{n as TableCaption};
2
+ //# sourceMappingURL=TableCaption.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableCaption.mjs","names":["MantineTable"],"sources":["../../../../src/components/data-display/table/TableCaption.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Table as MantineTable } from '@mantine/core';\n\nimport type { TableClassNames } from './TableTypes';\n\nexport type TableCaptionProps = {\n children: ReactNode;\n classNames?: Pick<TableClassNames, 'caption'>;\n};\n\nexport const TableCaption = ({\n classNames,\n ...props\n}: TableCaptionProps): ReactNode => {\n return <MantineTable.Caption className={classNames?.caption} {...props} />;\n};\n"],"mappings":"8EAWA,MAAa,GAAgB,CAC3B,aACA,GAAG,KAEI,EAACA,EAAa,QAAA,CAAQ,UAAW,GAAY,QAAS,GAAI,GAAS"}
@@ -0,0 +1,12 @@
1
+ import { TableClassNames } from "./TableTypes.mjs";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/data-display/table/TableCell.d.ts
5
+ type TableCellProps = {
6
+ children?: ReactNode;
7
+ style?: React.CSSProperties;
8
+ classNames?: Pick<TableClassNames, 'td'>;
9
+ };
10
+ //#endregion
11
+ export { TableCellProps };
12
+ //# sourceMappingURL=TableCell.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableCell.d.mts","names":[],"sources":["../../../../src/components/data-display/table/TableCell.tsx"],"mappings":";;;;KAMY,cAAA;EACV,QAAA,GAAW,SAAA;EACX,KAAA,GAAQ,KAAA,CAAM,aAAA;EACd,UAAA,GAAa,IAAA,CAAK,eAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{Table as e}from"@mantine/core";import{jsx as t}from"react/jsx-runtime";const n=({classNames:n,...r})=>t(e.Td,{className:n?.td,...r});export{n as TableCell};
2
+ //# sourceMappingURL=TableCell.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableCell.mjs","names":["MantineTable"],"sources":["../../../../src/components/data-display/table/TableCell.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Table as MantineTable } from '@mantine/core';\n\nimport type { TableClassNames } from './TableTypes';\n\nexport type TableCellProps = {\n children?: ReactNode;\n style?: React.CSSProperties;\n classNames?: Pick<TableClassNames, 'td'>;\n};\n\nexport const TableCell = ({\n classNames,\n ...props\n}: TableCellProps): ReactNode => {\n return <MantineTable.Td className={classNames?.td} {...props} />;\n};\n"],"mappings":"8EAYA,MAAa,GAAa,CACxB,aACA,GAAG,KAEI,EAACA,EAAa,GAAA,CAAG,UAAW,GAAY,GAAI,GAAI,GAAS"}
@@ -0,0 +1,2 @@
1
+ import{createContext as e,useContext as t}from"react";const n=e(null),r=()=>t(n);export{n as ScrollableContext,r as useScrollableContext};
2
+ //# sourceMappingURL=TableContext.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableContext.mjs","names":[],"sources":["../../../../src/components/data-display/table/TableContext.tsx"],"sourcesContent":["import { createContext, type RefObject, useContext } from 'react';\n\nexport type ScrollableContextValue = {\n viewportRef: RefObject<HTMLDivElement | null>;\n estimateSize: number;\n overscan?: number;\n stickyHeader?: boolean;\n setHeaderHeight: (height: number) => void;\n};\n\nexport const ScrollableContext = createContext<ScrollableContextValue | null>(\n null,\n);\n\nexport const useScrollableContext = () => useContext(ScrollableContext);\n"],"mappings":"sDAUA,MAAa,EAAoB,EAC/B,KACD,CAEY,MAA6B,EAAW,EAAkB"}
@@ -0,0 +1,11 @@
1
+ import { TableClassNames } from "./TableTypes.mjs";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/data-display/table/TableFoot.d.ts
5
+ type TableFootProps = {
6
+ children: ReactNode;
7
+ classNames?: Pick<TableClassNames, 'tfoot'>;
8
+ };
9
+ //#endregion
10
+ export { TableFootProps };
11
+ //# sourceMappingURL=TableFoot.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableFoot.d.mts","names":[],"sources":["../../../../src/components/data-display/table/TableFoot.tsx"],"mappings":";;;;KAMY,cAAA;EACV,QAAA,EAAU,SAAA;EACV,UAAA,GAAa,IAAA,CAAK,eAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{Table as e}from"@mantine/core";import{jsx as t}from"react/jsx-runtime";const n=({classNames:n,...r})=>t(e.Tfoot,{className:n?.tfoot,...r});export{n as TableFoot};
2
+ //# sourceMappingURL=TableFoot.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableFoot.mjs","names":["MantineTable"],"sources":["../../../../src/components/data-display/table/TableFoot.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Table as MantineTable } from '@mantine/core';\n\nimport type { TableClassNames } from './TableTypes';\n\nexport type TableFootProps = {\n children: ReactNode;\n classNames?: Pick<TableClassNames, 'tfoot'>;\n};\n\nexport const TableFoot = ({\n classNames,\n ...props\n}: TableFootProps): ReactNode => {\n return <MantineTable.Tfoot className={classNames?.tfoot} {...props} />;\n};\n"],"mappings":"8EAWA,MAAa,GAAa,CACxB,aACA,GAAG,KAEI,EAACA,EAAa,MAAA,CAAM,UAAW,GAAY,MAAO,GAAI,GAAS"}
@@ -0,0 +1,12 @@
1
+ import { TableClassNames } from "./TableTypes.mjs";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/data-display/table/TableHead.d.ts
5
+ type TableHeadProps = {
6
+ children: ReactNode;
7
+ ref?: React.Ref<HTMLTableSectionElement>;
8
+ classNames?: Pick<TableClassNames, 'thead'>;
9
+ };
10
+ //#endregion
11
+ export { TableHeadProps };
12
+ //# sourceMappingURL=TableHead.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHead.d.mts","names":[],"sources":["../../../../src/components/data-display/table/TableHead.tsx"],"mappings":";;;;KAOY,cAAA;EACV,QAAA,EAAU,SAAA;EACV,GAAA,GAAM,KAAA,CAAM,GAAA,CAAI,uBAAA;EAChB,UAAA,GAAa,IAAA,CAAK,eAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{useScrollableContext as e}from"./TableContext.mjs";import{Table as t}from"@mantine/core";import{jsx as n}from"react/jsx-runtime";import{useCallback as r}from"react";const i=({classNames:i,ref:a,...o})=>{let s=e(),c=r(e=>{e&&s?.setHeaderHeight(e.offsetHeight),typeof a==`function`?a(e):a&&(a.current=e)},[s,a]);return n(t.Thead,{className:i?.thead,ref:s?c:a,...o})};export{i as TableHead};
2
+ //# sourceMappingURL=TableHead.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHead.mjs","names":["MantineTable"],"sources":["../../../../src/components/data-display/table/TableHead.tsx"],"sourcesContent":["import { type ReactNode, useCallback } from 'react';\n\nimport { Table as MantineTable } from '@mantine/core';\n\nimport { useScrollableContext } from './TableContext';\nimport type { TableClassNames } from './TableTypes';\n\nexport type TableHeadProps = {\n children: ReactNode;\n ref?: React.Ref<HTMLTableSectionElement>;\n classNames?: Pick<TableClassNames, 'thead'>;\n};\n\nexport const TableHead = ({\n classNames,\n ref,\n ...props\n}: TableHeadProps): ReactNode => {\n const scrollable = useScrollableContext();\n\n const theadRef = useCallback(\n (node: HTMLTableSectionElement | null) => {\n if (node) {\n scrollable?.setHeaderHeight(node.offsetHeight);\n }\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n },\n [scrollable, ref],\n );\n\n return (\n <MantineTable.Thead\n className={classNames?.thead}\n ref={scrollable ? theadRef : ref}\n {...props}\n />\n );\n};\n"],"mappings":"4KAaA,MAAa,GAAa,CACxB,aACA,MACA,GAAG,KAC4B,CAC/B,IAAM,EAAa,GAAsB,CAEnC,EAAW,EACd,GAAyC,CACpC,GACF,GAAY,gBAAgB,EAAK,aAAa,CAE5C,OAAO,GAAQ,WACjB,EAAI,EAAK,CACA,IACT,EAAI,QAAU,IAGlB,CAAC,EAAY,EAAI,CAClB,CAED,OACE,EAACA,EAAa,MAAA,CACZ,UAAW,GAAY,MACvB,IAAK,EAAa,EAAW,EAC7B,GAAI,GACJ"}
@@ -0,0 +1,11 @@
1
+ import { TableClassNames } from "./TableTypes.mjs";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/data-display/table/TableHeaderCell.d.ts
5
+ type TableHeaderCellProps = {
6
+ children?: ReactNode;
7
+ classNames?: Pick<TableClassNames, 'th'>;
8
+ };
9
+ //#endregion
10
+ export { TableHeaderCellProps };
11
+ //# sourceMappingURL=TableHeaderCell.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeaderCell.d.mts","names":[],"sources":["../../../../src/components/data-display/table/TableHeaderCell.tsx"],"mappings":";;;;KAMY,oBAAA;EACV,QAAA,GAAW,SAAA;EACX,UAAA,GAAa,IAAA,CAAK,eAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{Table as e}from"@mantine/core";import{jsx as t}from"react/jsx-runtime";const n=({classNames:n,...r})=>t(e.Th,{className:n?.th,...r});export{n as TableHeaderCell};
2
+ //# sourceMappingURL=TableHeaderCell.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeaderCell.mjs","names":["MantineTable"],"sources":["../../../../src/components/data-display/table/TableHeaderCell.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Table as MantineTable } from '@mantine/core';\n\nimport type { TableClassNames } from './TableTypes';\n\nexport type TableHeaderCellProps = {\n children?: ReactNode;\n classNames?: Pick<TableClassNames, 'th'>;\n};\n\nexport const TableHeaderCell = ({\n classNames,\n ...props\n}: TableHeaderCellProps): ReactNode => {\n return <MantineTable.Th className={classNames?.th} {...props} />;\n};\n"],"mappings":"8EAWA,MAAa,GAAmB,CAC9B,aACA,GAAG,KAEI,EAACA,EAAa,GAAA,CAAG,UAAW,GAAY,GAAI,GAAI,GAAS"}
@@ -0,0 +1,2 @@
1
+ import{TableScroll as e}from"./TableScroll.mjs";import{cx as t}from"@mage-ui/styled-system/css";import{table as n,tableCaption as r,tableRoot as i,tableTbody as a,tableTd as o,tableTfoot as s,tableTh as c,tableThead as l,tableTr as u}from"@mage-ui/styled-system/recipes";import{Table as d}from"@mantine/core";import{jsx as f}from"react/jsx-runtime";const p=({children:p,classNames:m,scrollable:h,...g})=>{let _=f(d,{withRowBorders:!0,"data-scrollable":h?!0:void 0,classNames:{table:t(m?.table??n(),m?.root??i()),thead:m?.thead??l(),tbody:m?.tbody??a(),tfoot:m?.tfoot??s(),tr:m?.tr??u(),th:m?.th??c(),td:m?.td??o(),caption:m?.caption??r()},...g,children:p});return h?f(e,{scrollable:h,stickyHeader:g.stickyHeader,children:_}):_};export{p as TableRoot};
2
+ //# sourceMappingURL=TableRoot.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRoot.mjs","names":["table","MantineTable","tableRecipe"],"sources":["../../../../src/components/data-display/table/TableRoot.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n tableCaption,\n table as tableRecipe,\n tableRoot,\n tableTbody,\n tableTd,\n tableTfoot,\n tableTh,\n tableThead,\n tableTr,\n} from '@mage-ui/styled-system/recipes';\nimport { Table as MantineTable } from '@mantine/core';\n\nimport { TableScroll } from './TableScroll';\nimport type { TableProps } from './TableTypes';\n\nexport const TableRoot = ({\n children,\n classNames,\n scrollable,\n ...tableProps\n}: TableProps): ReactNode => {\n const table = (\n <MantineTable\n withRowBorders\n data-scrollable={scrollable ? true : undefined}\n classNames={{\n table: cx(\n classNames?.table ?? tableRecipe(),\n classNames?.root ?? tableRoot(),\n ),\n thead: classNames?.thead ?? tableThead(),\n tbody: classNames?.tbody ?? tableTbody(),\n tfoot: classNames?.tfoot ?? tableTfoot(),\n tr: classNames?.tr ?? tableTr(),\n th: classNames?.th ?? tableTh(),\n td: classNames?.td ?? tableTd(),\n caption: classNames?.caption ?? tableCaption(),\n }}\n {...tableProps}\n >\n {children}\n </MantineTable>\n );\n\n if (scrollable) {\n return (\n <TableScroll\n scrollable={scrollable}\n stickyHeader={tableProps.stickyHeader}\n >\n {table}\n </TableScroll>\n );\n }\n\n return table;\n};\n"],"mappings":"6VAmBA,MAAa,GAAa,CACxB,WACA,aACA,aACA,GAAG,KACwB,CAC3B,IAAMA,EACJ,EAACC,EAAAA,CACC,eAAA,GACA,kBAAiB,EAAa,GAAO,IAAA,GACrC,WAAY,CACV,MAAO,EACL,GAAY,OAASC,GAAa,CAClC,GAAY,MAAQ,GAAW,CAChC,CACD,MAAO,GAAY,OAAS,GAAY,CACxC,MAAO,GAAY,OAAS,GAAY,CACxC,MAAO,GAAY,OAAS,GAAY,CACxC,GAAI,GAAY,IAAM,GAAS,CAC/B,GAAI,GAAY,IAAM,GAAS,CAC/B,GAAI,GAAY,IAAM,GAAS,CAC/B,QAAS,GAAY,SAAW,GAAc,CAC/C,CACD,GAAI,EAEH,YACY,CAcjB,OAXI,EAEA,EAAC,EAAA,CACa,aACZ,aAAc,EAAW,sBAExBF,GACW,CAIXA"}
@@ -0,0 +1,12 @@
1
+ import { TableClassNames } from "./TableTypes.mjs";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/data-display/table/TableRow.d.ts
5
+ type TableRowProps = {
6
+ children: ReactNode;
7
+ ref?: React.Ref<HTMLTableRowElement>;
8
+ classNames?: Pick<TableClassNames, 'tr'>;
9
+ };
10
+ //#endregion
11
+ export { TableRowProps };
12
+ //# sourceMappingURL=TableRow.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRow.d.mts","names":[],"sources":["../../../../src/components/data-display/table/TableRow.tsx"],"mappings":";;;;KAMY,aAAA;EACV,QAAA,EAAU,SAAA;EACV,GAAA,GAAM,KAAA,CAAM,GAAA,CAAI,mBAAA;EAChB,UAAA,GAAa,IAAA,CAAK,eAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{Table as e}from"@mantine/core";import{jsx as t}from"react/jsx-runtime";const n=({classNames:n,...r})=>t(e.Tr,{className:n?.tr,...r});export{n as TableRow};
2
+ //# sourceMappingURL=TableRow.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRow.mjs","names":["MantineTable"],"sources":["../../../../src/components/data-display/table/TableRow.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Table as MantineTable } from '@mantine/core';\n\nimport type { TableClassNames } from './TableTypes';\n\nexport type TableRowProps = {\n children: ReactNode;\n ref?: React.Ref<HTMLTableRowElement>;\n classNames?: Pick<TableClassNames, 'tr'>;\n};\n\nexport const TableRow = ({\n classNames,\n ...props\n}: TableRowProps): ReactNode => {\n return <MantineTable.Tr className={classNames?.tr} {...props} />;\n};\n"],"mappings":"8EAYA,MAAa,GAAY,CACvB,aACA,GAAG,KAEI,EAACA,EAAa,GAAA,CAAG,UAAW,GAAY,GAAI,GAAI,GAAS"}
@@ -0,0 +1,14 @@
1
+ import { ScrollAreaProps } from "../../misc/scroll-area/ScrollArea.mjs";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/data-display/table/TableScroll.d.ts
5
+ type ScrollableTableConfig = {
6
+ maxHeight?: number | string;
7
+ minWidth?: number | string;
8
+ estimateSize: number;
9
+ overscan?: number;
10
+ scrollAreaProps?: Omit<ScrollAreaProps, 'children' | 'viewportRef' | 'style'>;
11
+ };
12
+ //#endregion
13
+ export { ScrollableTableConfig };
14
+ //# sourceMappingURL=TableScroll.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableScroll.d.mts","names":[],"sources":["../../../../src/components/data-display/table/TableScroll.tsx"],"mappings":";;;;KAmBY,qBAAA;EACV,SAAA;EACA,QAAA;EACA,YAAA;EACA,QAAA;EACA,eAAA,GAAkB,IAAA,CAAK,eAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{ScrollableContext as e}from"./TableContext.mjs";import{ScrollArea as t}from"../../misc/scroll-area/ScrollArea.mjs";import{tableScroll as n,tableScrollContent as r,tableScrollCorner as i,tableScrollRoot as a,tableScrollScrollbar as o,tableScrollThumb as s,tableScrollViewport as c}from"@mage-ui/styled-system/recipes";import{jsx as l}from"react/jsx-runtime";import{useRef as u,useState as d}from"react";const f=({children:f,scrollable:p,stickyHeader:m})=>{let h=u(null),[g,_]=d(0),{maxHeight:v,minWidth:y,estimateSize:b,overscan:x,scrollAreaProps:S}=p,C={...v&&{"--scrollarea-viewport-max-height":typeof v==`number`?`${v}px`:v},...y&&{"--scrollable-table-min-width":typeof y==`number`?`${y}px`:y},...m&&{"--scrollarea-scrollbar-vertical-top":`${g}px`}},w={scrollArea:S?.classNames?.scrollArea??n(),root:S?.classNames?.root??a(),viewport:S?.classNames?.viewport??c(),content:S?.classNames?.content??r(),scrollbar:S?.classNames?.scrollbar??o(),thumb:S?.classNames?.thumb??s(),corner:S?.classNames?.corner??i()};return l(e.Provider,{value:{viewportRef:h,estimateSize:b,overscan:x,stickyHeader:m,setHeaderHeight:_},children:l(t,{scrollbars:`xy`,type:`hover`,offsetScrollbars:!1,"data-sticky-header":m||void 0,viewportRef:h,classNames:w,style:C,...S,children:f})})};export{f as TableScroll};
2
+ //# sourceMappingURL=TableScroll.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableScroll.mjs","names":["tableScrollRecipe"],"sources":["../../../../src/components/data-display/table/TableScroll.tsx"],"sourcesContent":["import { type ReactNode, useRef, useState } from 'react';\n\nimport {\n tableScrollContent,\n tableScrollCorner,\n tableScroll as tableScrollRecipe,\n tableScrollRoot,\n tableScrollScrollbar,\n tableScrollThumb,\n tableScrollViewport,\n} from '@mage-ui/styled-system/recipes';\n\nimport {\n ScrollArea,\n type ScrollAreaClassNames,\n type ScrollAreaProps,\n} from '../../misc/scroll-area/ScrollArea';\nimport { ScrollableContext } from './TableContext';\n\nexport type ScrollableTableConfig = {\n maxHeight?: number | string;\n minWidth?: number | string;\n estimateSize: number;\n overscan?: number;\n scrollAreaProps?: Omit<ScrollAreaProps, 'children' | 'viewportRef' | 'style'>;\n};\n\ntype TableScrollProps = {\n children: ReactNode;\n scrollable: ScrollableTableConfig;\n stickyHeader?: boolean;\n};\n\nexport const TableScroll = ({\n children,\n scrollable,\n stickyHeader,\n}: TableScrollProps): ReactNode => {\n const viewportRef = useRef<HTMLDivElement>(null);\n const [headerHeight, setHeaderHeight] = useState(0);\n\n const { maxHeight, minWidth, estimateSize, overscan, scrollAreaProps } =\n scrollable;\n\n const style = {\n ...(maxHeight && {\n '--scrollarea-viewport-max-height':\n typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight,\n }),\n ...(minWidth && {\n '--scrollable-table-min-width':\n typeof minWidth === 'number' ? `${minWidth}px` : minWidth,\n }),\n ...(stickyHeader && {\n '--scrollarea-scrollbar-vertical-top': `${headerHeight}px`,\n }),\n } as React.CSSProperties;\n\n const classNames: ScrollAreaClassNames = {\n scrollArea: scrollAreaProps?.classNames?.scrollArea ?? tableScrollRecipe(),\n root: scrollAreaProps?.classNames?.root ?? tableScrollRoot(),\n viewport: scrollAreaProps?.classNames?.viewport ?? tableScrollViewport(),\n content: scrollAreaProps?.classNames?.content ?? tableScrollContent(),\n scrollbar: scrollAreaProps?.classNames?.scrollbar ?? tableScrollScrollbar(),\n thumb: scrollAreaProps?.classNames?.thumb ?? tableScrollThumb(),\n corner: scrollAreaProps?.classNames?.corner ?? tableScrollCorner(),\n };\n\n return (\n <ScrollableContext.Provider\n value={{\n viewportRef,\n estimateSize,\n overscan,\n stickyHeader,\n setHeaderHeight,\n }}\n >\n <ScrollArea\n scrollbars='xy'\n type='hover'\n offsetScrollbars={false}\n data-sticky-header={stickyHeader || undefined}\n viewportRef={viewportRef}\n classNames={classNames}\n style={style}\n {...scrollAreaProps}\n >\n {children}\n </ScrollArea>\n </ScrollableContext.Provider>\n );\n};\n"],"mappings":"yZAiCA,MAAa,GAAe,CAC1B,WACA,aACA,kBACiC,CACjC,IAAM,EAAc,EAAuB,KAAK,CAC1C,CAAC,EAAc,GAAmB,EAAS,EAAE,CAE7C,CAAE,YAAW,WAAU,eAAc,WAAU,mBACnD,EAEI,EAAQ,CACZ,GAAI,GAAa,CACf,mCACE,OAAO,GAAc,SAAW,GAAG,EAAU,IAAM,EACtD,CACD,GAAI,GAAY,CACd,+BACE,OAAO,GAAa,SAAW,GAAG,EAAS,IAAM,EACpD,CACD,GAAI,GAAgB,CAClB,sCAAuC,GAAG,EAAa,IACxD,CACF,CAEK,EAAmC,CACvC,WAAY,GAAiB,YAAY,YAAcA,GAAmB,CAC1E,KAAM,GAAiB,YAAY,MAAQ,GAAiB,CAC5D,SAAU,GAAiB,YAAY,UAAY,GAAqB,CACxE,QAAS,GAAiB,YAAY,SAAW,GAAoB,CACrE,UAAW,GAAiB,YAAY,WAAa,GAAsB,CAC3E,MAAO,GAAiB,YAAY,OAAS,GAAkB,CAC/D,OAAQ,GAAiB,YAAY,QAAU,GAAmB,CACnE,CAED,OACE,EAAC,EAAkB,SAAA,CACjB,MAAO,CACL,cACA,eACA,WACA,eACA,kBACD,UAED,EAAC,EAAA,CACC,WAAW,KACX,KAAK,QACL,iBAAkB,GAClB,qBAAoB,GAAgB,IAAA,GACvB,cACD,aACL,QACP,GAAI,EAEH,YACU,EACc"}
@@ -0,0 +1,33 @@
1
+ import { ScrollableTableConfig } from "./TableScroll.mjs";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/data-display/table/TableTypes.d.ts
5
+ type TableClassNames = {
6
+ table?: string;
7
+ root?: string;
8
+ thead?: string;
9
+ tbody?: string;
10
+ tfoot?: string;
11
+ tr?: string;
12
+ th?: string;
13
+ td?: string;
14
+ caption?: string;
15
+ };
16
+ type TableProps = {
17
+ children: ReactNode;
18
+ layout?: 'auto' | 'fixed';
19
+ captionSide?: 'top' | 'bottom';
20
+ withTableBorder?: boolean;
21
+ withColumnBorders?: boolean;
22
+ withRowBorders?: boolean;
23
+ striped?: boolean | 'odd' | 'even';
24
+ highlightOnHover?: boolean;
25
+ stickyHeader?: boolean;
26
+ stickyHeaderOffset?: number | string;
27
+ tabularNums?: boolean;
28
+ classNames?: TableClassNames;
29
+ scrollable?: ScrollableTableConfig;
30
+ };
31
+ //#endregion
32
+ export { TableClassNames, TableProps };
33
+ //# sourceMappingURL=TableTypes.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableTypes.d.mts","names":[],"sources":["../../../../src/components/data-display/table/TableTypes.ts"],"mappings":";;;;KAIY,eAAA;EACV,KAAA;EACA,IAAA;EACA,KAAA;EACA,KAAA;EACA,KAAA;EACA,EAAA;EACA,EAAA;EACA,EAAA;EACA,OAAA;AAAA;AAAA,KAGU,UAAA;EACV,QAAA,EAAU,SAAA;EACV,MAAA;EACA,WAAA;EACA,eAAA;EACA,iBAAA;EACA,cAAA;EACA,OAAA;EACA,gBAAA;EACA,YAAA;EACA,kBAAA;EACA,WAAA;EACA,UAAA,GAAa,eAAA;EACb,UAAA,GAAa,qBAAA;AAAA"}
@@ -8,8 +8,9 @@ import "./buttons/index.mjs";
8
8
  import { Checkbox, CheckboxProps } from "./controls/checkbox/Checkbox.mjs";
9
9
  import { DatePicker, DatePickerProps } from "./controls/date-picker/DatePicker.mjs";
10
10
  import { HorizontalDivider, HorizontalDividerProps } from "./misc/horizontal-divider/HorizontalDivider.mjs";
11
- import { ScrollArea, ScrollAreaProps } from "./misc/scroll-area/ScrollArea.mjs";
11
+ import { ScrollArea, ScrollAreaClassNames, ScrollAreaProps } from "./misc/scroll-area/ScrollArea.mjs";
12
12
  import { ScrollAreaAutosize, ScrollAreaAutosizeProps } from "./misc/scroll-area-autosize/ScrollAreaAutosize.mjs";
13
+ import { Virtual, VirtualItem, VirtualPadding, VirtualProps } from "./misc/virtual/Virtual.mjs";
13
14
  import { VisuallyHidden, VisuallyHiddenProps } from "./misc/visually-hidden/VisuallyHidden.mjs";
14
15
  import "./misc/index.mjs";
15
16
  import { TextInput, TextInputProps } from "./controls/text-input/TextInput.mjs";
@@ -26,13 +27,23 @@ import { IconRaw, IconRawProps } from "./data-display/icons/icon-raw/IconRaw.mjs
26
27
  import { IconSvg, IconSvgProps } from "./data-display/icons/icon-svg/IconSvg.mjs";
27
28
  import { IconWrapped, IconWrappedProps } from "./data-display/icons/icon-wrapped/IconWrapped.mjs";
28
29
  import { Indicator, IndicatorProps } from "./data-display/indicator/Indicator.mjs";
29
- import { BoardData, BoardItem, CardRenderProps, ConfigMap, Kanban, KanbanProps } from "./data-display/kanban/Kanban.mjs";
30
+ import { BoardData, BoardItem, CardMove, CardRenderProps, ConfigMap, Kanban, KanbanProps } from "./data-display/kanban/Kanban.mjs";
31
+ import { KanbanCard, KanbanCardProps } from "./data-display/kanban/KanbanCard.mjs";
30
32
  import { LoaderDot, LoaderDotProps } from "./data-display/loader-dot/LoaderDot.mjs";
31
33
  import { LoaderOval, LoaderOvalProps } from "./data-display/loader-oval/LoaderOval.mjs";
32
34
  import { LogoImage, LogoImageProps } from "./data-display/logos/logo-image/LogoImage.mjs";
33
35
  import { LogoSvg, LogoSvgProps } from "./data-display/logos/logo-svg/LogoSvg.mjs";
34
36
  import { NotificationBanner, NotificationBannerIntent, NotificationBannerProps } from "./data-display/notification-banner/NotificationBanner.mjs";
35
37
  import { RemovableItem, RemovableItemProps } from "./data-display/removable-item/RemovableItem.mjs";
38
+ import { TableClassNames, TableProps } from "./data-display/table/TableTypes.mjs";
39
+ import { TableHeadProps } from "./data-display/table/TableHead.mjs";
40
+ import { TableBodyProps } from "./data-display/table/TableBody.mjs";
41
+ import { TableFootProps } from "./data-display/table/TableFoot.mjs";
42
+ import { TableRowProps } from "./data-display/table/TableRow.mjs";
43
+ import { TableHeaderCellProps } from "./data-display/table/TableHeaderCell.mjs";
44
+ import { TableCellProps } from "./data-display/table/TableCell.mjs";
45
+ import { TableCaptionProps } from "./data-display/table/TableCaption.mjs";
46
+ import { Table } from "./data-display/table/Table.mjs";
36
47
  import { Tag, TagProps } from "./data-display/tag/Tag.mjs";
37
48
  import { TagGroup, TagGroupProps } from "./data-display/tag-group/TagGroup.mjs";
38
49
  import { UploadedFile, UploadedFileProps } from "./data-display/uploaded-file/UploadedFile.mjs";
@@ -1,4 +1,5 @@
1
1
  import { HorizontalDivider, HorizontalDividerProps } from "./horizontal-divider/HorizontalDivider.mjs";
2
- import { ScrollArea, ScrollAreaProps } from "./scroll-area/ScrollArea.mjs";
2
+ import { ScrollArea, ScrollAreaClassNames, ScrollAreaProps } from "./scroll-area/ScrollArea.mjs";
3
3
  import { ScrollAreaAutosize, ScrollAreaAutosizeProps } from "./scroll-area-autosize/ScrollAreaAutosize.mjs";
4
+ import { Virtual, VirtualItem, VirtualPadding, VirtualProps } from "./virtual/Virtual.mjs";
4
5
  import { VisuallyHidden, VisuallyHiddenProps } from "./visually-hidden/VisuallyHidden.mjs";
@@ -1,21 +1,24 @@
1
- import { ReactNode } from "react";
1
+ import { ReactNode, RefObject } from "react";
2
2
 
3
3
  //#region src/components/misc/scroll-area/ScrollArea.d.ts
4
+ type ScrollAreaClassNames = {
5
+ scrollArea?: string;
6
+ root?: string;
7
+ viewport?: string;
8
+ content?: string;
9
+ scrollbar?: string;
10
+ thumb?: string;
11
+ corner?: string;
12
+ };
4
13
  type ScrollAreaProps = {
5
14
  children: ReactNode;
6
15
  scrollbars?: 'y' | 'x' | 'xy' | false;
7
16
  type?: 'hover' | 'scroll' | 'always' | 'auto' | 'never';
8
17
  scrollbarSize?: string | number;
9
18
  offsetScrollbars?: boolean | 'x' | 'y' | 'present';
10
- classNames?: {
11
- scrollArea?: string;
12
- root?: string;
13
- viewport?: string;
14
- content?: string;
15
- scrollbar?: string;
16
- thumb?: string;
17
- corner?: string;
18
- };
19
+ viewportRef?: RefObject<HTMLDivElement | null>;
20
+ styles?: Partial<Record<'root' | 'viewport' | 'scrollbar' | 'thumb' | 'corner', React.CSSProperties>>;
21
+ classNames?: ScrollAreaClassNames;
19
22
  };
20
23
  declare const ScrollArea: ({
21
24
  children,
@@ -23,5 +26,5 @@ declare const ScrollArea: ({
23
26
  ...props
24
27
  }: ScrollAreaProps) => ReactNode;
25
28
  //#endregion
26
- export { ScrollArea, ScrollAreaProps };
29
+ export { ScrollArea, ScrollAreaClassNames, ScrollAreaProps };
27
30
  //# sourceMappingURL=ScrollArea.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollArea.d.mts","names":[],"sources":["../../../../src/components/misc/scroll-area/ScrollArea.tsx"],"mappings":";;;KAcY,eAAA;EACV,QAAA,EAAU,SAAA;EACV,UAAA;EACA,IAAA;EACA,aAAA;EACA,gBAAA;EACA,UAAA;IACE,UAAA;IACA,IAAA;IACA,QAAA;IACA,OAAA;IACA,SAAA;IACA,KAAA;IACA,MAAA;EAAA;AAAA;AAAA,cAIS,UAAA;EAAc,QAAA;EAAA,UAAA;EAAA,GAAA;AAAA,GAIxB,eAAA,KAAkB,SAAA"}
1
+ {"version":3,"file":"ScrollArea.d.mts","names":[],"sources":["../../../../src/components/misc/scroll-area/ScrollArea.tsx"],"mappings":";;;KAcY,oBAAA;EACV,UAAA;EACA,IAAA;EACA,QAAA;EACA,OAAA;EACA,SAAA;EACA,KAAA;EACA,MAAA;AAAA;AAAA,KAGU,eAAA;EACV,QAAA,EAAU,SAAA;EACV,UAAA;EACA,IAAA;EACA,aAAA;EACA,gBAAA;EACA,WAAA,GAAc,SAAA,CAAU,cAAA;EACxB,MAAA,GAAS,OAAA,CACP,MAAA,yDAEE,KAAA,CAAM,aAAA;EAGV,UAAA,GAAa,oBAAA;AAAA;AAAA,cAGF,UAAA;EAAc,QAAA;EAAA,UAAA;EAAA,GAAA;AAAA,GAIxB,eAAA,KAAkB,SAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollArea.mjs","names":["ScrollArea","MantineScrollArea"],"sources":["../../../../src/components/misc/scroll-area/ScrollArea.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n scrollArea,\n scrollAreaContent,\n scrollAreaCorner,\n scrollAreaRoot,\n scrollAreaScrollbar,\n scrollAreaThumb,\n scrollAreaViewport,\n} from '@mage-ui/styled-system/recipes';\nimport { ScrollArea as MantineScrollArea } from '@mantine/core';\n\nexport type ScrollAreaProps = {\n children: ReactNode;\n scrollbars?: 'y' | 'x' | 'xy' | false;\n type?: 'hover' | 'scroll' | 'always' | 'auto' | 'never';\n scrollbarSize?: string | number;\n offsetScrollbars?: boolean | 'x' | 'y' | 'present';\n classNames?: {\n scrollArea?: string;\n root?: string;\n viewport?: string;\n content?: string;\n scrollbar?: string;\n thumb?: string;\n corner?: string;\n };\n};\n\nexport const ScrollArea = ({\n children,\n classNames,\n ...props\n}: ScrollAreaProps): ReactNode => {\n return (\n <MantineScrollArea\n classNames={{\n root: cx(\n classNames?.scrollArea ?? scrollArea(),\n classNames?.root ?? scrollAreaRoot(),\n ),\n viewport: classNames?.viewport ?? scrollAreaViewport(),\n content: classNames?.content ?? scrollAreaContent(),\n scrollbar: classNames?.scrollbar ?? scrollAreaScrollbar(),\n thumb: classNames?.thumb ?? scrollAreaThumb(),\n corner: classNames?.corner ?? scrollAreaCorner(),\n }}\n {...props}\n >\n {children}\n </MantineScrollArea>\n );\n};\n"],"mappings":"sUA+BA,MAAaA,GAAc,CACzB,WACA,aACA,GAAG,KAGD,EAACC,EAAAA,CACC,WAAY,CACV,KAAM,EACJ,GAAY,YAAc,GAAY,CACtC,GAAY,MAAQ,GAAgB,CACrC,CACD,SAAU,GAAY,UAAY,GAAoB,CACtD,QAAS,GAAY,SAAW,GAAmB,CACnD,UAAW,GAAY,WAAa,GAAqB,CACzD,MAAO,GAAY,OAAS,GAAiB,CAC7C,OAAQ,GAAY,QAAU,GAAkB,CACjD,CACD,GAAI,EAEH,YACiB"}
1
+ {"version":3,"file":"ScrollArea.mjs","names":["ScrollArea","MantineScrollArea"],"sources":["../../../../src/components/misc/scroll-area/ScrollArea.tsx"],"sourcesContent":["import type { ReactNode, RefObject } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n scrollArea,\n scrollAreaContent,\n scrollAreaCorner,\n scrollAreaRoot,\n scrollAreaScrollbar,\n scrollAreaThumb,\n scrollAreaViewport,\n} from '@mage-ui/styled-system/recipes';\nimport { ScrollArea as MantineScrollArea } from '@mantine/core';\n\nexport type ScrollAreaClassNames = {\n scrollArea?: string;\n root?: string;\n viewport?: string;\n content?: string;\n scrollbar?: string;\n thumb?: string;\n corner?: string;\n};\n\nexport type ScrollAreaProps = {\n children: ReactNode;\n scrollbars?: 'y' | 'x' | 'xy' | false;\n type?: 'hover' | 'scroll' | 'always' | 'auto' | 'never';\n scrollbarSize?: string | number;\n offsetScrollbars?: boolean | 'x' | 'y' | 'present';\n viewportRef?: RefObject<HTMLDivElement | null>;\n styles?: Partial<\n Record<\n 'root' | 'viewport' | 'scrollbar' | 'thumb' | 'corner',\n React.CSSProperties\n >\n >;\n classNames?: ScrollAreaClassNames;\n};\n\nexport const ScrollArea = ({\n children,\n classNames,\n ...props\n}: ScrollAreaProps): ReactNode => {\n return (\n <MantineScrollArea\n classNames={{\n root: cx(\n classNames?.scrollArea ?? scrollArea(),\n classNames?.root ?? scrollAreaRoot(),\n ),\n viewport: classNames?.viewport ?? scrollAreaViewport(),\n content: classNames?.content ?? scrollAreaContent(),\n scrollbar: classNames?.scrollbar ?? scrollAreaScrollbar(),\n thumb: classNames?.thumb ?? scrollAreaThumb(),\n corner: classNames?.corner ?? scrollAreaCorner(),\n }}\n {...props}\n >\n {children}\n </MantineScrollArea>\n );\n};\n"],"mappings":"sUAwCA,MAAaA,GAAc,CACzB,WACA,aACA,GAAG,KAGD,EAACC,EAAAA,CACC,WAAY,CACV,KAAM,EACJ,GAAY,YAAc,GAAY,CACtC,GAAY,MAAQ,GAAgB,CACrC,CACD,SAAU,GAAY,UAAY,GAAoB,CACtD,QAAS,GAAY,SAAW,GAAmB,CACnD,UAAW,GAAY,WAAa,GAAqB,CACzD,MAAO,GAAY,OAAS,GAAiB,CAC7C,OAAQ,GAAY,QAAU,GAAkB,CACjD,CACD,GAAI,EAEH,YACiB"}
@@ -0,0 +1,29 @@
1
+ import { ReactNode, RefObject } from "react";
2
+
3
+ //#region src/components/misc/virtual/Virtual.d.ts
4
+ type VirtualItem<TRow> = {
5
+ row: TRow;
6
+ index: number;
7
+ measureRef: (node: Element | null) => void;
8
+ };
9
+ type VirtualPadding = {
10
+ top: number;
11
+ bottom: number;
12
+ };
13
+ type VirtualProps<TRow> = {
14
+ rows: TRow[];
15
+ estimateSize: number;
16
+ scrollRef: RefObject<HTMLElement | null>;
17
+ overscan?: number;
18
+ children: (items: VirtualItem<TRow>[], padding: VirtualPadding) => ReactNode;
19
+ };
20
+ declare const Virtual: <TRow>({
21
+ rows,
22
+ estimateSize,
23
+ scrollRef,
24
+ overscan,
25
+ children
26
+ }: VirtualProps<TRow>) => ReactNode;
27
+ //#endregion
28
+ export { Virtual, VirtualItem, VirtualPadding, VirtualProps };
29
+ //# sourceMappingURL=Virtual.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Virtual.d.mts","names":[],"sources":["../../../../src/components/misc/virtual/Virtual.tsx"],"mappings":";;;KAIY,WAAA;EACV,GAAA,EAAK,IAAA;EACL,KAAA;EACA,UAAA,GAAa,IAAA,EAAM,OAAA;AAAA;AAAA,KAGT,cAAA;EACV,GAAA;EACA,MAAA;AAAA;AAAA,KAGU,YAAA;EACV,IAAA,EAAM,IAAA;EACN,YAAA;EACA,SAAA,EAAW,SAAA,CAAU,WAAA;EACrB,QAAA;EACA,QAAA,GAAW,KAAA,EAAO,WAAA,CAAY,IAAA,KAAS,OAAA,EAAS,cAAA,KAAmB,SAAA;AAAA;AAAA,cAGxD,OAAA;EAAkB,IAAA;EAAA,YAAA;EAAA,SAAA;EAAA,QAAA;EAAA;AAAA,GAM5B,YAAA,CAAa,IAAA,MAAQ,SAAA"}
@@ -0,0 +1,2 @@
1
+ import{useVirtualizer as e}from"@tanstack/react-virtual";const t=({rows:t,estimateSize:n,scrollRef:r,overscan:i=5,children:a})=>{let o=e({count:t.length,getScrollElement:()=>r.current,estimateSize:()=>n,measureElement:e=>e.getBoundingClientRect().height,overscan:i}),s=o.getVirtualItems();return a(s.map(e=>({row:t[e.index],index:e.index,measureRef:t=>{t&&(t.setAttribute(`data-index`,String(e.index)),o.measureElement(t))}})),{top:s[0]?.start??0,bottom:o.getTotalSize()-(s.at(-1)?.end??0)})};export{t as Virtual};
2
+ //# sourceMappingURL=Virtual.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Virtual.mjs","names":[],"sources":["../../../../src/components/misc/virtual/Virtual.tsx"],"sourcesContent":["import type { ReactNode, RefObject } from 'react';\n\nimport { useVirtualizer } from '@tanstack/react-virtual';\n\nexport type VirtualItem<TRow> = {\n row: TRow;\n index: number;\n measureRef: (node: Element | null) => void;\n};\n\nexport type VirtualPadding = {\n top: number;\n bottom: number;\n};\n\nexport type VirtualProps<TRow> = {\n rows: TRow[];\n estimateSize: number;\n scrollRef: RefObject<HTMLElement | null>;\n overscan?: number;\n children: (items: VirtualItem<TRow>[], padding: VirtualPadding) => ReactNode;\n};\n\nexport const Virtual = <TRow,>({\n rows,\n estimateSize,\n scrollRef,\n overscan = 5,\n children,\n}: VirtualProps<TRow>): ReactNode => {\n const virtualizer = useVirtualizer({\n count: rows.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => estimateSize,\n measureElement: (element) => element.getBoundingClientRect().height,\n overscan,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n const items: VirtualItem<TRow>[] = virtualItems.map((virtualRow) => ({\n row: rows[virtualRow.index],\n index: virtualRow.index,\n measureRef: (node: Element | null) => {\n if (node) {\n node.setAttribute('data-index', String(virtualRow.index));\n virtualizer.measureElement(node);\n }\n },\n }));\n\n const padding: VirtualPadding = {\n top: virtualItems[0]?.start ?? 0,\n bottom: virtualizer.getTotalSize() - (virtualItems.at(-1)?.end ?? 0),\n };\n\n return children(items, padding);\n};\n"],"mappings":"yDAuBA,MAAa,GAAkB,CAC7B,OACA,eACA,YACA,WAAW,EACX,cACmC,CACnC,IAAM,EAAc,EAAe,CACjC,MAAO,EAAK,OACZ,qBAAwB,EAAU,QAClC,iBAAoB,EACpB,eAAiB,GAAY,EAAQ,uBAAuB,CAAC,OAC7D,WACD,CAAC,CAEI,EAAe,EAAY,iBAAiB,CAkBlD,OAAO,EAhB4B,EAAa,IAAK,IAAgB,CACnE,IAAK,EAAK,EAAW,OACrB,MAAO,EAAW,MAClB,WAAa,GAAyB,CAChC,IACF,EAAK,aAAa,aAAc,OAAO,EAAW,MAAM,CAAC,CACzD,EAAY,eAAe,EAAK,GAGrC,EAAE,CAE6B,CAC9B,IAAK,EAAa,IAAI,OAAS,EAC/B,OAAQ,EAAY,cAAc,EAAI,EAAa,GAAG,GAAG,EAAE,KAAO,GACnE,CAE8B"}
package/dist/index.d.mts CHANGED
@@ -7,8 +7,9 @@ import { ButtonVisual, ButtonVisualProps } from "./components/buttons/button-vis
7
7
  import { Checkbox, CheckboxProps } from "./components/controls/checkbox/Checkbox.mjs";
8
8
  import { DatePicker, DatePickerProps } from "./components/controls/date-picker/DatePicker.mjs";
9
9
  import { HorizontalDivider, HorizontalDividerProps } from "./components/misc/horizontal-divider/HorizontalDivider.mjs";
10
- import { ScrollArea, ScrollAreaProps } from "./components/misc/scroll-area/ScrollArea.mjs";
10
+ import { ScrollArea, ScrollAreaClassNames, ScrollAreaProps } from "./components/misc/scroll-area/ScrollArea.mjs";
11
11
  import { ScrollAreaAutosize, ScrollAreaAutosizeProps } from "./components/misc/scroll-area-autosize/ScrollAreaAutosize.mjs";
12
+ import { Virtual, VirtualItem, VirtualPadding, VirtualProps } from "./components/misc/virtual/Virtual.mjs";
12
13
  import { VisuallyHidden, VisuallyHiddenProps } from "./components/misc/visually-hidden/VisuallyHidden.mjs";
13
14
  import { TextInput, TextInputProps } from "./components/controls/text-input/TextInput.mjs";
14
15
  import { Combobox, ComboboxProps } from "./components/controls/dropdown/combobox/Combobox.mjs";
@@ -24,13 +25,23 @@ import { IconRaw, IconRawProps } from "./components/data-display/icons/icon-raw/
24
25
  import { IconSvg, IconSvgProps } from "./components/data-display/icons/icon-svg/IconSvg.mjs";
25
26
  import { IconWrapped, IconWrappedProps } from "./components/data-display/icons/icon-wrapped/IconWrapped.mjs";
26
27
  import { Indicator, IndicatorProps } from "./components/data-display/indicator/Indicator.mjs";
27
- import { BoardData, BoardItem, CardRenderProps, ConfigMap, Kanban, KanbanProps } from "./components/data-display/kanban/Kanban.mjs";
28
+ import { BoardData, BoardItem, CardMove, CardRenderProps, ConfigMap, Kanban, KanbanProps } from "./components/data-display/kanban/Kanban.mjs";
29
+ import { KanbanCard, KanbanCardProps } from "./components/data-display/kanban/KanbanCard.mjs";
28
30
  import { LoaderDot, LoaderDotProps } from "./components/data-display/loader-dot/LoaderDot.mjs";
29
31
  import { LoaderOval, LoaderOvalProps } from "./components/data-display/loader-oval/LoaderOval.mjs";
30
32
  import { LogoImage, LogoImageProps } from "./components/data-display/logos/logo-image/LogoImage.mjs";
31
33
  import { LogoSvg, LogoSvgProps } from "./components/data-display/logos/logo-svg/LogoSvg.mjs";
32
34
  import { NotificationBanner, NotificationBannerIntent, NotificationBannerProps } from "./components/data-display/notification-banner/NotificationBanner.mjs";
33
35
  import { RemovableItem, RemovableItemProps } from "./components/data-display/removable-item/RemovableItem.mjs";
36
+ import { TableClassNames, TableProps } from "./components/data-display/table/TableTypes.mjs";
37
+ import { TableHeadProps } from "./components/data-display/table/TableHead.mjs";
38
+ import { TableBodyProps } from "./components/data-display/table/TableBody.mjs";
39
+ import { TableFootProps } from "./components/data-display/table/TableFoot.mjs";
40
+ import { TableRowProps } from "./components/data-display/table/TableRow.mjs";
41
+ import { TableHeaderCellProps } from "./components/data-display/table/TableHeaderCell.mjs";
42
+ import { TableCellProps } from "./components/data-display/table/TableCell.mjs";
43
+ import { TableCaptionProps } from "./components/data-display/table/TableCaption.mjs";
44
+ import { Table } from "./components/data-display/table/Table.mjs";
34
45
  import { Tag, TagProps } from "./components/data-display/tag/Tag.mjs";
35
46
  import { TagGroup, TagGroupProps } from "./components/data-display/tag-group/TagGroup.mjs";
36
47
  import { UploadedFile, UploadedFileProps } from "./components/data-display/uploaded-file/UploadedFile.mjs";
@@ -63,4 +74,4 @@ import { Tooltip, TooltipProps } from "./components/overlays/tooltip/Tooltip.mjs
63
74
  import "./components/index.mjs";
64
75
  import { MageUiProvider, MageUiProviderProps } from "./providers/MageUiProvider.mjs";
65
76
  import "./providers/index.mjs";
66
- export { AssignedUser, AssignedUserProps, Autocomplete, AutocompleteProps, Avatar, AvatarProps, Badge, BadgeProps, BoardData, BoardItem, Breadcrumbs, BreadcrumbsBarProps, BreadcrumbsProps, Button, ButtonAction, ButtonActionProps, ButtonIcon, ButtonIconProps, ButtonIconVisual, ButtonIconVisualProps, ButtonLoader, ButtonProps, ButtonVisual, ButtonVisualProps, Calendar, CalendarEvent, CalendarProps, CalendarVariant, Card, CardProps, CardRenderProps, Checkbox, CheckboxProps, Combobox, ComboboxProps, ConfigMap, DateLocalizer, DatePicker, DatePickerProps, DescriptionList, DescriptionListClassNames, DescriptionListItemProps, DescriptionListProps, Dropzone, DropzoneFiles, DropzoneFilesProps, DropzoneProps, FileData, FileInput, FileInputMultiple, FileInputMultipleProps, FileInputProps, FluidGrid, FluidGridProps, Form, FormProps, Grid, GridClassNames, HorizontalDivider, HorizontalDividerProps, Icon, IconProps, IconRaw, IconRawProps, IconSvg, IconSvgProps, IconWrapped, IconWrappedProps, Indicator, IndicatorProps, Kanban, KanbanProps, LoaderDot, LoaderDotProps, LoaderOval, LoaderOvalProps, LogoImage, LogoImageProps, LogoSvg, LogoSvgProps, MageUiProvider, MageUiProviderProps, Menu, MenuProps, Modal, ModalClassNames, ModalIntent, ModalProps, ModalRegistry, ModalRegistryEntry, ModalRootProps, Modals, NotificationBanner, NotificationBannerIntent, NotificationBannerProps, PASSWORD_RULES, PasswordInput, PasswordInputProps, PasswordRule, PasswordRuleDefinition, PasswordSegment, PasswordStrengthInput, PasswordStrengthInputProps, Radio, RadioProps, RemovableItem, RemovableItemProps, ScrollArea, ScrollAreaAutosize, ScrollAreaAutosizeProps, ScrollAreaProps, Select, SelectProps, Sidebar, SidebarClassNames, SidebarProps, Tag, TagGroup, TagGroupProps, TagProps, TextInput, TextInputProps, Textarea, TextareaProps, Toast, ToastOptions, ToastProviderProps, Tooltip, TooltipProps, UploadedFile, UploadedFileDetails, UploadedFileDetailsProps, UploadedFileProps, VisuallyHidden, VisuallyHiddenProps, momentLocalizer, usePasswordRules, z };
77
+ export { AssignedUser, AssignedUserProps, Autocomplete, AutocompleteProps, Avatar, AvatarProps, Badge, BadgeProps, BoardData, BoardItem, Breadcrumbs, BreadcrumbsBarProps, BreadcrumbsProps, Button, ButtonAction, ButtonActionProps, ButtonIcon, ButtonIconProps, ButtonIconVisual, ButtonIconVisualProps, ButtonLoader, ButtonProps, ButtonVisual, ButtonVisualProps, Calendar, CalendarEvent, CalendarProps, CalendarVariant, Card, CardMove, CardProps, CardRenderProps, Checkbox, CheckboxProps, Combobox, ComboboxProps, ConfigMap, DateLocalizer, DatePicker, DatePickerProps, DescriptionList, DescriptionListClassNames, DescriptionListItemProps, DescriptionListProps, Dropzone, DropzoneFiles, DropzoneFilesProps, DropzoneProps, FileData, FileInput, FileInputMultiple, FileInputMultipleProps, FileInputProps, FluidGrid, FluidGridProps, Form, FormProps, Grid, GridClassNames, HorizontalDivider, HorizontalDividerProps, Icon, IconProps, IconRaw, IconRawProps, IconSvg, IconSvgProps, IconWrapped, IconWrappedProps, Indicator, IndicatorProps, Kanban, KanbanCard, KanbanCardProps, KanbanProps, LoaderDot, LoaderDotProps, LoaderOval, LoaderOvalProps, LogoImage, LogoImageProps, LogoSvg, LogoSvgProps, MageUiProvider, MageUiProviderProps, Menu, MenuProps, Modal, ModalClassNames, ModalIntent, ModalProps, ModalRegistry, ModalRegistryEntry, ModalRootProps, Modals, NotificationBanner, NotificationBannerIntent, NotificationBannerProps, PASSWORD_RULES, PasswordInput, PasswordInputProps, PasswordRule, PasswordRuleDefinition, PasswordSegment, PasswordStrengthInput, PasswordStrengthInputProps, Radio, RadioProps, RemovableItem, RemovableItemProps, ScrollArea, ScrollAreaAutosize, ScrollAreaAutosizeProps, ScrollAreaClassNames, ScrollAreaProps, Select, SelectProps, Sidebar, SidebarClassNames, SidebarProps, Table, TableBodyProps, TableCaptionProps, TableCellProps, TableClassNames, TableFootProps, TableHeadProps, TableHeaderCellProps, TableProps, TableRowProps, Tag, TagGroup, TagGroupProps, TagProps, TextInput, TextInputProps, Textarea, TextareaProps, Toast, ToastOptions, ToastProviderProps, Tooltip, TooltipProps, UploadedFile, UploadedFileDetails, UploadedFileDetailsProps, UploadedFileProps, Virtual, VirtualItem, VirtualPadding, VirtualProps, VisuallyHidden, VisuallyHiddenProps, momentLocalizer, usePasswordRules, z };