@k2b/ui 0.4.2 → 0.5.1
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.map +1 -1
- package/dist/browser/actions/ContextMenu.js.map +1 -1
- package/dist/browser/actions/CopyButton.js.map +1 -1
- package/dist/browser/actions/Disclosure.js.map +1 -1
- package/dist/browser/actions/Dropdown.js.map +1 -1
- package/dist/browser/actions/FilterChip.js.map +1 -1
- package/dist/browser/actions/RemoveButton.js.map +1 -1
- package/dist/browser/actions/SegmentedControl.js.map +1 -1
- package/dist/browser/actions/SplitButton.js.map +1 -1
- package/dist/browser/actions/SpotlightSearch.js.map +1 -1
- package/dist/browser/actions/Tabs.js.map +1 -1
- package/dist/browser/actions/Toolbar.js.map +1 -1
- package/dist/browser/actions/index.js.map +1 -1
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/ChatContextPopup.js.map +1 -1
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/chat/ChatRoot.js.map +1 -1
- package/dist/browser/chat/ChatTasks.js +1 -1
- package/dist/browser/chat/ChatTasks.js.map +1 -1
- package/dist/browser/chat/ChatTimeline.js.map +1 -1
- package/dist/browser/chat/chat-behavior.js.map +1 -1
- package/dist/browser/chat/composer-document.js.map +1 -1
- package/dist/browser/chat/index.js.map +1 -1
- package/dist/browser/content/Calendar.js.map +1 -1
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartExplorer.js.map +1 -1
- package/dist/browser/content/ChartExplorerControls.js.map +1 -1
- package/dist/browser/content/ChartFilterControls.js +1 -1
- package/dist/browser/content/ChartFilterControls.js.map +1 -1
- package/dist/browser/content/ChartSnapshotView.js.map +1 -1
- package/dist/browser/content/CodeDisplay.js.map +1 -1
- package/dist/browser/content/DataTable.js.map +1 -1
- package/dist/browser/content/Docs.js.map +1 -1
- package/dist/browser/content/FileBrowser.js.map +1 -1
- package/dist/browser/content/FileGrid.js.map +1 -1
- package/dist/browser/content/FileTree.js.map +1 -1
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/content/Lightbox.js.map +1 -1
- package/dist/browser/content/LogEntriesTable.js.map +1 -1
- package/dist/browser/content/MarkdownView.js.map +1 -1
- package/dist/browser/content/Pagination.js.map +1 -1
- package/dist/browser/content/PdfPreview.js.map +1 -1
- package/dist/browser/content/RangePicker.js.map +1 -1
- package/dist/browser/content/StructuredDataPreview.js.map +1 -1
- package/dist/browser/content/calendar-event-layout.js.map +1 -1
- package/dist/browser/content/calendar-pointer.js.map +1 -1
- package/dist/browser/content/chart-cursor.js.map +1 -1
- package/dist/browser/content/chart-explorer.js.map +1 -1
- package/dist/browser/content/chart-inspection.js.map +1 -1
- package/dist/browser/content/chart-line-gaps.js.map +1 -1
- package/dist/browser/content/chart-map-viewport.js.map +1 -1
- package/dist/browser/content/chart-snapshot.js.map +1 -1
- package/dist/browser/content/chart-state-timeline.js.map +1 -1
- package/dist/browser/content/chart-svg.js.map +1 -1
- package/dist/browser/content/code-highlight.js.map +1 -1
- package/dist/browser/content/collection-selection.js.map +1 -1
- package/dist/browser/content/delimited-preferences.js.map +1 -1
- package/dist/browser/content/file-tree.js.map +1 -1
- package/dist/browser/content/file-view-preview.js.map +1 -1
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/feedback/InlineGuidance.js.map +1 -1
- package/dist/browser/feedback/Tooltip.js.map +1 -1
- package/dist/browser/feedback/dialog-core.js.map +1 -1
- package/dist/browser/feedback/index.js.map +1 -1
- package/dist/browser/feedback/prompts.js.map +1 -1
- package/dist/browser/feedback/toast.js.map +1 -1
- package/dist/browser/feedback/tooltip-position.js.map +1 -1
- package/dist/browser/inputs/AutocompleteEditor.js.map +1 -1
- package/dist/browser/inputs/AutocompleteSelect.js.map +1 -1
- package/dist/browser/inputs/Checkbox.js.map +1 -1
- package/dist/browser/inputs/CheckboxCard.js.map +1 -1
- package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
- package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
- package/dist/browser/inputs/Combobox.js.map +1 -1
- package/dist/browser/inputs/DatePicker.js.map +1 -1
- package/dist/browser/inputs/FileInputs.js.map +1 -1
- package/dist/browser/inputs/MultiSelectInput.js.map +1 -1
- package/dist/browser/inputs/NumberInput.js.map +1 -1
- package/dist/browser/inputs/Select.js.map +1 -1
- package/dist/browser/inputs/SelectChip.js.map +1 -1
- package/dist/browser/inputs/SpecialInputs.js.map +1 -1
- package/dist/browser/inputs/Switch.js.map +1 -1
- package/dist/browser/inputs/TagEditor.js.map +1 -1
- package/dist/browser/inputs/TagsInput.js.map +1 -1
- package/dist/browser/inputs/TemplateEditor.js.map +1 -1
- package/dist/browser/inputs/TextInput.js.map +1 -1
- package/dist/browser/inputs/choice.js.map +1 -1
- package/dist/browser/inputs/completion/behaviors.js.map +1 -1
- package/dist/browser/inputs/completion/engine.js.map +1 -1
- package/dist/browser/inputs/completion/index.js.map +1 -1
- package/dist/browser/inputs/completion/overlay.js.map +1 -1
- package/dist/browser/inputs/date-picker.js.map +1 -1
- package/dist/browser/inputs/editor-dom.js.map +1 -1
- package/dist/browser/inputs/field-contract.js.map +1 -1
- package/dist/browser/inputs/icon-options.js.map +1 -1
- package/dist/browser/inputs/image-crop.js.map +1 -1
- package/dist/browser/inputs/index.js.map +1 -1
- package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/browser/inputs/markdown/Toolbar.js.map +1 -1
- package/dist/browser/inputs/markdown/actions.js.map +1 -1
- package/dist/browser/inputs/markdown/active-formats.js.map +1 -1
- package/dist/browser/inputs/markdown/behaviors.js.map +1 -1
- package/dist/browser/inputs/markdown/code-zone.js.map +1 -1
- package/dist/browser/internal/color.js.map +1 -1
- package/dist/browser/internal/field.js.map +1 -1
- package/dist/browser/internal/portal.js.map +1 -1
- package/dist/browser/intl/Format.js.map +1 -1
- package/dist/browser/intl/index.js.map +1 -1
- package/dist/browser/intl/locale.js.map +1 -1
- package/dist/browser/intl/messages.js +2 -0
- package/dist/browser/intl/messages.js.map +1 -1
- package/dist/browser/layout/AppOverview.js +29 -20
- package/dist/browser/layout/AppOverview.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +60 -54
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/BottomSheet.js.map +1 -1
- package/dist/browser/layout/DataPanel.js.map +1 -1
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/Discussion.js.map +1 -1
- package/dist/browser/layout/FloatingWindow.js.map +1 -1
- package/dist/browser/layout/Navigation.js.map +1 -1
- package/dist/browser/layout/PanelDialog.js.map +1 -1
- package/dist/browser/layout/PanelHeader.js +1 -1
- package/dist/browser/layout/PanelHeader.js.map +1 -1
- package/dist/browser/layout/Panes.js.map +1 -1
- package/dist/browser/layout/PullToRefresh.js +217 -0
- package/dist/browser/layout/PullToRefresh.js.map +1 -0
- package/dist/browser/layout/ScrollArea.js.map +1 -1
- package/dist/browser/layout/Settings.js.map +1 -1
- package/dist/browser/layout/SettingsCollection.js.map +1 -1
- package/dist/browser/layout/SettingsModal.js.map +1 -1
- package/dist/browser/layout/SidebarItemPreview.js.map +1 -1
- package/dist/browser/layout/app-workspace-controller.js.map +1 -1
- package/dist/browser/layout/app-workspace-state.js.map +1 -1
- package/dist/browser/layout/floating-window-geometry.js.map +1 -1
- package/dist/browser/layout/index.js +1 -0
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/layout/navigation-model.js.map +1 -1
- package/dist/browser/layout/panes-layout.js.map +1 -1
- package/dist/browser/layout/scroll-fade.js.map +1 -1
- package/dist/browser/layout/stable-id.js.map +1 -1
- package/dist/browser/surfaces/Avatar.js.map +1 -1
- package/dist/browser/surfaces/DescriptionList.js.map +1 -1
- package/dist/browser/surfaces/LinkCard.js +13 -2
- package/dist/browser/surfaces/LinkCard.js.map +1 -1
- package/dist/browser/surfaces/NotFoundState.js.map +1 -1
- package/dist/browser/surfaces/NoticeCard.js.map +1 -1
- package/dist/browser/surfaces/Paper.js.map +1 -1
- package/dist/browser/surfaces/Placeholder.js.map +1 -1
- package/dist/browser/surfaces/ProgressBar.js.map +1 -1
- package/dist/browser/surfaces/StatCell.js.map +1 -1
- package/dist/browser/surfaces/StatGrid.js.map +1 -1
- package/dist/browser/surfaces/StatusBadge.js.map +1 -1
- package/dist/browser/surfaces/Tag.js.map +1 -1
- package/dist/browser/surfaces/index.js.map +1 -1
- package/dist/browser/widgets/Widget.js.map +1 -1
- package/dist/browser/widgets/WidgetHero.js.map +1 -1
- package/dist/browser/widgets/WidgetList.js.map +1 -1
- package/dist/browser/widgets/WidgetPills.js.map +1 -1
- package/dist/browser/widgets/WidgetStat.js.map +1 -1
- package/dist/browser/widgets/WidgetStatus.js.map +1 -1
- package/dist/ssr/actions/Button.js +5 -4
- package/dist/ssr/actions/Button.js.map +1 -1
- package/dist/ssr/actions/ContextMenu.js.map +1 -1
- package/dist/ssr/actions/CopyButton.js +2 -1
- package/dist/ssr/actions/CopyButton.js.map +1 -1
- package/dist/ssr/actions/Disclosure.js.map +1 -1
- package/dist/ssr/actions/Dropdown.js +7 -6
- package/dist/ssr/actions/Dropdown.js.map +1 -1
- package/dist/ssr/actions/FilterChip.js +5 -4
- package/dist/ssr/actions/FilterChip.js.map +1 -1
- package/dist/ssr/actions/RemoveButton.js +1 -0
- package/dist/ssr/actions/RemoveButton.js.map +1 -1
- package/dist/ssr/actions/SegmentedControl.js.map +1 -1
- package/dist/ssr/actions/SplitButton.js +1 -0
- package/dist/ssr/actions/SplitButton.js.map +1 -1
- package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
- package/dist/ssr/actions/Tabs.js.map +1 -1
- package/dist/ssr/actions/Toolbar.js.map +1 -1
- package/dist/ssr/actions/index.js.map +1 -1
- package/dist/ssr/chat/ChatComposer.js +6 -5
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/ChatContextPopup.js.map +1 -1
- package/dist/ssr/chat/ChatPrimitives.js +6 -5
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/chat/ChatRoot.js.map +1 -1
- package/dist/ssr/chat/ChatTasks.js +1 -1
- package/dist/ssr/chat/ChatTasks.js.map +1 -1
- package/dist/ssr/chat/ChatTimeline.js +5 -4
- package/dist/ssr/chat/ChatTimeline.js.map +1 -1
- package/dist/ssr/chat/chat-behavior.js.map +1 -1
- package/dist/ssr/chat/composer-document.js.map +1 -1
- package/dist/ssr/chat/index.js.map +1 -1
- package/dist/ssr/content/Calendar.js +2 -1
- package/dist/ssr/content/Calendar.js.map +1 -1
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartExplorer.js.map +1 -1
- package/dist/ssr/content/ChartExplorerControls.js +5 -4
- package/dist/ssr/content/ChartExplorerControls.js.map +1 -1
- package/dist/ssr/content/ChartFilterControls.js +3 -2
- package/dist/ssr/content/ChartFilterControls.js.map +1 -1
- package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
- package/dist/ssr/content/CodeDisplay.js.map +1 -1
- package/dist/ssr/content/DataTable.js +1 -0
- package/dist/ssr/content/DataTable.js.map +1 -1
- package/dist/ssr/content/Docs.js +1 -0
- package/dist/ssr/content/Docs.js.map +1 -1
- package/dist/ssr/content/FileBrowser.js +2 -1
- package/dist/ssr/content/FileBrowser.js.map +1 -1
- package/dist/ssr/content/FileGrid.js.map +1 -1
- package/dist/ssr/content/FileTree.js +2 -1
- package/dist/ssr/content/FileTree.js.map +1 -1
- package/dist/ssr/content/FileView.js +5 -4
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/content/Lightbox.js +2 -1
- package/dist/ssr/content/Lightbox.js.map +1 -1
- package/dist/ssr/content/LogEntriesTable.js.map +1 -1
- package/dist/ssr/content/MarkdownView.js.map +1 -1
- package/dist/ssr/content/Pagination.js +2 -1
- package/dist/ssr/content/Pagination.js.map +1 -1
- package/dist/ssr/content/PdfPreview.js.map +1 -1
- package/dist/ssr/content/RangePicker.js.map +1 -1
- package/dist/ssr/content/StructuredDataPreview.js.map +1 -1
- package/dist/ssr/content/calendar-event-layout.js.map +1 -1
- package/dist/ssr/content/calendar-pointer.js.map +1 -1
- package/dist/ssr/content/chart-cursor.js.map +1 -1
- package/dist/ssr/content/chart-explorer.js.map +1 -1
- package/dist/ssr/content/chart-inspection.js.map +1 -1
- package/dist/ssr/content/chart-line-gaps.js.map +1 -1
- package/dist/ssr/content/chart-map-viewport.js.map +1 -1
- package/dist/ssr/content/chart-snapshot.js.map +1 -1
- package/dist/ssr/content/chart-state-timeline.js.map +1 -1
- package/dist/ssr/content/chart-svg.js.map +1 -1
- package/dist/ssr/content/code-highlight.js.map +1 -1
- package/dist/ssr/content/collection-selection.js.map +1 -1
- package/dist/ssr/content/delimited-preferences.js.map +1 -1
- package/dist/ssr/content/file-tree.js.map +1 -1
- package/dist/ssr/content/file-view-preview.js.map +1 -1
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/feedback/InlineGuidance.js.map +1 -1
- package/dist/ssr/feedback/Tooltip.js.map +1 -1
- package/dist/ssr/feedback/dialog-core.js.map +1 -1
- package/dist/ssr/feedback/index.js.map +1 -1
- package/dist/ssr/feedback/prompts.js +3 -2
- package/dist/ssr/feedback/prompts.js.map +1 -1
- package/dist/ssr/feedback/toast.js.map +1 -1
- package/dist/ssr/feedback/tooltip-position.js.map +1 -1
- package/dist/ssr/inputs/AutocompleteEditor.js +3 -2
- package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -1
- package/dist/ssr/inputs/AutocompleteSelect.js +5 -4
- package/dist/ssr/inputs/AutocompleteSelect.js.map +1 -1
- package/dist/ssr/inputs/Checkbox.js +1 -0
- package/dist/ssr/inputs/Checkbox.js.map +1 -1
- package/dist/ssr/inputs/CheckboxCard.js.map +1 -1
- package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
- package/dist/ssr/inputs/ChoiceInputs.js +1 -0
- package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
- package/dist/ssr/inputs/Combobox.js +2 -1
- package/dist/ssr/inputs/Combobox.js.map +1 -1
- package/dist/ssr/inputs/DatePicker.js +4 -3
- package/dist/ssr/inputs/DatePicker.js.map +1 -1
- package/dist/ssr/inputs/FileInputs.js +2 -1
- package/dist/ssr/inputs/FileInputs.js.map +1 -1
- package/dist/ssr/inputs/MultiSelectInput.js +4 -3
- package/dist/ssr/inputs/MultiSelectInput.js.map +1 -1
- package/dist/ssr/inputs/NumberInput.js +2 -1
- package/dist/ssr/inputs/NumberInput.js.map +1 -1
- package/dist/ssr/inputs/Select.js +4 -3
- package/dist/ssr/inputs/Select.js.map +1 -1
- package/dist/ssr/inputs/SelectChip.js +3 -2
- package/dist/ssr/inputs/SelectChip.js.map +1 -1
- package/dist/ssr/inputs/SpecialInputs.js +1 -0
- package/dist/ssr/inputs/SpecialInputs.js.map +1 -1
- package/dist/ssr/inputs/Switch.js.map +1 -1
- package/dist/ssr/inputs/TagEditor.js +3 -2
- package/dist/ssr/inputs/TagEditor.js.map +1 -1
- package/dist/ssr/inputs/TagsInput.js.map +1 -1
- package/dist/ssr/inputs/TemplateEditor.js +1 -0
- package/dist/ssr/inputs/TemplateEditor.js.map +1 -1
- package/dist/ssr/inputs/TextInput.js +4 -3
- package/dist/ssr/inputs/TextInput.js.map +1 -1
- package/dist/ssr/inputs/choice.js.map +1 -1
- package/dist/ssr/inputs/completion/behaviors.js.map +1 -1
- package/dist/ssr/inputs/completion/engine.js.map +1 -1
- package/dist/ssr/inputs/completion/index.js.map +1 -1
- package/dist/ssr/inputs/completion/overlay.js.map +1 -1
- package/dist/ssr/inputs/date-picker.js.map +1 -1
- package/dist/ssr/inputs/editor-dom.js.map +1 -1
- package/dist/ssr/inputs/field-contract.js.map +1 -1
- package/dist/ssr/inputs/icon-options.js.map +1 -1
- package/dist/ssr/inputs/image-crop.js.map +1 -1
- package/dist/ssr/inputs/index.js.map +1 -1
- package/dist/ssr/inputs/markdown/MarkdownEditor.js +3 -2
- package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/ssr/inputs/markdown/Toolbar.js.map +1 -1
- package/dist/ssr/inputs/markdown/actions.js.map +1 -1
- package/dist/ssr/inputs/markdown/active-formats.js.map +1 -1
- package/dist/ssr/inputs/markdown/behaviors.js.map +1 -1
- package/dist/ssr/inputs/markdown/code-zone.js.map +1 -1
- package/dist/ssr/internal/color.js.map +1 -1
- package/dist/ssr/internal/field.js.map +1 -1
- package/dist/ssr/internal/portal.js.map +1 -1
- package/dist/ssr/intl/Format.js.map +1 -1
- package/dist/ssr/intl/index.js.map +1 -1
- package/dist/ssr/intl/locale.js.map +1 -1
- package/dist/ssr/intl/messages.js +2 -0
- package/dist/ssr/intl/messages.js.map +1 -1
- package/dist/ssr/layout/AppOverview.js +16 -6
- package/dist/ssr/layout/AppOverview.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +12 -8
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/BottomSheet.js.map +1 -1
- package/dist/ssr/layout/DataPanel.js +1 -0
- package/dist/ssr/layout/DataPanel.js.map +1 -1
- package/dist/ssr/layout/DetailPanel.js +1 -0
- package/dist/ssr/layout/DetailPanel.js.map +1 -1
- package/dist/ssr/layout/Discussion.js +3 -2
- package/dist/ssr/layout/Discussion.js.map +1 -1
- package/dist/ssr/layout/FloatingWindow.js +1 -0
- package/dist/ssr/layout/FloatingWindow.js.map +1 -1
- package/dist/ssr/layout/Navigation.js +3 -2
- package/dist/ssr/layout/Navigation.js.map +1 -1
- package/dist/ssr/layout/PanelDialog.js +1 -0
- package/dist/ssr/layout/PanelDialog.js.map +1 -1
- package/dist/ssr/layout/PanelHeader.js +1 -1
- package/dist/ssr/layout/PanelHeader.js.map +1 -1
- package/dist/ssr/layout/Panes.js.map +1 -1
- package/dist/ssr/layout/PullToRefresh.js +177 -0
- package/dist/ssr/layout/PullToRefresh.js.map +1 -0
- package/dist/ssr/layout/ScrollArea.js.map +1 -1
- package/dist/ssr/layout/Settings.js +2 -1
- package/dist/ssr/layout/Settings.js.map +1 -1
- package/dist/ssr/layout/SettingsCollection.js +1 -0
- package/dist/ssr/layout/SettingsCollection.js.map +1 -1
- package/dist/ssr/layout/SettingsModal.js.map +1 -1
- package/dist/ssr/layout/SidebarItemPreview.js.map +1 -1
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
- package/dist/ssr/layout/app-workspace-state.js.map +1 -1
- package/dist/ssr/layout/floating-window-geometry.js.map +1 -1
- package/dist/ssr/layout/index.js +1 -0
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/layout/navigation-model.js.map +1 -1
- package/dist/ssr/layout/panes-layout.js.map +1 -1
- package/dist/ssr/layout/scroll-fade.js.map +1 -1
- package/dist/ssr/layout/stable-id.js.map +1 -1
- package/dist/ssr/surfaces/Avatar.js +2 -1
- package/dist/ssr/surfaces/Avatar.js.map +1 -1
- package/dist/ssr/surfaces/DescriptionList.js.map +1 -1
- package/dist/ssr/surfaces/LinkCard.js +11 -2
- package/dist/ssr/surfaces/LinkCard.js.map +1 -1
- package/dist/ssr/surfaces/NotFoundState.js.map +1 -1
- package/dist/ssr/surfaces/NoticeCard.js.map +1 -1
- package/dist/ssr/surfaces/Paper.js +2 -1
- package/dist/ssr/surfaces/Paper.js.map +1 -1
- package/dist/ssr/surfaces/Placeholder.js +2 -1
- package/dist/ssr/surfaces/Placeholder.js.map +1 -1
- package/dist/ssr/surfaces/ProgressBar.js.map +1 -1
- package/dist/ssr/surfaces/StatCell.js +2 -1
- package/dist/ssr/surfaces/StatCell.js.map +1 -1
- package/dist/ssr/surfaces/StatGrid.js +1 -0
- package/dist/ssr/surfaces/StatGrid.js.map +1 -1
- package/dist/ssr/surfaces/StatusBadge.js.map +1 -1
- package/dist/ssr/surfaces/Tag.js.map +1 -1
- package/dist/ssr/surfaces/index.js.map +1 -1
- package/dist/ssr/widgets/Widget.js +1 -0
- package/dist/ssr/widgets/Widget.js.map +1 -1
- package/dist/ssr/widgets/WidgetHero.js.map +1 -1
- package/dist/ssr/widgets/WidgetList.js.map +1 -1
- package/dist/ssr/widgets/WidgetPills.js.map +1 -1
- package/dist/ssr/widgets/WidgetStat.js +1 -0
- package/dist/ssr/widgets/WidgetStat.js.map +1 -1
- package/dist/ssr/widgets/WidgetStatus.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/actions/SpotlightSearch.d.ts +1 -1
- package/dist/types/feedback/prompts.d.ts +2 -2
- package/dist/types/intl/messages.d.ts +1 -0
- package/dist/types/layout/AppOverview.d.ts +7 -0
- package/dist/types/layout/AppWorkspace.d.ts +14 -2
- package/dist/types/layout/PanelHeader.d.ts +1 -1
- package/dist/types/layout/PullToRefresh.d.ts +21 -0
- package/dist/types/layout/index.d.ts +3 -1
- package/dist/types/surfaces/LinkCard.d.ts +5 -2
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","createEffect","createSignal","createUniqueId","Show","useContext","Button","Tabs","prompts","resolveUiMessages","useUiMessages","createScrollFade","PanelDialogSurfaceContext","usePanelDialogSurface","panelDialogBasePanelClass","panelDialogPanelClass","panelDialogOptions","panelClassName","contentClassName","panelDialogWidePanelClass","panelDialogWideOptions","panelDialogFixedPanelClass","panelDialogFixedOptions","panelDialogWorkspacePanelClass","panelDialogWorkspaceOptions","confirmDiscardIfDirty","dirty","hasChanges","Boolean","confirm","discardUnsavedChanges","title","unsavedChangesTitle","variant","confirmText","discard","PanelDialogHeader","props","messages","_el$","_$getNextElement","_tmpl$4","_el$9","firstChild","_el$0","_co$2","_$getNextMarker","nextSibling","_el$2","_el$3","_el$5","_el$6","_co$","_el$1","_el$10","_co$3","_el$11","_el$12","_co$4","_$insert","_$createComponent","when","icon","children","_el$13","_tmpl$5","_$effect","_$className","subtitle","_el$4","_tmpl$","actions","_el$7","_tmpl$2","close","_el$8","_tmpl$3","_$addEventListener","_p$","_v$","closeLabel","closeDialog","_v$2","closeDisabled","e","_$setAttribute","t","_$setProperty","undefined","_$runHydrationEvents","_v$3","_v$4","PanelDialogBody","body","scrollFade","_el$14","_tmpl$6","_ref$","_$use","_v$5","scrollPreserveKey","_v$6","_v$7","a","PanelDialogFooter","_el$15","_tmpl$7","PanelDialogSection","id","internalOpen","setInternalOpen","defaultOpen","open","hideable","section","expand","collapse","toggle","next","disabled","onOpenChange","expanded","queueMicrotask","active","ownerDocument","activeElement","focus","contains","_el$16","_tmpl$11","_el$39","_el$40","_co$0","_el$24","_el$32","_el$33","_co$7","_el$25","_el$26","_el$28","_el$29","_co$6","_el$34","_el$35","_co$8","_el$36","_el$37","_co$9","_el$38","_ref$2","_el$17","_tmpl$1","ref","r$","_ref$3","onClick","_el$41","_el$18","_tmpl$9","_el$19","_el$21","_el$22","_co$5","_el$20","_tmpl$8","_tmpl$0","_el$42","_tmpl$12","_el$43","_el$27","_el$30","_ref$4","size","_tmpl$10","_v$8","_v$9","_v$0","_v$1","_v$10","_v$11","o","i","n","PanelDialogTabs","value","onValueChange","ariaLabel","label","dialogTabs","options","PanelDialog","surface","Provider","_el$44","_tmpl$13","Header","Body","Footer","Section","_$delegateEvents"],"sources":["layout/PanelDialog.tsx"],"sourcesContent":["import { createContext, createEffect, createSignal, createUniqueId, type JSX, Show, useContext } from \"solid-js\";\nimport { Button } from \"../actions/Button\";\nimport { Tabs } from \"../actions/Tabs\";\nimport type { OpenDialogOptions } from \"../feedback/dialog-core\";\nimport { prompts } from \"../feedback/prompts\";\nimport { resolveUiMessages, useUiMessages } from \"../intl/messages\";\nimport { createScrollFade } from \"./scroll-fade\";\n\nexport type PanelDialogSurface = \"contained\" | \"floating\";\n\nexport type PanelDialogProps = {\n children: JSX.Element;\n surface?: PanelDialogSurface;\n};\n\nexport type PanelDialogHeaderProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n close?: () => void;\n closeDisabled?: boolean;\n closeLabel?: string;\n};\n\nexport type PanelDialogBodyProps = {\n children: JSX.Element;\n scrollPreserveKey?: string;\n scrollFade?: boolean;\n};\n\nexport type PanelDialogFooterProps = {\n children: JSX.Element;\n};\n\nexport type PanelDialogSectionProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n children: JSX.Element;\n} & (\n | { hideable?: false; open?: never; defaultOpen?: never; onOpenChange?: never; disabled?: never }\n | { hideable: true; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; disabled?: boolean }\n);\n\nexport type PanelDialogTabOption<T extends string = string> = {\n value: T;\n label: JSX.Element;\n icon?: string;\n disabled?: boolean;\n};\n\nexport type PanelDialogTabsProps<T extends string = string> = {\n options: readonly PanelDialogTabOption<T>[];\n value: T | (() => T);\n onValueChange: (value: T) => void;\n ariaLabel?: string;\n label?: string;\n};\n\ntype PanelDialogComponent = ((props: PanelDialogProps) => JSX.Element) & {\n Header: (props: PanelDialogHeaderProps) => JSX.Element;\n Body: (props: PanelDialogBodyProps) => JSX.Element;\n Footer: (props: PanelDialogFooterProps) => JSX.Element;\n Section: (props: PanelDialogSectionProps) => JSX.Element;\n Tabs: <T extends string>(props: PanelDialogTabsProps<T>) => JSX.Element;\n};\n\nconst PanelDialogSurfaceContext = createContext<PanelDialogSurface>(\"contained\");\nconst usePanelDialogSurface = () => useContext(PanelDialogSurfaceContext);\n\nconst panelDialogBasePanelClass = \"k2b-dialog k2b-panel-dialog-frame\";\n\nexport const panelDialogPanelClass = `${panelDialogBasePanelClass} is-standard`;\nexport const panelDialogOptions = {\n panelClassName: panelDialogPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWidePanelClass = `${panelDialogBasePanelClass} is-wide`;\nexport const panelDialogWideOptions = {\n panelClassName: panelDialogWidePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogFixedPanelClass = `${panelDialogBasePanelClass} is-fixed`;\nexport const panelDialogFixedOptions = {\n panelClassName: panelDialogFixedPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-fixed\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWorkspacePanelClass = `${panelDialogBasePanelClass} is-workspace`;\nexport const panelDialogWorkspaceOptions = {\n panelClassName: panelDialogWorkspacePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-workspace\",\n} satisfies OpenDialogOptions;\n\nexport const confirmDiscardIfDirty = async (dirty: boolean | (() => boolean)): Promise<boolean> => {\n const hasChanges = typeof dirty === \"function\" ? dirty() : dirty;\n if (!hasChanges) return true;\n return Boolean(\n await prompts.confirm(resolveUiMessages().discardUnsavedChanges, {\n title: resolveUiMessages().unsavedChangesTitle,\n variant: \"danger\",\n confirmText: resolveUiMessages().discard,\n }),\n );\n};\n\nconst PanelDialogHeader = (props: PanelDialogHeaderProps): JSX.Element => {\n const messages = useUiMessages();\n return (\n <header class=\"k2b-panel-dialog__header\" data-surface={usePanelDialogSurface()} data-has-subtitle={Boolean(props.subtitle)}>\n <Show when={props.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <div class=\"k2b-panel-dialog__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-dialog__actions\">{props.actions}</div>\n </Show>\n <Show when={props.close}>\n <button\n type=\"button\"\n class=\"k2b-dialog__close\"\n aria-label={props.closeLabel ?? messages().closeDialog}\n disabled={props.closeDisabled}\n onClick={props.close}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </header>\n );\n};\n\nconst PanelDialogBody = (props: PanelDialogBodyProps): JSX.Element => {\n let body: HTMLDivElement | undefined;\n createScrollFade(\n () => body,\n () => props.scrollFade !== false,\n );\n return (\n <div\n ref={body}\n class=\"k2b-panel-dialog__body\"\n data-scroll-preserve={props.scrollPreserveKey}\n data-surface={usePanelDialogSurface()}\n data-scroll-fade-mode={props.scrollFade !== false ? \"both\" : undefined}\n >\n {props.children}\n </div>\n );\n};\n\nconst PanelDialogFooter = (props: PanelDialogFooterProps): JSX.Element => (\n <footer class=\"k2b-panel-dialog__footer\" data-surface={usePanelDialogSurface()}>\n {props.children}\n </footer>\n);\n\nconst PanelDialogSection = (props: PanelDialogSectionProps): JSX.Element => {\n const id = `k2b-panel-dialog-section-${createUniqueId()}`;\n const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? false);\n const open = () => !props.hideable || (props.open ?? internalOpen());\n let section: HTMLElement | undefined;\n let expand: HTMLButtonElement | undefined;\n let collapse: HTMLButtonElement | undefined;\n const toggle = (next: boolean) => {\n if (props.disabled) return;\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n createEffect(() => {\n if (!props.hideable) return;\n const expanded = open();\n queueMicrotask(() => {\n if (expanded !== open()) return;\n const active = section?.ownerDocument.activeElement;\n if (expanded && active === expand) collapse?.focus();\n if (!expanded && active && active !== expand && section?.contains(active)) expand?.focus();\n });\n });\n\n return (\n <section\n ref={section}\n class=\"k2b-panel-dialog__section\"\n data-surface={usePanelDialogSurface()}\n data-hideable={props.hideable || undefined}\n data-open={props.hideable ? open() : undefined}\n aria-labelledby={open() ? id : `${id}-closed`}\n >\n <Show when={props.hideable}>\n <div hidden={open()}>\n <Button\n ref={expand}\n variant=\"ghost\"\n class=\"k2b-panel-dialog__section-summary\"\n disabled={props.disabled}\n aria-expanded={false}\n aria-controls={`${id}-body`}\n onClick={() => toggle(true)}\n >\n <Show when={props.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <span class=\"k2b-panel-dialog__section-copy\">\n <span id={`${id}-closed`} class=\"k2b-panel-dialog__section-title\">\n {props.title}\n </span>\n <Show when={props.subtitle}>\n <span class=\"k2b-panel-dialog__section-subtitle\">{props.subtitle}</span>\n </Show>\n </span>\n <i class=\"ti ti-eye\" aria-hidden=\"true\" />\n </Button>\n </div>\n </Show>\n <header hidden={!open()}>\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-panel-dialog__section-icon\">\n <i class={icon()} aria-hidden=\"true\" />\n </span>\n )}\n </Show>\n <div>\n <h3 id={id}>{props.title}</h3>\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-dialog__actions\">{props.actions}</div>\n </Show>\n <Show when={props.hideable}>\n <Button\n ref={collapse}\n variant=\"ghost\"\n size=\"sm\"\n disabled={props.disabled}\n aria-labelledby={id}\n aria-expanded={true}\n aria-controls={`${id}-body`}\n onClick={() => toggle(false)}\n >\n <i class=\"ti ti-eye-off\" aria-hidden=\"true\" />\n </Button>\n </Show>\n </header>\n <div id={`${id}-body`} class=\"k2b-panel-dialog__section-body\" hidden={!open()}>\n {props.children}\n </div>\n </section>\n );\n};\n\nconst PanelDialogTabs = <T extends string>(props: PanelDialogTabsProps<T>): JSX.Element => {\n const messages = useUiMessages();\n return (\n <Tabs\n class=\"k2b-panel-dialog__tabs\"\n value={props.value}\n onValueChange={props.onValueChange}\n ariaLabel={props.ariaLabel ?? props.label ?? messages().dialogTabs}\n options={props.options}\n />\n );\n};\n\nconst PanelDialog = ((props: PanelDialogProps): JSX.Element => {\n const surface = props.surface ?? \"contained\";\n return (\n <PanelDialogSurfaceContext.Provider value={surface}>\n <div class=\"k2b-panel-dialog\" data-surface={surface}>\n {props.children}\n </div>\n </PanelDialogSurfaceContext.Provider>\n );\n}) as PanelDialogComponent;\n\nPanelDialog.Header = PanelDialogHeader;\nPanelDialog.Body = PanelDialogBody;\nPanelDialog.Footer = PanelDialogFooter;\nPanelDialog.Section = PanelDialogSection;\nPanelDialog.Tabs = PanelDialogTabs;\n\nexport default PanelDialog;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["layout/PanelDialog.tsx"],"sourcesContent":["import { createContext, createEffect, createSignal, createUniqueId, type JSX, Show, useContext } from \"solid-js\";\nimport { Button } from \"../actions/Button\";\nimport { Tabs } from \"../actions/Tabs\";\nimport type { OpenDialogOptions } from \"../feedback/dialog-core\";\nimport { prompts } from \"../feedback/prompts\";\nimport { resolveUiMessages, useUiMessages } from \"../intl/messages\";\nimport { createScrollFade } from \"./scroll-fade\";\n\nexport type PanelDialogSurface = \"contained\" | \"floating\";\n\nexport type PanelDialogProps = {\n children: JSX.Element;\n surface?: PanelDialogSurface;\n};\n\nexport type PanelDialogHeaderProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n close?: () => void;\n closeDisabled?: boolean;\n closeLabel?: string;\n};\n\nexport type PanelDialogBodyProps = {\n children: JSX.Element;\n scrollPreserveKey?: string;\n scrollFade?: boolean;\n};\n\nexport type PanelDialogFooterProps = {\n children: JSX.Element;\n};\n\nexport type PanelDialogSectionProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n children: JSX.Element;\n} & (\n | { hideable?: false; open?: never; defaultOpen?: never; onOpenChange?: never; disabled?: never }\n | { hideable: true; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; disabled?: boolean }\n);\n\nexport type PanelDialogTabOption<T extends string = string> = {\n value: T;\n label: JSX.Element;\n icon?: string;\n disabled?: boolean;\n};\n\nexport type PanelDialogTabsProps<T extends string = string> = {\n options: readonly PanelDialogTabOption<T>[];\n value: T | (() => T);\n onValueChange: (value: T) => void;\n ariaLabel?: string;\n label?: string;\n};\n\ntype PanelDialogComponent = ((props: PanelDialogProps) => JSX.Element) & {\n Header: (props: PanelDialogHeaderProps) => JSX.Element;\n Body: (props: PanelDialogBodyProps) => JSX.Element;\n Footer: (props: PanelDialogFooterProps) => JSX.Element;\n Section: (props: PanelDialogSectionProps) => JSX.Element;\n Tabs: <T extends string>(props: PanelDialogTabsProps<T>) => JSX.Element;\n};\n\nconst PanelDialogSurfaceContext = createContext<PanelDialogSurface>(\"contained\");\nconst usePanelDialogSurface = () => useContext(PanelDialogSurfaceContext);\n\nconst panelDialogBasePanelClass = \"k2b-dialog k2b-panel-dialog-frame\";\n\nexport const panelDialogPanelClass = `${panelDialogBasePanelClass} is-standard`;\nexport const panelDialogOptions = {\n panelClassName: panelDialogPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWidePanelClass = `${panelDialogBasePanelClass} is-wide`;\nexport const panelDialogWideOptions = {\n panelClassName: panelDialogWidePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogFixedPanelClass = `${panelDialogBasePanelClass} is-fixed`;\nexport const panelDialogFixedOptions = {\n panelClassName: panelDialogFixedPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-fixed\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWorkspacePanelClass = `${panelDialogBasePanelClass} is-workspace`;\nexport const panelDialogWorkspaceOptions = {\n panelClassName: panelDialogWorkspacePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-workspace\",\n} satisfies OpenDialogOptions;\n\nexport const confirmDiscardIfDirty = async (dirty: boolean | (() => boolean)): Promise<boolean> => {\n const hasChanges = typeof dirty === \"function\" ? dirty() : dirty;\n if (!hasChanges) return true;\n return Boolean(\n await prompts.confirm(resolveUiMessages().discardUnsavedChanges, {\n title: resolveUiMessages().unsavedChangesTitle,\n variant: \"danger\",\n confirmText: resolveUiMessages().discard,\n }),\n );\n};\n\nconst PanelDialogHeader = (props: PanelDialogHeaderProps): JSX.Element => {\n const messages = useUiMessages();\n return (\n <header class=\"k2b-panel-dialog__header\" data-surface={usePanelDialogSurface()} data-has-subtitle={Boolean(props.subtitle)}>\n <Show when={props.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <div class=\"k2b-panel-dialog__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-dialog__actions\">{props.actions}</div>\n </Show>\n <Show when={props.close}>\n <button\n type=\"button\"\n class=\"k2b-dialog__close\"\n aria-label={props.closeLabel ?? messages().closeDialog}\n disabled={props.closeDisabled}\n onClick={props.close}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </header>\n );\n};\n\nconst PanelDialogBody = (props: PanelDialogBodyProps): JSX.Element => {\n let body: HTMLDivElement | undefined;\n createScrollFade(\n () => body,\n () => props.scrollFade !== false,\n );\n return (\n <div\n ref={body}\n class=\"k2b-panel-dialog__body\"\n data-scroll-preserve={props.scrollPreserveKey}\n data-surface={usePanelDialogSurface()}\n data-scroll-fade-mode={props.scrollFade !== false ? \"both\" : undefined}\n >\n {props.children}\n </div>\n );\n};\n\nconst PanelDialogFooter = (props: PanelDialogFooterProps): JSX.Element => (\n <footer class=\"k2b-panel-dialog__footer\" data-surface={usePanelDialogSurface()}>\n {props.children}\n </footer>\n);\n\nconst PanelDialogSection = (props: PanelDialogSectionProps): JSX.Element => {\n const id = `k2b-panel-dialog-section-${createUniqueId()}`;\n const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? false);\n const open = () => !props.hideable || (props.open ?? internalOpen());\n let section: HTMLElement | undefined;\n let expand: HTMLButtonElement | undefined;\n let collapse: HTMLButtonElement | undefined;\n const toggle = (next: boolean) => {\n if (props.disabled) return;\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n createEffect(() => {\n if (!props.hideable) return;\n const expanded = open();\n queueMicrotask(() => {\n if (expanded !== open()) return;\n const active = section?.ownerDocument.activeElement;\n if (expanded && active === expand) collapse?.focus();\n if (!expanded && active && active !== expand && section?.contains(active)) expand?.focus();\n });\n });\n\n return (\n <section\n ref={section}\n class=\"k2b-panel-dialog__section\"\n data-surface={usePanelDialogSurface()}\n data-hideable={props.hideable || undefined}\n data-open={props.hideable ? open() : undefined}\n aria-labelledby={open() ? id : `${id}-closed`}\n >\n <Show when={props.hideable}>\n <div hidden={open()}>\n <Button\n ref={expand}\n variant=\"ghost\"\n class=\"k2b-panel-dialog__section-summary\"\n disabled={props.disabled}\n aria-expanded={false}\n aria-controls={`${id}-body`}\n onClick={() => toggle(true)}\n >\n <Show when={props.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <span class=\"k2b-panel-dialog__section-copy\">\n <span id={`${id}-closed`} class=\"k2b-panel-dialog__section-title\">\n {props.title}\n </span>\n <Show when={props.subtitle}>\n <span class=\"k2b-panel-dialog__section-subtitle\">{props.subtitle}</span>\n </Show>\n </span>\n <i class=\"ti ti-eye\" aria-hidden=\"true\" />\n </Button>\n </div>\n </Show>\n <header hidden={!open()}>\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-panel-dialog__section-icon\">\n <i class={icon()} aria-hidden=\"true\" />\n </span>\n )}\n </Show>\n <div>\n <h3 id={id}>{props.title}</h3>\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-dialog__actions\">{props.actions}</div>\n </Show>\n <Show when={props.hideable}>\n <Button\n ref={collapse}\n variant=\"ghost\"\n size=\"sm\"\n disabled={props.disabled}\n aria-labelledby={id}\n aria-expanded={true}\n aria-controls={`${id}-body`}\n onClick={() => toggle(false)}\n >\n <i class=\"ti ti-eye-off\" aria-hidden=\"true\" />\n </Button>\n </Show>\n </header>\n <div id={`${id}-body`} class=\"k2b-panel-dialog__section-body\" hidden={!open()}>\n {props.children}\n </div>\n </section>\n );\n};\n\nconst PanelDialogTabs = <T extends string>(props: PanelDialogTabsProps<T>): JSX.Element => {\n const messages = useUiMessages();\n return (\n <Tabs\n class=\"k2b-panel-dialog__tabs\"\n value={props.value}\n onValueChange={props.onValueChange}\n ariaLabel={props.ariaLabel ?? props.label ?? messages().dialogTabs}\n options={props.options}\n />\n );\n};\n\nconst PanelDialog = ((props: PanelDialogProps): JSX.Element => {\n const surface = props.surface ?? \"contained\";\n return (\n <PanelDialogSurfaceContext.Provider value={surface}>\n <div class=\"k2b-panel-dialog\" data-surface={surface}>\n {props.children}\n </div>\n </PanelDialogSurfaceContext.Provider>\n );\n}) as PanelDialogComponent;\n\nPanelDialog.Header = PanelDialogHeader;\nPanelDialog.Body = PanelDialogBody;\nPanelDialog.Footer = PanelDialogFooter;\nPanelDialog.Section = PanelDialogSection;\nPanelDialog.Tabs = PanelDialogTabs;\n\nexport default PanelDialog;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@ var _tmpl$ = /*#__PURE__*/_$template(`<h1>`),
|
|
|
14
14
|
_tmpl$6 = /*#__PURE__*/_$template(`<div><div class=k2b-panel-header__copy><!$><!/><!$><!/></div><!$><!/>`);
|
|
15
15
|
import { Show } from "solid-js";
|
|
16
16
|
const Heading = props => {
|
|
17
|
-
const className = `k2b-panel-header__title ${props.size === "md" ? "is-medium" : ""}`;
|
|
17
|
+
const className = `k2b-panel-header__title ${props.size === "md" ? "is-medium" : props.size === "lg" ? "is-large" : ""}`;
|
|
18
18
|
if (props.as === "h1") return (() => {
|
|
19
19
|
var _el$ = _$getNextElement(_tmpl$);
|
|
20
20
|
_$className(_el$, className);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["layout/PanelHeader.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\n\nexport type PanelHeaderProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n actions?: JSX.Element;\n as?: \"h1\" | \"h2\" | \"h3\";\n size?: \"sm\" | \"md\" | \"lg\";\n class?: string;\n};\n\nconst Heading = (props: Pick<PanelHeaderProps, \"as\" | \"size\" | \"title\">): JSX.Element => {\n const className = `k2b-panel-header__title ${props.size === \"md\" ? \"is-medium\" : props.size === \"lg\" ? \"is-large\" : \"\"}`;\n if (props.as === \"h1\") return <h1 class={className}>{props.title}</h1>;\n if (props.as === \"h3\") return <h3 class={className}>{props.title}</h3>;\n return <h2 class={className}>{props.title}</h2>;\n};\n\nexport function PanelHeader(props: PanelHeaderProps): JSX.Element {\n return (\n <div class={`k2b-panel-header ${props.class ?? \"\"}`} data-size={props.size ?? \"sm\"}>\n <div class=\"k2b-panel-header__copy\">\n <Heading as={props.as} size={props.size} title={props.title} />\n <Show when={props.subtitle}>\n <p class=\"k2b-panel-header__subtitle\">{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-header__actions\">{props.actions}</div>\n </Show>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAmB,IAAI,QAAQ,UAAU;AAWzC,MAAM,OAAO,GAAI,KAAsD,IAAkB;EACvF,MAAM,SAAS,GAAG,2BAA2B,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,UAAU,GAAG,EAAE,EAAE;EACxH,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;IAAA;IAAA,kBAAkB,SAAS;IAAA,qBAAG,KAAK,CAAC,KAAK;IAAA;EAAA;EAChE,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;IAAA;IAAA,mBAAkB,SAAS;IAAA,sBAAG,KAAK,CAAC,KAAK;IAAA;EAAA;EAChE;IAAA;IAAA,mBAAkB,SAAS;IAAA,sBAAG,KAAK,CAAC,KAAK;IAAA;EAAA;AAC3C,CAAC;AAED,OAAO,SAAS,WAAW,CAAC,KAAuB,EAAe;EAChE;IAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA,kCAGO,OAAO;MAAA,IAAC,EAAE;QAAA,OAAE,KAAK,CAAC,EAAE;MAAA;MAAA,IAAE,IAAI;QAAA,OAAE,KAAK,CAAC,IAAI;MAAA;MAAA,IAAE,KAAK;QAAA,OAAE,KAAK,CAAC,KAAK;MAAA;IAAA;IAAA,kCAC1D,IAAI;MAAA,IAAC,IAAI;QAAA,OAAE,KAAK,CAAC,QAAQ;MAAA;MAAA;QAAA;QAAA,sBACe,KAAK,CAAC,QAAQ;QAAA;MAAA;IAAA;IAAA,kCAGxD,IAAI;MAAA,IAAC,IAAI;QAAA,OAAE,KAAK,CAAC,OAAO;MAAA;MAAA;QAAA;QAAA,sBACiB,KAAK,CAAC,OAAO;QAAA;MAAA;IAAA;IAAA;MAAA,UAR7C,oBAAoB,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;QAAA,OAAa,KAAK,CAAC,IAAI,IAAI,IAAI;MAAA;MAAA;MAAA;IAAA;MAAA;MAAA;IAAA;IAAA;EAAA;AAYtF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["dnd","createEffect","createMemo","createSignal","createUniqueId","For","onCleanup","onMount","Show","useUiMessages","activatePanesItem","applyPanesIntent","getPanesDropTargets","PANES_MAX_ID_LENGTH","PANES_MIN_RATIO","parsePanesLayout","resizePanesSplit","samePanesIntent","assertUniqueStableUiIds","PANES_RESIZE_SNAP_DISTANCE","PANES_RESIZE_UNSNAP_DISTANCE","PANES_RESIZE_NEIGHBOR_GAP","intervalGap","left","right","crossEnd","crossStart","resolvePanesResizeSnap","coordinate","source","candidates","options","neighbors","filter","candidate","gap","activeCoordinate","active","undefined","find","Math","abs","snappedTo","previous","previousCoordinate","winner","winnerDistance","Number","POSITIVE_INFINITY","distanceToRange","min","max","distanceToCoordinate","indexPanesDropTargets","targets","mutable","Map","target","indexed","get","targetItemId","tabs","body","set","kind","beforeItemId","push","iconClass","icon","value","trim","startsWith","collectLayoutItemIds","node","ids","type","items","first","second","nearestDroppable","entries","reduce","entry","distance","pointerHitsPanesDropTarget","pointer","hitElement","element","contains","side","meta","containsPointer","x","rect","y","top","width","corner","height","panesCollisionDetector","context","mode","document","droppables","ownerDocument","elementFromPoint","id","createItemMap","map","item","requireItem","Error","Panes","props","messages","instanceId","layout","root","canMove","movable","canResize","resizable","split","draggedItemId","setDraggedItemId","dragMode","setDragMode","dropTargets","itemId","dropTargetIndex","paneDnd","create","collisionDetector","buildIntent","over","intent","isSameIntent","onDragStart","announcements","dragStart","label","dragOver","drop","cancel","onDrop","current","next","onLayoutChange","queueMicrotask","getElementById","focus","onCancel","activate","requestAdd","onAddItem","_el$","_$getNextElement","_tmpl$","_$insert","_$createComponent","when","fallback","_el$2","_tmpl$3","children","_el$3","_tmpl$2","_el$4","firstChild","_el$5","nextSibling","$$click","addPane","_$effect","_$setAttribute","_$runHydrationEvents","PanesNodeRenderer","path","itemById","addItem","canAdd","onActivate","_p$","_v$","class","_v$2","ariaLabel","paneWorkspace","e","_$className","t","group","PanesSplitRenderer","_$mergeProps","PanesGroupRenderer","container","separatorElement","stopResize","finishResize","stopActiveResize","finishActiveResize","commitRatio","ratio","resizeGeometry","separator","direction","containerRect","getBoundingClientRect","separatorRect","extent","separatorExtent","availableExtent","geometry","bottom","panes","closest","Array","from","querySelectorAll","origin","coordinateForRatio","ratioForCoordinate","startResize","event","preventDefault","pointerId","captureTarget","currentTarget","start","clientX","clientY","startRatio","startCoordinate","frame","pendingRatio","flush","cancelAnimationFrame","onMove","move","snapped","requestAnimationFrame","onEnd","end","window","removeEventListener","hasPointerCapture","releasePointerCapture","setPointerCapture","addEventListener","onResizeKeyDown","step","shiftKey","key","_el$6","_tmpl$4","_el$7","_el$8","_el$9","_ref$","_$use","$$keydown","$$pointerdown","_ref$2","_v$3","_v$4","_v$5","_v$6","round","_v$7","_v$8","_v$9","_v$0","_v$1","_v$10","resizePanes","_v$11","_$setStyleProperty","a","o","i","n","s","h","r","d","l","ActivePane","render","tabsElement","scrollbarDragOffset","stopTabPress","suppressedPointerClick","clearSuppressedPointerClick","dndInstanceId","draggableId","itemIds","groupTargets","index","targetBefore","targetAtEnd","bodyTargets","startTabPress","button","isPrimary","ownerWindow","stop","onPointerUp","onPointerCancel","up","releasedInside","shouldActivate","isDragging","clearTimeout","setTimeout","scrollbar","setScrollbar","overflow","syncScrollbar","clientWidth","scrollLeft","scrollWidth","scrollFromPointer","track","available","thumbLeft","startScrollbarDrag","observer","ResizeObserver","observe","disconnect","length","tabId","panelId","focusTab","onTabKeyDown","activeId","onClose","count","targetLabel","targetItem","addToNamed","name","title","before","insertBeforeNamed","insertAtEnd","addPaneSide","_el$0","_tmpl$8","_el$1","_el$11","_el$12","_co$","_$getNextMarker","_el$13","_el$14","_co$2","_el$15","_el$16","_co$3","_el$22","_el$23","_co$4","_el$19","_el$20","_el$24","_el$25","_co$5","_ref$3","each","_el$26","_tmpl$0","_el$32","_el$33","_co$6","_el$27","_el$28","_el$29","_el$30","_el$34","_el$35","_co$7","surface","draggable","disabled","focusable","keyboard","handleSelector","PanesDropTargetView","placement","detail","_el$31","_tmpl$9","stopPropagation","_v$19","closeNamed","_v$20","_v$21","_v$22","_v$23","_v$24","_v$25","_v$26","_v$27","_v$28","_v$29","_v$30","_v$31","_v$32","_v$33","_v$34","u","c","w","_el$10","_tmpl$5","_v$12","_v$13","_el$17","_tmpl$6","_el$18","$$pointerup","$$pointermove","_v$14","_v$15","keyed","_el$21","_tmpl$7","_v$16","paneTabs","_v$17","_v$18","_el$36","_tmpl$10","_el$38","_el$39","_co$8","_el$40","_el$41","_co$9","droppable","_el$42","_tmpl$11","_el$37","_tmpl$1","_v$35","_v$36","_v$37","_v$38","overId","_v$39","_$delegateEvents"],"sources":["layout/Panes.tsx"],"sourcesContent":["import { type DndCollisionContext, type DndController, type DndDroppableSnapshot, dnd } from \"@k2b/stdlib/solid\";\nimport { createEffect, createMemo, createSignal, createUniqueId, For, type JSX, onCleanup, onMount, Show } from \"solid-js\";\nimport { useUiMessages } from \"../intl/messages\";\nimport {\n activatePanesItem,\n applyPanesIntent,\n getPanesDropTargets,\n PANES_MAX_ID_LENGTH,\n PANES_MIN_RATIO,\n type PanesDropTarget,\n type PanesGroup,\n type PanesIntent,\n type PanesLayout,\n type PanesNode,\n type PanesPath,\n type PanesSplit,\n parsePanesLayout,\n resizePanesSplit,\n samePanesIntent,\n} from \"./panes-layout\";\nimport { assertUniqueStableUiIds } from \"./stable-id\";\n\nexport type PanesItem = {\n id: string;\n title: string;\n icon?: string;\n render: () => JSX.Element;\n onClose?: () => void;\n};\n\nexport type PanesProps = {\n layout: PanesLayout;\n onLayoutChange: (layout: PanesLayout) => void;\n items: readonly PanesItem[];\n movable?: boolean;\n resizable?: boolean;\n split?: false | \"horizontal\" | \"vertical\" | \"both\";\n onAddItem?: (targetItemId: string | null) => void;\n ariaLabel?: string;\n class?: string;\n};\n\ntype DragMeta = { itemId: string; label: string };\ntype DropMeta = { target: PanesDropTarget; label: string };\ntype PaneDnd = DndController<DragMeta, DropMeta, PanesIntent>;\n\ntype IndexedPanesDropTargets = {\n tabs: ReadonlyMap<string | null, PanesDropTarget>;\n body: readonly PanesDropTarget[];\n};\n\ntype PanesSeparatorGeometry = {\n coordinate: number;\n crossStart: number;\n crossEnd: number;\n};\n\nconst PANES_RESIZE_SNAP_DISTANCE = 8;\nconst PANES_RESIZE_UNSNAP_DISTANCE = 12;\nconst PANES_RESIZE_NEIGHBOR_GAP = 16;\n\nconst intervalGap = (left: PanesSeparatorGeometry, right: PanesSeparatorGeometry): number =>\n left.crossEnd < right.crossStart\n ? right.crossStart - left.crossEnd\n : right.crossEnd < left.crossStart\n ? left.crossStart - right.crossEnd\n : 0;\n\nexport const resolvePanesResizeSnap = (\n coordinate: number,\n source: PanesSeparatorGeometry,\n candidates: readonly PanesSeparatorGeometry[],\n options: { activeCoordinate?: number | null; previousCoordinate?: number } = {},\n): { coordinate: number; snappedTo: number | null } => {\n const neighbors = candidates.filter((candidate) => {\n const gap = intervalGap(source, candidate);\n return gap > 0 && gap <= PANES_RESIZE_NEIGHBOR_GAP;\n });\n const activeCoordinate = options.activeCoordinate;\n const active =\n activeCoordinate === null || activeCoordinate === undefined\n ? null\n : neighbors.find((candidate) => Math.abs(candidate.coordinate - activeCoordinate) < 0.5);\n if (active && Math.abs(coordinate - active.coordinate) <= PANES_RESIZE_UNSNAP_DISTANCE) {\n return { coordinate: active.coordinate, snappedTo: active.coordinate };\n }\n\n const previous = options.previousCoordinate;\n let winner: PanesSeparatorGeometry | null = null;\n let winnerDistance = Number.POSITIVE_INFINITY;\n for (const candidate of neighbors) {\n if (previous !== undefined && Math.abs(candidate.coordinate - previous) < 0.5) continue;\n const distanceToRange =\n previous === undefined ||\n candidate.coordinate < Math.min(previous, coordinate) ||\n candidate.coordinate > Math.max(previous, coordinate)\n ? Math.abs(candidate.coordinate - coordinate)\n : 0;\n const distanceToCoordinate = Math.abs(candidate.coordinate - coordinate);\n if (distanceToRange <= PANES_RESIZE_SNAP_DISTANCE && distanceToCoordinate < winnerDistance) {\n winner = candidate;\n winnerDistance = distanceToCoordinate;\n }\n }\n return winner ? { coordinate: winner.coordinate, snappedTo: winner.coordinate } : { coordinate, snappedTo: null };\n};\n\nexport const indexPanesDropTargets = (targets: readonly PanesDropTarget[]): ReadonlyMap<string, IndexedPanesDropTargets> => {\n const mutable = new Map<string, { tabs: Map<string | null, PanesDropTarget>; body: PanesDropTarget[] }>();\n for (const target of targets) {\n let indexed = mutable.get(target.targetItemId);\n if (!indexed) {\n indexed = { tabs: new Map(), body: [] };\n mutable.set(target.targetItemId, indexed);\n }\n if (target.kind === \"tab\") indexed.tabs.set(target.beforeItemId ?? null, target);\n else indexed.body.push(target);\n }\n return mutable;\n};\n\nconst iconClass = (icon: string | undefined): string => {\n const value = icon?.trim() || \"ti-layout-sidebar-right\";\n return value.startsWith(\"ti \") ? value : `ti ${value}`;\n};\n\nconst collectLayoutItemIds = (node: PanesNode | null, ids: string[] = []): string[] => {\n if (!node) return ids;\n if (node.type === \"group\") ids.push(...node.items);\n else {\n collectLayoutItemIds(node.first, ids);\n collectLayoutItemIds(node.second, ids);\n }\n return ids;\n};\n\nconst nearestDroppable = (entries: DndDroppableSnapshot<DropMeta>[]): DndDroppableSnapshot<DropMeta> | null =>\n entries.reduce<DndDroppableSnapshot<DropMeta> | null>(\n (winner, entry) => (!winner || entry.distance < winner.distance ? entry : winner),\n null,\n );\n\nexport const pointerHitsPanesDropTarget = (\n entry: Pick<DndDroppableSnapshot<DropMeta>, \"containsPointer\" | \"meta\" | \"rect\"> &\n Partial<Pick<DndDroppableSnapshot<DropMeta>, \"element\">>,\n pointer: { x: number; y: number },\n hitElement?: Element | null,\n): boolean => {\n if (hitElement !== undefined && !entry.element?.contains(hitElement)) return false;\n const side = entry.meta.target.side;\n if (entry.meta.target.kind !== \"split\" || !side) return entry.containsPointer;\n if (!entry.containsPointer) return false;\n const x = pointer.x - entry.rect.left;\n const y = pointer.y - entry.rect.top;\n if (side === \"top\") return x >= y && x <= entry.rect.width - y;\n if (side === \"bottom\") {\n const corner = entry.rect.height - y;\n return x >= corner && x <= entry.rect.width - corner;\n }\n if (side === \"left\") return y >= x && y <= entry.rect.height - x;\n const corner = entry.rect.width - x;\n return y >= corner && y <= entry.rect.height - corner;\n};\n\nconst panesCollisionDetector = (\n context: DndCollisionContext<DragMeta, DropMeta, PanesIntent>,\n mode: \"pointer\" | \"keyboard\" | null,\n): string | null => {\n const document = mode === \"pointer\" ? context.droppables[0]?.element.ownerDocument : undefined;\n const hitElement = document?.elementFromPoint(context.pointer.x, context.pointer.y) ?? undefined;\n return nearestDroppable(context.droppables.filter((entry) => pointerHitsPanesDropTarget(entry, context.pointer, hitElement)))?.id ?? null;\n};\n\nconst createItemMap = (items: readonly PanesItem[]): Map<string, PanesItem> => {\n assertUniqueStableUiIds(\n items.map((item) => item.id),\n \"Panes item id\",\n PANES_MAX_ID_LENGTH,\n );\n return new Map(items.map((item) => [item.id, item]));\n};\n\nconst requireItem = (items: Map<string, PanesItem>, id: string): PanesItem => {\n const item = items.get(id);\n if (!item) throw new Error(`Panes layout references missing item \"${id}\".`);\n return item;\n};\n\nexport default function Panes(props: PanesProps): JSX.Element {\n const messages = useUiMessages();\n const instanceId = `k2b-panes-${createUniqueId()}`;\n const items = createMemo(() => createItemMap(props.items));\n const layout = createMemo(() => {\n if (!parsePanesLayout(props.layout)) throw new Error(\"Panes layout must be a valid version 2 layout.\");\n for (const id of collectLayoutItemIds(props.layout.root)) requireItem(items(), id);\n return props.layout;\n });\n const canMove = () => props.movable ?? true;\n const canResize = () => props.resizable ?? true;\n const split = () => props.split ?? \"both\";\n const [draggedItemId, setDraggedItemId] = createSignal<string | null>(null);\n const [dragMode, setDragMode] = createSignal<\"pointer\" | \"keyboard\" | null>(null);\n const dropTargets = createMemo(() => {\n const itemId = draggedItemId();\n return itemId ? getPanesDropTargets(layout(), itemId, { movable: canMove(), split: split() }) : [];\n });\n const dropTargetIndex = createMemo(() => indexPanesDropTargets(dropTargets()));\n const paneDnd = dnd.create<DragMeta, DropMeta, PanesIntent>({\n collisionDetector: (context) => panesCollisionDetector(context, dragMode()),\n buildIntent: ({ over }) => over?.meta.target.intent ?? null,\n isSameIntent: samePanesIntent,\n onDragStart: ({ active, mode }) => {\n setDragMode(mode);\n setDraggedItemId(active.meta.itemId);\n },\n announcements: {\n dragStart: (active) => `Picked up ${active.meta.label}.`,\n dragOver: (active, over) => (over ? `Move ${active.meta.label} to ${over.meta.label}.` : `${active.meta.label} is not over a pane.`),\n drop: (active, over) => (over ? `Moved ${active.meta.label} to ${over.meta.label}.` : `Did not move ${active.meta.label}.`),\n cancel: (active) => `Cancelled moving ${active.meta.label}.`,\n },\n onDrop: ({ intent, mode }) => {\n setDragMode(null);\n setDraggedItemId(null);\n if (!intent) return;\n const current = layout();\n const next = applyPanesIntent(current, intent);\n if (next === current) return;\n props.onLayoutChange(next);\n if (mode === \"keyboard\") queueMicrotask(() => document.getElementById(`${instanceId}-${intent.itemId}-tab`)?.focus());\n },\n onCancel: () => {\n setDragMode(null);\n setDraggedItemId(null);\n },\n });\n const activate = (itemId: string) => {\n const current = layout();\n const next = activatePanesItem(current, itemId);\n if (next !== current) props.onLayoutChange(next);\n };\n const requestAdd = (targetItemId: string | null) => props.onAddItem?.(targetItemId);\n\n return (\n <div class={`k2b-panes ${props.class ?? \"\"}`} data-k2b-panes role=\"group\" aria-label={props.ariaLabel ?? messages().paneWorkspace}>\n <Show\n when={layout().root}\n fallback={\n <div class=\"k2b-panes__empty\">\n <Show when={props.onAddItem !== undefined}>\n <button type=\"button\" class=\"k2b-panes__add\" onClick={() => requestAdd(null)} aria-label={messages().addPane}>\n <i class=\"ti ti-plus\" aria-hidden=\"true\" />\n <span>{messages().addPane}</span>\n </button>\n </Show>\n </div>\n }\n >\n {(root) => (\n <PanesNodeRenderer\n node={root}\n path={[]}\n layout={layout}\n itemById={items}\n dnd={paneDnd}\n dropTargetIndex={dropTargetIndex}\n instanceId={instanceId}\n canMove={canMove}\n canResize={canResize}\n addItem={requestAdd}\n canAdd={() => props.onAddItem !== undefined}\n onActivate={activate}\n onLayoutChange={props.onLayoutChange}\n />\n )}\n </Show>\n </div>\n );\n}\n\ntype RendererProps = {\n node: () => PanesNode;\n path: PanesPath;\n layout: () => PanesLayout;\n itemById: () => Map<string, PanesItem>;\n dnd: PaneDnd;\n dropTargetIndex: () => ReadonlyMap<string, IndexedPanesDropTargets>;\n instanceId: string;\n canMove: () => boolean;\n canResize: () => boolean;\n addItem: (targetItemId: string | null) => void;\n canAdd: () => boolean;\n onActivate: (itemId: string) => void;\n onLayoutChange: (layout: PanesLayout) => void;\n};\n\nfunction PanesNodeRenderer(props: RendererProps): JSX.Element {\n const split = createMemo(() => {\n const node = props.node();\n return node.type === \"split\" ? node : null;\n });\n const group = createMemo(() => {\n const node = props.node();\n return node.type === \"group\" ? node : null;\n });\n return (\n <>\n <Show when={split()}>{(node) => <PanesSplitRenderer {...props} node={node} />}</Show>\n <Show when={group()}>{(node) => <PanesGroupRenderer {...props} node={node} />}</Show>\n </>\n );\n}\n\nfunction PanesSplitRenderer(props: Omit<RendererProps, \"node\"> & { node: () => PanesSplit }): JSX.Element {\n const messages = useUiMessages();\n let container: HTMLDivElement | undefined;\n let separatorElement: HTMLButtonElement | undefined;\n let stopResize: (() => void) | undefined;\n let finishResize: (() => void) | undefined;\n const stopActiveResize = () => {\n stopResize?.();\n stopResize = undefined;\n finishResize = undefined;\n };\n const finishActiveResize = () => {\n finishResize?.();\n stopResize = undefined;\n finishResize = undefined;\n };\n onCleanup(stopActiveResize);\n const commitRatio = (ratio: number) => {\n const current = props.layout();\n const next = resizePanesSplit(current, props.path, ratio);\n if (next !== current) props.onLayoutChange(next);\n };\n const resizeGeometry = (separator: HTMLElement | undefined) => {\n if (!separator) return null;\n const direction = props.node().direction;\n const containerRect = container?.getBoundingClientRect();\n const separatorRect = separator.getBoundingClientRect();\n const extent = direction === \"horizontal\" ? (containerRect?.width ?? 0) : (containerRect?.height ?? 0);\n const separatorExtent = direction === \"horizontal\" ? separatorRect.width : separatorRect.height;\n const availableExtent = extent - separatorExtent;\n if (!containerRect || availableExtent <= 0 || separatorRect.width <= 0 || separatorRect.height <= 0) return null;\n const geometry = (rect: DOMRect): PanesSeparatorGeometry =>\n direction === \"horizontal\"\n ? { coordinate: rect.left + rect.width / 2, crossStart: rect.top, crossEnd: rect.bottom }\n : { coordinate: rect.top + rect.height / 2, crossStart: rect.left, crossEnd: rect.right };\n const panes = separator.closest<HTMLElement>(\"[data-k2b-panes]\");\n const candidates = panes\n ? Array.from(panes.querySelectorAll<HTMLElement>(`.k2b-panes__separator[data-direction=\"${direction}\"]`))\n .filter((candidate) => candidate !== separator && candidate.closest(\"[data-k2b-panes]\") === panes)\n .map((candidate) => candidate.getBoundingClientRect())\n .filter((rect) => rect.width > 0 && rect.height > 0)\n .map(geometry)\n : [];\n const origin = direction === \"horizontal\" ? containerRect.left + separatorExtent / 2 : containerRect.top + separatorExtent / 2;\n return {\n source: geometry(separatorRect),\n candidates,\n coordinateForRatio: (ratio: number) => origin + availableExtent * ratio,\n ratioForCoordinate: (coordinate: number) => (coordinate - origin) / availableExtent,\n };\n };\n const startResize = (event: PointerEvent) => {\n if (!props.canResize()) return;\n event.preventDefault();\n stopActiveResize();\n const pointerId = event.pointerId;\n const captureTarget = (event.currentTarget as HTMLElement | null) ?? separatorElement;\n if (!captureTarget) return;\n const start = props.node().direction === \"horizontal\" ? event.clientX : event.clientY;\n const geometry = resizeGeometry(captureTarget);\n const startRatio = props.node().ratio;\n const startCoordinate = geometry?.source.coordinate;\n const rect = container?.getBoundingClientRect();\n const extent = Math.max(1, props.node().direction === \"horizontal\" ? (rect?.width ?? 1) : (rect?.height ?? 1));\n let snappedTo: number | null = null;\n let frame: number | undefined;\n let pendingRatio: number | undefined;\n const flush = () => {\n if (frame !== undefined) cancelAnimationFrame(frame);\n frame = undefined;\n if (pendingRatio === undefined) return;\n const ratio = pendingRatio;\n pendingRatio = undefined;\n commitRatio(ratio);\n };\n const onMove = (move: PointerEvent) => {\n if (move.pointerId !== pointerId) return;\n const current = props.node().direction === \"horizontal\" ? move.clientX : move.clientY;\n if (geometry && startCoordinate !== undefined) {\n const snapped = resolvePanesResizeSnap(startCoordinate + current - start, geometry.source, geometry.candidates, {\n activeCoordinate: snappedTo,\n });\n snappedTo = snapped.snappedTo;\n pendingRatio = geometry.ratioForCoordinate(snapped.coordinate);\n } else {\n pendingRatio = startRatio + (current - start) / extent;\n }\n if (frame === undefined) frame = requestAnimationFrame(flush);\n };\n const onEnd = (end: PointerEvent) => {\n if (end.pointerId === pointerId) finishActiveResize();\n };\n stopResize = () => {\n if (frame !== undefined) cancelAnimationFrame(frame);\n frame = undefined;\n pendingRatio = undefined;\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerup\", onEnd);\n window.removeEventListener(\"pointercancel\", onEnd);\n window.removeEventListener(\"blur\", finishActiveResize);\n if (captureTarget.hasPointerCapture?.(pointerId)) captureTarget.releasePointerCapture(pointerId);\n };\n finishResize = () => {\n flush();\n stopResize?.();\n };\n captureTarget.setPointerCapture?.(pointerId);\n window.addEventListener(\"pointermove\", onMove);\n window.addEventListener(\"pointerup\", onEnd);\n window.addEventListener(\"pointercancel\", onEnd);\n window.addEventListener(\"blur\", finishActiveResize);\n };\n const onResizeKeyDown = (event: KeyboardEvent) => {\n if (!props.canResize()) return;\n const step = event.shiftKey ? 0.08 : 0.02;\n let ratio: number | null = null;\n if (event.key === \"Home\") ratio = PANES_MIN_RATIO;\n if (event.key === \"End\") ratio = 1 - PANES_MIN_RATIO;\n if (props.node().direction === \"horizontal\" && event.key === \"ArrowLeft\") ratio = props.node().ratio - step;\n if (props.node().direction === \"horizontal\" && event.key === \"ArrowRight\") ratio = props.node().ratio + step;\n if (props.node().direction === \"vertical\" && event.key === \"ArrowUp\") ratio = props.node().ratio - step;\n if (props.node().direction === \"vertical\" && event.key === \"ArrowDown\") ratio = props.node().ratio + step;\n if (ratio === null) return;\n event.preventDefault();\n const geometry = resizeGeometry((event.currentTarget as HTMLElement | null) ?? separatorElement);\n if (geometry) {\n const snapped = resolvePanesResizeSnap(geometry.coordinateForRatio(ratio), geometry.source, geometry.candidates, {\n previousCoordinate: geometry.source.coordinate,\n });\n ratio = geometry.ratioForCoordinate(snapped.coordinate);\n }\n commitRatio(ratio);\n };\n return (\n <div ref={container} class=\"k2b-panes__split\" data-direction={props.node().direction}>\n <div class=\"k2b-panes__split-child\" style={{ flex: `${props.node().ratio} 1 0` }}>\n <PanesNodeRenderer {...props} node={() => props.node().first} path={[...props.path, \"first\"]} />\n </div>\n <button\n ref={separatorElement}\n type=\"button\"\n role=\"separator\"\n aria-orientation={props.node().direction === \"horizontal\" ? \"vertical\" : \"horizontal\"}\n aria-valuemin={Math.round(PANES_MIN_RATIO * 100)}\n aria-valuemax={Math.round((1 - PANES_MIN_RATIO) * 100)}\n aria-valuenow={Math.round(props.node().ratio * 100)}\n aria-disabled={!props.canResize()}\n tabIndex={props.canResize() ? 0 : -1}\n class=\"k2b-panes__separator\"\n data-direction={props.node().direction}\n aria-label={messages().resizePanes}\n onPointerDown={startResize}\n onKeyDown={onResizeKeyDown}\n >\n <span aria-hidden=\"true\" />\n </button>\n <div class=\"k2b-panes__split-child\" style={{ flex: `${1 - props.node().ratio} 1 0` }}>\n <PanesNodeRenderer {...props} node={() => props.node().second} path={[...props.path, \"second\"]} />\n </div>\n </div>\n );\n}\n\nfunction ActivePane(props: { itemId: string; itemById: () => Map<string, PanesItem> }): JSX.Element {\n return requireItem(props.itemById(), props.itemId).render();\n}\n\nfunction PanesGroupRenderer(props: Omit<RendererProps, \"node\"> & { node: () => PanesGroup }): JSX.Element {\n const messages = useUiMessages();\n let tabsElement: HTMLDivElement | undefined;\n let scrollbarDragOffset = 0;\n let stopTabPress: (() => void) | undefined;\n let suppressedPointerClick: string | null = null;\n let clearSuppressedPointerClick: number | undefined;\n const dndInstanceId = createUniqueId();\n const draggableId = (id: string) => `panes-item:${dndInstanceId}:${id}`;\n const itemIds = createMemo(() => props.node().items);\n const groupTargets = createMemo<IndexedPanesDropTargets | null>(() => {\n const index = props.dropTargetIndex();\n for (const itemId of itemIds()) {\n const indexed = index.get(itemId);\n if (indexed) return indexed;\n }\n return null;\n });\n const targetBefore = (itemId: string) => groupTargets()?.tabs.get(itemId);\n const targetAtEnd = () => groupTargets()?.tabs.get(null);\n const bodyTargets = () => groupTargets()?.body ?? [];\n const startTabPress = (event: PointerEvent & { currentTarget: HTMLButtonElement }, itemId: string) => {\n if (event.button !== 0 || event.isPrimary === false) return;\n stopTabPress?.();\n const pointerId = event.pointerId;\n const button = event.currentTarget;\n const ownerWindow = window;\n const stop = () => {\n ownerWindow.removeEventListener(\"pointerup\", onPointerUp, true);\n ownerWindow.removeEventListener(\"pointercancel\", onPointerCancel, true);\n if (stopTabPress === stop) stopTabPress = undefined;\n };\n const onPointerUp = (up: PointerEvent) => {\n if (up.pointerId !== pointerId) return;\n const rect = button.getBoundingClientRect();\n const releasedInside = up.clientX >= rect.left && up.clientX <= rect.right && up.clientY >= rect.top && up.clientY <= rect.bottom;\n const shouldActivate = releasedInside && !props.dnd.isDragging();\n stop();\n if (!shouldActivate) return;\n suppressedPointerClick = itemId;\n if (clearSuppressedPointerClick !== undefined) ownerWindow.clearTimeout(clearSuppressedPointerClick);\n clearSuppressedPointerClick = ownerWindow.setTimeout(() => {\n if (suppressedPointerClick === itemId) suppressedPointerClick = null;\n clearSuppressedPointerClick = undefined;\n }, 0);\n props.onActivate(itemId);\n };\n const onPointerCancel = (cancel: PointerEvent) => {\n if (cancel.pointerId === pointerId) stop();\n };\n stopTabPress = stop;\n ownerWindow.addEventListener(\"pointerup\", onPointerUp, true);\n ownerWindow.addEventListener(\"pointercancel\", onPointerCancel, true);\n };\n onCleanup(() => {\n stopTabPress?.();\n if (clearSuppressedPointerClick !== undefined) window.clearTimeout(clearSuppressedPointerClick);\n });\n const [scrollbar, setScrollbar] = createSignal({ overflow: false, left: 0, width: 0 });\n const syncScrollbar = () => {\n if (!tabsElement) return;\n const { clientWidth, scrollLeft, scrollWidth } = tabsElement;\n if (scrollWidth <= clientWidth || clientWidth <= 0) {\n setScrollbar({ overflow: false, left: 0, width: 0 });\n return;\n }\n const width = Math.min(clientWidth, Math.max(24, (clientWidth * clientWidth) / scrollWidth));\n const left = (scrollLeft / (scrollWidth - clientWidth)) * (clientWidth - width);\n setScrollbar({ overflow: true, left, width });\n };\n const scrollFromPointer = (event: PointerEvent & { currentTarget: HTMLDivElement }) => {\n if (!tabsElement) return;\n const track = event.currentTarget;\n const { left, width } = scrollbar();\n const rect = track.getBoundingClientRect();\n const available = Math.max(1, rect.width - width);\n const thumbLeft = Math.min(available, Math.max(0, event.clientX - rect.left - scrollbarDragOffset));\n tabsElement.scrollLeft = (thumbLeft / available) * (tabsElement.scrollWidth - tabsElement.clientWidth);\n syncScrollbar();\n };\n const startScrollbarDrag = (event: PointerEvent & { currentTarget: HTMLDivElement }) => {\n event.preventDefault();\n const track = event.currentTarget;\n const current = scrollbar();\n scrollbarDragOffset =\n event.target === track\n ? current.width / 2\n : Math.min(current.width, Math.max(0, event.clientX - track.getBoundingClientRect().left - current.left));\n track.setPointerCapture(event.pointerId);\n scrollFromPointer(event);\n };\n onMount(() => {\n syncScrollbar();\n const observer = typeof ResizeObserver === \"undefined\" ? null : new ResizeObserver(syncScrollbar);\n if (tabsElement) observer?.observe(tabsElement);\n onCleanup(() => observer?.disconnect());\n });\n createEffect(() => {\n itemIds().length;\n props.itemById();\n groupTargets();\n props.canAdd();\n queueMicrotask(syncScrollbar);\n });\n const tabId = (itemId: string) => `${props.instanceId}-${itemId}-tab`;\n const panelId = (itemId: string) => `${props.instanceId}-${itemId}-panel`;\n const focusTab = (index: number) => {\n const itemId = itemIds()[index];\n if (!itemId) return;\n props.onActivate(itemId);\n queueMicrotask(() => document.getElementById(tabId(itemId))?.focus());\n };\n const onTabKeyDown = (event: KeyboardEvent, index: number, itemId: string) => {\n if (props.dnd.activeId() === draggableId(itemId)) return;\n const item = requireItem(props.itemById(), itemId);\n if ((event.key === \"Delete\" || event.key === \"Backspace\") && item.onClose) {\n event.preventDefault();\n item.onClose();\n return;\n }\n const count = itemIds().length;\n let next: number | null = null;\n if (event.key === \"ArrowLeft\") next = (index - 1 + count) % count;\n if (event.key === \"ArrowRight\") next = (index + 1) % count;\n if (event.key === \"Home\") next = 0;\n if (event.key === \"End\") next = count - 1;\n if (next === null) return;\n event.preventDefault();\n focusTab(next);\n };\n const targetLabel = (target: PanesDropTarget): string => {\n const targetItem = requireItem(props.itemById(), target.targetItemId);\n if (target.kind === \"group\") return messages().addToNamed({ name: targetItem.title });\n if (target.kind === \"tab\") {\n const before = target.beforeItemId ? requireItem(props.itemById(), target.beforeItemId) : null;\n return before ? messages().insertBeforeNamed({ name: before.title }) : messages().insertAtEnd;\n }\n return target.side\n ? messages().addPaneSide({ side: target.side, name: targetItem.title })\n : messages().addToNamed({ name: targetItem.title });\n };\n return (\n <section class=\"k2b-panes__group\">\n <div\n ref={tabsElement}\n class=\"k2b-panes__tabs\"\n role=\"tablist\"\n aria-label={messages().paneTabs}\n aria-orientation=\"horizontal\"\n onScroll={syncScrollbar}\n >\n <For each={itemIds()}>\n {(itemId, index) => {\n const item = () => requireItem(props.itemById(), itemId);\n const active = () => props.node().active === itemId;\n return (\n <div\n ref={(surface) =>\n props.dnd.draggable(surface, () => ({\n id: draggableId(itemId),\n meta: { itemId, label: item().title },\n disabled: !props.canMove(),\n focusable: false,\n keyboard: true,\n handleSelector: \".k2b-panes__tab-button\",\n }))\n }\n class=\"k2b-panes__tab\"\n data-active={active() ? \"true\" : undefined}\n data-closable={item().onClose !== undefined ? \"true\" : undefined}\n data-movable={props.canMove() ? \"true\" : undefined}\n data-dnd-active={props.dnd.activeId() === draggableId(itemId) ? \"true\" : undefined}\n >\n <Show when={targetBefore(itemId)}>\n {(target) => <PanesDropTargetView target={target()} label={targetLabel(target())} dnd={props.dnd} placement=\"tab\" />}\n </Show>\n <button\n id={tabId(itemId)}\n type=\"button\"\n class=\"k2b-panes__tab-button\"\n role=\"tab\"\n aria-label={item().title}\n aria-selected={active()}\n aria-controls={active() ? panelId(itemId) : undefined}\n aria-posinset={index() + 1}\n aria-setsize={itemIds().length}\n aria-keyshortcuts={item().onClose ? \"Delete Backspace\" : undefined}\n tabIndex={active() ? 0 : -1}\n title={item().title}\n onPointerDown={(event) => startTabPress(event, itemId)}\n onClick={(event) => {\n if (event?.detail > 0 && suppressedPointerClick === itemId) {\n suppressedPointerClick = null;\n if (clearSuppressedPointerClick !== undefined) {\n window.clearTimeout(clearSuppressedPointerClick);\n clearSuppressedPointerClick = undefined;\n }\n return;\n }\n props.onActivate(itemId);\n }}\n onKeyDown={(event) => onTabKeyDown(event, index(), itemId)}\n >\n <span class=\"k2b-ui k2b-panes__drag-surface k2b-panes__drag-preview\" data-dnd-preview>\n <i class={`${iconClass(item().icon)} k2b-panes__icon`} aria-hidden=\"true\" />\n <span>{item().title}</span>\n </span>\n </button>\n <Show when={item().onClose !== undefined}>\n <button\n type=\"button\"\n class=\"k2b-panes__close\"\n title={messages().closeNamed({ name: item().title })}\n aria-label={messages().closeNamed({ name: item().title })}\n onPointerDown={(event) => event.stopPropagation()}\n onClick={(event) => {\n event.stopPropagation();\n item().onClose?.();\n }}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n );\n }}\n </For>\n <Show when={targetAtEnd()}>\n {(target) => <PanesDropTargetView target={target()} label={targetLabel(target())} dnd={props.dnd} placement=\"tab-end\" />}\n </Show>\n <Show when={props.canAdd()}>\n <button\n type=\"button\"\n class=\"k2b-panes__add k2b-panes__add--tab\"\n aria-label={messages().addPane}\n title={messages().addPane}\n onClick={() => props.addItem(props.node().active)}\n >\n <i class=\"ti ti-plus\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n <Show when={scrollbar().overflow}>\n <div\n class=\"k2b-panes__tabs-scrollbar\"\n aria-hidden=\"true\"\n onPointerDown={startScrollbarDrag}\n onPointerMove={(event) => {\n if (event.currentTarget.hasPointerCapture(event.pointerId)) scrollFromPointer(event);\n }}\n onPointerUp={(event) => event.currentTarget.releasePointerCapture(event.pointerId)}\n onPointerCancel={(event) => event.currentTarget.releasePointerCapture(event.pointerId)}\n >\n <span\n style={{\n \"--k2b-panes-scroll-left\": `${scrollbar().left}px`,\n \"--k2b-panes-scroll-width\": `${scrollbar().width}px`,\n }}\n />\n </div>\n </Show>\n <div class=\"k2b-panes__body\">\n <div id={panelId(props.node().active)} class=\"k2b-panes__panel\" role=\"tabpanel\" aria-labelledby={tabId(props.node().active)}>\n <Show when={props.node().active} keyed>\n {(itemId) => <ActivePane itemId={itemId} itemById={props.itemById} />}\n </Show>\n </div>\n </div>\n <Show when={bodyTargets().length > 0}>\n <div class=\"k2b-panes__drop-targets\" aria-hidden=\"true\">\n <For each={bodyTargets()}>\n {(target) => <PanesDropTargetView target={target} label={targetLabel(target)} dnd={props.dnd} placement=\"body\" />}\n </For>\n </div>\n </Show>\n </section>\n );\n}\n\nfunction PanesDropTargetView(props: {\n target: PanesDropTarget;\n label: string;\n dnd: PaneDnd;\n placement: \"tab\" | \"tab-end\" | \"body\";\n}): JSX.Element {\n const icon = () => {\n if (props.target.kind === \"group\") return \"ti ti-plus\";\n if (props.target.kind === \"tab\") return props.placement === \"tab\" ? \"ti ti-spacing-horizontal\" : null;\n if (props.target.side === \"top\") return \"ti ti-row-insert-top\";\n if (props.target.side === \"bottom\") return \"ti ti-row-insert-bottom\";\n if (props.target.side === \"left\") return \"ti ti-column-insert-left\";\n return \"ti ti-column-insert-right\";\n };\n return (\n <div\n ref={(element) =>\n props.dnd.droppable(element, () => ({\n id: `panes-target:${props.target.id}`,\n meta: { target: props.target, label: props.label },\n }))\n }\n class=\"k2b-panes__drop-target\"\n data-kind={props.target.kind}\n data-placement={props.placement}\n data-zone={props.target.side}\n data-active={props.dnd.overId() === `panes-target:${props.target.id}` ? \"true\" : undefined}\n title={props.label}\n aria-hidden=\"true\"\n >\n <Show when={icon()} keyed>\n {(iconClass) => <i class={iconClass} aria-hidden=\"true\" />}\n </Show>\n <Show when={props.target.kind === \"split\"}>\n <span>{props.label}</span>\n </Show>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["layout/Panes.tsx"],"sourcesContent":["import { type DndCollisionContext, type DndController, type DndDroppableSnapshot, dnd } from \"@k2b/stdlib/solid\";\nimport { createEffect, createMemo, createSignal, createUniqueId, For, type JSX, onCleanup, onMount, Show } from \"solid-js\";\nimport { useUiMessages } from \"../intl/messages\";\nimport {\n activatePanesItem,\n applyPanesIntent,\n getPanesDropTargets,\n PANES_MAX_ID_LENGTH,\n PANES_MIN_RATIO,\n type PanesDropTarget,\n type PanesGroup,\n type PanesIntent,\n type PanesLayout,\n type PanesNode,\n type PanesPath,\n type PanesSplit,\n parsePanesLayout,\n resizePanesSplit,\n samePanesIntent,\n} from \"./panes-layout\";\nimport { assertUniqueStableUiIds } from \"./stable-id\";\n\nexport type PanesItem = {\n id: string;\n title: string;\n icon?: string;\n render: () => JSX.Element;\n onClose?: () => void;\n};\n\nexport type PanesProps = {\n layout: PanesLayout;\n onLayoutChange: (layout: PanesLayout) => void;\n items: readonly PanesItem[];\n movable?: boolean;\n resizable?: boolean;\n split?: false | \"horizontal\" | \"vertical\" | \"both\";\n onAddItem?: (targetItemId: string | null) => void;\n ariaLabel?: string;\n class?: string;\n};\n\ntype DragMeta = { itemId: string; label: string };\ntype DropMeta = { target: PanesDropTarget; label: string };\ntype PaneDnd = DndController<DragMeta, DropMeta, PanesIntent>;\n\ntype IndexedPanesDropTargets = {\n tabs: ReadonlyMap<string | null, PanesDropTarget>;\n body: readonly PanesDropTarget[];\n};\n\ntype PanesSeparatorGeometry = {\n coordinate: number;\n crossStart: number;\n crossEnd: number;\n};\n\nconst PANES_RESIZE_SNAP_DISTANCE = 8;\nconst PANES_RESIZE_UNSNAP_DISTANCE = 12;\nconst PANES_RESIZE_NEIGHBOR_GAP = 16;\n\nconst intervalGap = (left: PanesSeparatorGeometry, right: PanesSeparatorGeometry): number =>\n left.crossEnd < right.crossStart\n ? right.crossStart - left.crossEnd\n : right.crossEnd < left.crossStart\n ? left.crossStart - right.crossEnd\n : 0;\n\nexport const resolvePanesResizeSnap = (\n coordinate: number,\n source: PanesSeparatorGeometry,\n candidates: readonly PanesSeparatorGeometry[],\n options: { activeCoordinate?: number | null; previousCoordinate?: number } = {},\n): { coordinate: number; snappedTo: number | null } => {\n const neighbors = candidates.filter((candidate) => {\n const gap = intervalGap(source, candidate);\n return gap > 0 && gap <= PANES_RESIZE_NEIGHBOR_GAP;\n });\n const activeCoordinate = options.activeCoordinate;\n const active =\n activeCoordinate === null || activeCoordinate === undefined\n ? null\n : neighbors.find((candidate) => Math.abs(candidate.coordinate - activeCoordinate) < 0.5);\n if (active && Math.abs(coordinate - active.coordinate) <= PANES_RESIZE_UNSNAP_DISTANCE) {\n return { coordinate: active.coordinate, snappedTo: active.coordinate };\n }\n\n const previous = options.previousCoordinate;\n let winner: PanesSeparatorGeometry | null = null;\n let winnerDistance = Number.POSITIVE_INFINITY;\n for (const candidate of neighbors) {\n if (previous !== undefined && Math.abs(candidate.coordinate - previous) < 0.5) continue;\n const distanceToRange =\n previous === undefined ||\n candidate.coordinate < Math.min(previous, coordinate) ||\n candidate.coordinate > Math.max(previous, coordinate)\n ? Math.abs(candidate.coordinate - coordinate)\n : 0;\n const distanceToCoordinate = Math.abs(candidate.coordinate - coordinate);\n if (distanceToRange <= PANES_RESIZE_SNAP_DISTANCE && distanceToCoordinate < winnerDistance) {\n winner = candidate;\n winnerDistance = distanceToCoordinate;\n }\n }\n return winner ? { coordinate: winner.coordinate, snappedTo: winner.coordinate } : { coordinate, snappedTo: null };\n};\n\nexport const indexPanesDropTargets = (targets: readonly PanesDropTarget[]): ReadonlyMap<string, IndexedPanesDropTargets> => {\n const mutable = new Map<string, { tabs: Map<string | null, PanesDropTarget>; body: PanesDropTarget[] }>();\n for (const target of targets) {\n let indexed = mutable.get(target.targetItemId);\n if (!indexed) {\n indexed = { tabs: new Map(), body: [] };\n mutable.set(target.targetItemId, indexed);\n }\n if (target.kind === \"tab\") indexed.tabs.set(target.beforeItemId ?? null, target);\n else indexed.body.push(target);\n }\n return mutable;\n};\n\nconst iconClass = (icon: string | undefined): string => {\n const value = icon?.trim() || \"ti-layout-sidebar-right\";\n return value.startsWith(\"ti \") ? value : `ti ${value}`;\n};\n\nconst collectLayoutItemIds = (node: PanesNode | null, ids: string[] = []): string[] => {\n if (!node) return ids;\n if (node.type === \"group\") ids.push(...node.items);\n else {\n collectLayoutItemIds(node.first, ids);\n collectLayoutItemIds(node.second, ids);\n }\n return ids;\n};\n\nconst nearestDroppable = (entries: DndDroppableSnapshot<DropMeta>[]): DndDroppableSnapshot<DropMeta> | null =>\n entries.reduce<DndDroppableSnapshot<DropMeta> | null>(\n (winner, entry) => (!winner || entry.distance < winner.distance ? entry : winner),\n null,\n );\n\nexport const pointerHitsPanesDropTarget = (\n entry: Pick<DndDroppableSnapshot<DropMeta>, \"containsPointer\" | \"meta\" | \"rect\"> &\n Partial<Pick<DndDroppableSnapshot<DropMeta>, \"element\">>,\n pointer: { x: number; y: number },\n hitElement?: Element | null,\n): boolean => {\n if (hitElement !== undefined && !entry.element?.contains(hitElement)) return false;\n const side = entry.meta.target.side;\n if (entry.meta.target.kind !== \"split\" || !side) return entry.containsPointer;\n if (!entry.containsPointer) return false;\n const x = pointer.x - entry.rect.left;\n const y = pointer.y - entry.rect.top;\n if (side === \"top\") return x >= y && x <= entry.rect.width - y;\n if (side === \"bottom\") {\n const corner = entry.rect.height - y;\n return x >= corner && x <= entry.rect.width - corner;\n }\n if (side === \"left\") return y >= x && y <= entry.rect.height - x;\n const corner = entry.rect.width - x;\n return y >= corner && y <= entry.rect.height - corner;\n};\n\nconst panesCollisionDetector = (\n context: DndCollisionContext<DragMeta, DropMeta, PanesIntent>,\n mode: \"pointer\" | \"keyboard\" | null,\n): string | null => {\n const document = mode === \"pointer\" ? context.droppables[0]?.element.ownerDocument : undefined;\n const hitElement = document?.elementFromPoint(context.pointer.x, context.pointer.y) ?? undefined;\n return nearestDroppable(context.droppables.filter((entry) => pointerHitsPanesDropTarget(entry, context.pointer, hitElement)))?.id ?? null;\n};\n\nconst createItemMap = (items: readonly PanesItem[]): Map<string, PanesItem> => {\n assertUniqueStableUiIds(\n items.map((item) => item.id),\n \"Panes item id\",\n PANES_MAX_ID_LENGTH,\n );\n return new Map(items.map((item) => [item.id, item]));\n};\n\nconst requireItem = (items: Map<string, PanesItem>, id: string): PanesItem => {\n const item = items.get(id);\n if (!item) throw new Error(`Panes layout references missing item \"${id}\".`);\n return item;\n};\n\nexport default function Panes(props: PanesProps): JSX.Element {\n const messages = useUiMessages();\n const instanceId = `k2b-panes-${createUniqueId()}`;\n const items = createMemo(() => createItemMap(props.items));\n const layout = createMemo(() => {\n if (!parsePanesLayout(props.layout)) throw new Error(\"Panes layout must be a valid version 2 layout.\");\n for (const id of collectLayoutItemIds(props.layout.root)) requireItem(items(), id);\n return props.layout;\n });\n const canMove = () => props.movable ?? true;\n const canResize = () => props.resizable ?? true;\n const split = () => props.split ?? \"both\";\n const [draggedItemId, setDraggedItemId] = createSignal<string | null>(null);\n const [dragMode, setDragMode] = createSignal<\"pointer\" | \"keyboard\" | null>(null);\n const dropTargets = createMemo(() => {\n const itemId = draggedItemId();\n return itemId ? getPanesDropTargets(layout(), itemId, { movable: canMove(), split: split() }) : [];\n });\n const dropTargetIndex = createMemo(() => indexPanesDropTargets(dropTargets()));\n const paneDnd = dnd.create<DragMeta, DropMeta, PanesIntent>({\n collisionDetector: (context) => panesCollisionDetector(context, dragMode()),\n buildIntent: ({ over }) => over?.meta.target.intent ?? null,\n isSameIntent: samePanesIntent,\n onDragStart: ({ active, mode }) => {\n setDragMode(mode);\n setDraggedItemId(active.meta.itemId);\n },\n announcements: {\n dragStart: (active) => `Picked up ${active.meta.label}.`,\n dragOver: (active, over) => (over ? `Move ${active.meta.label} to ${over.meta.label}.` : `${active.meta.label} is not over a pane.`),\n drop: (active, over) => (over ? `Moved ${active.meta.label} to ${over.meta.label}.` : `Did not move ${active.meta.label}.`),\n cancel: (active) => `Cancelled moving ${active.meta.label}.`,\n },\n onDrop: ({ intent, mode }) => {\n setDragMode(null);\n setDraggedItemId(null);\n if (!intent) return;\n const current = layout();\n const next = applyPanesIntent(current, intent);\n if (next === current) return;\n props.onLayoutChange(next);\n if (mode === \"keyboard\") queueMicrotask(() => document.getElementById(`${instanceId}-${intent.itemId}-tab`)?.focus());\n },\n onCancel: () => {\n setDragMode(null);\n setDraggedItemId(null);\n },\n });\n const activate = (itemId: string) => {\n const current = layout();\n const next = activatePanesItem(current, itemId);\n if (next !== current) props.onLayoutChange(next);\n };\n const requestAdd = (targetItemId: string | null) => props.onAddItem?.(targetItemId);\n\n return (\n <div class={`k2b-panes ${props.class ?? \"\"}`} data-k2b-panes role=\"group\" aria-label={props.ariaLabel ?? messages().paneWorkspace}>\n <Show\n when={layout().root}\n fallback={\n <div class=\"k2b-panes__empty\">\n <Show when={props.onAddItem !== undefined}>\n <button type=\"button\" class=\"k2b-panes__add\" onClick={() => requestAdd(null)} aria-label={messages().addPane}>\n <i class=\"ti ti-plus\" aria-hidden=\"true\" />\n <span>{messages().addPane}</span>\n </button>\n </Show>\n </div>\n }\n >\n {(root) => (\n <PanesNodeRenderer\n node={root}\n path={[]}\n layout={layout}\n itemById={items}\n dnd={paneDnd}\n dropTargetIndex={dropTargetIndex}\n instanceId={instanceId}\n canMove={canMove}\n canResize={canResize}\n addItem={requestAdd}\n canAdd={() => props.onAddItem !== undefined}\n onActivate={activate}\n onLayoutChange={props.onLayoutChange}\n />\n )}\n </Show>\n </div>\n );\n}\n\ntype RendererProps = {\n node: () => PanesNode;\n path: PanesPath;\n layout: () => PanesLayout;\n itemById: () => Map<string, PanesItem>;\n dnd: PaneDnd;\n dropTargetIndex: () => ReadonlyMap<string, IndexedPanesDropTargets>;\n instanceId: string;\n canMove: () => boolean;\n canResize: () => boolean;\n addItem: (targetItemId: string | null) => void;\n canAdd: () => boolean;\n onActivate: (itemId: string) => void;\n onLayoutChange: (layout: PanesLayout) => void;\n};\n\nfunction PanesNodeRenderer(props: RendererProps): JSX.Element {\n const split = createMemo(() => {\n const node = props.node();\n return node.type === \"split\" ? node : null;\n });\n const group = createMemo(() => {\n const node = props.node();\n return node.type === \"group\" ? node : null;\n });\n return (\n <>\n <Show when={split()}>{(node) => <PanesSplitRenderer {...props} node={node} />}</Show>\n <Show when={group()}>{(node) => <PanesGroupRenderer {...props} node={node} />}</Show>\n </>\n );\n}\n\nfunction PanesSplitRenderer(props: Omit<RendererProps, \"node\"> & { node: () => PanesSplit }): JSX.Element {\n const messages = useUiMessages();\n let container: HTMLDivElement | undefined;\n let separatorElement: HTMLButtonElement | undefined;\n let stopResize: (() => void) | undefined;\n let finishResize: (() => void) | undefined;\n const stopActiveResize = () => {\n stopResize?.();\n stopResize = undefined;\n finishResize = undefined;\n };\n const finishActiveResize = () => {\n finishResize?.();\n stopResize = undefined;\n finishResize = undefined;\n };\n onCleanup(stopActiveResize);\n const commitRatio = (ratio: number) => {\n const current = props.layout();\n const next = resizePanesSplit(current, props.path, ratio);\n if (next !== current) props.onLayoutChange(next);\n };\n const resizeGeometry = (separator: HTMLElement | undefined) => {\n if (!separator) return null;\n const direction = props.node().direction;\n const containerRect = container?.getBoundingClientRect();\n const separatorRect = separator.getBoundingClientRect();\n const extent = direction === \"horizontal\" ? (containerRect?.width ?? 0) : (containerRect?.height ?? 0);\n const separatorExtent = direction === \"horizontal\" ? separatorRect.width : separatorRect.height;\n const availableExtent = extent - separatorExtent;\n if (!containerRect || availableExtent <= 0 || separatorRect.width <= 0 || separatorRect.height <= 0) return null;\n const geometry = (rect: DOMRect): PanesSeparatorGeometry =>\n direction === \"horizontal\"\n ? { coordinate: rect.left + rect.width / 2, crossStart: rect.top, crossEnd: rect.bottom }\n : { coordinate: rect.top + rect.height / 2, crossStart: rect.left, crossEnd: rect.right };\n const panes = separator.closest<HTMLElement>(\"[data-k2b-panes]\");\n const candidates = panes\n ? Array.from(panes.querySelectorAll<HTMLElement>(`.k2b-panes__separator[data-direction=\"${direction}\"]`))\n .filter((candidate) => candidate !== separator && candidate.closest(\"[data-k2b-panes]\") === panes)\n .map((candidate) => candidate.getBoundingClientRect())\n .filter((rect) => rect.width > 0 && rect.height > 0)\n .map(geometry)\n : [];\n const origin = direction === \"horizontal\" ? containerRect.left + separatorExtent / 2 : containerRect.top + separatorExtent / 2;\n return {\n source: geometry(separatorRect),\n candidates,\n coordinateForRatio: (ratio: number) => origin + availableExtent * ratio,\n ratioForCoordinate: (coordinate: number) => (coordinate - origin) / availableExtent,\n };\n };\n const startResize = (event: PointerEvent) => {\n if (!props.canResize()) return;\n event.preventDefault();\n stopActiveResize();\n const pointerId = event.pointerId;\n const captureTarget = (event.currentTarget as HTMLElement | null) ?? separatorElement;\n if (!captureTarget) return;\n const start = props.node().direction === \"horizontal\" ? event.clientX : event.clientY;\n const geometry = resizeGeometry(captureTarget);\n const startRatio = props.node().ratio;\n const startCoordinate = geometry?.source.coordinate;\n const rect = container?.getBoundingClientRect();\n const extent = Math.max(1, props.node().direction === \"horizontal\" ? (rect?.width ?? 1) : (rect?.height ?? 1));\n let snappedTo: number | null = null;\n let frame: number | undefined;\n let pendingRatio: number | undefined;\n const flush = () => {\n if (frame !== undefined) cancelAnimationFrame(frame);\n frame = undefined;\n if (pendingRatio === undefined) return;\n const ratio = pendingRatio;\n pendingRatio = undefined;\n commitRatio(ratio);\n };\n const onMove = (move: PointerEvent) => {\n if (move.pointerId !== pointerId) return;\n const current = props.node().direction === \"horizontal\" ? move.clientX : move.clientY;\n if (geometry && startCoordinate !== undefined) {\n const snapped = resolvePanesResizeSnap(startCoordinate + current - start, geometry.source, geometry.candidates, {\n activeCoordinate: snappedTo,\n });\n snappedTo = snapped.snappedTo;\n pendingRatio = geometry.ratioForCoordinate(snapped.coordinate);\n } else {\n pendingRatio = startRatio + (current - start) / extent;\n }\n if (frame === undefined) frame = requestAnimationFrame(flush);\n };\n const onEnd = (end: PointerEvent) => {\n if (end.pointerId === pointerId) finishActiveResize();\n };\n stopResize = () => {\n if (frame !== undefined) cancelAnimationFrame(frame);\n frame = undefined;\n pendingRatio = undefined;\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerup\", onEnd);\n window.removeEventListener(\"pointercancel\", onEnd);\n window.removeEventListener(\"blur\", finishActiveResize);\n if (captureTarget.hasPointerCapture?.(pointerId)) captureTarget.releasePointerCapture(pointerId);\n };\n finishResize = () => {\n flush();\n stopResize?.();\n };\n captureTarget.setPointerCapture?.(pointerId);\n window.addEventListener(\"pointermove\", onMove);\n window.addEventListener(\"pointerup\", onEnd);\n window.addEventListener(\"pointercancel\", onEnd);\n window.addEventListener(\"blur\", finishActiveResize);\n };\n const onResizeKeyDown = (event: KeyboardEvent) => {\n if (!props.canResize()) return;\n const step = event.shiftKey ? 0.08 : 0.02;\n let ratio: number | null = null;\n if (event.key === \"Home\") ratio = PANES_MIN_RATIO;\n if (event.key === \"End\") ratio = 1 - PANES_MIN_RATIO;\n if (props.node().direction === \"horizontal\" && event.key === \"ArrowLeft\") ratio = props.node().ratio - step;\n if (props.node().direction === \"horizontal\" && event.key === \"ArrowRight\") ratio = props.node().ratio + step;\n if (props.node().direction === \"vertical\" && event.key === \"ArrowUp\") ratio = props.node().ratio - step;\n if (props.node().direction === \"vertical\" && event.key === \"ArrowDown\") ratio = props.node().ratio + step;\n if (ratio === null) return;\n event.preventDefault();\n const geometry = resizeGeometry((event.currentTarget as HTMLElement | null) ?? separatorElement);\n if (geometry) {\n const snapped = resolvePanesResizeSnap(geometry.coordinateForRatio(ratio), geometry.source, geometry.candidates, {\n previousCoordinate: geometry.source.coordinate,\n });\n ratio = geometry.ratioForCoordinate(snapped.coordinate);\n }\n commitRatio(ratio);\n };\n return (\n <div ref={container} class=\"k2b-panes__split\" data-direction={props.node().direction}>\n <div class=\"k2b-panes__split-child\" style={{ flex: `${props.node().ratio} 1 0` }}>\n <PanesNodeRenderer {...props} node={() => props.node().first} path={[...props.path, \"first\"]} />\n </div>\n <button\n ref={separatorElement}\n type=\"button\"\n role=\"separator\"\n aria-orientation={props.node().direction === \"horizontal\" ? \"vertical\" : \"horizontal\"}\n aria-valuemin={Math.round(PANES_MIN_RATIO * 100)}\n aria-valuemax={Math.round((1 - PANES_MIN_RATIO) * 100)}\n aria-valuenow={Math.round(props.node().ratio * 100)}\n aria-disabled={!props.canResize()}\n tabIndex={props.canResize() ? 0 : -1}\n class=\"k2b-panes__separator\"\n data-direction={props.node().direction}\n aria-label={messages().resizePanes}\n onPointerDown={startResize}\n onKeyDown={onResizeKeyDown}\n >\n <span aria-hidden=\"true\" />\n </button>\n <div class=\"k2b-panes__split-child\" style={{ flex: `${1 - props.node().ratio} 1 0` }}>\n <PanesNodeRenderer {...props} node={() => props.node().second} path={[...props.path, \"second\"]} />\n </div>\n </div>\n );\n}\n\nfunction ActivePane(props: { itemId: string; itemById: () => Map<string, PanesItem> }): JSX.Element {\n return requireItem(props.itemById(), props.itemId).render();\n}\n\nfunction PanesGroupRenderer(props: Omit<RendererProps, \"node\"> & { node: () => PanesGroup }): JSX.Element {\n const messages = useUiMessages();\n let tabsElement: HTMLDivElement | undefined;\n let scrollbarDragOffset = 0;\n let stopTabPress: (() => void) | undefined;\n let suppressedPointerClick: string | null = null;\n let clearSuppressedPointerClick: number | undefined;\n const dndInstanceId = createUniqueId();\n const draggableId = (id: string) => `panes-item:${dndInstanceId}:${id}`;\n const itemIds = createMemo(() => props.node().items);\n const groupTargets = createMemo<IndexedPanesDropTargets | null>(() => {\n const index = props.dropTargetIndex();\n for (const itemId of itemIds()) {\n const indexed = index.get(itemId);\n if (indexed) return indexed;\n }\n return null;\n });\n const targetBefore = (itemId: string) => groupTargets()?.tabs.get(itemId);\n const targetAtEnd = () => groupTargets()?.tabs.get(null);\n const bodyTargets = () => groupTargets()?.body ?? [];\n const startTabPress = (event: PointerEvent & { currentTarget: HTMLButtonElement }, itemId: string) => {\n if (event.button !== 0 || event.isPrimary === false) return;\n stopTabPress?.();\n const pointerId = event.pointerId;\n const button = event.currentTarget;\n const ownerWindow = window;\n const stop = () => {\n ownerWindow.removeEventListener(\"pointerup\", onPointerUp, true);\n ownerWindow.removeEventListener(\"pointercancel\", onPointerCancel, true);\n if (stopTabPress === stop) stopTabPress = undefined;\n };\n const onPointerUp = (up: PointerEvent) => {\n if (up.pointerId !== pointerId) return;\n const rect = button.getBoundingClientRect();\n const releasedInside = up.clientX >= rect.left && up.clientX <= rect.right && up.clientY >= rect.top && up.clientY <= rect.bottom;\n const shouldActivate = releasedInside && !props.dnd.isDragging();\n stop();\n if (!shouldActivate) return;\n suppressedPointerClick = itemId;\n if (clearSuppressedPointerClick !== undefined) ownerWindow.clearTimeout(clearSuppressedPointerClick);\n clearSuppressedPointerClick = ownerWindow.setTimeout(() => {\n if (suppressedPointerClick === itemId) suppressedPointerClick = null;\n clearSuppressedPointerClick = undefined;\n }, 0);\n props.onActivate(itemId);\n };\n const onPointerCancel = (cancel: PointerEvent) => {\n if (cancel.pointerId === pointerId) stop();\n };\n stopTabPress = stop;\n ownerWindow.addEventListener(\"pointerup\", onPointerUp, true);\n ownerWindow.addEventListener(\"pointercancel\", onPointerCancel, true);\n };\n onCleanup(() => {\n stopTabPress?.();\n if (clearSuppressedPointerClick !== undefined) window.clearTimeout(clearSuppressedPointerClick);\n });\n const [scrollbar, setScrollbar] = createSignal({ overflow: false, left: 0, width: 0 });\n const syncScrollbar = () => {\n if (!tabsElement) return;\n const { clientWidth, scrollLeft, scrollWidth } = tabsElement;\n if (scrollWidth <= clientWidth || clientWidth <= 0) {\n setScrollbar({ overflow: false, left: 0, width: 0 });\n return;\n }\n const width = Math.min(clientWidth, Math.max(24, (clientWidth * clientWidth) / scrollWidth));\n const left = (scrollLeft / (scrollWidth - clientWidth)) * (clientWidth - width);\n setScrollbar({ overflow: true, left, width });\n };\n const scrollFromPointer = (event: PointerEvent & { currentTarget: HTMLDivElement }) => {\n if (!tabsElement) return;\n const track = event.currentTarget;\n const { left, width } = scrollbar();\n const rect = track.getBoundingClientRect();\n const available = Math.max(1, rect.width - width);\n const thumbLeft = Math.min(available, Math.max(0, event.clientX - rect.left - scrollbarDragOffset));\n tabsElement.scrollLeft = (thumbLeft / available) * (tabsElement.scrollWidth - tabsElement.clientWidth);\n syncScrollbar();\n };\n const startScrollbarDrag = (event: PointerEvent & { currentTarget: HTMLDivElement }) => {\n event.preventDefault();\n const track = event.currentTarget;\n const current = scrollbar();\n scrollbarDragOffset =\n event.target === track\n ? current.width / 2\n : Math.min(current.width, Math.max(0, event.clientX - track.getBoundingClientRect().left - current.left));\n track.setPointerCapture(event.pointerId);\n scrollFromPointer(event);\n };\n onMount(() => {\n syncScrollbar();\n const observer = typeof ResizeObserver === \"undefined\" ? null : new ResizeObserver(syncScrollbar);\n if (tabsElement) observer?.observe(tabsElement);\n onCleanup(() => observer?.disconnect());\n });\n createEffect(() => {\n itemIds().length;\n props.itemById();\n groupTargets();\n props.canAdd();\n queueMicrotask(syncScrollbar);\n });\n const tabId = (itemId: string) => `${props.instanceId}-${itemId}-tab`;\n const panelId = (itemId: string) => `${props.instanceId}-${itemId}-panel`;\n const focusTab = (index: number) => {\n const itemId = itemIds()[index];\n if (!itemId) return;\n props.onActivate(itemId);\n queueMicrotask(() => document.getElementById(tabId(itemId))?.focus());\n };\n const onTabKeyDown = (event: KeyboardEvent, index: number, itemId: string) => {\n if (props.dnd.activeId() === draggableId(itemId)) return;\n const item = requireItem(props.itemById(), itemId);\n if ((event.key === \"Delete\" || event.key === \"Backspace\") && item.onClose) {\n event.preventDefault();\n item.onClose();\n return;\n }\n const count = itemIds().length;\n let next: number | null = null;\n if (event.key === \"ArrowLeft\") next = (index - 1 + count) % count;\n if (event.key === \"ArrowRight\") next = (index + 1) % count;\n if (event.key === \"Home\") next = 0;\n if (event.key === \"End\") next = count - 1;\n if (next === null) return;\n event.preventDefault();\n focusTab(next);\n };\n const targetLabel = (target: PanesDropTarget): string => {\n const targetItem = requireItem(props.itemById(), target.targetItemId);\n if (target.kind === \"group\") return messages().addToNamed({ name: targetItem.title });\n if (target.kind === \"tab\") {\n const before = target.beforeItemId ? requireItem(props.itemById(), target.beforeItemId) : null;\n return before ? messages().insertBeforeNamed({ name: before.title }) : messages().insertAtEnd;\n }\n return target.side\n ? messages().addPaneSide({ side: target.side, name: targetItem.title })\n : messages().addToNamed({ name: targetItem.title });\n };\n return (\n <section class=\"k2b-panes__group\">\n <div\n ref={tabsElement}\n class=\"k2b-panes__tabs\"\n role=\"tablist\"\n aria-label={messages().paneTabs}\n aria-orientation=\"horizontal\"\n onScroll={syncScrollbar}\n >\n <For each={itemIds()}>\n {(itemId, index) => {\n const item = () => requireItem(props.itemById(), itemId);\n const active = () => props.node().active === itemId;\n return (\n <div\n ref={(surface) =>\n props.dnd.draggable(surface, () => ({\n id: draggableId(itemId),\n meta: { itemId, label: item().title },\n disabled: !props.canMove(),\n focusable: false,\n keyboard: true,\n handleSelector: \".k2b-panes__tab-button\",\n }))\n }\n class=\"k2b-panes__tab\"\n data-active={active() ? \"true\" : undefined}\n data-closable={item().onClose !== undefined ? \"true\" : undefined}\n data-movable={props.canMove() ? \"true\" : undefined}\n data-dnd-active={props.dnd.activeId() === draggableId(itemId) ? \"true\" : undefined}\n >\n <Show when={targetBefore(itemId)}>\n {(target) => <PanesDropTargetView target={target()} label={targetLabel(target())} dnd={props.dnd} placement=\"tab\" />}\n </Show>\n <button\n id={tabId(itemId)}\n type=\"button\"\n class=\"k2b-panes__tab-button\"\n role=\"tab\"\n aria-label={item().title}\n aria-selected={active()}\n aria-controls={active() ? panelId(itemId) : undefined}\n aria-posinset={index() + 1}\n aria-setsize={itemIds().length}\n aria-keyshortcuts={item().onClose ? \"Delete Backspace\" : undefined}\n tabIndex={active() ? 0 : -1}\n title={item().title}\n onPointerDown={(event) => startTabPress(event, itemId)}\n onClick={(event) => {\n if (event?.detail > 0 && suppressedPointerClick === itemId) {\n suppressedPointerClick = null;\n if (clearSuppressedPointerClick !== undefined) {\n window.clearTimeout(clearSuppressedPointerClick);\n clearSuppressedPointerClick = undefined;\n }\n return;\n }\n props.onActivate(itemId);\n }}\n onKeyDown={(event) => onTabKeyDown(event, index(), itemId)}\n >\n <span class=\"k2b-ui k2b-panes__drag-surface k2b-panes__drag-preview\" data-dnd-preview>\n <i class={`${iconClass(item().icon)} k2b-panes__icon`} aria-hidden=\"true\" />\n <span>{item().title}</span>\n </span>\n </button>\n <Show when={item().onClose !== undefined}>\n <button\n type=\"button\"\n class=\"k2b-panes__close\"\n title={messages().closeNamed({ name: item().title })}\n aria-label={messages().closeNamed({ name: item().title })}\n onPointerDown={(event) => event.stopPropagation()}\n onClick={(event) => {\n event.stopPropagation();\n item().onClose?.();\n }}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n );\n }}\n </For>\n <Show when={targetAtEnd()}>\n {(target) => <PanesDropTargetView target={target()} label={targetLabel(target())} dnd={props.dnd} placement=\"tab-end\" />}\n </Show>\n <Show when={props.canAdd()}>\n <button\n type=\"button\"\n class=\"k2b-panes__add k2b-panes__add--tab\"\n aria-label={messages().addPane}\n title={messages().addPane}\n onClick={() => props.addItem(props.node().active)}\n >\n <i class=\"ti ti-plus\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n <Show when={scrollbar().overflow}>\n <div\n class=\"k2b-panes__tabs-scrollbar\"\n aria-hidden=\"true\"\n onPointerDown={startScrollbarDrag}\n onPointerMove={(event) => {\n if (event.currentTarget.hasPointerCapture(event.pointerId)) scrollFromPointer(event);\n }}\n onPointerUp={(event) => event.currentTarget.releasePointerCapture(event.pointerId)}\n onPointerCancel={(event) => event.currentTarget.releasePointerCapture(event.pointerId)}\n >\n <span\n style={{\n \"--k2b-panes-scroll-left\": `${scrollbar().left}px`,\n \"--k2b-panes-scroll-width\": `${scrollbar().width}px`,\n }}\n />\n </div>\n </Show>\n <div class=\"k2b-panes__body\">\n <div id={panelId(props.node().active)} class=\"k2b-panes__panel\" role=\"tabpanel\" aria-labelledby={tabId(props.node().active)}>\n <Show when={props.node().active} keyed>\n {(itemId) => <ActivePane itemId={itemId} itemById={props.itemById} />}\n </Show>\n </div>\n </div>\n <Show when={bodyTargets().length > 0}>\n <div class=\"k2b-panes__drop-targets\" aria-hidden=\"true\">\n <For each={bodyTargets()}>\n {(target) => <PanesDropTargetView target={target} label={targetLabel(target)} dnd={props.dnd} placement=\"body\" />}\n </For>\n </div>\n </Show>\n </section>\n );\n}\n\nfunction PanesDropTargetView(props: {\n target: PanesDropTarget;\n label: string;\n dnd: PaneDnd;\n placement: \"tab\" | \"tab-end\" | \"body\";\n}): JSX.Element {\n const icon = () => {\n if (props.target.kind === \"group\") return \"ti ti-plus\";\n if (props.target.kind === \"tab\") return props.placement === \"tab\" ? \"ti ti-spacing-horizontal\" : null;\n if (props.target.side === \"top\") return \"ti ti-row-insert-top\";\n if (props.target.side === \"bottom\") return \"ti ti-row-insert-bottom\";\n if (props.target.side === \"left\") return \"ti ti-column-insert-left\";\n return \"ti ti-column-insert-right\";\n };\n return (\n <div\n ref={(element) =>\n props.dnd.droppable(element, () => ({\n id: `panes-target:${props.target.id}`,\n meta: { target: props.target, label: props.label },\n }))\n }\n class=\"k2b-panes__drop-target\"\n data-kind={props.target.kind}\n data-placement={props.placement}\n data-zone={props.target.side}\n data-active={props.dnd.overId() === `panes-target:${props.target.id}` ? \"true\" : undefined}\n title={props.label}\n aria-hidden=\"true\"\n >\n <Show when={icon()} keyed>\n {(iconClass) => <i class={iconClass} aria-hidden=\"true\" />}\n </Show>\n <Show when={props.target.kind === \"split\"}>\n <span>{props.label}</span>\n </Show>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|