@k2b/ui 0.1.1 → 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 +10 -4
- 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 +143 -77
- 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 +34 -15
- 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 +20 -3
- 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/Tooltip.js +6 -2
- package/dist/browser/feedback/Tooltip.js.map +1 -1
- package/dist/browser/feedback/dialog-core.js +102 -9
- 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/feedback/tooltip-position.js +15 -0
- package/dist/browser/feedback/tooltip-position.js.map +1 -1
- package/dist/browser/inputs/ChoiceInputs.js +47 -38
- package/dist/browser/inputs/ChoiceInputs.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/internal/portal.js +1 -1
- package/dist/browser/internal/portal.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 +232 -107
- 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 +229 -72
- 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 +5 -2
- 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 +50 -12
- 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 +16 -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 +20 -3
- 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/Tooltip.js +6 -4
- package/dist/ssr/feedback/Tooltip.js.map +1 -1
- package/dist/ssr/feedback/dialog-core.js +102 -9
- 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/feedback/tooltip-position.js +15 -0
- package/dist/ssr/feedback/tooltip-position.js.map +1 -1
- package/dist/ssr/inputs/ChoiceInputs.js +9 -6
- package/dist/ssr/inputs/ChoiceInputs.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/internal/portal.js +1 -1
- package/dist/ssr/internal/portal.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 +95 -17
- 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 +112 -27
- 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/Dropdown.d.ts +3 -1
- 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 +9 -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/MarkdownView.d.ts +6 -1
- 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 +13 -0
- package/dist/types/feedback/prompts.d.ts +2 -0
- package/dist/types/feedback/toast.d.ts +7 -1
- package/dist/types/feedback/tooltip-position.d.ts +1 -1
- package/dist/types/inputs/ChoiceInputs.d.ts +3 -0
- 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 +7 -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 +8 -8
|
@@ -4,6 +4,8 @@ import { type TooltipPlacement } from "../feedback/Tooltip";
|
|
|
4
4
|
export type ButtonVariant = "primary" | "secondary" | "ghost" | "text" | "subtle" | "input" | "warning" | "danger" | "success" | "ai";
|
|
5
5
|
export type ButtonSize = "xs" | "sm" | "md" | "lg";
|
|
6
6
|
export type ButtonProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
7
|
+
/** Allow a deliberately long or rich label to wrap. Defaults to false. */
|
|
8
|
+
wrap?: boolean;
|
|
7
9
|
loading?: boolean;
|
|
8
10
|
loadingLabel?: string;
|
|
9
11
|
size?: ButtonSize;
|
|
@@ -13,6 +15,8 @@ export type ButtonProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
|
13
15
|
tooltipPlacement?: TooltipPlacement;
|
|
14
16
|
};
|
|
15
17
|
export type ButtonLinkProps = Omit<JSX.AnchorHTMLAttributes<HTMLAnchorElement>, "onClick"> & {
|
|
18
|
+
/** Allow a deliberately long or rich label to wrap. Defaults to false. */
|
|
19
|
+
wrap?: boolean;
|
|
16
20
|
navigation?: "document" | "enhanced";
|
|
17
21
|
onClick?: JSX.EventHandlerUnion<HTMLAnchorElement, MouseEvent>;
|
|
18
22
|
onNavigate?: (event: LinkNavigateEvent) => void | Promise<void>;
|
|
@@ -2,6 +2,7 @@ import { type JSX } from "solid-js";
|
|
|
2
2
|
import type { MaybeAccessor } from "../inputs/field-contract";
|
|
3
3
|
export type DisclosureProps = {
|
|
4
4
|
summary: JSX.Element;
|
|
5
|
+
surface?: "paper" | "plain";
|
|
5
6
|
children: JSX.Element;
|
|
6
7
|
value?: MaybeAccessor<boolean>;
|
|
7
8
|
defaultValue?: boolean;
|
|
@@ -42,7 +42,9 @@ export type DropdownProps = {
|
|
|
42
42
|
items: readonly DropdownItem[];
|
|
43
43
|
children: JSX.Element;
|
|
44
44
|
position?: DropdownPosition | (() => DropdownPosition);
|
|
45
|
-
/**
|
|
45
|
+
/** Larger menu rows and typography for touch. Defaults to `default`. */
|
|
46
|
+
variant?: "default" | "touch";
|
|
47
|
+
/** Menu width as a CSS length. Defaults to `12rem`, or `18rem` for touch. */
|
|
46
48
|
width?: string;
|
|
47
49
|
class?: string;
|
|
48
50
|
menuClass?: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type JSX } from "solid-js";
|
|
2
|
+
import type { ButtonVariant } from "./Button";
|
|
2
3
|
export type FilterChipOption = {
|
|
3
4
|
value: string;
|
|
4
5
|
label: string;
|
|
@@ -20,6 +21,9 @@ export type FilterChipProps = {
|
|
|
20
21
|
position?: "bottom-left" | "bottom-right";
|
|
21
22
|
defaultValue?: readonly string[];
|
|
22
23
|
iconOnly?: boolean;
|
|
24
|
+
/** Use a standard button appearance instead of the default filter field. */
|
|
25
|
+
variant?: ButtonVariant;
|
|
26
|
+
disabled?: boolean;
|
|
23
27
|
class?: string;
|
|
24
28
|
};
|
|
25
29
|
/** Section-aware controlled filter with immediate single- and multi-select commits. */
|
|
@@ -4,6 +4,12 @@ import { type DropdownItem, type DropdownPosition } from "./Dropdown";
|
|
|
4
4
|
export type SplitButtonProps = ButtonProps & {
|
|
5
5
|
/** Actions shown from the secondary menu trigger. */
|
|
6
6
|
items: readonly DropdownItem[];
|
|
7
|
+
/** Optional selection menu in place of the primary immediate action. */
|
|
8
|
+
primaryItems?: readonly DropdownItem[];
|
|
9
|
+
/** Accessible name for the primary selection menu. */
|
|
10
|
+
primaryMenuLabel?: string;
|
|
11
|
+
/** Secondary menu glyph; defaults to a chevron. */
|
|
12
|
+
menuIcon?: JSX.Element;
|
|
7
13
|
/** Accessible name and title for the icon-only menu trigger. */
|
|
8
14
|
menuLabel: string;
|
|
9
15
|
menuPosition?: DropdownPosition | (() => DropdownPosition);
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type { JSX } from "solid-js";
|
|
2
2
|
import type { PromptSearchInput, PromptSearchItem, PromptSearchOptions } from "../feedback/prompts";
|
|
3
|
-
export declare const SPOTLIGHT_SHORTCUT = "mod+shift+k";
|
|
4
|
-
export declare const SPOTLIGHT_SHORTCUT_LABEL = "\u21E7\u2318K";
|
|
5
|
-
export declare const SPOTLIGHT_SHORTCUT_TITLE = "Mod+Shift+K";
|
|
6
3
|
export type SpotlightSearchResolver<T = unknown> = (input: PromptSearchInput) => Promise<PromptSearchItem<T>[]> | PromptSearchItem<T>[];
|
|
7
4
|
export type SpotlightSearchOptions<T = unknown> = PromptSearchOptions & {
|
|
8
5
|
resolve: SpotlightSearchResolver<T>;
|
|
@@ -19,7 +16,6 @@ export type SpotlightButtonProps = {
|
|
|
19
16
|
class?: string;
|
|
20
17
|
onClick: () => void | Promise<void>;
|
|
21
18
|
};
|
|
22
|
-
export declare const isSpotlightShortcut: (event: KeyboardEvent) => boolean;
|
|
23
19
|
export declare const openSpotlightSearch: <T = unknown>(options: SpotlightSearchOptions<T>) => Promise<PromptSearchItem<T> | undefined>;
|
|
24
20
|
export declare function SpotlightButton(props: SpotlightButtonProps): JSX.Element;
|
|
25
21
|
export default SpotlightButton;
|
|
@@ -6,6 +6,8 @@ export type TabOption<T extends string = string> = {
|
|
|
6
6
|
icon?: string;
|
|
7
7
|
disabled?: boolean;
|
|
8
8
|
panel?: JSX.Element;
|
|
9
|
+
onClose?: () => void;
|
|
10
|
+
closeLabel?: string;
|
|
9
11
|
};
|
|
10
12
|
export type TabsItemProps<T extends string = string> = Omit<TabOption<T>, "panel"> & {
|
|
11
13
|
children?: JSX.Element;
|
|
@@ -16,6 +18,8 @@ export type TabsProps<T extends string = string> = {
|
|
|
16
18
|
ariaLabel: string;
|
|
17
19
|
orientation?: "horizontal" | "vertical";
|
|
18
20
|
class?: string;
|
|
21
|
+
variant?: "line" | "pill";
|
|
22
|
+
trailing?: JSX.Element;
|
|
19
23
|
/** Data-driven alternative to colocated `Tabs.Item` children. */
|
|
20
24
|
options?: readonly TabOption<T>[];
|
|
21
25
|
children?: JSX.Element;
|
|
@@ -13,7 +13,7 @@ export { ContextMenu } from "./ContextMenu";
|
|
|
13
13
|
export type { RemoveButtonProps } from "./RemoveButton";
|
|
14
14
|
export { RemoveButton } from "./RemoveButton";
|
|
15
15
|
export type { SpotlightButtonProps, SpotlightButtonVariant, SpotlightSearchOptions, SpotlightSearchResolver, } from "./SpotlightSearch";
|
|
16
|
-
export {
|
|
16
|
+
export { openSpotlightSearch, SpotlightButton, } from "./SpotlightSearch";
|
|
17
17
|
export type { SegmentedControlProps, SegmentOption } from "./SegmentedControl";
|
|
18
18
|
export { SegmentedControl } from "./SegmentedControl";
|
|
19
19
|
export type { SplitButtonProps } from "./SplitButton";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type JSX } from "solid-js";
|
|
2
|
-
import type { ChatAction, ChatAttachment, ChatComposerState, ChatContextUsageData, ChatModelOption, ChatSubmitInput } from "./types";
|
|
2
|
+
import type { ChatAction, ChatAttachment, ChatMention, ChatComposerState, ChatContextUsageData, ChatModelOption, ChatSubmitInput } from "./types";
|
|
3
3
|
export type ChatCommandContext = {
|
|
4
4
|
setValue: (value: string) => void;
|
|
5
5
|
submit: () => void;
|
|
@@ -9,7 +9,11 @@ export type ChatCommand = {
|
|
|
9
9
|
name: string;
|
|
10
10
|
description: string;
|
|
11
11
|
icon?: string;
|
|
12
|
-
action
|
|
12
|
+
action?: (context: ChatCommandContext) => void | Promise<void>;
|
|
13
|
+
/** Selecting a reference inserts its display name and retains its opaque payload. */
|
|
14
|
+
mention?: ChatAttachment;
|
|
15
|
+
label?: string;
|
|
16
|
+
disabled?: boolean;
|
|
13
17
|
};
|
|
14
18
|
export type ChatFileSelection = {
|
|
15
19
|
onSelect: (files: readonly File[]) => void | Promise<void>;
|
|
@@ -41,17 +45,31 @@ export type ChatComposerProps = {
|
|
|
41
45
|
models?: readonly ChatModelOption[];
|
|
42
46
|
selectedModelId?: string | null;
|
|
43
47
|
onModelChange?: (modelId: string) => void;
|
|
48
|
+
/** Compact application-owned details immediately after the model selector. */
|
|
49
|
+
modelDetails?: JSX.Element;
|
|
44
50
|
commands?: readonly ChatCommand[];
|
|
51
|
+
searchCommands?: (query: string, signal: AbortSignal) => Promise<readonly ChatCommand[]>;
|
|
52
|
+
mentions?: readonly ChatMention[];
|
|
53
|
+
onMentionsChange?: (mentions: readonly ChatMention[]) => void;
|
|
54
|
+
/** Shared surface above the editor; suggestions temporarily replace this content. */
|
|
55
|
+
accessory?: JSX.Element;
|
|
45
56
|
contextUsage?: ChatContextUsageData;
|
|
46
57
|
contextActions?: readonly ChatAction[];
|
|
58
|
+
/** Optional action inside the context details popup. */
|
|
59
|
+
contextPopupAction?: ChatAction;
|
|
47
60
|
/** Additional compact controls rendered with the add/model controls. */
|
|
48
61
|
footerTools?: JSX.Element;
|
|
62
|
+
/** Compact application controls immediately before the send/stop button. */
|
|
63
|
+
submitTools?: JSX.Element;
|
|
64
|
+
/** Replaces footer controls during an application-owned interaction, preserving the editor. */
|
|
65
|
+
footerContent?: JSX.Element;
|
|
49
66
|
placeholder?: string;
|
|
50
67
|
label?: string;
|
|
51
68
|
inputLabel?: string;
|
|
52
69
|
disabled?: boolean;
|
|
53
70
|
error?: string;
|
|
54
71
|
focusToken?: unknown;
|
|
72
|
+
draftKey?: unknown;
|
|
55
73
|
class?: string;
|
|
56
74
|
};
|
|
57
75
|
export declare function ChatComposer(props: ChatComposerProps): JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
export type ChatContextPopupProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, "content" | "ref" | "onClick" | "onPointerEnter" | "onPointerLeave"> & {
|
|
3
|
+
content: JSX.Element;
|
|
4
|
+
};
|
|
5
|
+
/** Context details support hover preview and deliberate click-to-pin without changing tooltip behavior. */
|
|
6
|
+
export declare function ChatContextPopup(props: ChatContextPopupProps): JSX.Element;
|
|
@@ -35,9 +35,13 @@ export type ChatActivityProps = {
|
|
|
35
35
|
bodyInset?: boolean;
|
|
36
36
|
anchorId?: string | number;
|
|
37
37
|
children?: JSX.Element;
|
|
38
|
+
/** Mount expensive details only while expanded. */
|
|
39
|
+
renderBody?: () => JSX.Element;
|
|
38
40
|
class?: string;
|
|
39
41
|
};
|
|
40
42
|
export type ChatContextUsageProps = ChatContextUsageData & {
|
|
43
|
+
action?: ChatAction;
|
|
44
|
+
onActionError?: (error: unknown) => void;
|
|
41
45
|
/** Host-owned number formatting. The default is locale-independent and SSR-stable. */
|
|
42
46
|
formatNumber?: (value: number) => string;
|
|
43
47
|
class?: string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type ChatTask = {
|
|
2
|
+
id: string;
|
|
3
|
+
content: string;
|
|
4
|
+
status: "pending" | "in_progress" | "completed" | "cancelled";
|
|
5
|
+
};
|
|
6
|
+
export type ChatTasksProps = {
|
|
7
|
+
items: readonly ChatTask[];
|
|
8
|
+
open: boolean;
|
|
9
|
+
onOpenChange: (open: boolean) => void;
|
|
10
|
+
label: string;
|
|
11
|
+
progressLabel: string;
|
|
12
|
+
statusLabels: Record<ChatTask["status"], string>;
|
|
13
|
+
};
|
|
14
|
+
/** Presentation only. The host owns the plan and execution state. */
|
|
15
|
+
export declare function ChatTasks(props: ChatTasksProps): import("solid-js").JSX.Element;
|
|
@@ -33,6 +33,7 @@ export type ChatActivityItem = {
|
|
|
33
33
|
};
|
|
34
34
|
export type ChatTimelineItem = ChatMessageItem | ChatActivityItem;
|
|
35
35
|
export type ChatTimelineProps = {
|
|
36
|
+
scrollFade?: boolean;
|
|
36
37
|
items: readonly ChatTimelineItem[];
|
|
37
38
|
conversationKey?: string | null;
|
|
38
39
|
loading?: boolean;
|
|
@@ -45,6 +46,7 @@ export type ChatTimelineProps = {
|
|
|
45
46
|
onActionError?: (error: unknown) => void;
|
|
46
47
|
viewportRef?: (element: HTMLDivElement) => void;
|
|
47
48
|
contentRef?: (element: HTMLDivElement) => void;
|
|
49
|
+
scrollToAnchorRef?: (scrollToAnchor: (anchorId: string | number) => boolean) => void;
|
|
48
50
|
label?: string;
|
|
49
51
|
followThreshold?: number;
|
|
50
52
|
class?: string;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import type { ChatAction } from "./types";
|
|
2
|
-
export declare const filterChatCommands: <T extends {
|
|
3
|
-
name: string;
|
|
4
|
-
}>(value: string, commands: readonly T[]) => T[];
|
|
5
2
|
export declare const nextChatCommandIndex: (index: number, length: number, direction: 1 | -1) => number;
|
|
6
3
|
export declare const isChatNearBottom: (scrollHeight: number, scrollTop: number, clientHeight: number, threshold?: number) => boolean;
|
|
7
4
|
export declare const restoredChatScrollTop: (previousScrollTop: number, previousScrollHeight: number, nextScrollHeight: number) => number;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ChatMention } from "./types";
|
|
2
|
+
export type ChatCommandQuery = {
|
|
3
|
+
start: number;
|
|
4
|
+
end: number;
|
|
5
|
+
query: string;
|
|
6
|
+
};
|
|
7
|
+
/** Only the token at the caret; URLs, paths and inline/fenced code are ordinary text. */
|
|
8
|
+
export declare function chatCommandQuery(text: string, caret: number, selectionEnd?: number): ChatCommandQuery | null;
|
|
9
|
+
/** An edit inside a mention removes its identity; edits around it shift the range. */
|
|
10
|
+
export declare function reconcileChatMentions(before: string, after: string, mentions: readonly ChatMention[]): ChatMention[];
|
|
11
|
+
export declare function chatMentionSegments(text: string, mentions: readonly ChatMention[]): {
|
|
12
|
+
text: string;
|
|
13
|
+
mention?: ChatMention;
|
|
14
|
+
}[];
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export type { ChatContextPopupProps } from "./ChatContextPopup";
|
|
2
|
+
import { ChatContextPopup } from "./ChatContextPopup";
|
|
3
|
+
import { ChatTasks } from "./ChatTasks";
|
|
4
|
+
export type { ChatTask, ChatTasksProps } from "./ChatTasks";
|
|
1
5
|
import { ChatComposer } from "./ChatComposer";
|
|
2
6
|
import { ChatActivity, ChatContextUsage, ChatMessage } from "./ChatPrimitives";
|
|
3
7
|
import { ChatRoot } from "./ChatRoot";
|
|
@@ -7,15 +11,18 @@ export type { ChatActivityProps, ChatContextUsageProps, ChatMessageProps } from
|
|
|
7
11
|
export { formatChatTokens } from "./ChatPrimitives";
|
|
8
12
|
export type { ChatRootProps } from "./ChatRoot";
|
|
9
13
|
export type { ChatActivityItem, ChatMessageItem, ChatTimelineItem, ChatTimelineProps } from "./ChatTimeline";
|
|
10
|
-
export type { ChatAction, ChatActivityTone, ChatAttachment, ChatComposerState, ChatContextUsageData, ChatMessageStatus, ChatModelOption, ChatRole, ChatSubmitInput, ChatSubmitIntent, ChatUsage, } from "./types";
|
|
14
|
+
export type { ChatAction, ChatActivityTone, ChatAttachment, ChatMention, ChatComposerState, ChatContextUsageData, ChatMessageStatus, ChatModelOption, ChatRole, ChatSubmitInput, ChatSubmitIntent, ChatUsage, } from "./types";
|
|
11
15
|
/**
|
|
12
16
|
* Portable, controlled chat surface. Applications own storage, streaming,
|
|
13
17
|
* authorization, rich message rendering, and domain actions.
|
|
14
18
|
*/
|
|
15
19
|
export declare const Chat: typeof ChatRoot & {
|
|
20
|
+
Tasks: typeof ChatTasks;
|
|
16
21
|
Timeline: typeof ChatTimeline;
|
|
17
22
|
Message: typeof ChatMessage;
|
|
18
23
|
Activity: typeof ChatActivity;
|
|
19
24
|
Composer: typeof ChatComposer;
|
|
20
25
|
ContextUsage: typeof ChatContextUsage;
|
|
26
|
+
ContextPopup: typeof ChatContextPopup;
|
|
21
27
|
};
|
|
28
|
+
export { reconcileChatMentions } from "./composer-document";
|
|
@@ -9,6 +9,8 @@ type ChatActionBase = {
|
|
|
9
9
|
disabled?: boolean;
|
|
10
10
|
/** Toggle state for persistent message actions such as feedback. */
|
|
11
11
|
pressed?: boolean;
|
|
12
|
+
/** Semantic foreground for selected feedback actions, without a persistent background. */
|
|
13
|
+
pressedTone?: "success" | "danger";
|
|
12
14
|
};
|
|
13
15
|
/** Exactly one executable behavior for every chat action. */
|
|
14
16
|
export type ChatAction = ChatActionBase & ({
|
|
@@ -58,5 +60,12 @@ export type ChatSubmitInput = {
|
|
|
58
60
|
intent: ChatSubmitIntent;
|
|
59
61
|
text: string;
|
|
60
62
|
attachments: readonly ChatAttachment[];
|
|
63
|
+
mentions?: readonly ChatMention[];
|
|
64
|
+
};
|
|
65
|
+
/** Ranges use UTF-16 offsets into the untrimmed composer text. Payloads stay application-owned. */
|
|
66
|
+
export type ChatMention = {
|
|
67
|
+
start: number;
|
|
68
|
+
end: number;
|
|
69
|
+
attachment: ChatAttachment;
|
|
61
70
|
};
|
|
62
71
|
export {};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import type { ChartCursor } from "./chart-cursor";
|
|
2
|
+
import type { MapViewport } from "@k2b/stdlib";
|
|
1
3
|
import { charts } from "@k2b/stdlib";
|
|
2
4
|
import type { JSX } from "solid-js";
|
|
3
|
-
import { type
|
|
5
|
+
import { type ChartSelection, type ChartTooltipFormatter, type ChartDatumRef } from "./chart-inspection";
|
|
6
|
+
import { type StateTimelineChartOptions, type StateTimelineDomain } from "./chart-state-timeline";
|
|
4
7
|
/**
|
|
5
8
|
* Chart — minimal Solid wrapper around `stdlib.charts`.
|
|
6
9
|
*
|
|
@@ -11,31 +14,20 @@ import { type StateTimelineChartOptions } from "./chart-state-timeline";
|
|
|
11
14
|
* is a full SVG re-build, not a diff — fine for dashboard cadences
|
|
12
15
|
* (poll, websocket, store updates). Don't use this for 60fps streaming.
|
|
13
16
|
*
|
|
14
|
-
* **Sizing.**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* (`style={{ height: "14rem" }}`, an app class, a flex child, …).
|
|
22
|
-
* On SSR (no observer)
|
|
23
|
-
* the chart renders at stdlib's default size; the first client-side
|
|
24
|
-
* frame re-measures and re-renders.
|
|
25
|
-
*
|
|
26
|
-
* One documented exception: `kind: "stateTimeline"` derives its own
|
|
27
|
-
* initial height from the row count and legend via
|
|
28
|
-
* `stateTimelineHeight()`, because a timeline's height is a function of
|
|
29
|
-
* how many rows it has rather than of the layout around it. Every other
|
|
30
|
-
* kind starts at 280px until the observer reports the real box. Layout
|
|
31
|
-
* code that sizes charts uniformly must account for this.
|
|
17
|
+
* **Sizing.** The server and browser render the same logical viewBox. CSS
|
|
18
|
+
* fits Cartesian plots to the container and preserves text/marker sizes;
|
|
19
|
+
* maps fit the whole world and zoom uniformly across the full plot; pies, donuts and gauges retain
|
|
20
|
+
* their aspect ratio. No measurement
|
|
21
|
+
* or hydration redraw is needed. The caller sizes the wrapper, for example
|
|
22
|
+
* `style={{ height: "14rem" }}`. State timelines derive their default height
|
|
23
|
+
* from the row count and legend via `stateTimelineHeight()`.
|
|
32
24
|
*
|
|
33
25
|
* **Why so thin.** The props are a discriminated union over each
|
|
34
26
|
* stdlib chart function — `kind: "line"` brings in exactly the params
|
|
35
27
|
* `charts.line` expects, `kind: "bar"` brings in `charts.bar`'s, etc.
|
|
36
28
|
* Options stay aligned with stdlib without renaming. Shared interactive
|
|
37
29
|
* layers add bounded pan / zoom controls to maps and state timelines, plus
|
|
38
|
-
*
|
|
30
|
+
* renderer-owned inspection, tooltips and optional selection for all chart kinds.
|
|
39
31
|
* If stdlib gains a new option, it's automatically available at every
|
|
40
32
|
* callsite.
|
|
41
33
|
*
|
|
@@ -64,6 +56,7 @@ export type ChartLabels = Partial<{
|
|
|
64
56
|
interactiveMap: string;
|
|
65
57
|
interactiveTimeline: string;
|
|
66
58
|
interactiveLine: string;
|
|
59
|
+
interactiveChart: string;
|
|
67
60
|
zoomIn: string;
|
|
68
61
|
zoomOut: string;
|
|
69
62
|
resetMap: string;
|
|
@@ -72,7 +65,7 @@ export type ChartLabels = Partial<{
|
|
|
72
65
|
/**
|
|
73
66
|
* Per-kind props: `kind` discriminator + the exact options that
|
|
74
67
|
* `charts.<kind>` accepts, **minus** `width` / `height` (the wrapper
|
|
75
|
-
* owns those —
|
|
68
|
+
* owns those — CSS fits a stable coordinate space to the box). Solid's
|
|
76
69
|
* component model handles discriminated unions natively, so callsites
|
|
77
70
|
* get full type safety.
|
|
78
71
|
*/
|
|
@@ -82,9 +75,35 @@ export type ChartProps = {
|
|
|
82
75
|
class?: string;
|
|
83
76
|
style?: JSX.CSSProperties | string;
|
|
84
77
|
labels?: ChartLabels;
|
|
85
|
-
} & (K extends "stateTimeline" ? StateTimelineChartOptions : Omit<Parameters<(typeof charts)[K]>[0], "width" | "height"> & (K extends "map" | "line" ? {
|
|
86
78
|
interactive?: boolean;
|
|
87
|
-
|
|
79
|
+
onSelect?: (selection: ChartSelection) => void;
|
|
80
|
+
/** Controlled highlight; indices belong to this exact input snapshot. */
|
|
81
|
+
selected?: ChartDatumRef | null;
|
|
82
|
+
tooltip?: ChartTooltipFormatter;
|
|
83
|
+
/** Optional shared X cursor for line charts. */
|
|
84
|
+
cursor?: ChartCursor;
|
|
85
|
+
} & (K extends "map" ? {
|
|
86
|
+
/** Target when zooming in from the world view. Defaults to Europe (50, 10). */
|
|
87
|
+
zoomFocus?: Pick<MapViewport, "latitude" | "longitude">;
|
|
88
|
+
} : {}) & (K extends "line" ? {
|
|
89
|
+
maxGap?: number;
|
|
90
|
+
} : {}) & (K extends "stateTimeline" ? StateTimelineChartOptions : Omit<Parameters<(typeof charts)[K]>[0], "width" | "height" | "inspect">);
|
|
91
|
+
}[ChartKind];
|
|
92
|
+
/** Pure renderer options: component layout, events and inspection are configured elsewhere. */
|
|
93
|
+
export type ChartRenderOptions = {
|
|
94
|
+
[K in ChartKind]: Omit<Extract<ChartProps, {
|
|
95
|
+
kind: K;
|
|
96
|
+
}>, "class" | "style" | "labels" | "interactive" | "onSelect" | "selected" | "tooltip" | "cursor">;
|
|
88
97
|
}[ChartKind];
|
|
98
|
+
/** Keep the fixed 28-unit bar-gauge rows inside the shared SSR/browser coordinate space. */
|
|
99
|
+
export declare const chartRenderHeight: (props: ChartRenderOptions) => number;
|
|
100
|
+
/**
|
|
101
|
+
* Internal — strips wrapper-only keys from props and forwards the
|
|
102
|
+
* rest (plus logical size) to `charts[kind]`. The `any` is the
|
|
103
|
+
* price for dispatching one function call across 14 different option
|
|
104
|
+
* types; an explicit per-kind switch would type it but balloon the
|
|
105
|
+
* component for no runtime benefit.
|
|
106
|
+
*/
|
|
107
|
+
export declare const renderChartSvg: (props: ChartProps, width: number, height: number, mapViewport?: MapViewport, timelineViewport?: StateTimelineDomain) => string;
|
|
89
108
|
declare const Chart: (props: ChartProps) => JSX.Element;
|
|
90
109
|
export default Chart;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ChartCursor } from "./chart-cursor";
|
|
2
|
+
import { type JSX } from "solid-js";
|
|
3
|
+
import { type DataTableSort } from "./DataTable";
|
|
4
|
+
import { type ChartExplorerData, type ChartExplorerRow } from "./chart-explorer";
|
|
5
|
+
export type ChartExplorerColumn<T> = {
|
|
6
|
+
id: string;
|
|
7
|
+
label: string;
|
|
8
|
+
value: (row: T) => string;
|
|
9
|
+
/** Optional table cell presentation; value remains the plain text used for copy/details. */
|
|
10
|
+
render?: (row: T) => JSX.Element;
|
|
11
|
+
/** Explicit comparable value. Omit to leave the column unsortable. */
|
|
12
|
+
sortValue?: (row: T) => string | number | null;
|
|
13
|
+
align?: "left" | "center" | "right";
|
|
14
|
+
};
|
|
15
|
+
export type ChartExplorerProps<T extends ChartExplorerRow> = {
|
|
16
|
+
cursor?: ChartCursor;
|
|
17
|
+
title: string;
|
|
18
|
+
description?: JSX.Element;
|
|
19
|
+
data: ChartExplorerData<T>;
|
|
20
|
+
columns: readonly ChartExplorerColumn<T>[];
|
|
21
|
+
view?: "chart" | "table";
|
|
22
|
+
defaultView?: "chart" | "table";
|
|
23
|
+
onViewChange?: (view: "chart" | "table") => void;
|
|
24
|
+
sort?: DataTableSort | null;
|
|
25
|
+
defaultSort?: DataTableSort | null;
|
|
26
|
+
onSortChange?: (sort: DataTableSort | null) => void;
|
|
27
|
+
selectedKey?: string | null;
|
|
28
|
+
onSelectedKeyChange?: (key: string | null) => void;
|
|
29
|
+
/** false hides the complete local detail area for a shared selection panel. */
|
|
30
|
+
renderDetails?: false | ((row: T) => JSX.Element);
|
|
31
|
+
height?: string;
|
|
32
|
+
class?: string;
|
|
33
|
+
};
|
|
34
|
+
export declare function ChartExplorer<T extends ChartExplorerRow>(props: ChartExplorerProps<T>): JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ChartFilterControlsProps } from "./ChartFilterControls";
|
|
2
|
+
import type { ChartExplorerController, ChartExplorerCharts } from "./chart-explorer";
|
|
3
|
+
export type ChartExplorerControlsProps<C extends ChartExplorerCharts> = {
|
|
4
|
+
explorer: ChartExplorerController<C>;
|
|
5
|
+
title: string;
|
|
6
|
+
steps?: ChartFilterControlsProps["steps"];
|
|
7
|
+
series?: ChartFilterControlsProps["series"];
|
|
8
|
+
dimensionLabel?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function ChartExplorerControls<C extends ChartExplorerCharts>(props: ChartExplorerControlsProps<C>): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ChartExplorerRequest } from "./chart-explorer";
|
|
2
|
+
export type ChartFilterControlsProps = {
|
|
3
|
+
request: ChartExplorerRequest;
|
|
4
|
+
displayedRequest: ChartExplorerRequest;
|
|
5
|
+
steps?: readonly {
|
|
6
|
+
key: string;
|
|
7
|
+
label: string;
|
|
8
|
+
}[];
|
|
9
|
+
series?: readonly {
|
|
10
|
+
key: string;
|
|
11
|
+
label: string;
|
|
12
|
+
color: string;
|
|
13
|
+
}[];
|
|
14
|
+
dimensionLabel?: string;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
failed?: boolean;
|
|
17
|
+
onRequest: (request: ChartExplorerRequest) => void;
|
|
18
|
+
onRetry?: () => void;
|
|
19
|
+
};
|
|
20
|
+
/** Shared controls for a standalone explorer or an atomic group of charts. */
|
|
21
|
+
export declare function ChartFilterControls(props: ChartFilterControlsProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ChartCursor } from "./chart-cursor";
|
|
2
|
+
import { type JSX } from "solid-js";
|
|
3
|
+
import type { ChartSnapshot } from "./chart-snapshot";
|
|
4
|
+
/** Internal display for server-prepared geometry. Viewports are snapshot-owned. */
|
|
5
|
+
export declare function ChartSnapshotView(props: {
|
|
6
|
+
snapshot: ChartSnapshot;
|
|
7
|
+
cursor?: ChartCursor;
|
|
8
|
+
selectedKey: string | null;
|
|
9
|
+
onSelect: (key: string) => void;
|
|
10
|
+
style?: JSX.CSSProperties;
|
|
11
|
+
}): JSX.Element;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type JSX } from "solid-js";
|
|
2
|
+
import type { CollectionSelection } from "./collection-selection";
|
|
2
3
|
export type DataTableColumn<T> = {
|
|
3
4
|
id: string;
|
|
4
5
|
header: JSX.Element | ((ctx: {
|
|
@@ -58,10 +59,13 @@ export type DataTableProps<T> = {
|
|
|
58
59
|
*/
|
|
59
60
|
sortHref?: (next: DataTableSort) => string;
|
|
60
61
|
selectedRowId?: string | null;
|
|
62
|
+
/** Optional multi-selection shared with another collection view. Requires getRowId. */
|
|
63
|
+
selection?: CollectionSelection;
|
|
61
64
|
rowClass?: string | ((row: T) => string | undefined);
|
|
62
65
|
hoverRows?: boolean;
|
|
63
66
|
onRowClick?: (row: T) => void;
|
|
64
67
|
onRowDoubleClick?: (row: T) => void;
|
|
68
|
+
onRowContextMenu?: (row: T) => void;
|
|
65
69
|
renderCell?: DataTableRenderCell<T>;
|
|
66
70
|
renderHeader?: DataTableRenderHeader<T>;
|
|
67
71
|
footer?: DataTableFooter<T>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type FileTreeEntry } from "./FileTree";
|
|
2
2
|
import { type FileViewContent, type FileViewRenderer } from "./FileView";
|
|
3
3
|
export type FileSource = {
|
|
4
|
+
previewPreferencesKey?: string;
|
|
4
5
|
list(): Promise<FileTreeEntry[]>;
|
|
5
6
|
read(path: string): Promise<FileViewContent>;
|
|
6
7
|
write?(path: string, content: string, encoding?: "utf8" | "base64"): Promise<void>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import type { CollectionSelection } from "./collection-selection";
|
|
3
|
+
export type FileGridProps<T> = {
|
|
4
|
+
rows: readonly T[];
|
|
5
|
+
getRowId: (row: T) => string;
|
|
6
|
+
selection: CollectionSelection;
|
|
7
|
+
label: string;
|
|
8
|
+
size?: "sm" | "md" | "lg";
|
|
9
|
+
renderPreview: (row: T) => JSX.Element;
|
|
10
|
+
renderLabel: (row: T) => JSX.Element;
|
|
11
|
+
renderMeta?: (row: T) => JSX.Element;
|
|
12
|
+
renderActions?: (row: T) => JSX.Element;
|
|
13
|
+
onRowClick?: (row: T) => void;
|
|
14
|
+
onOpen: (row: T) => void;
|
|
15
|
+
onContextMenu?: (row: T) => void;
|
|
16
|
+
/** Extra attributes for one tile, for example drag-and-drop handlers or data attributes the host styles. */
|
|
17
|
+
itemProps?: (row: T) => JSX.HTMLAttributes<HTMLDivElement>;
|
|
18
|
+
class?: string;
|
|
19
|
+
};
|
|
20
|
+
/** File presentation only; the host owns data, menus, leases and permissions. */
|
|
21
|
+
export declare function FileGrid<T>(props: FileGridProps<T>): JSX.Element;
|
|
@@ -17,6 +17,14 @@ export type FileViewContent = {
|
|
|
17
17
|
mediaType: string;
|
|
18
18
|
};
|
|
19
19
|
export type FileViewProps = {
|
|
20
|
+
/** Plain previews inherit the surrounding surface without a frame or inset padding. */
|
|
21
|
+
variant?: "default" | "plain";
|
|
22
|
+
/** Read-only excerpt limit; omitted renders the complete preview. */
|
|
23
|
+
previewLines?: number;
|
|
24
|
+
onExpandPreview?: () => void;
|
|
25
|
+
headingScale?: "compact" | "normal" | "large";
|
|
26
|
+
/** Optional browser-local preference scope, owned by the host. */
|
|
27
|
+
previewPreferencesKey?: string;
|
|
20
28
|
file: FileViewFile;
|
|
21
29
|
load: () => Promise<FileViewContent>;
|
|
22
30
|
/** Refetch the current path when this host-owned revision changes. */
|
|
@@ -27,6 +35,10 @@ export type FileViewProps = {
|
|
|
27
35
|
save?: (content: string) => Promise<void>;
|
|
28
36
|
/** Authenticated inline URL used by browser-native image, PDF, audio, and video previews. */
|
|
29
37
|
previewHref?: string | null;
|
|
38
|
+
/** CORS mode for native image/audio/video previews. Omit to preserve browser defaults. */
|
|
39
|
+
crossOrigin?: "anonymous" | "use-credentials";
|
|
40
|
+
/** Native media failed to load; the host can renew a signed URL and offer retry. */
|
|
41
|
+
onPreviewError?: () => void;
|
|
30
42
|
downloadHref?: string | null;
|
|
31
43
|
/** App-specific renderers matched before the built-ins for this instance. */
|
|
32
44
|
renderers?: readonly FileViewRenderer[];
|
|
@@ -35,9 +47,17 @@ export type FileViewProps = {
|
|
|
35
47
|
class?: string;
|
|
36
48
|
};
|
|
37
49
|
export type FileViewRendererProps = {
|
|
50
|
+
/** Read-only excerpt limit; omitted renders the complete preview. */
|
|
51
|
+
previewLines?: number;
|
|
52
|
+
onExpandPreview?: () => void;
|
|
53
|
+
headingScale?: "compact" | "normal" | "large";
|
|
54
|
+
/** Optional browser-local preference scope, owned by the host. */
|
|
55
|
+
previewPreferencesKey?: string;
|
|
38
56
|
file: FileViewFile;
|
|
39
57
|
content: FileViewContent;
|
|
40
58
|
previewHref: string | null;
|
|
59
|
+
crossOrigin?: "anonymous" | "use-credentials";
|
|
60
|
+
onPreviewError?: () => void;
|
|
41
61
|
downloadHref: string | null;
|
|
42
62
|
/** Null when the file is read-only. */
|
|
43
63
|
editor: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type CommonProps = {
|
|
1
|
+
type CommonProps = MarkdownRenderOptions & {
|
|
2
2
|
/** Optional additional CSS classes */
|
|
3
3
|
class?: string;
|
|
4
4
|
/**
|
|
@@ -21,6 +21,11 @@ export type MarkdownViewProps = CommonProps & ({
|
|
|
21
21
|
});
|
|
22
22
|
export type MarkdownRenderOptions = {
|
|
23
23
|
inlineTokens?: readonly string[];
|
|
24
|
+
/** Whether to render images. False renders alt text without resource requests. Defaults to true. */
|
|
25
|
+
allowImages?: boolean;
|
|
26
|
+
/** Optional protocol allowlist, including trailing colons. Relative URLs resolve as HTTPS. */
|
|
27
|
+
linkProtocols?: readonly string[];
|
|
28
|
+
linkTarget?: "_blank";
|
|
24
29
|
};
|
|
25
30
|
export declare const renderSafeMarkdown: (markdown: string, options?: MarkdownRenderOptions) => string;
|
|
26
31
|
/**
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
1
2
|
export type PdfPreviewRequest = () => Promise<Response | Blob>;
|
|
2
3
|
export type PdfPreviewProps = {
|
|
3
4
|
request: PdfPreviewRequest;
|
|
5
|
+
autoLoad?: boolean;
|
|
4
6
|
disabled?: () => boolean;
|
|
5
7
|
title?: string;
|
|
6
8
|
buttonLabel?: string;
|
|
7
9
|
openButtonLabel?: string;
|
|
8
10
|
emptyText?: string;
|
|
9
11
|
class?: string;
|
|
12
|
+
children?: (parts: {
|
|
13
|
+
actions: JSX.Element;
|
|
14
|
+
content: JSX.Element;
|
|
15
|
+
}) => JSX.Element;
|
|
16
|
+
renderError?: (message: string) => JSX.Element;
|
|
10
17
|
};
|
|
11
|
-
export default function PdfPreview(props: PdfPreviewProps):
|
|
18
|
+
export default function PdfPreview(props: PdfPreviewProps): JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type ChartCursorState = {
|
|
2
|
+
source: symbol;
|
|
3
|
+
x: number;
|
|
4
|
+
} | null;
|
|
5
|
+
/** Share one numeric X value between line charts. Create one instance per group. */
|
|
6
|
+
export declare function createChartCursor(options?: {
|
|
7
|
+
formatX?: (x: number) => string;
|
|
8
|
+
}): {
|
|
9
|
+
formatX: ((x: number) => string) | undefined;
|
|
10
|
+
read: () => ChartCursorState;
|
|
11
|
+
subscribe(listener: (state: ChartCursorState) => void): () => void;
|
|
12
|
+
move(source: symbol, x: number): void;
|
|
13
|
+
clear(source: symbol): void;
|
|
14
|
+
};
|
|
15
|
+
export type ChartCursor = ReturnType<typeof createChartCursor>;
|