@k2b/ui 0.1.0-rc.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/LICENSE +661 -0
- package/README.md +343 -0
- package/dist/.build-complete +0 -0
- package/dist/browser/actions/Button.js +236 -0
- package/dist/browser/actions/Button.js.map +1 -0
- package/dist/browser/actions/ContextMenu.js +199 -0
- package/dist/browser/actions/ContextMenu.js.map +1 -0
- package/dist/browser/actions/CopyButton.js +97 -0
- package/dist/browser/actions/CopyButton.js.map +1 -0
- package/dist/browser/actions/Disclosure.js +83 -0
- package/dist/browser/actions/Disclosure.js.map +1 -0
- package/dist/browser/actions/Dropdown.js +669 -0
- package/dist/browser/actions/Dropdown.js.map +1 -0
- package/dist/browser/actions/FilterChip.js +149 -0
- package/dist/browser/actions/FilterChip.js.map +1 -0
- package/dist/browser/actions/RemoveButton.js +47 -0
- package/dist/browser/actions/RemoveButton.js.map +1 -0
- package/dist/browser/actions/SegmentedControl.js +138 -0
- package/dist/browser/actions/SegmentedControl.js.map +1 -0
- package/dist/browser/actions/SplitButton.js +76 -0
- package/dist/browser/actions/SplitButton.js.map +1 -0
- package/dist/browser/actions/SpotlightSearch.js +87 -0
- package/dist/browser/actions/SpotlightSearch.js.map +1 -0
- package/dist/browser/actions/Tabs.js +185 -0
- package/dist/browser/actions/Tabs.js.map +1 -0
- package/dist/browser/actions/Toolbar.js +87 -0
- package/dist/browser/actions/Toolbar.js.map +1 -0
- package/dist/browser/actions/index.js +13 -0
- package/dist/browser/actions/index.js.map +1 -0
- package/dist/browser/chat/ChatComposer.js +760 -0
- package/dist/browser/chat/ChatComposer.js.map +1 -0
- package/dist/browser/chat/ChatPrimitives.js +688 -0
- package/dist/browser/chat/ChatPrimitives.js.map +1 -0
- package/dist/browser/chat/ChatRoot.js +27 -0
- package/dist/browser/chat/ChatRoot.js.map +1 -0
- package/dist/browser/chat/ChatTimeline.js +404 -0
- package/dist/browser/chat/ChatTimeline.js.map +1 -0
- package/dist/browser/chat/chat-behavior.js +53 -0
- package/dist/browser/chat/chat-behavior.js.map +1 -0
- package/dist/browser/chat/index.js +17 -0
- package/dist/browser/chat/index.js.map +1 -0
- package/dist/browser/chat/types.js +2 -0
- package/dist/browser/chat/types.js.map +1 -0
- package/dist/browser/content/Calendar.js +2168 -0
- package/dist/browser/content/Calendar.js.map +1 -0
- package/dist/browser/content/Chart.js +680 -0
- package/dist/browser/content/Chart.js.map +1 -0
- package/dist/browser/content/CodeDisplay.js +104 -0
- package/dist/browser/content/CodeDisplay.js.map +1 -0
- package/dist/browser/content/DataTable.js +724 -0
- package/dist/browser/content/DataTable.js.map +1 -0
- package/dist/browser/content/Docs.js +227 -0
- package/dist/browser/content/Docs.js.map +1 -0
- package/dist/browser/content/FileBrowser.js +462 -0
- package/dist/browser/content/FileBrowser.js.map +1 -0
- package/dist/browser/content/FileTree.js +453 -0
- package/dist/browser/content/FileTree.js.map +1 -0
- package/dist/browser/content/FileView.js +842 -0
- package/dist/browser/content/FileView.js.map +1 -0
- package/dist/browser/content/Lightbox.js +285 -0
- package/dist/browser/content/Lightbox.js.map +1 -0
- package/dist/browser/content/LogEntriesTable.js +139 -0
- package/dist/browser/content/LogEntriesTable.js.map +1 -0
- package/dist/browser/content/MarkdownView.js +138 -0
- package/dist/browser/content/MarkdownView.js.map +1 -0
- package/dist/browser/content/Pagination.js +182 -0
- package/dist/browser/content/Pagination.js.map +1 -0
- package/dist/browser/content/PdfPreview.js +204 -0
- package/dist/browser/content/PdfPreview.js.map +1 -0
- package/dist/browser/content/RangePicker.js +83 -0
- package/dist/browser/content/RangePicker.js.map +1 -0
- package/dist/browser/content/StructuredDataPreview.js +194 -0
- package/dist/browser/content/StructuredDataPreview.js.map +1 -0
- package/dist/browser/content/calendar-event-layout.js +92 -0
- package/dist/browser/content/calendar-event-layout.js.map +1 -0
- package/dist/browser/content/calendar-pointer.js +114 -0
- package/dist/browser/content/calendar-pointer.js.map +1 -0
- package/dist/browser/content/chart-map-viewport.js +33 -0
- package/dist/browser/content/chart-map-viewport.js.map +1 -0
- package/dist/browser/content/chart-state-timeline.js +124 -0
- package/dist/browser/content/chart-state-timeline.js.map +1 -0
- package/dist/browser/content/code-highlight.js +144 -0
- package/dist/browser/content/code-highlight.js.map +1 -0
- package/dist/browser/content/file-tree.js +93 -0
- package/dist/browser/content/file-tree.js.map +1 -0
- package/dist/browser/content/file-view-preview.js +112 -0
- package/dist/browser/content/file-view-preview.js.map +1 -0
- package/dist/browser/content/index.js +16 -0
- package/dist/browser/content/index.js.map +1 -0
- package/dist/browser/feedback/InlineGuidance.js +46 -0
- package/dist/browser/feedback/InlineGuidance.js.map +1 -0
- package/dist/browser/feedback/Tooltip.js +189 -0
- package/dist/browser/feedback/Tooltip.js.map +1 -0
- package/dist/browser/feedback/dialog-core.js +207 -0
- package/dist/browser/feedback/dialog-core.js.map +1 -0
- package/dist/browser/feedback/index.js +6 -0
- package/dist/browser/feedback/index.js.map +1 -0
- package/dist/browser/feedback/prompts.js +991 -0
- package/dist/browser/feedback/prompts.js.map +1 -0
- package/dist/browser/feedback/toast.js +271 -0
- package/dist/browser/feedback/toast.js.map +1 -0
- package/dist/browser/feedback/tooltip-position.js +25 -0
- package/dist/browser/feedback/tooltip-position.js.map +1 -0
- package/dist/browser/index.js +11 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/inputs/AutocompleteEditor.js +610 -0
- package/dist/browser/inputs/AutocompleteEditor.js.map +1 -0
- package/dist/browser/inputs/AutocompleteSelect.js +632 -0
- package/dist/browser/inputs/AutocompleteSelect.js.map +1 -0
- package/dist/browser/inputs/Checkbox.js +137 -0
- package/dist/browser/inputs/Checkbox.js.map +1 -0
- package/dist/browser/inputs/CheckboxCard.js +130 -0
- package/dist/browser/inputs/CheckboxCard.js.map +1 -0
- package/dist/browser/inputs/ChoiceGroups.js +174 -0
- package/dist/browser/inputs/ChoiceGroups.js.map +1 -0
- package/dist/browser/inputs/ChoiceInputs.js +400 -0
- package/dist/browser/inputs/ChoiceInputs.js.map +1 -0
- package/dist/browser/inputs/Combobox.js +274 -0
- package/dist/browser/inputs/Combobox.js.map +1 -0
- package/dist/browser/inputs/DatePicker.js +923 -0
- package/dist/browser/inputs/DatePicker.js.map +1 -0
- package/dist/browser/inputs/FileInputs.js +736 -0
- package/dist/browser/inputs/FileInputs.js.map +1 -0
- package/dist/browser/inputs/MultiSelectInput.js +565 -0
- package/dist/browser/inputs/MultiSelectInput.js.map +1 -0
- package/dist/browser/inputs/NumberInput.js +288 -0
- package/dist/browser/inputs/NumberInput.js.map +1 -0
- package/dist/browser/inputs/Select.js +507 -0
- package/dist/browser/inputs/Select.js.map +1 -0
- package/dist/browser/inputs/SelectChip.js +151 -0
- package/dist/browser/inputs/SelectChip.js.map +1 -0
- package/dist/browser/inputs/SpecialInputs.js +117 -0
- package/dist/browser/inputs/SpecialInputs.js.map +1 -0
- package/dist/browser/inputs/Switch.js +117 -0
- package/dist/browser/inputs/Switch.js.map +1 -0
- package/dist/browser/inputs/TagEditor.js +358 -0
- package/dist/browser/inputs/TagEditor.js.map +1 -0
- package/dist/browser/inputs/TagsInput.js +195 -0
- package/dist/browser/inputs/TagsInput.js.map +1 -0
- package/dist/browser/inputs/TemplateEditor.js +190 -0
- package/dist/browser/inputs/TemplateEditor.js.map +1 -0
- package/dist/browser/inputs/TextInput.js +318 -0
- package/dist/browser/inputs/TextInput.js.map +1 -0
- package/dist/browser/inputs/choice.js +188 -0
- package/dist/browser/inputs/choice.js.map +1 -0
- package/dist/browser/inputs/completion/behaviors.js +108 -0
- package/dist/browser/inputs/completion/behaviors.js.map +1 -0
- package/dist/browser/inputs/completion/engine.js +103 -0
- package/dist/browser/inputs/completion/engine.js.map +1 -0
- package/dist/browser/inputs/completion/index.js +4 -0
- package/dist/browser/inputs/completion/index.js.map +1 -0
- package/dist/browser/inputs/completion/overlay.js +25 -0
- package/dist/browser/inputs/completion/overlay.js.map +1 -0
- package/dist/browser/inputs/date-picker.js +123 -0
- package/dist/browser/inputs/date-picker.js.map +1 -0
- package/dist/browser/inputs/editor-dom.js +26 -0
- package/dist/browser/inputs/editor-dom.js.map +1 -0
- package/dist/browser/inputs/field-contract.js +9 -0
- package/dist/browser/inputs/field-contract.js.map +1 -0
- package/dist/browser/inputs/icon-options.js +46 -0
- package/dist/browser/inputs/icon-options.js.map +1 -0
- package/dist/browser/inputs/image-crop.js +145 -0
- package/dist/browser/inputs/image-crop.js.map +1 -0
- package/dist/browser/inputs/index.js +23 -0
- package/dist/browser/inputs/index.js.map +1 -0
- package/dist/browser/inputs/markdown/MarkdownEditor.js +725 -0
- package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -0
- package/dist/browser/inputs/markdown/Toolbar.js +172 -0
- package/dist/browser/inputs/markdown/Toolbar.js.map +1 -0
- package/dist/browser/inputs/markdown/actions.js +140 -0
- package/dist/browser/inputs/markdown/actions.js.map +1 -0
- package/dist/browser/inputs/markdown/active-formats.js +36 -0
- package/dist/browser/inputs/markdown/active-formats.js.map +1 -0
- package/dist/browser/inputs/markdown/behaviors.js +63 -0
- package/dist/browser/inputs/markdown/behaviors.js.map +1 -0
- package/dist/browser/inputs/markdown/code-zone.js +8 -0
- package/dist/browser/inputs/markdown/code-zone.js.map +1 -0
- package/dist/browser/internal/color.js +18 -0
- package/dist/browser/internal/color.js.map +1 -0
- package/dist/browser/internal/field.js +158 -0
- package/dist/browser/internal/field.js.map +1 -0
- package/dist/browser/internal/portal.js +17 -0
- package/dist/browser/internal/portal.js.map +1 -0
- package/dist/browser/intl/Format.js +273 -0
- package/dist/browser/intl/Format.js.map +1 -0
- package/dist/browser/intl/index.js +3 -0
- package/dist/browser/intl/index.js.map +1 -0
- package/dist/browser/intl/locale.js +63 -0
- package/dist/browser/intl/locale.js.map +1 -0
- package/dist/browser/intl/messages.js +753 -0
- package/dist/browser/intl/messages.js.map +1 -0
- package/dist/browser/layout/AppOverview.js +151 -0
- package/dist/browser/layout/AppOverview.js.map +1 -0
- package/dist/browser/layout/AppWorkspace.js +1502 -0
- package/dist/browser/layout/AppWorkspace.js.map +1 -0
- package/dist/browser/layout/DataPanel.js +122 -0
- package/dist/browser/layout/DataPanel.js.map +1 -0
- package/dist/browser/layout/DetailPanel.js +484 -0
- package/dist/browser/layout/DetailPanel.js.map +1 -0
- package/dist/browser/layout/Discussion.js +511 -0
- package/dist/browser/layout/Discussion.js.map +1 -0
- package/dist/browser/layout/FloatingWindow.js +332 -0
- package/dist/browser/layout/FloatingWindow.js.map +1 -0
- package/dist/browser/layout/PanelDialog.js +236 -0
- package/dist/browser/layout/PanelDialog.js.map +1 -0
- package/dist/browser/layout/PanelHeader.js +91 -0
- package/dist/browser/layout/PanelHeader.js.map +1 -0
- package/dist/browser/layout/Panes.js +978 -0
- package/dist/browser/layout/Panes.js.map +1 -0
- package/dist/browser/layout/ScrollArea.js +29 -0
- package/dist/browser/layout/ScrollArea.js.map +1 -0
- package/dist/browser/layout/Settings.js +381 -0
- package/dist/browser/layout/Settings.js.map +1 -0
- package/dist/browser/layout/SettingsCollection.js +212 -0
- package/dist/browser/layout/SettingsCollection.js.map +1 -0
- package/dist/browser/layout/SettingsModal.js +281 -0
- package/dist/browser/layout/SettingsModal.js.map +1 -0
- package/dist/browser/layout/app-workspace-controller.js +419 -0
- package/dist/browser/layout/app-workspace-controller.js.map +1 -0
- package/dist/browser/layout/app-workspace-state.js +125 -0
- package/dist/browser/layout/app-workspace-state.js.map +1 -0
- package/dist/browser/layout/floating-window-geometry.js +15 -0
- package/dist/browser/layout/floating-window-geometry.js.map +1 -0
- package/dist/browser/layout/index.js +17 -0
- package/dist/browser/layout/index.js.map +1 -0
- package/dist/browser/layout/panes-layout.js +436 -0
- package/dist/browser/layout/panes-layout.js.map +1 -0
- package/dist/browser/layout/stable-id.js +17 -0
- package/dist/browser/layout/stable-id.js.map +1 -0
- package/dist/browser/semantics.js +2 -0
- package/dist/browser/semantics.js.map +1 -0
- package/dist/browser/surfaces/Avatar.js +97 -0
- package/dist/browser/surfaces/Avatar.js.map +1 -0
- package/dist/browser/surfaces/DescriptionList.js +66 -0
- package/dist/browser/surfaces/DescriptionList.js.map +1 -0
- package/dist/browser/surfaces/LinkCard.js +40 -0
- package/dist/browser/surfaces/LinkCard.js.map +1 -0
- package/dist/browser/surfaces/NotFoundState.js +85 -0
- package/dist/browser/surfaces/NotFoundState.js.map +1 -0
- package/dist/browser/surfaces/NoticeCard.js +145 -0
- package/dist/browser/surfaces/NoticeCard.js.map +1 -0
- package/dist/browser/surfaces/Paper.js +33 -0
- package/dist/browser/surfaces/Paper.js.map +1 -0
- package/dist/browser/surfaces/Placeholder.js +90 -0
- package/dist/browser/surfaces/Placeholder.js.map +1 -0
- package/dist/browser/surfaces/ProgressBar.js +58 -0
- package/dist/browser/surfaces/ProgressBar.js.map +1 -0
- package/dist/browser/surfaces/StatCell.js +172 -0
- package/dist/browser/surfaces/StatCell.js.map +1 -0
- package/dist/browser/surfaces/StatGrid.js +80 -0
- package/dist/browser/surfaces/StatGrid.js.map +1 -0
- package/dist/browser/surfaces/StatusBadge.js +70 -0
- package/dist/browser/surfaces/StatusBadge.js.map +1 -0
- package/dist/browser/surfaces/Tag.js +94 -0
- package/dist/browser/surfaces/Tag.js.map +1 -0
- package/dist/browser/surfaces/index.js +13 -0
- package/dist/browser/surfaces/index.js.map +1 -0
- package/dist/browser/widgets/Widget.js +89 -0
- package/dist/browser/widgets/Widget.js.map +1 -0
- package/dist/browser/widgets/WidgetHero.js +47 -0
- package/dist/browser/widgets/WidgetHero.js.map +1 -0
- package/dist/browser/widgets/WidgetList.js +125 -0
- package/dist/browser/widgets/WidgetList.js.map +1 -0
- package/dist/browser/widgets/WidgetPills.js +78 -0
- package/dist/browser/widgets/WidgetPills.js.map +1 -0
- package/dist/browser/widgets/WidgetStat.js +114 -0
- package/dist/browser/widgets/WidgetStat.js.map +1 -0
- package/dist/browser/widgets/WidgetStatus.js +54 -0
- package/dist/browser/widgets/WidgetStatus.js.map +1 -0
- package/dist/browser/widgets/index.js +7 -0
- package/dist/browser/widgets/index.js.map +1 -0
- package/dist/global.css +3 -0
- package/dist/licenses/ibm-plex-mono.txt +93 -0
- package/dist/licenses/ibm-plex-sans.txt +93 -0
- package/dist/licenses/tabler-icons.txt +21 -0
- package/dist/plex.css +1 -0
- package/dist/ssr/actions/Button.js +203 -0
- package/dist/ssr/actions/Button.js.map +1 -0
- package/dist/ssr/actions/ContextMenu.js +128 -0
- package/dist/ssr/actions/ContextMenu.js.map +1 -0
- package/dist/ssr/actions/CopyButton.js +79 -0
- package/dist/ssr/actions/CopyButton.js.map +1 -0
- package/dist/ssr/actions/Disclosure.js +26 -0
- package/dist/ssr/actions/Disclosure.js.map +1 -0
- package/dist/ssr/actions/Dropdown.js +443 -0
- package/dist/ssr/actions/Dropdown.js.map +1 -0
- package/dist/ssr/actions/FilterChip.js +132 -0
- package/dist/ssr/actions/FilterChip.js.map +1 -0
- package/dist/ssr/actions/RemoveButton.js +45 -0
- package/dist/ssr/actions/RemoveButton.js.map +1 -0
- package/dist/ssr/actions/SegmentedControl.js +57 -0
- package/dist/ssr/actions/SegmentedControl.js.map +1 -0
- package/dist/ssr/actions/SplitButton.js +74 -0
- package/dist/ssr/actions/SplitButton.js.map +1 -0
- package/dist/ssr/actions/SpotlightSearch.js +38 -0
- package/dist/ssr/actions/SpotlightSearch.js.map +1 -0
- package/dist/ssr/actions/Tabs.js +91 -0
- package/dist/ssr/actions/Tabs.js.map +1 -0
- package/dist/ssr/actions/Toolbar.js +33 -0
- package/dist/ssr/actions/Toolbar.js.map +1 -0
- package/dist/ssr/actions/index.js +13 -0
- package/dist/ssr/actions/index.js.map +1 -0
- package/dist/ssr/chat/ChatComposer.js +392 -0
- package/dist/ssr/chat/ChatComposer.js.map +1 -0
- package/dist/ssr/chat/ChatPrimitives.js +377 -0
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -0
- package/dist/ssr/chat/ChatRoot.js +10 -0
- package/dist/ssr/chat/ChatRoot.js.map +1 -0
- package/dist/ssr/chat/ChatTimeline.js +301 -0
- package/dist/ssr/chat/ChatTimeline.js.map +1 -0
- package/dist/ssr/chat/chat-behavior.js +53 -0
- package/dist/ssr/chat/chat-behavior.js.map +1 -0
- package/dist/ssr/chat/index.js +17 -0
- package/dist/ssr/chat/index.js.map +1 -0
- package/dist/ssr/chat/types.js +2 -0
- package/dist/ssr/chat/types.js.map +1 -0
- package/dist/ssr/content/Calendar.js +1542 -0
- package/dist/ssr/content/Calendar.js.map +1 -0
- package/dist/ssr/content/Chart.js +552 -0
- package/dist/ssr/content/Chart.js.map +1 -0
- package/dist/ssr/content/CodeDisplay.js +55 -0
- package/dist/ssr/content/CodeDisplay.js.map +1 -0
- package/dist/ssr/content/DataTable.js +470 -0
- package/dist/ssr/content/DataTable.js.map +1 -0
- package/dist/ssr/content/Docs.js +108 -0
- package/dist/ssr/content/Docs.js.map +1 -0
- package/dist/ssr/content/FileBrowser.js +422 -0
- package/dist/ssr/content/FileBrowser.js.map +1 -0
- package/dist/ssr/content/FileTree.js +299 -0
- package/dist/ssr/content/FileTree.js.map +1 -0
- package/dist/ssr/content/FileView.js +612 -0
- package/dist/ssr/content/FileView.js.map +1 -0
- package/dist/ssr/content/Lightbox.js +164 -0
- package/dist/ssr/content/Lightbox.js.map +1 -0
- package/dist/ssr/content/LogEntriesTable.js +106 -0
- package/dist/ssr/content/LogEntriesTable.js.map +1 -0
- package/dist/ssr/content/MarkdownView.js +119 -0
- package/dist/ssr/content/MarkdownView.js.map +1 -0
- package/dist/ssr/content/Pagination.js +141 -0
- package/dist/ssr/content/Pagination.js.map +1 -0
- package/dist/ssr/content/PdfPreview.js +126 -0
- package/dist/ssr/content/PdfPreview.js.map +1 -0
- package/dist/ssr/content/RangePicker.js +35 -0
- package/dist/ssr/content/RangePicker.js.map +1 -0
- package/dist/ssr/content/StructuredDataPreview.js +127 -0
- package/dist/ssr/content/StructuredDataPreview.js.map +1 -0
- package/dist/ssr/content/calendar-event-layout.js +92 -0
- package/dist/ssr/content/calendar-event-layout.js.map +1 -0
- package/dist/ssr/content/calendar-pointer.js +114 -0
- package/dist/ssr/content/calendar-pointer.js.map +1 -0
- package/dist/ssr/content/chart-map-viewport.js +33 -0
- package/dist/ssr/content/chart-map-viewport.js.map +1 -0
- package/dist/ssr/content/chart-state-timeline.js +124 -0
- package/dist/ssr/content/chart-state-timeline.js.map +1 -0
- package/dist/ssr/content/code-highlight.js +144 -0
- package/dist/ssr/content/code-highlight.js.map +1 -0
- package/dist/ssr/content/file-tree.js +93 -0
- package/dist/ssr/content/file-tree.js.map +1 -0
- package/dist/ssr/content/file-view-preview.js +112 -0
- package/dist/ssr/content/file-view-preview.js.map +1 -0
- package/dist/ssr/content/index.js +16 -0
- package/dist/ssr/content/index.js.map +1 -0
- package/dist/ssr/feedback/InlineGuidance.js +26 -0
- package/dist/ssr/feedback/InlineGuidance.js.map +1 -0
- package/dist/ssr/feedback/Tooltip.js +156 -0
- package/dist/ssr/feedback/Tooltip.js.map +1 -0
- package/dist/ssr/feedback/dialog-core.js +207 -0
- package/dist/ssr/feedback/dialog-core.js.map +1 -0
- package/dist/ssr/feedback/index.js +6 -0
- package/dist/ssr/feedback/index.js.map +1 -0
- package/dist/ssr/feedback/prompts.js +703 -0
- package/dist/ssr/feedback/prompts.js.map +1 -0
- package/dist/ssr/feedback/toast.js +271 -0
- package/dist/ssr/feedback/toast.js.map +1 -0
- package/dist/ssr/feedback/tooltip-position.js +25 -0
- package/dist/ssr/feedback/tooltip-position.js.map +1 -0
- package/dist/ssr/index.js +11 -0
- package/dist/ssr/index.js.map +1 -0
- package/dist/ssr/inputs/AutocompleteEditor.js +463 -0
- package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -0
- package/dist/ssr/inputs/AutocompleteSelect.js +420 -0
- package/dist/ssr/inputs/AutocompleteSelect.js.map +1 -0
- package/dist/ssr/inputs/Checkbox.js +75 -0
- package/dist/ssr/inputs/Checkbox.js.map +1 -0
- package/dist/ssr/inputs/CheckboxCard.js +69 -0
- package/dist/ssr/inputs/CheckboxCard.js.map +1 -0
- package/dist/ssr/inputs/ChoiceGroups.js +101 -0
- package/dist/ssr/inputs/ChoiceGroups.js.map +1 -0
- package/dist/ssr/inputs/ChoiceInputs.js +250 -0
- package/dist/ssr/inputs/ChoiceInputs.js.map +1 -0
- package/dist/ssr/inputs/Combobox.js +177 -0
- package/dist/ssr/inputs/Combobox.js.map +1 -0
- package/dist/ssr/inputs/DatePicker.js +629 -0
- package/dist/ssr/inputs/DatePicker.js.map +1 -0
- package/dist/ssr/inputs/FileInputs.js +543 -0
- package/dist/ssr/inputs/FileInputs.js.map +1 -0
- package/dist/ssr/inputs/MultiSelectInput.js +347 -0
- package/dist/ssr/inputs/MultiSelectInput.js.map +1 -0
- package/dist/ssr/inputs/NumberInput.js +177 -0
- package/dist/ssr/inputs/NumberInput.js.map +1 -0
- package/dist/ssr/inputs/Select.js +308 -0
- package/dist/ssr/inputs/Select.js.map +1 -0
- package/dist/ssr/inputs/SelectChip.js +129 -0
- package/dist/ssr/inputs/SelectChip.js.map +1 -0
- package/dist/ssr/inputs/SpecialInputs.js +116 -0
- package/dist/ssr/inputs/SpecialInputs.js.map +1 -0
- package/dist/ssr/inputs/Switch.js +62 -0
- package/dist/ssr/inputs/Switch.js.map +1 -0
- package/dist/ssr/inputs/TagEditor.js +280 -0
- package/dist/ssr/inputs/TagEditor.js.map +1 -0
- package/dist/ssr/inputs/TagsInput.js +122 -0
- package/dist/ssr/inputs/TagsInput.js.map +1 -0
- package/dist/ssr/inputs/TemplateEditor.js +164 -0
- package/dist/ssr/inputs/TemplateEditor.js.map +1 -0
- package/dist/ssr/inputs/TextInput.js +211 -0
- package/dist/ssr/inputs/TextInput.js.map +1 -0
- package/dist/ssr/inputs/choice.js +188 -0
- package/dist/ssr/inputs/choice.js.map +1 -0
- package/dist/ssr/inputs/completion/behaviors.js +108 -0
- package/dist/ssr/inputs/completion/behaviors.js.map +1 -0
- package/dist/ssr/inputs/completion/engine.js +103 -0
- package/dist/ssr/inputs/completion/engine.js.map +1 -0
- package/dist/ssr/inputs/completion/index.js +4 -0
- package/dist/ssr/inputs/completion/index.js.map +1 -0
- package/dist/ssr/inputs/completion/overlay.js +25 -0
- package/dist/ssr/inputs/completion/overlay.js.map +1 -0
- package/dist/ssr/inputs/date-picker.js +123 -0
- package/dist/ssr/inputs/date-picker.js.map +1 -0
- package/dist/ssr/inputs/editor-dom.js +26 -0
- package/dist/ssr/inputs/editor-dom.js.map +1 -0
- package/dist/ssr/inputs/field-contract.js +9 -0
- package/dist/ssr/inputs/field-contract.js.map +1 -0
- package/dist/ssr/inputs/icon-options.js +46 -0
- package/dist/ssr/inputs/icon-options.js.map +1 -0
- package/dist/ssr/inputs/image-crop.js +145 -0
- package/dist/ssr/inputs/image-crop.js.map +1 -0
- package/dist/ssr/inputs/index.js +23 -0
- package/dist/ssr/inputs/index.js.map +1 -0
- package/dist/ssr/inputs/markdown/MarkdownEditor.js +516 -0
- package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -0
- package/dist/ssr/inputs/markdown/Toolbar.js +115 -0
- package/dist/ssr/inputs/markdown/Toolbar.js.map +1 -0
- package/dist/ssr/inputs/markdown/actions.js +140 -0
- package/dist/ssr/inputs/markdown/actions.js.map +1 -0
- package/dist/ssr/inputs/markdown/active-formats.js +36 -0
- package/dist/ssr/inputs/markdown/active-formats.js.map +1 -0
- package/dist/ssr/inputs/markdown/behaviors.js +63 -0
- package/dist/ssr/inputs/markdown/behaviors.js.map +1 -0
- package/dist/ssr/inputs/markdown/code-zone.js +8 -0
- package/dist/ssr/inputs/markdown/code-zone.js.map +1 -0
- package/dist/ssr/internal/color.js +18 -0
- package/dist/ssr/internal/color.js.map +1 -0
- package/dist/ssr/internal/field.js +90 -0
- package/dist/ssr/internal/field.js.map +1 -0
- package/dist/ssr/internal/portal.js +17 -0
- package/dist/ssr/internal/portal.js.map +1 -0
- package/dist/ssr/intl/Format.js +192 -0
- package/dist/ssr/intl/Format.js.map +1 -0
- package/dist/ssr/intl/index.js +3 -0
- package/dist/ssr/intl/index.js.map +1 -0
- package/dist/ssr/intl/locale.js +63 -0
- package/dist/ssr/intl/locale.js.map +1 -0
- package/dist/ssr/intl/messages.js +753 -0
- package/dist/ssr/intl/messages.js.map +1 -0
- package/dist/ssr/layout/AppOverview.js +85 -0
- package/dist/ssr/layout/AppOverview.js.map +1 -0
- package/dist/ssr/layout/AppWorkspace.js +976 -0
- package/dist/ssr/layout/AppWorkspace.js.map +1 -0
- package/dist/ssr/layout/DataPanel.js +101 -0
- package/dist/ssr/layout/DataPanel.js.map +1 -0
- package/dist/ssr/layout/DetailPanel.js +284 -0
- package/dist/ssr/layout/DetailPanel.js.map +1 -0
- package/dist/ssr/layout/Discussion.js +319 -0
- package/dist/ssr/layout/Discussion.js.map +1 -0
- package/dist/ssr/layout/FloatingWindow.js +259 -0
- package/dist/ssr/layout/FloatingWindow.js.map +1 -0
- package/dist/ssr/layout/PanelDialog.js +136 -0
- package/dist/ssr/layout/PanelDialog.js.map +1 -0
- package/dist/ssr/layout/PanelHeader.js +45 -0
- package/dist/ssr/layout/PanelHeader.js.map +1 -0
- package/dist/ssr/layout/Panes.js +678 -0
- package/dist/ssr/layout/Panes.js.map +1 -0
- package/dist/ssr/layout/ScrollArea.js +18 -0
- package/dist/ssr/layout/ScrollArea.js.map +1 -0
- package/dist/ssr/layout/Settings.js +219 -0
- package/dist/ssr/layout/Settings.js.map +1 -0
- package/dist/ssr/layout/SettingsCollection.js +150 -0
- package/dist/ssr/layout/SettingsCollection.js.map +1 -0
- package/dist/ssr/layout/SettingsModal.js +156 -0
- package/dist/ssr/layout/SettingsModal.js.map +1 -0
- package/dist/ssr/layout/app-workspace-controller.js +419 -0
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -0
- package/dist/ssr/layout/app-workspace-state.js +125 -0
- package/dist/ssr/layout/app-workspace-state.js.map +1 -0
- package/dist/ssr/layout/floating-window-geometry.js +15 -0
- package/dist/ssr/layout/floating-window-geometry.js.map +1 -0
- package/dist/ssr/layout/index.js +17 -0
- package/dist/ssr/layout/index.js.map +1 -0
- package/dist/ssr/layout/panes-layout.js +436 -0
- package/dist/ssr/layout/panes-layout.js.map +1 -0
- package/dist/ssr/layout/stable-id.js +17 -0
- package/dist/ssr/layout/stable-id.js.map +1 -0
- package/dist/ssr/semantics.js +2 -0
- package/dist/ssr/semantics.js.map +1 -0
- package/dist/ssr/surfaces/Avatar.js +43 -0
- package/dist/ssr/surfaces/Avatar.js.map +1 -0
- package/dist/ssr/surfaces/DescriptionList.js +25 -0
- package/dist/ssr/surfaces/DescriptionList.js.map +1 -0
- package/dist/ssr/surfaces/LinkCard.js +25 -0
- package/dist/ssr/surfaces/LinkCard.js.map +1 -0
- package/dist/ssr/surfaces/NotFoundState.js +38 -0
- package/dist/ssr/surfaces/NotFoundState.js.map +1 -0
- package/dist/ssr/surfaces/NoticeCard.js +83 -0
- package/dist/ssr/surfaces/NoticeCard.js.map +1 -0
- package/dist/ssr/surfaces/Paper.js +32 -0
- package/dist/ssr/surfaces/Paper.js.map +1 -0
- package/dist/ssr/surfaces/Placeholder.js +76 -0
- package/dist/ssr/surfaces/Placeholder.js.map +1 -0
- package/dist/ssr/surfaces/ProgressBar.js +13 -0
- package/dist/ssr/surfaces/ProgressBar.js.map +1 -0
- package/dist/ssr/surfaces/StatCell.js +80 -0
- package/dist/ssr/surfaces/StatCell.js.map +1 -0
- package/dist/ssr/surfaces/StatGrid.js +62 -0
- package/dist/ssr/surfaces/StatGrid.js.map +1 -0
- package/dist/ssr/surfaces/StatusBadge.js +38 -0
- package/dist/ssr/surfaces/StatusBadge.js.map +1 -0
- package/dist/ssr/surfaces/Tag.js +32 -0
- package/dist/ssr/surfaces/Tag.js.map +1 -0
- package/dist/ssr/surfaces/index.js +13 -0
- package/dist/ssr/surfaces/index.js.map +1 -0
- package/dist/ssr/widgets/Widget.js +54 -0
- package/dist/ssr/widgets/Widget.js.map +1 -0
- package/dist/ssr/widgets/WidgetHero.js +23 -0
- package/dist/ssr/widgets/WidgetHero.js.map +1 -0
- package/dist/ssr/widgets/WidgetList.js +73 -0
- package/dist/ssr/widgets/WidgetList.js.map +1 -0
- package/dist/ssr/widgets/WidgetPills.js +40 -0
- package/dist/ssr/widgets/WidgetPills.js.map +1 -0
- package/dist/ssr/widgets/WidgetStat.js +45 -0
- package/dist/ssr/widgets/WidgetStat.js.map +1 -0
- package/dist/ssr/widgets/WidgetStatus.js +23 -0
- package/dist/ssr/widgets/WidgetStatus.js.map +1 -0
- package/dist/ssr/widgets/index.js +7 -0
- package/dist/ssr/widgets/index.js.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/tabler-icons-q30jt7jk.woff2 +0 -0
- package/dist/tabler.css +4 -0
- package/package.json +77 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["charts","createEffect","createMemo","createSignal","createUniqueId","onCleanup","onMount","Show","positionTooltipSurface","useUiMessages","DEFAULT_MAP_VIEWPORT","normalizeMapViewport","panMapViewport","zoomMapViewport","panStateTimelineViewport","renderStateTimelineSvg","stateTimelineDomain","stateTimelineHeight","zoomStateTimelineViewport","renderSvg","props","width","height","mapViewport","timelineViewport","kind","class","_class","style","_style","labels","_labels","interactive","_interactive","opts","viewport","isEmpty","series","length","every","s","data","groups","rows","row","intervals","Chart","messages","containerRef","chartTooltipRef","lineAnchorRef","chartTooltipTriggerRef","initialHeight","legend","size","setSize","initialMapViewport","setMapViewport","initialTimelineViewport","domain","setTimelineViewport","linePointIndex","setLinePointIndex","lineInspectionActive","setLineInspectionActive","dragging","setDragging","chartTooltipId","timelineViewportLocallyChanged","drag","timelineDrag","pointerFrame","pendingPointer","interactiveMap","interactiveTimeline","interactiveLine","draggable","timelineFullDomain","updateTimelineViewport","update","mapDimensions","viewportElement","querySelector","rect","getBoundingClientRect","zoom","delta","current","reset","handlePointerDown","event","button","target","closest","closeChartTooltip","pointerId","x","clientX","Math","max","currentTarget","setPointerCapture","dimensions","y","clientY","flushPointerMove","undefined","cancelAnimationFrame","sample","showLineTooltip","activeTimelineDrag","handlePointerMove","requestAnimationFrame","stopDragging","hasPointerCapture","releasePointerCapture","handleWheel","ctrlKey","metaKey","preventDefault","deltaY","anchor","left","shiftKey","handleKeyDown","values","lineXValues","key","next","min","showLinePoint","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","removeAttribute","matches","hidePopover","showTimelineTooltip","trigger","content","dataset","chartTooltip","setAttribute","textContent","showPopover","lineInspection","Set","map","entry","points","Map","point","Number","isFinite","add","has","set","label","sort","right","linePlotBounds","padding","rightInset","yAxis","index","pointerY","inspection","pointIndex","get","filter","xFormat","xAxis","format","String","yFormat","join","at","bounds","ratio","top","localX","low","high","middle","floor","previous","abs","round","ro","ResizeObserver","entries","contentRect","prev","w","h","observe","window","addEventListener","disconnect","removeEventListener","chartStyle","_$createComponent","when","fallback","_$ssr","_tmpl$5","_$escape","_$ssrStyle","empty","noData","children","_tmpl$4","_$ssrAttribute","interactiveLineChart","_tmpl$","_tmpl$2","_tmpl$3","zoomIn","zoomOut","resetMap","resetMapView","resetTimeline","resetTimelineView"],"sources":["content/Chart.tsx"],"sourcesContent":["import type { MapViewport } from \"@k2b/stdlib\";\nimport { charts } from \"@k2b/stdlib\";\nimport type { JSX } from \"solid-js\";\nimport { createEffect, createMemo, createSignal, createUniqueId, onCleanup, onMount, Show } from \"solid-js\";\nimport { positionTooltipSurface } from \"../feedback/tooltip-position\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { DEFAULT_MAP_VIEWPORT, normalizeMapViewport, panMapViewport, zoomMapViewport } from \"./chart-map-viewport\";\nimport {\n panStateTimelineViewport,\n renderStateTimelineSvg,\n type StateTimelineChartOptions,\n type StateTimelineDomain,\n stateTimelineDomain,\n stateTimelineHeight,\n zoomStateTimelineViewport,\n} from \"./chart-state-timeline\";\n\n/**\n * Chart — minimal Solid wrapper around `stdlib.charts`.\n *\n * **Live-update story.** `charts.<kind>(opts)` returns an SVG string;\n * Solid's `innerHTML` is reactive, so any time a prop (signal, store\n * slice, derived value) changes, the SVG re-renders. No manual\n * subscription, no imperative DOM patching. Trade-off: every change\n * is a full SVG re-build, not a diff — fine for dashboard cadences\n * (poll, websocket, store updates). Don't use this for 60fps streaming.\n *\n * **Sizing.** stdlib emits `<svg viewBox=\"0 0 W H\">` with no width/\n * height attributes, so the SVG would otherwise fall back to the\n * browser's replaced-element default (300×150) and either overflow\n * or look squished. We measure the wrapping `<div>` with a\n * ResizeObserver and pass the actual pixel dimensions to stdlib —\n * the viewBox matches the container, no aspect distortion, no\n * letterboxing. Sizing the wrapper itself is the caller's job\n * (`style={{ height: \"14rem\" }}`, an app class, a flex child, …).\n * On SSR (no observer)\n * the chart renders at stdlib's default size; the first client-side\n * frame re-measures and re-renders.\n *\n * One documented exception: `kind: \"stateTimeline\"` derives its own\n * initial height from the row count and legend via\n * `stateTimelineHeight()`, because a timeline's height is a function of\n * how many rows it has rather than of the layout around it. Every other\n * kind starts at 280px until the observer reports the real box. Layout\n * code that sizes charts uniformly must account for this.\n *\n * **Why so thin.** The props are a discriminated union over each\n * stdlib chart function — `kind: \"line\"` brings in exactly the params\n * `charts.line` expects, `kind: \"bar\"` brings in `charts.bar`'s, etc.\n * Options stay aligned with stdlib without renaming. Shared interactive\n * layers add bounded pan / zoom controls to maps and state timelines, plus\n * nearest-point hover and keyboard inspection for line charts.\n * If stdlib gains a new option, it's automatically available at every\n * callsite.\n *\n * **Theming.** stdlib charts use `currentColor` for axes / ticks /\n * tick labels — set the wrapping element's `color` and everything\n * inherits. Series colors come from `--stdlib-chart-c1..c8` CSS\n * custom properties; override on the parent for per-chart palettes.\n *\n * ```tsx\n * <Chart kind=\"line\" style={{ height: \"12rem\" }}\n * series={[{ data: points() }]}\n * yAxis={{ format: v => `€${v}k` }} />\n *\n * <Chart kind=\"donut\" style={{ height: \"12rem\" }} data={slices()} />\n *\n * <Chart kind=\"sparkline\" style={{ width: \"6rem\", height: \"1.5rem\" }} data={trend()} />\n *\n * <Chart kind=\"map\" style={{ height: \"16rem\" }} series={locations()} interactive />\n * ```\n */\n\n/** All chart kinds shipped by `stdlib.charts`. */\nexport type ChartKind = keyof typeof charts;\n\nexport type ChartLabels = Partial<{\n empty: string;\n series: string;\n interactiveMap: string;\n interactiveTimeline: string;\n interactiveLine: string;\n zoomIn: string;\n zoomOut: string;\n resetMap: string;\n resetTimeline: string;\n}>;\n\n/**\n * Per-kind props: `kind` discriminator + the exact options that\n * `charts.<kind>` accepts, **minus** `width` / `height` (the wrapper\n * owns those — they're derived from container measurement). Solid's\n * component model handles discriminated unions natively, so callsites\n * get full type safety.\n */\nexport type ChartProps = {\n [K in ChartKind]: {\n kind: K;\n class?: string;\n style?: JSX.CSSProperties | string;\n labels?: ChartLabels;\n } & (K extends \"stateTimeline\"\n ? StateTimelineChartOptions\n : Omit<Parameters<(typeof charts)[K]>[0], \"width\" | \"height\"> & (K extends \"map\" | \"line\" ? { interactive?: boolean } : {}));\n}[ChartKind];\n\n/**\n * Internal — strips wrapper-only keys from props and forwards the\n * rest (plus measured size) to `charts[kind]`. The `any` is the\n * price for dispatching one function call across 8 different option\n * types; an explicit per-kind switch would type it but balloon the\n * component for no runtime benefit.\n */\nconst renderSvg = (\n props: ChartProps,\n width: number,\n height: number,\n mapViewport?: MapViewport,\n timelineViewport?: StateTimelineDomain,\n): string => {\n const {\n kind,\n class: _class,\n style: _style,\n labels: _labels,\n interactive: _interactive,\n ...opts\n } = props as ChartProps & { interactive?: boolean };\n if (kind === \"stateTimeline\") {\n return renderStateTimelineSvg({\n ...(opts as StateTimelineChartOptions),\n width,\n height,\n viewport: timelineViewport,\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (charts[kind] as (o: unknown) => string)({\n ...(opts as any),\n ...(kind === \"map\" && mapViewport ? { viewport: mapViewport } : {}),\n width,\n height,\n });\n};\n\n/** Empty-data short-circuit. Kept per-kind because stdlib's payload\n * key differs (series vs data vs groups). We're conservative: only\n * block on truly empty inputs; partially-filled series get rendered\n * as-is and stdlib handles the gaps. */\nconst isEmpty = (props: ChartProps): boolean => {\n if (props.kind === \"line\" || props.kind === \"scatter\") {\n return !props.series?.length || props.series.every((s) => !s.data.length);\n }\n if (props.kind === \"bar\" || props.kind === \"donut\" || props.kind === \"pie\") {\n return !props.data?.length;\n }\n if (props.kind === \"histogram\" || props.kind === \"sparkline\") {\n return !props.data?.length;\n }\n if (props.kind === \"boxplot\") {\n return !props.groups?.length;\n }\n if (props.kind === \"stateTimeline\") {\n return !props.rows?.length || props.rows.every((row) => !row.intervals.length);\n }\n return false;\n};\n\nconst Chart = (props: ChartProps): JSX.Element => {\n const messages = useUiMessages();\n let containerRef: HTMLDivElement | undefined;\n let chartTooltipRef: HTMLSpanElement | undefined;\n let lineAnchorRef: HTMLSpanElement | undefined;\n let chartTooltipTriggerRef: Element | undefined;\n // Initial size matches stdlib's chart-function defaults so the SSR\n // render is sensible. The observer updates this on the first\n // client-side frame; the SVG re-renders reactively via innerHTML.\n const initialHeight = props.kind === \"stateTimeline\" ? stateTimelineHeight(props.rows.length, props.legend !== false) : 280;\n const [size, setSize] = createSignal({ width: 480, height: initialHeight });\n const initialMapViewport = props.kind === \"map\" ? normalizeMapViewport(props.viewport) : DEFAULT_MAP_VIEWPORT;\n const [mapViewport, setMapViewport] = createSignal<MapViewport>(initialMapViewport);\n const initialTimelineViewport =\n props.kind === \"stateTimeline\" ? stateTimelineDomain(props.rows, props.domain) : ([0, 1] as StateTimelineDomain);\n const [timelineViewport, setTimelineViewport] = createSignal<StateTimelineDomain>(initialTimelineViewport);\n const [linePointIndex, setLinePointIndex] = createSignal(0);\n const [lineInspectionActive, setLineInspectionActive] = createSignal(false);\n const [dragging, setDragging] = createSignal(false);\n const chartTooltipId = `k2b-chart-tooltip-${createUniqueId()}`;\n let timelineViewportLocallyChanged = false;\n let drag:\n | {\n pointerId: number;\n x: number;\n y: number;\n width: number;\n height: number;\n viewport: MapViewport;\n }\n | undefined;\n let timelineDrag:\n | {\n pointerId: number;\n x: number;\n width: number;\n viewport: StateTimelineDomain;\n }\n | undefined;\n let pointerFrame: number | undefined;\n let pendingPointer: { pointerId: number; clientX: number; clientY: number } | undefined;\n\n const interactiveMap = () => props.kind === \"map\" && props.interactive === true;\n const interactiveTimeline = () => props.kind === \"stateTimeline\" && props.interactive === true;\n const interactiveLine = () => props.kind === \"line\" && props.interactive === true;\n const interactive = () => interactiveMap() || interactiveTimeline() || interactiveLine();\n const draggable = () => interactiveMap() || interactiveTimeline();\n const labels = () => props.labels ?? {};\n const timelineFullDomain = (): StateTimelineDomain =>\n props.kind === \"stateTimeline\" ? stateTimelineDomain(props.rows, props.domain) : [0, 1];\n\n createEffect(() => {\n if (props.kind === \"map\") {\n setMapViewport(normalizeMapViewport(props.viewport));\n }\n });\n\n createEffect(() => {\n if (props.kind === \"stateTimeline\" && !timelineViewportLocallyChanged) {\n setTimelineViewport(timelineFullDomain());\n }\n });\n\n const updateTimelineViewport = (update: (current: StateTimelineDomain) => StateTimelineDomain) => {\n timelineViewportLocallyChanged = true;\n setTimelineViewport(update);\n };\n\n const mapDimensions = () => {\n const viewportElement = containerRef?.querySelector(\".stdlib-chart-map-viewport\");\n const rect = viewportElement?.getBoundingClientRect();\n if (rect && rect.width > 0 && rect.height > 0) {\n return { width: rect.width, height: rect.height };\n }\n return size();\n };\n\n const zoom = (delta: number) => {\n if (interactiveMap()) {\n setMapViewport((current) => zoomMapViewport(current, delta));\n } else if (interactiveTimeline()) {\n updateTimelineViewport((current) => zoomStateTimelineViewport(current, timelineFullDomain(), delta));\n }\n };\n\n const reset = () => {\n if (interactiveMap() && props.kind === \"map\") {\n setMapViewport(normalizeMapViewport(props.viewport));\n }\n if (interactiveTimeline()) {\n timelineViewportLocallyChanged = false;\n setTimelineViewport(timelineFullDomain());\n }\n };\n\n const handlePointerDown: JSX.EventHandlerUnion<HTMLDivElement, PointerEvent> = (event) => {\n if (!draggable() || event.button !== 0 || (event.target as Element).closest(\"button, a\")) {\n return;\n }\n closeChartTooltip();\n if (interactiveTimeline()) {\n timelineDrag = {\n pointerId: event.pointerId,\n x: event.clientX,\n width: Math.max(1, event.currentTarget.getBoundingClientRect().width),\n viewport: timelineViewport(),\n };\n event.currentTarget.setPointerCapture(event.pointerId);\n setDragging(true);\n return;\n }\n const dimensions = mapDimensions();\n drag = {\n pointerId: event.pointerId,\n x: event.clientX,\n y: event.clientY,\n width: dimensions.width,\n height: dimensions.height,\n viewport: mapViewport(),\n };\n event.currentTarget.setPointerCapture(event.pointerId);\n setDragging(true);\n };\n\n const flushPointerMove = () => {\n if (pointerFrame !== undefined) {\n cancelAnimationFrame(pointerFrame);\n pointerFrame = undefined;\n }\n const sample = pendingPointer;\n pendingPointer = undefined;\n if (!sample) return;\n if (interactiveLine()) {\n showLineTooltip(sample.clientX, sample.clientY);\n return;\n }\n const activeTimelineDrag = timelineDrag;\n if (activeTimelineDrag?.pointerId === sample.pointerId) {\n updateTimelineViewport(() =>\n panStateTimelineViewport(\n activeTimelineDrag.viewport,\n timelineFullDomain(),\n sample.clientX - activeTimelineDrag.x,\n activeTimelineDrag.width,\n ),\n );\n return;\n }\n if (!drag || drag.pointerId !== sample.pointerId) return;\n setMapViewport(panMapViewport(drag.viewport, sample.clientX - drag.x, sample.clientY - drag.y, drag.width, drag.height));\n };\n\n const handlePointerMove: JSX.EventHandlerUnion<HTMLDivElement, PointerEvent> = (event) => {\n if (!interactiveLine() && timelineDrag?.pointerId !== event.pointerId && drag?.pointerId !== event.pointerId) return;\n pendingPointer = { pointerId: event.pointerId, clientX: event.clientX, clientY: event.clientY };\n if (pointerFrame !== undefined) return;\n pointerFrame = requestAnimationFrame(flushPointerMove);\n };\n\n const stopDragging: JSX.EventHandlerUnion<HTMLDivElement, PointerEvent> = (event) => {\n if (pendingPointer?.pointerId === event.pointerId) flushPointerMove();\n if (timelineDrag?.pointerId === event.pointerId) {\n if (event.currentTarget.hasPointerCapture(event.pointerId)) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n }\n timelineDrag = undefined;\n setDragging(false);\n return;\n }\n if (!drag || drag.pointerId !== event.pointerId) return;\n if (event.currentTarget.hasPointerCapture(event.pointerId)) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n }\n drag = undefined;\n setDragging(false);\n };\n\n const handleWheel: JSX.EventHandlerUnion<HTMLDivElement, WheelEvent> = (event) => {\n if (interactiveMap() && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n zoom(event.deltaY < 0 ? 1 : -1);\n return;\n }\n if (!interactiveTimeline()) return;\n if (event.ctrlKey || event.metaKey) {\n event.preventDefault();\n const rect = event.currentTarget.getBoundingClientRect();\n const anchor = rect.width > 0 ? (event.clientX - rect.left) / rect.width : 0.5;\n updateTimelineViewport((current) => zoomStateTimelineViewport(current, timelineFullDomain(), event.deltaY < 0 ? 1 : -1, anchor));\n } else if (event.shiftKey) {\n event.preventDefault();\n updateTimelineViewport((current) =>\n panStateTimelineViewport(current, timelineFullDomain(), -event.deltaY, event.currentTarget.getBoundingClientRect().width),\n );\n }\n };\n\n const handleKeyDown: JSX.EventHandlerUnion<HTMLDivElement, KeyboardEvent> = (event) => {\n if (!interactive()) return;\n if (interactiveLine()) {\n const values = lineXValues();\n if (values.length === 0) return;\n if (event.key === \"Escape\") {\n closeChartTooltip();\n return;\n }\n const next =\n event.key === \"Home\"\n ? 0\n : event.key === \"End\"\n ? values.length - 1\n : event.key === \"ArrowLeft\"\n ? Math.max(0, linePointIndex() - 1)\n : event.key === \"ArrowRight\"\n ? Math.min(values.length - 1, linePointIndex() + 1)\n : null;\n if (next === null) return;\n event.preventDefault();\n showLinePoint(next);\n return;\n }\n if (event.key === \"+\" || event.key === \"=\") {\n event.preventDefault();\n zoom(1);\n return;\n }\n if (event.key === \"-\" || event.key === \"_\") {\n event.preventDefault();\n zoom(-1);\n return;\n }\n if (event.key === \"0\" || event.key === \"Home\") {\n event.preventDefault();\n reset();\n return;\n }\n if (interactiveTimeline() && (event.key === \"ArrowLeft\" || event.key === \"ArrowRight\")) {\n event.preventDefault();\n updateTimelineViewport((current) =>\n panStateTimelineViewport(\n current,\n timelineFullDomain(),\n event.key === \"ArrowLeft\" ? 80 : -80,\n event.currentTarget.getBoundingClientRect().width,\n ),\n );\n return;\n }\n const delta: readonly [number, number] | undefined = {\n ArrowLeft: [40, 0],\n ArrowRight: [-40, 0],\n ArrowUp: [0, 40],\n ArrowDown: [0, -40],\n }[event.key] as readonly [number, number] | undefined;\n if (!delta) return;\n event.preventDefault();\n const dimensions = mapDimensions();\n setMapViewport((current) => panMapViewport(current, delta[0], delta[1], dimensions.width, dimensions.height));\n };\n\n const closeChartTooltip = () => {\n if (interactiveLine()) {\n if (pointerFrame !== undefined) cancelAnimationFrame(pointerFrame);\n pointerFrame = undefined;\n pendingPointer = undefined;\n }\n chartTooltipTriggerRef?.removeAttribute(\"aria-describedby\");\n chartTooltipTriggerRef = undefined;\n setLineInspectionActive(false);\n if (!chartTooltipRef) return;\n try {\n if (chartTooltipRef.matches(\":popover-open\")) chartTooltipRef.hidePopover();\n } catch {\n // A disconnect can race with the Popover API.\n }\n };\n\n const showTimelineTooltip = (target: Element | null) => {\n if (!interactiveTimeline() || !chartTooltipRef) return;\n const trigger = target?.closest<HTMLElement>(\"[data-chart-tooltip]\");\n const content = trigger?.dataset.chartTooltip;\n if (!trigger || !content) return;\n chartTooltipTriggerRef?.removeAttribute(\"aria-describedby\");\n chartTooltipTriggerRef = trigger;\n trigger.setAttribute(\"aria-describedby\", chartTooltipId);\n chartTooltipRef.textContent = content;\n try {\n if (!chartTooltipRef.matches(\":popover-open\")) chartTooltipRef.showPopover();\n positionTooltipSurface(chartTooltipRef, trigger);\n } catch {\n // SVG <title> remains as the fallback on browsers without Popover.\n }\n };\n\n const lineInspection = createMemo(() => {\n if (props.kind !== \"line\") {\n return {\n values: [] as number[],\n series: [] as Array<{ label: string; points: Map<number, { x: number; y: number }> }>,\n };\n }\n const values = new Set<number>();\n const series = props.series.map((entry) => {\n const points = new Map<number, { x: number; y: number }>();\n for (const point of entry.data) {\n if (!Number.isFinite(point.x)) continue;\n values.add(point.x);\n if (Number.isFinite(point.y) && !points.has(point.x)) points.set(point.x, point);\n }\n return { label: entry.label ?? labels().series ?? messages().series, points };\n });\n return { values: [...values].sort((left, right) => left - right), series };\n });\n const lineXValues = () => lineInspection().values;\n\n const linePlotBounds = (): { left: number; right: number } => {\n if (props.kind !== \"line\") return { left: 0, right: size().width };\n const padding = props.padding;\n const left = (typeof padding === \"number\" ? padding : padding?.left) ?? 40;\n const rightInset = (typeof padding === \"number\" ? padding : padding?.right) ?? 16;\n return {\n left: left + (props.yAxis?.label ? 14 : 0),\n right: Math.max(left + 1, size().width - rightInset),\n };\n };\n\n const showLinePoint = (index: number, pointerY?: number) => {\n if (props.kind !== \"line\" || !chartTooltipRef || !lineAnchorRef) return;\n const inspection = lineInspection();\n const values = inspection.values;\n const pointIndex = Math.min(values.length - 1, Math.max(0, index));\n const x = values[pointIndex];\n if (x === undefined) return;\n const points = inspection.series\n .map((series) => {\n const point = series.points.get(x);\n return point ? { label: series.label, point } : null;\n })\n .filter((entry): entry is NonNullable<typeof entry> => entry !== null);\n if (points.length === 0) return;\n\n const xFormat = props.xAxis?.format ?? String;\n const yFormat = props.yAxis?.format ?? String;\n chartTooltipRef.textContent = [xFormat(x), ...points.map((entry) => `${entry.label}: ${yFormat(entry.point.y)}`)].join(\" · \");\n\n const [min, max] = [values[0] ?? x, values.at(-1) ?? x];\n const bounds = linePlotBounds();\n const ratio = max === min ? 0.5 : (x - min) / (max - min);\n lineAnchorRef.style.left = `${bounds.left + ratio * (bounds.right - bounds.left)}px`;\n lineAnchorRef.style.top = `${Math.min(size().height - 8, Math.max(8, pointerY ?? 24))}px`;\n setLinePointIndex(pointIndex);\n setLineInspectionActive(true);\n try {\n if (!chartTooltipRef.matches(\":popover-open\")) chartTooltipRef.showPopover();\n positionTooltipSurface(chartTooltipRef, lineAnchorRef);\n } catch {\n // The chart remains readable on browsers without Popover support.\n }\n };\n\n const showLineTooltip = (clientX: number, clientY: number) => {\n const values = lineXValues();\n if (values.length === 0) return;\n const rect = containerRef?.getBoundingClientRect();\n if (!rect) return;\n const bounds = linePlotBounds();\n const localX = clientX - rect.left;\n const ratio = Math.min(1, Math.max(0, (localX - bounds.left) / Math.max(1, bounds.right - bounds.left)));\n const target = (values[0] ?? 0) + ratio * ((values.at(-1) ?? 0) - (values[0] ?? 0));\n let low = 0;\n let high = values.length - 1;\n while (low < high) {\n const middle = Math.floor((low + high) / 2);\n if (values[middle]! < target) low = middle + 1;\n else high = middle;\n }\n const previous = Math.max(0, low - 1);\n const index = Math.abs(values[previous]! - target) <= Math.abs(values[low]! - target) ? previous : low;\n showLinePoint(index, clientY - rect.top);\n };\n\n onCleanup(() => {\n if (pointerFrame !== undefined) cancelAnimationFrame(pointerFrame);\n pointerFrame = undefined;\n pendingPointer = undefined;\n });\n\n onMount(() => {\n if (!containerRef) return;\n // Seed immediately from layout — avoids one wasted re-render in\n // the case where the container already has its final size at\n // mount time (the common case for dashboard widgets).\n const rect = containerRef.getBoundingClientRect();\n if (rect.width > 0 && rect.height > 0) {\n setSize({ width: Math.round(rect.width), height: Math.round(rect.height) });\n }\n const ro = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (!entry) return;\n const { width, height } = entry.contentRect;\n // Floor to integer pixels; sub-pixel jitter would trigger an\n // SVG re-render on every scroll/zoom otherwise.\n if (width > 0 && height > 0) {\n setSize((prev) => {\n const w = Math.round(width);\n const h = Math.round(height);\n return prev.width === w && prev.height === h ? prev : { width: w, height: h };\n });\n }\n });\n ro.observe(containerRef);\n window.addEventListener(\"scroll\", closeChartTooltip, true);\n window.addEventListener(\"resize\", closeChartTooltip);\n onCleanup(() => {\n ro.disconnect();\n window.removeEventListener(\"scroll\", closeChartTooltip, true);\n window.removeEventListener(\"resize\", closeChartTooltip);\n });\n });\n\n const chartStyle = () =>\n props.style ??\n (props.kind === \"stateTimeline\"\n ? {\n height: `${stateTimelineHeight(props.rows.length, props.legend !== false)}px`,\n }\n : undefined);\n\n return (\n <Show\n when={!isEmpty(props)}\n fallback={\n <div ref={containerRef} class={`k2b-chart k2b-chart__empty ${props.class ?? \"\"}`} style={chartStyle()}>\n {labels().empty ?? messages().noData}\n </div>\n }\n >\n {/* The wrapping div is what the ResizeObserver watches. `block`\n + the caller's sizing classes (h-48, w-full, flex-1, …) drive\n the available space; the SVG inside fills it via viewBox =\n container size. `innerHTML` is reactive in Solid — re-runs\n on every prop / size change, so live data updates propagate\n without ceremony. */}\n <div\n ref={containerRef}\n class={`k2b-chart ${props.class ?? \"\"}`}\n data-chart-kind={props.kind}\n data-drag={draggable() ? (dragging() ? \"active\" : \"idle\") : undefined}\n data-crosshair={!draggable() && interactiveLine() ? \"true\" : undefined}\n data-interactive={interactive() ? \"true\" : undefined}\n style={chartStyle()}\n role=\"group\"\n aria-describedby={interactiveLine() && lineInspectionActive() ? chartTooltipId : undefined}\n aria-label={\n interactiveMap()\n ? (labels().interactiveMap ?? messages().interactiveMap)\n : interactiveTimeline()\n ? (labels().interactiveTimeline ?? messages().interactiveTimeline)\n : interactiveLine()\n ? (labels().interactiveLine ?? messages().interactiveLineChart)\n : undefined\n }\n tabIndex={interactive() ? 0 : undefined}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={stopDragging}\n onPointerCancel={stopDragging}\n onPointerOver={(event) => showTimelineTooltip(event.target as Element)}\n onPointerOut={(event) => {\n const trigger = (event.target as Element).closest(\"[data-chart-tooltip]\");\n if (trigger && !trigger.contains(event.relatedTarget as Node | null)) closeChartTooltip();\n }}\n onPointerLeave={closeChartTooltip}\n onFocusIn={(event) => {\n if (interactiveLine()) showLinePoint(lineXValues().length - 1);\n else showTimelineTooltip(event.target as Element);\n }}\n onFocusOut={closeChartTooltip}\n onWheel={handleWheel}\n onKeyDown={handleKeyDown}\n >\n <div\n class=\"k2b-chart__svg\"\n innerHTML={renderSvg(\n props,\n size().width,\n size().height,\n interactiveMap() ? mapViewport() : undefined,\n interactiveTimeline() ? timelineViewport() : undefined,\n )}\n />\n <Show when={interactiveTimeline() || interactiveLine()}>\n <span ref={lineAnchorRef} class=\"k2b-chart__anchor\" aria-hidden=\"true\" />\n <span id={chartTooltipId} ref={chartTooltipRef} role=\"tooltip\" popover=\"manual\" class=\"k2b-tooltip\" />\n </Show>\n <Show when={draggable()}>\n <div class=\"k2b-chart__controls\">\n <button\n type=\"button\"\n class=\"k2b-button k2b-icon-button\"\n data-variant=\"secondary\"\n aria-label={labels().zoomIn ?? messages().zoomIn}\n title={`${labels().zoomIn ?? messages().zoomIn} (+)`}\n onClick={() => zoom(1)}\n >\n <i class=\"ti ti-plus\" aria-hidden=\"true\" />\n </button>\n <button\n type=\"button\"\n class=\"k2b-button k2b-icon-button\"\n data-variant=\"secondary\"\n aria-label={labels().zoomOut ?? messages().zoomOut}\n title={`${labels().zoomOut ?? messages().zoomOut} (-)`}\n onClick={() => zoom(-1)}\n >\n <i class=\"ti ti-minus\" aria-hidden=\"true\" />\n </button>\n <button\n type=\"button\"\n class=\"k2b-button k2b-icon-button\"\n data-variant=\"secondary\"\n aria-label={\n interactiveMap() ? (labels().resetMap ?? messages().resetMapView) : (labels().resetTimeline ?? messages().resetTimelineView)\n }\n title={`${interactiveMap() ? (labels().resetMap ?? messages().resetMapView) : (labels().resetTimeline ?? messages().resetTimelineView)} (0)`}\n onClick={reset}\n >\n <i class=\"ti ti-focus-centered\" aria-hidden=\"true\" />\n </button>\n </div>\n </Show>\n </div>\n </Show>\n );\n};\n\nexport default Chart;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ssrAttribute as _$ssrAttribute } from "solid-js/web";
|
|
2
|
+
import { ssr as _$ssr } from "solid-js/web";
|
|
3
|
+
import { createComponent as _$createComponent } from "solid-js/web";
|
|
4
|
+
import { escape as _$escape } from "solid-js/web";
|
|
5
|
+
var _tmpl$ = ["<div class=\"k2b-content-code-display__header\">", "", "</div>"],
|
|
6
|
+
_tmpl$2 = ["<div class=\"", "\">", "<div class=\"k2b-content-code-display__body\"", " role=\"region\"", " tabindex=\"0\"><div class=\"k2b-content-code-display__lines\">", "</div></div></div>"],
|
|
7
|
+
_tmpl$3 = ["<p class=\"k2b-content-code-display__title\">", "</p>"],
|
|
8
|
+
_tmpl$4 = ["<span class=\"k2b-content-code-display__number\">", "</span>"],
|
|
9
|
+
_tmpl$5 = ["<div class=\"k2b-content-code-display__line\"", ">", "<code>", "</code></div>"];
|
|
10
|
+
import { For, Show } from "solid-js";
|
|
11
|
+
import CopyButton from "../actions/CopyButton";
|
|
12
|
+
import { highlightCodeDisplayLines } from "./code-highlight";
|
|
13
|
+
export default function CodeDisplay(props) {
|
|
14
|
+
const lines = () => highlightCodeDisplayLines(props.code, language());
|
|
15
|
+
const lineNumbers = () => props.lineNumbers ?? true;
|
|
16
|
+
const language = () => props.language ?? "text";
|
|
17
|
+
const hasHeader = () => Boolean(props.title || props.copy !== false);
|
|
18
|
+
return _$ssr(_tmpl$2, `k2b-content-code-display ${_$escape(props.class ?? "", true)}`, _$escape(_$createComponent(Show, {
|
|
19
|
+
get when() {
|
|
20
|
+
return hasHeader();
|
|
21
|
+
},
|
|
22
|
+
get children() {
|
|
23
|
+
return _$ssr(_tmpl$, _$escape(_$createComponent(Show, {
|
|
24
|
+
get when() {
|
|
25
|
+
return props.title;
|
|
26
|
+
},
|
|
27
|
+
children: title => _$ssr(_tmpl$3, _$escape(title()))
|
|
28
|
+
})), _$escape(_$createComponent(Show, {
|
|
29
|
+
get when() {
|
|
30
|
+
return props.copy !== false;
|
|
31
|
+
},
|
|
32
|
+
get children() {
|
|
33
|
+
return _$createComponent(CopyButton, {
|
|
34
|
+
get text() {
|
|
35
|
+
return props.code;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
})));
|
|
40
|
+
}
|
|
41
|
+
})), _$ssrAttribute("data-header", hasHeader() ? "true" : _$escape(undefined, true), false), _$ssrAttribute("aria-label", props.title ? `${_$escape(props.title, true)} code` : `${_$escape(language(), true)} code`, false), _$escape(_$createComponent(For, {
|
|
42
|
+
get each() {
|
|
43
|
+
return lines();
|
|
44
|
+
},
|
|
45
|
+
children: (line, index) => _$ssr(_tmpl$5, _$ssrAttribute("data-numbered", lineNumbers() ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
46
|
+
get when() {
|
|
47
|
+
return lineNumbers();
|
|
48
|
+
},
|
|
49
|
+
get children() {
|
|
50
|
+
return _$ssr(_tmpl$4, _$escape(index()) + 1);
|
|
51
|
+
}
|
|
52
|
+
})), line || " ")
|
|
53
|
+
})));
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=CodeDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["For","Show","CopyButton","highlightCodeDisplayLines","CodeDisplay","props","lines","code","language","lineNumbers","hasHeader","Boolean","title","copy","_$ssr","_tmpl$2","_$escape","class","_$createComponent","when","children","_tmpl$","_tmpl$3","text","_$ssrAttribute","undefined","each","line","index","_tmpl$5","_tmpl$4"],"sources":["content/CodeDisplay.tsx"],"sourcesContent":["import { For, Show } from \"solid-js\";\nimport CopyButton from \"../actions/CopyButton\";\nimport { type CodeDisplayLanguage, highlightCodeDisplayLines } from \"./code-highlight\";\n\nexport type { CodeDisplayLanguage };\n\nexport type CodeDisplayProps = {\n code: string;\n title?: string;\n language?: CodeDisplayLanguage;\n copy?: boolean;\n lineNumbers?: boolean;\n class?: string;\n};\n\nexport default function CodeDisplay(props: CodeDisplayProps) {\n const lines = () => highlightCodeDisplayLines(props.code, language());\n const lineNumbers = () => props.lineNumbers ?? true;\n const language = () => props.language ?? \"text\";\n const hasHeader = () => Boolean(props.title || props.copy !== false);\n\n return (\n <div class={`k2b-content-code-display ${props.class ?? \"\"}`}>\n <Show when={hasHeader()}>\n <div class=\"k2b-content-code-display__header\">\n <Show when={props.title}>{(title) => <p class=\"k2b-content-code-display__title\">{title()}</p>}</Show>\n <Show when={props.copy !== false}>\n <CopyButton text={props.code} />\n </Show>\n </div>\n </Show>\n\n <div\n class=\"k2b-content-code-display__body\"\n data-header={hasHeader() ? \"true\" : undefined}\n role=\"region\"\n aria-label={props.title ? `${props.title} code` : `${language()} code`}\n tabIndex={0}\n >\n <div class=\"k2b-content-code-display__lines\">\n <For each={lines()}>\n {(line, index) => (\n <div class=\"k2b-content-code-display__line\" data-numbered={lineNumbers() ? \"true\" : undefined}>\n <Show when={lineNumbers()}>\n <span class=\"k2b-content-code-display__number\">{index() + 1}</span>\n </Show>\n <code innerHTML={line || \" \"} />\n </div>\n )}\n </For>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAAA,SAASA,GAAG,EAAEC,IAAI,QAAQ,UAAU;AACpC,OAAOC,UAAU,MAAM,uBAAuB;AAC9C,SAAmCC,yBAAyB,QAAQ,kBAAkB;AAatF,eAAe,SAASC,WAAWA,CAACC,KAAuB,EAAE;EAC3D,MAAMC,KAAK,GAAGA,CAAA,KAAMH,yBAAyB,CAACE,KAAK,CAACE,IAAI,EAAEC,QAAQ,CAAC,CAAC,CAAC;EACrE,MAAMC,WAAW,GAAGA,CAAA,KAAMJ,KAAK,CAACI,WAAW,IAAI,IAAI;EACnD,MAAMD,QAAQ,GAAGA,CAAA,KAAMH,KAAK,CAACG,QAAQ,IAAI,MAAM;EAC/C,MAAME,SAAS,GAAGA,CAAA,KAAMC,OAAO,CAACN,KAAK,CAACO,KAAK,IAAIP,KAAK,CAACQ,IAAI,KAAK,KAAK,CAAC;EAEpE,OAAAC,KAAA,CAAAC,OAAA,EACc,4BAAAC,QAAA,CAA4BX,KAAK,CAACY,KAAK,IAAI,EAAE,SAAE,EAAAD,QAAA,CAAAE,iBAAA,CACxDjB,IAAI;IAAA,IAACkB,IAAIA,CAAA;MAAA,OAAET,SAAS,CAAC,CAAC;IAAA;IAAA,IAAAU,SAAA;MAAA,OAAAN,KAAA,CAAAO,MAAA,EAAAL,QAAA,CAAAE,iBAAA,CAElBjB,IAAI;QAAA,IAACkB,IAAIA,CAAA;UAAA,OAAEd,KAAK,CAACO,KAAK;QAAA;QAAAQ,QAAA,EAAIR,KAAK,IAAAE,KAAA,CAAAQ,OAAA,EAAAN,QAAA,CAAiDJ,KAAK,CAAC,CAAC;MAAK,KAAAI,QAAA,CAAAE,iBAAA,CAC5FjB,IAAI;QAAA,IAACkB,IAAIA,CAAA;UAAA,OAAEd,KAAK,CAACQ,IAAI,KAAK,KAAK;QAAA;QAAA,IAAAO,SAAA;UAAA,OAAAF,iBAAA,CAC7BhB,UAAU;YAAA,IAACqB,IAAIA,CAAA;cAAA,OAAElB,KAAK,CAACE,IAAI;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA,KAAAiB,cAAA,gBAOnBd,SAAS,CAAC,CAAC,GAAG,MAAM,GAAAM,QAAA,CAAGS,SAAS,iBAAAD,cAAA,eAEjCnB,KAAK,CAACO,KAAK,GAAG,GAAAI,QAAA,CAAGX,KAAK,CAACO,KAAK,cAAO,GAAG,GAAAI,QAAA,CAAGR,QAAQ,CAAC,CAAC,cAAO,UAAAQ,QAAA,CAAAE,iBAAA,CAInElB,GAAG;IAAA,IAAC0B,IAAIA,CAAA;MAAA,OAAEpB,KAAK,CAAC,CAAC;IAAA;IAAAc,QAAA,EACfA,CAACO,IAAI,EAAEC,KAAK,KAAAd,KAAA,CAAAe,OAAA,EAAAL,cAAA,kBACgDf,WAAW,CAAC,CAAC,GAAG,MAAM,GAAAO,QAAA,CAAGS,SAAS,iBAAAT,QAAA,CAAAE,iBAAA,CAC1FjB,IAAI;MAAA,IAACkB,IAAIA,CAAA;QAAA,OAAEV,WAAW,CAAC,CAAC;MAAA;MAAA,IAAAW,SAAA;QAAA,OAAAN,KAAA,CAAAgB,OAAA,EACyBd,QAAA,CAAAY,KAAK,CAAC,CAAC,IAAG,CAAC;MAAA;IAAA,KAE5CD,IAAI,IAAI,GAAG;EAE/B;AAMb","ignoreList":[]}
|