@galaxy-io/dls 1.2.7 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) 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 +183 -253
  8. package/dist/charts/ChartAxis.d.ts +47 -22
  9. package/dist/charts/ChartAxis.js +81 -60
  10. package/dist/charts/ChartCategoryTargets.d.ts +27 -0
  11. package/dist/charts/ChartCategoryTargets.js +75 -0
  12. package/dist/charts/ChartEmptyState.d.ts +17 -0
  13. package/dist/charts/ChartEmptyState.js +29 -0
  14. package/dist/charts/ChartFrame.d.ts +110 -0
  15. package/dist/charts/ChartFrame.js +143 -0
  16. package/dist/charts/ChartLegend.d.ts +27 -4
  17. package/dist/charts/ChartLegend.js +46 -23
  18. package/dist/charts/ChartPrimitives.d.ts +230 -0
  19. package/dist/charts/ChartPrimitives.js +305 -0
  20. package/dist/charts/ChartTooltip.d.ts +25 -4
  21. package/dist/charts/ChartTooltip.js +55 -49
  22. package/dist/charts/LineChart.d.ts +42 -20
  23. package/dist/charts/LineChart.js +175 -241
  24. package/dist/charts/PieChart.d.ts +48 -32
  25. package/dist/charts/PieChart.js +180 -170
  26. package/dist/charts/barChartGeometry.d.ts +120 -0
  27. package/dist/charts/barChartGeometry.js +210 -0
  28. package/dist/charts/barChartLegend.d.ts +25 -0
  29. package/dist/charts/barChartLegend.js +23 -0
  30. package/dist/charts/chartFormat.d.ts +27 -0
  31. package/dist/charts/chartFormat.js +71 -0
  32. package/dist/charts/chartScales.d.ts +120 -0
  33. package/dist/charts/chartScales.js +165 -0
  34. package/dist/charts/chartTheme.d.ts +18 -0
  35. package/dist/charts/chartTheme.js +26 -0
  36. package/dist/charts/constants.d.ts +241 -18
  37. package/dist/charts/constants.js +261 -32
  38. package/dist/charts/lineChartGeometry.d.ts +92 -0
  39. package/dist/charts/lineChartGeometry.js +134 -0
  40. package/dist/charts/pieChartGeometry.d.ts +60 -0
  41. package/dist/charts/pieChartGeometry.js +79 -0
  42. package/dist/charts/types.d.ts +428 -54
  43. package/dist/charts/types.js +155 -0
  44. package/dist/charts/useCartesianChartLayout.d.ts +70 -0
  45. package/dist/charts/useCartesianChartLayout.js +56 -0
  46. package/dist/charts/useChartDimensions.d.ts +47 -0
  47. package/dist/charts/useChartDimensions.js +63 -0
  48. package/dist/charts/useChartFormatters.d.ts +19 -0
  49. package/dist/charts/useChartFormatters.js +20 -0
  50. package/dist/charts/useChartInteraction.d.ts +76 -0
  51. package/dist/charts/useChartInteraction.js +126 -0
  52. package/dist/charts/useChartTooltipPosition.d.ts +53 -0
  53. package/dist/charts/useChartTooltipPosition.js +39 -0
  54. package/dist/charts/useSeriesColorResolver.d.ts +37 -0
  55. package/dist/charts/useSeriesColorResolver.js +27 -0
  56. package/dist/hooks/useElementClientSize.d.ts +20 -0
  57. package/dist/hooks/useElementClientSize.js +43 -0
  58. package/dist/inputs/CheckboxInput.d.ts +7 -2
  59. package/dist/inputs/CheckboxInput.js +30 -14
  60. package/dist/inputs/Input.d.ts +1 -1
  61. package/dist/inputs/Input.js +6 -2
  62. package/dist/inputs/MultiSelectInput.js +1 -1
  63. package/dist/inputs/RadioInput.js +7 -2
  64. package/dist/styles.css +69 -74
  65. package/dist/table/InfiniteSpreadsheet.d.ts +6 -0
  66. package/dist/table/InfiniteSpreadsheet.js +235 -0
  67. package/dist/table/InfiniteTable.d.ts +7 -88
  68. package/dist/table/InfiniteTable.js +366 -577
  69. package/dist/{spreadsheet → table}/SpreadsheetCell.d.ts +6 -4
  70. package/dist/table/SpreadsheetCell.js +71 -0
  71. package/dist/{spreadsheet → table}/SpreadsheetCellEditor.js +27 -21
  72. package/dist/table/SpreadsheetHeaderCell.d.ts +23 -0
  73. package/dist/table/SpreadsheetHeaderCell.js +91 -0
  74. package/dist/table/SpreadsheetMenuItem.d.ts +14 -0
  75. package/dist/table/SpreadsheetMenuItem.js +33 -0
  76. package/dist/table/SpreadsheetPrimitives.d.ts +172 -0
  77. package/dist/table/SpreadsheetPrimitives.js +105 -0
  78. package/dist/table/SpreadsheetRow.d.ts +33 -0
  79. package/dist/table/SpreadsheetRow.js +73 -0
  80. package/dist/{spreadsheet → table}/SpreadsheetRowActionCell.d.ts +5 -7
  81. package/dist/table/SpreadsheetRowActionCell.js +51 -0
  82. package/dist/table/TableExpandCell.d.ts +11 -0
  83. package/dist/table/TableExpandCell.js +24 -0
  84. package/dist/table/TableExpandedRow.d.ts +16 -0
  85. package/dist/table/TableExpandedRow.js +77 -0
  86. package/dist/table/TableHeaderCellContent.d.ts +30 -0
  87. package/dist/table/TableHeaderCellContent.js +48 -0
  88. package/dist/table/TablePrimitives.d.ts +307 -0
  89. package/dist/table/TablePrimitives.js +298 -0
  90. package/dist/table/TableSelectCell.d.ts +18 -0
  91. package/dist/table/TableSelectCell.js +26 -0
  92. package/dist/table/TableStatusRow.d.ts +18 -0
  93. package/dist/table/TableStatusRow.js +50 -0
  94. package/dist/table/VirtualizedInfiniteTable.d.ts +11 -27
  95. package/dist/table/VirtualizedInfiniteTable.js +182 -317
  96. package/dist/table/types.d.ts +249 -0
  97. package/dist/table/types.js +51 -0
  98. package/dist/table/useInfiniteScrollSentinel.d.ts +24 -0
  99. package/dist/table/useInfiniteScrollSentinel.js +53 -0
  100. package/dist/{spreadsheet/hooks → table}/useSpreadsheetEditing.d.ts +1 -1
  101. package/dist/{spreadsheet/hooks → table}/useSpreadsheetEditing.js +1 -1
  102. package/dist/table/useTableColumnLayout.d.ts +28 -0
  103. package/dist/table/useTableColumnLayout.js +63 -0
  104. package/dist/table/useTableColumnResize.d.ts +38 -0
  105. package/dist/table/useTableColumnResize.js +155 -0
  106. package/dist/table/useTableKeyboardNavigation.d.ts +25 -0
  107. package/dist/table/useTableKeyboardNavigation.js +83 -0
  108. package/dist/table/useTableRowExpansion.d.ts +24 -0
  109. package/dist/table/useTableRowExpansion.js +62 -0
  110. package/dist/table/useTableRowSelection.d.ts +27 -0
  111. package/dist/table/useTableRowSelection.js +94 -0
  112. package/dist/table/utils.d.ts +50 -0
  113. package/dist/table/utils.js +78 -0
  114. package/dist/text/MarkdownText.js +45 -27
  115. package/dist/theme/variants/dark.js +1 -1
  116. package/dist/widget/Widget.d.ts +2 -0
  117. package/dist/widget/Widget.js +14 -7
  118. package/package.json +1 -5
  119. package/dist/assets/components/enrichment/PerplexityIcon.d.ts +0 -3
  120. package/dist/assets/components/enrichment/PerplexityIcon.js +0 -35
  121. package/dist/assets/components/enrichment/TavilyIcon.d.ts +0 -3
  122. package/dist/assets/components/enrichment/TavilyIcon.js +0 -15
  123. package/dist/assets/components/onboarding/TenantSetupDark.d.ts +0 -3
  124. package/dist/assets/components/onboarding/TenantSetupDark.js +0 -498
  125. package/dist/assets/components/onboarding/TenantSetupLight.d.ts +0 -3
  126. package/dist/assets/components/onboarding/TenantSetupLight.js +0 -482
  127. package/dist/assets/components/onboarding/UserSetupDark.d.ts +0 -3
  128. package/dist/assets/components/onboarding/UserSetupDark.js +0 -1086
  129. package/dist/assets/components/onboarding/UserSetupLight.d.ts +0 -3
  130. package/dist/assets/components/onboarding/UserSetupLight.js +0 -1024
  131. package/dist/assets/components/onboarding/WorkspaceSetupBuildDark.d.ts +0 -3
  132. package/dist/assets/components/onboarding/WorkspaceSetupBuildDark.js +0 -466
  133. package/dist/assets/components/onboarding/WorkspaceSetupBuildLight.d.ts +0 -3
  134. package/dist/assets/components/onboarding/WorkspaceSetupBuildLight.js +0 -460
  135. package/dist/assets/components/onboarding/WorkspaceSetupConnectDark.d.ts +0 -3
  136. package/dist/assets/components/onboarding/WorkspaceSetupConnectDark.js +0 -336
  137. package/dist/assets/components/onboarding/WorkspaceSetupConnectLight.d.ts +0 -3
  138. package/dist/assets/components/onboarding/WorkspaceSetupConnectLight.js +0 -336
  139. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateDark.d.ts +0 -3
  140. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateDark.js +0 -153
  141. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateLight.d.ts +0 -3
  142. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateLight.js +0 -153
  143. package/dist/assets/components/projects/MappingMethodAutoIntrospectDark.d.ts +0 -3
  144. package/dist/assets/components/projects/MappingMethodAutoIntrospectDark.js +0 -117
  145. package/dist/assets/components/projects/MappingMethodAutoIntrospectLight.d.ts +0 -3
  146. package/dist/assets/components/projects/MappingMethodAutoIntrospectLight.js +0 -117
  147. package/dist/assets/components/projects/MappingMethodBlankDark.d.ts +0 -3
  148. package/dist/assets/components/projects/MappingMethodBlankDark.js +0 -150
  149. package/dist/assets/components/projects/MappingMethodBlankDarkHovered.d.ts +0 -3
  150. package/dist/assets/components/projects/MappingMethodBlankDarkHovered.js +0 -150
  151. package/dist/assets/components/projects/MappingMethodBlankLight.d.ts +0 -3
  152. package/dist/assets/components/projects/MappingMethodBlankLight.js +0 -150
  153. package/dist/assets/components/projects/MappingMethodBlankLightHovered.d.ts +0 -3
  154. package/dist/assets/components/projects/MappingMethodBlankLightHovered.js +0 -150
  155. package/dist/assets/components/projects/MappingMethodJsonDark.d.ts +0 -3
  156. package/dist/assets/components/projects/MappingMethodJsonDark.js +0 -90
  157. package/dist/assets/components/projects/MappingMethodJsonDarkHovered.d.ts +0 -3
  158. package/dist/assets/components/projects/MappingMethodJsonDarkHovered.js +0 -90
  159. package/dist/assets/components/projects/MappingMethodJsonLight.d.ts +0 -3
  160. package/dist/assets/components/projects/MappingMethodJsonLight.js +0 -90
  161. package/dist/assets/components/projects/MappingMethodJsonLightHovered.d.ts +0 -3
  162. package/dist/assets/components/projects/MappingMethodJsonLightHovered.js +0 -90
  163. package/dist/assets/components/projects/ProjectsEmptyStateDark.d.ts +0 -3
  164. package/dist/assets/components/projects/ProjectsEmptyStateDark.js +0 -454
  165. package/dist/assets/components/projects/ProjectsEmptyStateLight.d.ts +0 -3
  166. package/dist/assets/components/projects/ProjectsEmptyStateLight.js +0 -456
  167. package/dist/assets/components/root/CreateProjectActionCardDark.d.ts +0 -3
  168. package/dist/assets/components/root/CreateProjectActionCardDark.js +0 -1796
  169. package/dist/assets/components/root/CreateProjectActionCardDarkHovered.d.ts +0 -3
  170. package/dist/assets/components/root/CreateProjectActionCardDarkHovered.js +0 -1796
  171. package/dist/assets/components/root/CreateProjectActionCardLight.d.ts +0 -3
  172. package/dist/assets/components/root/CreateProjectActionCardLight.js +0 -1786
  173. package/dist/assets/components/root/CreateProjectActionCardLightHovered.d.ts +0 -3
  174. package/dist/assets/components/root/CreateProjectActionCardLightHovered.js +0 -1786
  175. package/dist/assets/components/root/CreateSourceActionCardDark.d.ts +0 -3
  176. package/dist/assets/components/root/CreateSourceActionCardDark.js +0 -879
  177. package/dist/assets/components/root/CreateSourceActionCardDarkHovered.d.ts +0 -3
  178. package/dist/assets/components/root/CreateSourceActionCardDarkHovered.js +0 -879
  179. package/dist/assets/components/root/CreateSourceActionCardLight.d.ts +0 -3
  180. package/dist/assets/components/root/CreateSourceActionCardLight.js +0 -889
  181. package/dist/assets/components/root/CreateSourceActionCardLightHovered.d.ts +0 -3
  182. package/dist/assets/components/root/CreateSourceActionCardLightHovered.js +0 -889
  183. package/dist/assets/components/sources/AttioIcon.d.ts +0 -3
  184. package/dist/assets/components/sources/AttioIcon.js +0 -11
  185. package/dist/assets/components/sources/BigquerySourceIcon.d.ts +0 -3
  186. package/dist/assets/components/sources/BigquerySourceIcon.js +0 -39
  187. package/dist/assets/components/sources/BrowserbaseSourceIcon.d.ts +0 -3
  188. package/dist/assets/components/sources/BrowserbaseSourceIcon.js +0 -35
  189. package/dist/assets/components/sources/ClickhouseLogoSourceIconDark.d.ts +0 -3
  190. package/dist/assets/components/sources/ClickhouseLogoSourceIconDark.js +0 -13
  191. package/dist/assets/components/sources/ClickhouseLogoSourceIconLight.d.ts +0 -3
  192. package/dist/assets/components/sources/ClickhouseLogoSourceIconLight.js +0 -13
  193. package/dist/assets/components/sources/ConfluenceSourceIcon.d.ts +0 -3
  194. package/dist/assets/components/sources/ConfluenceSourceIcon.js +0 -30
  195. package/dist/assets/components/sources/GithubSourceIcon.d.ts +0 -3
  196. package/dist/assets/components/sources/GithubSourceIcon.js +0 -27
  197. package/dist/assets/components/sources/GoogleDriveIcon.d.ts +0 -3
  198. package/dist/assets/components/sources/GoogleDriveIcon.js +0 -45
  199. package/dist/assets/components/sources/HubspotSourceIcon.d.ts +0 -3
  200. package/dist/assets/components/sources/HubspotSourceIcon.js +0 -14
  201. package/dist/assets/components/sources/JiraSourceIcon.d.ts +0 -3
  202. package/dist/assets/components/sources/JiraSourceIcon.js +0 -54
  203. package/dist/assets/components/sources/LinearSourceIcon.d.ts +0 -3
  204. package/dist/assets/components/sources/LinearSourceIcon.js +0 -14
  205. package/dist/assets/components/sources/MysqlLogoSourceIconDark.d.ts +0 -3
  206. package/dist/assets/components/sources/MysqlLogoSourceIconDark.js +0 -17
  207. package/dist/assets/components/sources/NetsuiteSourceIcon.d.ts +0 -3
  208. package/dist/assets/components/sources/NetsuiteSourceIcon.js +0 -32
  209. package/dist/assets/components/sources/NotionIcon.d.ts +0 -3
  210. package/dist/assets/components/sources/NotionIcon.js +0 -20
  211. package/dist/assets/components/sources/PostgresqlIcon.d.ts +0 -3
  212. package/dist/assets/components/sources/PostgresqlIcon.js +0 -61
  213. package/dist/assets/components/sources/S3Icon.d.ts +0 -3
  214. package/dist/assets/components/sources/S3Icon.js +0 -76
  215. package/dist/assets/components/sources/SalesforceSourceIcon.d.ts +0 -3
  216. package/dist/assets/components/sources/SalesforceSourceIcon.js +0 -23
  217. package/dist/assets/components/sources/SlackIcon.d.ts +0 -3
  218. package/dist/assets/components/sources/SlackIcon.js +0 -32
  219. package/dist/assets/components/sources/SnowflakeLogoSourceIconDark.d.ts +0 -3
  220. package/dist/assets/components/sources/SnowflakeLogoSourceIconDark.js +0 -14
  221. package/dist/assets/components/sources/SnowflakeLogoSourceIconLight.d.ts +0 -3
  222. package/dist/assets/components/sources/SnowflakeLogoSourceIconLight.js +0 -14
  223. package/dist/assets/components/sources/WikipediaSourceIcon.d.ts +0 -3
  224. package/dist/assets/components/sources/WikipediaSourceIcon.js +0 -1490
  225. package/dist/avatar/AvatarEmpty.d.ts +0 -7
  226. package/dist/avatar/AvatarEmpty.js +0 -99
  227. package/dist/avatar/types.d.ts +0 -5
  228. package/dist/avatar/types.js +0 -9
  229. package/dist/charts/utils.d.ts +0 -29
  230. package/dist/charts/utils.js +0 -62
  231. package/dist/icons/BackIcon.d.ts +0 -3
  232. package/dist/icons/BackIcon.js +0 -13
  233. package/dist/icons/CloseIcon.d.ts +0 -3
  234. package/dist/icons/CloseIcon.js +0 -13
  235. package/dist/icons/CreateIcon.d.ts +0 -3
  236. package/dist/icons/CreateIcon.js +0 -13
  237. package/dist/icons/ForwardIcon.d.ts +0 -3
  238. package/dist/icons/ForwardIcon.js +0 -13
  239. package/dist/icons/HelpIcon.d.ts +0 -3
  240. package/dist/icons/HelpIcon.js +0 -14
  241. package/dist/icons/ProjectsIcon.d.ts +0 -3
  242. package/dist/icons/ProjectsIcon.js +0 -12
  243. package/dist/icons/SearchIcon.d.ts +0 -3
  244. package/dist/icons/SearchIcon.js +0 -12
  245. package/dist/icons/SourcesIcon.d.ts +0 -3
  246. package/dist/icons/SourcesIcon.js +0 -12
  247. package/dist/icons/TextIcon.d.ts +0 -4
  248. package/dist/icons/TextIcon.js +0 -22
  249. package/dist/icons/WebScrapeIcon.d.ts +0 -4
  250. package/dist/icons/WebScrapeIcon.js +0 -22
  251. package/dist/icons/WebhookIcon.d.ts +0 -4
  252. package/dist/icons/WebhookIcon.js +0 -22
  253. package/dist/icons/sources/AttioLogomark.d.ts +0 -4
  254. package/dist/icons/sources/AttioLogomark.js +0 -8
  255. package/dist/icons/sources/BrowserbaseLogomark.d.ts +0 -4
  256. package/dist/icons/sources/BrowserbaseLogomark.js +0 -8
  257. package/dist/icons/sources/ClickhouseLogomark.d.ts +0 -4
  258. package/dist/icons/sources/ClickhouseLogomark.js +0 -16
  259. package/dist/icons/sources/ConfluenceLogomark.d.ts +0 -4
  260. package/dist/icons/sources/ConfluenceLogomark.js +0 -8
  261. package/dist/icons/sources/GithubLogomark.d.ts +0 -4
  262. package/dist/icons/sources/GithubLogomark.js +0 -8
  263. package/dist/icons/sources/GoogleBigqueryLogomark.d.ts +0 -4
  264. package/dist/icons/sources/GoogleBigqueryLogomark.js +0 -8
  265. package/dist/icons/sources/GoogleDriveLogomark.d.ts +0 -4
  266. package/dist/icons/sources/GoogleDriveLogomark.js +0 -8
  267. package/dist/icons/sources/HubspotLogomark.d.ts +0 -4
  268. package/dist/icons/sources/HubspotLogomark.js +0 -8
  269. package/dist/icons/sources/JiraLogomark.d.ts +0 -4
  270. package/dist/icons/sources/JiraLogomark.js +0 -8
  271. package/dist/icons/sources/LinearLogomark.d.ts +0 -4
  272. package/dist/icons/sources/LinearLogomark.js +0 -8
  273. package/dist/icons/sources/MySQLLogomark.d.ts +0 -4
  274. package/dist/icons/sources/MySQLLogomark.js +0 -8
  275. package/dist/icons/sources/NetsuiteLogomark.d.ts +0 -4
  276. package/dist/icons/sources/NetsuiteLogomark.js +0 -8
  277. package/dist/icons/sources/NotionLogomark.d.ts +0 -4
  278. package/dist/icons/sources/NotionLogomark.js +0 -8
  279. package/dist/icons/sources/PostgresLogomark.d.ts +0 -4
  280. package/dist/icons/sources/PostgresLogomark.js +0 -8
  281. package/dist/icons/sources/S3Logomark.d.ts +0 -4
  282. package/dist/icons/sources/S3Logomark.js +0 -8
  283. package/dist/icons/sources/SalesforceLogomark.d.ts +0 -4
  284. package/dist/icons/sources/SalesforceLogomark.js +0 -8
  285. package/dist/icons/sources/SlackLogoIconmark.d.ts +0 -4
  286. package/dist/icons/sources/SlackLogoIconmark.js +0 -8
  287. package/dist/icons/sources/SnowflakeLogomark.d.ts +0 -4
  288. package/dist/icons/sources/SnowflakeLogomark.js +0 -16
  289. package/dist/icons/sources/WikipediaLogomark.d.ts +0 -4
  290. package/dist/icons/sources/WikipediaLogomark.js +0 -8
  291. package/dist/spreadsheet/InfiniteSpreadsheet.d.ts +0 -3
  292. package/dist/spreadsheet/InfiniteSpreadsheet.js +0 -265
  293. package/dist/spreadsheet/SpreadsheetAddColumnButton.d.ts +0 -6
  294. package/dist/spreadsheet/SpreadsheetAddColumnButton.js +0 -32
  295. package/dist/spreadsheet/SpreadsheetCell.js +0 -115
  296. package/dist/spreadsheet/SpreadsheetHeaderCell.d.ts +0 -18
  297. package/dist/spreadsheet/SpreadsheetHeaderCell.js +0 -141
  298. package/dist/spreadsheet/SpreadsheetRow.d.ts +0 -21
  299. package/dist/spreadsheet/SpreadsheetRow.js +0 -68
  300. package/dist/spreadsheet/SpreadsheetRowActionCell.js +0 -78
  301. package/dist/spreadsheet/hooks/useColumnResize.d.ts +0 -6
  302. package/dist/spreadsheet/hooks/useColumnResize.js +0 -46
  303. package/dist/spreadsheet/types.d.ts +0 -92
  304. package/dist/spreadsheet/types.js +0 -21
  305. /package/dist/{spreadsheet → table}/SpreadsheetCellEditor.d.ts +0 -0
@@ -0,0 +1,235 @@
1
+ import Text, { TextVariant } from "../text/Text.js";
2
+ import Button, { ButtonSize, ButtonVariant } from "../buttons/Button.js";
3
+ import { CellEnrichmentStatus, ColumnAlign, ColumnPin, ColumnResizeMode, SpreadsheetCellType, TableDensity, TableVariant } from "./types.js";
4
+ import { getDensityRowHeightPx } from "./utils.js";
5
+ import { useTableKeyboardNavigation } from "./useTableKeyboardNavigation.js";
6
+ import { useTableColumnResize } from "./useTableColumnResize.js";
7
+ import { useTableColumnLayout } from "./useTableColumnLayout.js";
8
+ import { useSpreadsheetEditing } from "./useSpreadsheetEditing.js";
9
+ import { useInfiniteScrollSentinel } from "./useInfiniteScrollSentinel.js";
10
+ import { useElementClientSize } from "../hooks/useElementClientSize.js";
11
+ import { InfiniteScrollSentinel, StyledTable, TableBody, TableDataCell, TableHead, TableHeaderRow, TableLoadingRow, TableOuterContainer, TableRow, TableScrollContainer } from "./TablePrimitives.js";
12
+ import TableStatusRow from "./TableStatusRow.js";
13
+ import { ActionColumnHeaderCell, CellLoadingSkeleton } from "./SpreadsheetPrimitives.js";
14
+ import SpreadsheetRow from "./SpreadsheetRow.js";
15
+ import SpreadsheetHeaderCell from "./SpreadsheetHeaderCell.js";
16
+ import { useCallback, useMemo, useRef } from "react";
17
+ import { jsx, jsxs } from "react/jsx-runtime";
18
+ import { PlusIcon } from "@phosphor-icons/react";
19
+ import { useVirtualizer } from "@tanstack/react-virtual";
20
+ //#region src/table/InfiniteSpreadsheet.tsx
21
+ function InfiniteSpreadsheet(props) {
22
+ 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 = true, columnSizing, defaultColumnSizing, onColumnSizingChange, columnResizeMode = ColumnResizeMode.ON_CHANGE, ariaLabel, ariaLabelledBy, onAddColumn, addColumnAriaLabel = "Add column", rowActions, getRowActionsAriaLabel, editingCell: controlledEditingCell, onEditingCellChange, enableRowFocus = true } = props;
23
+ const scrollContainerRef = useRef(null);
24
+ const headerRef = useRef(null);
25
+ const bodyRef = useRef(null);
26
+ const { width: viewportWidth, height: viewportHeight } = useElementClientSize(scrollContainerRef);
27
+ const { height: headerHeight } = useElementClientSize(headerRef);
28
+ const showActionColumn = Boolean(onAddColumn) || Boolean(rowActions && rowActions.length > 0);
29
+ const actionColumnWidth = showActionColumn ? 48 : 0;
30
+ const resize = useTableColumnResize({
31
+ columns,
32
+ enabled: enableColumnResizing,
33
+ columnSizing,
34
+ defaultColumnSizing,
35
+ onColumnSizingChange,
36
+ mode: columnResizeMode
37
+ });
38
+ const { canResizeColumn, startResize, resizeByKeyboard, getColumnResizeBounds } = resize;
39
+ const { getColumnWidth, pinnedOffsets, rowMinWidth } = useTableColumnLayout({
40
+ columns,
41
+ columnSizing: resize.columnSizing,
42
+ rightOffsetBase: actionColumnWidth
43
+ });
44
+ const { editingCell, startEditing, commitEditing, cancelEditing } = useSpreadsheetEditing({
45
+ editingCell: controlledEditingCell,
46
+ onEditingCellChange
47
+ });
48
+ const rowHeight = estimateRowHeight ?? getDensityRowHeightPx(density);
49
+ const virtualizer = useVirtualizer({
50
+ count: totalRowCount,
51
+ getScrollElement: () => scrollContainerRef.current,
52
+ estimateSize: () => rowHeight,
53
+ overscan
54
+ });
55
+ const virtualRows = virtualizer.getVirtualItems();
56
+ const virtualTotalSize = virtualizer.getTotalSize();
57
+ const sentinelRef = useInfiniteScrollSentinel({
58
+ scrollRef: scrollContainerRef,
59
+ hasNextPage,
60
+ isFetchingNextPage,
61
+ fetchNextPage,
62
+ rowCount: totalRowCount
63
+ });
64
+ const keyboard = useTableKeyboardNavigation({
65
+ bodyRef,
66
+ rowCount: totalRowCount,
67
+ enabled: enableRowFocus,
68
+ scrollToIndex: useCallback((rowIndex) => virtualizer.scrollToIndex(rowIndex), [virtualizer])
69
+ });
70
+ /**
71
+ * Handed to column enrichment actions. Materializing rows is opt-in, so an
72
+ * action that only needs a count no longer pays for a full scan.
73
+ */
74
+ const rowsContext = useMemo(() => ({
75
+ totalRowCount,
76
+ getRowData,
77
+ getLoadedRows: () => {
78
+ const rows = [];
79
+ for (let index = 0; index < totalRowCount; index += 1) {
80
+ const row = getRowData(index);
81
+ if (row !== void 0) rows.push(row);
82
+ }
83
+ return rows;
84
+ }
85
+ }), [totalRowCount, getRowData]);
86
+ const renderLoadingCells = () => columns.map((col) => /* @__PURE__ */ jsx(TableDataCell, {
87
+ $width: getColumnWidth(col),
88
+ $minWidth: col.minSize,
89
+ $maxWidth: col.maxSize,
90
+ $pin: col.pin,
91
+ $pinnedOffset: pinnedOffsets.get(col.id),
92
+ $align: col.align,
93
+ $density: density,
94
+ $variant: variant,
95
+ role: "gridcell",
96
+ children: col.cellLoading ? col.cellLoading() : /* @__PURE__ */ jsx(CellLoadingSkeleton, {})
97
+ }, col.id));
98
+ /** Initial load: normal flow, since the body has no virtual height yet. */
99
+ const renderLoadingRows = () => Array.from({ length: loadingRowCount }).map((_, rowIndex) => /* @__PURE__ */ jsx(TableLoadingRow, {
100
+ $density: density,
101
+ $variant: variant,
102
+ role: "row",
103
+ "aria-hidden": "true",
104
+ children: renderLoadingCells()
105
+ }, `loading-${rowIndex}`));
106
+ /**
107
+ * Paging: the body's children are absolutely positioned once virtualization
108
+ * is active, so these have to be offset past the last row rather than left in
109
+ * normal flow — otherwise they stack on top of the first visible rows.
110
+ */
111
+ const renderTrailingLoadingRows = (startOffset) => Array.from({ length: loadingRowCount }).map((_, rowIndex) => /* @__PURE__ */ jsx(TableRow, {
112
+ $density: density,
113
+ $variant: variant,
114
+ $translateY: startOffset + rowIndex * rowHeight,
115
+ $rowHeight: rowHeight,
116
+ role: "row",
117
+ "aria-hidden": "true",
118
+ children: renderLoadingCells()
119
+ }, `loading-more-${rowIndex}`));
120
+ const showLoading = isLoading && totalRowCount === 0;
121
+ const showError = isError && totalRowCount === 0;
122
+ const showEmpty = totalRowCount === 0 && !isLoading && !isError && Boolean(contentWhenEmpty);
123
+ const showRows = !showLoading && !showError && !showEmpty;
124
+ const trailingLoadingHeight = isFetchingNextPage ? loadingRowCount * rowHeight : 0;
125
+ const statusAvailableHeight = viewportHeight !== void 0 ? Math.max(0, viewportHeight - (headerHeight ?? 0)) : void 0;
126
+ const columnCount = columns.length + (showActionColumn ? 1 : 0);
127
+ return /* @__PURE__ */ jsx(TableOuterContainer, {
128
+ $width: width,
129
+ $height: height,
130
+ $fillWidth: fillWidth,
131
+ $fillHeight: fillHeight,
132
+ children: /* @__PURE__ */ jsxs(TableScrollContainer, {
133
+ ref: scrollContainerRef,
134
+ $noLastRowPadding: noLastRowPadding,
135
+ children: [/* @__PURE__ */ jsxs(StyledTable, {
136
+ $rowMinWidth: rowMinWidth + actionColumnWidth,
137
+ role: "grid",
138
+ "aria-label": ariaLabel,
139
+ "aria-labelledby": ariaLabelledBy,
140
+ "aria-rowcount": totalRowCount + (noHeader ? 0 : 1),
141
+ "aria-colcount": columnCount,
142
+ children: [!noHeader && /* @__PURE__ */ jsx(TableHead, {
143
+ ref: headerRef,
144
+ role: "rowgroup",
145
+ children: /* @__PURE__ */ jsxs(TableHeaderRow, {
146
+ role: "row",
147
+ "aria-rowindex": 1,
148
+ children: [columns.map((col, columnIndex) => /* @__PURE__ */ jsx(SpreadsheetHeaderCell, {
149
+ column: col,
150
+ columnIndex,
151
+ width: getColumnWidth(col),
152
+ pinnedOffset: pinnedOffsets.get(col.id),
153
+ density,
154
+ variant,
155
+ rowsContext,
156
+ isResizable: canResizeColumn(col),
157
+ isResizing: resize.resizingColumnId === col.id,
158
+ resizeBounds: getColumnResizeBounds(col.id),
159
+ onResizeStart: startResize,
160
+ onResizeKeyDown: resizeByKeyboard
161
+ }, col.id)), showActionColumn && /* @__PURE__ */ jsx(ActionColumnHeaderCell, {
162
+ $variant: variant,
163
+ role: "columnheader",
164
+ "aria-colindex": columnCount,
165
+ "aria-label": addColumnAriaLabel,
166
+ children: onAddColumn && /* @__PURE__ */ jsx(Button, {
167
+ icon: PlusIcon,
168
+ variant: ButtonVariant.TERTIARY,
169
+ size: ButtonSize.SMALL,
170
+ ariaLabel: addColumnAriaLabel,
171
+ onClick: onAddColumn
172
+ })
173
+ })]
174
+ })
175
+ }), /* @__PURE__ */ jsxs(TableBody, {
176
+ ref: bodyRef,
177
+ role: "rowgroup",
178
+ $virtualHeight: showRows ? virtualTotalSize + trailingLoadingHeight : void 0,
179
+ children: [
180
+ showLoading && renderLoadingRows(),
181
+ showError && /* @__PURE__ */ jsx(TableStatusRow, {
182
+ colSpan: columnCount,
183
+ viewportWidth,
184
+ availableHeight: statusAvailableHeight,
185
+ role: "alert",
186
+ children: typeof contentWhenError === "function" ? contentWhenError(error) : contentWhenError ?? /* @__PURE__ */ jsx(Text, {
187
+ variant: TextVariant.ERROR,
188
+ children: error?.message ?? "Error loading data"
189
+ })
190
+ }),
191
+ showEmpty && /* @__PURE__ */ jsx(TableStatusRow, {
192
+ colSpan: columnCount,
193
+ viewportWidth,
194
+ availableHeight: statusAvailableHeight,
195
+ role: "status",
196
+ children: contentWhenEmpty
197
+ }),
198
+ showRows && virtualRows.map((virtualRow) => {
199
+ const rowData = getRowData(virtualRow.index);
200
+ const rowKey = rowData && getRowId ? getRowId(rowData, virtualRow.index) : String(virtualRow.index);
201
+ return /* @__PURE__ */ jsx(SpreadsheetRow, {
202
+ rowData,
203
+ rowIndex: virtualRow.index,
204
+ translateY: virtualRow.start,
205
+ rowHeight,
206
+ isLastRow: noLastRowBorder && virtualRow.index === totalRowCount - 1,
207
+ density,
208
+ variant,
209
+ columns,
210
+ pinnedOffsets,
211
+ getColumnWidth,
212
+ editingCell,
213
+ onStartEditing: startEditing,
214
+ onCommitEditing: commitEditing,
215
+ onCancelEditing: cancelEditing,
216
+ rowActions,
217
+ rowActionsAriaLabel: getRowActionsAriaLabel?.(virtualRow.index),
218
+ showActionColumn,
219
+ tabIndex: keyboard.getRowTabIndex(virtualRow.index),
220
+ onFocus: enableRowFocus ? () => keyboard.onRowFocus(virtualRow.index) : void 0,
221
+ onKeyDown: enableRowFocus ? (event) => keyboard.onRowKeyDown(virtualRow.index, event) : void 0
222
+ }, rowKey);
223
+ }),
224
+ isFetchingNextPage && showRows && renderTrailingLoadingRows(virtualTotalSize)
225
+ ]
226
+ })]
227
+ }), /* @__PURE__ */ jsx(InfiniteScrollSentinel, {
228
+ ref: sentinelRef,
229
+ "aria-hidden": "true"
230
+ })]
231
+ })
232
+ });
233
+ }
234
+ //#endregion
235
+ export { CellEnrichmentStatus, ColumnAlign, ColumnPin, ColumnResizeMode, SpreadsheetCellType, TableDensity, TableVariant, InfiniteSpreadsheet as default };
@@ -1,90 +1,9 @@
1
- import React, { type ReactNode } from "react";
2
- import { type OnChangeFn as TanstackOnChangeFn, type Row as TanstackRow, type RowSelectionState as TanstackRowSelectionState, type SortingState as TanstackSortingState, type Table as TanstackTable } from "@tanstack/react-table";
3
- export declare enum TableVariant {
4
- BASE = "BASE",
5
- PRIMARY = "PRIMARY",
6
- SECONDARY = "SECONDARY",
7
- TERTIARY = "TERTIARY"
8
- }
9
- export declare enum TableDensity {
10
- SMALL = "SMALL",
11
- MEDIUM = "MEDIUM",
12
- LARGE = "LARGE"
13
- }
14
- export declare enum ColumnPin {
15
- LEFT = "LEFT",
16
- RIGHT = "RIGHT"
17
- }
18
- export declare enum ColumnAlign {
19
- LEFT = "LEFT",
20
- CENTER = "CENTER",
21
- RIGHT = "RIGHT"
22
- }
23
- export interface ColumnDef<TData, TValue = unknown> {
24
- id: string;
25
- accessorFn?: (row: TData) => TValue;
26
- header?: string | ((props: {
27
- table: TanstackTable<TData>;
28
- }) => ReactNode);
29
- cell?: (props: {
30
- value: TValue;
31
- row: TanstackRow<TData>;
32
- }) => ReactNode;
33
- size?: number;
34
- minSize?: number;
35
- maxSize?: number;
36
- pin?: ColumnPin;
37
- enableSorting?: boolean;
38
- sortDescFirst?: boolean;
39
- align?: ColumnAlign;
40
- cellLoading?: () => ReactNode;
41
- }
42
- export interface EstimateColumnWidthOptions {
43
- minWidth?: number;
44
- maxWidth?: number;
45
- charWidth?: number;
46
- padding?: number;
47
- }
48
- /**
49
- * Estimate column width based on header name and sample data values.
50
- * Useful for auto-sizing table columns based on content.
51
- */
52
- export declare const estimateColumnWidth: (columnName: string, sampleValues: string[], options?: EstimateColumnWidthOptions) => number;
53
- export interface InfiniteTableProps<TData> {
54
- columns: ColumnDef<TData, unknown>[];
55
- data: TData[];
56
- getRowId?: (row: TData, index: number) => string;
57
- height?: number | string;
58
- width?: number | string;
59
- fillWidth?: boolean;
60
- fillHeight?: boolean;
61
- density?: TableDensity;
62
- variant?: TableVariant;
63
- hasNextPage?: boolean;
64
- isFetchingNextPage?: boolean;
65
- fetchNextPage?: () => void;
66
- enableRowSelection?: boolean | ((row: TanstackRow<TData>) => boolean);
67
- enableMultiRowSelection?: boolean;
68
- rowSelection?: TanstackRowSelectionState;
69
- onRowSelectionChange?: TanstackOnChangeFn<TanstackRowSelectionState>;
70
- enableSorting?: boolean;
71
- enableMultiSort?: boolean;
72
- sorting?: TanstackSortingState;
73
- onSortingChange?: TanstackOnChangeFn<TanstackSortingState>;
74
- manualSorting?: boolean;
75
- isLoading?: boolean;
76
- isError?: boolean;
77
- loadingRowCount?: number;
78
- contentWhenEmpty?: ReactNode;
79
- contentWhenError?: ReactNode | ((error?: Error) => ReactNode);
80
- noHeader?: boolean;
81
- noLastRowBorder?: boolean;
82
- noLastRowPadding?: boolean;
83
- onRowClick?: (row: TanstackRow<TData>, event: React.MouseEvent) => void;
84
- onRowDoubleClick?: (row: TanstackRow<TData>, event: React.MouseEvent) => void;
85
- onRowExpand?: (row: TanstackRow<TData>) => ReactNode;
86
- onTableReady?: (table: TanstackTable<TData>) => void;
87
- }
1
+ import React from "react";
2
+ import { type Table as TanstackTable } from "@tanstack/react-table";
3
+ import { type InfiniteTableProps } from "./types";
4
+ export { ColumnAlign, ColumnPin, ColumnResizeMode, TableDensity, TableVariant } from "./types";
5
+ export type { ColumnDef, ColumnSizingState, EstimateColumnWidthOptions, InfiniteTableProps, Row, } from "./types";
6
+ export { estimateColumnWidth } from "./utils";
88
7
  declare function InfiniteTable<TData>(props: InfiniteTableProps<TData>): React.JSX.Element;
89
8
  export default InfiniteTable;
90
- export type { TanstackRow as Row };
9
+ export type { TanstackTable as Table };