@galaxy-io/dls 1.2.6 → 1.3.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 (297) hide show
  1. package/README.md +2 -0
  2. package/dist/avatar/Avatar.d.ts +2 -1
  3. package/dist/avatar/Avatar.js +103 -14
  4. package/dist/buttons/Button.d.ts +6 -1
  5. package/dist/buttons/Button.js +8 -4
  6. package/dist/charts/BarChart.d.ts +30 -20
  7. package/dist/charts/BarChart.js +216 -250
  8. package/dist/charts/ChartAxis.d.ts +47 -22
  9. package/dist/charts/ChartAxis.js +81 -60
  10. package/dist/charts/ChartEmptyState.d.ts +17 -0
  11. package/dist/charts/ChartEmptyState.js +29 -0
  12. package/dist/charts/ChartFrame.d.ts +82 -0
  13. package/dist/charts/ChartFrame.js +86 -0
  14. package/dist/charts/ChartLegend.d.ts +27 -4
  15. package/dist/charts/ChartLegend.js +46 -23
  16. package/dist/charts/ChartPrimitives.d.ts +195 -0
  17. package/dist/charts/ChartPrimitives.js +268 -0
  18. package/dist/charts/ChartTooltip.d.ts +27 -6
  19. package/dist/charts/ChartTooltip.js +56 -50
  20. package/dist/charts/LineChart.d.ts +42 -20
  21. package/dist/charts/LineChart.js +186 -237
  22. package/dist/charts/PieChart.d.ts +48 -32
  23. package/dist/charts/PieChart.js +159 -171
  24. package/dist/charts/barChartGeometry.d.ts +87 -0
  25. package/dist/charts/barChartGeometry.js +218 -0
  26. package/dist/charts/chartFormat.d.ts +19 -0
  27. package/dist/charts/chartFormat.js +59 -0
  28. package/dist/charts/chartScales.d.ts +84 -0
  29. package/dist/charts/chartScales.js +111 -0
  30. package/dist/charts/chartTheme.d.ts +18 -0
  31. package/dist/charts/chartTheme.js +26 -0
  32. package/dist/charts/constants.d.ts +225 -18
  33. package/dist/charts/constants.js +240 -32
  34. package/dist/charts/lineChartGeometry.d.ts +54 -0
  35. package/dist/charts/lineChartGeometry.js +143 -0
  36. package/dist/charts/pieChartGeometry.d.ts +48 -0
  37. package/dist/charts/pieChartGeometry.js +89 -0
  38. package/dist/charts/types.d.ts +522 -54
  39. package/dist/charts/types.js +136 -0
  40. package/dist/charts/useChartDimensions.d.ts +40 -0
  41. package/dist/charts/useChartDimensions.js +53 -0
  42. package/dist/charts/useChartFormatters.d.ts +19 -0
  43. package/dist/charts/useChartFormatters.js +20 -0
  44. package/dist/charts/useChartInteraction.d.ts +71 -0
  45. package/dist/charts/useChartInteraction.js +130 -0
  46. package/dist/charts/useChartTooltipPosition.d.ts +53 -0
  47. package/dist/charts/useChartTooltipPosition.js +39 -0
  48. package/dist/hooks/useElementClientSize.d.ts +20 -0
  49. package/dist/hooks/useElementClientSize.js +43 -0
  50. package/dist/inputs/CheckboxInput.d.ts +7 -2
  51. package/dist/inputs/CheckboxInput.js +30 -14
  52. package/dist/inputs/Input.d.ts +5 -2
  53. package/dist/inputs/Input.js +20 -17
  54. package/dist/inputs/MultiSelectInput.js +1 -1
  55. package/dist/inputs/RadioInput.js +7 -2
  56. package/dist/styles.css +68 -75
  57. package/dist/table/InfiniteSpreadsheet.d.ts +6 -0
  58. package/dist/table/InfiniteSpreadsheet.js +235 -0
  59. package/dist/table/InfiniteTable.d.ts +7 -88
  60. package/dist/table/InfiniteTable.js +366 -577
  61. package/dist/{spreadsheet → table}/SpreadsheetCell.d.ts +6 -4
  62. package/dist/table/SpreadsheetCell.js +71 -0
  63. package/dist/{spreadsheet → table}/SpreadsheetCellEditor.js +27 -21
  64. package/dist/table/SpreadsheetHeaderCell.d.ts +23 -0
  65. package/dist/table/SpreadsheetHeaderCell.js +91 -0
  66. package/dist/table/SpreadsheetMenuItem.d.ts +14 -0
  67. package/dist/table/SpreadsheetMenuItem.js +33 -0
  68. package/dist/table/SpreadsheetPrimitives.d.ts +172 -0
  69. package/dist/table/SpreadsheetPrimitives.js +105 -0
  70. package/dist/table/SpreadsheetRow.d.ts +33 -0
  71. package/dist/table/SpreadsheetRow.js +73 -0
  72. package/dist/{spreadsheet → table}/SpreadsheetRowActionCell.d.ts +5 -7
  73. package/dist/table/SpreadsheetRowActionCell.js +51 -0
  74. package/dist/table/TableExpandCell.d.ts +11 -0
  75. package/dist/table/TableExpandCell.js +24 -0
  76. package/dist/table/TableExpandedRow.d.ts +16 -0
  77. package/dist/table/TableExpandedRow.js +77 -0
  78. package/dist/table/TableHeaderCellContent.d.ts +30 -0
  79. package/dist/table/TableHeaderCellContent.js +48 -0
  80. package/dist/table/TablePrimitives.d.ts +307 -0
  81. package/dist/table/TablePrimitives.js +298 -0
  82. package/dist/table/TableSelectCell.d.ts +18 -0
  83. package/dist/table/TableSelectCell.js +26 -0
  84. package/dist/table/TableStatusRow.d.ts +18 -0
  85. package/dist/table/TableStatusRow.js +50 -0
  86. package/dist/table/VirtualizedInfiniteTable.d.ts +11 -27
  87. package/dist/table/VirtualizedInfiniteTable.js +182 -317
  88. package/dist/table/types.d.ts +249 -0
  89. package/dist/table/types.js +51 -0
  90. package/dist/table/useInfiniteScrollSentinel.d.ts +24 -0
  91. package/dist/table/useInfiniteScrollSentinel.js +53 -0
  92. package/dist/{spreadsheet/hooks → table}/useSpreadsheetEditing.d.ts +1 -1
  93. package/dist/{spreadsheet/hooks → table}/useSpreadsheetEditing.js +1 -1
  94. package/dist/table/useTableColumnLayout.d.ts +28 -0
  95. package/dist/table/useTableColumnLayout.js +63 -0
  96. package/dist/table/useTableColumnResize.d.ts +38 -0
  97. package/dist/table/useTableColumnResize.js +155 -0
  98. package/dist/table/useTableKeyboardNavigation.d.ts +25 -0
  99. package/dist/table/useTableKeyboardNavigation.js +83 -0
  100. package/dist/table/useTableRowExpansion.d.ts +24 -0
  101. package/dist/table/useTableRowExpansion.js +62 -0
  102. package/dist/table/useTableRowSelection.d.ts +27 -0
  103. package/dist/table/useTableRowSelection.js +94 -0
  104. package/dist/table/utils.d.ts +50 -0
  105. package/dist/table/utils.js +78 -0
  106. package/dist/text/MarkdownText.js +45 -27
  107. package/dist/theme/variants/dark.js +1 -1
  108. package/dist/widget/Widget.d.ts +2 -0
  109. package/dist/widget/Widget.js +14 -7
  110. package/package.json +1 -5
  111. package/dist/assets/components/enrichment/PerplexityIcon.d.ts +0 -3
  112. package/dist/assets/components/enrichment/PerplexityIcon.js +0 -35
  113. package/dist/assets/components/enrichment/TavilyIcon.d.ts +0 -3
  114. package/dist/assets/components/enrichment/TavilyIcon.js +0 -15
  115. package/dist/assets/components/onboarding/TenantSetupDark.d.ts +0 -3
  116. package/dist/assets/components/onboarding/TenantSetupDark.js +0 -498
  117. package/dist/assets/components/onboarding/TenantSetupLight.d.ts +0 -3
  118. package/dist/assets/components/onboarding/TenantSetupLight.js +0 -482
  119. package/dist/assets/components/onboarding/UserSetupDark.d.ts +0 -3
  120. package/dist/assets/components/onboarding/UserSetupDark.js +0 -1086
  121. package/dist/assets/components/onboarding/UserSetupLight.d.ts +0 -3
  122. package/dist/assets/components/onboarding/UserSetupLight.js +0 -1024
  123. package/dist/assets/components/onboarding/WorkspaceSetupBuildDark.d.ts +0 -3
  124. package/dist/assets/components/onboarding/WorkspaceSetupBuildDark.js +0 -466
  125. package/dist/assets/components/onboarding/WorkspaceSetupBuildLight.d.ts +0 -3
  126. package/dist/assets/components/onboarding/WorkspaceSetupBuildLight.js +0 -460
  127. package/dist/assets/components/onboarding/WorkspaceSetupConnectDark.d.ts +0 -3
  128. package/dist/assets/components/onboarding/WorkspaceSetupConnectDark.js +0 -336
  129. package/dist/assets/components/onboarding/WorkspaceSetupConnectLight.d.ts +0 -3
  130. package/dist/assets/components/onboarding/WorkspaceSetupConnectLight.js +0 -336
  131. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateDark.d.ts +0 -3
  132. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateDark.js +0 -153
  133. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateLight.d.ts +0 -3
  134. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateLight.js +0 -153
  135. package/dist/assets/components/projects/MappingMethodAutoIntrospectDark.d.ts +0 -3
  136. package/dist/assets/components/projects/MappingMethodAutoIntrospectDark.js +0 -117
  137. package/dist/assets/components/projects/MappingMethodAutoIntrospectLight.d.ts +0 -3
  138. package/dist/assets/components/projects/MappingMethodAutoIntrospectLight.js +0 -117
  139. package/dist/assets/components/projects/MappingMethodBlankDark.d.ts +0 -3
  140. package/dist/assets/components/projects/MappingMethodBlankDark.js +0 -150
  141. package/dist/assets/components/projects/MappingMethodBlankDarkHovered.d.ts +0 -3
  142. package/dist/assets/components/projects/MappingMethodBlankDarkHovered.js +0 -150
  143. package/dist/assets/components/projects/MappingMethodBlankLight.d.ts +0 -3
  144. package/dist/assets/components/projects/MappingMethodBlankLight.js +0 -150
  145. package/dist/assets/components/projects/MappingMethodBlankLightHovered.d.ts +0 -3
  146. package/dist/assets/components/projects/MappingMethodBlankLightHovered.js +0 -150
  147. package/dist/assets/components/projects/MappingMethodJsonDark.d.ts +0 -3
  148. package/dist/assets/components/projects/MappingMethodJsonDark.js +0 -90
  149. package/dist/assets/components/projects/MappingMethodJsonDarkHovered.d.ts +0 -3
  150. package/dist/assets/components/projects/MappingMethodJsonDarkHovered.js +0 -90
  151. package/dist/assets/components/projects/MappingMethodJsonLight.d.ts +0 -3
  152. package/dist/assets/components/projects/MappingMethodJsonLight.js +0 -90
  153. package/dist/assets/components/projects/MappingMethodJsonLightHovered.d.ts +0 -3
  154. package/dist/assets/components/projects/MappingMethodJsonLightHovered.js +0 -90
  155. package/dist/assets/components/projects/ProjectsEmptyStateDark.d.ts +0 -3
  156. package/dist/assets/components/projects/ProjectsEmptyStateDark.js +0 -454
  157. package/dist/assets/components/projects/ProjectsEmptyStateLight.d.ts +0 -3
  158. package/dist/assets/components/projects/ProjectsEmptyStateLight.js +0 -456
  159. package/dist/assets/components/root/CreateProjectActionCardDark.d.ts +0 -3
  160. package/dist/assets/components/root/CreateProjectActionCardDark.js +0 -1796
  161. package/dist/assets/components/root/CreateProjectActionCardDarkHovered.d.ts +0 -3
  162. package/dist/assets/components/root/CreateProjectActionCardDarkHovered.js +0 -1796
  163. package/dist/assets/components/root/CreateProjectActionCardLight.d.ts +0 -3
  164. package/dist/assets/components/root/CreateProjectActionCardLight.js +0 -1786
  165. package/dist/assets/components/root/CreateProjectActionCardLightHovered.d.ts +0 -3
  166. package/dist/assets/components/root/CreateProjectActionCardLightHovered.js +0 -1786
  167. package/dist/assets/components/root/CreateSourceActionCardDark.d.ts +0 -3
  168. package/dist/assets/components/root/CreateSourceActionCardDark.js +0 -879
  169. package/dist/assets/components/root/CreateSourceActionCardDarkHovered.d.ts +0 -3
  170. package/dist/assets/components/root/CreateSourceActionCardDarkHovered.js +0 -879
  171. package/dist/assets/components/root/CreateSourceActionCardLight.d.ts +0 -3
  172. package/dist/assets/components/root/CreateSourceActionCardLight.js +0 -889
  173. package/dist/assets/components/root/CreateSourceActionCardLightHovered.d.ts +0 -3
  174. package/dist/assets/components/root/CreateSourceActionCardLightHovered.js +0 -889
  175. package/dist/assets/components/sources/AttioIcon.d.ts +0 -3
  176. package/dist/assets/components/sources/AttioIcon.js +0 -11
  177. package/dist/assets/components/sources/BigquerySourceIcon.d.ts +0 -3
  178. package/dist/assets/components/sources/BigquerySourceIcon.js +0 -39
  179. package/dist/assets/components/sources/BrowserbaseSourceIcon.d.ts +0 -3
  180. package/dist/assets/components/sources/BrowserbaseSourceIcon.js +0 -35
  181. package/dist/assets/components/sources/ClickhouseLogoSourceIconDark.d.ts +0 -3
  182. package/dist/assets/components/sources/ClickhouseLogoSourceIconDark.js +0 -13
  183. package/dist/assets/components/sources/ClickhouseLogoSourceIconLight.d.ts +0 -3
  184. package/dist/assets/components/sources/ClickhouseLogoSourceIconLight.js +0 -13
  185. package/dist/assets/components/sources/ConfluenceSourceIcon.d.ts +0 -3
  186. package/dist/assets/components/sources/ConfluenceSourceIcon.js +0 -30
  187. package/dist/assets/components/sources/GithubSourceIcon.d.ts +0 -3
  188. package/dist/assets/components/sources/GithubSourceIcon.js +0 -27
  189. package/dist/assets/components/sources/GoogleDriveIcon.d.ts +0 -3
  190. package/dist/assets/components/sources/GoogleDriveIcon.js +0 -45
  191. package/dist/assets/components/sources/HubspotSourceIcon.d.ts +0 -3
  192. package/dist/assets/components/sources/HubspotSourceIcon.js +0 -14
  193. package/dist/assets/components/sources/JiraSourceIcon.d.ts +0 -3
  194. package/dist/assets/components/sources/JiraSourceIcon.js +0 -54
  195. package/dist/assets/components/sources/LinearSourceIcon.d.ts +0 -3
  196. package/dist/assets/components/sources/LinearSourceIcon.js +0 -14
  197. package/dist/assets/components/sources/MysqlLogoSourceIconDark.d.ts +0 -3
  198. package/dist/assets/components/sources/MysqlLogoSourceIconDark.js +0 -17
  199. package/dist/assets/components/sources/NetsuiteSourceIcon.d.ts +0 -3
  200. package/dist/assets/components/sources/NetsuiteSourceIcon.js +0 -32
  201. package/dist/assets/components/sources/NotionIcon.d.ts +0 -3
  202. package/dist/assets/components/sources/NotionIcon.js +0 -20
  203. package/dist/assets/components/sources/PostgresqlIcon.d.ts +0 -3
  204. package/dist/assets/components/sources/PostgresqlIcon.js +0 -61
  205. package/dist/assets/components/sources/S3Icon.d.ts +0 -3
  206. package/dist/assets/components/sources/S3Icon.js +0 -76
  207. package/dist/assets/components/sources/SalesforceSourceIcon.d.ts +0 -3
  208. package/dist/assets/components/sources/SalesforceSourceIcon.js +0 -23
  209. package/dist/assets/components/sources/SlackIcon.d.ts +0 -3
  210. package/dist/assets/components/sources/SlackIcon.js +0 -32
  211. package/dist/assets/components/sources/SnowflakeLogoSourceIconDark.d.ts +0 -3
  212. package/dist/assets/components/sources/SnowflakeLogoSourceIconDark.js +0 -14
  213. package/dist/assets/components/sources/SnowflakeLogoSourceIconLight.d.ts +0 -3
  214. package/dist/assets/components/sources/SnowflakeLogoSourceIconLight.js +0 -14
  215. package/dist/assets/components/sources/WikipediaSourceIcon.d.ts +0 -3
  216. package/dist/assets/components/sources/WikipediaSourceIcon.js +0 -1490
  217. package/dist/avatar/AvatarEmpty.d.ts +0 -7
  218. package/dist/avatar/AvatarEmpty.js +0 -99
  219. package/dist/avatar/types.d.ts +0 -5
  220. package/dist/avatar/types.js +0 -9
  221. package/dist/charts/utils.d.ts +0 -29
  222. package/dist/charts/utils.js +0 -62
  223. package/dist/icons/BackIcon.d.ts +0 -3
  224. package/dist/icons/BackIcon.js +0 -13
  225. package/dist/icons/CloseIcon.d.ts +0 -3
  226. package/dist/icons/CloseIcon.js +0 -13
  227. package/dist/icons/CreateIcon.d.ts +0 -3
  228. package/dist/icons/CreateIcon.js +0 -13
  229. package/dist/icons/ForwardIcon.d.ts +0 -3
  230. package/dist/icons/ForwardIcon.js +0 -13
  231. package/dist/icons/HelpIcon.d.ts +0 -3
  232. package/dist/icons/HelpIcon.js +0 -14
  233. package/dist/icons/ProjectsIcon.d.ts +0 -3
  234. package/dist/icons/ProjectsIcon.js +0 -12
  235. package/dist/icons/SearchIcon.d.ts +0 -3
  236. package/dist/icons/SearchIcon.js +0 -12
  237. package/dist/icons/SourcesIcon.d.ts +0 -3
  238. package/dist/icons/SourcesIcon.js +0 -12
  239. package/dist/icons/TextIcon.d.ts +0 -4
  240. package/dist/icons/TextIcon.js +0 -22
  241. package/dist/icons/WebScrapeIcon.d.ts +0 -4
  242. package/dist/icons/WebScrapeIcon.js +0 -22
  243. package/dist/icons/WebhookIcon.d.ts +0 -4
  244. package/dist/icons/WebhookIcon.js +0 -22
  245. package/dist/icons/sources/AttioLogomark.d.ts +0 -4
  246. package/dist/icons/sources/AttioLogomark.js +0 -8
  247. package/dist/icons/sources/BrowserbaseLogomark.d.ts +0 -4
  248. package/dist/icons/sources/BrowserbaseLogomark.js +0 -8
  249. package/dist/icons/sources/ClickhouseLogomark.d.ts +0 -4
  250. package/dist/icons/sources/ClickhouseLogomark.js +0 -16
  251. package/dist/icons/sources/ConfluenceLogomark.d.ts +0 -4
  252. package/dist/icons/sources/ConfluenceLogomark.js +0 -8
  253. package/dist/icons/sources/GithubLogomark.d.ts +0 -4
  254. package/dist/icons/sources/GithubLogomark.js +0 -8
  255. package/dist/icons/sources/GoogleBigqueryLogomark.d.ts +0 -4
  256. package/dist/icons/sources/GoogleBigqueryLogomark.js +0 -8
  257. package/dist/icons/sources/GoogleDriveLogomark.d.ts +0 -4
  258. package/dist/icons/sources/GoogleDriveLogomark.js +0 -8
  259. package/dist/icons/sources/HubspotLogomark.d.ts +0 -4
  260. package/dist/icons/sources/HubspotLogomark.js +0 -8
  261. package/dist/icons/sources/JiraLogomark.d.ts +0 -4
  262. package/dist/icons/sources/JiraLogomark.js +0 -8
  263. package/dist/icons/sources/LinearLogomark.d.ts +0 -4
  264. package/dist/icons/sources/LinearLogomark.js +0 -8
  265. package/dist/icons/sources/MySQLLogomark.d.ts +0 -4
  266. package/dist/icons/sources/MySQLLogomark.js +0 -8
  267. package/dist/icons/sources/NetsuiteLogomark.d.ts +0 -4
  268. package/dist/icons/sources/NetsuiteLogomark.js +0 -8
  269. package/dist/icons/sources/NotionLogomark.d.ts +0 -4
  270. package/dist/icons/sources/NotionLogomark.js +0 -8
  271. package/dist/icons/sources/PostgresLogomark.d.ts +0 -4
  272. package/dist/icons/sources/PostgresLogomark.js +0 -8
  273. package/dist/icons/sources/S3Logomark.d.ts +0 -4
  274. package/dist/icons/sources/S3Logomark.js +0 -8
  275. package/dist/icons/sources/SalesforceLogomark.d.ts +0 -4
  276. package/dist/icons/sources/SalesforceLogomark.js +0 -8
  277. package/dist/icons/sources/SlackLogoIconmark.d.ts +0 -4
  278. package/dist/icons/sources/SlackLogoIconmark.js +0 -8
  279. package/dist/icons/sources/SnowflakeLogomark.d.ts +0 -4
  280. package/dist/icons/sources/SnowflakeLogomark.js +0 -16
  281. package/dist/icons/sources/WikipediaLogomark.d.ts +0 -4
  282. package/dist/icons/sources/WikipediaLogomark.js +0 -8
  283. package/dist/spreadsheet/InfiniteSpreadsheet.d.ts +0 -3
  284. package/dist/spreadsheet/InfiniteSpreadsheet.js +0 -265
  285. package/dist/spreadsheet/SpreadsheetAddColumnButton.d.ts +0 -6
  286. package/dist/spreadsheet/SpreadsheetAddColumnButton.js +0 -32
  287. package/dist/spreadsheet/SpreadsheetCell.js +0 -115
  288. package/dist/spreadsheet/SpreadsheetHeaderCell.d.ts +0 -18
  289. package/dist/spreadsheet/SpreadsheetHeaderCell.js +0 -141
  290. package/dist/spreadsheet/SpreadsheetRow.d.ts +0 -21
  291. package/dist/spreadsheet/SpreadsheetRow.js +0 -68
  292. package/dist/spreadsheet/SpreadsheetRowActionCell.js +0 -78
  293. package/dist/spreadsheet/hooks/useColumnResize.d.ts +0 -6
  294. package/dist/spreadsheet/hooks/useColumnResize.js +0 -46
  295. package/dist/spreadsheet/types.d.ts +0 -92
  296. package/dist/spreadsheet/types.js +0 -21
  297. /package/dist/{spreadsheet → table}/SpreadsheetCellEditor.d.ts +0 -0
@@ -1,267 +1,66 @@
1
- import { withTheme } from "../theme/GalaxyTheme.js";
2
- import { getCssSizeValue } from "../utils/linaria.js";
3
- import Text, { TextSize, TextVariant, TextWeight } from "../text/Text.js";
4
- import { ColumnAlign, ColumnPin, TableDensity } from "./InfiniteTable.js";
5
- /* empty css */
6
- import { styled } from "@linaria/react";
7
- import { match } from "ts-pattern";
8
- import React, { useEffect, useMemo, useRef } from "react";
1
+ import Text, { TextVariant } from "../text/Text.js";
2
+ import { ColumnAlign, ColumnPin, ColumnResizeMode, TableDensity, TableVariant } from "./types.js";
3
+ import { createVirtualRow, getDensityRowHeightPx } from "./utils.js";
4
+ import { useTableColumnResize } from "./useTableColumnResize.js";
5
+ import { useTableColumnLayout } from "./useTableColumnLayout.js";
6
+ import { useInfiniteScrollSentinel } from "./useInfiniteScrollSentinel.js";
7
+ import { useElementClientSize } from "../hooks/useElementClientSize.js";
8
+ import { InfiniteScrollSentinel, StyledTable, TableBody, TableDataCell, TableHead, TableHeaderCell, TableHeaderRow, TableLoadingRow, TableOuterContainer, TableRow, TableScrollContainer } from "./TablePrimitives.js";
9
+ import TableHeaderCellContent from "./TableHeaderCellContent.js";
10
+ import TableStatusRow from "./TableStatusRow.js";
11
+ import React, { useCallback, useRef } from "react";
9
12
  import { jsx, jsxs } from "react/jsx-runtime";
10
13
  import { useVirtualizer } from "@tanstack/react-virtual";
11
14
  //#region src/table/VirtualizedInfiniteTable.tsx
12
- var _exp = () => ({ $width, $fillWidth }) => {
13
- if ($fillWidth) return "100%";
14
- if ($width) return getCssSizeValue($width);
15
- return "auto";
16
- };
17
- var _exp2 = () => ({ $height, $fillHeight }) => {
18
- if ($fillHeight) return "100%";
19
- if ($height) return getCssSizeValue($height);
20
- return "auto";
21
- };
22
- var TableOuterContainer = withTheme(/*#__PURE__*/ styled("div")({
23
- name: "TableOuterContainer",
24
- class: "t1y8ggf1",
25
- propsAsIs: false,
26
- vars: {
27
- "t1y8ggf1-0": [_exp()],
28
- "t1y8ggf1-1": [_exp2()]
29
- }
30
- }));
31
- var _exp3 = () => ({ $noLastRowPadding }) => $noLastRowPadding ? "0" : "8px";
32
- var TableScrollContainer = /*#__PURE__*/ styled("div")({
33
- name: "TableScrollContainer",
34
- class: "t1c28u93",
35
- propsAsIs: false,
36
- vars: { "t1c28u93-0": [_exp3()] }
37
- });
38
- var StyledTable = /*#__PURE__*/ styled("table")({
39
- name: "StyledTable",
40
- class: "st2i0og",
41
- propsAsIs: false
42
- });
43
- var TableHead = /*#__PURE__*/ styled("thead")({
44
- name: "TableHead",
45
- class: "t1w1rmks",
46
- propsAsIs: false
47
- });
48
- var _exp4 = () => ({ $virtualHeight }) => `${$virtualHeight}px`;
49
- var TableBody = /*#__PURE__*/ styled("tbody")({
50
- name: "TableBody",
51
- class: "trwv5lb",
52
- propsAsIs: false,
53
- vars: { "trwv5lb-0": [_exp4()] }
54
- });
55
- var _exp5 = () => ({ $translateY }) => $translateY !== void 0 ? "absolute" : "static";
56
- var _exp6 = () => ({ $translateY }) => $translateY !== void 0 ? `translateY(${$translateY}px)` : "none";
57
- var _exp7 = () => ({ $rowHeight }) => $rowHeight !== void 0 ? `${$rowHeight}px` : "auto";
58
- var _exp8 = () => ({ $isLastRow, theme }) => $isLastRow ? "none" : `0.5px solid ${theme.color.border.primary}`;
59
- var _exp0 = () => ({ theme }) => theme.color.background.primary;
60
- var TableRow = withTheme(/*#__PURE__*/ styled("tr")({
61
- name: "TableRow",
62
- class: "tokkvsw",
63
- propsAsIs: false,
64
- vars: {
65
- "tokkvsw-0": [_exp5()],
66
- "tokkvsw-1": [_exp6()],
67
- "tokkvsw-2": [_exp7()],
68
- "tokkvsw-3": [_exp8()],
69
- "tokkvsw-4": [_exp0()]
70
- }
71
- }));
72
- var TableHeaderRow = withTheme(/*#__PURE__*/ styled("tr")({
73
- name: "TableHeaderRow",
74
- class: "t88dj0a",
75
- propsAsIs: false
76
- }));
77
- var _exp1 = () => ({ $width }) => {
78
- if ($width) return `0 0 ${$width}px`;
79
- return "1 1 0";
80
- };
81
- var _exp10 = () => ({ $minWidth }) => {
82
- if ($minWidth) return `${$minWidth}px`;
83
- return "0";
84
- };
85
- var _exp11 = () => ({ $maxWidth }) => {
86
- if ($maxWidth) return `${$maxWidth}px`;
87
- return "none";
88
- };
89
- var _exp12 = () => ({ $align }) => match($align).with(ColumnAlign.LEFT, () => "left").with(ColumnAlign.CENTER, () => "center").with(ColumnAlign.RIGHT, () => "right").with(void 0, () => "left").exhaustive();
90
- var _exp13 = () => ({ theme }) => theme.color.border.primary;
91
- var _exp14 = () => ({ theme }) => theme.color.background.primary;
92
- var _exp15 = () => ({ $align }) => match($align).with(ColumnAlign.LEFT, () => "flex-start").with(ColumnAlign.CENTER, () => "center").with(ColumnAlign.RIGHT, () => "flex-end").with(void 0, () => "flex-start").exhaustive();
93
- var _exp16 = () => ({ $pin }) => {
94
- if ($pin) return 25;
95
- return 20;
96
- };
97
- var _exp17 = () => ({ $pin, $pinnedOffset }) => {
98
- if ($pin === ColumnPin.LEFT && $pinnedOffset !== void 0) return `${$pinnedOffset}px`;
99
- return "auto";
100
- };
101
- var _exp18 = () => ({ $pin, $pinnedOffset }) => {
102
- if ($pin === ColumnPin.RIGHT && $pinnedOffset !== void 0) return `${$pinnedOffset}px`;
103
- return "auto";
104
- };
105
- var _exp19 = () => ({ $pin, theme }) => {
106
- if ($pin === ColumnPin.LEFT) return `0.5px solid ${theme.color.border.primary}`;
107
- return "none";
108
- };
109
- var _exp20 = () => ({ $pin, theme }) => {
110
- if ($pin === ColumnPin.RIGHT) return `0.5px solid ${theme.color.border.primary}`;
111
- return "none";
112
- };
113
- var TableHeaderCell = withTheme(/*#__PURE__*/ styled("th")({
114
- name: "TableHeaderCell",
115
- class: "t1yes6uf",
116
- propsAsIs: false,
117
- vars: {
118
- "t1yes6uf-0": [_exp1()],
119
- "t1yes6uf-1": [_exp10()],
120
- "t1yes6uf-2": [_exp11()],
121
- "t1yes6uf-3": [_exp12()],
122
- "t1yes6uf-4": [_exp13()],
123
- "t1yes6uf-5": [_exp14()],
124
- "t1yes6uf-6": [_exp15()],
125
- "t1yes6uf-7": [_exp16()],
126
- "t1yes6uf-8": [_exp17()],
127
- "t1yes6uf-9": [_exp18()],
128
- "t1yes6uf-10": [_exp19()],
129
- "t1yes6uf-11": [_exp20()]
130
- }
131
- }));
132
- var _exp21 = () => ({ theme }) => theme.color.text.primary;
133
- var _exp22 = () => ({ $width }) => {
134
- if ($width) return `0 0 ${$width}px`;
135
- return "1 1 0";
136
- };
137
- var _exp23 = () => ({ $minWidth }) => {
138
- if ($minWidth) return `${$minWidth}px`;
139
- return "0";
140
- };
141
- var _exp24 = () => ({ $maxWidth }) => {
142
- if ($maxWidth) return `${$maxWidth}px`;
143
- return "none";
144
- };
145
- var _exp25 = () => ({ $align }) => match($align).with(ColumnAlign.LEFT, () => "left").with(ColumnAlign.CENTER, () => "center").with(ColumnAlign.RIGHT, () => "right").with(void 0, () => "left").exhaustive();
146
- var _exp26 = () => ({ $align }) => match($align).with(ColumnAlign.LEFT, () => "flex-start").with(ColumnAlign.CENTER, () => "center").with(ColumnAlign.RIGHT, () => "flex-end").with(void 0, () => "flex-start").exhaustive();
147
- var _exp27 = () => ({ $pin, theme }) => {
148
- if ($pin) return theme.color.background.primary;
149
- return "transparent";
150
- };
151
- var _exp28 = () => ({ $pin }) => {
152
- if ($pin) return "sticky";
153
- return "static";
154
- };
155
- var _exp29 = () => ({ $pin }) => {
156
- if ($pin) return 5;
157
- return "auto";
158
- };
159
- var _exp30 = () => ({ $pin, $pinnedOffset }) => {
160
- if ($pin === ColumnPin.LEFT && $pinnedOffset !== void 0) return `${$pinnedOffset}px`;
161
- return "auto";
162
- };
163
- var _exp31 = () => ({ $pin, $pinnedOffset }) => {
164
- if ($pin === ColumnPin.RIGHT && $pinnedOffset !== void 0) return `${$pinnedOffset}px`;
165
- return "auto";
166
- };
167
- var _exp32 = () => ({ $pin, theme }) => {
168
- if ($pin === ColumnPin.LEFT) return `0.5px solid ${theme.color.border.primary}`;
169
- return "none";
170
- };
171
- var _exp33 = () => ({ $pin, theme }) => {
172
- if ($pin === ColumnPin.RIGHT) return `0.5px solid ${theme.color.border.primary}`;
173
- return "none";
174
- };
175
- var TableDataCell = withTheme(/*#__PURE__*/ styled("td")({
176
- name: "TableDataCell",
177
- class: "ttzb9kx",
178
- propsAsIs: false,
179
- vars: {
180
- "ttzb9kx-0": [_exp21()],
181
- "ttzb9kx-1": [_exp22()],
182
- "ttzb9kx-2": [_exp23()],
183
- "ttzb9kx-3": [_exp24()],
184
- "ttzb9kx-4": [_exp25()],
185
- "ttzb9kx-5": [_exp26()],
186
- "ttzb9kx-6": [_exp27()],
187
- "ttzb9kx-7": [_exp28()],
188
- "ttzb9kx-8": [_exp29()],
189
- "ttzb9kx-9": [_exp30()],
190
- "ttzb9kx-10": [_exp31()],
191
- "ttzb9kx-11": [_exp32()],
192
- "ttzb9kx-12": [_exp33()]
193
- }
194
- }));
195
- var HeaderContentWrapper = /*#__PURE__*/ styled("div")({
196
- name: "HeaderContentWrapper",
197
- class: "hu950cn",
198
- propsAsIs: false
199
- });
200
- var EmptyContentWrapper = /*#__PURE__*/ styled("div")({
201
- name: "EmptyContentWrapper",
202
- class: "ey3ss0i",
203
- propsAsIs: false
204
- });
205
- var _exp34 = () => ({ theme }) => theme.color.border.primary;
206
- var _exp35 = () => ({ theme }) => theme.color.background.primary;
207
- var LoadingRowWrapper = withTheme(/*#__PURE__*/ styled("tr")({
208
- name: "LoadingRowWrapper",
209
- class: "l1wwts9q",
210
- propsAsIs: false,
211
- vars: {
212
- "l1wwts9q-0": [_exp34()],
213
- "l1wwts9q-1": [_exp35()]
214
- }
215
- }));
216
- function VirtualizedRowInner({ rowData, rowIndex, translateY, rowHeight, density, isLastRow, columns, pinnedOffsets }) {
15
+ function VirtualizedRowInner({ rowData, rowIndex, translateY, rowHeight, density, variant, isLastRow, isClickable, columns, getColumnWidth, pinnedOffsets, onClick }) {
217
16
  return /* @__PURE__ */ jsx(TableRow, {
218
17
  $density: density,
18
+ $variant: variant,
219
19
  $isLastRow: isLastRow,
20
+ $isClickable: isClickable,
220
21
  $translateY: translateY,
221
22
  $rowHeight: rowHeight,
222
- children: columns.map((col) => /* @__PURE__ */ jsx(TableDataCell, {
223
- $width: col.size,
23
+ role: "row",
24
+ "aria-rowindex": rowIndex + 2,
25
+ onClick: onClick ? (event) => onClick(rowIndex, event) : void 0,
26
+ children: columns.map((col, columnIndex) => /* @__PURE__ */ jsx(TableDataCell, {
27
+ $width: getColumnWidth(col),
224
28
  $minWidth: col.minSize,
225
29
  $maxWidth: col.maxSize,
226
30
  $pin: col.pin,
227
31
  $pinnedOffset: pinnedOffsets.get(col.id),
228
32
  $align: col.align,
229
33
  $density: density,
34
+ $variant: variant,
35
+ role: "cell",
36
+ "aria-colindex": columnIndex + 1,
230
37
  children: rowData && col.cell ? col.cell({
231
- value: void 0,
232
- row: {
233
- original: rowData,
234
- index: rowIndex
235
- }
38
+ value: col.accessorFn?.(rowData),
39
+ row: createVirtualRow(rowData, rowIndex)
236
40
  }) : null
237
41
  }, col.id))
238
42
  });
239
43
  }
240
- var VirtualizedRow = React.memo(VirtualizedRowInner, (prev, next) => {
241
- return prev.rowData === next.rowData && prev.translateY === next.translateY && prev.isLastRow === next.isLastRow && prev.columns === next.columns;
242
- });
44
+ var VirtualizedRow = React.memo(VirtualizedRowInner);
243
45
  function VirtualizedInfiniteTable(props) {
244
- const { columns, totalRowCount, getRowData, getRowId, height, width, fillWidth, fillHeight, density = TableDensity.MEDIUM, estimateRowHeight, overscan = 25, hasNextPage, isFetchingNextPage, fetchNextPage, isLoading = false, isError = false, loadingRowCount = 5, contentWhenEmpty, contentWhenError, noLastRowBorder = false, noLastRowPadding = false } = props;
46
+ const { columns, totalRowCount, getRowData, getRowId, height, width, fillWidth, fillHeight, density = TableDensity.MEDIUM, variant = TableVariant.PRIMARY, estimateRowHeight, overscan = 25, hasNextPage, isFetchingNextPage, fetchNextPage, isLoading = false, isError = false, error, loadingRowCount = 5, contentWhenEmpty, contentWhenError, noHeader = false, noLastRowBorder = false, noLastRowPadding = false, enableColumnResizing = false, columnSizing, defaultColumnSizing, onColumnSizingChange, columnResizeMode = ColumnResizeMode.ON_CHANGE, ariaLabel, ariaLabelledBy, onRowClick } = props;
245
47
  const scrollContainerRef = useRef(null);
246
- const pinnedOffsets = useMemo(() => {
247
- const offsets = /* @__PURE__ */ new Map();
248
- let leftOffset = 0;
249
- let rightOffset = 0;
250
- columns.forEach((col) => {
251
- if (col.pin === ColumnPin.LEFT) {
252
- offsets.set(col.id, leftOffset);
253
- leftOffset += col.size ?? 150;
254
- }
255
- });
256
- [...columns].reverse().forEach((col) => {
257
- if (col.pin === ColumnPin.RIGHT) {
258
- offsets.set(col.id, rightOffset);
259
- rightOffset += col.size ?? 150;
260
- }
261
- });
262
- return offsets;
263
- }, [columns]);
264
- const rowHeight = estimateRowHeight ?? match(density).with(TableDensity.SMALL, () => 32).with(TableDensity.MEDIUM, () => 48).with(TableDensity.LARGE, () => 56).exhaustive();
48
+ const headerRef = useRef(null);
49
+ const { width: viewportWidth, height: viewportHeight } = useElementClientSize(scrollContainerRef);
50
+ const { height: headerHeight } = useElementClientSize(headerRef);
51
+ const resize = useTableColumnResize({
52
+ columns,
53
+ enabled: enableColumnResizing,
54
+ columnSizing,
55
+ defaultColumnSizing,
56
+ onColumnSizingChange,
57
+ mode: columnResizeMode
58
+ });
59
+ const { getColumnWidth, pinnedOffsets, rowMinWidth } = useTableColumnLayout({
60
+ columns,
61
+ columnSizing: resize.columnSizing
62
+ });
63
+ const rowHeight = estimateRowHeight ?? getDensityRowHeightPx(density);
265
64
  const virtualizer = useVirtualizer({
266
65
  count: totalRowCount,
267
66
  getScrollElement: () => scrollContainerRef.current,
@@ -269,91 +68,157 @@ function VirtualizedInfiniteTable(props) {
269
68
  overscan
270
69
  });
271
70
  const virtualRows = virtualizer.getVirtualItems();
272
- useEffect(() => {
273
- const container = scrollContainerRef.current;
274
- if (!container || !fetchNextPage) return;
275
- const onScroll = () => {
276
- const { scrollHeight, scrollTop, clientHeight } = container;
277
- if (scrollHeight - scrollTop - clientHeight < 500 && hasNextPage && !isFetchingNextPage) fetchNextPage();
278
- };
279
- container.addEventListener("scroll", onScroll, { passive: true });
280
- return () => container.removeEventListener("scroll", onScroll);
281
- }, [
71
+ const sentinelRef = useInfiniteScrollSentinel({
72
+ scrollRef: scrollContainerRef,
282
73
  hasNextPage,
283
74
  isFetchingNextPage,
284
- fetchNextPage
285
- ]);
286
- useEffect(() => {
287
- const container = scrollContainerRef.current;
288
- if (!container) return;
289
- const onWheel = (e) => {
290
- container.scrollTop += e.deltaY;
291
- container.scrollLeft += e.deltaX;
292
- };
293
- container.addEventListener("wheel", onWheel, { passive: true });
294
- return () => container.removeEventListener("wheel", onWheel);
295
- }, []);
296
- const renderLoadingRows = () => {
297
- return Array.from({ length: loadingRowCount }).map((_, rowIndex) => /* @__PURE__ */ jsx(LoadingRowWrapper, { children: columns.map((col) => /* @__PURE__ */ jsx(TableDataCell, {
298
- $width: col.size,
299
- $minWidth: col.minSize,
300
- $maxWidth: col.maxSize,
301
- $pin: col.pin,
302
- $pinnedOffset: pinnedOffsets.get(col.id),
303
- $align: col.align,
304
- $density: density,
305
- children: col.cellLoading ? col.cellLoading() : null
306
- }, col.id)) }, `loading-${rowIndex}`));
307
- };
308
- const isEmpty = totalRowCount === 0 && !isLoading;
75
+ fetchNextPage,
76
+ rowCount: totalRowCount
77
+ });
78
+ const handleRowClick = useCallback((rowIndex, event) => {
79
+ const rowData = getRowData(rowIndex);
80
+ if (!rowData || !onRowClick) return;
81
+ onRowClick(createVirtualRow(rowData, rowIndex), event);
82
+ }, [getRowData, onRowClick]);
83
+ const renderLoadingCells = () => columns.map((col) => /* @__PURE__ */ jsx(TableDataCell, {
84
+ $width: getColumnWidth(col),
85
+ $minWidth: col.minSize,
86
+ $maxWidth: col.maxSize,
87
+ $pin: col.pin,
88
+ $pinnedOffset: pinnedOffsets.get(col.id),
89
+ $align: col.align,
90
+ $density: density,
91
+ $variant: variant,
92
+ role: "cell",
93
+ children: col.cellLoading ? col.cellLoading() : null
94
+ }, col.id));
95
+ /** Loading rows for the initial load: normal flow, no virtual offset. */
96
+ const renderLoadingRows = () => Array.from({ length: loadingRowCount }).map((_, rowIndex) => /* @__PURE__ */ jsx(TableLoadingRow, {
97
+ $density: density,
98
+ $variant: variant,
99
+ role: "row",
100
+ "aria-hidden": "true",
101
+ children: renderLoadingCells()
102
+ }, `loading-${rowIndex}`));
103
+ /**
104
+ * Loading rows appended while paging. The body is absolutely positioned once
105
+ * virtualization is active, so these have to be offset past the last row
106
+ * rather than left in normal flow.
107
+ */
108
+ const renderTrailingLoadingRows = (startOffset) => Array.from({ length: loadingRowCount }).map((_, rowIndex) => /* @__PURE__ */ jsx(TableRow, {
109
+ $density: density,
110
+ $variant: variant,
111
+ $translateY: startOffset + rowIndex * rowHeight,
112
+ $rowHeight: rowHeight,
113
+ role: "row",
114
+ "aria-hidden": "true",
115
+ children: renderLoadingCells()
116
+ }, `loading-more-${rowIndex}`));
309
117
  const showLoading = isLoading && totalRowCount === 0;
310
118
  const showError = isError && totalRowCount === 0;
311
- return /* @__PURE__ */ jsxs(TableOuterContainer, {
119
+ const showEmpty = totalRowCount === 0 && !isLoading && !isError && Boolean(contentWhenEmpty);
120
+ const showRows = !showLoading && !showError && !showEmpty;
121
+ const statusAvailableHeight = viewportHeight !== void 0 ? Math.max(0, viewportHeight - (headerHeight ?? 0)) : void 0;
122
+ const virtualTotalSize = virtualizer.getTotalSize();
123
+ const trailingLoadingHeight = isFetchingNextPage ? loadingRowCount * rowHeight : 0;
124
+ return /* @__PURE__ */ jsx(TableOuterContainer, {
312
125
  $width: width,
313
126
  $height: height,
314
127
  $fillWidth: fillWidth,
315
128
  $fillHeight: fillHeight,
316
- children: [/* @__PURE__ */ jsx(TableScrollContainer, {
129
+ children: /* @__PURE__ */ jsxs(TableScrollContainer, {
317
130
  ref: scrollContainerRef,
318
131
  $noLastRowPadding: noLastRowPadding,
319
- children: /* @__PURE__ */ jsxs(StyledTable, { children: [/* @__PURE__ */ jsx(TableHead, { children: /* @__PURE__ */ jsx(TableHeaderRow, { children: columns.map((col) => /* @__PURE__ */ jsx(TableHeaderCell, {
320
- $width: col.size,
321
- $minWidth: col.minSize,
322
- $maxWidth: col.maxSize,
323
- $pin: col.pin,
324
- $pinnedOffset: pinnedOffsets.get(col.id),
325
- $align: col.align,
326
- children: /* @__PURE__ */ jsx(HeaderContentWrapper, { children: typeof col.header === "function" ? col.header({ table: null }) : /* @__PURE__ */ jsx(Text, {
327
- variant: TextVariant.TERTIARY,
328
- weight: TextWeight.MEDIUM,
329
- size: TextSize.BODY_SM,
330
- children: col.header ?? col.id
331
- }) })
332
- }, col.id)) }) }), /* @__PURE__ */ jsxs(TableBody, {
333
- $virtualHeight: virtualizer.getTotalSize(),
334
- children: [showLoading ? renderLoadingRows() : showError ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
335
- colSpan: columns.length,
336
- children: typeof contentWhenError === "function" ? contentWhenError() : contentWhenError ?? /* @__PURE__ */ jsx(Text, {
337
- variant: TextVariant.ERROR,
338
- children: "Error loading data"
132
+ children: [/* @__PURE__ */ jsxs(StyledTable, {
133
+ $rowMinWidth: rowMinWidth,
134
+ role: "table",
135
+ "aria-label": ariaLabel,
136
+ "aria-labelledby": ariaLabelledBy,
137
+ "aria-rowcount": totalRowCount + (noHeader ? 0 : 1),
138
+ "aria-colcount": columns.length,
139
+ children: [!noHeader && /* @__PURE__ */ jsx(TableHead, {
140
+ ref: headerRef,
141
+ role: "rowgroup",
142
+ children: /* @__PURE__ */ jsx(TableHeaderRow, {
143
+ role: "row",
144
+ "aria-rowindex": 1,
145
+ children: columns.map((col, columnIndex) => /* @__PURE__ */ jsx(TableHeaderCell, {
146
+ $width: getColumnWidth(col),
147
+ $minWidth: col.minSize,
148
+ $maxWidth: col.maxSize,
149
+ $pin: col.pin,
150
+ $pinnedOffset: pinnedOffsets.get(col.id),
151
+ $align: col.align,
152
+ $density: density,
153
+ $variant: variant,
154
+ role: "columnheader",
155
+ scope: "col",
156
+ "aria-colindex": columnIndex + 1,
157
+ "aria-label": col.headerAriaLabel,
158
+ children: /* @__PURE__ */ jsx(TableHeaderCellContent, {
159
+ content: typeof col.header === "function" ? col.header({ table: null }) : col.header ?? col.id,
160
+ isSortable: false,
161
+ sortDirection: false,
162
+ resize: resize.canResizeColumn(col) ? {
163
+ columnId: col.id,
164
+ columnLabel: typeof col.header === "string" ? col.header : col.id,
165
+ isResizing: resize.resizingColumnId === col.id,
166
+ bounds: resize.getColumnResizeBounds(col.id),
167
+ onResizeStart: resize.startResize,
168
+ onResizeKeyDown: resize.resizeByKeyboard
169
+ } : void 0
170
+ })
171
+ }, col.id))
339
172
  })
340
- }) }) : virtualRows.map((virtualRow) => {
341
- const rowData = getRowData(virtualRow.index);
342
- const rowId = rowData && getRowId ? getRowId(rowData, virtualRow.index) : String(virtualRow.index);
343
- return /* @__PURE__ */ jsx(VirtualizedRow, {
344
- rowData,
345
- rowIndex: virtualRow.index,
346
- translateY: virtualRow.start,
347
- rowHeight,
348
- density,
349
- isLastRow: noLastRowBorder && virtualRow.index === totalRowCount - 1,
350
- columns,
351
- pinnedOffsets
352
- }, rowId);
353
- }), isFetchingNextPage && renderLoadingRows()]
354
- })] })
355
- }), isEmpty && contentWhenEmpty && /* @__PURE__ */ jsx(EmptyContentWrapper, { children: contentWhenEmpty })]
173
+ }), /* @__PURE__ */ jsxs(TableBody, {
174
+ role: "rowgroup",
175
+ $virtualHeight: showRows ? virtualTotalSize + trailingLoadingHeight : void 0,
176
+ children: [
177
+ showLoading && renderLoadingRows(),
178
+ showError && /* @__PURE__ */ jsx(TableStatusRow, {
179
+ colSpan: columns.length,
180
+ viewportWidth,
181
+ availableHeight: statusAvailableHeight,
182
+ role: "alert",
183
+ children: typeof contentWhenError === "function" ? contentWhenError(error) : contentWhenError ?? /* @__PURE__ */ jsx(Text, {
184
+ variant: TextVariant.ERROR,
185
+ children: error?.message ?? "Error loading data"
186
+ })
187
+ }),
188
+ showEmpty && /* @__PURE__ */ jsx(TableStatusRow, {
189
+ colSpan: columns.length,
190
+ viewportWidth,
191
+ availableHeight: statusAvailableHeight,
192
+ role: "status",
193
+ children: contentWhenEmpty
194
+ }),
195
+ showRows && virtualRows.map((virtualRow) => {
196
+ const rowData = getRowData(virtualRow.index);
197
+ const rowId = rowData && getRowId ? getRowId(rowData, virtualRow.index) : String(virtualRow.index);
198
+ return /* @__PURE__ */ jsx(VirtualizedRow, {
199
+ rowData,
200
+ rowIndex: virtualRow.index,
201
+ translateY: virtualRow.start,
202
+ rowHeight,
203
+ density,
204
+ variant,
205
+ isLastRow: noLastRowBorder && virtualRow.index === totalRowCount - 1,
206
+ isClickable: Boolean(onRowClick),
207
+ columns,
208
+ getColumnWidth,
209
+ pinnedOffsets,
210
+ onClick: onRowClick ? handleRowClick : void 0
211
+ }, rowId);
212
+ }),
213
+ isFetchingNextPage && (showRows ? renderTrailingLoadingRows(virtualTotalSize) : null)
214
+ ]
215
+ })]
216
+ }), /* @__PURE__ */ jsx(InfiniteScrollSentinel, {
217
+ ref: sentinelRef,
218
+ "aria-hidden": "true"
219
+ })]
220
+ })
356
221
  });
357
222
  }
358
223
  //#endregion
359
- export { ColumnAlign, ColumnPin, TableDensity, VirtualizedInfiniteTable as default };
224
+ export { ColumnAlign, ColumnPin, ColumnResizeMode, TableDensity, TableVariant, VirtualizedInfiniteTable as default };