@plumile/ui 0.1.134 → 0.1.142

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 (570) hide show
  1. package/README.md +129 -15
  2. package/lib/esm/admin/organisms/admin_sidebar/AdminSidebar.js +4 -4
  3. package/lib/esm/admin/organisms/admin_sidebar/adminSidebar.css.js +0 -2
  4. package/lib/esm/admin/organisms/admin_topbar/adminTopbar.css.js +1 -0
  5. package/lib/esm/admin/templates/admin_shell_layout/AdminShellLayout.js +2 -2
  6. package/lib/esm/admin/templates/admin_shell_layout/AdminShellLayout.js.map +1 -1
  7. package/lib/esm/atomic/atoms/badge/Badge.js.map +1 -1
  8. package/lib/esm/atomic/atoms/error_message/ErrorMessage.js +9 -8
  9. package/lib/esm/atomic/atoms/error_message/ErrorMessage.js.map +1 -1
  10. package/lib/esm/atomic/atoms/error_message/errorMessage.css.js +1 -0
  11. package/lib/esm/atomic/molecules/card/Card.js +17 -19
  12. package/lib/esm/atomic/molecules/card/Card.js.map +1 -1
  13. package/lib/esm/atomic/molecules/empty-state/EmptyState.css.js +80 -2
  14. package/lib/esm/atomic/molecules/empty-state/EmptyState.css.js.map +1 -1
  15. package/lib/esm/atomic/molecules/empty-state/EmptyState.js +50 -28
  16. package/lib/esm/atomic/molecules/empty-state/EmptyState.js.map +1 -1
  17. package/lib/esm/atomic/molecules/form_error/FormError.js +29 -19
  18. package/lib/esm/atomic/molecules/form_error/FormError.js.map +1 -1
  19. package/lib/esm/atomic/molecules/form_error/formError.css.js +1 -1
  20. package/lib/esm/atomic/molecules/form_error/formError.css.js.map +1 -1
  21. package/lib/esm/atomic/molecules/markdown/components/MarkdownDelete.css.js +0 -1
  22. package/lib/esm/atomic/molecules/markdown/components/MarkdownHeading.css.js +1 -0
  23. package/lib/esm/atomic/molecules/tabs/Tabs.js +82 -28
  24. package/lib/esm/atomic/molecules/tabs/Tabs.js.map +1 -1
  25. package/lib/esm/atomic/molecules/tabs/tabs.css.js +50 -8
  26. package/lib/esm/atomic/molecules/tabs/tabs.css.js.map +1 -1
  27. package/lib/esm/atomic/organisms/sidebar/NavigationSidebar.js +48 -48
  28. package/lib/esm/atomic/organisms/sidebar/NavigationSidebar.js.map +1 -1
  29. package/lib/esm/backoffice/atoms/status_badge/StatusBadge.js.map +1 -1
  30. package/lib/esm/backoffice/molecules/backoffice_audit_metadata_panel/BackofficeAuditMetadataPanel.js +38 -0
  31. package/lib/esm/backoffice/molecules/backoffice_audit_metadata_panel/BackofficeAuditMetadataPanel.js.map +1 -0
  32. package/lib/esm/backoffice/molecules/backoffice_detail_field/BackofficeDetailField.js +35 -0
  33. package/lib/esm/backoffice/molecules/backoffice_detail_field/BackofficeDetailField.js.map +1 -0
  34. package/lib/esm/backoffice/molecules/backoffice_detail_field/backofficeDetailField.css.js +16 -0
  35. package/lib/esm/backoffice/molecules/backoffice_detail_field/backofficeDetailField.css.js.map +1 -0
  36. package/lib/esm/backoffice/molecules/backoffice_detail_flag_tag/BackofficeDetailFlagTag.js +25 -0
  37. package/lib/esm/backoffice/molecules/backoffice_detail_flag_tag/BackofficeDetailFlagTag.js.map +1 -0
  38. package/lib/esm/backoffice/molecules/backoffice_detail_flag_tag/backofficeDetailFlagTag.css.js +8 -0
  39. package/lib/esm/backoffice/molecules/backoffice_detail_flag_tag/backofficeDetailFlagTag.css.js.map +1 -0
  40. package/lib/esm/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.js +37 -0
  41. package/lib/esm/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.js.map +1 -0
  42. package/lib/esm/backoffice/molecules/backoffice_detail_section/backofficeDetailSection.css.js +8 -0
  43. package/lib/esm/backoffice/molecules/backoffice_detail_section/backofficeDetailSection.css.js.map +1 -0
  44. package/lib/esm/backoffice/molecules/backoffice_detail_tagged_value/BackofficeDetailTaggedValue.js +19 -0
  45. package/lib/esm/backoffice/molecules/backoffice_detail_tagged_value/BackofficeDetailTaggedValue.js.map +1 -0
  46. package/lib/esm/backoffice/molecules/backoffice_detail_tagged_value/backofficeDetailTaggedValue.css.js +8 -0
  47. package/lib/esm/backoffice/molecules/backoffice_detail_tagged_value/backofficeDetailTaggedValue.css.js.map +1 -0
  48. package/lib/esm/backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.js +15 -32
  49. package/lib/esm/backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.js.map +1 -1
  50. package/lib/esm/backoffice/molecules/backoffice_enum_label/BackofficeEnumLabel.js +11 -0
  51. package/lib/esm/backoffice/molecules/backoffice_enum_label/BackofficeEnumLabel.js.map +1 -0
  52. package/lib/esm/backoffice/molecules/backoffice_form_section/BackofficeFormSection.js +17 -18
  53. package/lib/esm/backoffice/molecules/backoffice_form_section/BackofficeFormSection.js.map +1 -1
  54. package/lib/esm/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.helpers.js +12 -0
  55. package/lib/esm/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.helpers.js.map +1 -0
  56. package/lib/esm/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.js +15 -20
  57. package/lib/esm/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.js.map +1 -1
  58. package/lib/esm/backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.js +23 -16
  59. package/lib/esm/backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.js.map +1 -1
  60. package/lib/esm/backoffice/molecules/backoffice_key_value_list/backofficeKeyValueList.css.js +2 -2
  61. package/lib/esm/backoffice/molecules/backoffice_key_value_list/backofficeKeyValueList.css.js.map +1 -1
  62. package/lib/esm/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.helpers.js +11 -0
  63. package/lib/esm/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.helpers.js.map +1 -0
  64. package/lib/esm/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.js +55 -0
  65. package/lib/esm/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.js.map +1 -0
  66. package/lib/esm/backoffice/molecules/backoffice_list_footer/backofficeListFooter.css.js +8 -0
  67. package/lib/esm/backoffice/molecules/backoffice_list_footer/backofficeListFooter.css.js.map +1 -0
  68. package/lib/esm/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.helpers.js +15 -0
  69. package/lib/esm/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.helpers.js.map +1 -0
  70. package/lib/esm/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.js +63 -0
  71. package/lib/esm/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.js.map +1 -0
  72. package/lib/esm/backoffice/molecules/backoffice_payload_viewer/backofficePayloadViewer.css.js +8 -0
  73. package/lib/esm/backoffice/molecules/backoffice_payload_viewer/backofficePayloadViewer.css.js.map +1 -0
  74. package/lib/esm/backoffice/molecules/backoffice_picker/BackofficePicker.js +76 -0
  75. package/lib/esm/backoffice/molecules/backoffice_picker/BackofficePicker.js.map +1 -0
  76. package/lib/esm/backoffice/molecules/backoffice_picker/backofficePicker.css.js +8 -0
  77. package/lib/esm/backoffice/molecules/backoffice_picker/backofficePicker.css.js.map +1 -0
  78. package/lib/esm/backoffice/molecules/backoffice_reference_value/BackofficeReferenceValue.js +23 -0
  79. package/lib/esm/backoffice/molecules/backoffice_reference_value/BackofficeReferenceValue.js.map +1 -0
  80. package/lib/esm/backoffice/molecules/backoffice_reference_value/backofficeReferenceValue.css.js +8 -0
  81. package/lib/esm/backoffice/molecules/backoffice_reference_value/backofficeReferenceValue.css.js.map +1 -0
  82. package/lib/esm/backoffice/molecules/backoffice_scope_stack/BackofficeScopeStack.js +18 -0
  83. package/lib/esm/backoffice/molecules/backoffice_scope_stack/BackofficeScopeStack.js.map +1 -0
  84. package/lib/esm/backoffice/molecules/backoffice_status_group/BackofficeStatusGroup.js +8 -0
  85. package/lib/esm/backoffice/molecules/backoffice_status_group/BackofficeStatusGroup.js.map +1 -0
  86. package/lib/esm/backoffice/molecules/backoffice_status_meta_badge/BackofficeStatusMetaBadge.js +28 -0
  87. package/lib/esm/backoffice/molecules/backoffice_status_meta_badge/BackofficeStatusMetaBadge.js.map +1 -0
  88. package/lib/esm/backoffice/molecules/backoffice_status_meta_badge/backofficeStatusMetaBadge.css.js +8 -0
  89. package/lib/esm/backoffice/molecules/backoffice_status_meta_badge/backofficeStatusMetaBadge.css.js.map +1 -0
  90. package/lib/esm/backoffice/molecules/backoffice_toolbar/BackofficeToolbar.js +60 -0
  91. package/lib/esm/backoffice/molecules/backoffice_toolbar/BackofficeToolbar.js.map +1 -0
  92. package/lib/esm/backoffice/molecules/backoffice_toolbar/backofficeToolbar.css.js +14 -0
  93. package/lib/esm/backoffice/molecules/backoffice_toolbar/backofficeToolbar.css.js.map +1 -0
  94. package/lib/esm/backoffice/molecules/bulk_actions_bar/bulkActionsBar.css.js +1 -1
  95. package/lib/esm/backoffice/molecules/bulk_actions_bar/bulkActionsBar.css.js.map +1 -1
  96. package/lib/esm/backoffice/molecules/confirm_dialog/ConfirmDialog.js +3 -3
  97. package/lib/esm/backoffice/molecules/confirm_dialog/ConfirmDialog.js.map +1 -1
  98. package/lib/esm/backoffice/molecules/global_search_input/GlobalSearchInput.js +4 -4
  99. package/lib/esm/backoffice/molecules/sidebar_collapse_toggle/sidebarCollapseToggle.css.js +1 -1
  100. package/lib/esm/backoffice/molecules/sidebar_collapse_toggle/sidebarCollapseToggle.css.js.map +1 -1
  101. package/lib/esm/backoffice/molecules/sidebar_nav_item/SidebarNavItem.js +60 -60
  102. package/lib/esm/backoffice/molecules/sidebar_nav_item/SidebarNavItem.js.map +1 -1
  103. package/lib/esm/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.js +2 -2
  104. package/lib/esm/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.js.map +1 -1
  105. package/lib/esm/backoffice/molecules/sidebar_nav_section/SidebarNavSection.js +96 -96
  106. package/lib/esm/backoffice/molecules/sidebar_nav_section/SidebarNavSection.js.map +1 -1
  107. package/lib/esm/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.js +2 -2
  108. package/lib/esm/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.js.map +1 -1
  109. package/lib/esm/backoffice/molecules/sidebar_profile_menu/BackofficeSidebarProfileMenu.js +52 -52
  110. package/lib/esm/backoffice/molecules/sidebar_profile_menu/BackofficeSidebarProfileMenu.js.map +1 -1
  111. package/lib/esm/backoffice/molecules/sidebar_profile_menu/sidebarProfileMenu.css.js +6 -6
  112. package/lib/esm/backoffice/molecules/sidebar_profile_menu/sidebarProfileMenu.css.js.map +1 -1
  113. package/lib/esm/backoffice/organisms/audit_timeline/AuditTimeline.js +69 -34
  114. package/lib/esm/backoffice/organisms/audit_timeline/AuditTimeline.js.map +1 -1
  115. package/lib/esm/backoffice/organisms/audit_timeline/auditTimeline.css.js +22 -2
  116. package/lib/esm/backoffice/organisms/audit_timeline/auditTimeline.css.js.map +1 -1
  117. package/lib/esm/backoffice/organisms/backoffice_data_table/BackofficeDataTable.js +4 -4
  118. package/lib/esm/backoffice/organisms/backoffice_data_table/BackofficeDataTable.js.map +1 -1
  119. package/lib/esm/backoffice/templates/detail_page_template/DetailPageTemplate.js +70 -40
  120. package/lib/esm/backoffice/templates/detail_page_template/DetailPageTemplate.js.map +1 -1
  121. package/lib/esm/backoffice/templates/detail_page_template/detailPageTemplate.css.js +66 -3
  122. package/lib/esm/backoffice/templates/detail_page_template/detailPageTemplate.css.js.map +1 -1
  123. package/lib/esm/components/dashboard/activity_card/ActivityCard.js +4 -4
  124. package/lib/esm/components/dashboard/dashboard_metric_group/DashboardMetricGroup.css.js +9 -0
  125. package/lib/esm/components/dashboard/dashboard_metric_group/DashboardMetricGroup.css.js.map +1 -0
  126. package/lib/esm/components/dashboard/dashboard_metric_group/DashboardMetricGroup.js +30 -0
  127. package/lib/esm/components/dashboard/dashboard_metric_group/DashboardMetricGroup.js.map +1 -0
  128. package/lib/esm/components/dashboard/dashboard_panel/DashboardPanel.css.js +8 -0
  129. package/lib/esm/components/dashboard/dashboard_panel/DashboardPanel.css.js.map +1 -0
  130. package/lib/esm/components/dashboard/dashboard_panel/DashboardPanel.js +16 -0
  131. package/lib/esm/components/dashboard/dashboard_panel/DashboardPanel.js.map +1 -0
  132. package/lib/esm/components/dashboard/dashboard_quick_actions/DashboardQuickActions.css.js +8 -0
  133. package/lib/esm/components/dashboard/dashboard_quick_actions/DashboardQuickActions.css.js.map +1 -0
  134. package/lib/esm/components/dashboard/dashboard_quick_actions/DashboardQuickActions.js +27 -0
  135. package/lib/esm/components/dashboard/dashboard_quick_actions/DashboardQuickActions.js.map +1 -0
  136. package/lib/esm/components/dashboard/dashboard_status_list/DashboardStatusList.css.js +8 -0
  137. package/lib/esm/components/dashboard/dashboard_status_list/DashboardStatusList.css.js.map +1 -0
  138. package/lib/esm/components/dashboard/dashboard_status_list/DashboardStatusList.js +28 -0
  139. package/lib/esm/components/dashboard/dashboard_status_list/DashboardStatusList.js.map +1 -0
  140. package/lib/esm/components/dashboard/metric_card/MetricCard.css.js +30 -2
  141. package/lib/esm/components/dashboard/metric_card/MetricCard.css.js.map +1 -1
  142. package/lib/esm/components/dashboard/metric_card/MetricCard.js +40 -26
  143. package/lib/esm/components/dashboard/metric_card/MetricCard.js.map +1 -1
  144. package/lib/esm/components/dashboard/metric_tile_group/MetricTileGroup.css.js +23 -2
  145. package/lib/esm/components/dashboard/metric_tile_group/MetricTileGroup.css.js.map +1 -1
  146. package/lib/esm/components/dashboard/metric_tile_group/MetricTileGroup.js +16 -4
  147. package/lib/esm/components/dashboard/metric_tile_group/MetricTileGroup.js.map +1 -1
  148. package/lib/esm/components/dashboard/status_summary_panel/StatusSummaryPanel.js +4 -4
  149. package/lib/esm/components/dashboard/timeline_event_row/TimelineEventRow.css.js +14 -2
  150. package/lib/esm/components/dashboard/timeline_event_row/TimelineEventRow.css.js.map +1 -1
  151. package/lib/esm/components/dashboard/timeline_event_row/TimelineEventRow.js +46 -25
  152. package/lib/esm/components/dashboard/timeline_event_row/TimelineEventRow.js.map +1 -1
  153. package/lib/esm/components/data-table/DataTable.css.js +19 -19
  154. package/lib/esm/components/data-table/DataTable.css.js.map +1 -1
  155. package/lib/esm/components/data-table/DataTable.js +142 -76
  156. package/lib/esm/components/data-table/DataTable.js.map +1 -1
  157. package/lib/esm/components/data-table/ResponsiveRecordList.js.map +1 -1
  158. package/lib/esm/components/data-table/VirtualizedConnectionTable.css.js +2 -2
  159. package/lib/esm/components/data-table/VirtualizedConnectionTable.css.js.map +1 -1
  160. package/lib/esm/components/data-table/VirtualizedConnectionTable.js +177 -170
  161. package/lib/esm/components/data-table/VirtualizedConnectionTable.js.map +1 -1
  162. package/lib/esm/components/feedback/InlineBanner.js +49 -0
  163. package/lib/esm/components/feedback/InlineBanner.js.map +1 -0
  164. package/lib/esm/components/feedback/OperationFeedback.css.js +2 -2
  165. package/lib/esm/components/feedback/OperationFeedback.css.js.map +1 -1
  166. package/lib/esm/components/feedback/OperationFeedback.js +20 -24
  167. package/lib/esm/components/feedback/OperationFeedback.js.map +1 -1
  168. package/lib/esm/components/feedback/inlineBanner.css.js +19 -0
  169. package/lib/esm/components/feedback/inlineBanner.css.js.map +1 -0
  170. package/lib/esm/components/infinite/InfiniteScrollTrigger.js +31 -23
  171. package/lib/esm/components/infinite/InfiniteScrollTrigger.js.map +1 -1
  172. package/lib/esm/components/layout/ActionPanel.css.js +2 -2
  173. package/lib/esm/components/layout/ActionPanel.css.js.map +1 -1
  174. package/lib/esm/components/layout/ActionPanel.js +29 -35
  175. package/lib/esm/components/layout/ActionPanel.js.map +1 -1
  176. package/lib/esm/components/layout/PageShell.css.js +2 -20
  177. package/lib/esm/components/layout/PageShell.css.js.map +1 -1
  178. package/lib/esm/components/layout/PageShell.js +155 -279
  179. package/lib/esm/components/layout/PageShell.js.map +1 -1
  180. package/lib/esm/components/layout/ResizableSplitView.css.js +8 -0
  181. package/lib/esm/components/layout/ResizableSplitView.css.js.map +1 -0
  182. package/lib/esm/components/layout/ResizableSplitView.js +176 -0
  183. package/lib/esm/components/layout/ResizableSplitView.js.map +1 -0
  184. package/lib/esm/components/layout/Surface.css.js +41 -0
  185. package/lib/esm/components/layout/Surface.css.js.map +1 -0
  186. package/lib/esm/components/layout/Surface.js +61 -0
  187. package/lib/esm/components/layout/Surface.js.map +1 -0
  188. package/lib/esm/components/layout/toolbar/Toolbar.css.js +64 -0
  189. package/lib/esm/components/layout/toolbar/Toolbar.css.js.map +1 -0
  190. package/lib/esm/components/layout/toolbar/Toolbar.js +36 -0
  191. package/lib/esm/components/layout/toolbar/Toolbar.js.map +1 -0
  192. package/lib/esm/components/navigation/sidebar/SidebarNavigation.js +89 -0
  193. package/lib/esm/components/navigation/sidebar/SidebarNavigation.js.map +1 -0
  194. package/lib/esm/components/navigation/sidebar/SidebarNavigationItem.js +2 -0
  195. package/lib/esm/components/navigation/sidebar/SidebarNavigationSection.js +2 -0
  196. package/lib/esm/components/navigation/sidebar/SidebarProfileMenu.js +2 -0
  197. package/lib/esm/components/navigation/sidebar/sidebarNavigation.css.js +48 -0
  198. package/lib/esm/components/navigation/sidebar/sidebarNavigation.css.js.map +1 -0
  199. package/lib/esm/components/subscriptions/RefetchNeededBanner.js +16 -23
  200. package/lib/esm/components/subscriptions/RefetchNeededBanner.js.map +1 -1
  201. package/lib/esm/i18n/locales/en/ui.js +16 -5
  202. package/lib/esm/i18n/locales/en/ui.js.map +1 -1
  203. package/lib/esm/i18n/locales/fr/ui.js +16 -5
  204. package/lib/esm/i18n/locales/fr/ui.js.map +1 -1
  205. package/lib/esm/index.js +237 -233
  206. package/lib/esm/internal/data-table/virtualization.js +1 -1
  207. package/lib/esm/internal/data-table/virtualization.js.map +1 -1
  208. package/lib/esm/internal/infinite/infiniteLoad.js +23 -0
  209. package/lib/esm/internal/infinite/infiniteLoad.js.map +1 -0
  210. package/lib/esm/node_modules/dompurify/dist/purify.es.js +290 -246
  211. package/lib/esm/node_modules/dompurify/dist/purify.es.js.map +1 -1
  212. package/lib/esm/node_modules/katex/dist/katex.js +1561 -1599
  213. package/lib/esm/node_modules/katex/dist/katex.js.map +1 -1
  214. package/lib/esm/style.css +1 -1
  215. package/lib/esm/theme/backofficeTheme.css.js +100 -0
  216. package/lib/esm/theme/backofficeTheme.css.js.map +1 -1
  217. package/lib/esm/theme/publicTheme.css.js +100 -0
  218. package/lib/esm/theme/publicTheme.css.js.map +1 -1
  219. package/lib/esm/theme/theme.css.js +200 -0
  220. package/lib/esm/theme/themeContract.css.js +359 -309
  221. package/lib/esm/theme/themeContract.css.js.map +1 -1
  222. package/lib/types/admin/templates/admin_shell_layout/AdminShellLayout.d.ts +4 -4
  223. package/lib/types/admin/templates/admin_shell_layout/AdminShellLayout.d.ts.map +1 -1
  224. package/lib/types/atomic/atoms/badge/Badge.d.ts +3 -3
  225. package/lib/types/atomic/atoms/badge/Badge.d.ts.map +1 -1
  226. package/lib/types/atomic/atoms/error_message/ErrorMessage.d.ts +1 -1
  227. package/lib/types/atomic/atoms/error_message/ErrorMessage.d.ts.map +1 -1
  228. package/lib/types/atomic/molecules/card/Card.d.ts.map +1 -1
  229. package/lib/types/atomic/molecules/empty-state/EmptyState.css.d.ts +56 -5
  230. package/lib/types/atomic/molecules/empty-state/EmptyState.css.d.ts.map +1 -1
  231. package/lib/types/atomic/molecules/empty-state/EmptyState.d.ts +14 -4
  232. package/lib/types/atomic/molecules/empty-state/EmptyState.d.ts.map +1 -1
  233. package/lib/types/atomic/molecules/form_error/FormError.d.ts +5 -2
  234. package/lib/types/atomic/molecules/form_error/FormError.d.ts.map +1 -1
  235. package/lib/types/atomic/molecules/form_error/formError.css.d.ts.map +1 -1
  236. package/lib/types/atomic/molecules/tabs/Tabs.d.ts +16 -7
  237. package/lib/types/atomic/molecules/tabs/Tabs.d.ts.map +1 -1
  238. package/lib/types/atomic/molecules/tabs/tabs.css.d.ts +21 -2
  239. package/lib/types/atomic/molecules/tabs/tabs.css.d.ts.map +1 -1
  240. package/lib/types/backoffice/atoms/status_badge/StatusBadge.d.ts.map +1 -1
  241. package/lib/types/backoffice/molecules/backoffice_audit_metadata_panel/BackofficeAuditMetadataPanel.d.ts +21 -0
  242. package/lib/types/backoffice/molecules/backoffice_audit_metadata_panel/BackofficeAuditMetadataPanel.d.ts.map +1 -0
  243. package/lib/types/backoffice/molecules/backoffice_detail_field/BackofficeDetailField.d.ts +17 -0
  244. package/lib/types/backoffice/molecules/backoffice_detail_field/BackofficeDetailField.d.ts.map +1 -0
  245. package/lib/types/backoffice/molecules/backoffice_detail_field/backofficeDetailField.css.d.ts +14 -0
  246. package/lib/types/backoffice/molecules/backoffice_detail_field/backofficeDetailField.css.d.ts.map +1 -0
  247. package/lib/types/backoffice/molecules/backoffice_detail_flag_tag/BackofficeDetailFlagTag.d.ts +11 -0
  248. package/lib/types/backoffice/molecules/backoffice_detail_flag_tag/BackofficeDetailFlagTag.d.ts.map +1 -0
  249. package/lib/types/backoffice/molecules/backoffice_detail_flag_tag/backofficeDetailFlagTag.css.d.ts +4 -0
  250. package/lib/types/backoffice/molecules/backoffice_detail_flag_tag/backofficeDetailFlagTag.css.d.ts.map +1 -0
  251. package/lib/types/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.d.ts +12 -0
  252. package/lib/types/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.d.ts.map +1 -0
  253. package/lib/types/backoffice/molecules/backoffice_detail_section/backofficeDetailSection.css.d.ts +6 -0
  254. package/lib/types/backoffice/molecules/backoffice_detail_section/backofficeDetailSection.css.d.ts.map +1 -0
  255. package/lib/types/backoffice/molecules/backoffice_detail_tagged_value/BackofficeDetailTaggedValue.d.ts +13 -0
  256. package/lib/types/backoffice/molecules/backoffice_detail_tagged_value/BackofficeDetailTaggedValue.d.ts.map +1 -0
  257. package/lib/types/backoffice/molecules/backoffice_detail_tagged_value/backofficeDetailTaggedValue.css.d.ts +3 -0
  258. package/lib/types/backoffice/molecules/backoffice_detail_tagged_value/backofficeDetailTaggedValue.css.d.ts.map +1 -0
  259. package/lib/types/backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.d.ts.map +1 -1
  260. package/lib/types/backoffice/molecules/backoffice_enum_label/BackofficeEnumLabel.d.ts +9 -0
  261. package/lib/types/backoffice/molecules/backoffice_enum_label/BackofficeEnumLabel.d.ts.map +1 -0
  262. package/lib/types/backoffice/molecules/backoffice_form_section/BackofficeFormSection.d.ts.map +1 -1
  263. package/lib/types/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.d.ts +0 -3
  264. package/lib/types/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.d.ts.map +1 -1
  265. package/lib/types/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.helpers.d.ts +5 -0
  266. package/lib/types/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.helpers.d.ts.map +1 -0
  267. package/lib/types/backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.d.ts +8 -2
  268. package/lib/types/backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.d.ts.map +1 -1
  269. package/lib/types/backoffice/molecules/backoffice_key_value_list/backofficeKeyValueList.css.d.ts +3 -0
  270. package/lib/types/backoffice/molecules/backoffice_key_value_list/backofficeKeyValueList.css.d.ts.map +1 -1
  271. package/lib/types/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.d.ts +23 -0
  272. package/lib/types/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.d.ts.map +1 -0
  273. package/lib/types/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.helpers.d.ts +25 -0
  274. package/lib/types/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.helpers.d.ts.map +1 -0
  275. package/lib/types/backoffice/molecules/{backoffice_infinite_list_status/backofficeInfiniteListStatus.css.d.ts → backoffice_list_footer/backofficeListFooter.css.d.ts} +3 -2
  276. package/lib/types/backoffice/molecules/backoffice_list_footer/backofficeListFooter.css.d.ts.map +1 -0
  277. package/lib/types/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.d.ts +26 -0
  278. package/lib/types/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.d.ts.map +1 -0
  279. package/lib/types/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.helpers.d.ts +7 -0
  280. package/lib/types/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.helpers.d.ts.map +1 -0
  281. package/lib/types/backoffice/molecules/backoffice_payload_viewer/backofficePayloadViewer.css.d.ts +6 -0
  282. package/lib/types/backoffice/molecules/backoffice_payload_viewer/backofficePayloadViewer.css.d.ts.map +1 -0
  283. package/lib/types/backoffice/molecules/backoffice_picker/BackofficePicker.d.ts +35 -0
  284. package/lib/types/backoffice/molecules/backoffice_picker/BackofficePicker.d.ts.map +1 -0
  285. package/lib/types/backoffice/molecules/backoffice_picker/backofficePicker.css.d.ts +9 -0
  286. package/lib/types/backoffice/molecules/backoffice_picker/backofficePicker.css.d.ts.map +1 -0
  287. package/lib/types/backoffice/molecules/backoffice_reference_value/BackofficeReferenceValue.d.ts +10 -0
  288. package/lib/types/backoffice/molecules/backoffice_reference_value/BackofficeReferenceValue.d.ts.map +1 -0
  289. package/lib/types/backoffice/molecules/backoffice_reference_value/backofficeReferenceValue.css.d.ts +3 -0
  290. package/lib/types/backoffice/molecules/backoffice_reference_value/backofficeReferenceValue.css.d.ts.map +1 -0
  291. package/lib/types/backoffice/molecules/backoffice_scope_stack/BackofficeScopeStack.d.ts +15 -0
  292. package/lib/types/backoffice/molecules/backoffice_scope_stack/BackofficeScopeStack.d.ts.map +1 -0
  293. package/lib/types/backoffice/molecules/backoffice_status_group/BackofficeStatusGroup.d.ts +8 -0
  294. package/lib/types/backoffice/molecules/backoffice_status_group/BackofficeStatusGroup.d.ts.map +1 -0
  295. package/lib/types/backoffice/molecules/backoffice_status_meta_badge/BackofficeStatusMetaBadge.d.ts +14 -0
  296. package/lib/types/backoffice/molecules/backoffice_status_meta_badge/BackofficeStatusMetaBadge.d.ts.map +1 -0
  297. package/lib/types/backoffice/molecules/backoffice_status_meta_badge/backofficeStatusMetaBadge.css.d.ts +2 -0
  298. package/lib/types/backoffice/molecules/backoffice_status_meta_badge/backofficeStatusMetaBadge.css.d.ts.map +1 -0
  299. package/lib/types/backoffice/molecules/backoffice_toolbar/BackofficeToolbar.d.ts +22 -0
  300. package/lib/types/backoffice/molecules/backoffice_toolbar/BackofficeToolbar.d.ts.map +1 -0
  301. package/lib/types/backoffice/molecules/backoffice_toolbar/backofficeToolbar.css.d.ts +18 -0
  302. package/lib/types/backoffice/molecules/backoffice_toolbar/backofficeToolbar.css.d.ts.map +1 -0
  303. package/lib/types/backoffice/molecules/bulk_actions_bar/bulkActionsBar.css.d.ts.map +1 -1
  304. package/lib/types/backoffice/molecules/sidebar_collapse_toggle/sidebarCollapseToggle.css.d.ts.map +1 -1
  305. package/lib/types/backoffice/molecules/sidebar_nav_item/SidebarNavItem.d.ts.map +1 -1
  306. package/lib/types/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.d.ts +1 -0
  307. package/lib/types/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.d.ts.map +1 -1
  308. package/lib/types/backoffice/molecules/sidebar_nav_section/SidebarNavSection.d.ts.map +1 -1
  309. package/lib/types/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.d.ts +2 -0
  310. package/lib/types/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.d.ts.map +1 -1
  311. package/lib/types/backoffice/molecules/sidebar_profile_menu/BackofficeSidebarProfileMenu.d.ts.map +1 -1
  312. package/lib/types/backoffice/molecules/sidebar_profile_menu/sidebarProfileMenu.css.d.ts +8 -0
  313. package/lib/types/backoffice/molecules/sidebar_profile_menu/sidebarProfileMenu.css.d.ts.map +1 -1
  314. package/lib/types/backoffice/organisms/audit_timeline/AuditTimeline.d.ts +20 -2
  315. package/lib/types/backoffice/organisms/audit_timeline/AuditTimeline.d.ts.map +1 -1
  316. package/lib/types/backoffice/organisms/audit_timeline/auditTimeline.css.d.ts +32 -2
  317. package/lib/types/backoffice/organisms/audit_timeline/auditTimeline.css.d.ts.map +1 -1
  318. package/lib/types/backoffice/organisms/backoffice_data_table/BackofficeDataTable.d.ts +2 -2
  319. package/lib/types/backoffice/organisms/backoffice_data_table/BackofficeDataTable.d.ts.map +1 -1
  320. package/lib/types/backoffice/templates/detail_page_template/DetailPageTemplate.d.ts +12 -1
  321. package/lib/types/backoffice/templates/detail_page_template/DetailPageTemplate.d.ts.map +1 -1
  322. package/lib/types/backoffice/templates/detail_page_template/detailPageTemplate.css.d.ts +25 -4
  323. package/lib/types/backoffice/templates/detail_page_template/detailPageTemplate.css.d.ts.map +1 -1
  324. package/lib/types/components/dashboard/dashboard_metric_group/DashboardMetricGroup.css.d.ts +4 -0
  325. package/lib/types/components/dashboard/dashboard_metric_group/DashboardMetricGroup.css.d.ts.map +1 -0
  326. package/lib/types/components/dashboard/dashboard_metric_group/DashboardMetricGroup.d.ts +19 -0
  327. package/lib/types/components/dashboard/dashboard_metric_group/DashboardMetricGroup.d.ts.map +1 -0
  328. package/lib/types/components/dashboard/dashboard_panel/DashboardPanel.css.d.ts +2 -0
  329. package/lib/types/components/dashboard/dashboard_panel/DashboardPanel.css.d.ts.map +1 -0
  330. package/lib/types/components/dashboard/dashboard_panel/DashboardPanel.d.ts +11 -0
  331. package/lib/types/components/dashboard/dashboard_panel/DashboardPanel.d.ts.map +1 -0
  332. package/lib/types/components/dashboard/dashboard_quick_actions/DashboardQuickActions.css.d.ts +5 -0
  333. package/lib/types/components/dashboard/dashboard_quick_actions/DashboardQuickActions.css.d.ts.map +1 -0
  334. package/lib/types/components/dashboard/dashboard_quick_actions/DashboardQuickActions.d.ts +14 -0
  335. package/lib/types/components/dashboard/dashboard_quick_actions/DashboardQuickActions.d.ts.map +1 -0
  336. package/lib/types/components/dashboard/dashboard_status_list/DashboardStatusList.css.d.ts +6 -0
  337. package/lib/types/components/dashboard/dashboard_status_list/DashboardStatusList.css.d.ts.map +1 -0
  338. package/lib/types/components/dashboard/dashboard_status_list/DashboardStatusList.d.ts +14 -0
  339. package/lib/types/components/dashboard/dashboard_status_list/DashboardStatusList.d.ts.map +1 -0
  340. package/lib/types/components/dashboard/metric_card/MetricCard.css.d.ts +38 -1
  341. package/lib/types/components/dashboard/metric_card/MetricCard.css.d.ts.map +1 -1
  342. package/lib/types/components/dashboard/metric_card/MetricCard.d.ts +7 -1
  343. package/lib/types/components/dashboard/metric_card/MetricCard.d.ts.map +1 -1
  344. package/lib/types/components/dashboard/metric_tile_group/MetricTileGroup.css.d.ts +17 -1
  345. package/lib/types/components/dashboard/metric_tile_group/MetricTileGroup.css.d.ts.map +1 -1
  346. package/lib/types/components/dashboard/metric_tile_group/MetricTileGroup.d.ts +4 -1
  347. package/lib/types/components/dashboard/metric_tile_group/MetricTileGroup.d.ts.map +1 -1
  348. package/lib/types/components/dashboard/timeline_event_row/TimelineEventRow.css.d.ts +31 -2
  349. package/lib/types/components/dashboard/timeline_event_row/TimelineEventRow.css.d.ts.map +1 -1
  350. package/lib/types/components/dashboard/timeline_event_row/TimelineEventRow.d.ts +8 -3
  351. package/lib/types/components/dashboard/timeline_event_row/TimelineEventRow.d.ts.map +1 -1
  352. package/lib/types/components/data-table/DataTable.css.d.ts +1 -0
  353. package/lib/types/components/data-table/DataTable.css.d.ts.map +1 -1
  354. package/lib/types/components/data-table/DataTable.d.ts +54 -3
  355. package/lib/types/components/data-table/DataTable.d.ts.map +1 -1
  356. package/lib/types/components/data-table/ResponsiveRecordList.d.ts +1 -4
  357. package/lib/types/components/data-table/ResponsiveRecordList.d.ts.map +1 -1
  358. package/lib/types/components/data-table/VirtualizedConnectionTable.css.d.ts +0 -1
  359. package/lib/types/components/data-table/VirtualizedConnectionTable.css.d.ts.map +1 -1
  360. package/lib/types/components/data-table/VirtualizedConnectionTable.d.ts +11 -5
  361. package/lib/types/components/data-table/VirtualizedConnectionTable.d.ts.map +1 -1
  362. package/lib/types/{backoffice/molecules/inline_banner → components/feedback}/InlineBanner.d.ts +4 -2
  363. package/lib/types/components/feedback/InlineBanner.d.ts.map +1 -0
  364. package/lib/types/components/feedback/OperationFeedback.css.d.ts +0 -1
  365. package/lib/types/components/feedback/OperationFeedback.css.d.ts.map +1 -1
  366. package/lib/types/components/feedback/OperationFeedback.d.ts.map +1 -1
  367. package/lib/types/components/feedback/inlineBanner.css.d.ts.map +1 -0
  368. package/lib/types/components/infinite/InfiniteScrollTrigger.d.ts.map +1 -1
  369. package/lib/types/components/layout/ActionPanel.css.d.ts +1 -0
  370. package/lib/types/components/layout/ActionPanel.css.d.ts.map +1 -1
  371. package/lib/types/components/layout/ActionPanel.d.ts.map +1 -1
  372. package/lib/types/components/layout/PageShell.css.d.ts +1 -14
  373. package/lib/types/components/layout/PageShell.css.d.ts.map +1 -1
  374. package/lib/types/components/layout/PageShell.d.ts +1 -3
  375. package/lib/types/components/layout/PageShell.d.ts.map +1 -1
  376. package/lib/types/components/layout/ResizableSplitView.css.d.ts +8 -0
  377. package/lib/types/components/layout/ResizableSplitView.css.d.ts.map +1 -0
  378. package/lib/types/components/layout/ResizableSplitView.d.ts +27 -0
  379. package/lib/types/components/layout/ResizableSplitView.d.ts.map +1 -0
  380. package/lib/types/components/layout/Surface.css.d.ts +31 -0
  381. package/lib/types/components/layout/Surface.css.d.ts.map +1 -0
  382. package/lib/types/components/layout/Surface.d.ts +30 -0
  383. package/lib/types/components/layout/Surface.d.ts.map +1 -0
  384. package/lib/types/components/layout/toolbar/Toolbar.css.d.ts +40 -0
  385. package/lib/types/components/layout/toolbar/Toolbar.css.d.ts.map +1 -0
  386. package/lib/types/components/layout/toolbar/Toolbar.d.ts +35 -0
  387. package/lib/types/components/layout/toolbar/Toolbar.d.ts.map +1 -0
  388. package/lib/types/components/navigation/sidebar/SidebarNavigation.d.ts +57 -0
  389. package/lib/types/components/navigation/sidebar/SidebarNavigation.d.ts.map +1 -0
  390. package/lib/types/components/navigation/sidebar/SidebarNavigationItem.d.ts +2 -0
  391. package/lib/types/components/navigation/sidebar/SidebarNavigationItem.d.ts.map +1 -0
  392. package/lib/types/components/navigation/sidebar/SidebarNavigationSection.d.ts +2 -0
  393. package/lib/types/components/navigation/sidebar/SidebarNavigationSection.d.ts.map +1 -0
  394. package/lib/types/components/navigation/sidebar/SidebarProfileMenu.d.ts +2 -0
  395. package/lib/types/components/navigation/sidebar/SidebarProfileMenu.d.ts.map +1 -0
  396. package/lib/types/components/navigation/sidebar/sidebarNavigation.css.d.ts +19 -0
  397. package/lib/types/components/navigation/sidebar/sidebarNavigation.css.d.ts.map +1 -0
  398. package/lib/types/components/subscriptions/RefetchNeededBanner.d.ts.map +1 -1
  399. package/lib/types/i18n/resources.d.ts +32 -14
  400. package/lib/types/i18n/resources.d.ts.map +1 -1
  401. package/lib/types/index.d.ts +33 -33
  402. package/lib/types/index.d.ts.map +1 -1
  403. package/lib/types/internal/data-table/virtualization.d.ts +2 -2
  404. package/lib/types/internal/data-table/virtualization.d.ts.map +1 -1
  405. package/lib/types/internal/infinite/infiniteLoad.d.ts +27 -0
  406. package/lib/types/internal/infinite/infiniteLoad.d.ts.map +1 -0
  407. package/lib/types/theme/backofficeTheme.css.d.ts +100 -0
  408. package/lib/types/theme/backofficeTheme.css.d.ts.map +1 -1
  409. package/lib/types/theme/publicTheme.css.d.ts +100 -0
  410. package/lib/types/theme/publicTheme.css.d.ts.map +1 -1
  411. package/lib/types/theme/sprinkles.css.d.ts +2 -2
  412. package/lib/types/theme/themeContract.css.d.ts +50 -0
  413. package/lib/types/theme/themeContract.css.d.ts.map +1 -1
  414. package/package.json +3 -3
  415. package/src/i18n/locales/en/ui.json +16 -7
  416. package/src/i18n/locales/fr/ui.json +16 -7
  417. package/lib/esm/atomic/molecules/card/Card.css.js +0 -8
  418. package/lib/esm/atomic/molecules/card/Card.css.js.map +0 -1
  419. package/lib/esm/atomic/molecules/form/FormErrorBanner.css.js +0 -8
  420. package/lib/esm/atomic/molecules/form/FormErrorBanner.css.js.map +0 -1
  421. package/lib/esm/atomic/molecules/form/FormErrorBanner.js +0 -17
  422. package/lib/esm/atomic/molecules/form/FormErrorBanner.js.map +0 -1
  423. package/lib/esm/atomic/templates/detail-page/DetailPage.js +0 -49
  424. package/lib/esm/atomic/templates/detail-page/DetailPage.js.map +0 -1
  425. package/lib/esm/atomic/templates/detail-page/detailPage.css.js +0 -8
  426. package/lib/esm/atomic/templates/detail-page/detailPage.css.js.map +0 -1
  427. package/lib/esm/backoffice/molecules/backoffice_detail_layout/BackofficeDetailLayout.js +0 -33
  428. package/lib/esm/backoffice/molecules/backoffice_detail_layout/BackofficeDetailLayout.js.map +0 -1
  429. package/lib/esm/backoffice/molecules/backoffice_detail_layout/backofficeDetailLayout.css.js +0 -8
  430. package/lib/esm/backoffice/molecules/backoffice_detail_layout/backofficeDetailLayout.css.js.map +0 -1
  431. package/lib/esm/backoffice/molecules/backoffice_empty_state/backofficeEmptyState.css.js +0 -8
  432. package/lib/esm/backoffice/molecules/backoffice_empty_state/backofficeEmptyState.css.js.map +0 -1
  433. package/lib/esm/backoffice/molecules/backoffice_filters_bar/BackofficeFiltersBar.js +0 -36
  434. package/lib/esm/backoffice/molecules/backoffice_filters_bar/BackofficeFiltersBar.js.map +0 -1
  435. package/lib/esm/backoffice/molecules/backoffice_filters_bar/backofficeFiltersBar.css.js +0 -8
  436. package/lib/esm/backoffice/molecules/backoffice_filters_bar/backofficeFiltersBar.css.js.map +0 -1
  437. package/lib/esm/backoffice/molecules/backoffice_form_section/backofficeFormSection.css.js +0 -8
  438. package/lib/esm/backoffice/molecules/backoffice_form_section/backofficeFormSection.css.js.map +0 -1
  439. package/lib/esm/backoffice/molecules/backoffice_infinite_list_status/BackofficeInfiniteListStatus.js +0 -37
  440. package/lib/esm/backoffice/molecules/backoffice_infinite_list_status/BackofficeInfiniteListStatus.js.map +0 -1
  441. package/lib/esm/backoffice/molecules/backoffice_infinite_list_status/backofficeInfiniteListStatus.css.js +0 -8
  442. package/lib/esm/backoffice/molecules/backoffice_infinite_list_status/backofficeInfiniteListStatus.css.js.map +0 -1
  443. package/lib/esm/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.js +0 -35
  444. package/lib/esm/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.js.map +0 -1
  445. package/lib/esm/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.js +0 -8
  446. package/lib/esm/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.js.map +0 -1
  447. package/lib/esm/backoffice/molecules/backoffice_table_toolbar/BackofficeTableToolbar.js +0 -41
  448. package/lib/esm/backoffice/molecules/backoffice_table_toolbar/BackofficeTableToolbar.js.map +0 -1
  449. package/lib/esm/backoffice/molecules/backoffice_table_toolbar/backofficeTableToolbar.css.js +0 -8
  450. package/lib/esm/backoffice/molecules/backoffice_table_toolbar/backofficeTableToolbar.css.js.map +0 -1
  451. package/lib/esm/backoffice/molecules/backoffice_tabs/BackofficeTabs.js +0 -46
  452. package/lib/esm/backoffice/molecules/backoffice_tabs/BackofficeTabs.js.map +0 -1
  453. package/lib/esm/backoffice/molecules/backoffice_tabs/backofficeTabs.css.js +0 -17
  454. package/lib/esm/backoffice/molecules/backoffice_tabs/backofficeTabs.css.js.map +0 -1
  455. package/lib/esm/backoffice/molecules/inline_banner/InlineBanner.js +0 -46
  456. package/lib/esm/backoffice/molecules/inline_banner/InlineBanner.js.map +0 -1
  457. package/lib/esm/backoffice/molecules/inline_banner/inlineBanner.css.js +0 -19
  458. package/lib/esm/backoffice/molecules/inline_banner/inlineBanner.css.js.map +0 -1
  459. package/lib/esm/backoffice/molecules/table_toolbar/TableToolbar.js +0 -41
  460. package/lib/esm/backoffice/molecules/table_toolbar/TableToolbar.js.map +0 -1
  461. package/lib/esm/backoffice/molecules/table_toolbar/tableToolbar.css.js +0 -8
  462. package/lib/esm/backoffice/molecules/table_toolbar/tableToolbar.css.js.map +0 -1
  463. package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.js +0 -26
  464. package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.js.map +0 -1
  465. package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/backofficeVirtualizedConnectionTable.css.js +0 -8
  466. package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/backofficeVirtualizedConnectionTable.css.js.map +0 -1
  467. package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/helpers.js +0 -18
  468. package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/helpers.js.map +0 -1
  469. package/lib/esm/components/dashboard/section_nav/SectionNav.css.js +0 -8
  470. package/lib/esm/components/dashboard/section_nav/SectionNav.css.js.map +0 -1
  471. package/lib/esm/components/dashboard/section_nav/SectionNav.js +0 -25
  472. package/lib/esm/components/dashboard/section_nav/SectionNav.js.map +0 -1
  473. package/lib/esm/components/dashboard/segmented_nav/SegmentedNav.css.js +0 -8
  474. package/lib/esm/components/dashboard/segmented_nav/SegmentedNav.css.js.map +0 -1
  475. package/lib/esm/components/dashboard/segmented_nav/SegmentedNav.js +0 -24
  476. package/lib/esm/components/dashboard/segmented_nav/SegmentedNav.js.map +0 -1
  477. package/lib/esm/components/layout/AppShell.js +0 -19
  478. package/lib/esm/components/layout/AppShell.js.map +0 -1
  479. package/lib/esm/components/layout/SidebarPageLayout.js +0 -16
  480. package/lib/esm/components/layout/SidebarPageLayout.js.map +0 -1
  481. package/lib/esm/components/layout/SplitViewLayout.css.js +0 -8
  482. package/lib/esm/components/layout/SplitViewLayout.css.js.map +0 -1
  483. package/lib/esm/components/layout/SplitViewLayout.js +0 -18
  484. package/lib/esm/components/layout/SplitViewLayout.js.map +0 -1
  485. package/lib/esm/components/layout/TabsContentLayout.css.js +0 -8
  486. package/lib/esm/components/layout/TabsContentLayout.css.js.map +0 -1
  487. package/lib/esm/components/layout/TabsContentLayout.js +0 -31
  488. package/lib/esm/components/layout/TabsContentLayout.js.map +0 -1
  489. package/lib/esm/components/layout/ToolbarRow.css.js +0 -8
  490. package/lib/esm/components/layout/ToolbarRow.css.js.map +0 -1
  491. package/lib/esm/components/layout/ToolbarRow.js +0 -12
  492. package/lib/esm/components/layout/ToolbarRow.js.map +0 -1
  493. package/lib/esm/components/subscriptions/RefetchNeededBanner.css.js +0 -8
  494. package/lib/esm/components/subscriptions/RefetchNeededBanner.css.js.map +0 -1
  495. package/lib/types/atomic/molecules/card/Card.css.d.ts +0 -5
  496. package/lib/types/atomic/molecules/card/Card.css.d.ts.map +0 -1
  497. package/lib/types/atomic/molecules/form/FormErrorBanner.css.d.ts +0 -2
  498. package/lib/types/atomic/molecules/form/FormErrorBanner.css.d.ts.map +0 -1
  499. package/lib/types/atomic/molecules/form/FormErrorBanner.d.ts +0 -7
  500. package/lib/types/atomic/molecules/form/FormErrorBanner.d.ts.map +0 -1
  501. package/lib/types/atomic/templates/detail-page/DetailPage.d.ts +0 -19
  502. package/lib/types/atomic/templates/detail-page/DetailPage.d.ts.map +0 -1
  503. package/lib/types/atomic/templates/detail-page/detailPage.css.d.ts +0 -9
  504. package/lib/types/atomic/templates/detail-page/detailPage.css.d.ts.map +0 -1
  505. package/lib/types/backoffice/molecules/backoffice_detail_layout/BackofficeDetailLayout.d.ts +0 -10
  506. package/lib/types/backoffice/molecules/backoffice_detail_layout/BackofficeDetailLayout.d.ts.map +0 -1
  507. package/lib/types/backoffice/molecules/backoffice_detail_layout/backofficeDetailLayout.css.d.ts +0 -7
  508. package/lib/types/backoffice/molecules/backoffice_detail_layout/backofficeDetailLayout.css.d.ts.map +0 -1
  509. package/lib/types/backoffice/molecules/backoffice_empty_state/backofficeEmptyState.css.d.ts +0 -6
  510. package/lib/types/backoffice/molecules/backoffice_empty_state/backofficeEmptyState.css.d.ts.map +0 -1
  511. package/lib/types/backoffice/molecules/backoffice_filters_bar/BackofficeFiltersBar.d.ts +0 -13
  512. package/lib/types/backoffice/molecules/backoffice_filters_bar/BackofficeFiltersBar.d.ts.map +0 -1
  513. package/lib/types/backoffice/molecules/backoffice_filters_bar/backofficeFiltersBar.css.d.ts +0 -6
  514. package/lib/types/backoffice/molecules/backoffice_filters_bar/backofficeFiltersBar.css.d.ts.map +0 -1
  515. package/lib/types/backoffice/molecules/backoffice_form_section/backofficeFormSection.css.d.ts +0 -5
  516. package/lib/types/backoffice/molecules/backoffice_form_section/backofficeFormSection.css.d.ts.map +0 -1
  517. package/lib/types/backoffice/molecules/backoffice_infinite_list_status/BackofficeInfiniteListStatus.d.ts +0 -16
  518. package/lib/types/backoffice/molecules/backoffice_infinite_list_status/BackofficeInfiniteListStatus.d.ts.map +0 -1
  519. package/lib/types/backoffice/molecules/backoffice_infinite_list_status/backofficeInfiniteListStatus.css.d.ts.map +0 -1
  520. package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts +0 -13
  521. package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts.map +0 -1
  522. package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts +0 -5
  523. package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts.map +0 -1
  524. package/lib/types/backoffice/molecules/backoffice_table_toolbar/BackofficeTableToolbar.d.ts +0 -16
  525. package/lib/types/backoffice/molecules/backoffice_table_toolbar/BackofficeTableToolbar.d.ts.map +0 -1
  526. package/lib/types/backoffice/molecules/backoffice_table_toolbar/backofficeTableToolbar.css.d.ts +0 -10
  527. package/lib/types/backoffice/molecules/backoffice_table_toolbar/backofficeTableToolbar.css.d.ts.map +0 -1
  528. package/lib/types/backoffice/molecules/backoffice_tabs/BackofficeTabs.d.ts +0 -19
  529. package/lib/types/backoffice/molecules/backoffice_tabs/BackofficeTabs.d.ts.map +0 -1
  530. package/lib/types/backoffice/molecules/backoffice_tabs/backofficeTabs.css.d.ts +0 -15
  531. package/lib/types/backoffice/molecules/backoffice_tabs/backofficeTabs.css.d.ts.map +0 -1
  532. package/lib/types/backoffice/molecules/inline_banner/InlineBanner.d.ts.map +0 -1
  533. package/lib/types/backoffice/molecules/inline_banner/inlineBanner.css.d.ts.map +0 -1
  534. package/lib/types/backoffice/molecules/table_toolbar/TableToolbar.d.ts +0 -13
  535. package/lib/types/backoffice/molecules/table_toolbar/TableToolbar.d.ts.map +0 -1
  536. package/lib/types/backoffice/molecules/table_toolbar/tableToolbar.css.d.ts +0 -6
  537. package/lib/types/backoffice/molecules/table_toolbar/tableToolbar.css.d.ts.map +0 -1
  538. package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.d.ts +0 -31
  539. package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.d.ts.map +0 -1
  540. package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/backofficeVirtualizedConnectionTable.css.d.ts +0 -5
  541. package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/backofficeVirtualizedConnectionTable.css.d.ts.map +0 -1
  542. package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/helpers.d.ts +0 -5
  543. package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/helpers.d.ts.map +0 -1
  544. package/lib/types/components/dashboard/section_nav/SectionNav.css.d.ts +0 -4
  545. package/lib/types/components/dashboard/section_nav/SectionNav.css.d.ts.map +0 -1
  546. package/lib/types/components/dashboard/section_nav/SectionNav.d.ts +0 -15
  547. package/lib/types/components/dashboard/section_nav/SectionNav.d.ts.map +0 -1
  548. package/lib/types/components/dashboard/segmented_nav/SegmentedNav.css.d.ts +0 -4
  549. package/lib/types/components/dashboard/segmented_nav/SegmentedNav.css.d.ts.map +0 -1
  550. package/lib/types/components/dashboard/segmented_nav/SegmentedNav.d.ts +0 -15
  551. package/lib/types/components/dashboard/segmented_nav/SegmentedNav.d.ts.map +0 -1
  552. package/lib/types/components/layout/AppShell.d.ts +0 -17
  553. package/lib/types/components/layout/AppShell.d.ts.map +0 -1
  554. package/lib/types/components/layout/SidebarPageLayout.d.ts +0 -15
  555. package/lib/types/components/layout/SidebarPageLayout.d.ts.map +0 -1
  556. package/lib/types/components/layout/SplitViewLayout.css.d.ts +0 -3
  557. package/lib/types/components/layout/SplitViewLayout.css.d.ts.map +0 -1
  558. package/lib/types/components/layout/SplitViewLayout.d.ts +0 -11
  559. package/lib/types/components/layout/SplitViewLayout.d.ts.map +0 -1
  560. package/lib/types/components/layout/TabsContentLayout.css.d.ts +0 -6
  561. package/lib/types/components/layout/TabsContentLayout.css.d.ts.map +0 -1
  562. package/lib/types/components/layout/TabsContentLayout.d.ts +0 -9
  563. package/lib/types/components/layout/TabsContentLayout.d.ts.map +0 -1
  564. package/lib/types/components/layout/ToolbarRow.css.d.ts +0 -2
  565. package/lib/types/components/layout/ToolbarRow.css.d.ts.map +0 -1
  566. package/lib/types/components/layout/ToolbarRow.d.ts +0 -8
  567. package/lib/types/components/layout/ToolbarRow.d.ts.map +0 -1
  568. package/lib/types/components/subscriptions/RefetchNeededBanner.css.d.ts +0 -5
  569. package/lib/types/components/subscriptions/RefetchNeededBanner.css.d.ts.map +0 -1
  570. /package/lib/types/{backoffice/molecules/inline_banner → components/feedback}/inlineBanner.css.d.ts +0 -0
@@ -1,111 +1,51 @@
1
1
  import { cx as e } from "../../theme/tools.js";
2
2
  import { useUiTranslation as t } from "../../i18n/useUiTranslation.js";
3
3
  import { ModalCloseSvg as n } from "../../icons/ModalCloseSvg.js";
4
- import { actionGroup as r, breadcrumbCurrent as i, breadcrumbItem as a, breadcrumbLink as o, breadcrumbList as s, breadcrumbNav as c, breadcrumbSeparator as ee, content as te, contentContained as ne, header as re, headerLeading as ie, headerRow as ae, mainColumn as oe, mainColumnContained as se, mainColumnWithSidePanel as ce, mobileSidebarBackdrop as le, mobileSidebarBackdropOpen as ue, page as de, pageContained as fe, pageWithSidePanel as pe, secondaryAction as l, shell as me, sidePanel as he, sidePanelResizable as ge, sidePanelResizer as _e, sidePanelResizerHiddenOnMobile as ve, sidePanelSurface as ye, tabRecipe as be, tabsRow as xe } from "./PageShell.css.js";
5
- import { MenuSvg as u } from "../../icons/MenuSvg.js";
6
- import { useCallback as d, useEffect as f, useRef as p, useState as m } from "react";
7
- import { jsx as h, jsxs as g } from "react/jsx-runtime";
8
- import _ from "@plumile/router/routing/Link.js";
4
+ import { Tabs as r } from "../../atomic/molecules/tabs/Tabs.js";
5
+ import { actionGroup as i, breadcrumbCurrent as ee, breadcrumbItem as a, breadcrumbLink as o, breadcrumbList as s, breadcrumbNav as c, breadcrumbSeparator as l, content as u, contentContained as d, header as te, headerLeading as ne, headerRow as re, mainColumn as ie, mainColumnContained as ae, mainColumnWithSidePanel as oe, mobileSidebarBackdrop as se, mobileSidebarBackdropOpen as ce, page as le, pageContained as ue, pageSplitView as de, pageWithSidePanel as fe, secondaryAction as f, shell as pe, sidePanel as p, sidePanelSurface as m } from "./PageShell.css.js";
6
+ import { ResizableSplitView as me } from "./ResizableSplitView.js";
7
+ import { MenuSvg as h } from "../../icons/MenuSvg.js";
8
+ import { useCallback as g, useEffect as _, useRef as v, useState as y } from "react";
9
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
10
+ import he from "@plumile/router/routing/Link.js";
9
11
  //#region src/components/layout/PageShell.tsx
10
- var Se = 520, v = 360, y = .5, b = 480, Ce = 1024, x = "plumile:page-shell:side-panel-width", we = "a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])", S = () => {
11
- if (typeof window > "u") return null;
12
- try {
13
- let e = window.localStorage.getItem(x);
14
- if (e == null) return null;
15
- let t = Number(e);
16
- return !Number.isFinite(t) || t <= 0 ? null : t;
17
- } catch {
18
- return null;
19
- }
20
- }, C = (e) => {
21
- if (!(typeof window > "u")) try {
22
- window.localStorage.setItem(x, String(e));
23
- } catch {}
24
- }, w = (e) => {
25
- let t = e;
26
- return typeof window < "u" && (t = window.innerWidth), t * y;
27
- }, T = (e, t) => typeof e.isActive == "boolean" ? e.isActive : e.href != null && t != null ? t === e.href : !1, E = ({ actions: y, breadcrumb: x, breadcrumbSlot: E, children: D, contentClassName: Te, contentScrollMode: Ee = "page", desktopSidebarOpen: O = !0, mobileSidebar: De, onOpenDesktopSidebar: Oe, openDesktopSidebarLabel: ke, sidebar: k, sidePanel: A, tabs: j }) => {
28
- let { t: M } = t(), N = A != null, P = Ee === "contained", F = null;
29
- P && (F = ne);
30
- let I = p(null), L = p(null), R = p(null), z = p(null), B = p(null), V = p(null), [H, U] = m(() => S() ?? Se), W = p(H), [Ae, G] = m(!1), [K, je] = m(!1), [q, J] = m(!1), Y = d(() => {
31
- J(!1);
32
- }, []), Me = d(() => {
12
+ var ge = 520, _e = 360, ve = .5, ye = 480, S = 1024, C = "plumile:page-shell:side-panel-width", w = "a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])", T = (e, t) => typeof e.isActive == "boolean" ? e.isActive : e.href != null && t != null ? t === e.href : !1, E = ({ actions: T, breadcrumb: E, breadcrumbSlot: D, children: O, contentClassName: k, contentScrollMode: A = "page", desktopSidebarOpen: j = !0, mobileSidebar: M, onOpenDesktopSidebar: N, openDesktopSidebarLabel: P, sidebar: F, sidePanel: I, tabs: L }) => {
13
+ let { t: R } = t(), z = I != null, B = F != null || M != null, V = A === "contained", H = null;
14
+ V && (H = d);
15
+ let be = v(null), U = v(null), W = v(null), G = v(null), K = v(null), [q, xe] = y(!1), [J, Y] = y(!1), X = g(() => {
16
+ Y(!1);
17
+ }, []), Z = g(() => {
33
18
  if (typeof document < "u") {
34
19
  let { activeElement: e } = document;
35
- e instanceof HTMLElement && (B.current = e);
20
+ e instanceof HTMLElement && (K.current = e);
36
21
  }
37
- J(!0);
38
- }, []), X = d((e) => {
39
- let t = I.current;
40
- if (t == null) return;
41
- let { width: n } = t.getBoundingClientRect(), r = Math.max(0, Math.min(w(n), n - b)), i = Math.min(v, r);
42
- r <= 0 && (i = 0);
43
- let a = Math.max(i, Math.min(e, Math.max(i, r)));
44
- W.current = a, U(a);
45
- }, []), Z = d((e) => {
46
- if (typeof window > "u" || !N || K) return;
47
- let t = I.current;
48
- if (t == null) return;
49
- let n = t.getBoundingClientRect(), r = H;
50
- G(!0);
51
- let i = (t) => {
52
- let i = 0;
53
- if ("touches" in t) {
54
- let e = t.touches[0];
55
- if (e == null) return;
56
- i = e.clientX;
57
- } else i = t.clientX;
58
- let a = r + (e - i), o = Math.max(0, Math.min(w(n.width), n.width - b)), s = Math.min(v, o);
59
- o <= 0 && (s = 0);
60
- let c = Math.max(s, Math.min(a, Math.max(s, o)));
61
- W.current = c, U(c);
62
- }, a = () => {
63
- G(!1), C(W.current);
64
- let e = V.current;
65
- e?.move != null && (window.removeEventListener("mousemove", e.move), window.removeEventListener("touchmove", e.move)), e?.up != null && (window.removeEventListener("mouseup", e.up), window.removeEventListener("touchend", e.up), window.removeEventListener("touchcancel", e.up)), V.current = null;
66
- };
67
- V.current = {
68
- move: i,
69
- up: a
70
- }, window.addEventListener("mousemove", i), window.addEventListener("touchmove", i, { passive: !1 }), window.addEventListener("mouseup", a), window.addEventListener("touchend", a), window.addEventListener("touchcancel", a);
71
- }, [
72
- N,
73
- K,
74
- H
75
- ]);
76
- f(() => {
77
- W.current = H;
78
- }, [H]), f(() => {
22
+ Y(!0);
23
+ }, []);
24
+ _(() => {
79
25
  if (typeof window > "u") return () => {};
80
- let e = window.matchMedia(`(max-width: ${Ce - 1}px)`), t = () => {
81
- je(e.matches);
26
+ let e = window.matchMedia(`(max-width: ${S - 1}px)`), t = () => {
27
+ xe(e.matches);
82
28
  };
83
29
  return t(), e.addEventListener("change", t), () => {
84
30
  e.removeEventListener("change", t);
85
31
  };
86
- }, []), f(() => {
87
- N && X(H);
32
+ }, []), _(() => {
33
+ !q && J && X();
88
34
  }, [
89
- N,
90
- H,
91
- X
92
- ]), f(() => {
93
- !K && q && Y();
94
- }, [
95
- Y,
96
- q,
97
- K
98
- ]), f(() => {
99
- if (!q) return () => {};
35
+ X,
36
+ J,
37
+ q
38
+ ]), _(() => {
39
+ if (!J) return () => {};
100
40
  let e = (e) => {
101
41
  if (e.key === "Escape") {
102
- Y();
42
+ X();
103
43
  return;
104
44
  }
105
45
  if (e.key !== "Tab") return;
106
- let t = L.current;
46
+ let t = U.current;
107
47
  if (t == null) return;
108
- let n = Array.from(t.querySelectorAll(we)).filter((e) => e.offsetParent != null || e === document.activeElement), r = n[0], i = n[n.length - 1];
48
+ let n = Array.from(t.querySelectorAll(w)).filter((e) => e.offsetParent != null || e === document.activeElement), r = n[0], i = n[n.length - 1];
109
49
  if (r == null || i == null) {
110
50
  e.preventDefault();
111
51
  return;
@@ -115,237 +55,173 @@ var Se = 520, v = 360, y = .5, b = 480, Ce = 1024, x = "plumile:page-shell:side-
115
55
  return;
116
56
  }
117
57
  !e.shiftKey && document.activeElement === i && (e.preventDefault(), r.focus());
118
- }, t = R.current;
119
- return z.current?.focus(), window.addEventListener("keydown", e), () => {
58
+ }, t = W.current;
59
+ return G.current?.focus(), window.addEventListener("keydown", e), () => {
120
60
  window.removeEventListener("keydown", e);
121
- let n = B.current;
122
- n != null && document.contains(n) ? n.focus() : t?.focus(), B.current = null;
61
+ let n = K.current;
62
+ n != null && document.contains(n) ? n.focus() : t?.focus(), K.current = null;
123
63
  };
124
- }, [Y, q]), f(() => () => {
125
- let e = V.current;
126
- e?.move != null && (window.removeEventListener("mousemove", e.move), window.removeEventListener("touchmove", e.move)), e?.up != null && (window.removeEventListener("mouseup", e.up), window.removeEventListener("touchend", e.up), window.removeEventListener("touchcancel", e.up));
127
- }, []);
128
- let Q;
129
- typeof window < "u" && (Q = window.location.pathname);
130
- let Ne = () => {
131
- if (E != null) return /* @__PURE__ */ h("div", {
64
+ }, [X, J]);
65
+ let Se = () => {
66
+ if (D != null) return /* @__PURE__ */ b("div", {
132
67
  className: c,
133
- children: E
68
+ children: D
134
69
  });
135
- if (x == null || x.length === 0) return null;
136
- let e = x.flatMap((e, t) => {
137
- let n = t === x.length - 1, r = `${e.href ?? "crumb"}-${t}`, s;
138
- if (e.href != null && !n) s = /* @__PURE__ */ h(_, {
70
+ if (E == null || E.length === 0) return null;
71
+ let e = E.flatMap((e, t) => {
72
+ let n = t === E.length - 1, r = `${e.href ?? "crumb"}-${t}`, i;
73
+ if (e.href != null && !n) i = /* @__PURE__ */ b(he, {
139
74
  to: e.href,
140
75
  className: o,
141
76
  children: e.label
142
77
  });
143
78
  else {
144
79
  let t = o;
145
- n && (t = i), s = /* @__PURE__ */ h("span", {
80
+ n && (t = ee), i = /* @__PURE__ */ b("span", {
146
81
  className: t,
147
82
  children: e.label
148
83
  });
149
84
  }
150
- let c = /* @__PURE__ */ h("li", {
85
+ let s = /* @__PURE__ */ b("li", {
151
86
  className: a,
152
- children: s
87
+ children: i
153
88
  }, r);
154
- return n ? [c] : [c, /* @__PURE__ */ h("li", {
155
- className: ee,
89
+ return n ? [s] : [s, /* @__PURE__ */ b("li", {
90
+ className: l,
156
91
  "aria-hidden": "true",
157
92
  children: "/"
158
93
  }, `${r}-sep`)];
159
94
  });
160
- return /* @__PURE__ */ h("nav", {
95
+ return /* @__PURE__ */ b("nav", {
161
96
  className: c,
162
- "aria-label": M("navigation.breadcrumb"),
163
- children: /* @__PURE__ */ h("ol", {
97
+ "aria-label": R("navigation.breadcrumb"),
98
+ children: /* @__PURE__ */ b("ol", {
164
99
  className: s,
165
100
  children: e
166
101
  })
167
102
  });
168
- }, Pe = () => {
169
- if (y == null || y.main == null && (y.secondary ?? []).length === 0) return null;
170
- let e = y.secondary ?? [], t = null;
171
- return y.main != null && (t = /* @__PURE__ */ h("div", {
172
- className: l,
173
- children: y.main
174
- })), /* @__PURE__ */ g("div", {
175
- className: r,
176
- children: [e.map((e, t) => /* @__PURE__ */ h("div", {
177
- className: l,
103
+ }, Ce = () => {
104
+ if (T == null || T.main == null && (T.secondary ?? []).length === 0) return null;
105
+ let e = T.secondary ?? [], t = null;
106
+ return T.main != null && (t = /* @__PURE__ */ b("div", {
107
+ className: f,
108
+ children: T.main
109
+ })), /* @__PURE__ */ x("div", {
110
+ className: i,
111
+ children: [e.map((e, t) => /* @__PURE__ */ b("div", {
112
+ className: f,
178
113
  children: e
179
114
  }, `secondary-${t}`)), t]
180
115
  });
181
- }, Fe = () => j == null || j.length === 0 ? null : /* @__PURE__ */ h("div", {
182
- className: xe,
183
- children: j.map((e) => {
184
- let t = T(e, Q), n = "default";
185
- t && (n = "active");
186
- let r = "link";
187
- e.href ?? (r = "static");
188
- let i = be({
189
- state: n,
190
- mode: r
191
- }), a = e.id, o;
192
- return t && (o = "page"), e.href == null ? /* @__PURE__ */ h("span", {
193
- className: i,
194
- "aria-current": o,
195
- children: e.label
196
- }, a) : /* @__PURE__ */ h(_, {
197
- to: e.href,
198
- className: i,
199
- "aria-current": o,
200
- children: e.label
201
- }, a);
202
- })
203
- }), Ie = d((e) => {
204
- if (!K && (e.key === "ArrowLeft" || e.key === "ArrowRight")) {
205
- e.preventDefault();
206
- let t = 16;
207
- e.key === "ArrowRight" && (t = -16), X(H + t), C(W.current);
208
- }
209
- }, [
210
- X,
211
- K,
212
- H
213
- ]), Le = null;
214
- if (N) {
215
- let t = [he, ye], n;
216
- K || (t.push(ge), n = { width: `${H}px` }), Le = /* @__PURE__ */ h("aside", {
217
- className: e(...t),
218
- style: n,
219
- children: A
220
- });
221
- }
222
- let Re = null;
223
- if (N) {
224
- let t = "false";
225
- Ae && (t = "true");
226
- let n = v, r = Math.max(v, H), i = I.current;
227
- if (i != null) {
228
- let { width: e } = i.getBoundingClientRect(), t = Math.max(0, Math.min(w(e), e - b));
229
- n = Math.min(v, t), t <= 0 && (n = 0), r = Math.max(n, t);
230
- }
231
- Re = /* @__PURE__ */ h("div", {
232
- className: e(_e, ve),
233
- role: "separator",
234
- "aria-orientation": "vertical",
235
- "aria-label": M("layout.pageShell.resizeSidePanel"),
236
- "aria-valuemin": Math.round(n),
237
- "aria-valuemax": Math.round(r),
238
- "aria-valuenow": Math.round(H),
239
- tabIndex: 0,
240
- "data-active": t,
241
- onMouseDown: (e) => {
242
- e.preventDefault(), Z(e.clientX);
243
- },
244
- onTouchStart: (e) => {
245
- let t = e.touches[0];
246
- t != null && Z(t.clientX);
247
- },
248
- onKeyDown: Ie
249
- });
250
- }
251
- let ze = k;
252
- K && (ze = De ?? k);
253
- let Be = O || K, $ = ke;
254
- return $ ??= M("navigation.pageShell.openNavigation"), /* @__PURE__ */ g("div", {
255
- className: me,
116
+ }, we = () => L == null || L.length === 0 ? null : /* @__PURE__ */ b(r, {
117
+ items: L.map((e) => ({
118
+ id: e.id,
119
+ label: e.label,
120
+ to: e.href,
121
+ isActive: e.isActive
122
+ })),
123
+ variant: "page"
124
+ }), Q = F;
125
+ q && (Q = M ?? F);
126
+ let Te = B && (j || q), $ = P;
127
+ $ ??= R("navigation.pageShell.openNavigation");
128
+ let Ee = /* @__PURE__ */ x("div", {
129
+ className: e(ie, {
130
+ [oe]: z,
131
+ [ae]: V
132
+ }),
133
+ children: [/* @__PURE__ */ x("div", {
134
+ className: te,
135
+ children: [/* @__PURE__ */ x("div", {
136
+ className: re,
137
+ children: [/* @__PURE__ */ x("div", {
138
+ className: ne,
139
+ children: [
140
+ B && !q && !j && /* @__PURE__ */ b("button", {
141
+ type: "button",
142
+ className: "_1kley2de _1kley2dd txvbqbdsb txvbqbdqf txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv txvbqbf7y txvbqb7g txvbqb76 txvbqb7t",
143
+ onClick: N,
144
+ "aria-label": $,
145
+ title: $,
146
+ children: /* @__PURE__ */ b(h, {
147
+ width: 18,
148
+ height: 18,
149
+ "aria-hidden": "true"
150
+ })
151
+ }),
152
+ B && q && /* @__PURE__ */ b("button", {
153
+ ref: W,
154
+ type: "button",
155
+ className: "_1kley2dc txvbqbdq5 txvbqbdsl txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv txvbqbf7y",
156
+ onClick: Z,
157
+ "aria-expanded": J,
158
+ "aria-label": R("navigation.pageShell.openNavigation"),
159
+ children: /* @__PURE__ */ b(h, {
160
+ width: 18,
161
+ height: 18,
162
+ "aria-hidden": "true"
163
+ })
164
+ }),
165
+ Se()
166
+ ]
167
+ }), Ce()]
168
+ }), we()]
169
+ }), /* @__PURE__ */ b("div", {
170
+ className: e(u, H, k),
171
+ children: O
172
+ })]
173
+ });
174
+ return /* @__PURE__ */ x("div", {
175
+ className: pe,
256
176
  children: [
257
- /* @__PURE__ */ h("div", {
258
- className: e(le, { [ue]: K && q }),
177
+ /* @__PURE__ */ b("div", {
178
+ className: e(se, { [ce]: q && J }),
259
179
  "aria-hidden": "true",
260
- onClick: Y
180
+ onClick: X
261
181
  }),
262
- Be && /* @__PURE__ */ g("div", {
263
- ref: L,
264
- className: e("_1kley2d4 txvbqb11ki txvbqb16gq txvbqbipm txvbqbf7y txvbqbdr8 txvbqbusr", "_1kley2d5", { _1kley2d6: K && q }),
265
- "aria-hidden": K && !q,
266
- inert: K && !q,
267
- children: [/* @__PURE__ */ h("button", {
268
- ref: z,
182
+ Te && /* @__PURE__ */ x("div", {
183
+ ref: U,
184
+ className: e("_1kley2d5 txvbqb11ki txvbqb16gq txvbqbipm txvbqbf7y txvbqbdr8 txvbqbusr", "_1kley2d6", { _1kley2d7: q && J }),
185
+ "aria-hidden": q && !J,
186
+ inert: q && !J,
187
+ children: [/* @__PURE__ */ b("button", {
188
+ ref: G,
269
189
  type: "button",
270
- className: "_1kley2de txvbqbdq5 txvbqbdsl txvbqb11kv txvbqb11jp txvbqb11l8 txvbqb11ml txvbqb16gq txvbqb16i3 txvbqb18w4 txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv",
271
- onClick: Y,
272
- "aria-label": M("navigation.pageShell.closeNavigation"),
273
- children: /* @__PURE__ */ h(n, {
190
+ className: "_1kley2df txvbqbdq5 txvbqbdsl txvbqb11kv txvbqb11jp txvbqb11l8 txvbqb11ml txvbqb16gq txvbqb16i3 txvbqb18w4 txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv",
191
+ onClick: X,
192
+ "aria-label": R("navigation.pageShell.closeNavigation"),
193
+ children: /* @__PURE__ */ b(n, {
274
194
  width: 18,
275
195
  height: 18,
276
196
  "aria-hidden": "true"
277
197
  })
278
- }), /* @__PURE__ */ h("div", {
279
- className: "_1kley2d8 _1kley2d7 txvbqbdr8 txvbqbi1f",
280
- children: ze
198
+ }), /* @__PURE__ */ b("div", {
199
+ className: "_1kley2d9 _1kley2d8 txvbqbdr8 txvbqbi1f",
200
+ children: Q
281
201
  })]
282
202
  }),
283
- /* @__PURE__ */ g("div", {
284
- ref: I,
285
- className: e(de, {
286
- [pe]: N,
287
- [fe]: P
288
- }),
289
- "aria-hidden": K && q,
290
- inert: K && q,
291
- children: [
292
- /* @__PURE__ */ g("div", {
293
- className: e(oe, {
294
- [ce]: N,
295
- [se]: P
296
- }),
297
- children: [/* @__PURE__ */ g("div", {
298
- className: re,
299
- children: [/* @__PURE__ */ g("div", {
300
- className: ae,
301
- children: [/* @__PURE__ */ g("div", {
302
- className: ie,
303
- children: [
304
- !K && !O && /* @__PURE__ */ h("button", {
305
- type: "button",
306
- className: "_1kley2dd _1kley2dc txvbqbdsb txvbqbdqf txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv txvbqbf7y txvbqb7g txvbqb76 txvbqb7t",
307
- onClick: Oe,
308
- "aria-label": $,
309
- title: $,
310
- children: /* @__PURE__ */ h(u, {
311
- width: 18,
312
- height: 18,
313
- "aria-hidden": "true"
314
- })
315
- }),
316
- K && /* @__PURE__ */ h("button", {
317
- ref: R,
318
- type: "button",
319
- className: "_1kley2db txvbqbdq5 txvbqbdsl txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv txvbqbf7y",
320
- onClick: Me,
321
- "aria-expanded": q,
322
- "aria-label": M("navigation.pageShell.openNavigation"),
323
- children: /* @__PURE__ */ h(u, {
324
- width: 18,
325
- height: 18,
326
- "aria-hidden": "true"
327
- })
328
- }),
329
- Ne()
330
- ]
331
- }), Pe()]
332
- }), Fe()]
333
- }), /* @__PURE__ */ h("div", {
334
- className: e(te, F, Te),
335
- children: D
336
- })]
337
- }),
338
- Re,
339
- Le
340
- ]
203
+ /* @__PURE__ */ b("div", {
204
+ ref: be,
205
+ className: e(le, { [ue]: V }),
206
+ "aria-hidden": q && J,
207
+ inert: q && J,
208
+ children: /* @__PURE__ */ b(me, {
209
+ main: Ee,
210
+ sidePanel: I,
211
+ className: e(de, { [fe]: z }),
212
+ sidePanelClassName: e(p, m),
213
+ defaultSidePanelWidth: ge,
214
+ minSidePanelWidth: _e,
215
+ maxSidePanelRatio: ve,
216
+ minMainWidth: ye,
217
+ stackedBreakpoint: S,
218
+ storageKey: C,
219
+ resizerLabel: R("layout.pageShell.resizeSidePanel")
220
+ })
341
221
  })
342
222
  ]
343
223
  });
344
- }, D = {
345
- readStoredSidePanelWidth: S,
346
- resolveMaxSidePanelWidth: w,
347
- resolveIsActive: T
348
- };
224
+ }, D = { resolveIsActive: T };
349
225
  //#endregion
350
226
  export { E as PageShell, D as __test };
351
227
 
@@ -1 +1 @@
1
- {"version":3,"file":"PageShell.js","names":[],"sources":["../../../../src/components/layout/PageShell.tsx"],"sourcesContent":["import Link from '@plumile/router/routing/Link.js';\nimport {\n useCallback,\n useEffect,\n useRef,\n useState,\n type JSX,\n type ReactNode,\n type KeyboardEvent,\n type CSSProperties,\n} from 'react';\n\nimport * as styles from './PageShell.css.js';\nimport { MenuSvg } from '../../icons/MenuSvg.js';\nimport { ModalCloseSvg } from '../../icons/ModalCloseSvg.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\n\nexport type BreadcrumbItem = {\n label: ReactNode;\n href?: string;\n};\n\nexport type PageShellTab = {\n id: string;\n label: ReactNode;\n href?: string;\n isActive?: boolean;\n};\n\nexport type PageShellActions = {\n main?: ReactNode;\n secondary?: ReactNode[];\n};\n\nexport type PageShellContentScrollMode = 'page' | 'contained';\n\nconst DEFAULT_SIDE_PANEL_WIDTH = 520;\nconst MIN_SIDE_PANEL_WIDTH = 360;\nconst MAX_SIDE_PANEL_RATIO = 0.5;\nconst MIN_MAIN_WIDTH = 480;\nconst SPLIT_BREAKPOINT = 1024;\nconst SIDE_PANEL_WIDTH_STORAGE_KEY = 'plumile:page-shell:side-panel-width';\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\nconst readStoredSidePanelWidth = (): number | null => {\n if (typeof window === 'undefined') {\n return null;\n }\n\n try {\n const stored = window.localStorage.getItem(SIDE_PANEL_WIDTH_STORAGE_KEY);\n if (stored == null) {\n return null;\n }\n const parsed = Number(stored);\n if (!Number.isFinite(parsed) || parsed <= 0) {\n return null;\n }\n return parsed;\n } catch {\n return null;\n }\n};\n\nconst persistSidePanelWidth = (width: number): void => {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n window.localStorage.setItem(SIDE_PANEL_WIDTH_STORAGE_KEY, String(width));\n } catch {\n // ignore quota / permission errors\n }\n};\n\nconst resolveMaxSidePanelWidth = (containerWidth: number): number => {\n let viewWidth = containerWidth;\n if (typeof window !== 'undefined') {\n viewWidth = window.innerWidth;\n }\n return viewWidth * MAX_SIDE_PANEL_RATIO;\n};\n\ntype ResizeMoveHandler = (event: MouseEvent | TouchEvent) => void;\ntype ResizeUpHandler = () => void;\ntype ActiveResizeHandlers = {\n move?: ResizeMoveHandler | null;\n up?: ResizeUpHandler | null;\n};\n\ntype Props = {\n sidebar: ReactNode;\n mobileSidebar?: ReactNode;\n desktopSidebarOpen?: boolean;\n onOpenDesktopSidebar?: () => void;\n openDesktopSidebarLabel?: string;\n children: ReactNode;\n breadcrumb?: BreadcrumbItem[];\n breadcrumbSlot?: ReactNode;\n tabs?: PageShellTab[];\n actions?: PageShellActions;\n sidePanel?: ReactNode;\n contentClassName?: string;\n contentScrollMode?: PageShellContentScrollMode;\n};\n\nconst resolveIsActive = (tab: PageShellTab, pathname?: string): boolean => {\n if (typeof tab.isActive === 'boolean') {\n return tab.isActive;\n }\n\n if (tab.href != null && pathname != null) {\n return pathname === tab.href;\n }\n\n return false;\n};\n\nexport const PageShell = ({\n actions,\n breadcrumb,\n breadcrumbSlot,\n children,\n contentClassName,\n contentScrollMode = 'page',\n desktopSidebarOpen = true,\n mobileSidebar,\n onOpenDesktopSidebar,\n openDesktopSidebarLabel,\n sidebar,\n sidePanel,\n tabs,\n}: Props): JSX.Element => {\n const { t } = useUiTranslation();\n const hasSidePanel = sidePanel != null;\n const isContainedScroll = contentScrollMode === 'contained';\n let containedContentClassName: string | null = null;\n if (isContainedScroll) {\n containedContentClassName = styles.contentContained;\n }\n const pageRef = useRef<HTMLDivElement | null>(null);\n const mobileSidebarRef = useRef<HTMLDivElement | null>(null);\n const mobileSidebarToggleRef = useRef<HTMLButtonElement | null>(null);\n const mobileSidebarCloseRef = useRef<HTMLButtonElement | null>(null);\n const mobileSidebarPreviousFocusRef = useRef<HTMLElement | null>(null);\n const activeResizeHandlersRef = useRef<ActiveResizeHandlers | null>(null);\n const [sidePanelWidth, setSidePanelWidth] = useState(() => {\n const stored = readStoredSidePanelWidth();\n return stored ?? DEFAULT_SIDE_PANEL_WIDTH;\n });\n const sidePanelWidthSnapshotRef = useRef(sidePanelWidth);\n const [isResizingPanel, setIsResizingPanel] = useState(false);\n const [isStackedLayout, setIsStackedLayout] = useState(false);\n const [isMobileSidebarOpen, setIsMobileSidebarOpen] = useState(false);\n\n const closeMobileSidebar = useCallback(() => {\n setIsMobileSidebarOpen(false);\n }, []);\n\n const openMobileSidebar = useCallback(() => {\n if (typeof document !== 'undefined') {\n const { activeElement } = document;\n if (activeElement instanceof HTMLElement) {\n mobileSidebarPreviousFocusRef.current = activeElement;\n }\n }\n setIsMobileSidebarOpen(true);\n }, []);\n\n const clampSidePanelWidth = useCallback((candidateWidth: number): void => {\n const container = pageRef.current;\n if (container == null) {\n return;\n }\n\n const { width } = container.getBoundingClientRect();\n const maxWidth = Math.max(\n 0,\n Math.min(resolveMaxSidePanelWidth(width), width - MIN_MAIN_WIDTH),\n );\n const minWidth = Math.min(MIN_SIDE_PANEL_WIDTH, maxWidth);\n let safeMin = minWidth;\n if (maxWidth <= 0) {\n safeMin = 0;\n }\n const safeMax = Math.max(safeMin, maxWidth);\n const clampedWidth = Math.max(safeMin, Math.min(candidateWidth, safeMax));\n sidePanelWidthSnapshotRef.current = clampedWidth;\n setSidePanelWidth(clampedWidth);\n }, []);\n\n const startResizing = useCallback(\n (startClientX: number): void => {\n if (typeof window === 'undefined') {\n return;\n }\n\n if (!hasSidePanel || isStackedLayout) {\n return;\n }\n\n const container = pageRef.current;\n if (container == null) {\n return;\n }\n\n const rect = container.getBoundingClientRect();\n const currentWidth = sidePanelWidth;\n setIsResizingPanel(true);\n\n const moveHandler: ResizeMoveHandler = (event) => {\n let clientX = 0;\n if ('touches' in event) {\n const touch = event.touches[0];\n if (touch == null) {\n return;\n }\n clientX = touch.clientX;\n } else {\n clientX = event.clientX;\n }\n\n const deltaX = startClientX - clientX;\n const nextWidth = currentWidth + deltaX;\n\n const maxWidth = Math.max(\n 0,\n Math.min(\n resolveMaxSidePanelWidth(rect.width),\n rect.width - MIN_MAIN_WIDTH,\n ),\n );\n const minWidth = Math.min(MIN_SIDE_PANEL_WIDTH, maxWidth);\n let safeMin = minWidth;\n if (maxWidth <= 0) {\n safeMin = 0;\n }\n const safeMax = Math.max(safeMin, maxWidth);\n\n const clampedWidth = Math.max(safeMin, Math.min(nextWidth, safeMax));\n sidePanelWidthSnapshotRef.current = clampedWidth;\n setSidePanelWidth(clampedWidth);\n };\n\n const upHandler: ResizeUpHandler = () => {\n setIsResizingPanel(false);\n persistSidePanelWidth(sidePanelWidthSnapshotRef.current);\n const handlers = activeResizeHandlersRef.current;\n if (handlers?.move != null) {\n window.removeEventListener('mousemove', handlers.move);\n window.removeEventListener('touchmove', handlers.move);\n }\n if (handlers?.up != null) {\n window.removeEventListener('mouseup', handlers.up);\n window.removeEventListener('touchend', handlers.up);\n window.removeEventListener('touchcancel', handlers.up);\n }\n activeResizeHandlersRef.current = null;\n };\n\n activeResizeHandlersRef.current = { move: moveHandler, up: upHandler };\n\n window.addEventListener('mousemove', moveHandler);\n window.addEventListener('touchmove', moveHandler, { passive: false });\n window.addEventListener('mouseup', upHandler);\n window.addEventListener('touchend', upHandler);\n window.addEventListener('touchcancel', upHandler);\n },\n [hasSidePanel, isStackedLayout, sidePanelWidth],\n );\n\n useEffect(() => {\n sidePanelWidthSnapshotRef.current = sidePanelWidth;\n }, [sidePanelWidth]);\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return () => {};\n }\n const mediaQuery = window.matchMedia(\n `(max-width: ${SPLIT_BREAKPOINT - 1}px)`,\n );\n const handleMediaChange = () => {\n setIsStackedLayout(mediaQuery.matches);\n };\n\n handleMediaChange();\n mediaQuery.addEventListener('change', handleMediaChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleMediaChange);\n };\n }, []);\n\n useEffect(() => {\n if (hasSidePanel) {\n clampSidePanelWidth(sidePanelWidth);\n }\n }, [hasSidePanel, sidePanelWidth, clampSidePanelWidth]);\n\n useEffect(() => {\n if (!isStackedLayout && isMobileSidebarOpen) {\n closeMobileSidebar();\n }\n }, [closeMobileSidebar, isMobileSidebarOpen, isStackedLayout]);\n\n useEffect(() => {\n if (!isMobileSidebarOpen) {\n return () => {};\n }\n\n const handleEscape = (event: globalThis.KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeMobileSidebar();\n return;\n }\n\n if (event.key !== 'Tab') {\n return;\n }\n\n const sidebarElement = mobileSidebarRef.current;\n if (sidebarElement == null) {\n return;\n }\n\n const focusableElements = Array.from(\n sidebarElement.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR),\n ).filter((element) => {\n return (\n element.offsetParent != null || element === document.activeElement\n );\n });\n\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n if (firstElement == null || lastElement == null) {\n event.preventDefault();\n return;\n }\n\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n return;\n }\n\n if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n };\n\n const fallbackFocusElement = mobileSidebarToggleRef.current;\n mobileSidebarCloseRef.current?.focus();\n\n window.addEventListener('keydown', handleEscape);\n return () => {\n window.removeEventListener('keydown', handleEscape);\n const previousFocus = mobileSidebarPreviousFocusRef.current;\n if (previousFocus != null && document.contains(previousFocus)) {\n previousFocus.focus();\n } else {\n fallbackFocusElement?.focus();\n }\n mobileSidebarPreviousFocusRef.current = null;\n };\n }, [closeMobileSidebar, isMobileSidebarOpen]);\n\n useEffect(() => {\n return () => {\n const handlers = activeResizeHandlersRef.current;\n if (handlers?.move != null) {\n window.removeEventListener('mousemove', handlers.move);\n window.removeEventListener('touchmove', handlers.move);\n }\n if (handlers?.up != null) {\n window.removeEventListener('mouseup', handlers.up);\n window.removeEventListener('touchend', handlers.up);\n window.removeEventListener('touchcancel', handlers.up);\n }\n };\n }, []);\n\n let currentPath: string | undefined;\n if (typeof window !== 'undefined') {\n currentPath = window.location.pathname;\n }\n\n const renderBreadcrumb = (): JSX.Element | null => {\n if (breadcrumbSlot != null) {\n return <div className={styles.breadcrumbNav}>{breadcrumbSlot}</div>;\n }\n\n if (breadcrumb == null || breadcrumb.length === 0) {\n return null;\n }\n\n const items = breadcrumb.flatMap((item, index) => {\n const isLast = index === breadcrumb.length - 1;\n const key = `${item.href ?? 'crumb'}-${index}`;\n let content: JSX.Element;\n if (item.href != null && !isLast) {\n content = (\n <Link to={item.href} className={styles.breadcrumbLink}>\n {item.label}\n </Link>\n );\n } else {\n let breadcrumbClass = styles.breadcrumbLink;\n if (isLast) {\n breadcrumbClass = styles.breadcrumbCurrent;\n }\n content = <span className={breadcrumbClass}>{item.label}</span>;\n }\n\n const renderedItem = (\n <li key={key} className={styles.breadcrumbItem}>\n {content}\n </li>\n );\n\n if (isLast) {\n return [renderedItem];\n }\n\n return [\n renderedItem,\n <li\n key={`${key}-sep`}\n className={styles.breadcrumbSeparator}\n aria-hidden=\"true\"\n >\n /\n </li>,\n ];\n });\n\n return (\n <nav\n className={styles.breadcrumbNav}\n aria-label={t('navigation.breadcrumb')}\n >\n <ol className={styles.breadcrumbList}>{items}</ol>\n </nav>\n );\n };\n\n const renderActions = (): JSX.Element | null => {\n if (\n actions == null ||\n (actions.main == null && (actions.secondary ?? []).length === 0)\n ) {\n return null;\n }\n\n const secondaryNodes = actions.secondary ?? [];\n\n let mainActionNode: JSX.Element | null = null;\n if (actions.main != null) {\n mainActionNode = (\n <div className={styles.secondaryAction}>{actions.main}</div>\n );\n }\n\n return (\n <div className={styles.actionGroup}>\n {secondaryNodes.map((node, index) => {\n return (\n <div key={`secondary-${index}`} className={styles.secondaryAction}>\n {node}\n </div>\n );\n })}\n {mainActionNode}\n </div>\n );\n };\n\n const renderTabs = (): JSX.Element | null => {\n if (tabs == null || tabs.length === 0) {\n return null;\n }\n\n return (\n <div className={styles.tabsRow}>\n {tabs.map((tab) => {\n const isActive = resolveIsActive(tab, currentPath);\n let tabState: 'default' | 'active' = 'default';\n if (isActive) {\n tabState = 'active';\n }\n let tabMode: 'static' | 'link' = 'link';\n if (tab.href == null) {\n tabMode = 'static';\n }\n const className = styles.tabRecipe({\n state: tabState,\n mode: tabMode,\n });\n const key = tab.id;\n let ariaCurrent: 'page' | undefined;\n if (isActive) {\n ariaCurrent = 'page';\n }\n\n if (tab.href != null) {\n return (\n <Link\n key={key}\n to={tab.href}\n className={className}\n aria-current={ariaCurrent}\n >\n {tab.label}\n </Link>\n );\n }\n\n return (\n <span key={key} className={className} aria-current={ariaCurrent}>\n {tab.label}\n </span>\n );\n })}\n </div>\n );\n };\n\n const handleResizerKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (isStackedLayout) {\n return;\n }\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\n event.preventDefault();\n let delta = 16;\n if (event.key === 'ArrowRight') {\n delta = -16;\n }\n clampSidePanelWidth(sidePanelWidth + delta);\n persistSidePanelWidth(sidePanelWidthSnapshotRef.current);\n }\n },\n [clampSidePanelWidth, isStackedLayout, sidePanelWidth],\n );\n\n let sidePanelNode: JSX.Element | null = null;\n if (hasSidePanel) {\n const sidePanelClasses = [styles.sidePanel, styles.sidePanelSurface];\n let sidePanelStyle: CSSProperties | undefined;\n if (!isStackedLayout) {\n sidePanelClasses.push(styles.sidePanelResizable);\n sidePanelStyle = {\n width: `${sidePanelWidth}px`,\n };\n }\n sidePanelNode = (\n <aside className={cx(...sidePanelClasses)} style={sidePanelStyle}>\n {sidePanel}\n </aside>\n );\n }\n\n let resizerNode: JSX.Element | null = null;\n if (hasSidePanel) {\n let resizerActive = 'false';\n if (isResizingPanel) {\n resizerActive = 'true';\n }\n let resizerMin = MIN_SIDE_PANEL_WIDTH;\n let resizerMax = Math.max(MIN_SIDE_PANEL_WIDTH, sidePanelWidth);\n const pageElement = pageRef.current;\n if (pageElement != null) {\n const { width } = pageElement.getBoundingClientRect();\n const maxWidth = Math.max(\n 0,\n Math.min(resolveMaxSidePanelWidth(width), width - MIN_MAIN_WIDTH),\n );\n resizerMin = Math.min(MIN_SIDE_PANEL_WIDTH, maxWidth);\n if (maxWidth <= 0) {\n resizerMin = 0;\n }\n resizerMax = Math.max(resizerMin, maxWidth);\n }\n resizerNode = (\n <div\n className={cx(\n styles.sidePanelResizer,\n styles.sidePanelResizerHiddenOnMobile,\n )}\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label={t('layout.pageShell.resizeSidePanel')}\n aria-valuemin={Math.round(resizerMin)}\n aria-valuemax={Math.round(resizerMax)}\n aria-valuenow={Math.round(sidePanelWidth)}\n tabIndex={0}\n data-active={resizerActive}\n onMouseDown={(event) => {\n event.preventDefault();\n startResizing(event.clientX);\n }}\n onTouchStart={(event) => {\n const touch = event.touches[0];\n if (touch != null) {\n startResizing(touch.clientX);\n }\n }}\n onKeyDown={handleResizerKeyDown}\n />\n );\n }\n\n let sidebarContent = sidebar;\n if (isStackedLayout) {\n sidebarContent = mobileSidebar ?? sidebar;\n }\n const shouldRenderDesktopSidebar = desktopSidebarOpen || isStackedLayout;\n let resolvedOpenDesktopSidebarLabel = openDesktopSidebarLabel;\n resolvedOpenDesktopSidebarLabel ??= t('navigation.pageShell.openNavigation');\n\n return (\n <div className={styles.shell}>\n <div\n className={cx(styles.mobileSidebarBackdrop, {\n [styles.mobileSidebarBackdropOpen]:\n isStackedLayout && isMobileSidebarOpen,\n })}\n aria-hidden=\"true\"\n onClick={closeMobileSidebar}\n />\n {shouldRenderDesktopSidebar && (\n <div\n ref={mobileSidebarRef}\n className={cx(styles.sidebarColumn, styles.sidebarColumnMobile, {\n [styles.sidebarColumnMobileOpen]:\n isStackedLayout && isMobileSidebarOpen,\n })}\n aria-hidden={isStackedLayout && !isMobileSidebarOpen}\n inert={isStackedLayout && !isMobileSidebarOpen}\n >\n <button\n ref={mobileSidebarCloseRef}\n type=\"button\"\n className={styles.mobileSidebarClose}\n onClick={closeMobileSidebar}\n aria-label={t('navigation.pageShell.closeNavigation')}\n >\n <ModalCloseSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n <div className={styles.sidebarInner}>{sidebarContent}</div>\n </div>\n )}\n <div\n ref={pageRef}\n className={cx(styles.page, {\n [styles.pageWithSidePanel]: hasSidePanel,\n [styles.pageContained]: isContainedScroll,\n })}\n aria-hidden={isStackedLayout && isMobileSidebarOpen}\n inert={isStackedLayout && isMobileSidebarOpen}\n >\n <div\n className={cx(styles.mainColumn, {\n [styles.mainColumnWithSidePanel]: hasSidePanel,\n [styles.mainColumnContained]: isContainedScroll,\n })}\n >\n <div className={styles.header}>\n <div className={styles.headerRow}>\n <div className={styles.headerLeading}>\n {!isStackedLayout && !desktopSidebarOpen && (\n <button\n type=\"button\"\n className={styles.desktopSidebarToggle}\n onClick={onOpenDesktopSidebar}\n aria-label={resolvedOpenDesktopSidebarLabel}\n title={resolvedOpenDesktopSidebarLabel}\n >\n <MenuSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n )}\n {isStackedLayout && (\n <button\n ref={mobileSidebarToggleRef}\n type=\"button\"\n className={styles.mobileSidebarToggle}\n onClick={openMobileSidebar}\n aria-expanded={isMobileSidebarOpen}\n aria-label={t('navigation.pageShell.openNavigation')}\n >\n <MenuSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n )}\n {renderBreadcrumb()}\n </div>\n {renderActions()}\n </div>\n {renderTabs()}\n </div>\n <div\n className={cx(\n styles.content,\n containedContentClassName,\n contentClassName,\n )}\n >\n {children}\n </div>\n </div>\n {resizerNode}\n {sidePanelNode}\n </div>\n </div>\n );\n};\n\nexport const __test = {\n readStoredSidePanelWidth,\n resolveMaxSidePanelWidth,\n resolveIsActive,\n} as const;\n"],"mappings":"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"}
1
+ {"version":3,"file":"PageShell.js","names":[],"sources":["../../../../src/components/layout/PageShell.tsx"],"sourcesContent":["import Link from '@plumile/router/routing/Link.js';\nimport {\n useCallback,\n useEffect,\n useRef,\n useState,\n type JSX,\n type ReactNode,\n} from 'react';\n\nimport * as styles from './PageShell.css.js';\nimport { ResizableSplitView } from './ResizableSplitView.js';\nimport { Tabs, type TabItem } from '../../atomic/molecules/tabs/Tabs.js';\nimport { MenuSvg } from '../../icons/MenuSvg.js';\nimport { ModalCloseSvg } from '../../icons/ModalCloseSvg.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\n\nexport type BreadcrumbItem = {\n label: ReactNode;\n href?: string;\n};\n\nexport type PageShellTab = {\n id: string;\n label: ReactNode;\n href?: string;\n isActive?: boolean;\n};\n\nexport type PageShellActions = {\n main?: ReactNode;\n secondary?: ReactNode[];\n};\n\nexport type PageShellContentScrollMode = 'page' | 'contained';\n\nconst DEFAULT_SIDE_PANEL_WIDTH = 520;\nconst MIN_SIDE_PANEL_WIDTH = 360;\nconst MAX_SIDE_PANEL_RATIO = 0.5;\nconst MIN_MAIN_WIDTH = 480;\nconst SPLIT_BREAKPOINT = 1024;\nconst SIDE_PANEL_WIDTH_STORAGE_KEY = 'plumile:page-shell:side-panel-width';\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\ntype Props = {\n sidebar?: ReactNode;\n mobileSidebar?: ReactNode;\n desktopSidebarOpen?: boolean;\n onOpenDesktopSidebar?: () => void;\n openDesktopSidebarLabel?: string;\n children: ReactNode;\n breadcrumb?: BreadcrumbItem[];\n breadcrumbSlot?: ReactNode;\n tabs?: PageShellTab[];\n actions?: PageShellActions;\n sidePanel?: ReactNode;\n contentClassName?: string;\n contentScrollMode?: PageShellContentScrollMode;\n};\n\nconst resolveIsActive = (tab: PageShellTab, pathname?: string): boolean => {\n if (typeof tab.isActive === 'boolean') {\n return tab.isActive;\n }\n\n if (tab.href != null && pathname != null) {\n return pathname === tab.href;\n }\n\n return false;\n};\n\nexport const PageShell = ({\n actions,\n breadcrumb,\n breadcrumbSlot,\n children,\n contentClassName,\n contentScrollMode = 'page',\n desktopSidebarOpen = true,\n mobileSidebar,\n onOpenDesktopSidebar,\n openDesktopSidebarLabel,\n sidebar,\n sidePanel,\n tabs,\n}: Props): JSX.Element => {\n const { t } = useUiTranslation();\n const hasSidePanel = sidePanel != null;\n const hasSidebar = sidebar != null || mobileSidebar != null;\n const isContainedScroll = contentScrollMode === 'contained';\n let containedContentClassName: string | null = null;\n if (isContainedScroll) {\n containedContentClassName = styles.contentContained;\n }\n const pageRef = useRef<HTMLDivElement | null>(null);\n const mobileSidebarRef = useRef<HTMLDivElement | null>(null);\n const mobileSidebarToggleRef = useRef<HTMLButtonElement | null>(null);\n const mobileSidebarCloseRef = useRef<HTMLButtonElement | null>(null);\n const mobileSidebarPreviousFocusRef = useRef<HTMLElement | null>(null);\n const [isStackedLayout, setIsStackedLayout] = useState(false);\n const [isMobileSidebarOpen, setIsMobileSidebarOpen] = useState(false);\n\n const closeMobileSidebar = useCallback(() => {\n setIsMobileSidebarOpen(false);\n }, []);\n\n const openMobileSidebar = useCallback(() => {\n if (typeof document !== 'undefined') {\n const { activeElement } = document;\n if (activeElement instanceof HTMLElement) {\n mobileSidebarPreviousFocusRef.current = activeElement;\n }\n }\n setIsMobileSidebarOpen(true);\n }, []);\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return () => {};\n }\n const mediaQuery = window.matchMedia(\n `(max-width: ${SPLIT_BREAKPOINT - 1}px)`,\n );\n const handleMediaChange = () => {\n setIsStackedLayout(mediaQuery.matches);\n };\n\n handleMediaChange();\n mediaQuery.addEventListener('change', handleMediaChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleMediaChange);\n };\n }, []);\n\n useEffect(() => {\n if (!isStackedLayout && isMobileSidebarOpen) {\n closeMobileSidebar();\n }\n }, [closeMobileSidebar, isMobileSidebarOpen, isStackedLayout]);\n\n useEffect(() => {\n if (!isMobileSidebarOpen) {\n return () => {};\n }\n\n const handleEscape = (event: globalThis.KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeMobileSidebar();\n return;\n }\n\n if (event.key !== 'Tab') {\n return;\n }\n\n const sidebarElement = mobileSidebarRef.current;\n if (sidebarElement == null) {\n return;\n }\n\n const focusableElements = Array.from(\n sidebarElement.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR),\n ).filter((element) => {\n return (\n element.offsetParent != null || element === document.activeElement\n );\n });\n\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n if (firstElement == null || lastElement == null) {\n event.preventDefault();\n return;\n }\n\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n return;\n }\n\n if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n };\n\n const fallbackFocusElement = mobileSidebarToggleRef.current;\n mobileSidebarCloseRef.current?.focus();\n\n window.addEventListener('keydown', handleEscape);\n return () => {\n window.removeEventListener('keydown', handleEscape);\n const previousFocus = mobileSidebarPreviousFocusRef.current;\n if (previousFocus != null && document.contains(previousFocus)) {\n previousFocus.focus();\n } else {\n fallbackFocusElement?.focus();\n }\n mobileSidebarPreviousFocusRef.current = null;\n };\n }, [closeMobileSidebar, isMobileSidebarOpen]);\n\n const renderBreadcrumb = (): JSX.Element | null => {\n if (breadcrumbSlot != null) {\n return <div className={styles.breadcrumbNav}>{breadcrumbSlot}</div>;\n }\n\n if (breadcrumb == null || breadcrumb.length === 0) {\n return null;\n }\n\n const items = breadcrumb.flatMap((item, index) => {\n const isLast = index === breadcrumb.length - 1;\n const key = `${item.href ?? 'crumb'}-${index}`;\n let content: JSX.Element;\n if (item.href != null && !isLast) {\n content = (\n <Link to={item.href} className={styles.breadcrumbLink}>\n {item.label}\n </Link>\n );\n } else {\n let breadcrumbClass = styles.breadcrumbLink;\n if (isLast) {\n breadcrumbClass = styles.breadcrumbCurrent;\n }\n content = <span className={breadcrumbClass}>{item.label}</span>;\n }\n\n const renderedItem = (\n <li key={key} className={styles.breadcrumbItem}>\n {content}\n </li>\n );\n\n if (isLast) {\n return [renderedItem];\n }\n\n return [\n renderedItem,\n <li\n key={`${key}-sep`}\n className={styles.breadcrumbSeparator}\n aria-hidden=\"true\"\n >\n /\n </li>,\n ];\n });\n\n return (\n <nav\n className={styles.breadcrumbNav}\n aria-label={t('navigation.breadcrumb')}\n >\n <ol className={styles.breadcrumbList}>{items}</ol>\n </nav>\n );\n };\n\n const renderActions = (): JSX.Element | null => {\n if (\n actions == null ||\n (actions.main == null && (actions.secondary ?? []).length === 0)\n ) {\n return null;\n }\n\n const secondaryNodes = actions.secondary ?? [];\n\n let mainActionNode: JSX.Element | null = null;\n if (actions.main != null) {\n mainActionNode = (\n <div className={styles.secondaryAction}>{actions.main}</div>\n );\n }\n\n return (\n <div className={styles.actionGroup}>\n {secondaryNodes.map((node, index) => {\n return (\n <div key={`secondary-${index}`} className={styles.secondaryAction}>\n {node}\n </div>\n );\n })}\n {mainActionNode}\n </div>\n );\n };\n\n const renderTabs = (): JSX.Element | null => {\n if (tabs == null || tabs.length === 0) {\n return null;\n }\n\n const tabItems: TabItem[] = tabs.map((tab) => {\n return {\n id: tab.id,\n label: tab.label,\n to: tab.href,\n isActive: tab.isActive,\n };\n });\n\n return <Tabs items={tabItems} variant=\"page\" />;\n };\n\n let sidebarContent = sidebar;\n if (isStackedLayout) {\n sidebarContent = mobileSidebar ?? sidebar;\n }\n const shouldRenderDesktopSidebar =\n hasSidebar && (desktopSidebarOpen || isStackedLayout);\n let resolvedOpenDesktopSidebarLabel = openDesktopSidebarLabel;\n resolvedOpenDesktopSidebarLabel ??= t('navigation.pageShell.openNavigation');\n\n const mainNode = (\n <div\n className={cx(styles.mainColumn, {\n [styles.mainColumnWithSidePanel]: hasSidePanel,\n [styles.mainColumnContained]: isContainedScroll,\n })}\n >\n <div className={styles.header}>\n <div className={styles.headerRow}>\n <div className={styles.headerLeading}>\n {hasSidebar && !isStackedLayout && !desktopSidebarOpen && (\n <button\n type=\"button\"\n className={styles.desktopSidebarToggle}\n onClick={onOpenDesktopSidebar}\n aria-label={resolvedOpenDesktopSidebarLabel}\n title={resolvedOpenDesktopSidebarLabel}\n >\n <MenuSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n )}\n {hasSidebar && isStackedLayout && (\n <button\n ref={mobileSidebarToggleRef}\n type=\"button\"\n className={styles.mobileSidebarToggle}\n onClick={openMobileSidebar}\n aria-expanded={isMobileSidebarOpen}\n aria-label={t('navigation.pageShell.openNavigation')}\n >\n <MenuSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n )}\n {renderBreadcrumb()}\n </div>\n {renderActions()}\n </div>\n {renderTabs()}\n </div>\n <div\n className={cx(\n styles.content,\n containedContentClassName,\n contentClassName,\n )}\n >\n {children}\n </div>\n </div>\n );\n\n return (\n <div className={styles.shell}>\n <div\n className={cx(styles.mobileSidebarBackdrop, {\n [styles.mobileSidebarBackdropOpen]:\n isStackedLayout && isMobileSidebarOpen,\n })}\n aria-hidden=\"true\"\n onClick={closeMobileSidebar}\n />\n {shouldRenderDesktopSidebar && (\n <div\n ref={mobileSidebarRef}\n className={cx(styles.sidebarColumn, styles.sidebarColumnMobile, {\n [styles.sidebarColumnMobileOpen]:\n isStackedLayout && isMobileSidebarOpen,\n })}\n aria-hidden={isStackedLayout && !isMobileSidebarOpen}\n inert={isStackedLayout && !isMobileSidebarOpen}\n >\n <button\n ref={mobileSidebarCloseRef}\n type=\"button\"\n className={styles.mobileSidebarClose}\n onClick={closeMobileSidebar}\n aria-label={t('navigation.pageShell.closeNavigation')}\n >\n <ModalCloseSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n <div className={styles.sidebarInner}>{sidebarContent}</div>\n </div>\n )}\n <div\n ref={pageRef}\n className={cx(styles.page, {\n [styles.pageContained]: isContainedScroll,\n })}\n aria-hidden={isStackedLayout && isMobileSidebarOpen}\n inert={isStackedLayout && isMobileSidebarOpen}\n >\n <ResizableSplitView\n main={mainNode}\n sidePanel={sidePanel}\n className={cx(styles.pageSplitView, {\n [styles.pageWithSidePanel]: hasSidePanel,\n })}\n sidePanelClassName={cx(styles.sidePanel, styles.sidePanelSurface)}\n defaultSidePanelWidth={DEFAULT_SIDE_PANEL_WIDTH}\n minSidePanelWidth={MIN_SIDE_PANEL_WIDTH}\n maxSidePanelRatio={MAX_SIDE_PANEL_RATIO}\n minMainWidth={MIN_MAIN_WIDTH}\n stackedBreakpoint={SPLIT_BREAKPOINT}\n storageKey={SIDE_PANEL_WIDTH_STORAGE_KEY}\n resizerLabel={t('layout.pageShell.resizeSidePanel')}\n />\n </div>\n </div>\n );\n};\n\nexport const __test = {\n resolveIsActive,\n} as const;\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /* empty css */
2
+ /* empty css */
3
+ //#region src/components/layout/ResizableSplitView.css.ts
4
+ var e = "_1sh6osj1 _1sh6osj0 txvbqbdr8 txvbqbe8 txvbqbfeg txvbqbt9i txvbqb17w0", t = "_1sh6osj2 txvbqbf6i txvbqbffj", n = "_1sh6osj3 txvbqbf65", r = "_1sh6osj5 _1sh6osj4 txvbqbdxd txvbqbt9i", i = "_1sh6osj6 txvbqbdyg txvbqbt9i", a = "_1sh6osj7 txvbqb17w0", o = "_1sh6osj9 _1sh6osj8 txvbqbhh txvbqb1933 txvbqbb txvbqbdyg txvbqbtay txvbqb11js txvbqb17h7";
5
+ //#endregion
6
+ export { r as main, o as resizer, e as root, n as rootSplit, t as rootStacked, i as sidePanel, a as sidePanelStacked };
7
+
8
+ //# sourceMappingURL=ResizableSplitView.css.js.map