@simple-table/react 3.0.0-beta.9 → 3.0.2

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 (359) hide show
  1. package/README.md +36 -0
  2. package/dist/cjs/index.js +1 -1
  3. package/dist/index.es.js +1 -1
  4. package/dist/styles.css +1 -0
  5. package/dist/{cjs → types}/core/src/core/SimpleTableVanilla.d.ts +2 -0
  6. package/dist/{core → types/core}/src/core/initialization/TableInitializer.d.ts +4 -1
  7. package/dist/{cjs → types}/core/src/core/rendering/RenderOrchestrator.d.ts +7 -0
  8. package/dist/{cjs → types}/core/src/core/rendering/TableRenderer.d.ts +1 -0
  9. package/dist/{core → types/core}/src/index.d.ts +3 -2
  10. package/dist/{core → types/core}/src/managers/DimensionManager.d.ts +3 -0
  11. package/dist/{core → types/core}/src/managers/SelectionManager/SelectionManager.d.ts +7 -0
  12. package/dist/{cjs → types}/core/src/managers/SelectionManager/mouseUtils.d.ts +2 -1
  13. package/dist/{core → types/core}/src/managers/SelectionManager/types.d.ts +6 -0
  14. package/dist/{cjs → types}/core/src/types/ColumnEditorConfig.d.ts +5 -2
  15. package/dist/types/core/src/types/ColumnEditorCustomRendererProps.d.ts +14 -0
  16. package/dist/{core → types/core}/src/types/CustomTheme.d.ts +2 -0
  17. package/dist/{cjs → types}/core/src/types/HeaderObject.d.ts +1 -1
  18. package/dist/{cjs → types}/core/src/types/SimpleTableConfig.d.ts +0 -2
  19. package/dist/{cjs → types}/core/src/types/SimpleTableProps.d.ts +0 -13
  20. package/dist/types/core/src/utils/asRows.d.ts +7 -0
  21. package/dist/types/core/src/utils/bodyCell/expansion.d.ts +12 -0
  22. package/dist/{cjs → types}/core/src/utils/columnEditor/createColumnEditor.d.ts +0 -1
  23. package/dist/{cjs → types}/core/src/utils/columnEditor/createColumnEditorPopout.d.ts +0 -1
  24. package/dist/{cjs → types}/core/src/utils/columnEditor/createColumnEditorRow.d.ts +8 -1
  25. package/dist/types/core/src/utils/filters/createDropdown.d.ts +33 -0
  26. package/dist/{cjs → types}/core/src/utils/filters/createFilterActions.d.ts +1 -0
  27. package/dist/{core → types/core}/src/utils/headerCell/collapsing.d.ts +1 -1
  28. package/dist/{core → types/core}/src/utils/headerCell/eventTracking.d.ts +3 -0
  29. package/dist/{core → types/core}/src/utils/headerCell/resizing.d.ts +1 -1
  30. package/dist/{cjs → types}/core/src/utils/headerCell/styling.d.ts +3 -3
  31. package/dist/{cjs → types}/core/src/utils/headerCell/types.d.ts +2 -0
  32. package/dist/{core → types/core}/src/utils/headerWidthUtils.d.ts +4 -2
  33. package/dist/{core → types/core}/src/utils/horizontalScrollbarRenderer.d.ts +5 -0
  34. package/dist/{cjs → types}/core/src/utils/pinnedColumnUtils.d.ts +5 -1
  35. package/dist/types/core/src/utils/resizeUtils/index.d.ts +22 -0
  36. package/dist/{core → types/core}/src/utils/rowSeparatorRenderer.d.ts +4 -0
  37. package/dist/types/react/src/defaultHeadersFromCore.d.ts +12 -0
  38. package/dist/types/react/src/index.d.ts +5 -0
  39. package/dist/types/react/src/types.d.ts +90 -0
  40. package/dist/types/react/src/utils/ImperativeDomSlot.d.ts +24 -0
  41. package/dist/types/react/src/utils/wrapReactRenderer.d.ts +41 -0
  42. package/package.json +10 -7
  43. package/dist/cjs/core/src/core/initialization/TableInitializer.d.ts +0 -30
  44. package/dist/cjs/core/src/index.d.ts +0 -48
  45. package/dist/cjs/core/src/managers/DimensionManager.d.ts +0 -42
  46. package/dist/cjs/core/src/managers/SelectionManager/SelectionManager.d.ts +0 -246
  47. package/dist/cjs/core/src/managers/SelectionManager/types.d.ts +0 -22
  48. package/dist/cjs/core/src/types/CustomTheme.d.ts +0 -26
  49. package/dist/cjs/core/src/types/TableRefType.d.ts +0 -78
  50. package/dist/cjs/core/src/utils/bodyCell/expansion.d.ts +0 -4
  51. package/dist/cjs/core/src/utils/deprecatedPropsWarnings.d.ts +0 -10
  52. package/dist/cjs/core/src/utils/filters/createDropdown.d.ts +0 -16
  53. package/dist/cjs/core/src/utils/headerCell/collapsing.d.ts +0 -6
  54. package/dist/cjs/core/src/utils/headerCell/eventTracking.d.ts +0 -25
  55. package/dist/cjs/core/src/utils/headerCell/resizing.d.ts +0 -3
  56. package/dist/cjs/core/src/utils/headerWidthUtils.d.ts +0 -56
  57. package/dist/cjs/core/src/utils/horizontalScrollbarRenderer.d.ts +0 -14
  58. package/dist/cjs/core/src/utils/resizeUtils/index.d.ts +0 -5
  59. package/dist/cjs/core/src/utils/rowSeparatorRenderer.d.ts +0 -12
  60. package/dist/cjs/react/src/index.d.ts +0 -3
  61. package/dist/cjs/react/src/types.d.ts +0 -51
  62. package/dist/cjs/react/src/utils/wrapReactRenderer.d.ts +0 -24
  63. package/dist/core/src/consts/column-constraints.d.ts +0 -58
  64. package/dist/core/src/consts/general-consts.d.ts +0 -13
  65. package/dist/core/src/core/SimpleTableVanilla.d.ts +0 -71
  66. package/dist/core/src/core/api/TableAPIImpl.d.ts +0 -44
  67. package/dist/core/src/core/dom/DOMManager.d.ts +0 -50
  68. package/dist/core/src/core/rendering/RenderOrchestrator.d.ts +0 -123
  69. package/dist/core/src/core/rendering/SectionRenderer.d.ts +0 -61
  70. package/dist/core/src/core/rendering/TableRenderer.d.ts +0 -89
  71. package/dist/core/src/hooks/ariaAnnouncements.d.ts +0 -37
  72. package/dist/core/src/hooks/contentHeight.d.ts +0 -23
  73. package/dist/core/src/hooks/expandedDepths.d.ts +0 -65
  74. package/dist/core/src/hooks/handleOutsideClick.d.ts +0 -50
  75. package/dist/core/src/hooks/previousValue.d.ts +0 -30
  76. package/dist/core/src/hooks/scrollbarVisibility.d.ts +0 -65
  77. package/dist/core/src/hooks/scrollbarWidth.d.ts +0 -52
  78. package/dist/core/src/hooks/useAggregatedRows.d.ts +0 -14
  79. package/dist/core/src/hooks/useQuickFilter.d.ts +0 -14
  80. package/dist/core/src/hooks/windowResize.d.ts +0 -31
  81. package/dist/core/src/icons/AngleDownIcon.d.ts +0 -1
  82. package/dist/core/src/icons/AngleLeftIcon.d.ts +0 -1
  83. package/dist/core/src/icons/AngleRightIcon.d.ts +0 -1
  84. package/dist/core/src/icons/AngleUpIcon.d.ts +0 -1
  85. package/dist/core/src/icons/AscIcon.d.ts +0 -1
  86. package/dist/core/src/icons/CheckIcon.d.ts +0 -1
  87. package/dist/core/src/icons/DescIcon.d.ts +0 -1
  88. package/dist/core/src/icons/DragIcon.d.ts +0 -1
  89. package/dist/core/src/icons/FilterIcon.d.ts +0 -1
  90. package/dist/core/src/icons/SelectIcon.d.ts +0 -1
  91. package/dist/core/src/icons/index.d.ts +0 -14
  92. package/dist/core/src/managers/AutoScaleManager.d.ts +0 -26
  93. package/dist/core/src/managers/DragHandlerManager.d.ts +0 -44
  94. package/dist/core/src/managers/FilterManager.d.ts +0 -36
  95. package/dist/core/src/managers/RowManager.d.ts +0 -56
  96. package/dist/core/src/managers/RowSelectionManager.d.ts +0 -36
  97. package/dist/core/src/managers/ScrollManager.d.ts +0 -35
  98. package/dist/core/src/managers/SectionScrollController.d.ts +0 -50
  99. package/dist/core/src/managers/SelectionManager/index.d.ts +0 -2
  100. package/dist/core/src/managers/SelectionManager/keyboardUtils.d.ts +0 -7
  101. package/dist/core/src/managers/SelectionManager/mouseUtils.d.ts +0 -15
  102. package/dist/core/src/managers/SelectionManager/selectionRangeUtils.d.ts +0 -7
  103. package/dist/core/src/managers/SortManager.d.ts +0 -42
  104. package/dist/core/src/types/AggregationTypes.d.ts +0 -8
  105. package/dist/core/src/types/BoundingBox.d.ts +0 -11
  106. package/dist/core/src/types/Cell.d.ts +0 -7
  107. package/dist/core/src/types/CellChangeProps.d.ts +0 -9
  108. package/dist/core/src/types/CellClickProps.d.ts +0 -11
  109. package/dist/core/src/types/CellRendererProps.d.ts +0 -32
  110. package/dist/core/src/types/CellValue.d.ts +0 -2
  111. package/dist/core/src/types/ColumnEditorConfig.d.ts +0 -32
  112. package/dist/core/src/types/ColumnEditorRowRendererProps.d.ts +0 -39
  113. package/dist/core/src/types/ColumnVisibilityTypes.d.ts +0 -4
  114. package/dist/core/src/types/DragHandlerProps.d.ts +0 -14
  115. package/dist/core/src/types/EnumOption.d.ts +0 -5
  116. package/dist/core/src/types/FilterTypes.d.ts +0 -22
  117. package/dist/core/src/types/FlattenedHeader.d.ts +0 -10
  118. package/dist/core/src/types/FooterRendererProps.d.ts +0 -17
  119. package/dist/core/src/types/GenerateRowIdParams.d.ts +0 -11
  120. package/dist/core/src/types/GetRowId.d.ts +0 -10
  121. package/dist/core/src/types/HandleResizeStartProps.d.ts +0 -21
  122. package/dist/core/src/types/HeaderDropdownProps.d.ts +0 -14
  123. package/dist/core/src/types/HeaderObject.d.ts +0 -98
  124. package/dist/core/src/types/HeaderRendererProps.d.ts +0 -17
  125. package/dist/core/src/types/IconsConfig.d.ts +0 -19
  126. package/dist/core/src/types/OnNextPage.d.ts +0 -2
  127. package/dist/core/src/types/OnRowGroupExpandProps.d.ts +0 -16
  128. package/dist/core/src/types/OnSortProps.d.ts +0 -3
  129. package/dist/core/src/types/PanelSection.d.ts +0 -1
  130. package/dist/core/src/types/Pinned.d.ts +0 -1
  131. package/dist/core/src/types/PinnedSectionsState.d.ts +0 -6
  132. package/dist/core/src/types/QuickFilterTypes.d.ts +0 -21
  133. package/dist/core/src/types/Row.d.ts +0 -3
  134. package/dist/core/src/types/RowButton.d.ts +0 -6
  135. package/dist/core/src/types/RowId.d.ts +0 -1
  136. package/dist/core/src/types/RowSelectionChangeProps.d.ts +0 -7
  137. package/dist/core/src/types/RowState.d.ts +0 -12
  138. package/dist/core/src/types/RowStateRendererProps.d.ts +0 -18
  139. package/dist/core/src/types/SharedTableProps.d.ts +0 -24
  140. package/dist/core/src/types/SimpleTableConfig.d.ts +0 -88
  141. package/dist/core/src/types/SimpleTableProps.d.ts +0 -99
  142. package/dist/core/src/types/SortColumn.d.ts +0 -8
  143. package/dist/core/src/types/TableAPI.d.ts +0 -57
  144. package/dist/core/src/types/TableHeaderProps.d.ts +0 -17
  145. package/dist/core/src/types/TableRefType.d.ts +0 -78
  146. package/dist/core/src/types/TableRow.d.ts +0 -29
  147. package/dist/core/src/types/TableRowProps.d.ts +0 -29
  148. package/dist/core/src/types/Theme.d.ts +0 -2
  149. package/dist/core/src/types/UpdateCellProps.d.ts +0 -8
  150. package/dist/core/src/utils/bodyCell/content.d.ts +0 -5
  151. package/dist/core/src/utils/bodyCell/editing.d.ts +0 -4
  152. package/dist/core/src/utils/bodyCell/editors/booleanDropdown.d.ts +0 -2
  153. package/dist/core/src/utils/bodyCell/editors/datePicker.d.ts +0 -2
  154. package/dist/core/src/utils/bodyCell/editors/dropdown.d.ts +0 -18
  155. package/dist/core/src/utils/bodyCell/editors/enumDropdown.d.ts +0 -2
  156. package/dist/core/src/utils/bodyCell/eventTracking.d.ts +0 -3
  157. package/dist/core/src/utils/bodyCell/expansion.d.ts +0 -4
  158. package/dist/core/src/utils/bodyCell/selection.d.ts +0 -7
  159. package/dist/core/src/utils/bodyCell/styling.d.ts +0 -5
  160. package/dist/core/src/utils/bodyCell/types.d.ts +0 -103
  161. package/dist/core/src/utils/bodyCellRenderer.d.ts +0 -5
  162. package/dist/core/src/utils/cellClipboardUtils.d.ts +0 -25
  163. package/dist/core/src/utils/cellScrollUtils.d.ts +0 -10
  164. package/dist/core/src/utils/cellUtils.d.ts +0 -18
  165. package/dist/core/src/utils/charts/createBarChart.d.ts +0 -15
  166. package/dist/core/src/utils/charts/createLineAreaChart.d.ts +0 -17
  167. package/dist/core/src/utils/collapseUtils.d.ts +0 -24
  168. package/dist/core/src/utils/columnEditor/columnEditorUtils.d.ts +0 -14
  169. package/dist/core/src/utils/columnEditor/createCheckbox.d.ts +0 -21
  170. package/dist/core/src/utils/columnEditor/createColumnEditor.d.ts +0 -25
  171. package/dist/core/src/utils/columnEditor/createColumnEditorPopout.d.ts +0 -22
  172. package/dist/core/src/utils/columnEditor/createColumnEditorRow.d.ts +0 -31
  173. package/dist/core/src/utils/csvExportUtils.d.ts +0 -14
  174. package/dist/core/src/utils/dateUtils.d.ts +0 -18
  175. package/dist/core/src/utils/deprecatedPropsWarnings.d.ts +0 -10
  176. package/dist/core/src/utils/filterUtils.d.ts +0 -5
  177. package/dist/core/src/utils/filters/createBooleanFilter.d.ts +0 -15
  178. package/dist/core/src/utils/filters/createCustomSelect.d.ts +0 -20
  179. package/dist/core/src/utils/filters/createDateFilter.d.ts +0 -15
  180. package/dist/core/src/utils/filters/createDatePicker.d.ts +0 -10
  181. package/dist/core/src/utils/filters/createDropdown.d.ts +0 -16
  182. package/dist/core/src/utils/filters/createEnumFilter.d.ts +0 -15
  183. package/dist/core/src/utils/filters/createFilterActions.d.ts +0 -11
  184. package/dist/core/src/utils/filters/createFilterDropdown.d.ts +0 -15
  185. package/dist/core/src/utils/filters/createFilterInput.d.ts +0 -16
  186. package/dist/core/src/utils/filters/createNumberFilter.d.ts +0 -15
  187. package/dist/core/src/utils/filters/createStringFilter.d.ts +0 -15
  188. package/dist/core/src/utils/footer/createTableFooter.d.ts +0 -21
  189. package/dist/core/src/utils/formatters.d.ts +0 -3
  190. package/dist/core/src/utils/generalUtils.d.ts +0 -4
  191. package/dist/core/src/utils/headerCell/dragging.d.ts +0 -5
  192. package/dist/core/src/utils/headerCell/editing.d.ts +0 -4
  193. package/dist/core/src/utils/headerCell/filtering.d.ts +0 -3
  194. package/dist/core/src/utils/headerCell/selection.d.ts +0 -10
  195. package/dist/core/src/utils/headerCell/sorting.d.ts +0 -3
  196. package/dist/core/src/utils/headerCell/styling.d.ts +0 -5
  197. package/dist/core/src/utils/headerCell/types.d.ts +0 -75
  198. package/dist/core/src/utils/headerCellRenderer.d.ts +0 -4
  199. package/dist/core/src/utils/headerUtils.d.ts +0 -41
  200. package/dist/core/src/utils/infiniteScrollUtils.d.ts +0 -145
  201. package/dist/core/src/utils/nestedGridRowRenderer.d.ts +0 -34
  202. package/dist/core/src/utils/pinnedColumnUtils.d.ts +0 -25
  203. package/dist/core/src/utils/quickFilterUtils.d.ts +0 -14
  204. package/dist/core/src/utils/resizeUtils/autoExpandResize.d.ts +0 -21
  205. package/dist/core/src/utils/resizeUtils/compensation.d.ts +0 -11
  206. package/dist/core/src/utils/resizeUtils/domUpdates.d.ts +0 -15
  207. package/dist/core/src/utils/resizeUtils/index.d.ts +0 -5
  208. package/dist/core/src/utils/resizeUtils/maxWidth.d.ts +0 -9
  209. package/dist/core/src/utils/resizeUtils/parentHeaderResize.d.ts +0 -11
  210. package/dist/core/src/utils/resizeUtils/sectionWidths.d.ts +0 -16
  211. package/dist/core/src/utils/rowFlattening.d.ts +0 -30
  212. package/dist/core/src/utils/rowProcessing.d.ts +0 -36
  213. package/dist/core/src/utils/rowSelectionUtils.d.ts +0 -39
  214. package/dist/core/src/utils/rowUtils.d.ts +0 -136
  215. package/dist/core/src/utils/sortUtils.d.ts +0 -8
  216. package/dist/core/src/utils/stateRowRenderer.d.ts +0 -15
  217. package/dist/core/src/utils/stickyParentsRenderer.d.ts +0 -30
  218. package/dist/react/src/SimpleTable.d.ts +0 -27
  219. package/dist/react/src/buildVanillaConfig.d.ts +0 -3
  220. package/dist/react/src/index.d.ts +0 -3
  221. package/dist/react/src/types.d.ts +0 -51
  222. package/dist/react/src/utils/wrapReactRenderer.d.ts +0 -24
  223. /package/dist/{cjs → types}/core/src/consts/column-constraints.d.ts +0 -0
  224. /package/dist/{cjs → types}/core/src/consts/general-consts.d.ts +0 -0
  225. /package/dist/{cjs → types}/core/src/core/api/TableAPIImpl.d.ts +0 -0
  226. /package/dist/{cjs → types}/core/src/core/dom/DOMManager.d.ts +0 -0
  227. /package/dist/{cjs → types}/core/src/core/rendering/SectionRenderer.d.ts +0 -0
  228. /package/dist/{cjs → types}/core/src/hooks/ariaAnnouncements.d.ts +0 -0
  229. /package/dist/{cjs → types}/core/src/hooks/contentHeight.d.ts +0 -0
  230. /package/dist/{cjs → types}/core/src/hooks/expandedDepths.d.ts +0 -0
  231. /package/dist/{cjs → types}/core/src/hooks/handleOutsideClick.d.ts +0 -0
  232. /package/dist/{cjs → types}/core/src/hooks/previousValue.d.ts +0 -0
  233. /package/dist/{cjs → types}/core/src/hooks/scrollbarVisibility.d.ts +0 -0
  234. /package/dist/{cjs → types}/core/src/hooks/scrollbarWidth.d.ts +0 -0
  235. /package/dist/{cjs → types}/core/src/hooks/useAggregatedRows.d.ts +0 -0
  236. /package/dist/{cjs → types}/core/src/hooks/useQuickFilter.d.ts +0 -0
  237. /package/dist/{cjs → types}/core/src/hooks/windowResize.d.ts +0 -0
  238. /package/dist/{cjs → types}/core/src/icons/AngleDownIcon.d.ts +0 -0
  239. /package/dist/{cjs → types}/core/src/icons/AngleLeftIcon.d.ts +0 -0
  240. /package/dist/{cjs → types}/core/src/icons/AngleRightIcon.d.ts +0 -0
  241. /package/dist/{cjs → types}/core/src/icons/AngleUpIcon.d.ts +0 -0
  242. /package/dist/{cjs → types}/core/src/icons/AscIcon.d.ts +0 -0
  243. /package/dist/{cjs → types}/core/src/icons/CheckIcon.d.ts +0 -0
  244. /package/dist/{cjs → types}/core/src/icons/DescIcon.d.ts +0 -0
  245. /package/dist/{cjs → types}/core/src/icons/DragIcon.d.ts +0 -0
  246. /package/dist/{cjs → types}/core/src/icons/FilterIcon.d.ts +0 -0
  247. /package/dist/{cjs → types}/core/src/icons/SelectIcon.d.ts +0 -0
  248. /package/dist/{cjs → types}/core/src/icons/index.d.ts +0 -0
  249. /package/dist/{cjs → types}/core/src/managers/AutoScaleManager.d.ts +0 -0
  250. /package/dist/{cjs → types}/core/src/managers/DragHandlerManager.d.ts +0 -0
  251. /package/dist/{cjs → types}/core/src/managers/FilterManager.d.ts +0 -0
  252. /package/dist/{cjs → types}/core/src/managers/RowManager.d.ts +0 -0
  253. /package/dist/{cjs → types}/core/src/managers/RowSelectionManager.d.ts +0 -0
  254. /package/dist/{cjs → types}/core/src/managers/ScrollManager.d.ts +0 -0
  255. /package/dist/{cjs → types}/core/src/managers/SectionScrollController.d.ts +0 -0
  256. /package/dist/{cjs → types}/core/src/managers/SelectionManager/index.d.ts +0 -0
  257. /package/dist/{cjs → types}/core/src/managers/SelectionManager/keyboardUtils.d.ts +0 -0
  258. /package/dist/{cjs → types}/core/src/managers/SelectionManager/selectionRangeUtils.d.ts +0 -0
  259. /package/dist/{cjs → types}/core/src/managers/SortManager.d.ts +0 -0
  260. /package/dist/{cjs → types}/core/src/types/AggregationTypes.d.ts +0 -0
  261. /package/dist/{cjs → types}/core/src/types/BoundingBox.d.ts +0 -0
  262. /package/dist/{cjs → types}/core/src/types/Cell.d.ts +0 -0
  263. /package/dist/{cjs → types}/core/src/types/CellChangeProps.d.ts +0 -0
  264. /package/dist/{cjs → types}/core/src/types/CellClickProps.d.ts +0 -0
  265. /package/dist/{cjs → types}/core/src/types/CellRendererProps.d.ts +0 -0
  266. /package/dist/{cjs → types}/core/src/types/CellValue.d.ts +0 -0
  267. /package/dist/{cjs → types}/core/src/types/ColumnEditorRowRendererProps.d.ts +0 -0
  268. /package/dist/{cjs → types}/core/src/types/ColumnVisibilityTypes.d.ts +0 -0
  269. /package/dist/{cjs → types}/core/src/types/DragHandlerProps.d.ts +0 -0
  270. /package/dist/{cjs → types}/core/src/types/EnumOption.d.ts +0 -0
  271. /package/dist/{cjs → types}/core/src/types/FilterTypes.d.ts +0 -0
  272. /package/dist/{cjs → types}/core/src/types/FlattenedHeader.d.ts +0 -0
  273. /package/dist/{cjs → types}/core/src/types/FooterRendererProps.d.ts +0 -0
  274. /package/dist/{cjs → types}/core/src/types/GenerateRowIdParams.d.ts +0 -0
  275. /package/dist/{cjs → types}/core/src/types/GetRowId.d.ts +0 -0
  276. /package/dist/{cjs → types}/core/src/types/HandleResizeStartProps.d.ts +0 -0
  277. /package/dist/{cjs → types}/core/src/types/HeaderDropdownProps.d.ts +0 -0
  278. /package/dist/{cjs → types}/core/src/types/HeaderRendererProps.d.ts +0 -0
  279. /package/dist/{cjs → types}/core/src/types/IconsConfig.d.ts +0 -0
  280. /package/dist/{cjs → types}/core/src/types/OnNextPage.d.ts +0 -0
  281. /package/dist/{cjs → types}/core/src/types/OnRowGroupExpandProps.d.ts +0 -0
  282. /package/dist/{cjs → types}/core/src/types/OnSortProps.d.ts +0 -0
  283. /package/dist/{cjs → types}/core/src/types/PanelSection.d.ts +0 -0
  284. /package/dist/{cjs → types}/core/src/types/Pinned.d.ts +0 -0
  285. /package/dist/{cjs → types}/core/src/types/PinnedSectionsState.d.ts +0 -0
  286. /package/dist/{cjs → types}/core/src/types/QuickFilterTypes.d.ts +0 -0
  287. /package/dist/{cjs → types}/core/src/types/Row.d.ts +0 -0
  288. /package/dist/{cjs → types}/core/src/types/RowButton.d.ts +0 -0
  289. /package/dist/{cjs → types}/core/src/types/RowId.d.ts +0 -0
  290. /package/dist/{cjs → types}/core/src/types/RowSelectionChangeProps.d.ts +0 -0
  291. /package/dist/{cjs → types}/core/src/types/RowState.d.ts +0 -0
  292. /package/dist/{cjs → types}/core/src/types/RowStateRendererProps.d.ts +0 -0
  293. /package/dist/{cjs → types}/core/src/types/SharedTableProps.d.ts +0 -0
  294. /package/dist/{cjs → types}/core/src/types/SortColumn.d.ts +0 -0
  295. /package/dist/{cjs → types}/core/src/types/TableAPI.d.ts +0 -0
  296. /package/dist/{cjs → types}/core/src/types/TableHeaderProps.d.ts +0 -0
  297. /package/dist/{cjs → types}/core/src/types/TableRow.d.ts +0 -0
  298. /package/dist/{cjs → types}/core/src/types/TableRowProps.d.ts +0 -0
  299. /package/dist/{cjs → types}/core/src/types/Theme.d.ts +0 -0
  300. /package/dist/{cjs → types}/core/src/types/UpdateCellProps.d.ts +0 -0
  301. /package/dist/{cjs → types}/core/src/utils/bodyCell/content.d.ts +0 -0
  302. /package/dist/{cjs → types}/core/src/utils/bodyCell/editing.d.ts +0 -0
  303. /package/dist/{cjs → types}/core/src/utils/bodyCell/editors/booleanDropdown.d.ts +0 -0
  304. /package/dist/{cjs → types}/core/src/utils/bodyCell/editors/datePicker.d.ts +0 -0
  305. /package/dist/{cjs → types}/core/src/utils/bodyCell/editors/dropdown.d.ts +0 -0
  306. /package/dist/{cjs → types}/core/src/utils/bodyCell/editors/enumDropdown.d.ts +0 -0
  307. /package/dist/{cjs → types}/core/src/utils/bodyCell/eventTracking.d.ts +0 -0
  308. /package/dist/{cjs → types}/core/src/utils/bodyCell/selection.d.ts +0 -0
  309. /package/dist/{cjs → types}/core/src/utils/bodyCell/styling.d.ts +0 -0
  310. /package/dist/{cjs → types}/core/src/utils/bodyCell/types.d.ts +0 -0
  311. /package/dist/{cjs → types}/core/src/utils/bodyCellRenderer.d.ts +0 -0
  312. /package/dist/{cjs → types}/core/src/utils/cellClipboardUtils.d.ts +0 -0
  313. /package/dist/{cjs → types}/core/src/utils/cellScrollUtils.d.ts +0 -0
  314. /package/dist/{cjs → types}/core/src/utils/cellUtils.d.ts +0 -0
  315. /package/dist/{cjs → types}/core/src/utils/charts/createBarChart.d.ts +0 -0
  316. /package/dist/{cjs → types}/core/src/utils/charts/createLineAreaChart.d.ts +0 -0
  317. /package/dist/{cjs → types}/core/src/utils/collapseUtils.d.ts +0 -0
  318. /package/dist/{cjs → types}/core/src/utils/columnEditor/columnEditorUtils.d.ts +0 -0
  319. /package/dist/{cjs → types}/core/src/utils/columnEditor/createCheckbox.d.ts +0 -0
  320. /package/dist/{cjs → types}/core/src/utils/csvExportUtils.d.ts +0 -0
  321. /package/dist/{cjs → types}/core/src/utils/dateUtils.d.ts +0 -0
  322. /package/dist/{cjs → types}/core/src/utils/filterUtils.d.ts +0 -0
  323. /package/dist/{cjs → types}/core/src/utils/filters/createBooleanFilter.d.ts +0 -0
  324. /package/dist/{cjs → types}/core/src/utils/filters/createCustomSelect.d.ts +0 -0
  325. /package/dist/{cjs → types}/core/src/utils/filters/createDateFilter.d.ts +0 -0
  326. /package/dist/{cjs → types}/core/src/utils/filters/createDatePicker.d.ts +0 -0
  327. /package/dist/{cjs → types}/core/src/utils/filters/createEnumFilter.d.ts +0 -0
  328. /package/dist/{cjs → types}/core/src/utils/filters/createFilterDropdown.d.ts +0 -0
  329. /package/dist/{cjs → types}/core/src/utils/filters/createFilterInput.d.ts +0 -0
  330. /package/dist/{cjs → types}/core/src/utils/filters/createNumberFilter.d.ts +0 -0
  331. /package/dist/{cjs → types}/core/src/utils/filters/createStringFilter.d.ts +0 -0
  332. /package/dist/{cjs → types}/core/src/utils/footer/createTableFooter.d.ts +0 -0
  333. /package/dist/{cjs → types}/core/src/utils/formatters.d.ts +0 -0
  334. /package/dist/{cjs → types}/core/src/utils/generalUtils.d.ts +0 -0
  335. /package/dist/{cjs → types}/core/src/utils/headerCell/dragging.d.ts +0 -0
  336. /package/dist/{cjs → types}/core/src/utils/headerCell/editing.d.ts +0 -0
  337. /package/dist/{cjs → types}/core/src/utils/headerCell/filtering.d.ts +0 -0
  338. /package/dist/{cjs → types}/core/src/utils/headerCell/selection.d.ts +0 -0
  339. /package/dist/{cjs → types}/core/src/utils/headerCell/sorting.d.ts +0 -0
  340. /package/dist/{cjs → types}/core/src/utils/headerCellRenderer.d.ts +0 -0
  341. /package/dist/{cjs → types}/core/src/utils/headerUtils.d.ts +0 -0
  342. /package/dist/{cjs → types}/core/src/utils/infiniteScrollUtils.d.ts +0 -0
  343. /package/dist/{cjs → types}/core/src/utils/nestedGridRowRenderer.d.ts +0 -0
  344. /package/dist/{cjs → types}/core/src/utils/quickFilterUtils.d.ts +0 -0
  345. /package/dist/{cjs → types}/core/src/utils/resizeUtils/autoExpandResize.d.ts +0 -0
  346. /package/dist/{cjs → types}/core/src/utils/resizeUtils/compensation.d.ts +0 -0
  347. /package/dist/{cjs → types}/core/src/utils/resizeUtils/domUpdates.d.ts +0 -0
  348. /package/dist/{cjs → types}/core/src/utils/resizeUtils/maxWidth.d.ts +0 -0
  349. /package/dist/{cjs → types}/core/src/utils/resizeUtils/parentHeaderResize.d.ts +0 -0
  350. /package/dist/{cjs → types}/core/src/utils/resizeUtils/sectionWidths.d.ts +0 -0
  351. /package/dist/{cjs → types}/core/src/utils/rowFlattening.d.ts +0 -0
  352. /package/dist/{cjs → types}/core/src/utils/rowProcessing.d.ts +0 -0
  353. /package/dist/{cjs → types}/core/src/utils/rowSelectionUtils.d.ts +0 -0
  354. /package/dist/{cjs → types}/core/src/utils/rowUtils.d.ts +0 -0
  355. /package/dist/{cjs → types}/core/src/utils/sortUtils.d.ts +0 -0
  356. /package/dist/{cjs → types}/core/src/utils/stateRowRenderer.d.ts +0 -0
  357. /package/dist/{cjs → types}/core/src/utils/stickyParentsRenderer.d.ts +0 -0
  358. /package/dist/{cjs → types}/react/src/SimpleTable.d.ts +0 -0
  359. /package/dist/{cjs → types}/react/src/buildVanillaConfig.d.ts +0 -0
package/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # Simple Table for React
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@simple-table/react.svg)](https://www.npmjs.com/package/@simple-table/react)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@simple-table/react.svg)](https://www.npmjs.com/package/@simple-table/react)
5
+ [![License](https://img.shields.io/npm/l/@simple-table/react.svg)](LICENSE)
6
+
7
+ React adapter for [Simple Table](https://www.simple-table.com/) — a lightweight, high-performance data grid with full React component support for all renderers.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npm install @simple-table/react
13
+ ```
14
+
15
+ **Peer dependencies:** `react >=18.0.0`, `react-dom >=18.0.0`
16
+
17
+ ## Features
18
+
19
+ - Use React components for cell renderers, header renderers, footer renderers, and more
20
+ - Access the full imperative `TableAPI` via a ref for sorting, filtering, pagination, export, and more
21
+ - All types exported directly — no need to install `simple-table-core` separately
22
+
23
+ ## Documentation
24
+
25
+ - **Quick Start**: [simple-table.com/docs/quick-start](https://www.simple-table.com/docs/quick-start)
26
+ - **Full Documentation**: [simple-table.com/docs/installation](https://www.simple-table.com/docs/installation)
27
+ - **Examples**: [simple-table.com/examples/crm](https://www.simple-table.com/examples/crm)
28
+
29
+ ## Community & Support
30
+
31
+ - **Discord**: [Join us on Discord](https://discord.gg/RvKHCfg3PC)
32
+ - **GitHub**: [Report bugs or suggest features](https://github.com/petera2c/simple-table/issues)
33
+
34
+ ## License
35
+
36
+ Dual licensed — MIT for individuals & startups, proprietary Pro tier for revenue-generating companies. See [LICENSE](LICENSE) and [EULA.txt](../../EULA.txt) for details.
package/dist/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("simple-table-core"),n=require("react-dom/client"),o=require("react-dom"),c=require("react-dom/server");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&r.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)r.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(t[n[o]]=e[n[o]])}return t}function a(r){return t=>{const c=document.createElement("div"),d=n.createRoot(c);return o.flushSync(()=>{d.render(e.jsx(r,Object.assign({},t)))}),c}}function l(r){const t=document.createElement("div"),c=n.createRoot(t);return o.flushSync(()=>{c.render(e.jsx(e.Fragment,{children:r}))}),t}function u(r){return c.renderToStaticMarkup(e.jsx(e.Fragment,{children:r}))}function s(e){return"function"==typeof e}function f(e){const{cellRenderer:r,headerRenderer:t,children:n,nestedTable:o}=e,c=i(e,["cellRenderer","headerRenderer","children","nestedTable"]),d=Object.assign({},c);if(r&&(d.cellRenderer=a(r)),t&&(d.headerRenderer=a(t)),n&&(d.children=n.map(f)),o){const e=Object.assign(Object.assign({},o),{rows:[]});d.nestedTable=p(e)}return d}function p(e){const{defaultHeaders:r,footerRenderer:t,emptyStateRenderer:n,errorStateRenderer:o,loadingStateRenderer:c,tableEmptyStateRenderer:d,headerDropdown:p,columnEditorConfig:m,icons:R}=e,b=i(e,["defaultHeaders","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons"]),y=Object.assign(Object.assign({},b),{defaultHeaders:r.map(f)});if(void 0!==t&&(y.footerRenderer=a(t)),void 0!==n)if(s(n))y.emptyStateRenderer=a(n);else{const e=n;y.emptyStateRenderer=()=>l(e)}if(void 0!==o)if(s(o))y.errorStateRenderer=a(o);else{const e=o;y.errorStateRenderer=()=>l(e)}if(void 0!==c)if(s(c))y.loadingStateRenderer=a(c);else{const e=c;y.loadingStateRenderer=()=>l(e)}return void 0!==d&&(y.tableEmptyStateRenderer=null===d?null:l(d)),void 0!==p&&(y.headerDropdown=a(p)),void 0!==m&&(y.columnEditorConfig=function(e){const{rowRenderer:r}=e,t=i(e,["rowRenderer"]);return Object.assign(Object.assign({},t),r?{rowRenderer:a(r)}:{})}(m)),void 0!==R&&(y.icons=function(e){const r={};for(const[t,n]of Object.entries(e))null!=n&&(r[t]="string"==typeof n||n instanceof HTMLElement||n instanceof SVGElement?n:u(n));return r}(R)),y}"function"==typeof SuppressedError&&SuppressedError;const m=d(r).default.forwardRef(function(n,o){const c=r.useRef(null),d=r.useRef(null),i=n;return r.useEffect(()=>{if(!c.current)return;const e=new t.SimpleTableVanilla(c.current,p(i));if(e.mount(),d.current=e,o){const r=e.getAPI();"function"==typeof o?o(r):o.current=r}return()=>{e.destroy(),d.current=null,o&&"function"!=typeof o&&(o.current=null)}},[]),r.useEffect(()=>{var e;null===(e=d.current)||void 0===e||e.update(p(i))}),e.jsx("div",{ref:c})});m.displayName="SimpleTable",exports.SimpleTable=m;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("simple-table-core"),n=require("react-dom"),o=require("react-dom/client"),c=require("react-dom/server");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r}function i({node:r}){const n=t.useRef(null);return t.useLayoutEffect(()=>{const e=n.current;if(e)return e.appendChild(r),()=>{r.parentNode===e&&e.removeChild(r)}},[r]),e.jsx("span",{ref:n,style:{display:"contents"}})}function a(t){if(null!=t)return"string"==typeof t?t:t instanceof Node?e.jsx(i,{node:t}):void 0}function d(e,t){queueMicrotask(()=>{n.flushSync(()=>{e.render(t)})})}function l(t){return r=>{const n=document.createElement("div");return d(o.createRoot(n),e.jsx(t,Object.assign({},r))),n}}function f(t){return r=>{const n=document.createElement("div"),c=o.createRoot(n),s=Object.assign(Object.assign({},r),{searchSection:r.searchSection?a(r.searchSection):null,listSection:a(r.listSection),resetSection:r.resetSection?a(r.resetSection):null});return d(c,e.jsx(t,Object.assign({},s))),n}}function p(t){const r=document.createElement("div");return r.innerHTML=c.renderToStaticMarkup(e.jsx(e.Fragment,{children:t})),function(e){const t=Array.from(e.childNodes).filter(e=>e.nodeType!==Node.TEXT_NODE||null!=e.textContent&&""!==e.textContent.trim());return 1===t.length&&t[0]instanceof HTMLElement?(e.removeChild(t[0]),t[0]):e}(r)}function m(t){return c.renderToStaticMarkup(e.jsx(e.Fragment,{children:t}))}function b(e){return"function"==typeof e}function R(t){const{cellRenderer:r,headerRenderer:n,children:c,nestedTable:s}=t,i=u(t,["cellRenderer","headerRenderer","children","nestedTable"]),a=Object.assign({},i);var f;if(r&&(a.cellRenderer=(f=r,t=>{const r=document.createElement("div");return r.style.display="contents",d(o.createRoot(r),e.jsx(f,Object.assign({},t))),r})),n&&(a.headerRenderer=l(n)),c&&(a.children=c.map(R)),s){const e=Object.assign(Object.assign({},s),{rows:[]});a.nestedTable=y(e)}return a}function y(t){const{defaultHeaders:r,rows:n,footerRenderer:c,emptyStateRenderer:s,errorStateRenderer:i,loadingStateRenderer:y,tableEmptyStateRenderer:j,headerDropdown:g,columnEditorConfig:S,icons:O}=t,v=u(t,["defaultHeaders","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons"]),h=Object.assign(Object.assign({},v),{rows:n,defaultHeaders:r.map(R)});if(void 0!==c&&(h.footerRenderer=l(c)),void 0!==s)if(b(s))h.emptyStateRenderer=l(s);else{const e=s;h.emptyStateRenderer=()=>p(e)}if(void 0!==i)if(b(i))h.errorStateRenderer=l(i);else{const e=i;h.errorStateRenderer=()=>p(e)}if(void 0!==y)if(b(y))h.loadingStateRenderer=l(y);else{const e=y;h.loadingStateRenderer=()=>p(e)}return void 0!==j&&(h.tableEmptyStateRenderer=null===j?null:p(j)),void 0!==g&&(h.headerDropdown=l(g)),void 0!==S&&(h.columnEditorConfig=function(t){const{rowRenderer:r,customRenderer:n}=t,c=u(t,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},c),r?{rowRenderer:(s=r,t=>{const r=document.createElement("div"),n=o.createRoot(r),c=Object.assign(Object.assign({},t),{components:(u=t.components,{expandIcon:a(u.expandIcon),checkbox:a(u.checkbox),dragIcon:a(u.dragIcon),labelContent:a(u.labelContent),pinIcon:a(u.pinIcon)})});var u;return d(n,e.jsx(s,Object.assign({},c))),r})}:{}),n?{customRenderer:f(n)}:{});var s}(S)),void 0!==O&&(h.icons=function(e){const t={};for(const[r,n]of Object.entries(e))null!=n&&(t[r]="string"==typeof n||n instanceof HTMLElement||n instanceof SVGElement?n:m(n));return t}(O)),h}"function"==typeof SuppressedError&&SuppressedError;const j=s(t).default.forwardRef(function(n,o){const c=t.useRef(null),s=t.useRef(null),i=t.useRef(void 0),a=t.useRef(null),d=n;return t.useLayoutEffect(()=>{if(!c.current)return;let e=!1;return queueMicrotask(()=>{if(e||!c.current)return;const t=new r.SimpleTableVanilla(c.current,y(d));if(t.mount(),s.current=t,o){const e=t.getAPI();"function"==typeof o?o(e):o.current=e}}),()=>{e=!0;const t=s.current;t&&(t.destroy(),s.current=null,i.current=void 0,a.current=null,o&&"function"!=typeof o&&(o.current=null))}},[]),t.useLayoutEffect(()=>{const e=s.current;if(!e)return;if(null!==a.current&&!function(e,t){const r=new Set([...Object.keys(e),...Object.keys(t)]);for(const n of r)if(e[n]!==t[n])return!0;return!1}(a.current,d))return;a.current=d;const t=y(d);queueMicrotask(()=>{if(s.current!==e)return;if(i.current!==d.defaultHeaders)return i.current=d.defaultHeaders,void e.update(t);const r=u(t,["defaultHeaders"]);e.update(r)})},[d]),e.jsx("div",{ref:c})});j.displayName="SimpleTable",Object.defineProperty(exports,"asRows",{enumerable:!0,get:function(){return r.asRows}}),exports.SimpleTable=j,exports.defaultHeaderFromCore=function(e){return e},exports.defaultHeadersFromCore=function(e){return e},exports.mapToReactHeaderObjects=function(e){return e};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.es.js CHANGED
@@ -1,2 +1,2 @@
1
- import{jsx as e,Fragment as r}from"react/jsx-runtime";import t,{useRef as n,useEffect as o}from"react";import{SimpleTableVanilla as d}from"simple-table-core";import{createRoot as i}from"react-dom/client";import{flushSync as c}from"react-dom";import{renderToStaticMarkup as a}from"react-dom/server";function l(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&r.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)r.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(t[n[o]]=e[n[o]])}return t}function s(r){return t=>{const n=document.createElement("div"),o=i(n);return c(()=>{o.render(e(r,Object.assign({},t)))}),n}}function u(t){const n=document.createElement("div"),o=i(n);return c(()=>{o.render(e(r,{children:t}))}),n}function f(t){return a(e(r,{children:t}))}function p(e){return"function"==typeof e}function m(e){const{cellRenderer:r,headerRenderer:t,children:n,nestedTable:o}=e,d=l(e,["cellRenderer","headerRenderer","children","nestedTable"]),i=Object.assign({},d);if(r&&(i.cellRenderer=s(r)),t&&(i.headerRenderer=s(t)),n&&(i.children=n.map(m)),o){const e=Object.assign(Object.assign({},o),{rows:[]});i.nestedTable=R(e)}return i}function R(e){const{defaultHeaders:r,footerRenderer:t,emptyStateRenderer:n,errorStateRenderer:o,loadingStateRenderer:d,tableEmptyStateRenderer:i,headerDropdown:c,columnEditorConfig:a,icons:R}=e,b=l(e,["defaultHeaders","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons"]),y=Object.assign(Object.assign({},b),{defaultHeaders:r.map(m)});if(void 0!==t&&(y.footerRenderer=s(t)),void 0!==n)if(p(n))y.emptyStateRenderer=s(n);else{const e=n;y.emptyStateRenderer=()=>u(e)}if(void 0!==o)if(p(o))y.errorStateRenderer=s(o);else{const e=o;y.errorStateRenderer=()=>u(e)}if(void 0!==d)if(p(d))y.loadingStateRenderer=s(d);else{const e=d;y.loadingStateRenderer=()=>u(e)}return void 0!==i&&(y.tableEmptyStateRenderer=null===i?null:u(i)),void 0!==c&&(y.headerDropdown=s(c)),void 0!==a&&(y.columnEditorConfig=function(e){const{rowRenderer:r}=e,t=l(e,["rowRenderer"]);return Object.assign(Object.assign({},t),r?{rowRenderer:s(r)}:{})}(a)),void 0!==R&&(y.icons=function(e){const r={};for(const[t,n]of Object.entries(e))null!=n&&(r[t]="string"==typeof n||n instanceof HTMLElement||n instanceof SVGElement?n:f(n));return r}(R)),y}"function"==typeof SuppressedError&&SuppressedError;const b=t.forwardRef(function(r,t){const i=n(null),c=n(null),a=r;return o(()=>{if(!i.current)return;const e=new d(i.current,R(a));if(e.mount(),c.current=e,t){const r=e.getAPI();"function"==typeof t?t(r):t.current=r}return()=>{e.destroy(),c.current=null,t&&"function"!=typeof t&&(t.current=null)}},[]),o(()=>{var e;null===(e=c.current)||void 0===e||e.update(R(a))}),e("div",{ref:i})});b.displayName="SimpleTable";export{b as SimpleTable};
1
+ import{jsx as e,Fragment as r}from"react/jsx-runtime";import n,{useRef as t,useLayoutEffect as o}from"react";import{SimpleTableVanilla as c}from"simple-table-core";export{asRows}from"simple-table-core";import{flushSync as i}from"react-dom";import{createRoot as s}from"react-dom/client";import{renderToStaticMarkup as d}from"react-dom/server";function u(e,r){var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.indexOf(t)<0&&(n[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(t=Object.getOwnPropertySymbols(e);o<t.length;o++)r.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(e,t[o])&&(n[t[o]]=e[t[o]])}return n}function a({node:r}){const n=t(null);return o(()=>{const e=n.current;if(e)return e.appendChild(r),()=>{r.parentNode===e&&e.removeChild(r)}},[r]),e("span",{ref:n,style:{display:"contents"}})}function l(r){if(null!=r)return"string"==typeof r?r:r instanceof Node?e(a,{node:r}):void 0}function f(e,r){queueMicrotask(()=>{i(()=>{e.render(r)})})}function m(r){return n=>{const t=document.createElement("div");return f(s(t),e(r,Object.assign({},n))),t}}function p(r){return n=>{const t=document.createElement("div"),o=s(t),c=Object.assign(Object.assign({},n),{searchSection:n.searchSection?l(n.searchSection):null,listSection:l(n.listSection),resetSection:n.resetSection?l(n.resetSection):null});return f(o,e(r,Object.assign({},c))),t}}function b(n){const t=document.createElement("div");return t.innerHTML=d(e(r,{children:n})),function(e){const r=Array.from(e.childNodes).filter(e=>e.nodeType!==Node.TEXT_NODE||null!=e.textContent&&""!==e.textContent.trim());return 1===r.length&&r[0]instanceof HTMLElement?(e.removeChild(r[0]),r[0]):e}(t)}function g(n){return d(e(r,{children:n}))}function y(e){return"function"==typeof e}function R(r){const{cellRenderer:n,headerRenderer:t,children:o,nestedTable:c}=r,i=u(r,["cellRenderer","headerRenderer","children","nestedTable"]),d=Object.assign({},i);var a;if(n&&(d.cellRenderer=(a=n,r=>{const n=document.createElement("div");return n.style.display="contents",f(s(n),e(a,Object.assign({},r))),n})),t&&(d.headerRenderer=m(t)),o&&(d.children=o.map(R)),c){const e=Object.assign(Object.assign({},c),{rows:[]});d.nestedTable=S(e)}return d}function S(r){const{defaultHeaders:n,rows:t,footerRenderer:o,emptyStateRenderer:c,errorStateRenderer:i,loadingStateRenderer:d,tableEmptyStateRenderer:a,headerDropdown:S,columnEditorConfig:O,icons:v}=r,j=u(r,["defaultHeaders","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons"]),h=Object.assign(Object.assign({},j),{rows:t,defaultHeaders:n.map(R)});if(void 0!==o&&(h.footerRenderer=m(o)),void 0!==c)if(y(c))h.emptyStateRenderer=m(c);else{const e=c;h.emptyStateRenderer=()=>b(e)}if(void 0!==i)if(y(i))h.errorStateRenderer=m(i);else{const e=i;h.errorStateRenderer=()=>b(e)}if(void 0!==d)if(y(d))h.loadingStateRenderer=m(d);else{const e=d;h.loadingStateRenderer=()=>b(e)}return void 0!==a&&(h.tableEmptyStateRenderer=null===a?null:b(a)),void 0!==S&&(h.headerDropdown=m(S)),void 0!==O&&(h.columnEditorConfig=function(r){const{rowRenderer:n,customRenderer:t}=r,o=u(r,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),n?{rowRenderer:(c=n,r=>{const n=document.createElement("div"),t=s(n),o=Object.assign(Object.assign({},r),{components:(i=r.components,{expandIcon:l(i.expandIcon),checkbox:l(i.checkbox),dragIcon:l(i.dragIcon),labelContent:l(i.labelContent),pinIcon:l(i.pinIcon)})});var i;return f(t,e(c,Object.assign({},o))),n})}:{}),t?{customRenderer:p(t)}:{});var c}(O)),void 0!==v&&(h.icons=function(e){const r={};for(const[n,t]of Object.entries(e))null!=t&&(r[n]="string"==typeof t||t instanceof HTMLElement||t instanceof SVGElement?t:g(t));return r}(v)),h}"function"==typeof SuppressedError&&SuppressedError;const O=n.forwardRef(function(r,n){const i=t(null),s=t(null),d=t(void 0),a=t(null),l=r;return o(()=>{if(!i.current)return;let e=!1;return queueMicrotask(()=>{if(e||!i.current)return;const r=new c(i.current,S(l));if(r.mount(),s.current=r,n){const e=r.getAPI();"function"==typeof n?n(e):n.current=e}}),()=>{e=!0;const r=s.current;r&&(r.destroy(),s.current=null,d.current=void 0,a.current=null,n&&"function"!=typeof n&&(n.current=null))}},[]),o(()=>{const e=s.current;if(!e)return;if(null!==a.current&&!function(e,r){const n=new Set([...Object.keys(e),...Object.keys(r)]);for(const t of n)if(e[t]!==r[t])return!0;return!1}(a.current,l))return;a.current=l;const r=S(l);queueMicrotask(()=>{if(s.current!==e)return;if(d.current!==l.defaultHeaders)return d.current=l.defaultHeaders,void e.update(r);const n=u(r,["defaultHeaders"]);e.update(n)})},[l]),e("div",{ref:i})});function v(e){return e}function j(e){return e}function h(e){return e}O.displayName="SimpleTable";export{O as SimpleTable,v as defaultHeaderFromCore,j as defaultHeadersFromCore,h as mapToReactHeaderObjects};
2
2
  //# sourceMappingURL=index.es.js.map
@@ -0,0 +1 @@
1
+ .st-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.simple-table-root{--st-after-width:11.01px;--st-resize-handle-width:2px;--st-resize-handle-container-width:10px;--st-border-width:1px;--st-footer-height:49px;--st-transition-duration:0.2s;--st-transition-ease:ease;--st-opacity-disabled:0.5;--st-white:#fff;--st-black:#000;--st-slate-50:#f8fafc;--st-slate-100:#f1f5f9;--st-slate-200:#e2e8f0;--st-slate-300:#cbd5e1;--st-slate-400:#94a3b8;--st-slate-500:#64748b;--st-slate-600:#475569;--st-slate-800:#1e293b;--st-slate-900:#0f172a;--st-gray-100:#f3f4f6;--st-gray-200:#e5e7eb;--st-gray-300:#d1d5db;--st-gray-400:#9ca3af;--st-gray-500:#6b7280;--st-gray-600:#4b5563;--st-gray-700:#374151;--st-gray-800:#1f2937;--st-gray-900:#111827;--st-neutral-50:#fafafa;--st-neutral-100:#f5f5f5;--st-neutral-200:#e5e5e5;--st-neutral-300:#d4d4d4;--st-neutral-400:#a3a3a3;--st-neutral-500:#737373;--st-neutral-600:#525252;--st-neutral-800:#262626;--st-neutral-900:#171717;--st-stone-100:#f5f5f4;--st-stone-200:#e7e5e4;--st-stone-300:#d6d3d1;--st-stone-400:#a8a29e;--st-stone-500:#78716c;--st-stone-700:#44403c;--st-red-300:#fca5a5;--st-red-400:#f87171;--st-orange-400:#fb923c;--st-amber-50:#fffbeb;--st-amber-100:#fef3c7;--st-amber-200:#fde68a;--st-emerald-400:#34d399;--st-emerald-500:#10b981;--st-emerald-600:#059669;--st-teal-400:#2dd4bf;--st-teal-500:#14b8a6;--st-teal-600:#0d9488;--st-sky-100:#e0f2fe;--st-sky-200:#bae6fd;--st-sky-300:#7dd3fc;--st-sky-400:#38bdf8;--st-blue-50:#eff6ff;--st-blue-100:#dbeafe;--st-blue-200:#bfdbfe;--st-blue-300:#93c5fd;--st-blue-400:#60a5fa;--st-blue-500:#3b82f6;--st-blue-600:#2563eb;--st-blue-800:#1e40af;--st-blue-900:#1e3a8a;--st-blue-950:#172554;--st-violet-50:#f5f3ff;--st-violet-100:#ede9fe;--st-violet-200:#ddd6fe;--st-violet-400:#a78bfa;--st-violet-500:#8b5cf6;--st-violet-600:#7c3aed;--st-violet-800:#5b21b6}.simple-table-root *{scrollbar-thumb-border-radius:var(--st-scrollbar-thumb-border-radius);-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit;scrollbar-color:var(--st-scrollbar-thumb-color) var(--st-scrollbar-bg-color);scrollbar-width:var(--st-scrollbar-width)}input{color:#000}.simple-table-root ::-webkit-scrollbar{height:8px;width:8px}.simple-table-root ::-webkit-scrollbar-track{background:var(--st-scrollbar-bg-color)}.simple-table-root ::-webkit-scrollbar-thumb{background:var(--st-scrollbar-thumb-color);border-radius:4px}.simple-table-root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--st-cell-color)}.st-wrapper{border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);overflow:hidden;position:relative}.st-wrapper-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.st-content-wrapper,.st-wrapper-container{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;width:100%}.st-content-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0}.st-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.st-content,.st-header-container{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.st-header-container,.st-header-container.st-header-scroll-padding:after{-ms-flex-negative:0;background-color:var(--st-header-background-color);flex-shrink:0}.st-header-container.st-header-scroll-padding:after{content:"";display:block;width:default-width;width:var(--st-after-width,default-width)}.st-header-container.st-header-scroll-padding:after,.st-header-main,.st-header-pinned-left,.st-header-pinned-right{border-bottom:var(--st-border-width) solid var(--st-border-color)}.st-header-grid{min-width:100%;position:relative}.st-body-main,.st-body-pinned-left,.st-body-pinned-right,.st-header-main,.st-header-pinned-left,.st-header-pinned-right,.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-middle,.st-horizontal-scrollbar-right{overflow:auto;-ms-touch-action:auto;touch-action:auto}.st-body-main,.st-body-pinned-left,.st-body-pinned-right,.st-header-main,.st-header-pinned-left,.st-header-pinned-right{scrollbar-width:none}.st-body-pinned-left,.st-body-pinned-right,.st-header-pinned-left,.st-header-pinned-right{-ms-flex-negative:0;flex-shrink:0}.st-body-pinned-left,.st-header-pinned-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-body-pinned-right,.st-header-pinned-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-header-main{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.st-header-main,.st-header-pinned-left,.st-header-pinned-right{overflow-x:auto;overflow-y:hidden}.st-header-main::-webkit-scrollbar{display:none}.st-body-container{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-overflow-scrolling:touch;background-color:var(--st-even-row-background-color);flex-grow:1;height:-webkit-max-content;height:-moz-max-content;height:max-content;overflow:auto;-ms-touch-action:auto;touch-action:auto;width:100%}.st-body-container,.st-sticky-top{display:-webkit-box;display:-ms-flexbox;display:flex}.st-sticky-top{left:0;pointer-events:none;position:absolute;top:0;z-index:10}.st-sticky-section-left,.st-sticky-section-main,.st-sticky-section-right{overflow:hidden;pointer-events:none}.st-sticky-section-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-sticky-section-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-empty-state-wrapper{-ms-flex-align:center;-ms-flex-pack:center;-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:200px;width:100%}.st-empty-state,.st-empty-state-wrapper{-webkit-box-align:center;-webkit-box-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}.st-empty-state{-ms-flex-align:center;-ms-flex-pack:center;color:var(--st-header-text-color);font-size:.9em;opacity:.6;padding:48px 24px}.st-body-main,.st-body-pinned-left,.st-body-pinned-right{display:grid;height:-webkit-max-content;height:-moz-max-content;height:max-content;min-height:100%}.st-body-main::-webkit-scrollbar{display:none}.st-row{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--st-even-row-background-color);display:grid;min-width:100%;position:absolute;-webkit-transition:background .2s ease;transition:background .2s ease}.st-row.st-sticky-parent{z-index:5}.st-sticky-top .st-row.even{background-color:var(--st-even-row-background-color)}.st-sticky-top .st-row.odd{background-color:var(--st-odd-row-background-color)}.st-sticky-top .st-row.selected{background-color:var(--st-selected-row-background-color)}.st-row.hovered .st-cell-editing,.st-row.hovered .st-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first),.st-sticky-top .st-row.hovered:not(.st-cell-editing):not(.st-cell-column-selected):not(.st-cell-column-selected-last):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-row.hovered .st-cell.st-sub-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-sub-cell-hover-background-color)}.st-row.even{background-color:var(--st-even-row-background-color)}.st-row.odd{background-color:var(--st-odd-row-background-color)}.st-row.selected{background-color:var(--st-selected-row-background-color)}.st-row.selected.hovered .st-cell-editing,.st-row.selected.hovered .st-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-nested-grid-row{padding-left:8px;padding-right:8px}.st-cell-content{display:-webkit-box;display:-ms-flexbox;display:flex}.st-row.odd .st-cell-content{color:var(--st-cell-odd-row-color)}.st-row.even .st-cell-content{color:var(--st-cell-color)}.st-cell.st-cell-even-row:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-even-row-background-color)}.st-cell.st-cell-odd-row:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-odd-row-background-color)}.st-cell.st-cell-even-row .st-cell-content{color:var(--st-cell-color)}.st-cell.st-cell-odd-row .st-cell-content{color:var(--st-cell-odd-row-color)}.st-cell.st-cell-selected-row{background-color:var(--st-selected-row-background-color)}.st-cell.st-row-hovered:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-header-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:var(--st-font-weight-bold);gap:var(--st-spacing-small);top:0}.st-header-cell.parent{border-bottom:var(--st-border-width) solid var(--st-border-color)}.st-header-cell.st-sub-header{background-color:var(--st-sub-header-background-color)}.st-cell.st-sub-cell{background-color:var(--st-sub-cell-background-color)}.st-header-cell.clickable,.st-header-cell.st-header-editable{cursor:pointer}.st-header-cell.draggable{cursor:-webkit-grab;cursor:grab}.st-header-cell.st-header-selected{background-color:var(--st-header-selected-background-color)}.st-header-cell.st-header-selected .st-header-label-text{color:var(--st-header-selected-label-color)}.st-header-cell.st-header-selected .st-header-icon,.st-header-cell.st-header-selected .st-icon-container *{fill:var(--st-header-selected-icon-color)}.st-header-cell.st-header-selected .st-icon-container{color:var(--st-header-selected-icon-color)}.st-header-cell.st-header-selected .st-header-resize-handle{background-color:var(--st-resize-handle-selected-color)}.st-header-cell.st-header-has-highlighted-cell{background-color:var(--st-header-highlight-indicator-color)}.st-cell,.st-header-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:initial;color:var(--st-cell-color);display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);overflow:hidden;position:relative}.st-cell.left-aligned,.st-header-cell.left-aligned{padding-left:var(--st-cell-padding);text-align:left}.st-cell.center-aligned,.st-cell.center-aligned>.st-cell-content,.st-header-cell.center-aligned,.st-header-cell.center-aligned>.st-header-label-text{text-align:center}.st-cell.clickable{cursor:pointer}.st-cell,.st-cell-editing,.st-header-cell{height:100%;width:100%}.st-cell-editing{position:relative}.st-header-label{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-grow:1;height:100%;min-width:0;overflow:hidden}.st-cell-content,.st-header-label-text{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:left;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width:100%}.st-header-label-text{color:var(--st-header-label-color);font-weight:600;overflow:hidden;padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding);text-overflow:ellipsis;white-space:nowrap}.st-cell-content.left-aligned,.st-header-label-text.left-aligned{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:left}.st-cell-content.center-aligned,.st-header-label-text.center-aligned{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.st-cell-content.right-aligned,.st-header-label-text.right-aligned{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:right}.st-not-resizeable .st-cell-content{padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding)}.st-resizeable .st-body-pinned-right .st-cell-content,.st-resizeable .st-sticky-section-right .st-cell-content{padding-left:calc(var(--st-cell-padding) + var(--st-spacing-small) + var(--st-resize-handle-container-width));padding-right:var(--st-cell-padding)}.st-resizeable .st-body-main .st-cell-content,.st-resizeable .st-body-pinned-left .st-cell-content,.st-resizeable .st-sticky-section-left .st-cell-content,.st-resizeable .st-sticky-section-main .st-cell-content{padding-left:var(--st-cell-padding);padding-right:calc(var(--st-cell-padding) + var(--st-spacing-small) + var(--st-resize-handle-container-width))}.st-resizeable .st-selection-cell .st-cell-content{padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding)}.st-selection-cell.st-selection-has-highlighted-cell{background-color:var(--st-selection-highlight-indicator-color)}.st-cell{border:var(--st-border-width) solid #0000}.st-cell:focus,.st-cell:focus-visible{outline:none}.st-cell.even-column:not(.st-cell-selected){background-color:var(--st-even-column-background-color)}.st-cell.odd-column:not(.st-cell-selected){background-color:var(--st-odd-column-background-color)}.st-cell-depth-1{padding-left:calc(var(--st-cell-padding)*4)}.st-cell-depth-2{padding-left:calc(var(--st-cell-padding)*8)}.st-cell-depth-3{padding-left:calc(var(--st-cell-padding)*12)}.st-cell-depth-4{padding-left:calc(var(--st-cell-padding)*16)}.st-cell-depth-5{padding-left:calc(var(--st-cell-padding)*20)}.st-cell-depth-6{padding-left:calc(var(--st-cell-padding)*24)}.st-cell-depth-7{padding-left:calc(var(--st-cell-padding)*28)}.st-cell-depth-1 .st-cell-content{color:rgb(from var(--st-cell-color) r g b/80%)!important}.st-cell-depth-2 .st-cell-content,.st-cell-depth-3 .st-cell-content,.st-cell-depth-4 .st-cell-content,.st-cell-depth-5 .st-cell-content,.st-cell-depth-6 .st-cell-content,.st-cell-depth-7 .st-cell-content{color:rgb(from var(--st-cell-color) r g b/70%)!important}.st-icon-container{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:4px;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin-left:4px;-webkit-transition:outline .2s ease;transition:outline .2s ease}.st-icon-container:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:2px}.st-collapse-icon-container{cursor:pointer}.st-expand-icon{fill:var(--st-header-label-color);cursor:pointer}.st-header-resize-handle-container{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;cursor:col-resize;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--st-resize-handle-container-width)}.st-header-resize-handle{background-color:var(--st-resize-handle-color);height:calc(100% - 20px);width:var(--st-resize-handle-width)}.st-header-cell.st-no-resize{padding-right:var(--st-resize-handle-container-width)}.st-row-separator{background-color:var(--st-border-color);cursor:pointer;height:1px;min-width:100%;position:absolute;width:100%}.st-row-separator.st-last-group-row{background-color:var(--st-last-group-row-separator-border-color)}.st-dragging:not(.st-sub-header){background-color:var(--st-dragging-background-color)}.st-dragging.st-sub-header{background-color:var(--st-dragging-sub-header-background-color)}.st-loading-skeleton{-webkit-animation:st-skeleton-pulse 1.5s ease-in-out infinite;animation:st-skeleton-pulse 1.5s ease-in-out infinite;background-color:var(--st-loading-skeleton-bg-color);border-radius:4px;height:16px;width:80%}@-webkit-keyframes st-skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes st-skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.st-cell-selected{background-color:var(--st-selected-cell-background-color)}.st-cell-selected .st-cell-content{color:var(--st-selected-cell-color)!important}.st-cell-selected-first{background-color:var(--st-selected-first-cell-background-color);border:var(--st-border-width) solid var(--st-selected-border-color)}.st-cell-selected-first .st-cell-content{color:var(--st-selected-first-cell-color)!important}.st-cell-selected.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-selected.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-selected-first.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-selected-first.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-column-selected{background-color:var(--st-selected-cell-background-color)}.st-cell-column-selected .st-cell-content{color:var(--st-selected-cell-color)!important}.st-cell-column-selected-first{background-color:var(--st-selected-first-cell-background-color)}.st-cell-column-selected-first .st-cell-content{color:var(--st-selected-first-cell-color)!important}.st-cell-column-selected.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-column-selected.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-column-selected-first.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-column-selected-first.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-selected-top-border{border-top:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-bottom-border{border-bottom:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-left-border{border-left:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-right-border{border-right:var(--st-border-width) solid var(--st-selected-border-color)}.st-horizontal-scrollbar-container{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-scrollbar-bg-color);border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:12px;width:100%}.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-right{-ms-flex-negative:0;flex-shrink:0}.st-horizontal-scrollbar-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-horizontal-scrollbar-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-right{height:100%}.st-horizontal-scrollbar-middle{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;min-height:11px}.st-horizontal-scrollbar-left>div,.st-horizontal-scrollbar-middle>div,.st-horizontal-scrollbar-right>div{height:.3px}.st-footer{-webkit-box-pack:justify;-ms-flex-pack:justify;background-color:var(--st-footer-background-color);border-top:var(--st-border-width) solid var(--st-border-color);gap:var(--st-spacing-medium);justify-content:space-between;min-height:49px;min-height:var(--st-footer-height,49px);padding:var(--st-spacing-medium)}.st-footer,.st-footer-info{-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0}.st-footer-results-text{color:var(--st-cell-color);font-size:.9em;white-space:nowrap}.st-footer-pagination{-ms-flex-negative:0;flex-shrink:0}.st-footer-pagination,.st-next-prev-btn{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-next-prev-btn{-webkit-box-pack:center;-ms-flex-pack:center;fill:var(--st-next-prev-btn-color);background-color:initial;border:none;border-radius:var(--st-border-radius);cursor:pointer;justify-content:center;padding:var(--st-spacing-small);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.disabled>.st-next-prev-icon{fill:var(--st-next-prev-btn-disabled-color);cursor:not-allowed}.st-next-prev-btn:not(.disabled):hover{background-color:var(--st-page-btn-hover-background-color)}.st-next-prev-btn:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:0}.st-page-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:initial;border:none;border-radius:var(--st-border-radius);color:var(--st-page-btn-color);cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;justify-content:center;margin-right:var(--st-spacing-small);padding:var(--st-spacing-small);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-page-btn:hover{background-color:var(--st-button-hover-background-color)}.st-page-btn:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:-2px}.st-page-btn.active{background-color:var(--st-button-active-background-color);color:#fff}.st-footer-pagination .st-page-btn.st-page-btn--compact-hidden{display:none}.st-page-ellipsis{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;color:var(--st-cell-color);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-weight:700;justify-content:center;margin:0 var(--st-spacing-small);padding:var(--st-spacing-small)}.editable-cell-input{border:var(--st-border-width) solid var(--st-border-color);-webkit-box-shadow:var(--st-edit-cell-shadow-color);box-shadow:var(--st-edit-cell-shadow-color);font-size:.875rem;height:100%;left:0;outline:none;padding:var(--st-cell-padding);position:absolute;top:0;width:100%;z-index:1}.editable-cell-input:focus{border:var(--st-border-width) solid var(--st-editable-cell-focus-border-color)}.st-column-editor{-ms-flex-negative:0;-ms-flex-item-align:stretch;align-self:stretch;background:var(--st-column-editor-background-color);border-left:var(--st-border-width) solid var(--st-border-color);color:var(--st-column-editor-text-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:auto;min-height:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-column-editor-text{-webkit-box-flex:1;-ms-flex-positive:1;cursor:pointer;flex-grow:1;padding:var(--st-spacing-medium) var(--st-spacing-small);-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;z-index:2}.st-column-editor.open,.st-column-editor.open .st-column-editor-text{background-color:var(--st-column-editor-background-color)}.st-column-editor-popout{background-color:var(--st-column-editor-popout-background-color);height:100%;overflow:hidden;position:absolute;right:calc(100% + 1px);top:0;-webkit-transition:width var(--st-transition-duration) var(--st-transition-ease);transition:width var(--st-transition-duration) var(--st-transition-ease);width:0;z-index:10}.st-column-editor-popout-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-overflow-scrolling:touch;border-left:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;-ms-touch-action:auto;touch-action:auto}.st-column-editor-search-wrapper{background-color:var(--st-column-editor-popout-background-color);padding:var(--st-spacing-medium);position:sticky;top:0;z-index:1}.st-column-editor-list{padding-bottom:var(--st-spacing-medium);padding-left:var(--st-spacing-medium);padding-right:var(--st-spacing-medium)}.st-column-editor-list,.st-column-editor-lists{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.st-column-editor-lists{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:auto}.st-column-editor-section-label{color:var(--st-column-editor-text-color);font-size:.7rem;font-weight:600;letter-spacing:.04em;opacity:.75;padding:var(--st-spacing-small) var(--st-spacing-medium) 0;text-transform:uppercase}.st-column-editor-list-section{padding-bottom:var(--st-spacing-small);padding-top:0}.st-column-editor-footer{background-color:var(--st-column-editor-popout-background-color);border-top:var(--st-border-width) solid var(--st-border-color);bottom:0;position:sticky;z-index:1}.st-column-editor-footer,.st-column-editor-reset-btn{padding:var(--st-spacing-small) var(--st-spacing-medium)}.st-column-editor-reset-btn{background:#0000;border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-column-editor-text-color);cursor:pointer;font-size:.8rem;font-weight:500;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-column-editor-reset-btn:hover{background-color:var(--st-hover-background-color)}.st-column-pin-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:#0000;border:none;border-radius:4px;color:inherit;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin:0;padding:2px}.st-column-pin-btn:hover{background:color-mix(in srgb,var(--st-column-editor-text-color) 12%,#0000)}.st-column-pin-pinned-mark{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}.st-column-pin-pinned-active{background:color-mix(in srgb,var(--st-column-editor-text-color) 12%,#0000);border-radius:4px}.st-column-pin-pinned-essential{cursor:default}.st-column-pin-side-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;gap:1px}.st-column-pin-side{font-size:.65rem;font-weight:700;height:1.25rem;letter-spacing:-.02em;line-height:1;min-width:1.25rem;padding:0 3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-column-pin-side-option{color:color-mix(in srgb,var(--st-column-editor-text-color) 52%,#0000);-webkit-transition:color var(--st-transition-duration) var(--st-transition-ease),background var(--st-transition-duration) var(--st-transition-ease);transition:color var(--st-transition-duration) var(--st-transition-ease),background var(--st-transition-duration) var(--st-transition-ease)}.st-column-pin-svg,.st-header-checkbox-item:hover .st-column-pin-side-option{color:var(--st-column-editor-text-color)}.st-column-pin-svg{display:block}.st-checkbox-disabled{cursor:not-allowed;opacity:.45}.st-header-checkbox-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);padding-bottom:var(--st-spacing-small);padding-top:var(--st-spacing-small)}.st-column-label-container{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-drag-icon-container{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:-webkit-grab;cursor:grab;display:-webkit-box;display:-ms-flexbox;display:flex;opacity:.5;-webkit-transition:opacity var(--st-transition-duration) var(--st-transition-ease);transition:opacity var(--st-transition-duration) var(--st-transition-ease)}.st-drag-icon-container:hover{opacity:1}.st-drag-icon-container:active{cursor:-webkit-grabbing;cursor:grabbing}.st-drag-icon{fill:currentColor}.st-column-editor-drag-separator{background-color:var(--st-drag-separator-color);border-radius:1px;height:2px;margin:2px 0;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;width:100%}.st-header-icon-container{-webkit-box-pack:center;-ms-flex-pack:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;width:24px}.st-header-icon{fill:var(--st-header-icon-color);-webkit-transition:fill var(--st-transition-duration) var(--st-transition-ease);transition:fill var(--st-transition-duration) var(--st-transition-ease)}.st-collapsible-header-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex}.st-collapsible-header-icon.st-expand-icon-container.expanded{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.st-collapsible-header-icon.st-expand-icon-container.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-nested-headers{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.st-column-editor-popout.open{min-width:240px;width:auto}.st-column-editor-popout.left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.st-column-editor-popout.open.left{-webkit-transform:translateX(0);transform:translateX(0)}.st-checkbox-label{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);justify-content:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-checkbox-input{height:0;opacity:0;pointer-events:none;position:absolute;width:0}.st-checkbox-input:focus-visible+.st-checkbox-custom{outline:1px solid var(--st-focus-ring-color);outline-offset:-1px}.st-checkbox-custom{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:#fff;border:var(--st-border-width) solid var(--st-checkbox-border-color);border-radius:var(--st-border-radius);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;min-height:16px;min-width:16px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease),border-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease),border-color var(--st-transition-duration) var(--st-transition-ease)}.st-checkbox-custom.st-checked{background-color:var(--st-checkbox-checked-background-color);border-color:var(--st-checkbox-checked-border-color)}.st-checkbox-checkmark{fill:#fff}@-webkit-keyframes slide-in-left{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-left{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slide-in-right{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-right{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.st-group-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);border-bottom:var(--st-border-width) solid var(--st-border-color);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:var(--st-font-weight-bold);height:40px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-group-header:hover{background-color:var(--st-button-hover-background-color)}.st-group-header-content{gap:var(--st-spacing-medium)}.st-group-header-content,.st-group-toggle-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-group-toggle-icon{-webkit-box-pack:center;-ms-flex-pack:center;font-size:.8em;height:16px;justify-content:center;width:16px}.st-group-name{font-weight:var(--st-font-weight-bold)}.st-group-count{color:var(--st-cell-odd-row-color);font-size:.9em}.st-group-header.expanded .st-group-toggle-icon{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-group-header.collapsed .st-group-toggle-icon,.st-group-header.expanded .st-group-toggle-icon{-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-group-header.collapsed .st-group-toggle-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.st-expand-icon-container{-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-expand-icon-container.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.st-expand-icon-container.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-expand-icon-container.placeholder{opacity:0;pointer-events:none}@-webkit-keyframes cell-flash{0%{background-color:var(--st-cell-flash-color)}to{background-color:initial}}@keyframes cell-flash{0%{background-color:var(--st-cell-flash-color)}to{background-color:initial}}.st-cell-updating{-webkit-animation:cell-flash .6s ease-in-out;animation:cell-flash .6s ease-in-out}@-webkit-keyframes copy-flash{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-cell-background-color)}}@keyframes copy-flash{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-cell-background-color)}}@-webkit-keyframes copy-flash-first{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}@keyframes copy-flash-first{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}.st-cell-copy-flash{-webkit-animation:copy-flash .8s ease-in-out;animation:copy-flash .8s ease-in-out}.st-cell-copy-flash-first{-webkit-animation:copy-flash-first .8s ease-in-out;animation:copy-flash-first .8s ease-in-out}@-webkit-keyframes warning-flash{0%{background-color:var(--st-warning-flash-color)}to{background-color:initial}}@keyframes warning-flash{0%{background-color:var(--st-warning-flash-color)}to{background-color:initial}}@-webkit-keyframes warning-flash-first{0%{background-color:var(--st-warning-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}@keyframes warning-flash-first{0%{background-color:var(--st-warning-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}.st-cell-warning-flash{-webkit-animation:warning-flash .6s ease-in-out;animation:warning-flash .6s ease-in-out}.st-cell-warning-flash-first{-webkit-animation:warning-flash-first .6s ease-in-out;animation:warning-flash-first .6s ease-in-out}.st-dropdown-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-overflow-scrolling:touch;background-color:var(--st-odd-row-background-color);border:1px solid var(--st-border-color);border-radius:var(--st-border-radius);-webkit-box-shadow:var(--st-edit-cell-shadow);box-shadow:var(--st-edit-cell-shadow);cursor:default;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:300px;min-width:120px;position:fixed;-ms-touch-action:auto;touch-action:auto;-webkit-transform:translateZ(0);transform:translateZ(0);will-change:transform;z-index:100}.st-dropdown-content.st-dropdown-content--allow-descendant-overflow{max-height:none;overflow:visible}.st-filter-container .st-dropdown-content{z-index:101}.st-dropdown-bottom-left,.st-dropdown-bottom-right,.st-dropdown-top-left,.st-dropdown-top-right{margin:0}.st-dropdown-item{color:var(--st-cell-color);cursor:pointer;font-size:.9em;padding:var(--st-spacing-small) var(--st-spacing-medium);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);white-space:nowrap}.st-dropdown-item:hover{background-color:var(--st-button-hover-background-color)}.st-dropdown-item.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-dropdown-divider{background-color:var(--st-border-color);height:1px;margin:4px 0}.st-datepicker{background-color:var(--st-odd-row-background-color);font-family:inherit}.st-datepicker-header{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);border-bottom:1px solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:space-between;padding:var(--st-spacing-medium)}.st-datepicker-header-label{-webkit-box-flex:1;color:var(--st-header-label-color);cursor:pointer;-ms-flex:1;flex:1;font-weight:600;text-align:center}.st-datepicker-nav-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:#0000;border:none;border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:1.2em;justify-content:center;padding:0 8px}.st-datepicker-nav-btn>*{fill:var(--st-cell-color)!important}.st-datepicker-nav-btn:hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-grid{display:grid;padding:var(--st-spacing-medium)}.st-datepicker-days-grid{gap:4px;grid-template-columns:repeat(7,1fr)}.st-datepicker-months-grid,.st-datepicker-years-grid{gap:8px;grid-template-columns:repeat(3,1fr)}.st-datepicker-weekday{color:var(--st-datepicker-weekday-color);font-size:.8em;font-weight:600;padding:6px 0;text-align:center}.st-datepicker-day{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:50%;color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:.9em;height:24px;justify-content:center;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);width:24px}.st-datepicker-day.empty{cursor:default}.st-datepicker-day:not(.empty):hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-day.today{color:var(--st-button-active-background-color);font-weight:600}.st-datepicker-day.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-datepicker-day.other-month{color:var(--st-datepicker-other-month-color)}.st-datepicker-month,.st-datepicker-year{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:var(--st-border-radius);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;padding:12px 8px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-datepicker-month:hover,.st-datepicker-year:hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-month.selected,.st-datepicker-year.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-datepicker-footer{-webkit-box-pack:end;-ms-flex-pack:end;border-top:1px solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:flex-end;padding:var(--st-spacing-medium)}.st-datepicker-today-btn{background-color:initial;border:1px solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;padding:6px 12px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-datepicker-today-btn:hover{background-color:var(--st-button-hover-background-color)}.st-filter-container{min-width:150px;padding:var(--st-spacing-medium)}.st-filter-container,.st-filter-section{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;flex-grow:1}.st-filter-section{margin-bottom:var(--st-spacing-medium)}.st-filter-input{background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);font-family:inherit;font-size:.9em;outline:none;padding:var(--st-spacing-small);-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-filter-input:focus{border-color:var(--st-editable-cell-focus-border-color)}.st-filter-input-range-from{margin-bottom:var(--st-spacing-medium)}.st-filter-select{background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;font-family:inherit;font-size:.9em;outline:none;padding:var(--st-spacing-medium) var(--st-spacing-medium);-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-filter-select:focus{border-color:var(--st-editable-cell-focus-border-color)}.st-filter-actions{border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-medium);padding-top:var(--st-spacing-medium)}.st-filter-button{-webkit-box-flex:1;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;border-radius:var(--st-border-radius);cursor:pointer;-ms-flex:1;flex:1;font-family:inherit;font-size:.9em;font-weight:500;padding:var(--st-spacing-small);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-filter-button:focus{outline:none}.st-filter-button:focus-visible{outline:2px solid var(--st-focus-ring-color);outline-offset:2px}.st-filter-button-apply{background-color:var(--st-button-active-background-color);color:#fff}.st-filter-button-apply:hover:not(.st-filter-button-disabled){opacity:.9}.st-filter-button-disabled{background-color:var(--st-filter-button-disabled-background-color);color:var(--st-filter-button-disabled-text-color);cursor:not-allowed}.st-filter-button-clear{background-color:initial;border:var(--st-border-width) solid var(--st-border-color);color:var(--st-cell-color)}.st-filter-button-clear:hover{background-color:var(--st-button-hover-background-color)}.st-custom-select{position:relative;width:100%}.st-custom-select-trigger{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:inherit;font-size:.9em;gap:var(--st-spacing-medium);justify-content:space-between;outline:none;padding:var(--st-spacing-small);text-align:left;-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-custom-select-open .st-custom-select-trigger,.st-custom-select-trigger:focus,.st-custom-select-trigger:hover:not(:disabled){border-color:var(--st-editable-cell-focus-border-color)}.st-custom-select-value{-webkit-box-flex:1;color:var(--st-cell-color);-ms-flex:1;flex:1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.st-custom-select-arrow{-ms-flex-negative:0;color:var(--st-header-label-color);flex-shrink:0;-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-custom-select-open .st-custom-select-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.st-custom-select-options{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:200px;min-width:120px;overflow:auto;overflow-x:hidden}.st-custom-select-option{-ms-flex-negative:0;color:var(--st-cell-color);cursor:pointer;flex-shrink:0;font-size:.9em;overflow:hidden;padding:var(--st-spacing-small);text-overflow:ellipsis;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);white-space:nowrap}.st-custom-select-option-focused,.st-custom-select-option:hover{background-color:var(--st-button-hover-background-color)}.st-custom-select-option-selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-custom-select-option-selected.st-custom-select-option-focused{background-color:var(--st-selected-cell-background-color);opacity:.9}.st-custom-select-disabled{opacity:var(--st-opacity-disabled);pointer-events:none}.st-custom-select-disabled .st-custom-select-trigger{background-color:var(--st-header-background-color);color:var(--st-header-label-color);cursor:not-allowed}.st-enum-filter-options{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;flex-grow:1;gap:var(--st-spacing-small);max-height:200px;overflow:auto}.st-enum-filter-options .st-checkbox-label{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:100%}.st-enum-search,.st-enum-select-all{border-bottom:var(--st-border-width) solid var(--st-border-color);padding-bottom:var(--st-spacing-small)}.st-enum-select-all-label{color:var(--st-header-label-color);font-weight:600}.st-enum-option-label{color:var(--st-cell-color);font-size:.9em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-enum-filter-options .st-enum-option-label{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-enum-no-results{color:var(--st-slate-400);font-size:.9em;font-style:italic;padding:var(--st-spacing-medium);text-align:center}.st-row-number{font-size:.8em;font-weight:500;opacity:.6;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-selection-cell-content{-webkit-box-pack:justify;-ms-flex-pack:justify;gap:8px;justify-content:space-between;width:100%}.st-row-buttons,.st-selection-cell-content,.st-selection-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-row-buttons,.st-selection-control{-ms-flex-negative:0;flex-shrink:0}.st-row-buttons{-webkit-box-pack:end;-ms-flex-pack:end;gap:4px;justify-content:flex-end}.st-row-button{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;justify-content:center}.st-column-borders .st-cell:not(.st-last-column),.st-column-borders .st-header-cell:not(.st-last-column),.st-column-borders .st-row.hovered .st-cell:not(.st-last-column):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first),.st-column-borders .st-row.selected.hovered .st-cell:not(.st-last-column):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){-webkit-box-shadow:var(--st-border-width) 0 0 0 var(--st-border-color);box-shadow:var(--st-border-width) 0 0 0 var(--st-border-color)}.st-tooltip{word-wrap:break-word;-webkit-animation:st-tooltip-fade-in .2s ease-out;animation:st-tooltip-fade-in .2s ease-out;background-color:var(--st-tooltip-background-color);border-radius:var(--st-tooltip-border-radius);-webkit-box-shadow:var(--st-tooltip-shadow);box-shadow:var(--st-tooltip-shadow);color:var(--st-tooltip-text-color);font-size:.8em;line-height:1.4;max-width:300px;padding:var(--st-tooltip-padding);pointer-events:none}@-webkit-keyframes st-tooltip-fade-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes st-tooltip-fade-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.st-row.st-state-row{display:grid;position:absolute;width:100%}.st-row.st-state-row-spacer{background-color:initial;display:block;position:absolute;width:100%}.st-state-row-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-body-background-color);display:-webkit-box;display:-ms-flexbox;display:flex;grid-column:1/-1}.st-bar-chart,.st-line-area-chart{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.st-bar-chart rect{shape-rendering:crispEdges}.theme-light{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-slate-50);--st-scrollbar-thumb-color:var(--st-slate-300);--st-scrollbar-width:thin;--st-border-color:var(--st-slate-300);--st-footer-background-color:var(--st-slate-50);--st-last-group-row-separator-border-color:var(--st-slate-400);--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:var(--st-slate-50);--st-hover-row-background-color:var(--st-slate-100);--st-selected-row-background-color:var(--st-blue-50);--st-odd-column-background-color:var(--st-slate-50);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-slate-100);--st-sub-header-background-color:var(--st-slate-200);--st-header-label-color:var(--st-slate-900);--st-header-icon-color:var(--st-slate-500);--st-cell-color:var(--st-slate-900);--st-cell-odd-row-color:var(--st-slate-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-sub-cell-background-color:var(--st-slate-100);--st-sub-cell-hover-background-color:var(--st-slate-200);--st-selected-cell-background-color:var(--st-blue-100);--st-selected-first-cell-background-color:var(--st-blue-50);--st-selected-cell-color:var(--st-slate-900);--st-selected-first-cell-color:var(--st-slate-900);--st-selected-sub-cell-background-color:var(--st-blue-200);--st-selected-sub-cell-color:var(--st-slate-900);--st-dragging-background-color:var(--st-slate-200);--st-dragging-sub-header-background-color:var(--st-slate-300);--st-resize-handle-color:var(--st-slate-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-500);--st-editable-cell-focus-border-color:var(--st-blue-500);--st-focus-ring-color:var(--st-blue-800);--st-button-hover-background-color:var(--st-slate-100);--st-button-active-background-color:var(--st-blue-600);--st-next-prev-btn-color:var(--st-slate-600);--st-next-prev-btn-disabled-color:var(--st-slate-400);--st-page-btn-color:var(--st-slate-600);--st-page-btn-hover-background-color:var(--st-slate-100);--st-checkbox-checked-background-color:var(--st-blue-600);--st-checkbox-checked-border-color:var(--st-blue-600);--st-checkbox-border-color:var(--st-slate-300);--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:var(--st-slate-500);--st-datepicker-weekday-color:var(--st-slate-500);--st-datepicker-other-month-color:var(--st-slate-400);--st-filter-button-disabled-background-color:var(--st-slate-300);--st-filter-button-disabled-text-color:var(--st-slate-500);--st-cell-flash-color:var(--st-slate-200);--st-copy-flash-color:var(--st-blue-500);--st-warning-flash-color:var(--st-red-300);--st-tooltip-background-color:var(--st-slate-900);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-blue-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-100);--st-selection-highlight-indicator-color:var(--st-slate-300);--st-loading-skeleton-bg-color:var(--st-slate-200);--st-chart-color:var(--st-blue-300);--st-chart-fill-color:var(--st-blue-300);--st-drag-separator-color:var(--st-blue-500)}.theme-dark{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-gray-900);--st-scrollbar-thumb-color:var(--st-gray-600);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-gray-700);--st-footer-background-color:var(--st-gray-900);--st-last-group-row-separator-border-color:var(--st-gray-500);--st-odd-row-background-color:var(--st-gray-800);--st-even-row-background-color:var(--st-gray-900);--st-hover-row-background-color:var(--st-gray-600);--st-selected-row-background-color:var(--st-blue-950);--st-odd-column-background-color:var(--st-gray-800);--st-even-column-background-color:var(--st-gray-900);--st-header-background-color:var(--st-gray-800);--st-sub-header-background-color:var(--st-gray-700);--st-sub-cell-background-color:var(--st-gray-800);--st-sub-cell-hover-background-color:var(--st-gray-700);--st-header-label-color:var(--st-gray-100);--st-header-icon-color:var(--st-gray-400);--st-cell-color:var(--st-gray-100);--st-cell-odd-row-color:var(--st-gray-200);--st-edit-cell-shadow:0 1px 3px 0 #ffffff1a;--st-selected-cell-background-color:var(--st-blue-900);--st-selected-first-cell-background-color:var(--st-blue-800);--st-selected-cell-color:var(--st-white);--st-selected-first-cell-color:var(--st-white);--st-selected-sub-cell-background-color:var(--st-blue-800);--st-selected-sub-cell-color:var(--st-white);--st-dragging-background-color:var(--st-gray-500);--st-dragging-sub-header-background-color:var(--st-gray-600);--st-resize-handle-color:var(--st-gray-500);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-400);--st-editable-cell-focus-border-color:var(--st-blue-400);--st-focus-ring-color:var(--st-blue-400);--st-button-hover-background-color:var(--st-gray-600);--st-button-active-background-color:var(--st-blue-500);--st-next-prev-btn-color:var(--st-gray-300);--st-next-prev-btn-disabled-color:var(--st-gray-600);--st-page-btn-color:var(--st-gray-300);--st-page-btn-hover-background-color:var(--st-gray-600);--st-checkbox-checked-background-color:var(--st-blue-500);--st-checkbox-checked-border-color:var(--st-blue-500);--st-checkbox-border-color:var(--st-gray-600);--st-column-editor-background-color:var(--st-gray-800);--st-column-editor-popout-background-color:var(--st-gray-800);--st-column-editor-text-color:var(--st-gray-400);--st-datepicker-weekday-color:var(--st-gray-400);--st-datepicker-other-month-color:var(--st-gray-600);--st-filter-button-disabled-background-color:var(--st-gray-700);--st-filter-button-disabled-text-color:var(--st-gray-500);--st-cell-flash-color:var(--st-gray-500);--st-copy-flash-color:var(--st-blue-500);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-gray-100);--st-tooltip-text-color:var(--st-gray-900);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #0000004d;--st-header-selected-background-color:var(--st-blue-500);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-900);--st-selection-highlight-indicator-color:var(--st-gray-600);--st-loading-skeleton-bg-color:var(--st-gray-700);--st-chart-color:var(--st-blue-400);--st-chart-fill-color:var(--st-blue-400);--st-drag-separator-color:var(--st-blue-400)}.theme-neutral{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-neutral-100);--st-scrollbar-thumb-color:var(--st-neutral-400);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-neutral-300);--st-footer-background-color:var(--st-neutral-50);--st-last-group-row-separator-border-color:var(--st-neutral-400);--st-odd-row-background-color:var(--st-neutral-50);--st-even-row-background-color:var(--st-neutral-100);--st-hover-row-background-color:var(--st-neutral-200);--st-selected-row-background-color:var(--st-neutral-200);--st-odd-column-background-color:var(--st-neutral-50);--st-even-column-background-color:var(--st-neutral-100);--st-header-background-color:var(--st-neutral-200);--st-sub-header-background-color:var(--st-neutral-300);--st-sub-cell-background-color:var(--st-neutral-200);--st-sub-cell-hover-background-color:var(--st-neutral-300);--st-header-label-color:var(--st-neutral-900);--st-header-icon-color:var(--st-neutral-500);--st-cell-color:var(--st-neutral-900);--st-cell-odd-row-color:var(--st-neutral-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-selected-cell-background-color:var(--st-neutral-400);--st-selected-first-cell-background-color:var(--st-neutral-300);--st-selected-cell-color:var(--st-neutral-900);--st-selected-first-cell-color:var(--st-neutral-900);--st-selected-sub-cell-background-color:var(--st-neutral-400);--st-selected-sub-cell-color:var(--st-neutral-900);--st-dragging-background-color:var(--st-neutral-300);--st-dragging-sub-header-background-color:var(--st-neutral-400);--st-resize-handle-color:var(--st-neutral-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-neutral-600);--st-editable-cell-focus-border-color:var(--st-neutral-500);--st-focus-ring-color:var(--st-neutral-600);--st-button-hover-background-color:var(--st-neutral-200);--st-button-active-background-color:var(--st-neutral-600);--st-next-prev-btn-color:var(--st-neutral-600);--st-next-prev-btn-disabled-color:var(--st-neutral-400);--st-page-btn-color:var(--st-neutral-600);--st-page-btn-hover-background-color:var(--st-neutral-200);--st-checkbox-checked-background-color:var(--st-neutral-600);--st-checkbox-checked-border-color:var(--st-neutral-600);--st-checkbox-border-color:var(--st-neutral-300);--st-column-editor-background-color:var(--st-neutral-50);--st-column-editor-popout-background-color:var(--st-neutral-50);--st-column-editor-text-color:var(--st-neutral-500);--st-datepicker-weekday-color:var(--st-neutral-500);--st-datepicker-other-month-color:var(--st-neutral-400);--st-filter-button-disabled-background-color:var(--st-neutral-300);--st-filter-button-disabled-text-color:var(--st-neutral-500);--st-cell-flash-color:var(--st-neutral-400);--st-copy-flash-color:var(--st-neutral-600);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-neutral-800);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-neutral-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-neutral-400);--st-selection-highlight-indicator-color:var(--st-neutral-400);--st-loading-skeleton-bg-color:var(--st-neutral-200);--st-chart-color:var(--st-neutral-500);--st-chart-fill-color:var(--st-neutral-500);--st-drag-separator-color:var(--st-neutral-600)}.theme-sky{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-blue-50);--st-scrollbar-thumb-color:var(--st-blue-300);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-blue-300);--st-footer-background-color:var(--st-blue-50);--st-last-group-row-separator-border-color:var(--st-blue-400);--st-odd-row-background-color:var(--st-blue-50);--st-even-row-background-color:var(--st-blue-100);--st-hover-row-background-color:var(--st-blue-200);--st-selected-row-background-color:var(--st-sky-100);--st-odd-column-background-color:var(--st-blue-50);--st-even-column-background-color:var(--st-blue-100);--st-header-background-color:var(--st-blue-200);--st-sub-header-background-color:var(--st-blue-300);--st-sub-cell-background-color:var(--st-sky-100);--st-sub-cell-hover-background-color:var(--st-sky-200);--st-header-label-color:var(--st-blue-900);--st-header-icon-color:var(--st-blue-600);--st-cell-color:var(--st-blue-900);--st-cell-odd-row-color:var(--st-blue-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-selected-cell-background-color:var(--st-blue-400);--st-selected-first-cell-background-color:var(--st-blue-300);--st-selected-cell-color:var(--st-blue-900);--st-selected-first-cell-color:var(--st-blue-900);--st-selected-sub-cell-background-color:var(--st-sky-300);--st-selected-sub-cell-color:var(--st-blue-900);--st-dragging-background-color:var(--st-sky-300);--st-dragging-sub-header-background-color:var(--st-sky-400);--st-resize-handle-color:var(--st-blue-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-600);--st-editable-cell-focus-border-color:var(--st-blue-500);--st-focus-ring-color:var(--st-blue-600);--st-button-hover-background-color:var(--st-blue-200);--st-button-active-background-color:var(--st-blue-600);--st-next-prev-btn-color:var(--st-blue-600);--st-next-prev-btn-disabled-color:var(--st-blue-400);--st-page-btn-color:var(--st-blue-600);--st-page-btn-hover-background-color:var(--st-blue-200);--st-checkbox-checked-background-color:var(--st-blue-600);--st-checkbox-checked-border-color:var(--st-blue-600);--st-checkbox-border-color:var(--st-blue-300);--st-column-editor-background-color:var(--st-blue-50);--st-column-editor-popout-background-color:var(--st-blue-50);--st-column-editor-text-color:var(--st-blue-600);--st-datepicker-weekday-color:var(--st-blue-600);--st-datepicker-other-month-color:var(--st-blue-400);--st-filter-button-disabled-background-color:var(--st-blue-300);--st-filter-button-disabled-text-color:var(--st-blue-500);--st-cell-flash-color:var(--st-sky-200);--st-copy-flash-color:var(--st-blue-600);--st-warning-flash-color:var(--st-orange-400);--st-tooltip-background-color:var(--st-blue-900);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-blue-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-400);--st-selection-highlight-indicator-color:var(--st-blue-400);--st-loading-skeleton-bg-color:var(--st-blue-200);--st-chart-color:var(--st-blue-900);--st-chart-fill-color:var(--st-blue-900);--st-drag-separator-color:var(--st-blue-600)}.theme-violet{--st-border-radius:8px;--st-cell-padding:12px;--st-spacing-small:6px;--st-spacing-medium:10px;--st-scrollbar-bg-color:var(--st-stone-100);--st-scrollbar-thumb-color:var(--st-violet-500);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-stone-200);--st-footer-background-color:var(--st-stone-100);--st-last-group-row-separator-border-color:var(--st-stone-300);--st-odd-row-background-color:var(--st-amber-50);--st-even-row-background-color:var(--st-amber-100);--st-hover-row-background-color:var(--st-amber-200);--st-selected-row-background-color:var(--st-violet-100);--st-odd-column-background-color:var(--st-violet-50);--st-even-column-background-color:var(--st-amber-50);--st-header-background-color:var(--st-violet-600);--st-sub-header-background-color:var(--st-violet-500);--st-sub-cell-background-color:var(--st-violet-100);--st-sub-cell-hover-background-color:var(--st-violet-200);--st-header-label-color:var(--st-white);--st-header-icon-color:var(--st-violet-200);--st-cell-color:var(--st-stone-700);--st-cell-odd-row-color:var(--st-stone-700);--st-edit-cell-shadow:0 4px 6px -1px #7c3aed1a,0 2px 4px -1px #7c3aed0f;--st-selected-cell-background-color:var(--st-violet-50);--st-selected-first-cell-background-color:var(--st-violet-100);--st-selected-cell-color:var(--st-violet-800);--st-selected-first-cell-color:var(--st-violet-800);--st-selected-sub-cell-background-color:var(--st-violet-200);--st-selected-sub-cell-color:var(--st-violet-800);--st-dragging-background-color:var(--st-violet-200);--st-dragging-sub-header-background-color:var(--st-violet-300);--st-resize-handle-color:var(--st-violet-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-violet-500);--st-editable-cell-focus-border-color:var(--st-violet-500);--st-focus-ring-color:var(--st-violet-600);--st-button-hover-background-color:var(--st-violet-50);--st-button-active-background-color:var(--st-violet-600);--st-next-prev-btn-color:var(--st-violet-600);--st-next-prev-btn-disabled-color:var(--st-violet-400);--st-page-btn-color:var(--st-violet-600);--st-page-btn-hover-background-color:var(--st-violet-50);--st-checkbox-checked-background-color:var(--st-violet-500);--st-checkbox-checked-border-color:var(--st-violet-600);--st-checkbox-border-color:var(--st-stone-200);--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:var(--st-violet-600);--st-datepicker-weekday-color:var(--st-violet-600);--st-datepicker-other-month-color:var(--st-violet-400);--st-filter-button-disabled-background-color:var(--st-stone-200);--st-filter-button-disabled-text-color:var(--st-stone-500);--st-cell-flash-color:var(--st-violet-200);--st-copy-flash-color:var(--st-violet-600);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-violet-800);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-violet-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-violet-800);--st-selection-highlight-indicator-color:var(--st-stone-400);--st-loading-skeleton-bg-color:var(--st-stone-200);--st-chart-color:var(--st-violet-400);--st-chart-fill-color:var(--st-violet-400);--st-drag-separator-color:var(--st-violet-500)}.theme-frost{--st-border-radius:0px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#f8faff;--st-scrollbar-thumb-color:#c5d1dd;--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:#e1e7ea;--st-footer-background-color:#f8faff;--st-last-group-row-separator-border-color:#c5d1dd;--st-odd-row-background-color:#fff;--st-even-row-background-color:#fff;--st-hover-row-background-color:#e5effe;--st-selected-row-background-color:#d4e4fd;--st-odd-column-background-color:#fff;--st-even-column-background-color:#fff;--st-header-background-color:#f8faff;--st-sub-header-background-color:#e5effe;--st-sub-cell-background-color:#f8faff;--st-sub-cell-hover-background-color:#d4e4fd;--st-header-label-color:#0b1215;--st-header-icon-color:#5a6c7d;--st-cell-color:#0b1215;--st-cell-odd-row-color:#0b1215;--st-edit-cell-shadow:0 1px 2px 0 #0b12150d;--st-selected-cell-background-color:#c9dcfb;--st-selected-first-cell-background-color:#d4e4fd;--st-selected-cell-color:#0b1215;--st-selected-first-cell-color:#0b1215;--st-selected-sub-cell-background-color:#c9dcfb;--st-selected-sub-cell-color:#0b1215;--st-dragging-background-color:#d0dce8;--st-dragging-sub-header-background-color:#0d9488;--st-resize-handle-color:#c5d1dd;--st-resize-handle-selected-color:#5a6c7d;--st-selected-border-color:#5a9cf8;--st-editable-cell-focus-border-color:#5a9cf8;--st-focus-ring-color:#5a9cf8;--st-button-hover-background-color:#e5effe;--st-button-active-background-color:#5a9cf8;--st-next-prev-btn-color:#5a6c7d;--st-next-prev-btn-disabled-color:#c5d1dd;--st-page-btn-color:#5a6c7d;--st-page-btn-hover-background-color:#e5effe;--st-checkbox-checked-background-color:#5a9cf8;--st-checkbox-checked-border-color:#4a8ce8;--st-checkbox-border-color:#e1e7ea;--st-column-editor-background-color:#fff;--st-column-editor-popout-background-color:#fff;--st-column-editor-text-color:#5a6c7d;--st-datepicker-weekday-color:#5a6c7d;--st-datepicker-other-month-color:#c5d1dd;--st-filter-button-disabled-background-color:#e1e7ea;--st-filter-button-disabled-text-color:#5a6c7d;--st-cell-flash-color:#d0dce8;--st-copy-flash-color:#5a9cf8;--st-warning-flash-color:#f87171;--st-tooltip-background-color:#0b1215;--st-tooltip-text-color:#fff;--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:#5a9cf8;--st-header-selected-label-color:#fff;--st-header-selected-icon-color:#fff;--st-header-highlight-indicator-color:#c9dcfb;--st-selection-highlight-indicator-color:#e1e7ea;--st-loading-skeleton-bg-color:#e1e7ea;--st-chart-color:var(--st-blue-300);--st-chart-fill-color:var(--st-blue-300);--st-drag-separator-color:#0d9488}.theme-modern-light{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#fafafa;--st-scrollbar-thumb-color:#d1d5db;--st-scrollbar-width:thin;--st-border-color:#f3f4f6;--st-footer-background-color:var(--st-white);--st-last-group-row-separator-border-color:#e5e7eb;--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:var(--st-white);--st-hover-row-background-color:#f9fafb;--st-selected-row-background-color:#eff6ff;--st-odd-column-background-color:var(--st-white);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-white);--st-sub-header-background-color:#fafafa;--st-header-label-color:#111827;--st-header-icon-color:#6b7280;--st-cell-color:#111827;--st-cell-odd-row-color:#374151;--st-edit-cell-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--st-sub-cell-background-color:#f9fafb;--st-sub-cell-hover-background-color:#f3f4f6;--st-selected-cell-background-color:#dbeafe;--st-selected-first-cell-background-color:#eff6ff;--st-selected-cell-color:#111827;--st-selected-first-cell-color:#111827;--st-selected-sub-cell-background-color:#bfdbfe;--st-selected-sub-cell-color:#111827;--st-dragging-background-color:#f3f4f6;--st-dragging-sub-header-background-color:#e5e7eb;--st-resize-handle-color:#e5e7eb;--st-resize-handle-selected-color:#3b82f6;--st-selected-border-color:#3b82f6;--st-editable-cell-focus-border-color:#3b82f6;--st-focus-ring-color:#3b82f6;--st-button-hover-background-color:#f3f4f6;--st-button-active-background-color:#3b82f6;--st-next-prev-btn-color:#6b7280;--st-next-prev-btn-disabled-color:#d1d5db;--st-page-btn-color:#6b7280;--st-page-btn-hover-background-color:#f3f4f6;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#d1d5db;--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:#6b7280;--st-datepicker-weekday-color:#6b7280;--st-datepicker-other-month-color:#d1d5db;--st-filter-button-disabled-background-color:#f3f4f6;--st-filter-button-disabled-text-color:#9ca3af;--st-cell-flash-color:#dbeafe;--st-copy-flash-color:#3b82f6;--st-warning-flash-color:#fca5a5;--st-tooltip-background-color:#1f2937;--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#dbeafe;--st-selection-highlight-indicator-color:#f3f4f6;--st-loading-skeleton-bg-color:#f3f4f6;--st-chart-color:#3b82f6;--st-chart-fill-color:#dbeafe;--st-drag-separator-color:#3b82f6;--st-body-background-color:var(--st-white)}.theme-modern-light .st-wrapper{border:1px solid #f3f4f6}.theme-modern-light .st-header-main,.theme-modern-light .st-header-pinned-left,.theme-modern-light .st-header-pinned-right{border-bottom:1px solid #f3f4f6}.theme-modern-light .st-body-pinned-left,.theme-modern-light .st-header-pinned-left{border-right:1px solid #f3f4f6}.theme-modern-light .st-body-pinned-right,.theme-modern-light .st-header-pinned-right{border-left:1px solid #f3f4f6}.theme-modern-light .st-row-separator{background-color:#f9fafb}.theme-modern-light .st-header-cell{color:#6b7280;font-size:14px;font-weight:500}.theme-modern-light .st-cell-content{color:#111827;font-size:14px}.theme-modern-light .st-row.hovered{-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.theme-modern-light .st-footer{background-color:var(--st-white);border-top:1px solid #f3f4f6;gap:12px;padding:12px 16px}.theme-modern-light .st-footer-results-text{color:#6b7280;font-size:14px}.theme-modern-light .st-footer-pagination{-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:2px;overflow:hidden}.theme-modern-light .st-page-ellipsis{color:#9ca3af;font-weight:400;padding:0 4px}.theme-modern-light .st-page-btn{-ms-flex-negative:0;border-radius:4px;color:#374151;flex-shrink:0;font-size:13px;font-weight:500;margin-right:0;min-width:36px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-light .st-page-btn:hover{background-color:#f3f4f6}.theme-modern-light .st-page-btn.active{background-color:#3b82f6;color:#fff;font-weight:600}.theme-modern-light .st-next-prev-btn{-ms-flex-negative:0;border-radius:4px;flex-shrink:0;margin-left:4px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-light .st-next-prev-btn:not(.disabled):hover{background-color:#f3f4f6}.theme-modern-light .st-horizontal-scrollbar-container{background-color:#fafafa;border-top:1px solid #f3f4f6}.theme-modern-light .st-group-header{border-bottom:1px solid #f3f4f6;font-weight:500}.theme-modern-light .st-checkbox-custom{border:1.5px solid #d1d5db;border-radius:4px}.theme-modern-light .st-checkbox-custom.st-checked{background-color:#3b82f6;border-color:#3b82f6}.theme-custom{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#fafafa;--st-scrollbar-thumb-color:#d1d5db;--st-scrollbar-width:thin;--st-border-color:#f3f4f6;--st-footer-background-color:var(--st-white);--st-last-group-row-separator-border-color:#e5e7eb;--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:var(--st-white);--st-hover-row-background-color:#f9fafb;--st-selected-row-background-color:#eff6ff;--st-odd-column-background-color:var(--st-white);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-white);--st-sub-header-background-color:#fafafa;--st-header-label-color:#111827;--st-header-icon-color:#6b7280;--st-cell-color:#111827;--st-cell-odd-row-color:#374151;--st-edit-cell-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--st-sub-cell-background-color:#f9fafb;--st-sub-cell-hover-background-color:#f3f4f6;--st-selected-cell-background-color:#dbeafe;--st-selected-first-cell-background-color:#eff6ff;--st-selected-cell-color:#111827;--st-selected-first-cell-color:#111827;--st-selected-sub-cell-background-color:#bfdbfe;--st-selected-sub-cell-color:#111827;--st-dragging-background-color:#f3f4f6;--st-dragging-sub-header-background-color:#e5e7eb;--st-resize-handle-color:#e5e7eb;--st-resize-handle-selected-color:#3b82f6;--st-selected-border-color:#3b82f6;--st-editable-cell-focus-border-color:#3b82f6;--st-focus-ring-color:#3b82f6;--st-button-hover-background-color:#f3f4f6;--st-button-active-background-color:#3b82f6;--st-next-prev-btn-color:#6b7280;--st-next-prev-btn-disabled-color:#d1d5db;--st-page-btn-color:#6b7280;--st-page-btn-hover-background-color:#f3f4f6;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#d1d5db;--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:#6b7280;--st-datepicker-weekday-color:#6b7280;--st-datepicker-other-month-color:#d1d5db;--st-filter-button-disabled-background-color:#f3f4f6;--st-filter-button-disabled-text-color:#9ca3af;--st-cell-flash-color:#dbeafe;--st-copy-flash-color:#3b82f6;--st-warning-flash-color:#fca5a5;--st-tooltip-background-color:#1f2937;--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#dbeafe;--st-selection-highlight-indicator-color:#f3f4f6;--st-loading-skeleton-bg-color:#f3f4f6;--st-chart-color:#3b82f6;--st-chart-fill-color:#dbeafe;--st-drag-separator-color:#3b82f6;--st-body-background-color:var(--st-white)}.theme-custom .st-wrapper{border:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-header-main,.theme-custom .st-header-pinned-left,.theme-custom .st-header-pinned-right{border-bottom:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-body-pinned-left,.theme-custom .st-header-pinned-left{border-right:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-body-pinned-right,.theme-custom .st-header-pinned-right{border-left:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-row-separator{background-color:var(--st-hover-row-background-color)}.theme-custom .st-header-cell{color:var(--st-header-icon-color);font-size:14px;font-weight:500}.theme-custom .st-cell-content{color:var(--st-cell-color);font-size:14px}.theme-custom .st-row.hovered{-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.theme-custom .st-footer{background-color:var(--st-footer-background-color);border-top:var(--st-border-width) solid var(--st-border-color);gap:12px;padding:12px 16px}.theme-custom .st-footer-results-text{color:var(--st-cell-color);font-size:14px}.theme-custom .st-footer-pagination{-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:2px;overflow:hidden}.theme-custom .st-page-ellipsis{color:var(--st-page-btn-color);font-weight:400;padding:0 4px}.theme-custom .st-page-btn{-ms-flex-negative:0;border-radius:4px;color:var(--st-page-btn-color);flex-shrink:0;font-size:13px;font-weight:500;margin-right:0;min-width:36px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-custom .st-page-btn:hover{background-color:var(--st-page-btn-hover-background-color)}.theme-custom .st-page-btn.active{background-color:var(--st-button-active-background-color);color:var(--st-header-selected-label-color);font-weight:600}.theme-custom .st-next-prev-btn{-ms-flex-negative:0;border-radius:4px;flex-shrink:0;margin-left:4px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-custom .st-next-prev-btn:not(.disabled):hover{background-color:var(--st-page-btn-hover-background-color)}.theme-custom .st-horizontal-scrollbar-container{background-color:var(--st-scrollbar-bg-color);border-top:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-group-header{border-bottom:var(--st-border-width) solid var(--st-border-color);font-weight:500}.theme-custom .st-checkbox-custom{border:1.5px solid var(--st-checkbox-border-color);border-radius:4px}.theme-custom .st-checkbox-custom.st-checked{background-color:var(--st-checkbox-checked-background-color);border-color:var(--st-checkbox-checked-border-color)}.theme-modern-dark{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#111827;--st-scrollbar-thumb-color:#4b5563;--st-scrollbar-width:thin;--st-border-color:#374151;--st-footer-background-color:#1f2937;--st-last-group-row-separator-border-color:#4b5563;--st-odd-row-background-color:#1f2937;--st-even-row-background-color:#1f2937;--st-hover-row-background-color:#374151;--st-selected-row-background-color:#1e3a5f;--st-odd-column-background-color:#1f2937;--st-even-column-background-color:#1f2937;--st-header-background-color:#1f2937;--st-sub-header-background-color:#111827;--st-header-label-color:#f3f4f6;--st-header-icon-color:#9ca3af;--st-cell-color:#f3f4f6;--st-cell-odd-row-color:#d1d5db;--st-edit-cell-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003;--st-sub-cell-background-color:#111827;--st-sub-cell-hover-background-color:#1f2937;--st-selected-cell-background-color:#1e40af;--st-selected-first-cell-background-color:#1e3a8a;--st-selected-cell-color:#f3f4f6;--st-selected-first-cell-color:#f3f4f6;--st-selected-sub-cell-background-color:#1e3a8a;--st-selected-sub-cell-color:#f3f4f6;--st-dragging-background-color:#374151;--st-dragging-sub-header-background-color:#4b5563;--st-resize-handle-color:#4b5563;--st-resize-handle-selected-color:#60a5fa;--st-selected-border-color:#60a5fa;--st-editable-cell-focus-border-color:#60a5fa;--st-focus-ring-color:#60a5fa;--st-button-hover-background-color:#374151;--st-button-active-background-color:#3b82f6;--st-next-prev-btn-color:#9ca3af;--st-next-prev-btn-disabled-color:#4b5563;--st-page-btn-color:#d1d5db;--st-page-btn-hover-background-color:#374151;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#4b5563;--st-column-editor-background-color:#1f2937;--st-column-editor-popout-background-color:#1f2937;--st-column-editor-text-color:#9ca3af;--st-datepicker-weekday-color:#9ca3af;--st-datepicker-other-month-color:#4b5563;--st-filter-button-disabled-background-color:#374151;--st-filter-button-disabled-text-color:#6b7280;--st-cell-flash-color:#1e40af;--st-copy-flash-color:#60a5fa;--st-warning-flash-color:#ef4444;--st-tooltip-background-color:#f3f4f6;--st-tooltip-text-color:#111827;--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000004d,0 4px 6px -2px #0003;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#1e40af;--st-selection-highlight-indicator-color:#374151;--st-loading-skeleton-bg-color:#374151;--st-chart-color:#60a5fa;--st-chart-fill-color:#3b82f6;--st-drag-separator-color:#60a5fa;--st-body-background-color:#1f2937}.theme-modern-dark .st-wrapper{border:1px solid #374151}.theme-modern-dark .st-header-main,.theme-modern-dark .st-header-pinned-left,.theme-modern-dark .st-header-pinned-right{border-bottom:1px solid #374151}.theme-modern-dark .st-body-pinned-left,.theme-modern-dark .st-header-pinned-left{border-right:1px solid #374151}.theme-modern-dark .st-body-pinned-right,.theme-modern-dark .st-header-pinned-right{border-left:1px solid #374151}.theme-modern-dark .st-row-separator{background-color:#374151}.theme-modern-dark .st-header-cell{color:#d1d5db;font-size:14px;font-weight:500}.theme-modern-dark .st-cell-content{color:#f3f4f6;font-size:14px}.theme-modern-dark .st-row.hovered{-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.theme-modern-dark .st-footer{background-color:#1f2937;border-top:1px solid #374151;gap:12px;padding:12px 16px}.theme-modern-dark .st-footer-results-text{color:#d1d5db;font-size:14px}.theme-modern-dark .st-footer-pagination{-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:2px;overflow:hidden}.theme-modern-dark .st-page-ellipsis{color:#9ca3af;font-weight:400;padding:0 4px}.theme-modern-dark .st-page-btn{-ms-flex-negative:0;border-radius:4px;color:#d1d5db;flex-shrink:0;font-size:13px;font-weight:500;margin-right:0;min-width:36px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-dark .st-page-btn:hover{background-color:#374151}.theme-modern-dark .st-page-btn.active{background-color:#3b82f6;color:#fff;font-weight:600}.theme-modern-dark .st-next-prev-btn{-ms-flex-negative:0;border-radius:4px;flex-shrink:0;margin-left:4px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-dark .st-next-prev-btn:not(.disabled):hover{background-color:#374151}.theme-modern-dark .st-next-prev-btn.disabled>*{fill:#4b5563}.theme-modern-dark .st-horizontal-scrollbar-container{background-color:#111827;border-top:1px solid #374151}.theme-modern-dark .st-group-header{border-bottom:1px solid #374151;font-weight:500}.theme-modern-dark .st-checkbox-custom{background-color:#1f2937;border:1.5px solid #4b5563;border-radius:4px}.theme-modern-dark .st-checkbox-custom.st-checked{background-color:#3b82f6;border-color:#3b82f6}.theme-modern-dark .st-empty-state{color:#9ca3af}
@@ -66,6 +66,8 @@ export declare class SimpleTableVanilla {
66
66
  private getRenderState;
67
67
  private render;
68
68
  update(config: Partial<SimpleTableConfig>): void;
69
+ /** @deprecated Use {@link update} — same behavior. */
70
+ updateConfig(config: Partial<SimpleTableConfig>): void;
69
71
  destroy(): void;
70
72
  getAPI(): TableAPI;
71
73
  }
@@ -1,5 +1,7 @@
1
1
  import { SimpleTableConfig } from "../../types/SimpleTableConfig";
2
2
  import { CustomTheme } from "../../types/CustomTheme";
3
+ import { ColumnEditorRowRenderer } from "../../types/ColumnEditorRowRendererProps";
4
+ import { ColumnEditorCustomRenderer } from "../../types/ColumnEditorCustomRendererProps";
3
5
  import HeaderObject, { Accessor } from "../../types/HeaderObject";
4
6
  export interface ResolvedIcons {
5
7
  drag: string | HTMLElement | SVGSVGElement;
@@ -18,7 +20,8 @@ export interface MergedColumnEditorConfig {
18
20
  searchPlaceholder: string;
19
21
  allowColumnPinning: boolean;
20
22
  searchFunction?: (header: HeaderObject, searchText: string) => boolean;
21
- rowRenderer?: any;
23
+ rowRenderer?: ColumnEditorRowRenderer;
24
+ customRenderer?: ColumnEditorCustomRenderer;
22
25
  }
23
26
  export declare class TableInitializer {
24
27
  static resolveIcons(config: SimpleTableConfig): ResolvedIcons;
@@ -31,6 +31,7 @@ export interface RenderContext {
31
31
  getCollapsedRows: () => Map<string, number>;
32
32
  getCollapsedHeaders?: () => Set<Accessor>;
33
33
  getExpandedRows: () => Map<string, number>;
34
+ getHeaders: () => HeaderObject[];
34
35
  getRowStateMap: () => Map<string | number, RowState>;
35
36
  headerRegistry: Map<string, any>;
36
37
  headers: HeaderObject[];
@@ -96,6 +97,12 @@ export declare class RenderOrchestrator {
96
97
  getLastProcessedResult(): ProcessRowsResult | null;
97
98
  invalidateCache(type?: "body" | "header" | "context" | "all"): void;
98
99
  computeEffectiveHeaders(headers: HeaderObject[], config: SimpleTableConfig, customTheme: CustomTheme, containerWidth?: number): HeaderObject[];
100
+ /**
101
+ * Warms flattened/processed row caches so imperative APIs (e.g. getVisibleRows) are
102
+ * correct before the first ResizeObserver-driven render, without mutating the DOM.
103
+ */
104
+ primeLastProcessedResult(context: RenderContext, state: RenderState): void;
105
+ private buildRowModelSnapshot;
99
106
  render(elements: {
100
107
  bodyContainer: HTMLElement;
101
108
  content: HTMLElement;
@@ -25,6 +25,7 @@ export interface TableRendererDeps {
25
25
  getCollapsedHeaders?: () => Set<Accessor>;
26
26
  getCollapsedRows: () => Map<string, number>;
27
27
  getExpandedRows: () => Map<string, number>;
28
+ getHeaders: () => HeaderObject[];
28
29
  getRowStateMap: () => Map<string | number, any>;
29
30
  headerRegistry: Map<string, any>;
30
31
  headers: HeaderObject[];
@@ -16,7 +16,6 @@ import type SharedTableProps from "./types/SharedTableProps";
16
16
  import type SortColumn from "./types/SortColumn";
17
17
  import type TableHeaderProps from "./types/TableHeaderProps";
18
18
  import type { TableAPI, SetHeaderRenameProps, ExportToCSVProps } from "./types/TableAPI";
19
- import type TableRefType from "./types/TableRefType";
20
19
  import type TableRowProps from "./types/TableRowProps";
21
20
  import type Theme from "./types/Theme";
22
21
  import type UpdateDataProps from "./types/UpdateCellProps";
@@ -31,6 +30,7 @@ import type HeaderRendererProps from "./types/HeaderRendererProps";
31
30
  import type { HeaderRenderer, HeaderRendererComponents } from "./types/HeaderRendererProps";
32
31
  import type ColumnEditorRowRendererProps from "./types/ColumnEditorRowRendererProps";
33
32
  import type { ColumnEditorRowRenderer, ColumnEditorRowRendererComponents } from "./types/ColumnEditorRowRendererProps";
33
+ import type { ColumnEditorCustomRendererProps, ColumnEditorCustomRenderer } from "./types/ColumnEditorCustomRendererProps";
34
34
  import type HeaderDropdownProps from "./types/HeaderDropdownProps";
35
35
  import type { HeaderDropdown } from "./types/HeaderDropdownProps";
36
36
  import type { RowButtonProps } from "./types/RowButton";
@@ -45,4 +45,5 @@ import type { SimpleTableProps } from "./types/SimpleTableProps";
45
45
  import type { RowId } from "./types/RowId";
46
46
  import type { PinnedSectionsState } from "./types/PinnedSectionsState";
47
47
  export { SimpleTableVanilla };
48
- export type { Accessor, AggregationConfig, AggregationType, BoundingBox, Cell, CellChangeProps, CellClickProps, CellRenderer, CellRendererProps, CellValue, ChartOptions, ColumnEditorConfig, ColumnEditorRowRenderer, ColumnEditorRowRendererComponents, ColumnEditorRowRendererProps, ColumnEditorSearchFunction, ColumnType, ColumnVisibilityState, Comparator, ComparatorProps, CustomTheme, CustomThemeProps, DragHandlerProps, EmptyStateRenderer, EmptyStateRendererProps, EnumOption, ErrorStateRenderer, ErrorStateRendererProps, ExportToCSVProps, ExportValueGetter, ExportValueProps, FilterCondition, FooterRendererProps, GetRowId, GetRowIdParams, IconsConfig, LoadingStateRenderer, LoadingStateRendererProps, HeaderDropdown, HeaderDropdownProps, HeaderObject, HeaderRenderer, HeaderRendererProps, HeaderRendererComponents, OnRowGroupExpandProps, OnSortProps, QuickFilterConfig, QuickFilterGetter, QuickFilterGetterProps, QuickFilterMode, Row, RowButtonProps, RowId, RowSelectionChangeProps, RowState, SetHeaderRenameProps, SharedTableProps, ShowWhen, SimpleTableConfig, SimpleTableProps, SortColumn, TableAPI, TableFilterState, TableHeaderProps, TableRefType, TableRowProps, Theme, PinnedSectionsState, UpdateDataProps, ValueFormatter, ValueFormatterProps, ValueGetter, ValueGetterProps, };
48
+ export { asRows } from "./utils/asRows";
49
+ export type { Accessor, AggregationConfig, AggregationType, BoundingBox, Cell, CellChangeProps, CellClickProps, CellRenderer, CellRendererProps, CellValue, ChartOptions, ColumnEditorConfig, ColumnEditorCustomRenderer, ColumnEditorCustomRendererProps, ColumnEditorRowRenderer, ColumnEditorRowRendererComponents, ColumnEditorRowRendererProps, ColumnEditorSearchFunction, ColumnType, ColumnVisibilityState, Comparator, ComparatorProps, CustomTheme, CustomThemeProps, DragHandlerProps, EmptyStateRenderer, EmptyStateRendererProps, EnumOption, ErrorStateRenderer, ErrorStateRendererProps, ExportToCSVProps, ExportValueGetter, ExportValueProps, FilterCondition, FooterRendererProps, GetRowId, GetRowIdParams, IconsConfig, LoadingStateRenderer, LoadingStateRendererProps, HeaderDropdown, HeaderDropdownProps, HeaderObject, HeaderRenderer, HeaderRendererProps, HeaderRendererComponents, OnRowGroupExpandProps, OnSortProps, QuickFilterConfig, QuickFilterGetter, QuickFilterGetterProps, QuickFilterMode, Row, RowButtonProps, RowId, RowSelectionChangeProps, RowState, SetHeaderRenameProps, SharedTableProps, ShowWhen, SimpleTableConfig, SimpleTableProps, SortColumn, TableAPI, TableFilterState, TableHeaderProps, TableRowProps, Theme, PinnedSectionsState, UpdateDataProps, ValueFormatter, ValueFormatterProps, ValueGetter, ValueGetterProps, };
@@ -22,6 +22,8 @@ export declare class DimensionManager {
22
22
  private subscribers;
23
23
  private resizeObserver;
24
24
  private rafId;
25
+ /** Set when applyContainerWidthSync updates state before any subscriber exists. */
26
+ private initialNotifyPending;
25
27
  constructor(config: DimensionManagerConfig);
26
28
  private getHeaderDepth;
27
29
  private calculateMaxHeaderDepth;
@@ -29,6 +31,7 @@ export declare class DimensionManager {
29
31
  private convertHeightToPixels;
30
32
  private calculateContentHeight;
31
33
  private observeContainer;
34
+ private applyContainerWidthSync;
32
35
  updateConfig(config: Partial<DimensionManagerConfig>): void;
33
36
  subscribe(callback: StateChangeCallback): () => void;
34
37
  private notifySubscribers;
@@ -139,6 +139,13 @@ export declare class SelectionManager {
139
139
  */
140
140
  private updateCellFlashClasses;
141
141
  private static readonly SELECTION_CLASSES;
142
+ private static readonly HEADER_SELECTION_CLASSES;
143
+ /**
144
+ * Keep column header highlight in sync with cell/column selection during drag.
145
+ * Body cells are patched here; headers normally update only on full render.
146
+ */
147
+ private syncHeaderSelectionClasses;
148
+ private clearHeaderSelectionHighlightClasses;
142
149
  /**
143
150
  * Apply selection classes to all currently rendered cells. Used after drag ends
144
151
  * so that the DOM (which may have been replaced during scroll) reflects selection.
@@ -11,5 +11,6 @@ export declare function calculateNearestCell(clientX: number, clientY: number):
11
11
  export declare function getCellFromMousePosition(clientX: number, clientY: number): Cell | null;
12
12
  /**
13
13
  * Handle auto-scrolling when dragging near table edges.
14
+ * @param root - Table root (e.g. `.simple-table-root`); limits queries to this instance.
14
15
  */
15
- export declare function handleAutoScroll(clientX: number, clientY: number): void;
16
+ export declare function handleAutoScroll(clientX: number, clientY: number, root?: Document | HTMLElement): void;
@@ -6,6 +6,12 @@ import type { CustomTheme } from "../../types/CustomTheme";
6
6
  export declare const createSetString: ({ rowIndex, colIndex, rowId }: Cell) => string;
7
7
  export interface SelectionManagerConfig {
8
8
  selectableCells: boolean;
9
+ /**
10
+ * When true, column header click selects columns (`st-header-selected` on headers).
11
+ * Cell-in-column header tint (`st-header-has-highlighted-cell`) also applies when `selectableCells` is true
12
+ * even if this is false.
13
+ */
14
+ selectableColumns?: boolean;
9
15
  headers: HeaderObject[];
10
16
  tableRows: TableRowType[];
11
17
  onCellEdit?: (props: any) => void;
@@ -1,5 +1,6 @@
1
1
  import HeaderObject from "./HeaderObject";
2
2
  import { ColumnEditorRowRenderer } from "./ColumnEditorRowRendererProps";
3
+ import { ColumnEditorCustomRenderer } from "./ColumnEditorCustomRendererProps";
3
4
  /**
4
5
  * Custom search function for filtering columns in the column editor
5
6
  * @param header - The header object to check
@@ -26,7 +27,9 @@ export interface ColumnEditorConfig {
26
27
  allowColumnPinning?: boolean;
27
28
  /** Custom renderer for column editor row layout to reposition icons and labels */
28
29
  rowRenderer?: ColumnEditorRowRenderer;
30
+ /** Custom renderer for the entire column editor panel. Receives pre-built sections (search, list, reset) and headers. */
31
+ customRenderer?: ColumnEditorCustomRenderer;
29
32
  }
30
- export declare const DEFAULT_COLUMN_EDITOR_CONFIG: Required<Omit<ColumnEditorConfig, "searchFunction" | "rowRenderer">>;
33
+ export declare const DEFAULT_COLUMN_EDITOR_CONFIG: Required<Omit<ColumnEditorConfig, "searchFunction" | "rowRenderer" | "customRenderer">>;
31
34
  /** Column editor config with defaults applied (text, searchEnabled, searchPlaceholder are required) */
32
- export type MergedColumnEditorConfig = Required<Pick<ColumnEditorConfig, "text" | "searchEnabled" | "searchPlaceholder" | "allowColumnPinning">> & Pick<ColumnEditorConfig, "searchFunction" | "rowRenderer">;
35
+ export type MergedColumnEditorConfig = Required<Pick<ColumnEditorConfig, "text" | "searchEnabled" | "searchPlaceholder" | "allowColumnPinning">> & Pick<ColumnEditorConfig, "searchFunction" | "rowRenderer" | "customRenderer">;
@@ -0,0 +1,14 @@
1
+ import type HeaderObject from "./HeaderObject";
2
+ export interface ColumnEditorCustomRendererProps {
3
+ /** The current headers array */
4
+ headers: HeaderObject[];
5
+ /** Pre-built search input section, or null if search is disabled */
6
+ searchSection: HTMLElement | null;
7
+ /** Pre-built column list section with drag-and-drop, checkboxes, etc. */
8
+ listSection: HTMLElement;
9
+ /** Pre-built reset button section, or null if no default headers are configured */
10
+ resetSection: HTMLElement | null;
11
+ /** Function to reset columns to their default configuration */
12
+ resetColumns?: () => void;
13
+ }
14
+ export type ColumnEditorCustomRenderer = (props: ColumnEditorCustomRendererProps) => HTMLElement | string | null;
@@ -24,3 +24,5 @@ export type CustomTheme = Required<CustomThemeProps>;
24
24
  * These match the original hardcoded constants throughout the codebase
25
25
  */
26
26
  export declare const DEFAULT_CUSTOM_THEME: CustomTheme;
27
+ /** Shallow value equality — used to skip layout work when React passes a new `customTheme` object with the same numbers. */
28
+ export declare function areCustomThemesEqual(a: CustomTheme, b: CustomTheme): boolean;
@@ -80,7 +80,7 @@ type HeaderObject = {
80
80
  label: string;
81
81
  minWidth?: number | string;
82
82
  sortingOrder?: ("asc" | "desc" | null)[];
83
- nestedTable?: Omit<SimpleTableProps, "rows" | "loadingStateRenderer" | "errorStateRenderer" | "emptyStateRenderer" | "tableEmptyStateRenderer" | "expandIcon" | "filterIcon" | "sortUpIcon" | "sortDownIcon" | "nextIcon" | "prevIcon" | "headerCollapseIcon" | "headerExpandIcon">;
83
+ nestedTable?: Omit<SimpleTableProps, "rows" | "loadingStateRenderer" | "errorStateRenderer" | "emptyStateRenderer" | "tableEmptyStateRenderer">;
84
84
  pinned?: Pinned;
85
85
  quickFilterable?: boolean;
86
86
  quickFilterGetter?: QuickFilterGetter;
@@ -19,14 +19,12 @@ import { ColumnEditorConfig } from "./ColumnEditorConfig";
19
19
  import { VanillaIconsConfig } from "./IconsConfig";
20
20
  import { QuickFilterConfig } from "./QuickFilterTypes";
21
21
  export interface SimpleTableConfig {
22
- allowAnimations?: boolean;
23
22
  autoExpandColumns?: boolean;
24
23
  canExpandRowGroup?: (row: Row) => boolean;
25
24
  cellUpdateFlash?: boolean;
26
25
  className?: string;
27
26
  columnBorders?: boolean;
28
27
  columnEditorConfig?: ColumnEditorConfig;
29
- columnEditorText?: string;
30
28
  columnReordering?: boolean;
31
29
  columnResizing?: boolean;
32
30
  copyHeadersToClipboard?: boolean;
@@ -12,7 +12,6 @@ import OnNextPage from "./OnNextPage";
12
12
  import OnRowGroupExpandProps from "./OnRowGroupExpandProps";
13
13
  import RowSelectionChangeProps from "./RowSelectionChangeProps";
14
14
  import { RowButton } from "./RowButton";
15
- import TableRefType from "./TableRefType";
16
15
  import Theme from "./Theme";
17
16
  import { CustomThemeProps } from "./CustomTheme";
18
17
  import { GetRowId } from "./GetRowId";
@@ -26,7 +25,6 @@ export interface SimpleTableProps {
26
25
  className?: string;
27
26
  columnBorders?: boolean;
28
27
  columnEditorConfig?: ColumnEditorConfig;
29
- columnEditorText?: string;
30
28
  columnReordering?: boolean;
31
29
  columnResizing?: boolean;
32
30
  copyHeadersToClipboard?: boolean;
@@ -40,14 +38,10 @@ export interface SimpleTableProps {
40
38
  enableStickyParents?: boolean;
41
39
  errorStateRenderer?: ErrorStateRenderer;
42
40
  expandAll?: boolean;
43
- expandIcon?: IconsConfig["expand"];
44
41
  externalFilterHandling?: boolean;
45
42
  externalSortHandling?: boolean;
46
- filterIcon?: IconsConfig["filter"];
47
43
  footerRenderer?: (props: FooterRendererProps) => HTMLElement | string | null;
48
- headerCollapseIcon?: IconsConfig["headerCollapse"];
49
44
  headerDropdown?: HeaderDropdown;
50
- headerExpandIcon?: IconsConfig["headerExpand"];
51
45
  height?: string | number;
52
46
  hideFooter?: boolean;
53
47
  hideHeader?: boolean;
@@ -58,7 +52,6 @@ export interface SimpleTableProps {
58
52
  isLoading?: boolean;
59
53
  loadingStateRenderer?: LoadingStateRenderer;
60
54
  maxHeight?: string | number;
61
- nextIcon?: IconsConfig["next"];
62
55
  onCellClick?: (props: CellClickProps) => void;
63
56
  onCellEdit?: (props: CellChangeProps) => void;
64
57
  onColumnOrderChange?: (newHeaders: HeaderObject[]) => void;
@@ -74,7 +67,6 @@ export interface SimpleTableProps {
74
67
  onRowGroupExpand?: (props: OnRowGroupExpandProps) => void | Promise<void>;
75
68
  onRowSelectionChange?: (props: RowSelectionChangeProps) => void;
76
69
  onSortChange?: (sort: SortColumn | null) => void;
77
- prevIcon?: IconsConfig["prev"];
78
70
  quickFilter?: QuickFilterConfig;
79
71
  rowButtons?: RowButton[];
80
72
  rowGrouping?: Accessor[];
@@ -85,12 +77,7 @@ export interface SimpleTableProps {
85
77
  selectableColumns?: boolean;
86
78
  serverSidePagination?: boolean;
87
79
  shouldPaginate?: boolean;
88
- sortDownIcon?: IconsConfig["sortDown"];
89
- sortUpIcon?: IconsConfig["sortUp"];
90
80
  tableEmptyStateRenderer?: HTMLElement | string | null;
91
- tableRef?: {
92
- current: TableRefType | null;
93
- };
94
81
  theme?: Theme;
95
82
  totalRowCount?: number;
96
83
  useHoverRowBackground?: boolean;
@@ -0,0 +1,7 @@
1
+ import type Row from "../types/Row";
2
+ /**
3
+ * Structural typing bridge: domain row interfaces often do not assign to {@link Row}[]
4
+ * because `Row` uses an index signature. Use when passing typed data to `rows` and
5
+ * similar APIs.
6
+ */
7
+ export declare function asRows<T>(rows: readonly T[]): Row[];
@@ -0,0 +1,12 @@
1
+ import { AbsoluteBodyCell, CellRenderContext } from "./types";
2
+ export declare const createExpandIcon: (cell: AbsoluteBodyCell, context: CellRenderContext, isExpanded: boolean) => HTMLElement;
3
+ export type UpdateExpandIconStateOptions = {
4
+ /** aria-label when the group is expanded (chevron shows collapse action). */
5
+ ariaLabelWhenExpanded?: string;
6
+ /** aria-label when the group is collapsed (chevron shows expand action). */
7
+ ariaLabelWhenCollapsed?: string;
8
+ /** When true, sets aria-expanded to match isExpanded after the toggle. */
9
+ syncAriaExpanded?: boolean;
10
+ };
11
+ /** Update expand/collapse icon direction on an existing cell (e.g. after expand state changes for nested grids). */
12
+ export declare const updateExpandIconState: (cellElement: HTMLElement, isExpanded: boolean, options?: UpdateExpandIconStateOptions) => void;
@@ -10,7 +10,6 @@ export interface CreateColumnEditorOptions {
10
10
  searchPlaceholder: string;
11
11
  searchFunction?: ColumnEditorSearchFunction;
12
12
  columnEditorConfig: ColumnEditorConfig;
13
- contextHeaders: HeaderObject[];
14
13
  essentialAccessors?: ReadonlySet<string>;
15
14
  resetColumns?: () => void;
16
15
  setHeaders: (headers: HeaderObject[]) => void;