@k2b/ui 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/actions/Button.js +11 -2
- package/dist/browser/actions/Button.js.map +1 -1
- package/dist/browser/actions/Disclosure.js +11 -8
- package/dist/browser/actions/Disclosure.js.map +1 -1
- package/dist/browser/actions/Dropdown.js +4 -1
- package/dist/browser/actions/Dropdown.js.map +1 -1
- package/dist/browser/actions/FilterChip.js +16 -2
- package/dist/browser/actions/FilterChip.js.map +1 -1
- package/dist/browser/actions/SplitButton.js +69 -22
- package/dist/browser/actions/SplitButton.js.map +1 -1
- package/dist/browser/actions/SpotlightSearch.js +3 -7
- package/dist/browser/actions/SpotlightSearch.js.map +1 -1
- package/dist/browser/actions/Tabs.js +132 -47
- package/dist/browser/actions/Tabs.js.map +1 -1
- package/dist/browser/actions/index.js +1 -1
- package/dist/browser/actions/index.js.map +1 -1
- package/dist/browser/chat/ChatComposer.js +751 -423
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/ChatContextPopup.js +123 -0
- package/dist/browser/chat/ChatContextPopup.js.map +1 -0
- package/dist/browser/chat/ChatPrimitives.js +141 -78
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/chat/ChatTasks.js +112 -0
- package/dist/browser/chat/ChatTasks.js.map +1 -0
- package/dist/browser/chat/ChatTimeline.js +31 -14
- package/dist/browser/chat/ChatTimeline.js.map +1 -1
- package/dist/browser/chat/chat-behavior.js +0 -5
- package/dist/browser/chat/chat-behavior.js.map +1 -1
- package/dist/browser/chat/composer-document.js +55 -0
- package/dist/browser/chat/composer-document.js.map +1 -0
- package/dist/browser/chat/index.js +6 -1
- package/dist/browser/chat/index.js.map +1 -1
- package/dist/browser/chat/types.js.map +1 -1
- package/dist/browser/content/Chart.js +148 -239
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartExplorer.js +324 -0
- package/dist/browser/content/ChartExplorer.js.map +1 -0
- package/dist/browser/content/ChartExplorerControls.js +153 -0
- package/dist/browser/content/ChartExplorerControls.js.map +1 -0
- package/dist/browser/content/ChartFilterControls.js +200 -0
- package/dist/browser/content/ChartFilterControls.js.map +1 -0
- package/dist/browser/content/ChartSnapshotView.js +113 -0
- package/dist/browser/content/ChartSnapshotView.js.map +1 -0
- package/dist/browser/content/DataTable.js +48 -32
- package/dist/browser/content/DataTable.js.map +1 -1
- package/dist/browser/content/FileBrowser.js +3 -0
- package/dist/browser/content/FileBrowser.js.map +1 -1
- package/dist/browser/content/FileGrid.js +93 -0
- package/dist/browser/content/FileGrid.js.map +1 -0
- package/dist/browser/content/FileTree.js +2 -2
- package/dist/browser/content/FileTree.js.map +1 -1
- package/dist/browser/content/FileView.js +507 -162
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/content/MarkdownView.js +6 -0
- package/dist/browser/content/MarkdownView.js.map +1 -1
- package/dist/browser/content/PdfPreview.js +107 -90
- package/dist/browser/content/PdfPreview.js.map +1 -1
- package/dist/browser/content/chart-cursor.js +33 -0
- package/dist/browser/content/chart-cursor.js.map +1 -0
- package/dist/browser/content/chart-explorer.js +147 -0
- package/dist/browser/content/chart-explorer.js.map +1 -0
- package/dist/browser/content/chart-inspection.js +447 -0
- package/dist/browser/content/chart-inspection.js.map +1 -0
- package/dist/browser/content/chart-line-gaps.js +53 -0
- package/dist/browser/content/chart-line-gaps.js.map +1 -0
- package/dist/browser/content/chart-map-viewport.js +5 -1
- package/dist/browser/content/chart-map-viewport.js.map +1 -1
- package/dist/browser/content/chart-snapshot.js +63 -0
- package/dist/browser/content/chart-snapshot.js.map +1 -0
- package/dist/browser/content/chart-state-timeline.js +32 -4
- package/dist/browser/content/chart-state-timeline.js.map +1 -1
- package/dist/browser/content/chart-svg.js +54 -0
- package/dist/browser/content/chart-svg.js.map +1 -0
- package/dist/browser/content/collection-selection.js +109 -0
- package/dist/browser/content/collection-selection.js.map +1 -0
- package/dist/browser/content/delimited-preferences.js +21 -0
- package/dist/browser/content/delimited-preferences.js.map +1 -0
- package/dist/browser/content/file-tree.js.map +1 -1
- package/dist/browser/content/file-view-preview.js +11 -7
- package/dist/browser/content/file-view-preview.js.map +1 -1
- package/dist/browser/content/index.js +9 -0
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/feedback/InlineGuidance.js +17 -3
- package/dist/browser/feedback/InlineGuidance.js.map +1 -1
- package/dist/browser/feedback/dialog-core.js +81 -7
- package/dist/browser/feedback/dialog-core.js.map +1 -1
- package/dist/browser/feedback/prompts.js +6 -0
- package/dist/browser/feedback/prompts.js.map +1 -1
- package/dist/browser/feedback/toast.js +29 -6
- package/dist/browser/feedback/toast.js.map +1 -1
- package/dist/browser/inputs/SelectChip.js +3 -2
- package/dist/browser/inputs/SelectChip.js.map +1 -1
- package/dist/browser/inputs/TextInput.js +7 -1
- package/dist/browser/inputs/TextInput.js.map +1 -1
- package/dist/browser/inputs/markdown/MarkdownEditor.js +61 -37
- package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/browser/intl/Format.js +89 -16
- package/dist/browser/intl/Format.js.map +1 -1
- package/dist/browser/intl/index.js.map +1 -1
- package/dist/browser/intl/messages.js +130 -2
- package/dist/browser/intl/messages.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +712 -624
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/BottomSheet.js +95 -0
- package/dist/browser/layout/BottomSheet.js.map +1 -0
- package/dist/browser/layout/DetailPanel.js +56 -44
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/Navigation.js +278 -0
- package/dist/browser/layout/Navigation.js.map +1 -0
- package/dist/browser/layout/PanelDialog.js +219 -71
- package/dist/browser/layout/PanelDialog.js.map +1 -1
- package/dist/browser/layout/ScrollArea.js +21 -1
- package/dist/browser/layout/ScrollArea.js.map +1 -1
- package/dist/browser/layout/Settings.js.map +1 -1
- package/dist/browser/layout/SidebarItemPreview.js +183 -0
- package/dist/browser/layout/SidebarItemPreview.js.map +1 -0
- package/dist/browser/layout/app-workspace-controller.js +3 -0
- package/dist/browser/layout/app-workspace-controller.js.map +1 -1
- package/dist/browser/layout/index.js +3 -0
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/layout/navigation-model.js +23 -0
- package/dist/browser/layout/navigation-model.js.map +1 -0
- package/dist/browser/layout/scroll-fade.js +100 -0
- package/dist/browser/layout/scroll-fade.js.map +1 -0
- package/dist/browser/surfaces/DescriptionList.js.map +1 -1
- package/dist/browser/surfaces/StatusBadge.js +2 -1
- package/dist/browser/surfaces/StatusBadge.js.map +1 -1
- package/dist/fonts/ibm-plex-mono-cyrillic-400-italic-4aded3f2f2a7d27d.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-cyrillic-400-normal-7635422bd10ddbbc.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-cyrillic-500-normal-1d89462e86cb8e87.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-cyrillic-600-normal-2b05a8695c7f9f4a.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-cyrillic-ext-400-italic-a0b3b8cbe5a516e7.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-cyrillic-ext-400-normal-f8c22ec1804bd696.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-cyrillic-ext-500-normal-3febe5c7f22e4b07.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-cyrillic-ext-600-normal-83109cdd4f8665b4.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-400-italic-0840095faae86403.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-400-normal-08949f728dc52d52.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-500-normal-01d285447409c8a5.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-600-normal-0d1f0b8d0722224e.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-400-italic-1b07eee6df7d26b3.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-400-normal-6bc0f226a5b7884a.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-500-normal-6bb06407c97584b0.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-600-normal-32057cf50dd14bdb.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-vietnamese-400-italic-a6bab38af4f9c761.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-vietnamese-400-normal-62632b6375305e70.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-vietnamese-500-normal-781633d95de88040.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-vietnamese-600-normal-51b74d53e106ba8a.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-cyrillic-400-italic-e8731a7e2b00fc4f.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-cyrillic-400-normal-69afad88a0740b6e.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-cyrillic-500-normal-200be3a2a6b1789f.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-cyrillic-600-normal-730becc6f005c18c.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-cyrillic-700-normal-40540598b4c9eb2c.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-cyrillic-ext-400-italic-4ffb25726a7ce4cc.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-cyrillic-ext-400-normal-e2580ad78906551e.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-cyrillic-ext-500-normal-08578d906af6d986.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-cyrillic-ext-600-normal-d60d3d0b182753d5.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-cyrillic-ext-700-normal-d07dd53642480097.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-greek-400-italic-1bc10b01688ba9fa.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-greek-400-normal-02296067bc904d2a.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-greek-500-normal-8cb6e20b4dbbaa5f.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-greek-600-normal-0a9ebd9019415ee9.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-greek-700-normal-c949641d10a3bebc.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-latin-400-italic-6de912e531b6c980.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-latin-400-normal-3b646991d30055a9.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-latin-500-normal-0717336fb31fcdcd.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-latin-600-normal-8960851d691c054e.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-latin-700-normal-42e7b0c143c19df9.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-latin-ext-400-italic-c5c00e8a32022dfe.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-latin-ext-400-normal-c93d2a12aaa280f6.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-latin-ext-500-normal-2846035d85100f84.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-latin-ext-600-normal-b25dfd4f979e442a.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-latin-ext-700-normal-92f0392bd74fa395.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-vietnamese-400-italic-675d4bace127bffb.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-vietnamese-400-normal-771538f7f26551bd.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-vietnamese-500-normal-85ba3d9c2488a813.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-vietnamese-600-normal-5d34b803637befe3.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-vietnamese-700-normal-b79d0c4b68b85007.woff2 +0 -0
- package/dist/plex.css +1 -1
- package/dist/ssr/actions/Button.js +11 -2
- package/dist/ssr/actions/Button.js.map +1 -1
- package/dist/ssr/actions/Disclosure.js +2 -2
- package/dist/ssr/actions/Disclosure.js.map +1 -1
- package/dist/ssr/actions/Dropdown.js +4 -1
- package/dist/ssr/actions/Dropdown.js.map +1 -1
- package/dist/ssr/actions/FilterChip.js +16 -2
- package/dist/ssr/actions/FilterChip.js.map +1 -1
- package/dist/ssr/actions/SplitButton.js +69 -22
- package/dist/ssr/actions/SplitButton.js.map +1 -1
- package/dist/ssr/actions/SpotlightSearch.js +3 -7
- package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
- package/dist/ssr/actions/Tabs.js +58 -11
- package/dist/ssr/actions/Tabs.js.map +1 -1
- package/dist/ssr/actions/index.js +1 -1
- package/dist/ssr/actions/index.js.map +1 -1
- package/dist/ssr/chat/ChatComposer.js +366 -134
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/ChatContextPopup.js +86 -0
- package/dist/ssr/chat/ChatContextPopup.js.map +1 -0
- package/dist/ssr/chat/ChatPrimitives.js +49 -11
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/chat/ChatTasks.js +48 -0
- package/dist/ssr/chat/ChatTasks.js.map +1 -0
- package/dist/ssr/chat/ChatTimeline.js +14 -4
- package/dist/ssr/chat/ChatTimeline.js.map +1 -1
- package/dist/ssr/chat/chat-behavior.js +0 -5
- package/dist/ssr/chat/chat-behavior.js.map +1 -1
- package/dist/ssr/chat/composer-document.js +55 -0
- package/dist/ssr/chat/composer-document.js.map +1 -0
- package/dist/ssr/chat/index.js +6 -1
- package/dist/ssr/chat/index.js.map +1 -1
- package/dist/ssr/chat/types.js.map +1 -1
- package/dist/ssr/content/Chart.js +121 -219
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartExplorer.js +257 -0
- package/dist/ssr/content/ChartExplorer.js.map +1 -0
- package/dist/ssr/content/ChartExplorerControls.js +105 -0
- package/dist/ssr/content/ChartExplorerControls.js.map +1 -0
- package/dist/ssr/content/ChartFilterControls.js +139 -0
- package/dist/ssr/content/ChartFilterControls.js.map +1 -0
- package/dist/ssr/content/ChartSnapshotView.js +57 -0
- package/dist/ssr/content/ChartSnapshotView.js.map +1 -0
- package/dist/ssr/content/DataTable.js +13 -9
- package/dist/ssr/content/DataTable.js.map +1 -1
- package/dist/ssr/content/FileBrowser.js +3 -0
- package/dist/ssr/content/FileBrowser.js.map +1 -1
- package/dist/ssr/content/FileGrid.js +38 -0
- package/dist/ssr/content/FileGrid.js.map +1 -0
- package/dist/ssr/content/FileTree.js +2 -2
- package/dist/ssr/content/FileTree.js.map +1 -1
- package/dist/ssr/content/FileView.js +352 -75
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/content/MarkdownView.js +6 -0
- package/dist/ssr/content/MarkdownView.js.map +1 -1
- package/dist/ssr/content/PdfPreview.js +37 -24
- package/dist/ssr/content/PdfPreview.js.map +1 -1
- package/dist/ssr/content/chart-cursor.js +33 -0
- package/dist/ssr/content/chart-cursor.js.map +1 -0
- package/dist/ssr/content/chart-explorer.js +147 -0
- package/dist/ssr/content/chart-explorer.js.map +1 -0
- package/dist/ssr/content/chart-inspection.js +447 -0
- package/dist/ssr/content/chart-inspection.js.map +1 -0
- package/dist/ssr/content/chart-line-gaps.js +53 -0
- package/dist/ssr/content/chart-line-gaps.js.map +1 -0
- package/dist/ssr/content/chart-map-viewport.js +5 -1
- package/dist/ssr/content/chart-map-viewport.js.map +1 -1
- package/dist/ssr/content/chart-snapshot.js +63 -0
- package/dist/ssr/content/chart-snapshot.js.map +1 -0
- package/dist/ssr/content/chart-state-timeline.js +32 -4
- package/dist/ssr/content/chart-state-timeline.js.map +1 -1
- package/dist/ssr/content/chart-svg.js +54 -0
- package/dist/ssr/content/chart-svg.js.map +1 -0
- package/dist/ssr/content/collection-selection.js +109 -0
- package/dist/ssr/content/collection-selection.js.map +1 -0
- package/dist/ssr/content/delimited-preferences.js +21 -0
- package/dist/ssr/content/delimited-preferences.js.map +1 -0
- package/dist/ssr/content/file-tree.js.map +1 -1
- package/dist/ssr/content/file-view-preview.js +11 -7
- package/dist/ssr/content/file-view-preview.js.map +1 -1
- package/dist/ssr/content/index.js +9 -0
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/feedback/InlineGuidance.js +17 -3
- package/dist/ssr/feedback/InlineGuidance.js.map +1 -1
- package/dist/ssr/feedback/dialog-core.js +81 -7
- package/dist/ssr/feedback/dialog-core.js.map +1 -1
- package/dist/ssr/feedback/prompts.js +6 -0
- package/dist/ssr/feedback/prompts.js.map +1 -1
- package/dist/ssr/feedback/toast.js +29 -6
- package/dist/ssr/feedback/toast.js.map +1 -1
- package/dist/ssr/inputs/SelectChip.js +3 -3
- package/dist/ssr/inputs/SelectChip.js.map +1 -1
- package/dist/ssr/inputs/TextInput.js.map +1 -1
- package/dist/ssr/inputs/markdown/MarkdownEditor.js +19 -11
- package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/ssr/intl/Format.js +61 -0
- package/dist/ssr/intl/Format.js.map +1 -1
- package/dist/ssr/intl/index.js.map +1 -1
- package/dist/ssr/intl/messages.js +130 -2
- package/dist/ssr/intl/messages.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +368 -275
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/BottomSheet.js +43 -0
- package/dist/ssr/layout/BottomSheet.js.map +1 -0
- package/dist/ssr/layout/DetailPanel.js +11 -4
- package/dist/ssr/layout/DetailPanel.js.map +1 -1
- package/dist/ssr/layout/Navigation.js +181 -0
- package/dist/ssr/layout/Navigation.js.map +1 -0
- package/dist/ssr/layout/PanelDialog.js +111 -26
- package/dist/ssr/layout/PanelDialog.js.map +1 -1
- package/dist/ssr/layout/ScrollArea.js +16 -1
- package/dist/ssr/layout/ScrollArea.js.map +1 -1
- package/dist/ssr/layout/Settings.js.map +1 -1
- package/dist/ssr/layout/SidebarItemPreview.js +133 -0
- package/dist/ssr/layout/SidebarItemPreview.js.map +1 -0
- package/dist/ssr/layout/app-workspace-controller.js +3 -0
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
- package/dist/ssr/layout/index.js +3 -0
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/layout/navigation-model.js +23 -0
- package/dist/ssr/layout/navigation-model.js.map +1 -0
- package/dist/ssr/layout/scroll-fade.js +100 -0
- package/dist/ssr/layout/scroll-fade.js.map +1 -0
- package/dist/ssr/surfaces/DescriptionList.js.map +1 -1
- package/dist/ssr/surfaces/StatusBadge.js +2 -1
- package/dist/ssr/surfaces/StatusBadge.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tabler.css +1 -1
- package/dist/types/actions/Button.d.ts +4 -0
- package/dist/types/actions/Disclosure.d.ts +1 -0
- package/dist/types/actions/FilterChip.d.ts +4 -0
- package/dist/types/actions/SplitButton.d.ts +6 -0
- package/dist/types/actions/SpotlightSearch.d.ts +0 -4
- package/dist/types/actions/Tabs.d.ts +4 -0
- package/dist/types/actions/index.d.ts +1 -1
- package/dist/types/chat/ChatComposer.d.ts +20 -2
- package/dist/types/chat/ChatContextPopup.d.ts +6 -0
- package/dist/types/chat/ChatPrimitives.d.ts +4 -0
- package/dist/types/chat/ChatTasks.d.ts +15 -0
- package/dist/types/chat/ChatTimeline.d.ts +2 -0
- package/dist/types/chat/chat-behavior.d.ts +0 -3
- package/dist/types/chat/composer-document.d.ts +14 -0
- package/dist/types/chat/index.d.ts +8 -1
- package/dist/types/chat/types.d.ts +7 -0
- package/dist/types/content/Chart.d.ts +42 -23
- package/dist/types/content/ChartExplorer.d.ts +34 -0
- package/dist/types/content/ChartExplorerControls.d.ts +10 -0
- package/dist/types/content/ChartFilterControls.d.ts +21 -0
- package/dist/types/content/ChartSnapshotView.d.ts +11 -0
- package/dist/types/content/DataTable.d.ts +4 -0
- package/dist/types/content/FileBrowser.d.ts +1 -0
- package/dist/types/content/FileGrid.d.ts +21 -0
- package/dist/types/content/FileView.d.ts +20 -0
- package/dist/types/content/PdfPreview.d.ts +8 -1
- package/dist/types/content/chart-cursor.d.ts +15 -0
- package/dist/types/content/chart-explorer.d.ts +48 -0
- package/dist/types/content/chart-inspection.d.ts +40 -0
- package/dist/types/content/chart-line-gaps.d.ts +5 -0
- package/dist/types/content/chart-map-viewport.d.ts +1 -1
- package/dist/types/content/chart-snapshot.d.ts +26 -0
- package/dist/types/content/chart-svg.d.ts +21 -0
- package/dist/types/content/collection-selection.d.ts +24 -0
- package/dist/types/content/delimited-preferences.d.ts +11 -0
- package/dist/types/content/file-tree.d.ts +2 -0
- package/dist/types/content/file-view-preview.d.ts +4 -1
- package/dist/types/content/index.d.ts +15 -1
- package/dist/types/feedback/InlineGuidance.d.ts +1 -0
- package/dist/types/feedback/dialog-core.d.ts +11 -0
- package/dist/types/feedback/prompts.d.ts +2 -0
- package/dist/types/feedback/toast.d.ts +7 -1
- package/dist/types/inputs/markdown/MarkdownEditor.d.ts +5 -1
- package/dist/types/intl/Format.d.ts +9 -0
- package/dist/types/intl/index.d.ts +1 -1
- package/dist/types/intl/messages.d.ts +31 -1
- package/dist/types/layout/AppWorkspace.d.ts +35 -18
- package/dist/types/layout/BottomSheet.d.ts +23 -0
- package/dist/types/layout/DetailPanel.d.ts +1 -0
- package/dist/types/layout/Navigation.d.ts +8 -0
- package/dist/types/layout/PanelDialog.d.ts +14 -1
- package/dist/types/layout/ScrollArea.d.ts +4 -0
- package/dist/types/layout/Settings.d.ts +1 -1
- package/dist/types/layout/SidebarItemPreview.d.ts +11 -0
- package/dist/types/layout/index.d.ts +4 -1
- package/dist/types/layout/navigation-model.d.ts +48 -0
- package/dist/types/layout/scroll-fade.d.ts +3 -0
- package/dist/types/surfaces/DescriptionList.d.ts +1 -1
- package/dist/types/surfaces/StatusBadge.d.ts +1 -1
- package/package.json +5 -5
|
@@ -30,8 +30,8 @@ var _tmpl$ = /*#__PURE__*/_$template(`<span class=k2b-data-table__header-title>`
|
|
|
30
30
|
_tmpl$15 = /*#__PURE__*/_$template(`<footer>`);
|
|
31
31
|
import { createContext, createEffect, createMemo, createSignal, createUniqueId, For, onCleanup, onMount, Show, useContext } from "solid-js";
|
|
32
32
|
import { Dynamic } from "solid-js/web";
|
|
33
|
-
import { useUiMessages } from "../intl/messages";
|
|
34
33
|
import { useLocale } from "../intl/locale";
|
|
34
|
+
import { useUiMessages } from "../intl/messages";
|
|
35
35
|
import { PanelHeader } from "../layout/PanelHeader";
|
|
36
36
|
import { Paper } from "../surfaces/Paper";
|
|
37
37
|
import Placeholder from "../surfaces/Placeholder";
|
|
@@ -50,7 +50,7 @@ const renderColumnPart = (part, col) => {
|
|
|
50
50
|
});
|
|
51
51
|
return part;
|
|
52
52
|
};
|
|
53
|
-
const rowInteractiveSelector = ["a[href]", "button", "input", "select", "textarea", "summary", "[contenteditable]", "[role='button']", "[role='checkbox']", "[role='link']", "[role='menuitem']", "[role='option']", "[role='radio']", "[role='switch']", "[role='tab']", "[tabindex]"].join(",");
|
|
53
|
+
const rowInteractiveSelector = ["a[href]", "button", "input", "label", "select", "textarea", "summary", "[contenteditable]", "[role='button']", "[role='checkbox']", "[role='link']", "[role='menuitem']", "[role='option']", "[role='radio']", "[role='switch']", "[role='tab']", "[tabindex]"].join(",");
|
|
54
54
|
const isNestedRowControl = event => event.target instanceof Element && event.target.closest(rowInteractiveSelector) !== event.currentTarget;
|
|
55
55
|
const scrollbarMetrics = (viewportSize, contentSize, scrollOffset) => {
|
|
56
56
|
if (viewportSize <= 0 || contentSize <= viewportSize + 1) return {
|
|
@@ -98,7 +98,7 @@ function DataTableRoot(props) {
|
|
|
98
98
|
let previousLoadingMore = !!props.loadingMore;
|
|
99
99
|
let previousHasMore = !!props.hasMore;
|
|
100
100
|
const rowId = row => props.getRowId?.(row);
|
|
101
|
-
const isInteractive = () => !!props.onRowClick || !!props.onRowDoubleClick;
|
|
101
|
+
const isInteractive = () => !!props.selection || !!props.onRowClick || !!props.onRowDoubleClick;
|
|
102
102
|
const shouldHoverRows = () => props.hoverRows ?? isInteractive();
|
|
103
103
|
const shouldRenderLoadMoreSentinel = () => !!props.onLoadMore;
|
|
104
104
|
const labelledBy = () => props.ariaLabelledBy ?? (panel?.hasHeading() ? panel.headingId : undefined);
|
|
@@ -219,9 +219,9 @@ function DataTableRoot(props) {
|
|
|
219
219
|
|
|
220
220
|
/** Only a sortable column carries a sort state; the rest carry none at all. */
|
|
221
221
|
const ariaSortFor = col => {
|
|
222
|
-
const
|
|
223
|
-
if (!
|
|
224
|
-
if (
|
|
222
|
+
const key = sortKeyOf(col);
|
|
223
|
+
if (!key || !props.sortHref && !props.renderHeader) return undefined;
|
|
224
|
+
if (props.sort?.key !== key) return "none";
|
|
225
225
|
return props.sort?.direction === "asc" ? "ascending" : "descending";
|
|
226
226
|
};
|
|
227
227
|
const renderHeaderDefault = col => {
|
|
@@ -277,12 +277,16 @@ function DataTableRoot(props) {
|
|
|
277
277
|
const onRowKeyDown = (event, row) => {
|
|
278
278
|
if (!isInteractive()) return;
|
|
279
279
|
if (isNestedRowControl(event)) return;
|
|
280
|
+
const id = rowId(row);
|
|
281
|
+
if (id !== undefined && props.selection?.keyDown(event, id)) return;
|
|
280
282
|
if (event.key !== "Enter" && event.key !== " ") return;
|
|
281
283
|
event.preventDefault();
|
|
282
|
-
(props.onRowClick ?? props.onRowDoubleClick)?.(row);
|
|
284
|
+
(props.selection ? props.onRowDoubleClick : props.onRowClick ?? props.onRowDoubleClick)?.(row);
|
|
283
285
|
};
|
|
284
286
|
const onRowClick = (event, row) => {
|
|
285
287
|
if (isNestedRowControl(event)) return;
|
|
288
|
+
const id = rowId(row);
|
|
289
|
+
if (id !== undefined) props.selection?.select(id, event);
|
|
286
290
|
props.onRowClick?.(row);
|
|
287
291
|
};
|
|
288
292
|
const onRowDoubleClick = (event, row) => {
|
|
@@ -443,12 +447,21 @@ function DataTableRoot(props) {
|
|
|
443
447
|
},
|
|
444
448
|
children: row => {
|
|
445
449
|
const id = () => rowId(row);
|
|
446
|
-
const isSelected = () => props.selectedRowId && id() === props.selectedRowId;
|
|
450
|
+
const isSelected = () => props.selection ? props.selection.selected().has(id() ?? "") : props.selectedRowId && id() === props.selectedRowId;
|
|
447
451
|
return (() => {
|
|
448
452
|
var _el$22 = _$getNextElement(_tmpl$0);
|
|
449
453
|
_el$22.$$keydown = e => onRowKeyDown(e, row);
|
|
454
|
+
_el$22.$$contextmenu = () => props.onRowContextMenu?.(row);
|
|
450
455
|
_el$22.$$dblclick = event => onRowDoubleClick(event, row);
|
|
451
456
|
_el$22.$$click = event => onRowClick(event, row);
|
|
457
|
+
_el$22.addEventListener("focus", () => {
|
|
458
|
+
const key = id();
|
|
459
|
+
if (key !== undefined) props.selection?.markFocused(key);
|
|
460
|
+
});
|
|
461
|
+
_$use(element => {
|
|
462
|
+
const key = id();
|
|
463
|
+
if (key !== undefined) props.selection?.register(key, element);
|
|
464
|
+
}, _el$22);
|
|
452
465
|
_$insert(_el$22, _$createComponent(For, {
|
|
453
466
|
get each() {
|
|
454
467
|
return props.columns;
|
|
@@ -472,16 +485,16 @@ function DataTableRoot(props) {
|
|
|
472
485
|
}) : renderValueDefault(value());
|
|
473
486
|
})());
|
|
474
487
|
_$effect(_p$ => {
|
|
475
|
-
var _v$
|
|
476
|
-
_v$
|
|
477
|
-
_v$
|
|
478
|
-
_v$
|
|
479
|
-
_v$
|
|
480
|
-
_v$
|
|
481
|
-
_v$
|
|
482
|
-
_v$
|
|
483
|
-
_v$
|
|
484
|
-
_v$
|
|
488
|
+
var _v$22 = `${col.cellClass ?? ""} ${col.class ?? ""}`,
|
|
489
|
+
_v$23 = alignAttr(col),
|
|
490
|
+
_v$24 = props.verticalAlign && props.verticalAlign !== "middle" ? props.verticalAlign : undefined,
|
|
491
|
+
_v$25 = columnHighlighted(index()),
|
|
492
|
+
_v$26 = cellContentClass();
|
|
493
|
+
_v$22 !== _p$.e && _$className(_el$23, _p$.e = _v$22);
|
|
494
|
+
_v$23 !== _p$.t && _$setAttribute(_el$23, "data-align", _p$.t = _v$23);
|
|
495
|
+
_v$24 !== _p$.a && _$setAttribute(_el$23, "data-valign", _p$.a = _v$24);
|
|
496
|
+
_v$25 !== _p$.o && _$setAttribute(_el$23, "data-highlighted", _p$.o = _v$25);
|
|
497
|
+
_v$26 !== _p$.i && _$className(_el$24, _p$.i = _v$26);
|
|
485
498
|
return _p$;
|
|
486
499
|
}, {
|
|
487
500
|
e: undefined,
|
|
@@ -499,19 +512,22 @@ function DataTableRoot(props) {
|
|
|
499
512
|
_v$17 = shouldHoverRows() ? "true" : undefined,
|
|
500
513
|
_v$18 = shouldHoverRows() && isInteractive() ? "true" : undefined,
|
|
501
514
|
_v$19 = isSelected() ? "true" : undefined,
|
|
502
|
-
_v$20 =
|
|
515
|
+
_v$20 = props.selection ? !!isSelected() : undefined,
|
|
516
|
+
_v$21 = props.selection ? props.selection.focused() === id() ? 0 : -1 : isInteractive() ? 0 : undefined;
|
|
503
517
|
_v$16 !== _p$.e && _$className(_el$22, _p$.e = _v$16);
|
|
504
518
|
_v$17 !== _p$.t && _$setAttribute(_el$22, "data-hover", _p$.t = _v$17);
|
|
505
519
|
_v$18 !== _p$.a && _$setAttribute(_el$22, "data-clickable", _p$.a = _v$18);
|
|
506
520
|
_v$19 !== _p$.o && _$setAttribute(_el$22, "data-selected", _p$.o = _v$19);
|
|
507
|
-
_v$20 !== _p$.i && _$setAttribute(_el$22, "
|
|
521
|
+
_v$20 !== _p$.i && _$setAttribute(_el$22, "aria-selected", _p$.i = _v$20);
|
|
522
|
+
_v$21 !== _p$.n && _$setAttribute(_el$22, "tabindex", _p$.n = _v$21);
|
|
508
523
|
return _p$;
|
|
509
524
|
}, {
|
|
510
525
|
e: undefined,
|
|
511
526
|
t: undefined,
|
|
512
527
|
a: undefined,
|
|
513
528
|
o: undefined,
|
|
514
|
-
i: undefined
|
|
529
|
+
i: undefined,
|
|
530
|
+
n: undefined
|
|
515
531
|
});
|
|
516
532
|
_$runHydrationEvents();
|
|
517
533
|
return _el$22;
|
|
@@ -555,10 +571,10 @@ function DataTableRoot(props) {
|
|
|
555
571
|
}) : renderValueDefault(value());
|
|
556
572
|
})());
|
|
557
573
|
_$effect(_p$ => {
|
|
558
|
-
var _v$
|
|
559
|
-
_v$
|
|
560
|
-
_v$
|
|
561
|
-
_v$
|
|
574
|
+
var _v$27 = alignAttr(col),
|
|
575
|
+
_v$28 = columnHighlighted(index());
|
|
576
|
+
_v$27 !== _p$.e && _$setAttribute(_el$27, "data-align", _p$.e = _v$27);
|
|
577
|
+
_v$28 !== _p$.t && _$setAttribute(_el$27, "data-highlighted", _p$.t = _v$28);
|
|
562
578
|
return _p$;
|
|
563
579
|
}, {
|
|
564
580
|
e: undefined,
|
|
@@ -627,12 +643,12 @@ function DataTableRoot(props) {
|
|
|
627
643
|
_el$28.$$pointerdown = event => startScrollbarDrag(event, axis);
|
|
628
644
|
_$setAttribute(_el$28, "data-axis", axis);
|
|
629
645
|
_$effect(_p$ => {
|
|
630
|
-
var _v$
|
|
631
|
-
_v$
|
|
632
|
-
_v$
|
|
633
|
-
_v$
|
|
634
|
-
_v$
|
|
635
|
-
_v$
|
|
646
|
+
var _v$29 = scrollbars()[axis].overflow ? "true" : undefined,
|
|
647
|
+
_v$30 = `${scrollbars()[axis].offset}px`,
|
|
648
|
+
_v$31 = `${scrollbars()[axis].size}px`;
|
|
649
|
+
_v$29 !== _p$.e && _$setAttribute(_el$28, "data-overflow", _p$.e = _v$29);
|
|
650
|
+
_v$30 !== _p$.t && _$setStyleProperty(_el$29, "--k2b-data-table-scroll-offset", _p$.t = _v$30);
|
|
651
|
+
_v$31 !== _p$.a && _$setStyleProperty(_el$29, "--k2b-data-table-scroll-size", _p$.a = _v$31);
|
|
636
652
|
return _p$;
|
|
637
653
|
}, {
|
|
638
654
|
e: undefined,
|
|
@@ -720,5 +736,5 @@ DataTable.Header = DataTableHeader;
|
|
|
720
736
|
DataTable.Controls = DataTableControls;
|
|
721
737
|
DataTable.Footer = DataTablePanelFooter;
|
|
722
738
|
export default DataTable;
|
|
723
|
-
_$delegateEvents(["click", "dblclick", "keydown", "pointerdown", "pointermove", "pointerup"]);
|
|
739
|
+
_$delegateEvents(["click", "dblclick", "contextmenu", "keydown", "pointerdown", "pointermove", "pointerup"]);
|
|
724
740
|
//# sourceMappingURL=DataTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","createEffect","createMemo","createSignal","createUniqueId","For","onCleanup","onMount","Show","useContext","Dynamic","useUiMessages","useLocale","PanelHeader","Paper","Placeholder","DataTablePanelContext","defaultRender","value","locale","messages","undefined","Date","toLocaleString","yes","no","String","JSON","stringify","renderColumnPart","part","col","rowInteractiveSelector","join","isNestedRowControl","event","target","Element","closest","currentTarget","scrollbarMetrics","viewportSize","contentSize","scrollOffset","overflow","offset","size","Math","min","max","DataTableRoot","props","hoveredColumn","setHoveredColumn","scrollbars","setScrollbars","x","y","scrollbarEnhanced","setScrollbarEnhanced","scrolling","setScrolling","panel","tableRef","scrollRef","loadMoreRef","scrollingTimeout","scrollbarDragOffset","hasMore","loadingMore","onLoadMore","loadMoreRequested","previousRowsLength","rows","length","previousLoadingMore","previousHasMore","rowId","row","getRowId","isInteractive","onRowClick","onRowDoubleClick","shouldHoverRows","hoverRows","shouldRenderLoadMoreSentinel","labelledBy","ariaLabelledBy","hasHeading","headingId","surface","class","cellContentClass","tableClass","trim","columnHighlighted","index","highlightColumns","setHoveredColumnIfEnabled","isNearBottom","scrollTop","clientHeight","scrollHeight","maybeLoadMore","error","syncScrollbars","clientWidth","scrollWidth","scrollLeft","revealScrollbars","clearTimeout","setTimeout","onScroll","scrollFromPointer","axis","track","metrics","rect","getBoundingClientRect","trackSize","height","width","pointerOffset","clientY","top","clientX","left","available","thumbOffset","maxScroll","startScrollbarDrag","preventDefault","setPointerCapture","pointerId","valueOf","columnAlignments","alignments","Map","columns","align","set","id","alignAttr","get","sortKeyOf","sortable","sortLinkFor","key","sortHref","active","sort","direction","href","ariaSortFor","renderHeaderDefault","title","_el$","_$getNextElement","_tmpl$","_$insert","header","_$createComponent","when","subtitle","children","_el$2","_tmpl$2","_el$3","_tmpl$3","_$effect","_$setAttribute","_el$4","_tmpl$4","_el$5","firstChild","_el$7","_el$8","_co$","_$getNextMarker","nextSibling","_el$6","_p$","_v$","_v$2","_v$3","_v$4","e","t","a","_$className","o","renderValueDefault","renderCellDefault","onRowKeyDown","rowClass","IntersectionObserver","observer","entries","some","entry","isIntersecting","root","rootMargin","observe","disconnect","ResizeObserver","rowsLength","nextHasMore","nextLoadingMore","queueMicrotask","fallback","description","_$memo","noColumns","component","data-surface","data-has-footer","footer","data-overflow-x","data-overflow-y","data-scrollbar-enhanced","data-scrolling","onMouseLeave","_el$9","_tmpl$7","_el$0","_el$1","_el$10","_el$11","_el$14","_el$15","_co$2","_el$17","_el$18","_co$3","addEventListener","_ref$","_$use","_ref$2","each","_el$19","_tmpl$8","_c$","renderHeader","render","_v$12","headerClass","_v$13","_v$14","_v$15","_el$20","_tmpl$9","_el$21","empty","noRecords","isSelected","selectedRowId","_el$22","_tmpl$0","$$keydown","$$dblclick","$$click","_el$23","_tmpl$1","_el$24","_c$2","renderCell","v","_v$21","cellClass","_v$22","_v$23","verticalAlign","_v$24","_v$25","i","_v$16","_v$17","_v$18","_v$19","_v$20","_$runHydrationEvents","fillHeight","_el$12","_tmpl$5","_el$13","_el$25","_tmpl$10","_el$26","values","_el$27","_tmpl$11","_c$3","_v$26","_v$27","_el$16","_tmpl$6","_ref$3","_v$5","ariaLabel","dataTable","_v$6","_v$7","density","_v$8","_v$9","_v$0","scrollPreserveKey","_v$1","_v$10","_v$11","stickyHeader","n","s","h","r","_el$28","_tmpl$12","_el$29","releasePointerCapture","$$pointerup","$$pointermove","hasPointerCapture","$$pointerdown","_v$28","_v$29","_v$30","_$setStyleProperty","DataTablePanel","setHasHeading","context","registerHeading","Provider","as","DataTableHeader","_el$30","_tmpl$13","_el$31","_tmpl$14","actions","DataTableControls","_el$32","DataTablePanelFooter","_el$33","_tmpl$15","DataTable","Panel","Header","Controls","Footer","_$delegateEvents"],"sources":["content/DataTable.tsx"],"sourcesContent":["import {\n type Accessor,\n createContext,\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n type JSX,\n onCleanup,\n onMount,\n Show,\n useContext,\n} from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { useLocale } from \"../intl/locale\";\nimport { PanelHeader } from \"../layout/PanelHeader\";\nimport { Paper } from \"../surfaces/Paper\";\nimport Placeholder from \"../surfaces/Placeholder\";\n\nexport type DataTableColumn<T> = {\n id: string;\n header: JSX.Element | ((ctx: { col: DataTableColumn<T> }) => JSX.Element);\n subtitle?: JSX.Element | ((ctx: { col: DataTableColumn<T> }) => JSX.Element);\n value?: keyof T | ((row: T) => unknown);\n class?: string;\n headerClass?: string;\n cellClass?: string;\n /** Defaults to right for numeric values and left for everything else. */\n align?: \"left\" | \"center\" | \"right\";\n /**\n * Marks the column sortable. Pass a string when the server's sort key\n * differs from the column id — they often do, because one column can show a\n * rate while another sorts by the absolute count behind it.\n */\n sortable?: boolean | string;\n};\n\nexport type DataTableSort = { key: string; direction: \"asc\" | \"desc\" };\n\nexport type DataTableRenderCell<T> = (ctx: {\n row: T;\n col: DataTableColumn<T>;\n value: unknown;\n render: (value: unknown) => JSX.Element;\n}) => JSX.Element;\n\nexport type DataTableRenderHeader<T> = (ctx: { col: DataTableColumn<T>; render: () => JSX.Element }) => JSX.Element;\n\nexport type DataTableFooter<T> = {\n values?: Record<string, unknown>;\n renderCell?: (ctx: { col: DataTableColumn<T>; value: unknown; render: (value: unknown) => JSX.Element }) => JSX.Element;\n};\n\nexport type DataTableProps<T> = {\n rows: readonly T[];\n columns: readonly DataTableColumn<T>[];\n /** Accessible name for a standalone table region. Defaults to \"Data table\". */\n ariaLabel?: string;\n /** ID of a visible heading that labels the table region. Takes precedence over ariaLabel. */\n ariaLabelledBy?: string;\n getRowId?: (row: T) => string;\n /** Current server-side ordering, or null when the default applies. */\n sort?: DataTableSort | null;\n /**\n * Link target for a sortable header. Link-based because every admin table is\n * server-rendered: sorting is a query change, not client state.\n */\n sortHref?: (next: DataTableSort) => string;\n selectedRowId?: string | null;\n rowClass?: string | ((row: T) => string | undefined);\n hoverRows?: boolean;\n onRowClick?: (row: T) => void;\n onRowDoubleClick?: (row: T) => void;\n renderCell?: DataTableRenderCell<T>;\n renderHeader?: DataTableRenderHeader<T>;\n footer?: DataTableFooter<T>;\n hasMore?: boolean;\n loadingMore?: boolean;\n onLoadMore?: () => void;\n empty?: JSX.Element;\n density?: \"compact\" | \"normal\";\n stickyHeader?: boolean;\n highlightColumns?: boolean;\n verticalAlign?: \"top\" | \"middle\" | \"bottom\";\n cellContentClass?: string;\n fillHeight?: boolean;\n /** Visual frame for a standalone table. Defaults preserve the legacy class-based behavior. */\n surface?: \"paper\" | \"plain\";\n class?: string;\n /** Additional classes for the table element. Core table geometry is always retained. */\n tableClass?: string;\n scrollPreserveKey?: string | false;\n};\n\nexport type DataTablePanelProps = {\n children: JSX.Element;\n class?: string;\n};\n\nexport type DataTableHeaderProps = {\n title: string;\n subtitle?: string;\n children?: JSX.Element;\n as?: \"h1\" | \"h2\" | \"h3\";\n size?: \"sm\" | \"md\";\n class?: string;\n};\n\nexport type DataTableControlsProps = {\n children: JSX.Element;\n class?: string;\n};\n\nexport type DataTablePanelFooterProps = {\n children: JSX.Element;\n class?: string;\n};\n\ntype DataTablePanelContextValue = {\n headingId: string;\n hasHeading: Accessor<boolean>;\n registerHeading: () => void;\n};\n\nconst DataTablePanelContext = createContext<DataTablePanelContextValue>();\n\nconst defaultRender = (value: unknown, locale: string, messages: ReturnType<ReturnType<typeof useUiMessages>>): JSX.Element => {\n if (value === null || value === undefined || value === \"\") return \"—\";\n if (value instanceof Date) return value.toLocaleString(locale);\n if (typeof value === \"boolean\") return value ? messages.yes : messages.no;\n if (typeof value === \"number\" || typeof value === \"bigint\") return String(value);\n if (typeof value === \"string\") return value;\n return JSON.stringify(value);\n};\n\nconst renderColumnPart = <T,>(\n part: DataTableColumn<T>[\"header\"] | DataTableColumn<T>[\"subtitle\"],\n col: DataTableColumn<T>,\n): JSX.Element => {\n if (typeof part === \"function\") return part({ col });\n return part;\n};\n\nconst rowInteractiveSelector = [\n \"a[href]\",\n \"button\",\n \"input\",\n \"select\",\n \"textarea\",\n \"summary\",\n \"[contenteditable]\",\n \"[role='button']\",\n \"[role='checkbox']\",\n \"[role='link']\",\n \"[role='menuitem']\",\n \"[role='option']\",\n \"[role='radio']\",\n \"[role='switch']\",\n \"[role='tab']\",\n \"[tabindex]\",\n].join(\",\");\n\nconst isNestedRowControl = (event: Event): boolean =>\n event.target instanceof Element && event.target.closest(rowInteractiveSelector) !== event.currentTarget;\n\ntype DataTableScrollbarAxis = \"x\" | \"y\";\ntype DataTableScrollbarMetrics = { overflow: boolean; offset: number; size: number };\n\nconst scrollbarMetrics = (viewportSize: number, contentSize: number, scrollOffset: number): DataTableScrollbarMetrics => {\n if (viewportSize <= 0 || contentSize <= viewportSize + 1) return { overflow: false, offset: 0, size: 0 };\n const size = Math.min(viewportSize, Math.max(24, (viewportSize * viewportSize) / contentSize));\n const offset = (scrollOffset / (contentSize - viewportSize)) * (viewportSize - size);\n return { overflow: true, offset, size };\n};\n\nfunction DataTableRoot<T>(props: DataTableProps<T>) {\n const messages = useUiMessages();\n const locale = useLocale();\n const [hoveredColumn, setHoveredColumn] = createSignal<number | null>(null);\n const [scrollbars, setScrollbars] = createSignal<Record<DataTableScrollbarAxis, DataTableScrollbarMetrics>>({\n x: { overflow: false, offset: 0, size: 0 },\n y: { overflow: false, offset: 0, size: 0 },\n });\n const [scrollbarEnhanced, setScrollbarEnhanced] = createSignal(false);\n const [scrolling, setScrolling] = createSignal(false);\n const panel = useContext(DataTablePanelContext);\n let tableRef: HTMLTableElement | undefined;\n let scrollRef: HTMLDivElement | undefined;\n let loadMoreRef: HTMLDivElement | undefined;\n let scrollingTimeout: ReturnType<typeof setTimeout> | undefined;\n let scrollbarDragOffset = 0;\n let hasMore = false;\n let loadingMore = false;\n let onLoadMore: (() => void) | undefined;\n let loadMoreRequested = false;\n let previousRowsLength = props.rows.length;\n let previousLoadingMore = !!props.loadingMore;\n let previousHasMore = !!props.hasMore;\n const rowId = (row: T) => props.getRowId?.(row);\n const isInteractive = () => !!props.onRowClick || !!props.onRowDoubleClick;\n const shouldHoverRows = () => props.hoverRows ?? isInteractive();\n const shouldRenderLoadMoreSentinel = () => !!props.onLoadMore;\n const labelledBy = () => props.ariaLabelledBy ?? (panel?.hasHeading() ? panel.headingId : undefined);\n const surface = () => props.surface ?? (props.class ? \"plain\" : \"paper\");\n const cellContentClass = () => props.cellContentClass ?? \"k2b-data-table__cell-text\";\n const tableClass = () => `k2b-data-table ${props.tableClass ?? \"\"}`.trim();\n const columnHighlighted = (index: number) =>\n props.highlightColumns !== false && shouldHoverRows() && hoveredColumn() === index ? \"true\" : undefined;\n const setHoveredColumnIfEnabled = (index: number) => {\n if (shouldHoverRows()) setHoveredColumn(index);\n };\n\n const isNearBottom = () => {\n if (!scrollRef) return false;\n return scrollRef.scrollTop + scrollRef.clientHeight >= scrollRef.scrollHeight - 240;\n };\n\n const maybeLoadMore = () => {\n if (!hasMore || loadingMore || loadMoreRequested || !onLoadMore) return;\n if (!isNearBottom()) return;\n loadMoreRequested = true;\n try {\n onLoadMore();\n } catch (error) {\n loadMoreRequested = false;\n throw error;\n }\n };\n\n const syncScrollbars = () => {\n if (!scrollRef) return;\n setScrollbars({\n x: scrollbarMetrics(scrollRef.clientWidth, scrollRef.scrollWidth, scrollRef.scrollLeft),\n y: scrollbarMetrics(scrollRef.clientHeight, scrollRef.scrollHeight, scrollRef.scrollTop),\n });\n };\n\n const revealScrollbars = () => {\n setScrolling(true);\n if (scrollingTimeout !== undefined) clearTimeout(scrollingTimeout);\n scrollingTimeout = setTimeout(() => {\n setScrolling(false);\n scrollingTimeout = undefined;\n }, 700);\n };\n\n const onScroll = () => {\n syncScrollbars();\n revealScrollbars();\n maybeLoadMore();\n };\n\n const scrollFromPointer = (event: PointerEvent & { currentTarget: HTMLDivElement }, axis: DataTableScrollbarAxis) => {\n if (!scrollRef) return;\n const track = event.currentTarget;\n const metrics = scrollbars()[axis];\n const rect = track.getBoundingClientRect();\n const trackSize = axis === \"y\" ? rect.height : rect.width;\n const pointerOffset = axis === \"y\" ? event.clientY - rect.top : event.clientX - rect.left;\n const available = Math.max(1, trackSize - metrics.size);\n const thumbOffset = Math.min(available, Math.max(0, pointerOffset - scrollbarDragOffset));\n const maxScroll = axis === \"y\" ? scrollRef.scrollHeight - scrollRef.clientHeight : scrollRef.scrollWidth - scrollRef.clientWidth;\n if (axis === \"y\") scrollRef.scrollTop = (thumbOffset / available) * maxScroll;\n else scrollRef.scrollLeft = (thumbOffset / available) * maxScroll;\n syncScrollbars();\n revealScrollbars();\n };\n\n const startScrollbarDrag = (event: PointerEvent & { currentTarget: HTMLDivElement }, axis: DataTableScrollbarAxis) => {\n event.preventDefault();\n const metrics = scrollbars()[axis];\n const rect = event.currentTarget.getBoundingClientRect();\n const pointerOffset = axis === \"y\" ? event.clientY - rect.top : event.clientX - rect.left;\n scrollbarDragOffset =\n event.target === event.currentTarget ? metrics.size / 2 : Math.min(metrics.size, Math.max(0, pointerOffset - metrics.offset));\n event.currentTarget.setPointerCapture(event.pointerId);\n scrollFromPointer(event, axis);\n };\n\n const valueOf = (row: T, col: DataTableColumn<T>) => {\n if (typeof col.value === \"function\") return col.value(row);\n if (col.value) return row[col.value];\n return undefined;\n };\n\n const columnAlignments = createMemo(() => {\n const alignments = new Map<string, NonNullable<DataTableColumn<T>[\"align\"]>>();\n for (const col of props.columns) {\n if (col.align) {\n alignments.set(col.id, col.align);\n continue;\n }\n let align: NonNullable<DataTableColumn<T>[\"align\"]> = \"left\";\n for (const row of props.rows) {\n const value = valueOf(row, col);\n if (value === null || value === undefined || value === \"\") continue;\n align = typeof value === \"number\" || typeof value === \"bigint\" ? \"right\" : \"left\";\n break;\n }\n alignments.set(col.id, align);\n }\n return alignments;\n });\n\n /** `data-align` mirrors Cloud's `text-left/center/right` on the same cell. */\n const alignAttr = (col: DataTableColumn<T>) => {\n const align = columnAlignments().get(col.id) ?? \"left\";\n return align === \"left\" ? undefined : align;\n };\n\n const sortKeyOf = (col: DataTableColumn<T>): string | null =>\n col.sortable === true ? col.id : typeof col.sortable === \"string\" ? col.sortable : null;\n\n /**\n * Sorting is a link, not a handler: these tables are server-rendered, so the\n * order belongs in the URL. Clicking the active column flips its direction.\n */\n const sortLinkFor = (col: DataTableColumn<T>): { href: string; active: boolean; direction: \"asc\" | \"desc\" } | null => {\n const key = sortKeyOf(col);\n if (!key || !props.sortHref) return null;\n const active = props.sort?.key === key;\n const direction: \"asc\" | \"desc\" = active && props.sort?.direction === \"desc\" ? \"asc\" : \"desc\";\n return { href: props.sortHref({ key, direction }), active, direction };\n };\n\n /** Only a sortable column carries a sort state; the rest carry none at all. */\n const ariaSortFor = (col: DataTableColumn<T>): \"ascending\" | \"descending\" | \"none\" | undefined => {\n const sort = sortLinkFor(col);\n if (!sort) return undefined;\n if (!sort.active) return \"none\";\n return props.sort?.direction === \"asc\" ? \"ascending\" : \"descending\";\n };\n\n const renderHeaderDefault = (col: DataTableColumn<T>): JSX.Element => {\n const sort = sortLinkFor(col);\n const title = (\n <>\n <span class=\"k2b-data-table__header-title\">{renderColumnPart(col.header, col)}</span>\n <Show when={col.subtitle !== undefined}>\n <span class=\"k2b-data-table__header-subtitle\">{renderColumnPart(col.subtitle, col)}</span>\n </Show>\n </>\n );\n\n if (!sort)\n return (\n <div class=\"k2b-data-table__header-content\" data-align={alignAttr(col)}>\n {title}\n </div>\n );\n\n return (\n <a href={sort.href} class=\"k2b-data-table__header-content k2b-data-table__sort\" data-align={alignAttr(col)}>\n <span class=\"k2b-data-table__header-line\">\n {title}\n {/* Inactive columns keep a dimmed marker so the row reads as sortable. */}\n <i\n class={`k2b-data-table__sort-icon ti ${props.sort?.direction === \"asc\" && sort.active ? \"ti-arrow-up\" : \"ti-arrow-down\"}`}\n data-active={sort.active ? \"true\" : undefined}\n aria-hidden=\"true\"\n />\n </span>\n </a>\n );\n };\n\n const renderValueDefault = (value: unknown) => defaultRender(value, locale(), messages());\n const renderCellDefault = (row: T, col: DataTableColumn<T>) => renderValueDefault(valueOf(row, col));\n\n const onRowKeyDown = (event: KeyboardEvent, row: T) => {\n if (!isInteractive()) return;\n if (isNestedRowControl(event)) return;\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n event.preventDefault();\n (props.onRowClick ?? props.onRowDoubleClick)?.(row);\n };\n\n const onRowClick = (event: MouseEvent, row: T) => {\n if (isNestedRowControl(event)) return;\n props.onRowClick?.(row);\n };\n\n const onRowDoubleClick = (event: MouseEvent, row: T) => {\n if (isNestedRowControl(event)) return;\n props.onRowDoubleClick?.(row);\n };\n\n const rowClass = (row: T) => {\n if (typeof props.rowClass === \"function\") return props.rowClass(row) ?? \"\";\n return props.rowClass ?? \"\";\n };\n\n onMount(() => {\n if (typeof IntersectionObserver === \"undefined\" || !scrollRef || !loadMoreRef) return;\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.isIntersecting)) maybeLoadMore();\n },\n { root: scrollRef, rootMargin: \"240px\" },\n );\n observer.observe(loadMoreRef);\n onCleanup(() => observer.disconnect());\n });\n\n onMount(() => {\n setScrollbarEnhanced(true);\n syncScrollbars();\n const observer = typeof ResizeObserver === \"undefined\" ? null : new ResizeObserver(syncScrollbars);\n if (scrollRef) observer?.observe(scrollRef);\n if (tableRef) observer?.observe(tableRef);\n onCleanup(() => {\n observer?.disconnect();\n if (scrollingTimeout !== undefined) clearTimeout(scrollingTimeout);\n });\n });\n\n createEffect(() => {\n const rowsLength = props.rows.length;\n const nextHasMore = !!props.hasMore;\n const nextLoadingMore = !!props.loadingMore;\n if (rowsLength !== previousRowsLength || (previousLoadingMore && !nextLoadingMore) || (!previousHasMore && nextHasMore)) {\n loadMoreRequested = false;\n }\n previousRowsLength = rowsLength;\n previousLoadingMore = nextLoadingMore;\n previousHasMore = nextHasMore;\n hasMore = nextHasMore;\n loadingMore = nextLoadingMore;\n onLoadMore = props.onLoadMore;\n maybeLoadMore();\n queueMicrotask(syncScrollbars);\n });\n\n return (\n <Show when={props.columns.length > 0} fallback={<Placeholder surface=\"paper\" description={<>{messages().noColumns}</>} />}>\n <Dynamic\n component={surface() === \"paper\" ? Paper : \"div\"}\n class={`k2b-table-shell ${props.class ?? \"\"}`}\n data-surface={surface()}\n data-has-footer={props.footer ? \"true\" : undefined}\n data-overflow-x={scrollbars().x.overflow ? \"true\" : undefined}\n data-overflow-y={scrollbars().y.overflow ? \"true\" : undefined}\n data-scrollbar-enhanced={scrollbarEnhanced() ? \"true\" : undefined}\n data-scrolling={scrolling() ? \"true\" : undefined}\n onMouseLeave={() => setHoveredColumn(null)}\n >\n <div\n ref={scrollRef}\n role=\"region\"\n aria-label={labelledBy() ? undefined : (props.ariaLabel ?? messages().dataTable)}\n aria-labelledby={labelledBy()}\n tabIndex={0}\n class=\"k2b-table-wrap\"\n data-density={props.density === \"compact\" ? \"compact\" : undefined}\n data-has-footer={props.footer ? \"true\" : undefined}\n data-surface={surface()}\n data-scroll-preserve={props.scrollPreserveKey || undefined}\n onScroll={onScroll}\n >\n <table ref={tableRef} class={tableClass()} data-fill={props.fillHeight ? \"true\" : undefined}>\n <thead class=\"k2b-data-table__head\" data-sticky={props.stickyHeader === false ? undefined : \"true\"}>\n <tr class=\"k2b-data-table__head-row\">\n <For each={props.columns}>\n {(col, index) => (\n <th\n scope=\"col\"\n class={`${col.headerClass ?? \"\"} ${col.class ?? \"\"}`}\n data-align={alignAttr(col)}\n data-highlighted={columnHighlighted(index())}\n aria-sort={ariaSortFor(col)}\n onMouseEnter={() => setHoveredColumnIfEnabled(index())}\n >\n {props.renderHeader ? props.renderHeader({ col, render: () => renderHeaderDefault(col) }) : renderHeaderDefault(col)}\n </th>\n )}\n </For>\n </tr>\n </thead>\n <tbody>\n <Show\n when={props.rows.length > 0}\n fallback={\n <tr>\n <td class=\"k2b-data-table__empty\" colspan={props.columns.length}>\n <Placeholder description={<>{props.empty ?? messages().noRecords}</>} />\n </td>\n </tr>\n }\n >\n <For each={props.rows}>\n {(row) => {\n const id = () => rowId(row);\n const isSelected = () => props.selectedRowId && id() === props.selectedRowId;\n return (\n <tr\n class={`k2b-data-table__row ${rowClass(row)}`}\n data-hover={shouldHoverRows() ? \"true\" : undefined}\n data-clickable={shouldHoverRows() && isInteractive() ? \"true\" : undefined}\n data-selected={isSelected() ? \"true\" : undefined}\n tabIndex={isInteractive() ? 0 : undefined}\n onClick={(event) => onRowClick(event, row)}\n onDblClick={(event) => onRowDoubleClick(event, row)}\n onKeyDown={(e) => onRowKeyDown(e, row)}\n >\n <For each={props.columns}>\n {(col, index) => {\n const value = () => valueOf(row, col);\n return (\n <td\n class={`${col.cellClass ?? \"\"} ${col.class ?? \"\"}`}\n data-align={alignAttr(col)}\n data-valign={props.verticalAlign && props.verticalAlign !== \"middle\" ? props.verticalAlign : undefined}\n data-highlighted={columnHighlighted(index())}\n onMouseEnter={() => setHoveredColumnIfEnabled(index())}\n >\n <div class={cellContentClass()}>\n {props.renderCell\n ? props.renderCell({\n row,\n col,\n value: value(),\n render: (v) => renderCellDefault(row, { ...col, value: () => v }),\n })\n : renderValueDefault(value())}\n </div>\n </td>\n );\n }}\n </For>\n </tr>\n );\n }}\n </For>\n <Show when={props.fillHeight}>\n <tr aria-hidden=\"true\">\n <td class=\"k2b-data-table__fill\" colspan={props.columns.length} />\n </tr>\n </Show>\n </Show>\n </tbody>\n <Show when={props.footer}>\n {(footer) => (\n <tfoot class=\"k2b-data-table__foot\" data-sticky=\"true\">\n <tr class=\"k2b-data-table__foot-row\">\n <For each={props.columns}>\n {(col, index) => {\n const value = () => footer().values?.[col.id];\n return (\n <td\n class=\"k2b-data-table__footer-cell\"\n data-align={alignAttr(col)}\n data-highlighted={columnHighlighted(index())}\n onMouseEnter={() => setHoveredColumnIfEnabled(index())}\n >\n {footer().renderCell\n ? footer().renderCell!({ col, value: value(), render: renderValueDefault })\n : renderValueDefault(value())}\n </td>\n );\n }}\n </For>\n </tr>\n </tfoot>\n )}\n </Show>\n </table>\n <Show when={shouldRenderLoadMoreSentinel()}>\n <div ref={loadMoreRef} class=\"k2b-data-table__sentinel\" aria-hidden=\"true\" />\n </Show>\n </div>\n <For each={[\"y\", \"x\"] as const}>\n {(axis) => (\n <div\n class=\"k2b-data-table__scrollbar\"\n data-axis={axis}\n data-overflow={scrollbars()[axis].overflow ? \"true\" : undefined}\n aria-hidden=\"true\"\n onPointerDown={(event) => startScrollbarDrag(event, axis)}\n onPointerMove={(event) => {\n if (event.currentTarget.hasPointerCapture(event.pointerId)) scrollFromPointer(event, axis);\n }}\n onPointerUp={(event) => event.currentTarget.releasePointerCapture(event.pointerId)}\n onPointerCancel={(event) => event.currentTarget.releasePointerCapture(event.pointerId)}\n >\n <span\n style={{\n \"--k2b-data-table-scroll-offset\": `${scrollbars()[axis].offset}px`,\n \"--k2b-data-table-scroll-size\": `${scrollbars()[axis].size}px`,\n }}\n />\n </div>\n )}\n </For>\n </Dynamic>\n </Show>\n );\n}\n\nconst DataTablePanel = (props: DataTablePanelProps): JSX.Element => {\n const headingId = `k2b-data-table-${createUniqueId()}-heading`;\n const [hasHeading, setHasHeading] = createSignal(false);\n const context: DataTablePanelContextValue = {\n headingId,\n hasHeading,\n registerHeading: () => setHasHeading(true),\n };\n\n return (\n <DataTablePanelContext.Provider value={context}>\n <Paper as=\"section\" class={`k2b-data-panel ${props.class ?? \"\"}`}>\n {props.children}\n </Paper>\n </DataTablePanelContext.Provider>\n );\n};\n\nconst DataTableHeader = (props: DataTableHeaderProps): JSX.Element => {\n const panel = useContext(DataTablePanelContext);\n panel?.registerHeading();\n\n return (\n <div class={`k2b-data-panel__header ${props.class ?? \"\"}`}>\n <PanelHeader\n title={<span id={panel?.headingId}>{props.title}</span>}\n subtitle={props.subtitle}\n actions={props.children}\n as={props.as}\n size={props.size}\n />\n </div>\n );\n};\n\nconst DataTableControls = (props: DataTableControlsProps): JSX.Element => (\n <div class={`k2b-data-panel__controls ${props.class ?? \"\"}`}>{props.children}</div>\n);\n\nconst DataTablePanelFooter = (props: DataTablePanelFooterProps): JSX.Element => (\n <footer class={`k2b-data-panel__footer ${props.class ?? \"\"}`}>{props.children}</footer>\n);\n\ntype DataTableComponent = {\n <T>(props: DataTableProps<T>): JSX.Element;\n Panel: (props: DataTablePanelProps) => JSX.Element;\n Header: (props: DataTableHeaderProps) => JSX.Element;\n Controls: (props: DataTableControlsProps) => JSX.Element;\n Footer: (props: DataTablePanelFooterProps) => JSX.Element;\n};\n\nconst DataTable = DataTableRoot as DataTableComponent;\nDataTable.Panel = DataTablePanel;\nDataTable.Header = DataTableHeader;\nDataTable.Controls = DataTableControls;\nDataTable.Footer = DataTablePanelFooter;\n\nexport default DataTable;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createContext","createEffect","createMemo","createSignal","createUniqueId","For","onCleanup","onMount","Show","useContext","Dynamic","useLocale","useUiMessages","PanelHeader","Paper","Placeholder","DataTablePanelContext","defaultRender","value","locale","messages","undefined","Date","toLocaleString","yes","no","String","JSON","stringify","renderColumnPart","part","col","rowInteractiveSelector","join","isNestedRowControl","event","target","Element","closest","currentTarget","scrollbarMetrics","viewportSize","contentSize","scrollOffset","overflow","offset","size","Math","min","max","DataTableRoot","props","hoveredColumn","setHoveredColumn","scrollbars","setScrollbars","x","y","scrollbarEnhanced","setScrollbarEnhanced","scrolling","setScrolling","panel","tableRef","scrollRef","loadMoreRef","scrollingTimeout","scrollbarDragOffset","hasMore","loadingMore","onLoadMore","loadMoreRequested","previousRowsLength","rows","length","previousLoadingMore","previousHasMore","rowId","row","getRowId","isInteractive","selection","onRowClick","onRowDoubleClick","shouldHoverRows","hoverRows","shouldRenderLoadMoreSentinel","labelledBy","ariaLabelledBy","hasHeading","headingId","surface","class","cellContentClass","tableClass","trim","columnHighlighted","index","highlightColumns","setHoveredColumnIfEnabled","isNearBottom","scrollTop","clientHeight","scrollHeight","maybeLoadMore","error","syncScrollbars","clientWidth","scrollWidth","scrollLeft","revealScrollbars","clearTimeout","setTimeout","onScroll","scrollFromPointer","axis","track","metrics","rect","getBoundingClientRect","trackSize","height","width","pointerOffset","clientY","top","clientX","left","available","thumbOffset","maxScroll","startScrollbarDrag","preventDefault","setPointerCapture","pointerId","valueOf","columnAlignments","alignments","Map","columns","align","set","id","alignAttr","get","sortKeyOf","sortable","sortLinkFor","key","sortHref","active","sort","direction","href","ariaSortFor","renderHeader","renderHeaderDefault","title","_el$","_$getNextElement","_tmpl$","_$insert","header","_$createComponent","when","subtitle","children","_el$2","_tmpl$2","_el$3","_tmpl$3","_$effect","_$setAttribute","_el$4","_tmpl$4","_el$5","firstChild","_el$7","_el$8","_co$","_$getNextMarker","nextSibling","_el$6","_p$","_v$","_v$2","_v$3","_v$4","e","t","a","_$className","o","renderValueDefault","renderCellDefault","onRowKeyDown","keyDown","select","rowClass","IntersectionObserver","observer","entries","some","entry","isIntersecting","root","rootMargin","observe","disconnect","ResizeObserver","rowsLength","nextHasMore","nextLoadingMore","queueMicrotask","fallback","description","_$memo","noColumns","component","data-surface","data-has-footer","footer","data-overflow-x","data-overflow-y","data-scrollbar-enhanced","data-scrolling","onMouseLeave","_el$9","_tmpl$7","_el$0","_el$1","_el$10","_el$11","_el$14","_el$15","_co$2","_el$17","_el$18","_co$3","addEventListener","_ref$","_$use","_ref$2","each","_el$19","_tmpl$8","_c$","render","_v$12","headerClass","_v$13","_v$14","_v$15","_el$20","_tmpl$9","_el$21","empty","noRecords","isSelected","selected","has","selectedRowId","_el$22","_tmpl$0","$$keydown","$$contextmenu","onRowContextMenu","$$dblclick","$$click","markFocused","element","register","_el$23","_tmpl$1","_el$24","_c$2","renderCell","v","_v$22","cellClass","_v$23","_v$24","verticalAlign","_v$25","_v$26","i","_v$16","_v$17","_v$18","_v$19","_v$20","_v$21","focused","n","_$runHydrationEvents","fillHeight","_el$12","_tmpl$5","_el$13","_el$25","_tmpl$10","_el$26","values","_el$27","_tmpl$11","_c$3","_v$27","_v$28","_el$16","_tmpl$6","_ref$3","_v$5","ariaLabel","dataTable","_v$6","_v$7","density","_v$8","_v$9","_v$0","scrollPreserveKey","_v$1","_v$10","_v$11","stickyHeader","s","h","r","_el$28","_tmpl$12","_el$29","releasePointerCapture","$$pointerup","$$pointermove","hasPointerCapture","$$pointerdown","_v$29","_v$30","_v$31","_$setStyleProperty","DataTablePanel","setHasHeading","context","registerHeading","Provider","as","DataTableHeader","_el$30","_tmpl$13","_el$31","_tmpl$14","actions","DataTableControls","_el$32","DataTablePanelFooter","_el$33","_tmpl$15","DataTable","Panel","Header","Controls","Footer","_$delegateEvents"],"sources":["content/DataTable.tsx"],"sourcesContent":["import {\n type Accessor,\n createContext,\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n type JSX,\n onCleanup,\n onMount,\n Show,\n useContext,\n} from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport { useLocale } from \"../intl/locale\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { PanelHeader } from \"../layout/PanelHeader\";\nimport { Paper } from \"../surfaces/Paper\";\nimport Placeholder from \"../surfaces/Placeholder\";\nimport type { CollectionSelection } from \"./collection-selection\";\n\nexport type DataTableColumn<T> = {\n id: string;\n header: JSX.Element | ((ctx: { col: DataTableColumn<T> }) => JSX.Element);\n subtitle?: JSX.Element | ((ctx: { col: DataTableColumn<T> }) => JSX.Element);\n value?: keyof T | ((row: T) => unknown);\n class?: string;\n headerClass?: string;\n cellClass?: string;\n /** Defaults to right for numeric values and left for everything else. */\n align?: \"left\" | \"center\" | \"right\";\n /**\n * Marks the column sortable. Pass a string when the server's sort key\n * differs from the column id — they often do, because one column can show a\n * rate while another sorts by the absolute count behind it.\n */\n sortable?: boolean | string;\n};\n\nexport type DataTableSort = { key: string; direction: \"asc\" | \"desc\" };\n\nexport type DataTableRenderCell<T> = (ctx: {\n row: T;\n col: DataTableColumn<T>;\n value: unknown;\n render: (value: unknown) => JSX.Element;\n}) => JSX.Element;\n\nexport type DataTableRenderHeader<T> = (ctx: { col: DataTableColumn<T>; render: () => JSX.Element }) => JSX.Element;\n\nexport type DataTableFooter<T> = {\n values?: Record<string, unknown>;\n renderCell?: (ctx: { col: DataTableColumn<T>; value: unknown; render: (value: unknown) => JSX.Element }) => JSX.Element;\n};\n\nexport type DataTableProps<T> = {\n rows: readonly T[];\n columns: readonly DataTableColumn<T>[];\n /** Accessible name for a standalone table region. Defaults to \"Data table\". */\n ariaLabel?: string;\n /** ID of a visible heading that labels the table region. Takes precedence over ariaLabel. */\n ariaLabelledBy?: string;\n getRowId?: (row: T) => string;\n /** Current server-side ordering, or null when the default applies. */\n sort?: DataTableSort | null;\n /**\n * Link target for a sortable header. Link-based because every admin table is\n * server-rendered: sorting is a query change, not client state.\n */\n sortHref?: (next: DataTableSort) => string;\n selectedRowId?: string | null;\n /** Optional multi-selection shared with another collection view. Requires getRowId. */\n selection?: CollectionSelection;\n rowClass?: string | ((row: T) => string | undefined);\n hoverRows?: boolean;\n onRowClick?: (row: T) => void;\n onRowDoubleClick?: (row: T) => void;\n onRowContextMenu?: (row: T) => void;\n renderCell?: DataTableRenderCell<T>;\n renderHeader?: DataTableRenderHeader<T>;\n footer?: DataTableFooter<T>;\n hasMore?: boolean;\n loadingMore?: boolean;\n onLoadMore?: () => void;\n empty?: JSX.Element;\n density?: \"compact\" | \"normal\";\n stickyHeader?: boolean;\n highlightColumns?: boolean;\n verticalAlign?: \"top\" | \"middle\" | \"bottom\";\n cellContentClass?: string;\n fillHeight?: boolean;\n /** Visual frame for a standalone table. Defaults preserve the legacy class-based behavior. */\n surface?: \"paper\" | \"plain\";\n class?: string;\n /** Additional classes for the table element. Core table geometry is always retained. */\n tableClass?: string;\n scrollPreserveKey?: string | false;\n};\n\nexport type DataTablePanelProps = {\n children: JSX.Element;\n class?: string;\n};\n\nexport type DataTableHeaderProps = {\n title: string;\n subtitle?: string;\n children?: JSX.Element;\n as?: \"h1\" | \"h2\" | \"h3\";\n size?: \"sm\" | \"md\";\n class?: string;\n};\n\nexport type DataTableControlsProps = {\n children: JSX.Element;\n class?: string;\n};\n\nexport type DataTablePanelFooterProps = {\n children: JSX.Element;\n class?: string;\n};\n\ntype DataTablePanelContextValue = {\n headingId: string;\n hasHeading: Accessor<boolean>;\n registerHeading: () => void;\n};\n\nconst DataTablePanelContext = createContext<DataTablePanelContextValue>();\n\nconst defaultRender = (value: unknown, locale: string, messages: ReturnType<ReturnType<typeof useUiMessages>>): JSX.Element => {\n if (value === null || value === undefined || value === \"\") return \"—\";\n if (value instanceof Date) return value.toLocaleString(locale);\n if (typeof value === \"boolean\") return value ? messages.yes : messages.no;\n if (typeof value === \"number\" || typeof value === \"bigint\") return String(value);\n if (typeof value === \"string\") return value;\n return JSON.stringify(value);\n};\n\nconst renderColumnPart = <T,>(\n part: DataTableColumn<T>[\"header\"] | DataTableColumn<T>[\"subtitle\"],\n col: DataTableColumn<T>,\n): JSX.Element => {\n if (typeof part === \"function\") return part({ col });\n return part;\n};\n\nconst rowInteractiveSelector = [\n \"a[href]\",\n \"button\",\n \"input\",\n \"label\",\n \"select\",\n \"textarea\",\n \"summary\",\n \"[contenteditable]\",\n \"[role='button']\",\n \"[role='checkbox']\",\n \"[role='link']\",\n \"[role='menuitem']\",\n \"[role='option']\",\n \"[role='radio']\",\n \"[role='switch']\",\n \"[role='tab']\",\n \"[tabindex]\",\n].join(\",\");\n\nconst isNestedRowControl = (event: Event): boolean =>\n event.target instanceof Element && event.target.closest(rowInteractiveSelector) !== event.currentTarget;\n\ntype DataTableScrollbarAxis = \"x\" | \"y\";\ntype DataTableScrollbarMetrics = { overflow: boolean; offset: number; size: number };\n\nconst scrollbarMetrics = (viewportSize: number, contentSize: number, scrollOffset: number): DataTableScrollbarMetrics => {\n if (viewportSize <= 0 || contentSize <= viewportSize + 1) return { overflow: false, offset: 0, size: 0 };\n const size = Math.min(viewportSize, Math.max(24, (viewportSize * viewportSize) / contentSize));\n const offset = (scrollOffset / (contentSize - viewportSize)) * (viewportSize - size);\n return { overflow: true, offset, size };\n};\n\nfunction DataTableRoot<T>(props: DataTableProps<T>) {\n const messages = useUiMessages();\n const locale = useLocale();\n const [hoveredColumn, setHoveredColumn] = createSignal<number | null>(null);\n const [scrollbars, setScrollbars] = createSignal<Record<DataTableScrollbarAxis, DataTableScrollbarMetrics>>({\n x: { overflow: false, offset: 0, size: 0 },\n y: { overflow: false, offset: 0, size: 0 },\n });\n const [scrollbarEnhanced, setScrollbarEnhanced] = createSignal(false);\n const [scrolling, setScrolling] = createSignal(false);\n const panel = useContext(DataTablePanelContext);\n let tableRef: HTMLTableElement | undefined;\n let scrollRef: HTMLDivElement | undefined;\n let loadMoreRef: HTMLDivElement | undefined;\n let scrollingTimeout: ReturnType<typeof setTimeout> | undefined;\n let scrollbarDragOffset = 0;\n let hasMore = false;\n let loadingMore = false;\n let onLoadMore: (() => void) | undefined;\n let loadMoreRequested = false;\n let previousRowsLength = props.rows.length;\n let previousLoadingMore = !!props.loadingMore;\n let previousHasMore = !!props.hasMore;\n const rowId = (row: T) => props.getRowId?.(row);\n const isInteractive = () => !!props.selection || !!props.onRowClick || !!props.onRowDoubleClick;\n const shouldHoverRows = () => props.hoverRows ?? isInteractive();\n const shouldRenderLoadMoreSentinel = () => !!props.onLoadMore;\n const labelledBy = () => props.ariaLabelledBy ?? (panel?.hasHeading() ? panel.headingId : undefined);\n const surface = () => props.surface ?? (props.class ? \"plain\" : \"paper\");\n const cellContentClass = () => props.cellContentClass ?? \"k2b-data-table__cell-text\";\n const tableClass = () => `k2b-data-table ${props.tableClass ?? \"\"}`.trim();\n const columnHighlighted = (index: number) =>\n props.highlightColumns !== false && shouldHoverRows() && hoveredColumn() === index ? \"true\" : undefined;\n const setHoveredColumnIfEnabled = (index: number) => {\n if (shouldHoverRows()) setHoveredColumn(index);\n };\n\n const isNearBottom = () => {\n if (!scrollRef) return false;\n return scrollRef.scrollTop + scrollRef.clientHeight >= scrollRef.scrollHeight - 240;\n };\n\n const maybeLoadMore = () => {\n if (!hasMore || loadingMore || loadMoreRequested || !onLoadMore) return;\n if (!isNearBottom()) return;\n loadMoreRequested = true;\n try {\n onLoadMore();\n } catch (error) {\n loadMoreRequested = false;\n throw error;\n }\n };\n\n const syncScrollbars = () => {\n if (!scrollRef) return;\n setScrollbars({\n x: scrollbarMetrics(scrollRef.clientWidth, scrollRef.scrollWidth, scrollRef.scrollLeft),\n y: scrollbarMetrics(scrollRef.clientHeight, scrollRef.scrollHeight, scrollRef.scrollTop),\n });\n };\n\n const revealScrollbars = () => {\n setScrolling(true);\n if (scrollingTimeout !== undefined) clearTimeout(scrollingTimeout);\n scrollingTimeout = setTimeout(() => {\n setScrolling(false);\n scrollingTimeout = undefined;\n }, 700);\n };\n\n const onScroll = () => {\n syncScrollbars();\n revealScrollbars();\n maybeLoadMore();\n };\n\n const scrollFromPointer = (event: PointerEvent & { currentTarget: HTMLDivElement }, axis: DataTableScrollbarAxis) => {\n if (!scrollRef) return;\n const track = event.currentTarget;\n const metrics = scrollbars()[axis];\n const rect = track.getBoundingClientRect();\n const trackSize = axis === \"y\" ? rect.height : rect.width;\n const pointerOffset = axis === \"y\" ? event.clientY - rect.top : event.clientX - rect.left;\n const available = Math.max(1, trackSize - metrics.size);\n const thumbOffset = Math.min(available, Math.max(0, pointerOffset - scrollbarDragOffset));\n const maxScroll = axis === \"y\" ? scrollRef.scrollHeight - scrollRef.clientHeight : scrollRef.scrollWidth - scrollRef.clientWidth;\n if (axis === \"y\") scrollRef.scrollTop = (thumbOffset / available) * maxScroll;\n else scrollRef.scrollLeft = (thumbOffset / available) * maxScroll;\n syncScrollbars();\n revealScrollbars();\n };\n\n const startScrollbarDrag = (event: PointerEvent & { currentTarget: HTMLDivElement }, axis: DataTableScrollbarAxis) => {\n event.preventDefault();\n const metrics = scrollbars()[axis];\n const rect = event.currentTarget.getBoundingClientRect();\n const pointerOffset = axis === \"y\" ? event.clientY - rect.top : event.clientX - rect.left;\n scrollbarDragOffset =\n event.target === event.currentTarget ? metrics.size / 2 : Math.min(metrics.size, Math.max(0, pointerOffset - metrics.offset));\n event.currentTarget.setPointerCapture(event.pointerId);\n scrollFromPointer(event, axis);\n };\n\n const valueOf = (row: T, col: DataTableColumn<T>) => {\n if (typeof col.value === \"function\") return col.value(row);\n if (col.value) return row[col.value];\n return undefined;\n };\n\n const columnAlignments = createMemo(() => {\n const alignments = new Map<string, NonNullable<DataTableColumn<T>[\"align\"]>>();\n for (const col of props.columns) {\n if (col.align) {\n alignments.set(col.id, col.align);\n continue;\n }\n let align: NonNullable<DataTableColumn<T>[\"align\"]> = \"left\";\n for (const row of props.rows) {\n const value = valueOf(row, col);\n if (value === null || value === undefined || value === \"\") continue;\n align = typeof value === \"number\" || typeof value === \"bigint\" ? \"right\" : \"left\";\n break;\n }\n alignments.set(col.id, align);\n }\n return alignments;\n });\n\n /** `data-align` mirrors Cloud's `text-left/center/right` on the same cell. */\n const alignAttr = (col: DataTableColumn<T>) => {\n const align = columnAlignments().get(col.id) ?? \"left\";\n return align === \"left\" ? undefined : align;\n };\n\n const sortKeyOf = (col: DataTableColumn<T>): string | null =>\n col.sortable === true ? col.id : typeof col.sortable === \"string\" ? col.sortable : null;\n\n /**\n * Sorting is a link, not a handler: these tables are server-rendered, so the\n * order belongs in the URL. Clicking the active column flips its direction.\n */\n const sortLinkFor = (col: DataTableColumn<T>): { href: string; active: boolean; direction: \"asc\" | \"desc\" } | null => {\n const key = sortKeyOf(col);\n if (!key || !props.sortHref) return null;\n const active = props.sort?.key === key;\n const direction: \"asc\" | \"desc\" = active && props.sort?.direction === \"desc\" ? \"asc\" : \"desc\";\n return { href: props.sortHref({ key, direction }), active, direction };\n };\n\n /** Only a sortable column carries a sort state; the rest carry none at all. */\n const ariaSortFor = (col: DataTableColumn<T>): \"ascending\" | \"descending\" | \"none\" | undefined => {\n const key = sortKeyOf(col);\n if (!key || (!props.sortHref && !props.renderHeader)) return undefined;\n if (props.sort?.key !== key) return \"none\";\n return props.sort?.direction === \"asc\" ? \"ascending\" : \"descending\";\n };\n\n const renderHeaderDefault = (col: DataTableColumn<T>): JSX.Element => {\n const sort = sortLinkFor(col);\n const title = (\n <>\n <span class=\"k2b-data-table__header-title\">{renderColumnPart(col.header, col)}</span>\n <Show when={col.subtitle !== undefined}>\n <span class=\"k2b-data-table__header-subtitle\">{renderColumnPart(col.subtitle, col)}</span>\n </Show>\n </>\n );\n\n if (!sort)\n return (\n <div class=\"k2b-data-table__header-content\" data-align={alignAttr(col)}>\n {title}\n </div>\n );\n\n return (\n <a href={sort.href} class=\"k2b-data-table__header-content k2b-data-table__sort\" data-align={alignAttr(col)}>\n <span class=\"k2b-data-table__header-line\">\n {title}\n {/* Inactive columns keep a dimmed marker so the row reads as sortable. */}\n <i\n class={`k2b-data-table__sort-icon ti ${props.sort?.direction === \"asc\" && sort.active ? \"ti-arrow-up\" : \"ti-arrow-down\"}`}\n data-active={sort.active ? \"true\" : undefined}\n aria-hidden=\"true\"\n />\n </span>\n </a>\n );\n };\n\n const renderValueDefault = (value: unknown) => defaultRender(value, locale(), messages());\n const renderCellDefault = (row: T, col: DataTableColumn<T>) => renderValueDefault(valueOf(row, col));\n\n const onRowKeyDown = (event: KeyboardEvent, row: T) => {\n if (!isInteractive()) return;\n if (isNestedRowControl(event)) return;\n const id = rowId(row);\n if (id !== undefined && props.selection?.keyDown(event, id)) return;\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n event.preventDefault();\n (props.selection ? props.onRowDoubleClick : (props.onRowClick ?? props.onRowDoubleClick))?.(row);\n };\n\n const onRowClick = (event: MouseEvent, row: T) => {\n if (isNestedRowControl(event)) return;\n const id = rowId(row);\n if (id !== undefined) props.selection?.select(id, event);\n props.onRowClick?.(row);\n };\n\n const onRowDoubleClick = (event: MouseEvent, row: T) => {\n if (isNestedRowControl(event)) return;\n props.onRowDoubleClick?.(row);\n };\n\n const rowClass = (row: T) => {\n if (typeof props.rowClass === \"function\") return props.rowClass(row) ?? \"\";\n return props.rowClass ?? \"\";\n };\n\n onMount(() => {\n if (typeof IntersectionObserver === \"undefined\" || !scrollRef || !loadMoreRef) return;\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.isIntersecting)) maybeLoadMore();\n },\n { root: scrollRef, rootMargin: \"240px\" },\n );\n observer.observe(loadMoreRef);\n onCleanup(() => observer.disconnect());\n });\n\n onMount(() => {\n setScrollbarEnhanced(true);\n syncScrollbars();\n const observer = typeof ResizeObserver === \"undefined\" ? null : new ResizeObserver(syncScrollbars);\n if (scrollRef) observer?.observe(scrollRef);\n if (tableRef) observer?.observe(tableRef);\n onCleanup(() => {\n observer?.disconnect();\n if (scrollingTimeout !== undefined) clearTimeout(scrollingTimeout);\n });\n });\n\n createEffect(() => {\n const rowsLength = props.rows.length;\n const nextHasMore = !!props.hasMore;\n const nextLoadingMore = !!props.loadingMore;\n if (rowsLength !== previousRowsLength || (previousLoadingMore && !nextLoadingMore) || (!previousHasMore && nextHasMore)) {\n loadMoreRequested = false;\n }\n previousRowsLength = rowsLength;\n previousLoadingMore = nextLoadingMore;\n previousHasMore = nextHasMore;\n hasMore = nextHasMore;\n loadingMore = nextLoadingMore;\n onLoadMore = props.onLoadMore;\n maybeLoadMore();\n queueMicrotask(syncScrollbars);\n });\n\n return (\n <Show when={props.columns.length > 0} fallback={<Placeholder surface=\"paper\" description={<>{messages().noColumns}</>} />}>\n <Dynamic\n component={surface() === \"paper\" ? Paper : \"div\"}\n class={`k2b-table-shell ${props.class ?? \"\"}`}\n data-surface={surface()}\n data-has-footer={props.footer ? \"true\" : undefined}\n data-overflow-x={scrollbars().x.overflow ? \"true\" : undefined}\n data-overflow-y={scrollbars().y.overflow ? \"true\" : undefined}\n data-scrollbar-enhanced={scrollbarEnhanced() ? \"true\" : undefined}\n data-scrolling={scrolling() ? \"true\" : undefined}\n onMouseLeave={() => setHoveredColumn(null)}\n >\n <div\n ref={scrollRef}\n role=\"region\"\n aria-label={labelledBy() ? undefined : (props.ariaLabel ?? messages().dataTable)}\n aria-labelledby={labelledBy()}\n tabIndex={0}\n class=\"k2b-table-wrap\"\n data-density={props.density === \"compact\" ? \"compact\" : undefined}\n data-has-footer={props.footer ? \"true\" : undefined}\n data-surface={surface()}\n data-scroll-preserve={props.scrollPreserveKey || undefined}\n onScroll={onScroll}\n >\n <table ref={tableRef} class={tableClass()} data-fill={props.fillHeight ? \"true\" : undefined}>\n <thead class=\"k2b-data-table__head\" data-sticky={props.stickyHeader === false ? undefined : \"true\"}>\n <tr class=\"k2b-data-table__head-row\">\n <For each={props.columns}>\n {(col, index) => (\n <th\n scope=\"col\"\n class={`${col.headerClass ?? \"\"} ${col.class ?? \"\"}`}\n data-align={alignAttr(col)}\n data-highlighted={columnHighlighted(index())}\n aria-sort={ariaSortFor(col)}\n onMouseEnter={() => setHoveredColumnIfEnabled(index())}\n >\n {props.renderHeader ? props.renderHeader({ col, render: () => renderHeaderDefault(col) }) : renderHeaderDefault(col)}\n </th>\n )}\n </For>\n </tr>\n </thead>\n <tbody>\n <Show\n when={props.rows.length > 0}\n fallback={\n <tr>\n <td class=\"k2b-data-table__empty\" colspan={props.columns.length}>\n <Placeholder description={<>{props.empty ?? messages().noRecords}</>} />\n </td>\n </tr>\n }\n >\n <For each={props.rows}>\n {(row) => {\n const id = () => rowId(row);\n const isSelected = () =>\n props.selection ? props.selection.selected().has(id() ?? \"\") : props.selectedRowId && id() === props.selectedRowId;\n return (\n <tr\n ref={(element) => {\n const key = id();\n if (key !== undefined) props.selection?.register(key, element);\n }}\n class={`k2b-data-table__row ${rowClass(row)}`}\n data-hover={shouldHoverRows() ? \"true\" : undefined}\n data-clickable={shouldHoverRows() && isInteractive() ? \"true\" : undefined}\n data-selected={isSelected() ? \"true\" : undefined}\n aria-selected={props.selection ? !!isSelected() : undefined}\n tabIndex={props.selection ? (props.selection.focused() === id() ? 0 : -1) : isInteractive() ? 0 : undefined}\n onFocus={() => {\n const key = id();\n if (key !== undefined) props.selection?.markFocused(key);\n }}\n onClick={(event) => onRowClick(event, row)}\n onDblClick={(event) => onRowDoubleClick(event, row)}\n onContextMenu={() => props.onRowContextMenu?.(row)}\n onKeyDown={(e) => onRowKeyDown(e, row)}\n >\n <For each={props.columns}>\n {(col, index) => {\n const value = () => valueOf(row, col);\n return (\n <td\n class={`${col.cellClass ?? \"\"} ${col.class ?? \"\"}`}\n data-align={alignAttr(col)}\n data-valign={props.verticalAlign && props.verticalAlign !== \"middle\" ? props.verticalAlign : undefined}\n data-highlighted={columnHighlighted(index())}\n onMouseEnter={() => setHoveredColumnIfEnabled(index())}\n >\n <div class={cellContentClass()}>\n {props.renderCell\n ? props.renderCell({\n row,\n col,\n value: value(),\n render: (v) => renderCellDefault(row, { ...col, value: () => v }),\n })\n : renderValueDefault(value())}\n </div>\n </td>\n );\n }}\n </For>\n </tr>\n );\n }}\n </For>\n <Show when={props.fillHeight}>\n <tr aria-hidden=\"true\">\n <td class=\"k2b-data-table__fill\" colspan={props.columns.length} />\n </tr>\n </Show>\n </Show>\n </tbody>\n <Show when={props.footer}>\n {(footer) => (\n <tfoot class=\"k2b-data-table__foot\" data-sticky=\"true\">\n <tr class=\"k2b-data-table__foot-row\">\n <For each={props.columns}>\n {(col, index) => {\n const value = () => footer().values?.[col.id];\n return (\n <td\n class=\"k2b-data-table__footer-cell\"\n data-align={alignAttr(col)}\n data-highlighted={columnHighlighted(index())}\n onMouseEnter={() => setHoveredColumnIfEnabled(index())}\n >\n {footer().renderCell\n ? footer().renderCell!({ col, value: value(), render: renderValueDefault })\n : renderValueDefault(value())}\n </td>\n );\n }}\n </For>\n </tr>\n </tfoot>\n )}\n </Show>\n </table>\n <Show when={shouldRenderLoadMoreSentinel()}>\n <div ref={loadMoreRef} class=\"k2b-data-table__sentinel\" aria-hidden=\"true\" />\n </Show>\n </div>\n <For each={[\"y\", \"x\"] as const}>\n {(axis) => (\n <div\n class=\"k2b-data-table__scrollbar\"\n data-axis={axis}\n data-overflow={scrollbars()[axis].overflow ? \"true\" : undefined}\n aria-hidden=\"true\"\n onPointerDown={(event) => startScrollbarDrag(event, axis)}\n onPointerMove={(event) => {\n if (event.currentTarget.hasPointerCapture(event.pointerId)) scrollFromPointer(event, axis);\n }}\n onPointerUp={(event) => event.currentTarget.releasePointerCapture(event.pointerId)}\n onPointerCancel={(event) => event.currentTarget.releasePointerCapture(event.pointerId)}\n >\n <span\n style={{\n \"--k2b-data-table-scroll-offset\": `${scrollbars()[axis].offset}px`,\n \"--k2b-data-table-scroll-size\": `${scrollbars()[axis].size}px`,\n }}\n />\n </div>\n )}\n </For>\n </Dynamic>\n </Show>\n );\n}\n\nconst DataTablePanel = (props: DataTablePanelProps): JSX.Element => {\n const headingId = `k2b-data-table-${createUniqueId()}-heading`;\n const [hasHeading, setHasHeading] = createSignal(false);\n const context: DataTablePanelContextValue = {\n headingId,\n hasHeading,\n registerHeading: () => setHasHeading(true),\n };\n\n return (\n <DataTablePanelContext.Provider value={context}>\n <Paper as=\"section\" class={`k2b-data-panel ${props.class ?? \"\"}`}>\n {props.children}\n </Paper>\n </DataTablePanelContext.Provider>\n );\n};\n\nconst DataTableHeader = (props: DataTableHeaderProps): JSX.Element => {\n const panel = useContext(DataTablePanelContext);\n panel?.registerHeading();\n\n return (\n <div class={`k2b-data-panel__header ${props.class ?? \"\"}`}>\n <PanelHeader\n title={<span id={panel?.headingId}>{props.title}</span>}\n subtitle={props.subtitle}\n actions={props.children}\n as={props.as}\n size={props.size}\n />\n </div>\n );\n};\n\nconst DataTableControls = (props: DataTableControlsProps): JSX.Element => (\n <div class={`k2b-data-panel__controls ${props.class ?? \"\"}`}>{props.children}</div>\n);\n\nconst DataTablePanelFooter = (props: DataTablePanelFooterProps): JSX.Element => (\n <footer class={`k2b-data-panel__footer ${props.class ?? \"\"}`}>{props.children}</footer>\n);\n\ntype DataTableComponent = {\n <T>(props: DataTableProps<T>): JSX.Element;\n Panel: (props: DataTablePanelProps) => JSX.Element;\n Header: (props: DataTableHeaderProps) => JSX.Element;\n Controls: (props: DataTableControlsProps) => JSX.Element;\n Footer: (props: DataTablePanelFooterProps) => JSX.Element;\n};\n\nconst DataTable = DataTableRoot as DataTableComponent;\nDataTable.Panel = DataTablePanel;\nDataTable.Header = DataTableHeader;\nDataTable.Controls = DataTableControls;\nDataTable.Footer = DataTablePanelFooter;\n\nexport default DataTable;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -383,6 +383,9 @@ export function FileBrowserPanel(props) {
|
|
|
383
383
|
return selectedEntry();
|
|
384
384
|
},
|
|
385
385
|
children: entry => _$createComponent(FileView, {
|
|
386
|
+
get previewPreferencesKey() {
|
|
387
|
+
return props.source.previewPreferencesKey;
|
|
388
|
+
},
|
|
386
389
|
get file() {
|
|
387
390
|
return {
|
|
388
391
|
path: entry().path,
|