@plumile/ui 0.1.120 → 0.1.125

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 (335) hide show
  1. package/README.md +12 -0
  2. package/lib/esm/__tests__/reactDomTestUtils.js +48 -0
  3. package/lib/esm/__tests__/reactDomTestUtils.js.map +1 -0
  4. package/lib/esm/admin/organisms/admin_sidebar/AdminSidebar.js +1 -1
  5. package/lib/esm/admin/organisms/admin_sidebar/adminSidebar.css.js +3 -2
  6. package/lib/esm/admin/organisms/admin_topbar/adminTopbar.css.js +1 -1
  7. package/lib/esm/admin/theme/adminDensity.css.js.map +1 -1
  8. package/lib/esm/admin/theme/adminSurface.css.js.map +1 -1
  9. package/lib/esm/atomic/atoms/badge/badge.css.js +7 -7
  10. package/lib/esm/atomic/atoms/badge/badge.css.js.map +1 -1
  11. package/lib/esm/atomic/atoms/button/button.css.js +38 -38
  12. package/lib/esm/atomic/atoms/button/button.css.js.map +1 -1
  13. package/lib/esm/atomic/atoms/checkbox/checkbox.css.js +8 -8
  14. package/lib/esm/atomic/atoms/checkbox/checkbox.css.js.map +1 -1
  15. package/lib/esm/atomic/atoms/error_message/errorMessage.css.js +1 -1
  16. package/lib/esm/atomic/atoms/input/input.css.js +9 -9
  17. package/lib/esm/atomic/atoms/input/input.css.js.map +1 -1
  18. package/lib/esm/atomic/atoms/label/label.css.js +7 -7
  19. package/lib/esm/atomic/atoms/modal/Modal.js +1 -1
  20. package/lib/esm/atomic/atoms/modal/modal.css.js +1 -1
  21. package/lib/esm/atomic/atoms/modal/modal.css.js.map +1 -1
  22. package/lib/esm/atomic/atoms/overlay/overlay.css.js +1 -1
  23. package/lib/esm/atomic/atoms/textarea/textarea.css.js +8 -8
  24. package/lib/esm/atomic/atoms/textarea/textarea.css.js.map +1 -1
  25. package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.js +1 -1
  26. package/lib/esm/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.js +1 -1
  27. package/lib/esm/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.js.map +1 -1
  28. package/lib/esm/atomic/molecules/card/Card.css.js +1 -1
  29. package/lib/esm/atomic/molecules/checkbox_field/checkboxField.css.js +1 -1
  30. package/lib/esm/atomic/molecules/checkbox_field/checkboxField.css.js.map +1 -1
  31. package/lib/esm/atomic/molecules/dropdown/dropdown.css.js +1 -1
  32. package/lib/esm/atomic/molecules/empty-state/EmptyState.css.js +1 -1
  33. package/lib/esm/atomic/molecules/form/FormErrorBanner.css.js +1 -1
  34. package/lib/esm/atomic/molecules/form/formStyles.css.js +1 -1
  35. package/lib/esm/atomic/molecules/form_error/formError.css.js +1 -1
  36. package/lib/esm/atomic/molecules/form_field/formField.css.js +1 -1
  37. package/lib/esm/atomic/molecules/highlight/HighlightCode.css.js +1 -1
  38. package/lib/esm/atomic/molecules/highlight/highlightStyles.css.js +1 -1
  39. package/lib/esm/atomic/molecules/markdown/LazyMarkdownRenderer.css.js +1 -1
  40. package/lib/esm/atomic/molecules/markdown/components/MarkdownArticleContainer.css.js +1 -1
  41. package/lib/esm/atomic/molecules/markdown/components/MarkdownArticleContainer.css.js.map +1 -1
  42. package/lib/esm/atomic/molecules/markdown/components/MarkdownBlockquote.css.js +1 -1
  43. package/lib/esm/atomic/molecules/markdown/components/MarkdownCodeCopyButton.css.js +1 -1
  44. package/lib/esm/atomic/molecules/markdown/components/MarkdownCodeCopyButton.css.js.map +1 -1
  45. package/lib/esm/atomic/molecules/markdown/components/MarkdownDelete.css.js +1 -1
  46. package/lib/esm/atomic/molecules/markdown/components/MarkdownDelete.css.js.map +1 -1
  47. package/lib/esm/atomic/molecules/markdown/components/MarkdownEmphasis.css.js.map +1 -1
  48. package/lib/esm/atomic/molecules/markdown/components/MarkdownFootnoteDefinition.css.js +1 -1
  49. package/lib/esm/atomic/molecules/markdown/components/MarkdownFootnoteReference.css.js +1 -2
  50. package/lib/esm/atomic/molecules/markdown/components/MarkdownFootnoteReference.css.js.map +1 -1
  51. package/lib/esm/atomic/molecules/markdown/components/MarkdownFootnotesSection.css.js +1 -1
  52. package/lib/esm/atomic/molecules/markdown/components/MarkdownHeading.css.js +8 -7
  53. package/lib/esm/atomic/molecules/markdown/components/MarkdownHeading.css.js.map +1 -1
  54. package/lib/esm/atomic/molecules/markdown/components/MarkdownHtmlFallback.css.js +1 -1
  55. package/lib/esm/atomic/molecules/markdown/components/MarkdownImage.css.js +1 -1
  56. package/lib/esm/atomic/molecules/markdown/components/MarkdownInlineCode.css.js +1 -1
  57. package/lib/esm/atomic/molecules/markdown/components/MarkdownInlineCode.css.js.map +1 -1
  58. package/lib/esm/atomic/molecules/markdown/components/MarkdownLink.css.js +1 -1
  59. package/lib/esm/atomic/molecules/markdown/components/MarkdownLink.css.js.map +1 -1
  60. package/lib/esm/atomic/molecules/markdown/components/MarkdownList.css.js +1 -1
  61. package/lib/esm/atomic/molecules/markdown/components/MarkdownList.css.js.map +1 -1
  62. package/lib/esm/atomic/molecules/markdown/components/MarkdownListItem.css.js +1 -1
  63. package/lib/esm/atomic/molecules/markdown/components/MarkdownListItem.css.js.map +1 -1
  64. package/lib/esm/atomic/molecules/markdown/components/MarkdownMark.css.js +1 -1
  65. package/lib/esm/atomic/molecules/markdown/components/MarkdownMark.css.js.map +1 -1
  66. package/lib/esm/atomic/molecules/markdown/components/MarkdownMermaidBlock.css.js +1 -1
  67. package/lib/esm/atomic/molecules/markdown/components/MarkdownParagraph.css.js +1 -1
  68. package/lib/esm/atomic/molecules/markdown/components/MarkdownParagraph.css.js.map +1 -1
  69. package/lib/esm/atomic/molecules/markdown/components/MarkdownStrong.css.js +1 -1
  70. package/lib/esm/atomic/molecules/markdown/components/MarkdownStrong.css.js.map +1 -1
  71. package/lib/esm/atomic/molecules/markdown/components/MarkdownSubscript.css.js +1 -1
  72. package/lib/esm/atomic/molecules/markdown/components/MarkdownSubscript.css.js.map +1 -1
  73. package/lib/esm/atomic/molecules/markdown/components/MarkdownSuperscript.css.js +1 -1
  74. package/lib/esm/atomic/molecules/markdown/components/MarkdownSuperscript.css.js.map +1 -1
  75. package/lib/esm/atomic/molecules/markdown/components/MarkdownTable.css.js +1 -1
  76. package/lib/esm/atomic/molecules/markdown/components/MarkdownTable.css.js.map +1 -1
  77. package/lib/esm/atomic/molecules/markdown/components/MarkdownTableCaption.css.js +1 -1
  78. package/lib/esm/atomic/molecules/markdown/components/MarkdownTableCell.css.js +1 -1
  79. package/lib/esm/atomic/molecules/markdown/components/MarkdownTableCell.css.js.map +1 -1
  80. package/lib/esm/atomic/molecules/markdown/components/MarkdownTableHead.css.js +1 -1
  81. package/lib/esm/atomic/molecules/markdown/components/MarkdownTableHeaderCell.css.js +1 -1
  82. package/lib/esm/atomic/molecules/markdown/components/MarkdownTaskListItem.css.js +1 -1
  83. package/lib/esm/atomic/molecules/markdown/components/MarkdownTaskListItem.css.js.map +1 -1
  84. package/lib/esm/atomic/molecules/markdown/components/MarkdownText.css.js +1 -1
  85. package/lib/esm/atomic/molecules/markdown/components/MarkdownText.css.js.map +1 -1
  86. package/lib/esm/atomic/molecules/markdown/components/MarkdownThematicBreak.css.js +1 -1
  87. package/lib/esm/atomic/molecules/tabs/tabs.css.js +4 -4
  88. package/lib/esm/atomic/molecules/toast/toast.css.js +2 -2
  89. package/lib/esm/atomic/molecules/toast/toast.css.js.map +1 -1
  90. package/lib/esm/atomic/organisms/login_form/loginForm.css.js +1 -1
  91. package/lib/esm/atomic/organisms/sidebar/SidebarContainer.js +2 -2
  92. package/lib/esm/atomic/organisms/sidebar/navigationSidebar.css.js +13 -13
  93. package/lib/esm/atomic/organisms/sidebar/sidebar.css.js +2 -2
  94. package/lib/esm/atomic/templates/auth_layout/authLayout.css.js +1 -1
  95. package/lib/esm/atomic/templates/detail-page/DetailPage.js +4 -4
  96. package/lib/esm/atomic/templates/detail-page/detailPage.css.js +1 -1
  97. package/lib/esm/atomic/templates/page-container/PageContainer.js +3 -3
  98. package/lib/esm/atomic/templates/page-container/pageContainer.css.js +1 -1
  99. package/lib/esm/backoffice/atoms/backoffice_id_badge/backofficeIdBadge.css.js +1 -1
  100. package/lib/esm/backoffice/atoms/copyable_text/copyableText.css.js +1 -1
  101. package/lib/esm/backoffice/atoms/environment_badge/environmentBadge.css.js +1 -1
  102. package/lib/esm/backoffice/atoms/shortcut_hint/shortcutHint.css.js +1 -1
  103. package/lib/esm/backoffice/atoms/skeleton/skeleton.css.js +5 -5
  104. package/lib/esm/backoffice/atoms/skeleton/skeleton.css.js.map +1 -1
  105. package/lib/esm/backoffice/atoms/spinner/spinner.css.js +1 -1
  106. package/lib/esm/backoffice/atoms/spinner/spinner.css.js.map +1 -1
  107. package/lib/esm/backoffice/atoms/status_badge/statusBadge.css.js +1 -1
  108. package/lib/esm/backoffice/atoms/tag/tag.css.js +7 -7
  109. package/lib/esm/backoffice/atoms/tag/tag.css.js.map +1 -1
  110. package/lib/esm/backoffice/molecules/backoffice_detail_layout/backofficeDetailLayout.css.js +1 -1
  111. package/lib/esm/backoffice/molecules/backoffice_empty_state/backofficeEmptyState.css.js +1 -1
  112. package/lib/esm/backoffice/molecules/backoffice_filter_drawer/BackofficeFilterDrawer.js +7 -7
  113. package/lib/esm/backoffice/molecules/backoffice_filter_drawer/backofficeFilterDrawer.css.js +1 -1
  114. package/lib/esm/backoffice/molecules/backoffice_filter_drawer/backofficeFilterDrawer.css.js.map +1 -1
  115. package/lib/esm/backoffice/molecules/backoffice_filter_field/backofficeFilterField.css.js +1 -1
  116. package/lib/esm/backoffice/molecules/backoffice_filters_bar/backofficeFiltersBar.css.js +1 -1
  117. package/lib/esm/backoffice/molecules/backoffice_form_section/BackofficeFormSection.js +3 -3
  118. package/lib/esm/backoffice/molecules/backoffice_form_section/backofficeFormSection.css.js +1 -1
  119. package/lib/esm/backoffice/molecules/backoffice_infinite_list_status/BackofficeInfiniteListStatus.js +2 -2
  120. package/lib/esm/backoffice/molecules/backoffice_infinite_list_status/backofficeInfiniteListStatus.css.js +1 -1
  121. package/lib/esm/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.css.js +1 -1
  122. package/lib/esm/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.js +1 -1
  123. package/lib/esm/backoffice/molecules/backoffice_json_viewer/backofficeJsonViewer.css.js +1 -1
  124. package/lib/esm/backoffice/molecules/backoffice_key_value_list/backofficeKeyValueList.css.js +1 -1
  125. package/lib/esm/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.js +1 -1
  126. package/lib/esm/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.js.map +1 -1
  127. package/lib/esm/backoffice/molecules/backoffice_page_header/BackofficePageHeader.js +4 -4
  128. package/lib/esm/backoffice/molecules/backoffice_page_header/backofficePageHeader.css.js +1 -1
  129. package/lib/esm/backoffice/molecules/backoffice_relations_menu/BackofficeRelationsMenu.js +4 -4
  130. package/lib/esm/backoffice/molecules/backoffice_relations_menu/backofficeRelationsMenu.css.js +1 -1
  131. package/lib/esm/backoffice/molecules/backoffice_relations_menu/backofficeRelationsMenu.css.js.map +1 -1
  132. package/lib/esm/backoffice/molecules/backoffice_table_skeleton/backofficeTableSkeleton.css.js +4 -4
  133. package/lib/esm/backoffice/molecules/backoffice_table_toolbar/BackofficeTableToolbar.js +8 -8
  134. package/lib/esm/backoffice/molecules/backoffice_table_toolbar/backofficeTableToolbar.css.js +1 -1
  135. package/lib/esm/backoffice/molecules/backoffice_table_toolbar/backofficeTableToolbar.css.js.map +1 -1
  136. package/lib/esm/backoffice/molecules/backoffice_tabs/backofficeTabs.css.js +8 -8
  137. package/lib/esm/backoffice/molecules/backoffice_tabs/backofficeTabs.css.js.map +1 -1
  138. package/lib/esm/backoffice/molecules/bulk_actions_bar/bulkActionsBar.css.js +1 -1
  139. package/lib/esm/backoffice/molecules/confirm_dialog/confirmDialog.css.js +1 -1
  140. package/lib/esm/backoffice/molecules/filter_chip_row/filterChipRow.css.js +1 -1
  141. package/lib/esm/backoffice/molecules/filter_chip_row/filterChipRow.css.js.map +1 -1
  142. package/lib/esm/backoffice/molecules/global_search_input/globalSearchInput.css.js +1 -1
  143. package/lib/esm/backoffice/molecules/global_search_input/globalSearchInput.css.js.map +1 -1
  144. package/lib/esm/backoffice/molecules/inline_banner/inlineBanner.css.js +6 -6
  145. package/lib/esm/backoffice/molecules/inline_banner/inlineBanner.css.js.map +1 -1
  146. package/lib/esm/backoffice/molecules/sidebar_collapse_toggle/sidebarCollapseToggle.css.js +1 -1
  147. package/lib/esm/backoffice/molecules/sidebar_collapse_toggle/sidebarCollapseToggle.css.js.map +1 -1
  148. package/lib/esm/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.js +1 -1
  149. package/lib/esm/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.js.map +1 -1
  150. package/lib/esm/backoffice/molecules/sidebar_nav_section/SidebarNavSection.js +5 -5
  151. package/lib/esm/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.js +1 -1
  152. package/lib/esm/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.js.map +1 -1
  153. package/lib/esm/backoffice/molecules/sidebar_profile_menu/BackofficeSidebarProfileMenu.js +4 -4
  154. package/lib/esm/backoffice/molecules/sidebar_profile_menu/BackofficeSidebarProfileMenu.js.map +1 -1
  155. package/lib/esm/backoffice/molecules/sidebar_profile_menu/sidebarProfileMenu.css.js +5 -5
  156. package/lib/esm/backoffice/molecules/table_toolbar/tableToolbar.css.js +1 -1
  157. package/lib/esm/backoffice/organisms/audit_timeline/auditTimeline.css.js +1 -1
  158. package/lib/esm/backoffice/organisms/backoffice_data_table/backofficeDataTable.css.js +1 -1
  159. package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/backofficeVirtualizedConnectionTable.css.js +1 -1
  160. package/lib/esm/backoffice/organisms/entity_header/entityHeader.css.js +1 -1
  161. package/lib/esm/backoffice/templates/detail_page_template/DetailPageTemplate.js +2 -2
  162. package/lib/esm/backoffice/templates/detail_page_template/detailPageTemplate.css.js +2 -2
  163. package/lib/esm/backoffice/templates/detail_page_template/detailPageTemplate.css.js.map +1 -1
  164. package/lib/esm/backoffice/templates/list_page_template/ListPageTemplate.js +1 -1
  165. package/lib/esm/backoffice/templates/list_page_template/ListPageTemplate.js.map +1 -1
  166. package/lib/esm/backoffice/templates/list_page_template/listPageTemplate.css.js +10 -10
  167. package/lib/esm/backoffice/templates/list_page_template/listPageTemplate.css.js.map +1 -1
  168. package/lib/esm/components/agent/AgentMarkdownCard.css.js +1 -1
  169. package/lib/esm/components/charts/MetricHistoryChart.js +17 -39
  170. package/lib/esm/components/charts/MetricHistoryChart.js.map +1 -1
  171. package/lib/esm/components/charts/TimeSeriesLineChart.js +20 -32
  172. package/lib/esm/components/charts/TimeSeriesLineChart.js.map +1 -1
  173. package/lib/esm/components/charts/metricHistoryChart.css.js +1 -1
  174. package/lib/esm/components/charts/timeSeriesLineChart.css.js +1 -1
  175. package/lib/esm/components/dashboard/activity_card/ActivityCard.css.js +1 -1
  176. package/lib/esm/components/dashboard/activity_card/ActivityCard.js +2 -2
  177. package/lib/esm/components/dashboard/activity_feed/ActivityFeed.css.js +1 -1
  178. package/lib/esm/components/dashboard/dashboard_grid/DashboardGrid.css.js +21 -21
  179. package/lib/esm/components/dashboard/dashboard_grid/DashboardGrid.css.js.map +1 -1
  180. package/lib/esm/components/dashboard/metadata_strip/MetadataStrip.css.js +1 -1
  181. package/lib/esm/components/dashboard/metric_card/MetricCard.css.js +1 -1
  182. package/lib/esm/components/dashboard/metric_card/MetricCard.js +2 -2
  183. package/lib/esm/components/dashboard/metric_tile_group/MetricTileGroup.css.js +1 -1
  184. package/lib/esm/components/dashboard/page_hero/PageHero.css.js +1 -1
  185. package/lib/esm/components/dashboard/page_hero/PageHero.js +3 -3
  186. package/lib/esm/components/dashboard/section_nav/SectionNav.css.js +1 -1
  187. package/lib/esm/components/dashboard/section_nav/SectionNav.css.js.map +1 -1
  188. package/lib/esm/components/dashboard/segmented_nav/SegmentedNav.css.js +1 -1
  189. package/lib/esm/components/dashboard/segmented_nav/SegmentedNav.css.js.map +1 -1
  190. package/lib/esm/components/dashboard/selectable_card/SelectableCard.css.js +1 -1
  191. package/lib/esm/components/dashboard/selectable_card/SelectableCard.css.js.map +1 -1
  192. package/lib/esm/components/dashboard/selectable_card/SelectableCard.js +2 -2
  193. package/lib/esm/components/dashboard/status_summary_panel/StatusSummaryPanel.css.js +1 -1
  194. package/lib/esm/components/dashboard/status_summary_panel/StatusSummaryPanel.js +1 -1
  195. package/lib/esm/components/dashboard/timeline_event_row/TimelineEventRow.css.js +1 -1
  196. package/lib/esm/components/dashboard/timeline_event_row/TimelineEventRow.js +2 -2
  197. package/lib/esm/components/data-table/DataTable.css.js +28 -28
  198. package/lib/esm/components/data-table/DataTable.css.js.map +1 -1
  199. package/lib/esm/components/data-table/DataTable.js +33 -35
  200. package/lib/esm/components/data-table/DataTable.js.map +1 -1
  201. package/lib/esm/components/data-table/ResponsiveRecordList.css.js +6 -6
  202. package/lib/esm/components/data-table/TableCell.css.js +2 -2
  203. package/lib/esm/components/data-table/VirtualizedConnectionTable.css.js +1 -1
  204. package/lib/esm/components/data-table/VirtualizedConnectionTable.js +49 -61
  205. package/lib/esm/components/data-table/VirtualizedConnectionTable.js.map +1 -1
  206. package/lib/esm/components/feedback/OperationFeedback.css.js +1 -1
  207. package/lib/esm/components/feedback/OperationFeedback.js +1 -1
  208. package/lib/esm/components/infinite/InfiniteScrollTrigger.js +1 -1
  209. package/lib/esm/components/infinite/infiniteScrollTrigger.css.js +1 -1
  210. package/lib/esm/components/layout/ActionPanel.css.js +1 -1
  211. package/lib/esm/components/layout/ActionPanel.js +3 -3
  212. package/lib/esm/components/layout/ActionPanel.js.map +1 -1
  213. package/lib/esm/components/layout/AppHeader.css.js +1 -1
  214. package/lib/esm/components/layout/AppHeader.js +4 -4
  215. package/lib/esm/components/layout/ContentLayout.css.js +1 -1
  216. package/lib/esm/components/layout/ContentLayout.js +2 -2
  217. package/lib/esm/components/layout/DetailSummaryHeader.css.js +1 -1
  218. package/lib/esm/components/layout/DetailSummaryHeader.js +3 -3
  219. package/lib/esm/components/layout/PageShell.css.js +4 -4
  220. package/lib/esm/components/layout/PageShell.js +5 -5
  221. package/lib/esm/components/layout/PageShell.js.map +1 -1
  222. package/lib/esm/components/layout/SettingsLayout.css.js +1 -1
  223. package/lib/esm/components/layout/SplitViewLayout.css.js +1 -1
  224. package/lib/esm/components/layout/TabsContentLayout.css.js +1 -1
  225. package/lib/esm/components/layout/ToolbarRow.css.js +1 -1
  226. package/lib/esm/components/media/imagePreviewModal.css.js +5 -5
  227. package/lib/esm/components/responsive/ResponsiveCollectionRenderer.css.js +1 -1
  228. package/lib/esm/components/responsive/ResponsiveCollectionRenderer.css.js.map +1 -1
  229. package/lib/esm/components/routing/routeFallback.css.js +1 -1
  230. package/lib/esm/components/routing/routeFallback.css.js.map +1 -1
  231. package/lib/esm/components/routing/routePendingBar.css.js +1 -1
  232. package/lib/esm/components/routing/routePendingBar.css.js.map +1 -1
  233. package/lib/esm/components/select/SimpleSelect.css.js +14 -14
  234. package/lib/esm/components/select/SimpleSelect.css.js.map +1 -1
  235. package/lib/esm/components/subscriptions/RefetchNeededBanner.css.js +1 -1
  236. package/lib/esm/components/tile/InfoTile.css.js +1 -1
  237. package/lib/esm/components/tile/InfoTile.css.js.map +1 -1
  238. package/lib/esm/components/tile/InfoTile.js +3 -3
  239. package/lib/esm/index.js +257 -255
  240. package/lib/esm/internal/charts/metricHistoryChartHelpers.js +24 -0
  241. package/lib/esm/internal/charts/metricHistoryChartHelpers.js.map +1 -0
  242. package/lib/esm/internal/charts/timeSeriesLineChartHelpers.js +18 -0
  243. package/lib/esm/internal/charts/timeSeriesLineChartHelpers.js.map +1 -0
  244. package/lib/esm/internal/data-table/layout.js +6 -0
  245. package/lib/esm/internal/data-table/layout.js.map +1 -0
  246. package/lib/esm/internal/data-table/virtualization.js +12 -0
  247. package/lib/esm/internal/data-table/virtualization.js.map +1 -0
  248. package/lib/esm/node_modules/@vitest/pretty-format/dist/index.js +614 -0
  249. package/lib/esm/node_modules/@vitest/pretty-format/dist/index.js.map +1 -0
  250. package/lib/esm/node_modules/@vitest/runner/dist/chunk-artifact.js +909 -0
  251. package/lib/esm/node_modules/@vitest/runner/dist/chunk-artifact.js.map +1 -0
  252. package/lib/esm/node_modules/@vitest/runner/dist/index.js +1 -0
  253. package/lib/esm/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js +50 -0
  254. package/lib/esm/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js.map +1 -0
  255. package/lib/esm/node_modules/@vitest/utils/dist/display.js +424 -0
  256. package/lib/esm/node_modules/@vitest/utils/dist/display.js.map +1 -0
  257. package/lib/esm/node_modules/@vitest/utils/dist/helpers.js +43 -0
  258. package/lib/esm/node_modules/@vitest/utils/dist/helpers.js.map +1 -0
  259. package/lib/esm/node_modules/@vitest/utils/dist/source-map.js +68 -0
  260. package/lib/esm/node_modules/@vitest/utils/dist/source-map.js.map +1 -0
  261. package/lib/esm/node_modules/@vitest/utils/dist/timers.js +19 -0
  262. package/lib/esm/node_modules/@vitest/utils/dist/timers.js.map +1 -0
  263. package/lib/esm/node_modules/tinyrainbow/dist/index.js +85 -0
  264. package/lib/esm/node_modules/tinyrainbow/dist/index.js.map +1 -0
  265. package/lib/esm/shared/backofficeTableDensity.css.js.map +1 -1
  266. package/lib/esm/style.css +1 -1
  267. package/lib/esm/theme/accessibility.css.js +1 -1
  268. package/lib/esm/theme/accessibility.css.js.map +1 -1
  269. package/lib/esm/theme/index.js +12 -10
  270. package/lib/esm/theme/sprinkles.css.js +73323 -51658
  271. package/lib/esm/theme/sprinkles.css.js.map +1 -1
  272. package/lib/esm/theme/styleRecipes.css.js +19 -0
  273. package/lib/esm/theme/styleRecipes.css.js.map +1 -0
  274. package/lib/esm/theme/theme-dark.css.js.map +1 -1
  275. package/lib/esm/theme/theme-light.css.js +23 -2
  276. package/lib/esm/theme/theme-light.css.js.map +1 -1
  277. package/lib/esm/theme/theme.css.js +23 -2
  278. package/lib/esm/theme/themeContract.js +23 -2
  279. package/lib/esm/theme/themeContract.js.map +1 -1
  280. package/lib/types/atomic/atoms/button/button.css.d.ts.map +1 -1
  281. package/lib/types/atomic/atoms/checkbox/checkbox.css.d.ts.map +1 -1
  282. package/lib/types/atomic/atoms/input/input.css.d.ts.map +1 -1
  283. package/lib/types/atomic/atoms/modal/modal.css.d.ts.map +1 -1
  284. package/lib/types/atomic/atoms/textarea/textarea.css.d.ts.map +1 -1
  285. package/lib/types/atomic/molecules/markdown/components/MarkdownCodeCopyButton.css.d.ts.map +1 -1
  286. package/lib/types/atomic/molecules/toast/toast.css.d.ts.map +1 -1
  287. package/lib/types/backoffice/atoms/tag/tag.css.d.ts.map +1 -1
  288. package/lib/types/backoffice/molecules/backoffice_filter_drawer/backofficeFilterDrawer.css.d.ts.map +1 -1
  289. package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts.map +1 -1
  290. package/lib/types/backoffice/molecules/backoffice_relations_menu/backofficeRelationsMenu.css.d.ts.map +1 -1
  291. package/lib/types/backoffice/molecules/backoffice_table_toolbar/backofficeTableToolbar.css.d.ts.map +1 -1
  292. package/lib/types/backoffice/molecules/backoffice_tabs/backofficeTabs.css.d.ts.map +1 -1
  293. package/lib/types/backoffice/molecules/filter_chip_row/filterChipRow.css.d.ts.map +1 -1
  294. package/lib/types/backoffice/molecules/global_search_input/globalSearchInput.css.d.ts.map +1 -1
  295. package/lib/types/backoffice/molecules/inline_banner/inlineBanner.css.d.ts.map +1 -1
  296. package/lib/types/backoffice/molecules/sidebar_collapse_toggle/sidebarCollapseToggle.css.d.ts.map +1 -1
  297. package/lib/types/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.d.ts.map +1 -1
  298. package/lib/types/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.d.ts.map +1 -1
  299. package/lib/types/backoffice/templates/detail_page_template/detailPageTemplate.css.d.ts.map +1 -1
  300. package/lib/types/backoffice/templates/list_page_template/listPageTemplate.css.d.ts.map +1 -1
  301. package/lib/types/components/charts/MetricHistoryChart.d.ts +0 -8
  302. package/lib/types/components/charts/MetricHistoryChart.d.ts.map +1 -1
  303. package/lib/types/components/charts/TimeSeriesLineChart.d.ts +0 -4
  304. package/lib/types/components/charts/TimeSeriesLineChart.d.ts.map +1 -1
  305. package/lib/types/components/dashboard/dashboard_grid/DashboardGrid.css.d.ts.map +1 -1
  306. package/lib/types/components/dashboard/section_nav/SectionNav.css.d.ts.map +1 -1
  307. package/lib/types/components/dashboard/segmented_nav/SegmentedNav.css.d.ts.map +1 -1
  308. package/lib/types/components/dashboard/selectable_card/SelectableCard.css.d.ts.map +1 -1
  309. package/lib/types/components/data-table/DataTable.d.ts +1 -5
  310. package/lib/types/components/data-table/DataTable.d.ts.map +1 -1
  311. package/lib/types/components/data-table/VirtualizedConnectionTable.d.ts +1 -34
  312. package/lib/types/components/data-table/VirtualizedConnectionTable.d.ts.map +1 -1
  313. package/lib/types/components/select/SimpleSelect.css.d.ts.map +1 -1
  314. package/lib/types/components/tile/InfoTile.css.d.ts.map +1 -1
  315. package/lib/types/internal/charts/metricHistoryChartHelpers.d.ts +4 -0
  316. package/lib/types/internal/charts/metricHistoryChartHelpers.d.ts.map +1 -0
  317. package/lib/types/internal/charts/timeSeriesLineChartHelpers.d.ts +9 -0
  318. package/lib/types/internal/charts/timeSeriesLineChartHelpers.d.ts.map +1 -0
  319. package/lib/types/internal/data-table/layout.d.ts +4 -0
  320. package/lib/types/internal/data-table/layout.d.ts.map +1 -0
  321. package/lib/types/internal/data-table/virtualization.d.ts +29 -0
  322. package/lib/types/internal/data-table/virtualization.d.ts.map +1 -0
  323. package/lib/types/shared/backofficeTableDensity.css.d.ts.map +1 -1
  324. package/lib/types/theme/index.d.ts +2 -0
  325. package/lib/types/theme/index.d.ts.map +1 -1
  326. package/lib/types/theme/sprinkles.css.d.ts +684 -60
  327. package/lib/types/theme/sprinkles.css.d.ts.map +1 -1
  328. package/lib/types/theme/styleRecipes.css.d.ts +29 -0
  329. package/lib/types/theme/styleRecipes.css.d.ts.map +1 -0
  330. package/lib/types/theme/theme-dark.css.d.ts.map +1 -1
  331. package/lib/types/theme/theme-light.css.d.ts +21 -0
  332. package/lib/types/theme/theme-light.css.d.ts.map +1 -1
  333. package/lib/types/theme/themeContract.d.ts +21 -0
  334. package/lib/types/theme/themeContract.d.ts.map +1 -1
  335. package/package.json +2 -2
@@ -1,14 +1,16 @@
1
1
  import { cx as e } from "../../theme/tools.js";
2
2
  import { useUiTranslation as t } from "../../i18n/useUiTranslation.js";
3
3
  import { alignRecipe as n, body as r, bodyContained as i, cell as a, container as o, containerWithContainedBody as s, emptyRow as c, header as l, headerCell as u, headerRow as ee, hideBelowRecipe as d, primaryCell as te, primaryHeaderCell as ne, row as re, rowEven as ie, rowOdd as ae } from "./DataTable.css.js";
4
- import { bodyViewport as oe, sentinel as se, singleLineCell as ce, spacer as f } from "./VirtualizedConnectionTable.css.js";
5
- import { useCallback as p, useEffect as le, useLayoutEffect as ue, useMemo as m, useRef as h, useState as de } from "react";
6
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
4
+ import { buildDataTableInlineTemplate as oe } from "../../internal/data-table/layout.js";
5
+ import { bodyViewport as se, sentinel as ce, singleLineCell as le, spacer as f } from "./VirtualizedConnectionTable.css.js";
6
+ import { clamp as ue, computeVirtualWindowBounds as de, isVerticallyScrollable as p, shouldTriggerInfiniteLoad as fe } from "../../internal/data-table/virtualization.js";
7
+ import { useCallback as m, useEffect as h, useLayoutEffect as g, useMemo as _, useRef as v, useState as pe } from "react";
8
+ import { jsx as y, jsxs as b } from "react/jsx-runtime";
7
9
  //#region src/components/data-table/VirtualizedConnectionTable.tsx
8
- var v = "minmax(0, 1fr)", y = (e, t) => typeof t == "string" && t !== "" ? { gridTemplateColumns: t } : { gridTemplateColumns: `repeat(${e}, ${v})` }, b = (e) => e == null ? null : d({ minVisibleAt: e }), x = ({ overflowY: e, scrollHeight: t, clientHeight: n }) => e !== "auto" && e !== "scroll" && e !== "overlay" ? !1 : t > n + 1, S = (e) => {
10
+ var x = (e) => e == null ? null : d({ minVisibleAt: e }), S = (e) => {
9
11
  let t = e;
10
12
  for (; t != null;) {
11
- if (x({
13
+ if (p({
12
14
  overflowY: window.getComputedStyle(t).overflowY,
13
15
  scrollHeight: t.scrollHeight,
14
16
  clientHeight: t.clientHeight
@@ -16,43 +18,37 @@ var v = "minmax(0, 1fr)", y = (e, t) => typeof t == "string" && t !== "" ? { gri
16
18
  t = t.parentElement;
17
19
  }
18
20
  return null;
19
- }, C = (e, t, n) => Math.min(n, Math.max(t, e)), fe = ({ autoLoad: e, canLoadMore: t, totalHeight: n, visibleBottom: r, thresholdPx: i, isCoolingDown: a }) => !e || !t || a ? !1 : n - r <= i, pe = ({ rowCount: e, rowHeightPx: t, overscan: n, visibleTop: r, visibleBottom: i }) => {
20
- let a = e * t, o = C(i, 0, a), s = C(r, 0, a), c = Math.floor(s / t) - n, l = Math.ceil(o / t) + n, u = C(c, 0, e);
21
- return {
22
- startIndex: u,
23
- endIndex: C(l, u, e)
24
- };
25
- }, me = ({ columns: d, rows: v, getRowId: x, emptyState: me, className: he, gridTemplateColumns: ge, kind: _e, classes: w, bodyScrollMode: T = "page", virtualization: E, infiniteScroll: D, hasNextPage: ve = !1, isLoadingMore: ye = !1, onLoadMore: O, ariaLabel: be, ariaLabelledBy: k }) => {
21
+ }, C = ({ columns: d, rows: p, getRowId: C, emptyState: me, className: he, gridTemplateColumns: ge, kind: _e, classes: w, bodyScrollMode: T = "page", virtualization: E, infiniteScroll: D, hasNextPage: ve = !1, isLoadingMore: ye = !1, onLoadMore: O, ariaLabel: be, ariaLabelledBy: k }) => {
26
22
  let { t: A } = t(), j = _e ?? "default", M = be ?? A("common.table.label");
27
23
  k != null && (M = void 0);
28
- let N = h(null), P = h(null), F = h(null), I = h(null), L = h(null), R = h(null), z = h(!1), B = E?.enabled === !0, V = m(() => {
24
+ let N = v(null), P = v(null), F = v(null), I = v(null), L = v(null), R = v(null), z = v(!1), B = E?.enabled === !0, V = _(() => {
29
25
  if (!B) return null;
30
26
  let e = E.rowHeightPx;
31
27
  return typeof e == "number" && Number.isFinite(e) && e > 0 ? e : 56;
32
- }, [B, E]), H = m(() => {
28
+ }, [B, E]), H = _(() => {
33
29
  if (!B) return 0;
34
30
  let e = 10, t = E.overscan;
35
31
  return typeof t == "number" && Number.isFinite(t) && (e = t), Math.max(0, e);
36
- }, [B, E]), U = D?.thresholdPx ?? 800, W = D?.autoLoad ?? !0, G = D?.enabled === !0, K = T === "contained", q = G && ve && !ye && O != null, J = p(() => {
32
+ }, [B, E]), U = D?.thresholdPx ?? 800, W = D?.autoLoad ?? !0, G = D?.enabled === !0, K = T === "contained", q = G && ve && !ye && O != null, J = m(() => {
37
33
  O?.();
38
- }, [O]), [xe, Se] = de(() => ({
34
+ }, [O]), [xe, Se] = pe(() => ({
39
35
  startIndex: 0,
40
- endIndex: Math.min(v.length, 50)
41
- })), Y = m(() => y(d.length, ge), [d.length, ge]), Ce = p((t, r, i) => {
42
- let o = x(t, r), s = [re({ kind: j }), w?.row];
36
+ endIndex: Math.min(p.length, 50)
37
+ })), Y = _(() => oe(d.length, ge), [d.length, ge]), Ce = m((t, r, i) => {
38
+ let o = C(t, r), s = [re({ kind: j }), w?.row];
43
39
  r % 2 == 0 ? s.push(ie({ kind: j }), w?.rowEven) : s.push(ae({ kind: j }), w?.rowOdd);
44
40
  let c = { ...Y };
45
- return typeof i == "number" && (c.height = i), /* @__PURE__ */ g("div", {
41
+ return typeof i == "number" && (c.height = i), /* @__PURE__ */ y("div", {
46
42
  role: "row",
47
43
  className: e(...s),
48
44
  style: c,
49
45
  children: d.map((r) => {
50
46
  let i = [
51
47
  a({ kind: j }),
52
- ce,
48
+ le,
53
49
  w?.cell
54
- ], o = b(r.minVisibleAt);
55
- return o != null && i.push(o), r.className != null && i.push(r.className), r.isPrimary && i.push(te, w?.primaryCell), r.align != null && i.push(n({ align: r.align })), /* @__PURE__ */ g("div", {
50
+ ], o = x(r.minVisibleAt);
51
+ return o != null && i.push(o), r.className != null && i.push(r.className), r.isPrimary && i.push(te, w?.primaryCell), r.align != null && i.push(n({ align: r.align })), /* @__PURE__ */ y("div", {
56
52
  role: "cell",
57
53
  className: e(...i),
58
54
  children: r.cell(t)
@@ -62,10 +58,10 @@ var v = "minmax(0, 1fr)", y = (e, t) => typeof t == "string" && t !== "" ? { gri
62
58
  }, [
63
59
  w,
64
60
  d,
65
- x,
61
+ C,
66
62
  Y,
67
63
  j
68
- ]), X = p(() => {
64
+ ]), X = m(() => {
69
65
  if (!B) return;
70
66
  let e = V;
71
67
  if (e == null) return;
@@ -77,8 +73,8 @@ var v = "minmax(0, 1fr)", y = (e, t) => typeof t == "string" && t !== "" ? { gri
77
73
  let e = r?.getBoundingClientRect().top ?? 0, n = t.getBoundingClientRect().top - e;
78
74
  a = Math.max(0, -n);
79
75
  }
80
- let o = a + i, s = v.length * e, c = C(o, 0, s), { startIndex: l, endIndex: u } = pe({
81
- rowCount: v.length,
76
+ let o = a + i, s = p.length * e, c = ue(o, 0, s), { startIndex: l, endIndex: u } = de({
77
+ rowCount: p.length,
82
78
  rowHeightPx: e,
83
79
  overscan: H,
84
80
  visibleTop: a,
@@ -104,15 +100,15 @@ var v = "minmax(0, 1fr)", y = (e, t) => typeof t == "string" && t !== "" ? { gri
104
100
  B,
105
101
  H,
106
102
  V,
107
- v.length,
103
+ p.length,
108
104
  U,
109
105
  J
110
- ]), Z = p(() => {
106
+ ]), Z = m(() => {
111
107
  R.current ??= window.requestAnimationFrame(() => {
112
108
  R.current = null, X();
113
109
  });
114
110
  }, [X]);
115
- ue(() => {
111
+ g(() => {
116
112
  if (!B) return;
117
113
  let e = N.current;
118
114
  e != null && (K ? L.current = P.current : L.current = S(e), Z());
@@ -120,7 +116,7 @@ var v = "minmax(0, 1fr)", y = (e, t) => typeof t == "string" && t !== "" ? { gri
120
116
  K,
121
117
  B,
122
118
  Z
123
- ]), le(() => {
119
+ ]), h(() => {
124
120
  if (!B) return;
125
121
  let e = L.current ?? window, t = () => {
126
122
  Z();
@@ -128,7 +124,7 @@ var v = "minmax(0, 1fr)", y = (e, t) => typeof t == "string" && t !== "" ? { gri
128
124
  return e.addEventListener("scroll", t, { passive: !0 }), window.addEventListener("resize", t), () => {
129
125
  e.removeEventListener("scroll", t), window.removeEventListener("resize", t);
130
126
  };
131
- }, [B, Z]), le(() => {
127
+ }, [B, Z]), h(() => {
132
128
  if (B || !G || !W || !q) return;
133
129
  let e = I.current;
134
130
  if (e == null) return;
@@ -151,21 +147,21 @@ var v = "minmax(0, 1fr)", y = (e, t) => typeof t == "string" && t !== "" ? { gri
151
147
  B,
152
148
  U,
153
149
  J
154
- ]), ue(() => {
150
+ ]), g(() => {
155
151
  if (B) return;
156
152
  let e = N.current;
157
153
  e != null && (K ? L.current = P.current : L.current = S(e));
158
154
  }, [K, B]);
159
- let we = /* @__PURE__ */ g("div", {
155
+ let we = /* @__PURE__ */ y("div", {
160
156
  className: e(l({ kind: j }), w?.header),
161
157
  role: "rowgroup",
162
- children: /* @__PURE__ */ g("div", {
158
+ children: /* @__PURE__ */ y("div", {
163
159
  className: e(ee, w?.headerRow),
164
160
  role: "row",
165
161
  style: Y,
166
162
  children: d.map((t) => {
167
- let r = [u({ kind: j }), w?.headerCell], i = b(t.minVisibleAt);
168
- return i != null && r.push(i), t.className != null && r.push(t.className), t.isPrimary && r.push(ne, w?.primaryHeaderCell), t.align != null && r.push(n({ align: t.align })), /* @__PURE__ */ g("div", {
163
+ let r = [u({ kind: j }), w?.headerCell], i = x(t.minVisibleAt);
164
+ return i != null && r.push(i), t.className != null && r.push(t.className), t.isPrimary && r.push(ne, w?.primaryHeaderCell), t.align != null && r.push(n({ align: t.align })), /* @__PURE__ */ y("div", {
169
165
  role: "columnheader",
170
166
  className: e(...r),
171
167
  children: t.header
@@ -173,52 +169,52 @@ var v = "minmax(0, 1fr)", y = (e, t) => typeof t == "string" && t !== "" ? { gri
173
169
  })
174
170
  })
175
171
  }), Q;
176
- if (v.length === 0) Q = /* @__PURE__ */ g("div", {
172
+ if (p.length === 0) Q = /* @__PURE__ */ y("div", {
177
173
  className: e(c, w?.emptyRow),
178
174
  role: "row",
179
- children: /* @__PURE__ */ g("div", {
175
+ children: /* @__PURE__ */ y("div", {
180
176
  role: "cell",
181
- children: me ?? /* @__PURE__ */ g("div", {
182
- className: e("ysn84624 txvbqb97 txvbqbva1 txvbqbt6y", w?.emptyCell),
177
+ children: me ?? /* @__PURE__ */ y("div", {
178
+ className: e("ysn84624 txvbqb9w txvbqb19cb txvbqb16fa", w?.emptyCell),
183
179
  children: A("common.table.empty")
184
180
  })
185
181
  })
186
182
  });
187
183
  else if (B && V != null) {
188
- let { startIndex: e, endIndex: t } = xe, n = e * V, r = (v.length - t) * V, i = v.slice(e, t);
189
- Q = /* @__PURE__ */ _("div", {
190
- className: oe,
184
+ let { startIndex: e, endIndex: t } = xe, n = e * V, r = (p.length - t) * V, i = p.slice(e, t);
185
+ Q = /* @__PURE__ */ b("div", {
186
+ className: se,
191
187
  ref: F,
192
188
  children: [
193
- /* @__PURE__ */ g("div", {
189
+ /* @__PURE__ */ y("div", {
194
190
  className: f,
195
191
  style: { height: n }
196
192
  }),
197
193
  i.map((t, n) => Ce(t, e + n, V)),
198
- /* @__PURE__ */ g("div", {
194
+ /* @__PURE__ */ y("div", {
199
195
  className: f,
200
196
  style: { height: r }
201
197
  })
202
198
  ]
203
199
  });
204
- } else Q = /* @__PURE__ */ g("div", {
200
+ } else Q = /* @__PURE__ */ y("div", {
205
201
  ref: F,
206
- children: v.map((e, t) => Ce(e, t, null))
202
+ children: p.map((e, t) => Ce(e, t, null))
207
203
  });
208
204
  let Te = null;
209
- !B && G && W && (Te = /* @__PURE__ */ g("div", {
205
+ !B && G && W && (Te = /* @__PURE__ */ y("div", {
210
206
  ref: I,
211
- className: se
207
+ className: ce
212
208
  }));
213
209
  let Ee = null, $ = null;
214
- return K && (Ee = s, $ = i), /* @__PURE__ */ _("div", {
210
+ return K && (Ee = s, $ = i), /* @__PURE__ */ b("div", {
215
211
  ref: N,
216
212
  className: e(o({ kind: j }), Ee, w?.container, he),
217
213
  role: "table",
218
214
  "aria-label": M,
219
215
  "aria-labelledby": k,
220
216
  "data-scroll-mode": T,
221
- children: [we, /* @__PURE__ */ _("div", {
217
+ children: [we, /* @__PURE__ */ b("div", {
222
218
  ref: P,
223
219
  className: e(r({ kind: j }), $, w?.body),
224
220
  role: "rowgroup",
@@ -226,16 +222,8 @@ var v = "minmax(0, 1fr)", y = (e, t) => typeof t == "string" && t !== "" ? { gri
226
222
  children: [Q, Te]
227
223
  })]
228
224
  });
229
- }, he = {
230
- buildInlineTemplate: y,
231
- getVisibilityClass: b,
232
- isVerticallyScrollable: x,
233
- findScrollParent: S,
234
- clamp: C,
235
- shouldTriggerInfiniteLoad: fe,
236
- computeVirtualWindowBounds: pe
237
225
  };
238
226
  //#endregion
239
- export { me as VirtualizedConnectionTable, he as __test };
227
+ export { C as VirtualizedConnectionTable };
240
228
 
241
229
  //# sourceMappingURL=VirtualizedConnectionTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizedConnectionTable.js","names":[],"sources":["../../../../src/components/data-table/VirtualizedConnectionTable.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type JSX,\n} from 'react';\n\nimport type { DataTableBreakpoint } from './tableBreakpoints.js';\nimport type {\n DataTableBodyScrollMode,\n DataTableColumn,\n DataTableKind,\n GetRowId,\n} from './DataTable.js';\nimport * as dataTableStyles from './DataTable.css.js';\nimport * as styles from './VirtualizedConnectionTable.css.js';\n\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\nimport type { SlotClasses } from '../../styles/slots.js';\n\nexport type VirtualizationConfig = {\n enabled: boolean;\n rowHeightPx: number;\n overscan: number;\n};\n\nexport type InfiniteScrollConfig = {\n enabled: boolean;\n thresholdPx?: number;\n autoLoad?: boolean;\n};\n\ntype DataTableSlot =\n | 'container'\n | 'header'\n | 'headerRow'\n | 'headerCell'\n | 'primaryHeaderCell'\n | 'body'\n | 'row'\n | 'rowEven'\n | 'rowOdd'\n | 'cell'\n | 'primaryCell'\n | 'emptyRow'\n | 'emptyCell';\n\nexport type VirtualizedConnectionTableProps<Row> = {\n columns: readonly DataTableColumn<Row>[];\n rows: readonly Row[];\n getRowId: GetRowId<Row>;\n emptyState?: JSX.Element;\n className?: string;\n gridTemplateColumns?: string;\n kind?: DataTableKind;\n classes?: SlotClasses<DataTableSlot>;\n bodyScrollMode?: DataTableBodyScrollMode;\n\n virtualization?: VirtualizationConfig;\n\n infiniteScroll?: InfiniteScrollConfig;\n hasNextPage?: boolean;\n isLoadingMore?: boolean;\n onLoadMore?: () => void;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n};\n\nconst DEFAULT_TEMPLATE_CELL = 'minmax(0, 1fr)';\n\nconst buildInlineTemplate = (\n columnCount: number,\n gridTemplateColumns?: string,\n): CSSProperties => {\n if (typeof gridTemplateColumns === 'string' && gridTemplateColumns !== '') {\n return { gridTemplateColumns };\n }\n return {\n gridTemplateColumns: `repeat(${columnCount}, ${DEFAULT_TEMPLATE_CELL})`,\n };\n};\n\nconst getVisibilityClass = (minVisibleAt?: DataTableBreakpoint) => {\n if (minVisibleAt == null) {\n return null;\n }\n return dataTableStyles.hideBelowRecipe({ minVisibleAt });\n};\n\nconst isVerticallyScrollable = ({\n overflowY,\n scrollHeight,\n clientHeight,\n}: {\n overflowY: string;\n scrollHeight: number;\n clientHeight: number;\n}): boolean => {\n if (\n overflowY !== 'auto' &&\n overflowY !== 'scroll' &&\n overflowY !== 'overlay'\n ) {\n return false;\n }\n return scrollHeight > clientHeight + 1;\n};\n\nconst findScrollParent = (el: HTMLElement | null): HTMLElement | null => {\n let current: HTMLElement | null = el;\n while (current != null) {\n const style = window.getComputedStyle(current);\n if (\n isVerticallyScrollable({\n overflowY: style.overflowY,\n scrollHeight: current.scrollHeight,\n clientHeight: current.clientHeight,\n })\n ) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n};\n\ntype VirtualWindow = {\n startIndex: number;\n endIndex: number;\n};\n\ntype ComputeVirtualWindowInput = {\n rowCount: number;\n rowHeightPx: number;\n overscan: number;\n visibleTop: number;\n visibleBottom: number;\n};\n\ntype ShouldTriggerInfiniteLoadInput = {\n autoLoad: boolean;\n canLoadMore: boolean;\n totalHeight: number;\n visibleBottom: number;\n thresholdPx: number;\n isCoolingDown: boolean;\n};\n\nconst clamp = (value: number, min: number, max: number): number => {\n return Math.min(max, Math.max(min, value));\n};\n\nconst shouldTriggerInfiniteLoad = ({\n autoLoad,\n canLoadMore,\n totalHeight,\n visibleBottom,\n thresholdPx,\n isCoolingDown,\n}: ShouldTriggerInfiniteLoadInput): boolean => {\n if (!autoLoad || !canLoadMore || isCoolingDown) {\n return false;\n }\n return totalHeight - visibleBottom <= thresholdPx;\n};\n\nconst computeVirtualWindowBounds = ({\n rowCount,\n rowHeightPx,\n overscan,\n visibleTop,\n visibleBottom,\n}: ComputeVirtualWindowInput): VirtualWindow => {\n const totalHeight = rowCount * rowHeightPx;\n const clampedBottom = clamp(visibleBottom, 0, totalHeight);\n const clampedTop = clamp(visibleTop, 0, totalHeight);\n\n const rawStart = Math.floor(clampedTop / rowHeightPx) - overscan;\n const rawEnd = Math.ceil(clampedBottom / rowHeightPx) + overscan;\n\n const startIndex = clamp(rawStart, 0, rowCount);\n const endIndex = clamp(rawEnd, startIndex, rowCount);\n\n return { startIndex, endIndex };\n};\n\nexport const VirtualizedConnectionTable = <Row,>({\n columns,\n rows,\n getRowId,\n emptyState,\n className,\n gridTemplateColumns,\n kind,\n classes,\n bodyScrollMode = 'page',\n virtualization,\n infiniteScroll,\n hasNextPage = false,\n isLoadingMore = false,\n onLoadMore,\n ariaLabel,\n ariaLabelledBy,\n}: VirtualizedConnectionTableProps<Row>): JSX.Element => {\n const { t } = useUiTranslation();\n const resolvedKind: DataTableKind = kind ?? 'default';\n const resolvedAriaLabel = ariaLabel ?? t('common.table.label');\n let tableAriaLabel: string | undefined = resolvedAriaLabel;\n if (ariaLabelledBy != null) {\n tableAriaLabel = undefined;\n }\n const containerRef = useRef<HTMLDivElement>(null);\n const bodyScrollerRef = useRef<HTMLDivElement>(null);\n const bodyRef = useRef<HTMLDivElement>(null);\n const sentinelRef = useRef<HTMLDivElement>(null);\n const scrollParentRef = useRef<HTMLElement | null>(null);\n const rafRef = useRef<number | null>(null);\n const loadMoreCooldownRef = useRef(false);\n\n const isVirtualized = virtualization?.enabled === true;\n const rowHeightPx = useMemo(() => {\n if (!isVirtualized) {\n return null;\n }\n\n const configuredRowHeight = virtualization.rowHeightPx;\n if (\n typeof configuredRowHeight === 'number' &&\n Number.isFinite(configuredRowHeight) &&\n configuredRowHeight > 0\n ) {\n return configuredRowHeight;\n }\n\n return 56;\n }, [isVirtualized, virtualization]);\n\n const overscan = useMemo(() => {\n if (!isVirtualized) {\n return 0;\n }\n\n let nextOverscan = 10;\n const configuredOverscan = virtualization.overscan;\n if (\n typeof configuredOverscan === 'number' &&\n Number.isFinite(configuredOverscan)\n ) {\n nextOverscan = configuredOverscan;\n }\n return Math.max(0, nextOverscan);\n }, [isVirtualized, virtualization]);\n\n const thresholdPx = infiniteScroll?.thresholdPx ?? 800;\n const autoLoad = infiniteScroll?.autoLoad ?? true;\n const infiniteEnabled = infiniteScroll?.enabled === true;\n const hasContainedBodyScroll = bodyScrollMode === 'contained';\n\n const canLoadMore =\n infiniteEnabled && hasNextPage && !isLoadingMore && onLoadMore != null;\n\n const triggerLoadMore = useCallback(() => {\n if (onLoadMore == null) {\n return;\n }\n onLoadMore();\n }, [onLoadMore]);\n\n const [windowState, setWindowState] = useState<VirtualWindow>(() => {\n return { startIndex: 0, endIndex: Math.min(rows.length, 50) };\n });\n\n const inlineTemplateStyle = useMemo(() => {\n return buildInlineTemplate(columns.length, gridTemplateColumns);\n }, [columns.length, gridTemplateColumns]);\n\n const renderRow = useCallback(\n (row: Row, index: number, heightPx?: number | null): JSX.Element => {\n const rowId = getRowId(row, index);\n const rowClasses = [\n dataTableStyles.row({ kind: resolvedKind }),\n classes?.row,\n ];\n if (index % 2 === 0) {\n rowClasses.push(\n dataTableStyles.rowEven({ kind: resolvedKind }),\n classes?.rowEven,\n );\n } else {\n rowClasses.push(\n dataTableStyles.rowOdd({ kind: resolvedKind }),\n classes?.rowOdd,\n );\n }\n const rowStyle: CSSProperties = { ...inlineTemplateStyle };\n if (typeof heightPx === 'number') {\n rowStyle.height = heightPx;\n }\n return (\n <div\n key={rowId}\n role=\"row\"\n className={cx(...rowClasses)}\n style={rowStyle}\n >\n {columns.map((column) => {\n const cellClasses = [\n dataTableStyles.cell({ kind: resolvedKind }),\n styles.singleLineCell,\n classes?.cell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n if (visibilityClass != null) {\n cellClasses.push(visibilityClass);\n }\n if (column.className != null) {\n cellClasses.push(column.className);\n }\n if (column.isPrimary) {\n cellClasses.push(\n dataTableStyles.primaryCell,\n classes?.primaryCell,\n );\n }\n if (column.align != null) {\n cellClasses.push(\n dataTableStyles.alignRecipe({ align: column.align }),\n );\n }\n return (\n <div key={column.id} role=\"cell\" className={cx(...cellClasses)}>\n {column.cell(row)}\n </div>\n );\n })}\n </div>\n );\n },\n [classes, columns, getRowId, inlineTemplateStyle, resolvedKind],\n );\n\n const computeVirtualWindow = useCallback(() => {\n if (!isVirtualized) {\n return;\n }\n const height = rowHeightPx;\n if (height == null) {\n return;\n }\n const bodyEl = bodyRef.current;\n if (bodyEl == null) {\n return;\n }\n\n const bodyScroller = bodyScrollerRef.current;\n const scrollParent = scrollParentRef.current;\n let viewportHeight = scrollParent?.clientHeight ?? window.innerHeight;\n let visibleTop = 0;\n if (hasContainedBodyScroll && bodyScroller != null) {\n viewportHeight = bodyScroller.clientHeight;\n visibleTop = bodyScroller.scrollTop;\n } else {\n const parentRectTop = scrollParent?.getBoundingClientRect().top ?? 0;\n const bodyRectTop = bodyEl.getBoundingClientRect().top;\n const relativeTop = bodyRectTop - parentRectTop;\n visibleTop = Math.max(0, -relativeTop);\n }\n const visibleBottom = visibleTop + viewportHeight;\n\n const totalHeight = rows.length * height;\n const clampedBottom = clamp(visibleBottom, 0, totalHeight);\n const { startIndex, endIndex } = computeVirtualWindowBounds({\n rowCount: rows.length,\n rowHeightPx: height,\n overscan,\n visibleTop,\n visibleBottom,\n });\n\n setWindowState((prev) => {\n if (prev.startIndex === startIndex && prev.endIndex === endIndex) {\n return prev;\n }\n return { startIndex, endIndex };\n });\n\n if (\n shouldTriggerInfiniteLoad({\n autoLoad,\n canLoadMore,\n totalHeight,\n visibleBottom: clampedBottom,\n thresholdPx,\n isCoolingDown: loadMoreCooldownRef.current,\n })\n ) {\n loadMoreCooldownRef.current = true;\n triggerLoadMore();\n window.setTimeout(() => {\n loadMoreCooldownRef.current = false;\n }, 250);\n }\n }, [\n autoLoad,\n canLoadMore,\n hasContainedBodyScroll,\n isVirtualized,\n overscan,\n rowHeightPx,\n rows.length,\n thresholdPx,\n triggerLoadMore,\n ]);\n\n const scheduleCompute = useCallback(() => {\n if (rafRef.current != null) {\n return;\n }\n rafRef.current = window.requestAnimationFrame(() => {\n rafRef.current = null;\n computeVirtualWindow();\n });\n }, [computeVirtualWindow]);\n\n useLayoutEffect(() => {\n if (!isVirtualized) {\n return;\n }\n const container = containerRef.current;\n if (container == null) {\n return;\n }\n if (hasContainedBodyScroll) {\n scrollParentRef.current = bodyScrollerRef.current;\n } else {\n scrollParentRef.current = findScrollParent(container);\n }\n scheduleCompute();\n }, [hasContainedBodyScroll, isVirtualized, scheduleCompute]);\n\n useEffect(() => {\n if (!isVirtualized) {\n return undefined;\n }\n const scrollParent = scrollParentRef.current;\n const target: HTMLElement | Window = scrollParent ?? window;\n\n const handler = () => {\n scheduleCompute();\n };\n\n target.addEventListener('scroll', handler, { passive: true });\n window.addEventListener('resize', handler);\n\n return () => {\n target.removeEventListener('scroll', handler);\n window.removeEventListener('resize', handler);\n };\n }, [isVirtualized, scheduleCompute]);\n\n useEffect(() => {\n if (isVirtualized) {\n return undefined;\n }\n if (!infiniteEnabled || !autoLoad || !canLoadMore) {\n return undefined;\n }\n const sentinel = sentinelRef.current;\n if (sentinel == null) {\n return undefined;\n }\n\n const scrollParent = scrollParentRef.current;\n\n const observer = new IntersectionObserver(\n (entries) => {\n const [entry] = entries;\n if (entry == null) {\n return;\n }\n\n if (entry.isIntersecting && !loadMoreCooldownRef.current) {\n loadMoreCooldownRef.current = true;\n triggerLoadMore();\n window.setTimeout(() => {\n loadMoreCooldownRef.current = false;\n }, 250);\n }\n },\n {\n root: scrollParent,\n rootMargin: `0px 0px ${thresholdPx}px 0px`,\n },\n );\n\n observer.observe(sentinel);\n return () => {\n observer.disconnect();\n };\n }, [\n autoLoad,\n canLoadMore,\n infiniteEnabled,\n isVirtualized,\n thresholdPx,\n triggerLoadMore,\n ]);\n\n useLayoutEffect(() => {\n if (isVirtualized) {\n return;\n }\n const container = containerRef.current;\n if (container == null) {\n return;\n }\n if (hasContainedBodyScroll) {\n scrollParentRef.current = bodyScrollerRef.current;\n } else {\n scrollParentRef.current = findScrollParent(container);\n }\n }, [hasContainedBodyScroll, isVirtualized]);\n\n const headerRow = (\n <div\n className={cx(\n dataTableStyles.header({ kind: resolvedKind }),\n classes?.header,\n )}\n role=\"rowgroup\"\n >\n <div\n className={cx(dataTableStyles.headerRow, classes?.headerRow)}\n role=\"row\"\n style={inlineTemplateStyle}\n >\n {columns.map((column) => {\n const headerClasses = [\n dataTableStyles.headerCell({ kind: resolvedKind }),\n classes?.headerCell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n if (visibilityClass != null) {\n headerClasses.push(visibilityClass);\n }\n if (column.className != null) {\n headerClasses.push(column.className);\n }\n if (column.isPrimary) {\n headerClasses.push(\n dataTableStyles.primaryHeaderCell,\n classes?.primaryHeaderCell,\n );\n }\n if (column.align != null) {\n headerClasses.push(\n dataTableStyles.alignRecipe({ align: column.align }),\n );\n }\n return (\n <div\n key={column.id}\n role=\"columnheader\"\n className={cx(...headerClasses)}\n >\n {column.header}\n </div>\n );\n })}\n </div>\n </div>\n );\n\n let bodyRows: JSX.Element;\n if (rows.length === 0) {\n bodyRows = (\n <div\n className={cx(dataTableStyles.emptyRow, classes?.emptyRow)}\n role=\"row\"\n >\n <div role=\"cell\">\n {emptyState ?? (\n <div className={cx(dataTableStyles.emptyCell, classes?.emptyCell)}>\n {t('common.table.empty')}\n </div>\n )}\n </div>\n </div>\n );\n } else if (isVirtualized && rowHeightPx != null) {\n const { startIndex, endIndex } = windowState;\n const topSpacerHeight = startIndex * rowHeightPx;\n const bottomSpacerHeight = (rows.length - endIndex) * rowHeightPx;\n const slice = rows.slice(startIndex, endIndex);\n bodyRows = (\n <div className={styles.bodyViewport} ref={bodyRef}>\n <div className={styles.spacer} style={{ height: topSpacerHeight }} />\n {slice.map((row, sliceIndex) => {\n const absoluteIndex = startIndex + sliceIndex;\n return renderRow(row, absoluteIndex, rowHeightPx);\n })}\n <div className={styles.spacer} style={{ height: bottomSpacerHeight }} />\n </div>\n );\n } else {\n bodyRows = (\n <div ref={bodyRef}>\n {rows.map((row, index) => {\n return renderRow(row, index, null);\n })}\n </div>\n );\n }\n\n let sentinelNode: JSX.Element | null = null;\n if (!isVirtualized && infiniteEnabled && autoLoad) {\n sentinelNode = <div ref={sentinelRef} className={styles.sentinel} />;\n }\n\n let containedContainerClassName: string | null = null;\n let containedBodyClassName: string | null = null;\n if (hasContainedBodyScroll) {\n containedContainerClassName = dataTableStyles.containerWithContainedBody;\n containedBodyClassName = dataTableStyles.bodyContained;\n }\n\n return (\n <div\n ref={containerRef}\n className={cx(\n dataTableStyles.container({ kind: resolvedKind }),\n containedContainerClassName,\n classes?.container,\n className,\n )}\n role=\"table\"\n aria-label={tableAriaLabel}\n aria-labelledby={ariaLabelledBy}\n data-scroll-mode={bodyScrollMode}\n >\n {headerRow}\n <div\n ref={bodyScrollerRef}\n className={cx(\n dataTableStyles.body({ kind: resolvedKind }),\n containedBodyClassName,\n classes?.body,\n )}\n role=\"rowgroup\"\n data-scroll-mode={bodyScrollMode}\n >\n {bodyRows}\n {sentinelNode}\n </div>\n </div>\n );\n};\n\nexport const __test = {\n buildInlineTemplate,\n getVisibilityClass,\n isVerticallyScrollable,\n findScrollParent,\n clamp,\n shouldTriggerInfiniteLoad,\n computeVirtualWindowBounds,\n} as const;\n"],"mappings":"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"}
1
+ {"version":3,"file":"VirtualizedConnectionTable.js","names":[],"sources":["../../../../src/components/data-table/VirtualizedConnectionTable.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type JSX,\n} from 'react';\n\nimport type { DataTableBreakpoint } from './tableBreakpoints.js';\nimport type {\n DataTableBodyScrollMode,\n DataTableColumn,\n DataTableKind,\n GetRowId,\n} from './DataTable.js';\nimport * as dataTableStyles from './DataTable.css.js';\nimport * as styles from './VirtualizedConnectionTable.css.js';\n\nimport { buildDataTableInlineTemplate } from '../../internal/data-table/layout.js';\nimport {\n clamp,\n computeVirtualWindowBounds,\n isVerticallyScrollable,\n shouldTriggerInfiniteLoad,\n type VirtualWindow,\n} from '../../internal/data-table/virtualization.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\nimport type { SlotClasses } from '../../styles/slots.js';\n\nexport type VirtualizationConfig = {\n enabled: boolean;\n rowHeightPx: number;\n overscan: number;\n};\n\nexport type InfiniteScrollConfig = {\n enabled: boolean;\n thresholdPx?: number;\n autoLoad?: boolean;\n};\n\ntype DataTableSlot =\n | 'container'\n | 'header'\n | 'headerRow'\n | 'headerCell'\n | 'primaryHeaderCell'\n | 'body'\n | 'row'\n | 'rowEven'\n | 'rowOdd'\n | 'cell'\n | 'primaryCell'\n | 'emptyRow'\n | 'emptyCell';\n\nexport type VirtualizedConnectionTableProps<Row> = {\n columns: readonly DataTableColumn<Row>[];\n rows: readonly Row[];\n getRowId: GetRowId<Row>;\n emptyState?: JSX.Element;\n className?: string;\n gridTemplateColumns?: string;\n kind?: DataTableKind;\n classes?: SlotClasses<DataTableSlot>;\n bodyScrollMode?: DataTableBodyScrollMode;\n\n virtualization?: VirtualizationConfig;\n\n infiniteScroll?: InfiniteScrollConfig;\n hasNextPage?: boolean;\n isLoadingMore?: boolean;\n onLoadMore?: () => void;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n};\n\nconst getVisibilityClass = (minVisibleAt?: DataTableBreakpoint) => {\n if (minVisibleAt == null) {\n return null;\n }\n return dataTableStyles.hideBelowRecipe({ minVisibleAt });\n};\n\nconst findScrollParent = (el: HTMLElement | null): HTMLElement | null => {\n let current: HTMLElement | null = el;\n while (current != null) {\n const style = window.getComputedStyle(current);\n if (\n isVerticallyScrollable({\n overflowY: style.overflowY,\n scrollHeight: current.scrollHeight,\n clientHeight: current.clientHeight,\n })\n ) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n};\n\nexport const VirtualizedConnectionTable = <Row,>({\n columns,\n rows,\n getRowId,\n emptyState,\n className,\n gridTemplateColumns,\n kind,\n classes,\n bodyScrollMode = 'page',\n virtualization,\n infiniteScroll,\n hasNextPage = false,\n isLoadingMore = false,\n onLoadMore,\n ariaLabel,\n ariaLabelledBy,\n}: VirtualizedConnectionTableProps<Row>): JSX.Element => {\n const { t } = useUiTranslation();\n const resolvedKind: DataTableKind = kind ?? 'default';\n const resolvedAriaLabel = ariaLabel ?? t('common.table.label');\n let tableAriaLabel: string | undefined = resolvedAriaLabel;\n if (ariaLabelledBy != null) {\n tableAriaLabel = undefined;\n }\n const containerRef = useRef<HTMLDivElement>(null);\n const bodyScrollerRef = useRef<HTMLDivElement>(null);\n const bodyRef = useRef<HTMLDivElement>(null);\n const sentinelRef = useRef<HTMLDivElement>(null);\n const scrollParentRef = useRef<HTMLElement | null>(null);\n const rafRef = useRef<number | null>(null);\n const loadMoreCooldownRef = useRef(false);\n\n const isVirtualized = virtualization?.enabled === true;\n const rowHeightPx = useMemo(() => {\n if (!isVirtualized) {\n return null;\n }\n\n const configuredRowHeight = virtualization.rowHeightPx;\n if (\n typeof configuredRowHeight === 'number' &&\n Number.isFinite(configuredRowHeight) &&\n configuredRowHeight > 0\n ) {\n return configuredRowHeight;\n }\n\n return 56;\n }, [isVirtualized, virtualization]);\n\n const overscan = useMemo(() => {\n if (!isVirtualized) {\n return 0;\n }\n\n let nextOverscan = 10;\n const configuredOverscan = virtualization.overscan;\n if (\n typeof configuredOverscan === 'number' &&\n Number.isFinite(configuredOverscan)\n ) {\n nextOverscan = configuredOverscan;\n }\n return Math.max(0, nextOverscan);\n }, [isVirtualized, virtualization]);\n\n const thresholdPx = infiniteScroll?.thresholdPx ?? 800;\n const autoLoad = infiniteScroll?.autoLoad ?? true;\n const infiniteEnabled = infiniteScroll?.enabled === true;\n const hasContainedBodyScroll = bodyScrollMode === 'contained';\n\n const canLoadMore =\n infiniteEnabled && hasNextPage && !isLoadingMore && onLoadMore != null;\n\n const triggerLoadMore = useCallback(() => {\n if (onLoadMore == null) {\n return;\n }\n onLoadMore();\n }, [onLoadMore]);\n\n const [windowState, setWindowState] = useState<VirtualWindow>(() => {\n return { startIndex: 0, endIndex: Math.min(rows.length, 50) };\n });\n\n const inlineTemplateStyle = useMemo(() => {\n return buildDataTableInlineTemplate(columns.length, gridTemplateColumns);\n }, [columns.length, gridTemplateColumns]);\n\n const renderRow = useCallback(\n (row: Row, index: number, heightPx?: number | null): JSX.Element => {\n const rowId = getRowId(row, index);\n const rowClasses = [\n dataTableStyles.row({ kind: resolvedKind }),\n classes?.row,\n ];\n if (index % 2 === 0) {\n rowClasses.push(\n dataTableStyles.rowEven({ kind: resolvedKind }),\n classes?.rowEven,\n );\n } else {\n rowClasses.push(\n dataTableStyles.rowOdd({ kind: resolvedKind }),\n classes?.rowOdd,\n );\n }\n const rowStyle: CSSProperties = { ...inlineTemplateStyle };\n if (typeof heightPx === 'number') {\n rowStyle.height = heightPx;\n }\n return (\n <div\n key={rowId}\n role=\"row\"\n className={cx(...rowClasses)}\n style={rowStyle}\n >\n {columns.map((column) => {\n const cellClasses = [\n dataTableStyles.cell({ kind: resolvedKind }),\n styles.singleLineCell,\n classes?.cell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n if (visibilityClass != null) {\n cellClasses.push(visibilityClass);\n }\n if (column.className != null) {\n cellClasses.push(column.className);\n }\n if (column.isPrimary) {\n cellClasses.push(\n dataTableStyles.primaryCell,\n classes?.primaryCell,\n );\n }\n if (column.align != null) {\n cellClasses.push(\n dataTableStyles.alignRecipe({ align: column.align }),\n );\n }\n return (\n <div key={column.id} role=\"cell\" className={cx(...cellClasses)}>\n {column.cell(row)}\n </div>\n );\n })}\n </div>\n );\n },\n [classes, columns, getRowId, inlineTemplateStyle, resolvedKind],\n );\n\n const computeVirtualWindow = useCallback(() => {\n if (!isVirtualized) {\n return;\n }\n const height = rowHeightPx;\n if (height == null) {\n return;\n }\n const bodyEl = bodyRef.current;\n if (bodyEl == null) {\n return;\n }\n\n const bodyScroller = bodyScrollerRef.current;\n const scrollParent = scrollParentRef.current;\n let viewportHeight = scrollParent?.clientHeight ?? window.innerHeight;\n let visibleTop = 0;\n if (hasContainedBodyScroll && bodyScroller != null) {\n viewportHeight = bodyScroller.clientHeight;\n visibleTop = bodyScroller.scrollTop;\n } else {\n const parentRectTop = scrollParent?.getBoundingClientRect().top ?? 0;\n const bodyRectTop = bodyEl.getBoundingClientRect().top;\n const relativeTop = bodyRectTop - parentRectTop;\n visibleTop = Math.max(0, -relativeTop);\n }\n const visibleBottom = visibleTop + viewportHeight;\n\n const totalHeight = rows.length * height;\n const clampedBottom = clamp(visibleBottom, 0, totalHeight);\n const { startIndex, endIndex } = computeVirtualWindowBounds({\n rowCount: rows.length,\n rowHeightPx: height,\n overscan,\n visibleTop,\n visibleBottom,\n });\n\n setWindowState((prev) => {\n if (prev.startIndex === startIndex && prev.endIndex === endIndex) {\n return prev;\n }\n return { startIndex, endIndex };\n });\n\n if (\n shouldTriggerInfiniteLoad({\n autoLoad,\n canLoadMore,\n totalHeight,\n visibleBottom: clampedBottom,\n thresholdPx,\n isCoolingDown: loadMoreCooldownRef.current,\n })\n ) {\n loadMoreCooldownRef.current = true;\n triggerLoadMore();\n window.setTimeout(() => {\n loadMoreCooldownRef.current = false;\n }, 250);\n }\n }, [\n autoLoad,\n canLoadMore,\n hasContainedBodyScroll,\n isVirtualized,\n overscan,\n rowHeightPx,\n rows.length,\n thresholdPx,\n triggerLoadMore,\n ]);\n\n const scheduleCompute = useCallback(() => {\n if (rafRef.current != null) {\n return;\n }\n rafRef.current = window.requestAnimationFrame(() => {\n rafRef.current = null;\n computeVirtualWindow();\n });\n }, [computeVirtualWindow]);\n\n useLayoutEffect(() => {\n if (!isVirtualized) {\n return;\n }\n const container = containerRef.current;\n if (container == null) {\n return;\n }\n if (hasContainedBodyScroll) {\n scrollParentRef.current = bodyScrollerRef.current;\n } else {\n scrollParentRef.current = findScrollParent(container);\n }\n scheduleCompute();\n }, [hasContainedBodyScroll, isVirtualized, scheduleCompute]);\n\n useEffect(() => {\n if (!isVirtualized) {\n return undefined;\n }\n const scrollParent = scrollParentRef.current;\n const target: HTMLElement | Window = scrollParent ?? window;\n\n const handler = () => {\n scheduleCompute();\n };\n\n target.addEventListener('scroll', handler, { passive: true });\n window.addEventListener('resize', handler);\n\n return () => {\n target.removeEventListener('scroll', handler);\n window.removeEventListener('resize', handler);\n };\n }, [isVirtualized, scheduleCompute]);\n\n useEffect(() => {\n if (isVirtualized) {\n return undefined;\n }\n if (!infiniteEnabled || !autoLoad || !canLoadMore) {\n return undefined;\n }\n const sentinel = sentinelRef.current;\n if (sentinel == null) {\n return undefined;\n }\n\n const scrollParent = scrollParentRef.current;\n\n const observer = new IntersectionObserver(\n (entries) => {\n const [entry] = entries;\n if (entry == null) {\n return;\n }\n\n if (entry.isIntersecting && !loadMoreCooldownRef.current) {\n loadMoreCooldownRef.current = true;\n triggerLoadMore();\n window.setTimeout(() => {\n loadMoreCooldownRef.current = false;\n }, 250);\n }\n },\n {\n root: scrollParent,\n rootMargin: `0px 0px ${thresholdPx}px 0px`,\n },\n );\n\n observer.observe(sentinel);\n return () => {\n observer.disconnect();\n };\n }, [\n autoLoad,\n canLoadMore,\n infiniteEnabled,\n isVirtualized,\n thresholdPx,\n triggerLoadMore,\n ]);\n\n useLayoutEffect(() => {\n if (isVirtualized) {\n return;\n }\n const container = containerRef.current;\n if (container == null) {\n return;\n }\n if (hasContainedBodyScroll) {\n scrollParentRef.current = bodyScrollerRef.current;\n } else {\n scrollParentRef.current = findScrollParent(container);\n }\n }, [hasContainedBodyScroll, isVirtualized]);\n\n const headerRow = (\n <div\n className={cx(\n dataTableStyles.header({ kind: resolvedKind }),\n classes?.header,\n )}\n role=\"rowgroup\"\n >\n <div\n className={cx(dataTableStyles.headerRow, classes?.headerRow)}\n role=\"row\"\n style={inlineTemplateStyle}\n >\n {columns.map((column) => {\n const headerClasses = [\n dataTableStyles.headerCell({ kind: resolvedKind }),\n classes?.headerCell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n if (visibilityClass != null) {\n headerClasses.push(visibilityClass);\n }\n if (column.className != null) {\n headerClasses.push(column.className);\n }\n if (column.isPrimary) {\n headerClasses.push(\n dataTableStyles.primaryHeaderCell,\n classes?.primaryHeaderCell,\n );\n }\n if (column.align != null) {\n headerClasses.push(\n dataTableStyles.alignRecipe({ align: column.align }),\n );\n }\n return (\n <div\n key={column.id}\n role=\"columnheader\"\n className={cx(...headerClasses)}\n >\n {column.header}\n </div>\n );\n })}\n </div>\n </div>\n );\n\n let bodyRows: JSX.Element;\n if (rows.length === 0) {\n bodyRows = (\n <div\n className={cx(dataTableStyles.emptyRow, classes?.emptyRow)}\n role=\"row\"\n >\n <div role=\"cell\">\n {emptyState ?? (\n <div className={cx(dataTableStyles.emptyCell, classes?.emptyCell)}>\n {t('common.table.empty')}\n </div>\n )}\n </div>\n </div>\n );\n } else if (isVirtualized && rowHeightPx != null) {\n const { startIndex, endIndex } = windowState;\n const topSpacerHeight = startIndex * rowHeightPx;\n const bottomSpacerHeight = (rows.length - endIndex) * rowHeightPx;\n const slice = rows.slice(startIndex, endIndex);\n bodyRows = (\n <div className={styles.bodyViewport} ref={bodyRef}>\n <div className={styles.spacer} style={{ height: topSpacerHeight }} />\n {slice.map((row, sliceIndex) => {\n const absoluteIndex = startIndex + sliceIndex;\n return renderRow(row, absoluteIndex, rowHeightPx);\n })}\n <div className={styles.spacer} style={{ height: bottomSpacerHeight }} />\n </div>\n );\n } else {\n bodyRows = (\n <div ref={bodyRef}>\n {rows.map((row, index) => {\n return renderRow(row, index, null);\n })}\n </div>\n );\n }\n\n let sentinelNode: JSX.Element | null = null;\n if (!isVirtualized && infiniteEnabled && autoLoad) {\n sentinelNode = <div ref={sentinelRef} className={styles.sentinel} />;\n }\n\n let containedContainerClassName: string | null = null;\n let containedBodyClassName: string | null = null;\n if (hasContainedBodyScroll) {\n containedContainerClassName = dataTableStyles.containerWithContainedBody;\n containedBodyClassName = dataTableStyles.bodyContained;\n }\n\n return (\n <div\n ref={containerRef}\n className={cx(\n dataTableStyles.container({ kind: resolvedKind }),\n containedContainerClassName,\n classes?.container,\n className,\n )}\n role=\"table\"\n aria-label={tableAriaLabel}\n aria-labelledby={ariaLabelledBy}\n data-scroll-mode={bodyScrollMode}\n >\n {headerRow}\n <div\n ref={bodyScrollerRef}\n className={cx(\n dataTableStyles.body({ kind: resolvedKind }),\n containedBodyClassName,\n classes?.body,\n )}\n role=\"rowgroup\"\n data-scroll-mode={bodyScrollMode}\n >\n {bodyRows}\n {sentinelNode}\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /* empty css */
2
2
  /* empty css */
3
3
  //#region src/components/feedback/OperationFeedback.css.ts
4
- var e = "_19ozap70 txvbqb9ip txvbqbai7 txvbqbaog txvbqbu7g", t = "_19ozap71 txvbqb9ip txvbqbajy txvbqbcp txvbqbao7";
4
+ var e = "_19ozap70 txvbqbdr8 txvbqbf6i txvbqbffj txvbqb17w0", t = "_19ozap71 txvbqbdr8 txvbqbf91 txvbqbey txvbqbff6";
5
5
  //#endregion
6
6
  export { t as row, e as stack };
7
7
 
@@ -15,7 +15,7 @@ var o = ({ errorMessage: o = null, successMessage: s = null, retryLabel: c, onRe
15
15
  })), /* @__PURE__ */ a("div", {
16
16
  className: r,
17
17
  children: [o != null && /* @__PURE__ */ a("div", {
18
- className: "_19ozap71 txvbqb9ip txvbqbajy txvbqbcp txvbqbao7",
18
+ className: "_19ozap71 txvbqbdr8 txvbqbf91 txvbqbey txvbqbff6",
19
19
  role: "alert",
20
20
  children: [/* @__PURE__ */ i(t, { children: o }), u]
21
21
  }), s != null && /* @__PURE__ */ i(n, {
@@ -28,7 +28,7 @@ var i = ({ enabled: i, hasNext: a, isLoading: o, onTrigger: s, thresholdPx: c =
28
28
  className: e,
29
29
  "aria-hidden": "true",
30
30
  children: o && /* @__PURE__ */ r("span", {
31
- className: "_14q3b2q1 txvbqb8y txvbqbva1",
31
+ className: "_14q3b2q1 txvbqb9j txvbqb19cb",
32
32
  children: l
33
33
  })
34
34
  });
@@ -1,7 +1,7 @@
1
1
  /* empty css */
2
2
  /* empty css */
3
3
  //#region src/components/infinite/infiniteScrollTrigger.css.ts
4
- var e = "_14q3b2q0 txvbqbp6g txvbqbly7 txvbqbu7g txvbqb9ip txvbqbdoy", t = "_14q3b2q1 txvbqb8y txvbqbva1";
4
+ var e = "_14q3b2q0 txvbqb10jb txvbqbvve txvbqb17w0 txvbqbdr8 txvbqbjtp", t = "_14q3b2q1 txvbqb9j txvbqb19cb";
5
5
  //#endregion
6
6
  export { t as loadingText, e as trigger };
7
7
 
@@ -1,7 +1,7 @@
1
1
  /* empty css */
2
2
  /* empty css */
3
3
  //#region src/components/layout/ActionPanel.css.ts
4
- var e = "_13wai4x0 txvbqb9ip txvbqbai7 txvbqbaog", t = "_13wai4x1 txvbqb9ip txvbqbai7 txvbqbany", n = "_13wai4x2 txvbqbfcp txvbqb8y txvbqbamp txvbqbv9z", r = "_13wai4x3 txvbqbfcp txvbqb8y txvbqbva1", i = "_13wai4x4 txvbqb9ip txvbqbai7 txvbqbaog", a = "_13wai4x5 txvbqb9ip txvbqbajy txvbqbao7", o = "_13wai4x6 txvbqb8y txvbqbva1";
4
+ var e = "_13wai4x0 txvbqbdr8 txvbqbf6i txvbqbffj", t = "_13wai4x1 txvbqbdr8 txvbqbf6i txvbqbfet", n = "_13wai4x2 txvbqbm9g txvbqb9j txvbqbfd0 txvbqb19c9", r = "_13wai4x3 txvbqbm9g txvbqb9j txvbqb19cb", i = "_13wai4x4 txvbqbdr8 txvbqbf6i txvbqbffj", a = "_13wai4x5 txvbqbdr8 txvbqbf91 txvbqbff6", o = "_13wai4x6 txvbqb9j txvbqb19cb";
5
5
  //#endregion
6
6
  export { a as actions, i as content, r as description, o as feedback, t as header, e as root, n as title };
7
7
 
@@ -14,7 +14,7 @@ var c = ({ actions: c, children: l, className: u, description: d, feedback: f, t
14
14
  className: a,
15
15
  children: p
16
16
  }), d != null && /* @__PURE__ */ o("div", {
17
- className: "_13wai4x3 txvbqbfcp txvbqb8y txvbqbva1",
17
+ className: "_13wai4x3 txvbqbm9g txvbqb9j txvbqb19cb",
18
18
  children: d
19
19
  })]
20
20
  }),
@@ -23,11 +23,11 @@ var c = ({ actions: c, children: l, className: u, description: d, feedback: f, t
23
23
  children: l
24
24
  }),
25
25
  c != null && /* @__PURE__ */ o("div", {
26
- className: "_13wai4x5 txvbqb9ip txvbqbajy txvbqbao7",
26
+ className: "_13wai4x5 txvbqbdr8 txvbqbf91 txvbqbff6",
27
27
  children: c
28
28
  }),
29
29
  f != null && /* @__PURE__ */ o("div", {
30
- className: e("_13wai4x6 txvbqb8y txvbqbva1"),
30
+ className: e("_13wai4x6 txvbqb9j txvbqb19cb"),
31
31
  children: f
32
32
  })
33
33
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"ActionPanel.js","names":[],"sources":["../../../../src/components/layout/ActionPanel.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\n\nimport { cx } from '../../theme/tools.js';\nimport { PanelShell } from './PanelShell.js';\nimport * as styles from './ActionPanel.css.js';\n\nexport type ActionPanelProps = {\n title: ReactNode;\n description?: ReactNode;\n children: ReactNode;\n actions?: ReactNode;\n feedback?: ReactNode;\n className?: string;\n};\n\nexport const ActionPanel = ({\n actions,\n children,\n className,\n description,\n feedback,\n title,\n}: ActionPanelProps): JSX.Element => {\n return (\n <PanelShell className={className}>\n <div className={styles.root}>\n <div className={styles.header}>\n <h3 className={styles.title}>{title}</h3>\n {description != null && (\n <div className={styles.description}>{description}</div>\n )}\n </div>\n <div className={styles.content}>{children}</div>\n {actions != null && <div className={styles.actions}>{actions}</div>}\n {feedback != null && (\n <div className={cx(styles.feedback)}>{feedback}</div>\n )}\n </div>\n </PanelShell>\n );\n};\n\nexport default ActionPanel;\n"],"mappings":";;;;;AAeA,IAAa,KAAe,EAC1B,SAAA,GACA,aACA,cACA,aAAA,GACA,UAAA,GACA,OAAA,QAGE,kBAAC,GAAD;CAAuB;WACrB,kBAAC,OAAD;EAAK,WAAW;YAAhB;GACE,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACE,kBAAC,MAAD;KAAI,WAAW;eAAe;KAAW,CAAA,EACxC,KAAe,QACd,kBAAC,OAAD;KAAK,WAAW;eAAqB;KAAkB,CAAA,CAErD;;GACN,kBAAC,OAAD;IAAK,WAAW;IAAiB;IAAe,CAAA;GAC/C,KAAW,QAAQ,kBAAC,OAAD;IAAK,WAAW;cAAiB;IAAc,CAAA;GAClE,KAAY,QACX,kBAAC,OAAD;IAAK,WAAW,EAAG,+BAAgB;cAAG;IAAe,CAAA;GAEnD;;CACK,CAAA"}
1
+ {"version":3,"file":"ActionPanel.js","names":[],"sources":["../../../../src/components/layout/ActionPanel.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\n\nimport { cx } from '../../theme/tools.js';\nimport { PanelShell } from './PanelShell.js';\nimport * as styles from './ActionPanel.css.js';\n\nexport type ActionPanelProps = {\n title: ReactNode;\n description?: ReactNode;\n children: ReactNode;\n actions?: ReactNode;\n feedback?: ReactNode;\n className?: string;\n};\n\nexport const ActionPanel = ({\n actions,\n children,\n className,\n description,\n feedback,\n title,\n}: ActionPanelProps): JSX.Element => {\n return (\n <PanelShell className={className}>\n <div className={styles.root}>\n <div className={styles.header}>\n <h3 className={styles.title}>{title}</h3>\n {description != null && (\n <div className={styles.description}>{description}</div>\n )}\n </div>\n <div className={styles.content}>{children}</div>\n {actions != null && <div className={styles.actions}>{actions}</div>}\n {feedback != null && (\n <div className={cx(styles.feedback)}>{feedback}</div>\n )}\n </div>\n </PanelShell>\n );\n};\n\nexport default ActionPanel;\n"],"mappings":";;;;;AAeA,IAAa,KAAe,EAC1B,SAAA,GACA,aACA,cACA,aAAA,GACA,UAAA,GACA,OAAA,QAGE,kBAAC,GAAD;CAAuB;WACrB,kBAAC,OAAD;EAAK,WAAW;YAAhB;GACE,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACE,kBAAC,MAAD;KAAI,WAAW;eAAe;KAAW,CAAA,EACxC,KAAe,QACd,kBAAC,OAAD;KAAK,WAAW;eAAqB;KAAkB,CAAA,CAErD;;GACN,kBAAC,OAAD;IAAK,WAAW;IAAiB;IAAe,CAAA;GAC/C,KAAW,QAAQ,kBAAC,OAAD;IAAK,WAAW;cAAiB;IAAc,CAAA;GAClE,KAAY,QACX,kBAAC,OAAD;IAAK,WAAW,EAAG,gCAAgB;cAAG;IAAe,CAAA;GAEnD;;CACK,CAAA"}
@@ -1,7 +1,7 @@
1
1
  /* empty css */
2
2
  /* empty css */
3
3
  //#region src/components/layout/AppHeader.css.ts
4
- var e = "_1e6xs5y0 txvbqbnwy txvbqbok7 txvbqbp6y txvbqblyp txvbqb9ip txvbqbai7 txvbqbaog txvbqbu7g", t = "_1e6xs5y1 txvbqb9ip txvbqbai7 txvbqbai0 txvbqbcg txvbqbcr txvbqbdpp txvbqbaop", n = "_1e6xs5y2 txvbqb9ip txvbqbai7 txvbqbb9p txvbqbk5y", r = "_1e6xs5y3 txvbqbfcp txvbqb9y txvbqba9 txvbqbamy txvbqbv9z", i = "_1e6xs5y4 txvbqbfcp txvbqb8y txvbqbva1 txvbqbjay", a = "_1e6xs5y5 txvbqb9ip txvbqbcp txvbqbajy txvbqbao7 txvbqbva1 txvbqb8y", o = "_1e6xs5y6 txvbqb9ip txvbqbcp txvbqbajy txvbqbao7", s = "_1e6xs5y7 txvbqb9ip txvbqbai7 txvbqbao7";
4
+ var e = "_1e6xs5y0 txvbqbypl txvbqbzn6 txvbqb10k1 txvbqbvw4 txvbqbdr8 txvbqbf6i txvbqbffj txvbqb17w0", t = "_1e6xs5y1 txvbqbdr8 txvbqbf6i txvbqbf67 txvbqbel txvbqbf0 txvbqbjus txvbqbffw", n = "_1e6xs5y2 txvbqbdr8 txvbqbf6i txvbqbga8 txvbqbt9i", r = "_1e6xs5y3 txvbqbm9g txvbqbaz txvbqbbe txvbqbfdd txvbqb19c9", i = "_1e6xs5y4 txvbqbm9g txvbqb9j txvbqb19cb txvbqbryx", a = "_1e6xs5y5 txvbqbdr8 txvbqbey txvbqbf91 txvbqbff6 txvbqb19cb txvbqb9j", o = "_1e6xs5y6 txvbqbdr8 txvbqbey txvbqbf91 txvbqbff6", s = "_1e6xs5y7 txvbqbdr8 txvbqbf6i txvbqbff6";
5
5
  //#endregion
6
6
  export { o as actions, n as body, a as meta, s as navStack, e as root, i as subtitle, r as title, t as top };
7
7
 
@@ -14,20 +14,20 @@ var s = ({ actions: s, className: c, meta: l, primaryNav: u, secondaryNav: d, su
14
14
  children: p
15
15
  }),
16
16
  f != null && /* @__PURE__ */ a("div", {
17
- className: "_1e6xs5y4 txvbqbfcp txvbqb8y txvbqbva1 txvbqbjay",
17
+ className: "_1e6xs5y4 txvbqbm9g txvbqb9j txvbqb19cb txvbqbryx",
18
18
  children: f
19
19
  }),
20
20
  l != null && /* @__PURE__ */ a("div", {
21
- className: "_1e6xs5y5 txvbqb9ip txvbqbcp txvbqbajy txvbqbao7 txvbqbva1 txvbqb8y",
21
+ className: "_1e6xs5y5 txvbqbdr8 txvbqbey txvbqbf91 txvbqbff6 txvbqb19cb txvbqb9j",
22
22
  children: l
23
23
  })
24
24
  ]
25
25
  }), s != null && /* @__PURE__ */ a("div", {
26
- className: "_1e6xs5y6 txvbqb9ip txvbqbcp txvbqbajy txvbqbao7",
26
+ className: "_1e6xs5y6 txvbqbdr8 txvbqbey txvbqbf91 txvbqbff6",
27
27
  children: s
28
28
  })]
29
29
  }), (u != null || d != null) && /* @__PURE__ */ o("div", {
30
- className: "_1e6xs5y7 txvbqb9ip txvbqbai7 txvbqbao7",
30
+ className: "_1e6xs5y7 txvbqbdr8 txvbqbf6i txvbqbff6",
31
31
  children: [u, d]
32
32
  })]
33
33
  });
@@ -1,7 +1,7 @@
1
1
  /* empty css */
2
2
  /* empty css */
3
3
  //#region src/components/layout/ContentLayout.css.ts
4
- var e = "_17ichq70 txvbqbu7g txvbqb9ip txvbqbdpg", t = "_17ichq71 txvbqbu7g txvbqb9ip txvbqbai7 txvbqbap7", n = "_17ichq72 txvbqb9ip txvbqbajy txvbqbaop txvbqbcg txvbqbdpp", r = "_17ichq73 txvbqb9ip txvbqbai7 txvbqbany txvbqbk5y", i = "_17ichq74 txvbqb9y txvbqbf87 txvbqbamp txvbqbv9z txvbqbfcp", a = "_17ichq75 txvbqb97 txvbqbva1 txvbqbfcp", o = "_17ichq76 txvbqb9ip txvbqbcp txvbqbajy txvbqbao7", s = "_17ichq77 txvbqb9ip txvbqbajy txvbqbao7 txvbqbdp7", c = "_17ichq78 txvbqb9jg", l = "_17ichq79 txvbqb9ip txvbqbai7 txvbqbap7", u = "_17ichq7a txvbqbptp txvbqbdqg txvbqb83p txvbqbu7g txvbqb9ip txvbqbdoy txvbqb2k txvbqbn97", d = "_17ichq7b txvbqb2l";
4
+ var e = "_17ichq70 txvbqb17w0 txvbqbdr8 txvbqbjuf", t = "_17ichq71 txvbqb17w0 txvbqbdr8 txvbqbf6i txvbqbfgm", n = "_17ichq72 txvbqbdr8 txvbqbf91 txvbqbffw txvbqbel txvbqbjus", r = "_17ichq73 txvbqbdr8 txvbqbf6i txvbqbfet txvbqbt9i", i = "_17ichq74 txvbqbaz txvbqbm2y txvbqbfd0 txvbqb19c9 txvbqbm9g", a = "_17ichq75 txvbqb9w txvbqb19cb txvbqbm9g", o = "_17ichq76 txvbqbdr8 txvbqbey txvbqbf91 txvbqbff6", s = "_17ichq77 txvbqbdr8 txvbqbf91 txvbqbff6 txvbqbju2", c = "_17ichq78 txvbqbdsb", l = "_17ichq79 txvbqbdr8 txvbqbf6i txvbqbfgm", u = "_17ichq7a txvbqb11k5 txvbqbjxb txvbqbbnr txvbqb17w0 txvbqbdr8 txvbqbjtp txvbqb2o txvbqbxra", d = "_17ichq7b txvbqb2p";
5
5
  //#endregion
6
6
  export { s as actionCluster, c as actionClusterItem, l as body, u as bottomFloatArea, d as bottomFloatContent, n as header, r as headingGroup, t as inner, o as metaRow, e as section, a as subheader, i as title };
7
7
 
@@ -47,9 +47,9 @@ var p = 320, m = 48, h = (e, t) => e == null ? null : d(typeof e == "string" ||
47
47
  children: [/* @__PURE__ */ f("div", {
48
48
  className: e(o, y?.inner, S),
49
49
  children: [(D != null || E != null || w != null || A) && /* @__PURE__ */ f("div", {
50
- className: e("_17ichq72 txvbqb9ip txvbqbajy txvbqbaop txvbqbcg txvbqbdpp", y?.header),
50
+ className: e("_17ichq72 txvbqbdr8 txvbqbf91 txvbqbffw txvbqbel txvbqbjus", y?.header),
51
51
  children: [/* @__PURE__ */ f("div", {
52
- className: e("_17ichq73 txvbqb9ip txvbqbai7 txvbqbany txvbqbk5y", y?.headingGroup),
52
+ className: e("_17ichq73 txvbqbdr8 txvbqbf6i txvbqbfet txvbqbt9i", y?.headingGroup),
53
53
  children: [
54
54
  h(D, P),
55
55
  g(E, F),
@@ -1,7 +1,7 @@
1
1
  /* empty css */
2
2
  /* empty css */
3
3
  //#region src/components/layout/DetailSummaryHeader.css.ts
4
- var e = "_1baunl10 txvbqb9ip txvbqbai7 txvbqbai0 txvbqbdpp txvbqbcg txvbqbcr txvbqbaog", t = "_1baunl11 txvbqb9ip txvbqbai7 txvbqbany txvbqbk5y", n = "_1baunl12 txvbqbfcp txvbqb9g txvbqbamp txvbqbv9z", r = "_1baunl13 txvbqbfcp txvbqb8y txvbqbva1", i = "_1baunl14 txvbqb9ip txvbqbajy txvbqbcp txvbqbao7 txvbqb8y txvbqbva1", a = "_1baunl15 txvbqb9ip txvbqbajy txvbqbcp txvbqbao7";
4
+ var e = "_1baunl10 txvbqbdr8 txvbqbf6i txvbqbf67 txvbqbjus txvbqbel txvbqbf0 txvbqbffj", t = "_1baunl11 txvbqbdr8 txvbqbf6i txvbqbfet txvbqbt9i", n = "_1baunl12 txvbqbm9g txvbqba9 txvbqbfd0 txvbqb19c9", r = "_1baunl13 txvbqbm9g txvbqb9j txvbqb19cb", i = "_1baunl14 txvbqbdr8 txvbqbf91 txvbqbey txvbqbff6 txvbqb9j txvbqb19cb", a = "_1baunl15 txvbqbdr8 txvbqbf91 txvbqbey txvbqbff6";
5
5
  //#endregion
6
6
  export { a as actions, t as body, i as meta, e as root, r as subtitle, n as title };
7
7
 
@@ -12,16 +12,16 @@ var o = ({ actions: o, className: s, meta: c, subtitle: l, title: u }) => /* @__
12
12
  children: u
13
13
  }),
14
14
  l != null && /* @__PURE__ */ i("div", {
15
- className: "_1baunl13 txvbqbfcp txvbqb8y txvbqbva1",
15
+ className: "_1baunl13 txvbqbm9g txvbqb9j txvbqb19cb",
16
16
  children: l
17
17
  }),
18
18
  c != null && /* @__PURE__ */ i("div", {
19
- className: "_1baunl14 txvbqb9ip txvbqbajy txvbqbcp txvbqbao7 txvbqb8y txvbqbva1",
19
+ className: "_1baunl14 txvbqbdr8 txvbqbf91 txvbqbey txvbqbff6 txvbqb9j txvbqb19cb",
20
20
  children: c
21
21
  })
22
22
  ]
23
23
  }), o != null && /* @__PURE__ */ i("div", {
24
- className: "_1baunl15 txvbqb9ip txvbqbajy txvbqbcp txvbqbao7",
24
+ className: "_1baunl15 txvbqbdr8 txvbqbf91 txvbqbey txvbqbff6",
25
25
  children: o
26
26
  })]
27
27
  });
@@ -2,12 +2,12 @@
2
2
  /* empty css */
3
3
  import { createRuntimeFn as e } from "@vanilla-extract/recipes/createRuntimeFn";
4
4
  //#region src/components/layout/PageShell.css.ts
5
- var t = "_1kley2d0 txvbqb9ip txvbqbu7g txvbqbv49 txvbqbv07", n = "_1kley2d1 txvbqbnvy txvbqboj7 txvbqbp6g txvbqbly7 txvbqbcx7 txvbqbcge txvbqb9my txvbqbk5y", r = "_1kley2d2 txvbqbcx7 txvbqbjh7 txvbqbl7g", i = "_1kley2d3 txvbqb9ip txvbqbc7 txvbqbanp txvbqbaon txvbqbk5y txvbqbahy txvbqbaie txvbqbcgg txvbqbcge", a = "_1kley2d4 txvbqbpty txvbqbt7y txvbqbcx7 txvbqbaj7 txvbqb9ip txvbqbl7g", o = "_1kley2d5", s = "_1kley2d6", c = "_1kley2d8 _1kley2d7 txvbqb9ip txvbqbcgg", l = "_1kley2d9", u = "_1kley2da", d = "_1kley2db txvbqb9hy txvbqb9jn txvbqbcp txvbqbdoy txvbqbtyp txvbqbc7p txvbqb1rp txvbqb1qg txvbqb1cp txvbqbwg txvbqbv41 txvbqbv9z txvbqbv txvbqbaj7", f = "_1kley2dd _1kley2dc txvbqb9jg txvbqb9i5 txvbqbcp txvbqbdoy txvbqbtyp txvbqbc7p txvbqb1rp txvbqb1qg txvbqb1cp txvbqbwg txvbqbv41 txvbqbv9z txvbqbv txvbqbaj7 txvbqb77 txvbqb6x txvbqb7k", p = "_1kley2de txvbqb9hy txvbqb9jn txvbqbpu7 txvbqbpte txvbqbpug txvbqbpve txvbqbt7y txvbqbt8w txvbqbuwg txvbqbcp txvbqbdoy txvbqbtyp txvbqbc7p txvbqb1rp txvbqb1qg txvbqb1cp txvbqbwg txvbqbv41 txvbqbv9z txvbqbv", m = "_1kley2df txvbqb9my txvbqbcgg txvbqbk5y txvbqbjh7 txvbqb9ip txvbqbai7 txvbqbv41 txvbqbl7g txvbqb1rp txvbqb1cp txvbqb1qg txvbqbwp txvbqb8qy", h = "_1kley2dg txvbqbjh7 txvbqbl7g", g = "_1kley2dh txvbqbcgg txvbqbcge", _ = "_1kley2di txvbqb9ip txvbqbai7 txvbqbjh7 txvbqbcgg txvbqbcge", v = "_1kley2dj txvbqb9np txvbqbv41 txvbqb1ry txvbqb1cp txvbqb1qg txvbqbwp", y = "_1kley2dk", b = "_1kley2dm _1kley2dl txvbqbeg txvbqbv0t txvbqbb txvbqb9np txvbqbk6y txvbqbptg txvbqbtx7", x = "_1kley2dn txvbqb9i7 txvbqb9i5", S = "_1kley2do txvbqbpty txvbqbt7y txvbqbuvp txvbqb9ip txvbqbai7 txvbqbaog txvbqbv41 txvbqb12g txvbqb1qg txvbqb62p txvbqb3ny txvbqbnwp txvbqbojy txvbqbly7 txvbqbp6p", C = "_1kley2dp txvbqb9ip txvbqbajy txvbqbcg txvbqbdpp txvbqbaop txvbqbu7g", w = "_1kley2dq txvbqb9ip txvbqbcp txvbqbaog txvbqb9my txvbqbk5y", T = "_1kley2dr txvbqb9ip txvbqbai7 txvbqbao7 txvbqbk5y", E = "_1kley2ds txvbqb9ip txvbqbajy txvbqbcp txvbqb8v7 txvbqbqhy txvbqbfby txvbqbfcp txvbqblag txvbqbva1 txvbqb8p", D = "_1kley2dt txvbqb9ip txvbqbcp txvbqbany txvbqbjd7", O = "_1kley2dv _1kley2du txvbqbv9z txvbqb3b txvbqbamg txvbqbl7g txvbqbt7g txvbqbuxg", k = "_1kley2dw txvbqbv9z txvbqbamp txvbqbl7g txvbqbt7g txvbqbuxg", A = "_1kley2dx txvbqbvab txvbqb8p", j = "_1kley2dy txvbqb9ip txvbqbajy txvbqbao7 txvbqbdp7", M = "_1kley2dz txvbqb9jg", N = "_1kley2d10 txvbqbu7g txvbqb9ip txvbqbajy txvbqbao7", P = e({
6
- defaultClassName: "_1kley2d15 _1kley2d12 _1kley2d11 txvbqbcp txvbqbv45 txvbqb1rp txvbqbva1 txvbqb9jg txvbqb8y txvbqbamg txvbqbn6y txvbqbn8y txvbqb3b txvbqb77 txvbqb6x txvbqb7k",
5
+ var t = "_1kley2d0 txvbqbdr8 txvbqb17w0 txvbqb196j txvbqb191j", n = "_1kley2d1 txvbqbyo5 txvbqbzlq txvbqb10jb txvbqbvve txvbqbipm txvbqbi1c txvbqbdxd txvbqbt9i", r = "_1kley2d2 txvbqbipm txvbqbs9r txvbqbusr", i = "_1kley2d3 txvbqbdr8 txvbqbe8 txvbqbfeg txvbqbfft txvbqbt9i txvbqbf65 txvbqbf6s txvbqbi1f txvbqbi1c", a = "_1kley2d4 txvbqb11ki txvbqb16gq txvbqbipm txvbqbf7y txvbqbdr8 txvbqbusr", o = "_1kley2d5", s = "_1kley2d6", c = "_1kley2d8 _1kley2d7 txvbqbdr8 txvbqbi1f", l = "_1kley2d9", u = "_1kley2da", d = "_1kley2db txvbqbdq5 txvbqbdsl txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv txvbqbf7y", f = "_1kley2dd _1kley2dc txvbqbdsb txvbqbdqf txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv txvbqbf7y txvbqb7g txvbqb76 txvbqb7t", p = "_1kley2de txvbqbdq5 txvbqbdsl txvbqb11kv txvbqb11jp txvbqb11l8 txvbqb11ml txvbqb16gq txvbqb16i3 txvbqb18w4 txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv", m = "_1kley2df txvbqbdxd txvbqbi1f txvbqbt9i txvbqbs9r txvbqbdr8 txvbqbf6i txvbqb196b txvbqbusr txvbqb2gm txvbqb1uy txvbqb2et txvbqb17u txvbqbclc", h = "_1kley2dg txvbqbs9r txvbqbusr", g = "_1kley2dh txvbqbi1f txvbqbi1c", _ = "_1kley2di txvbqbdr8 txvbqbf6i txvbqbs9r txvbqbi1f txvbqbi1c", v = "_1kley2dj txvbqbdyg txvbqb196b txvbqb2gz txvbqb1uy txvbqb2et txvbqb17u", y = "_1kley2dk", b = "_1kley2dm _1kley2dl txvbqbhh txvbqb1933 txvbqbb txvbqbdyg txvbqbtay txvbqb11js txvbqb17h7", x = "_1kley2dn txvbqbdqi txvbqbdqf", S = "_1kley2do txvbqb11ki txvbqb16gq txvbqb18v1 txvbqbdr8 txvbqbf6i txvbqbffj txvbqb196b txvbqb1g5 txvbqb2et txvbqb8oi txvbqb577 txvbqbyp8 txvbqbzmt txvbqbvve txvbqb10jo", C = "_1kley2dp txvbqbdr8 txvbqbf91 txvbqbel txvbqbjus txvbqbffw txvbqb17w0", w = "_1kley2dq txvbqbdr8 txvbqbey txvbqbffj txvbqbdxd txvbqbt9i", T = "_1kley2dr txvbqbdr8 txvbqbf6i txvbqbff6 txvbqbt9i", E = "_1kley2ds txvbqbdr8 txvbqbf91 txvbqbey txvbqbcta txvbqb12j6 txvbqbm8d txvbqbm9g txvbqbux3 txvbqb19cb txvbqb96", D = "_1kley2dt txvbqbdr8 txvbqbey txvbqbfet txvbqbs26", O = "_1kley2dv _1kley2du txvbqb19c9 txvbqb3f txvbqbfcn txvbqbusr txvbqb16g0 txvbqb18xk", k = "_1kley2dw txvbqb19c9 txvbqbfd0 txvbqbusr txvbqb16g0 txvbqb18xk", A = "_1kley2dx txvbqb19cl txvbqb96", j = "_1kley2dy txvbqbdr8 txvbqbf91 txvbqbff6 txvbqbju2", M = "_1kley2dz txvbqbdsb", N = "_1kley2d10 txvbqb17w0 txvbqbdr8 txvbqbf91 txvbqbff6", P = e({
6
+ defaultClassName: "_1kley2d15 _1kley2d12 _1kley2d11 txvbqbey txvbqb196f txvbqb2gm txvbqb19cb txvbqbdsb txvbqb9j txvbqbfcn txvbqbxo1 txvbqbxqx txvbqb3f txvbqb7g txvbqb76 txvbqb7t",
7
7
  variantClassNames: {
8
8
  state: {
9
9
  default: "_1kley2d16",
10
- active: "_1kley2d17 _1kley2d13 txvbqbv2z txvbqbv6f txvbqb8pg"
10
+ active: "_1kley2d17 _1kley2d13 txvbqb1959 txvbqb198p txvbqbcj6"
11
11
  },
12
12
  mode: {
13
13
  link: "_1kley2d18",
@@ -19,7 +19,7 @@ var t = "_1kley2d0 txvbqb9ip txvbqbu7g txvbqbv49 txvbqbv07", n = "_1kley2d1 txvb
19
19
  mode: "link"
20
20
  },
21
21
  compoundVariants: []
22
- }), F = "_1kley2d1a txvbqb9my txvbqbjh7 txvbqb9ip txvbqbai7 txvbqbl77 txvbqblbg txvbqblbe", I = "_1kley2d1b txvbqbl7g txvbqbjh7";
22
+ }), F = "_1kley2d1a txvbqbdxd txvbqbs9r txvbqbdr8 txvbqbf6i txvbqbuse txvbqbuyj txvbqbuyg", I = "_1kley2d1b txvbqbusr txvbqbs9r";
23
23
  //#endregion
24
24
  export { j as actionGroup, k as breadcrumbCurrent, D as breadcrumbItem, O as breadcrumbLink, E as breadcrumbList, T as breadcrumbNav, A as breadcrumbSeparator, F as content, I as contentContained, f as desktopSidebarToggle, S as header, w as headerLeading, C as headerRow, m as mainColumn, h as mainColumnContained, g as mainColumnWithSidePanel, l as mobileSidebarBackdrop, u as mobileSidebarBackdropOpen, p as mobileSidebarClose, d as mobileSidebarToggle, n as page, r as pageContained, i as pageWithSidePanel, M as secondaryAction, t as shell, _ as sidePanel, y as sidePanelResizable, b as sidePanelResizer, x as sidePanelResizerHiddenOnMobile, v as sidePanelSurface, a as sidebarColumn, o as sidebarColumnMobile, s as sidebarColumnMobileOpen, c as sidebarInner, P as tabRecipe, N as tabsRow };
25
25