@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":[
|
|
1
|
+
{"version":3,"names":[],"sources":["actions/SplitButton.tsx"],"sourcesContent":["import { type JSX, Show, splitProps } from \"solid-js\";\nimport { Button, type ButtonProps } from \"./Button\";\nimport { Dropdown, type DropdownItem, type DropdownPosition } from \"./Dropdown\";\n\nexport type SplitButtonProps = ButtonProps & {\n /** Actions shown from the secondary menu trigger. */\n items: readonly DropdownItem[];\n /** Optional selection menu in place of the primary immediate action. */\n primaryItems?: readonly DropdownItem[];\n /** Accessible name for the primary selection menu. */\n primaryMenuLabel?: string;\n /** Secondary menu glyph; defaults to a chevron. */\n menuIcon?: JSX.Element;\n /** Accessible name and title for the icon-only menu trigger. */\n menuLabel: string;\n menuPosition?: DropdownPosition | (() => DropdownPosition);\n menuWidth?: string;\n};\n\n/** One primary button action with a separate menu of related alternatives. */\nexport function SplitButton(props: SplitButtonProps): JSX.Element {\n const [local, buttonProps] = splitProps(props, [\n \"children\",\n \"primaryItems\",\n \"primaryMenuLabel\",\n \"menuIcon\",\n \"class\",\n \"disabled\",\n \"items\",\n \"loading\",\n \"menuLabel\",\n \"menuPosition\",\n \"menuWidth\",\n \"size\",\n \"variant\",\n ]);\n const disabled = () => Boolean(local.disabled || local.loading);\n\n return (\n <Dropdown.Root\n class=\"k2b-split-button\"\n disabled={disabled()}\n items={local.items}\n label={local.menuLabel}\n position={local.menuPosition ?? \"bottom-left\"}\n width={local.menuWidth}\n >\n <Show\n when={local.primaryItems}\n fallback={\n <Button\n {...buttonProps}\n class={`k2b-split-button__primary ${local.class ?? \"\"}`}\n disabled={local.disabled}\n loading={local.loading}\n size={local.size}\n variant={local.variant ?? \"primary\"}\n >\n {local.children}\n </Button>\n }\n >\n {(items) => (\n <Dropdown.Root\n items={items()}\n disabled={disabled()}\n class=\"k2b-split-button__primary-menu\"\n position={local.menuPosition ?? \"bottom-left\"}\n width={local.menuWidth}\n >\n <Dropdown.Trigger\n wrap={buttonProps.wrap}\n disabled={disabled()}\n size={local.size}\n variant={local.variant ?? \"primary\"}\n label={local.primaryMenuLabel}\n class={`k2b-split-button__primary ${local.class ?? \"\"}`}\n >\n {local.children}\n </Dropdown.Trigger>\n </Dropdown.Root>\n )}\n </Show>\n <Dropdown.Trigger\n class=\"k2b-split-button__menu-trigger\"\n disabled={disabled()}\n iconOnly\n label={local.menuLabel}\n size={local.size}\n title={local.menuLabel}\n variant={local.variant ?? \"primary\"}\n >\n {local.menuIcon ?? <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />}\n </Dropdown.Trigger>\n </Dropdown.Root>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["actions/SpotlightSearch.tsx"],"sourcesContent":["import type { JSX } from \"solid-js\";\nimport type { PromptSearchInput, PromptSearchItem, PromptSearchOptions } from \"../feedback/prompts\";\nimport { prompts } from \"../feedback/prompts\";\nimport { resolveUiMessages, useUiMessages } from \"../intl/messages\";\n\nexport type SpotlightSearchResolver<T = unknown> = (input: PromptSearchInput) => Promise<PromptSearchItem<T>[]> | PromptSearchItem<T>[];\n\nexport type SpotlightSearchOptions<T = unknown> = PromptSearchOptions & {\n resolve: SpotlightSearchResolver<T>;\n};\n\nexport type SpotlightButtonVariant = \"default\" | \"compact\" | \"chip\" | \"sidebar\" | \"sidebar-mobile\" | \"icon\";\n\nexport type SpotlightButtonProps = {\n variant?: SpotlightButtonVariant;\n label?: string;\n title?: string;\n icon?: string;\n shortcutLabel?: string | false;\n ariaLabel?: string;\n disabled?: boolean;\n class?: string;\n onClick: () => void | Promise<void>;\n};\n\nexport const openSpotlightSearch = <T extends unknown = unknown>(\n options: SpotlightSearchOptions<T>,\n): Promise<PromptSearchItem<T> | undefined> => {\n const { resolve, ...promptOptions } = options;\n const messages = resolveUiMessages();\n return prompts.search(resolve, {\n icon: \"ti ti-search\",\n placeholder: messages.search,\n minQueryLength: 0,\n noResultsText: messages.spotlightNoResults,\n size: \"small\",\n ...promptOptions,\n });\n};\n\nexport function SpotlightButton(props: SpotlightButtonProps): JSX.Element {\n const messages = useUiMessages();\n const variant = () => props.variant ?? \"default\";\n const label = () => props.label ?? messages().searchLabel;\n const icon = () => props.icon ?? \"ti ti-search\";\n const shortcut = () => props.shortcutLabel;\n const title = () => props.title ?? label();\n const showsShortcut = () => Boolean(shortcut()) && [\"chip\", \"sidebar\"].includes(variant());\n\n return (\n <button\n type=\"button\"\n class={`k2b-spotlight-button ${props.class ?? \"\"}`}\n data-variant={variant()}\n disabled={props.disabled}\n aria-label={props.ariaLabel ?? ([\"compact\", \"icon\"].includes(variant()) ? label() : undefined)}\n title={title()}\n onClick={() => void props.onClick()}\n >\n <i class={icon()} aria-hidden=\"true\" />\n <span class=\"k2b-spotlight-button__label\">{label()}</span>\n {showsShortcut() && <kbd>{shortcut()}</kbd>}\n </button>\n );\n}\n\nexport default SpotlightButton;\n"],"mappings":";;;;;;;;;;;;;AAEA,SAAS,OAAO,QAAQ,qBAAqB;AAC7C,SAAS,iBAAiB,EAAE,aAAa,QAAQ,kBAAkB;AAsBnE,OAAO,MAAM,mBAAmB,GAC9B,OAAkC,IACW;EAC7C,MAAM;IAAE,OAAO;IAAE,GAAG;EAAc,CAAC,GAAG,OAAO;EAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC;EACpC,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;IAC7B,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,QAAQ,CAAC,MAAM;IAC5B,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,QAAQ,CAAC,kBAAkB;IAC1C,IAAI,EAAE,OAAO;IACb,GAAG;EACL,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,SAAS,eAAe,CAAC,KAA2B,EAAe;EACxE,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC;EAChC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,IAAI,SAAS;EAChD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW;EACzD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,IAAI,cAAc;EAC/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa;EAC1C,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;EAC1C,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;EAE1F;IAAA;MAAA;MAAA;MAAA;MAAA;IAAA,eAQa,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;IAAA,gBAGQ,KAAK;IAAA;MAAA,yBAC/C,aAAa,CAAC,CAAC;MAAA,aAAf;QAAA;QAAA,gBAAyB,QAAQ;QAAA;MAAA,IAAS;IAAA;IAAA;MAAA,UATpC,wBAAwB,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;QAAA,OACpC,OAAO,CAAC,CAAC;QAAA,OACb,KAAK,CAAC,QAAQ;QAAA,OACZ,KAAK,CAAC,SAAS,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC;QAAA,OACvF,KAAK,CAAC,CAAC;QAAA,OAGJ,IAAI,CAAC,CAAC;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;IAAA;IAAA;EAAA;AAKtB;AAEA,eAAe,eAAe;AAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["children","createEffect","createMemo","createUniqueId","For","Show","resolveMaybeAccessor","useUiMessages","createScrollFade","TABS_ITEM","Symbol","isTabsItem","value","kind","collectTabsItems","Array","isArray","flatMap","TabsItem","props","TabsRoot","messages","root","list","orientation","instanceId","resolvedChildren","trailing","items","options","toArray","map","item","label","icon","disabled","panel","onClose","closeLabel","buttons","closing","requestClose","option","current","active","find","activeIndex","Math","max","findIndex","enabled","index","filter","tabStopIndex","selected","removed","undefined","some","queueMicrotask","scrollIntoView","block","inline","target","length","querySelector","focus","select","onValueChange","move","delta","available","currentIndex","next","_el$","_$getNextElement","_tmpl$3","_el$2","firstChild","_el$3","_el$5","nextSibling","_el$6","_co$","_$getNextMarker","_el$8","_el$9","_co$2","_ref$","_$use","_ref$2","_$insert","_$createComponent","each","id","panelId","_el$0","_tmpl$5","_el$1","_el$11","_el$12","_co$3","_el$10","_el$14","_el$15","_co$4","$$keydown","event","key","preventDefault","previous","at","$$click","element","when","_el$16","_tmpl$6","_$effect","_$className","_el$13","_tmpl$4","_p$","_v$9","closeNamed","name","ariaLabel","_v$0","e","_$setAttribute","t","_$setProperty","_$runHydrationEvents","_v$1","_v$10","_v$11","_v$12","_v$13","a","o","i","_el$4","_tmpl$","_el$7","_tmpl$2","_v$","_v$2","_v$3","class","_v$4","_v$5","variant","_v$6","_v$7","_v$8","n","Tabs","Item","_$delegateEvents"],"sources":["actions/Tabs.tsx"],"sourcesContent":["import { children, createEffect, createMemo, createUniqueId, For, type JSX, Show } from \"solid-js\";\nimport type { MaybeAccessor } from \"../inputs/field-contract\";\nimport { resolveMaybeAccessor } from \"../inputs/field-contract\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { createScrollFade } from \"../layout/scroll-fade\";\n\nexport type TabOption<T extends string = string> = {\n value: T;\n label: JSX.Element;\n icon?: string;\n disabled?: boolean;\n panel?: JSX.Element;\n onClose?: () => void;\n closeLabel?: string;\n};\n\nexport type TabsItemProps<T extends string = string> = Omit<TabOption<T>, \"panel\"> & {\n children?: JSX.Element;\n};\n\ntype TabsItemSlot<T extends string = string> = {\n readonly kind: typeof TABS_ITEM;\n readonly props: TabsItemProps<T>;\n};\n\nexport type TabsProps<T extends string = string> = {\n value: MaybeAccessor<T>;\n onValueChange: (value: T) => void;\n ariaLabel: string;\n orientation?: \"horizontal\" | \"vertical\";\n class?: string;\n variant?: \"line\" | \"pill\";\n trailing?: JSX.Element;\n /** Data-driven alternative to colocated `Tabs.Item` children. */\n options?: readonly TabOption<T>[];\n children?: JSX.Element;\n};\n\ntype TabsComponent = (<T extends string = string>(props: TabsProps<T>) => JSX.Element) & {\n Item: <T extends string = string>(props: TabsItemProps<T>) => JSX.Element;\n};\n\nconst TABS_ITEM = Symbol(\"Tabs.Item\");\n\nconst isTabsItem = <T extends string>(value: unknown): value is TabsItemSlot<T> =>\n !!value && typeof value === \"object\" && \"kind\" in value && value.kind === TABS_ITEM;\n\nconst collectTabsItems = <T extends string>(value: unknown): TabsItemSlot<T>[] => {\n if (Array.isArray(value)) return value.flatMap(collectTabsItems<T>);\n return isTabsItem<T>(value) ? [value] : [];\n};\n\nfunction TabsItem<T extends string = string>(props: TabsItemProps<T>): JSX.Element {\n return { kind: TABS_ITEM, props } satisfies TabsItemSlot<T> as unknown as JSX.Element;\n}\n\n/** Controlled, keyboard-accessible tabs with compositional or data-driven items. */\nfunction TabsRoot<T extends string = string>(props: TabsProps<T>): JSX.Element {\n const messages = useUiMessages();\n let root: HTMLDivElement | undefined;\n let list: HTMLDivElement | undefined;\n createScrollFade(\n () => list,\n () => props.orientation !== \"vertical\",\n );\n const instanceId = `k2b-tabs-${createUniqueId()}`;\n const resolvedChildren = children(() => props.children);\n const trailing = children(() => props.trailing);\n const items = createMemo<readonly TabOption<T>[]>(() => {\n if (props.options) return props.options;\n return collectTabsItems<T>(resolvedChildren.toArray()).map((item) => ({\n value: item.props.value,\n label: item.props.label,\n icon: item.props.icon,\n disabled: item.props.disabled,\n panel: item.props.children,\n onClose: item.props.onClose,\n closeLabel: item.props.closeLabel,\n }));\n });\n const buttons: HTMLButtonElement[] = [];\n let closing: T | undefined;\n const requestClose = (option: TabOption<T>) => {\n closing = option.value;\n option.onClose?.();\n };\n const current = () => resolveMaybeAccessor(props.value);\n const active = createMemo(() => items().find((option) => option.value === current()));\n const activeIndex = createMemo(() =>\n Math.max(\n 0,\n items().findIndex((option) => option.value === current()),\n ),\n );\n const enabled = () =>\n items()\n .map((option, index) => ({ option, index }))\n .filter(({ option }) => !option.disabled);\n const tabStopIndex = createMemo(() => {\n const selected = items().findIndex((option) => option.value === current() && !option.disabled);\n return selected >= 0 ? selected : (enabled()[0]?.index ?? -1);\n });\n createEffect(() => {\n const index = activeIndex();\n const removed = closing !== undefined && !items().some((item) => item.value === closing);\n if (removed) closing = undefined;\n queueMicrotask(() => {\n buttons[index]?.scrollIntoView?.({ block: \"nearest\", inline: \"nearest\" });\n if (removed) {\n const target = items().length ? buttons[index] : root?.querySelector<HTMLElement>(\".k2b-tabs__trailing button\");\n target?.focus();\n }\n });\n });\n const select = (index: number) => {\n const option = items()[index];\n if (!option || option.disabled) return;\n props.onValueChange(option.value);\n queueMicrotask(() => buttons[index]?.focus());\n };\n const move = (index: number, delta: 1 | -1) => {\n const available = enabled();\n if (available.length === 0) return;\n const currentIndex = available.findIndex((item) => item.index === index);\n const next = available[(currentIndex + delta + available.length) % available.length] ?? available[0];\n if (next) select(next.index);\n };\n\n return (\n <div\n ref={root}\n class={`k2b-tabs ${props.class ?? \"\"}`}\n data-orientation={props.orientation ?? \"horizontal\"}\n data-variant={props.variant ?? \"line\"}\n >\n <div class=\"k2b-tabs__bar\">\n <div\n ref={list}\n data-scroll-fade-mode={props.orientation !== \"vertical\" ? \"both\" : undefined}\n data-scroll-fade-axis=\"horizontal\"\n class=\"k2b-tabs__list\"\n role=\"tablist\"\n aria-label={props.ariaLabel}\n aria-orientation={props.orientation ?? \"horizontal\"}\n >\n <For each={items()}>\n {(option, index) => {\n const id = () => `${instanceId}-tab-${index()}`;\n const panelId = () => `${instanceId}-panel-${index()}`;\n return (\n <div class=\"k2b-tabs__item\" role=\"presentation\">\n <button\n ref={(element) => {\n buttons[index()] = element;\n }}\n id={id()}\n type=\"button\"\n role=\"tab\"\n aria-selected={current() === option.value}\n aria-controls={option.panel !== undefined ? panelId() : undefined}\n tabIndex={tabStopIndex() === index() ? 0 : -1}\n disabled={option.disabled}\n onClick={() => props.onValueChange(option.value)}\n onKeyDown={(event) => {\n if ((event.key === \"Delete\" || event.key === \"Backspace\") && option.onClose) {\n event.preventDefault();\n requestClose(option);\n return;\n }\n const previous = props.orientation === \"vertical\" ? \"ArrowUp\" : \"ArrowLeft\";\n const next = props.orientation === \"vertical\" ? \"ArrowDown\" : \"ArrowRight\";\n if (event.key === previous || event.key === next) {\n event.preventDefault();\n move(index(), event.key === next ? 1 : -1);\n } else if (event.key === \"Home\" || event.key === \"End\") {\n event.preventDefault();\n const available = enabled();\n const target = event.key === \"End\" ? available.at(-1) : available[0];\n if (target) select(target.index);\n }\n }}\n >\n <Show when={option.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <span>{option.label}</span>\n </button>\n <Show when={option.onClose}>\n <button\n type=\"button\"\n class=\"k2b-tabs__close\"\n aria-label={\n option.closeLabel ??\n messages().closeNamed({ name: typeof option.label === \"string\" ? option.label : props.ariaLabel })\n }\n disabled={option.disabled}\n onClick={() => requestClose(option)}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n );\n }}\n </For>\n </div>\n <Show when={trailing()}>\n <div class=\"k2b-tabs__trailing\">{trailing()}</div>\n </Show>\n </div>\n <Show when={active()?.panel !== undefined}>\n <div\n id={`${instanceId}-panel-${activeIndex()}`}\n class=\"k2b-tabs__panel\"\n role=\"tabpanel\"\n aria-labelledby={`${instanceId}-tab-${activeIndex()}`}\n tabIndex={0}\n >\n {active()?.panel}\n </div>\n </Show>\n </div>\n );\n}\n\nexport const Tabs = TabsRoot as TabsComponent;\nTabs.Item = TabsItem;\n\nexport default Tabs;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["actions/Tabs.tsx"],"sourcesContent":["import { children, createEffect, createMemo, createUniqueId, For, type JSX, Show } from \"solid-js\";\nimport type { MaybeAccessor } from \"../inputs/field-contract\";\nimport { resolveMaybeAccessor } from \"../inputs/field-contract\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { createScrollFade } from \"../layout/scroll-fade\";\n\nexport type TabOption<T extends string = string> = {\n value: T;\n label: JSX.Element;\n icon?: string;\n disabled?: boolean;\n panel?: JSX.Element;\n onClose?: () => void;\n closeLabel?: string;\n};\n\nexport type TabsItemProps<T extends string = string> = Omit<TabOption<T>, \"panel\"> & {\n children?: JSX.Element;\n};\n\ntype TabsItemSlot<T extends string = string> = {\n readonly kind: typeof TABS_ITEM;\n readonly props: TabsItemProps<T>;\n};\n\nexport type TabsProps<T extends string = string> = {\n value: MaybeAccessor<T>;\n onValueChange: (value: T) => void;\n ariaLabel: string;\n orientation?: \"horizontal\" | \"vertical\";\n class?: string;\n variant?: \"line\" | \"pill\";\n trailing?: JSX.Element;\n /** Data-driven alternative to colocated `Tabs.Item` children. */\n options?: readonly TabOption<T>[];\n children?: JSX.Element;\n};\n\ntype TabsComponent = (<T extends string = string>(props: TabsProps<T>) => JSX.Element) & {\n Item: <T extends string = string>(props: TabsItemProps<T>) => JSX.Element;\n};\n\nconst TABS_ITEM = Symbol(\"Tabs.Item\");\n\nconst isTabsItem = <T extends string>(value: unknown): value is TabsItemSlot<T> =>\n !!value && typeof value === \"object\" && \"kind\" in value && value.kind === TABS_ITEM;\n\nconst collectTabsItems = <T extends string>(value: unknown): TabsItemSlot<T>[] => {\n if (Array.isArray(value)) return value.flatMap(collectTabsItems<T>);\n return isTabsItem<T>(value) ? [value] : [];\n};\n\nfunction TabsItem<T extends string = string>(props: TabsItemProps<T>): JSX.Element {\n return { kind: TABS_ITEM, props } satisfies TabsItemSlot<T> as unknown as JSX.Element;\n}\n\n/** Controlled, keyboard-accessible tabs with compositional or data-driven items. */\nfunction TabsRoot<T extends string = string>(props: TabsProps<T>): JSX.Element {\n const messages = useUiMessages();\n let root: HTMLDivElement | undefined;\n let list: HTMLDivElement | undefined;\n createScrollFade(\n () => list,\n () => props.orientation !== \"vertical\",\n );\n const instanceId = `k2b-tabs-${createUniqueId()}`;\n const resolvedChildren = children(() => props.children);\n const trailing = children(() => props.trailing);\n const items = createMemo<readonly TabOption<T>[]>(() => {\n if (props.options) return props.options;\n return collectTabsItems<T>(resolvedChildren.toArray()).map((item) => ({\n value: item.props.value,\n label: item.props.label,\n icon: item.props.icon,\n disabled: item.props.disabled,\n panel: item.props.children,\n onClose: item.props.onClose,\n closeLabel: item.props.closeLabel,\n }));\n });\n const buttons: HTMLButtonElement[] = [];\n let closing: T | undefined;\n const requestClose = (option: TabOption<T>) => {\n closing = option.value;\n option.onClose?.();\n };\n const current = () => resolveMaybeAccessor(props.value);\n const active = createMemo(() => items().find((option) => option.value === current()));\n const activeIndex = createMemo(() =>\n Math.max(\n 0,\n items().findIndex((option) => option.value === current()),\n ),\n );\n const enabled = () =>\n items()\n .map((option, index) => ({ option, index }))\n .filter(({ option }) => !option.disabled);\n const tabStopIndex = createMemo(() => {\n const selected = items().findIndex((option) => option.value === current() && !option.disabled);\n return selected >= 0 ? selected : (enabled()[0]?.index ?? -1);\n });\n createEffect(() => {\n const index = activeIndex();\n const removed = closing !== undefined && !items().some((item) => item.value === closing);\n if (removed) closing = undefined;\n queueMicrotask(() => {\n buttons[index]?.scrollIntoView?.({ block: \"nearest\", inline: \"nearest\" });\n if (removed) {\n const target = items().length ? buttons[index] : root?.querySelector<HTMLElement>(\".k2b-tabs__trailing button\");\n target?.focus();\n }\n });\n });\n const select = (index: number) => {\n const option = items()[index];\n if (!option || option.disabled) return;\n props.onValueChange(option.value);\n queueMicrotask(() => buttons[index]?.focus());\n };\n const move = (index: number, delta: 1 | -1) => {\n const available = enabled();\n if (available.length === 0) return;\n const currentIndex = available.findIndex((item) => item.index === index);\n const next = available[(currentIndex + delta + available.length) % available.length] ?? available[0];\n if (next) select(next.index);\n };\n\n return (\n <div\n ref={root}\n class={`k2b-tabs ${props.class ?? \"\"}`}\n data-orientation={props.orientation ?? \"horizontal\"}\n data-variant={props.variant ?? \"line\"}\n >\n <div class=\"k2b-tabs__bar\">\n <div\n ref={list}\n data-scroll-fade-mode={props.orientation !== \"vertical\" ? \"both\" : undefined}\n data-scroll-fade-axis=\"horizontal\"\n class=\"k2b-tabs__list\"\n role=\"tablist\"\n aria-label={props.ariaLabel}\n aria-orientation={props.orientation ?? \"horizontal\"}\n >\n <For each={items()}>\n {(option, index) => {\n const id = () => `${instanceId}-tab-${index()}`;\n const panelId = () => `${instanceId}-panel-${index()}`;\n return (\n <div class=\"k2b-tabs__item\" role=\"presentation\">\n <button\n ref={(element) => {\n buttons[index()] = element;\n }}\n id={id()}\n type=\"button\"\n role=\"tab\"\n aria-selected={current() === option.value}\n aria-controls={option.panel !== undefined ? panelId() : undefined}\n tabIndex={tabStopIndex() === index() ? 0 : -1}\n disabled={option.disabled}\n onClick={() => props.onValueChange(option.value)}\n onKeyDown={(event) => {\n if ((event.key === \"Delete\" || event.key === \"Backspace\") && option.onClose) {\n event.preventDefault();\n requestClose(option);\n return;\n }\n const previous = props.orientation === \"vertical\" ? \"ArrowUp\" : \"ArrowLeft\";\n const next = props.orientation === \"vertical\" ? \"ArrowDown\" : \"ArrowRight\";\n if (event.key === previous || event.key === next) {\n event.preventDefault();\n move(index(), event.key === next ? 1 : -1);\n } else if (event.key === \"Home\" || event.key === \"End\") {\n event.preventDefault();\n const available = enabled();\n const target = event.key === \"End\" ? available.at(-1) : available[0];\n if (target) select(target.index);\n }\n }}\n >\n <Show when={option.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <span>{option.label}</span>\n </button>\n <Show when={option.onClose}>\n <button\n type=\"button\"\n class=\"k2b-tabs__close\"\n aria-label={\n option.closeLabel ??\n messages().closeNamed({ name: typeof option.label === \"string\" ? option.label : props.ariaLabel })\n }\n disabled={option.disabled}\n onClick={() => requestClose(option)}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n );\n }}\n </For>\n </div>\n <Show when={trailing()}>\n <div class=\"k2b-tabs__trailing\">{trailing()}</div>\n </Show>\n </div>\n <Show when={active()?.panel !== undefined}>\n <div\n id={`${instanceId}-panel-${activeIndex()}`}\n class=\"k2b-tabs__panel\"\n role=\"tabpanel\"\n aria-labelledby={`${instanceId}-tab-${activeIndex()}`}\n tabIndex={0}\n >\n {active()?.panel}\n </div>\n </Show>\n </div>\n );\n}\n\nexport const Tabs = TabsRoot as TabsComponent;\nTabs.Item = TabsItem;\n\nexport default Tabs;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAS,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,EAAY,IAAI,QAAQ,UAAU;AAElG,SAAS,oBAAoB,QAAQ,0BAA0B;AAC/D,SAAS,aAAa,QAAQ,kBAAkB;AAChD,SAAS,gBAAgB,QAAQ,uBAAuB;AAsCxD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;AAErC,MAAM,UAAU,GAAsB,KAAc,IAClD,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;AAErF,MAAM,gBAAgB,GAAsB,KAAc,IAAwB;EAChF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAmB,CAAC;EACnE,OAAO,UAAU,CAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;AAC5C,CAAC;AAED,SAAS,QAAQ,CAA4B,KAAuB,EAAe;EACjF,OAAO;IAAE,IAAI,EAAE,SAAS;IAAE;EAAM,CAAC;AACnC;;AAEA;AACA,SAAS,QAAQ,CAA4B,KAAmB,EAAe;EAC7E,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC;EAChC,IAAI,IAAgC;EACpC,IAAI,IAAgC;EACpC,gBAAgB,CACd,MAAM,IAAI,EACV,MAAM,KAAK,CAAC,WAAW,KAAK,UAC9B,CAAC;EACD,MAAM,UAAU,GAAG,YAAY,cAAc,CAAC,CAAC,EAAE;EACjD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC;EACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC;EAC/C,MAAM,KAAK,GAAG,UAAU,CAA0B,MAAM;IACtD,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO;IACvC,OAAO,gBAAgB,CAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAE,IAAI,KAAM;MACpE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;MACvB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;MACvB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;MACrB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;MAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;MAC1B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;MAC3B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC,CAAC,CAAC;EACL,CAAC,CAAC;EACF,MAAM,OAA4B,GAAG,EAAE;EACvC,IAAI,OAAsB;EAC1B,MAAM,YAAY,GAAI,MAAoB,IAAK;IAC7C,OAAO,GAAG,MAAM,CAAC,KAAK;IACtB,MAAM,CAAC,OAAO,GAAG,CAAC;EACpB,CAAC;EACD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC;EACvD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,CAAE,MAAM,IAAK,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;EACrF,MAAM,WAAW,GAAG,UAAU,CAAC,MAC7B,IAAI,CAAC,GAAG,CACN,CAAC,EACD,KAAK,CAAC,CAAC,CAAC,SAAS,CAAE,MAAM,IAAK,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAC1D,CACF,CAAC;EACD,MAAM,OAAO,GAAG,MACd,KAAK,CAAC,CAAC,CACJ,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MAAM;IAAE,MAAM;IAAE;EAAM,CAAC,CAAC,CAAC,CAC3C,MAAM,CAAC,CAAC;IAAE;EAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;EAC7C,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAE,MAAM,IAAK,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9F,OAAO,QAAQ,IAAI,CAAC,GAAG,QAAQ,GAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAE;EAC/D,CAAC,CAAC;EACF,YAAY,CAAC,MAAM;IACjB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAE,IAAI,IAAK,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC;IACxF,IAAI,OAAO,EAAE,OAAO,GAAG,SAAS;IAChC,cAAc,CAAC,MAAM;MACnB,OAAO,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG;QAAE,KAAK,EAAE,SAAS;QAAE,MAAM,EAAE;MAAU,CAAC,CAAC;MACzE,IAAI,OAAO,EAAE;QACX,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,aAAa,CAAc,4BAA4B,CAAC;QAC/G,MAAM,EAAE,KAAK,CAAC,CAAC;MACjB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,MAAM,MAAM,GAAI,KAAa,IAAK;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;IAChC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;IACjC,cAAc,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;EAC/C,CAAC;EACD,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,KAAa,KAAK;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC;IAC3B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAC5B,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAE,IAAI,IAAK,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;IACxE,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;IACpG,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAC9B,CAAC;EAED;IAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA,YAES,IAAI;IAAA,mDAAJ,IAAI;IAAA,aAOA,IAAI;IAAA,sDAAJ,IAAI;IAAA,kCAQR,GAAG;MAAA,IAAC,IAAI;QAAA,OAAE,KAAK,CAAC,CAAC;MAAA;MAAA,UACf,CAAC,MAAM,EAAE,KAAK,KAAK;QAClB,MAAM,EAAE,GAAG,MAAM,GAAG,UAAU,QAAQ,KAAK,CAAC,CAAC,EAAE;QAC/C,MAAM,OAAO,GAAG,MAAM,GAAG,UAAU,UAAU,KAAK,CAAC,CAAC,EAAE;QACtD;UAAA;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;UAAA,kBAckB,KAAK,IAAK;YACpB,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,KAAK,MAAM,CAAC,OAAO,EAAE;cAC3E,KAAK,CAAC,cAAc,CAAC,CAAC;cACtB,YAAY,CAAC,MAAM,CAAC;cACpB;YACF;YACA,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,KAAK,UAAU,GAAG,SAAS,GAAG,WAAW;YAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,KAAK,UAAU,GAAG,WAAW,GAAG,YAAY;YAC1E,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE;cAChD,KAAK,CAAC,cAAc,CAAC,CAAC;cACtB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;cACtD,KAAK,CAAC,cAAc,CAAC,CAAC;cACtB,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC;cAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,KAAK,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;cACpE,IAAI,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAClC;UACF,CAAC;UAAA,gBAlBQ,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;UAAA,MAV1C,OAAO,IAAK;YAChB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO;UAC5B,CAAC;UAAA,kCA4BA,IAAI;YAAA,IAAC,IAAI;cAAA,OAAE,MAAM,CAAC,IAAI;YAAA;YAAA,UAAI,IAAI;cAAA;cAAA,mCAAe,IAAI,CAAC,CAAC;cAAA;YAAA;UAAuB;UAAA,uBACpE,MAAM,CAAC,KAAK;UAAA,kCAEpB,IAAI;YAAA,IAAC,IAAI;cAAA,OAAE,MAAM,CAAC,OAAO;YAAA;YAAA;cAAA;cAAA,iBASb,MAAM,YAAY,CAAC,MAAM,CAAC;cAAA;gBAAA,WAJjC,MAAM,CAAC,UAAU,IACjB,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;oBAAE,IAAI,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;kBAAU,CAAC,CAAC;kBAAA,OAE1F,MAAM,CAAC,QAAQ;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;cAAA;YAAA;UAAA;UAAA;YAAA,WAtCvB,EAAE,CAAC,CAAC;cAAA,QAGO,OAAO,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK;cAAA,QAC1B,MAAM,CAAC,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS;cAAA,QACvD,YAAY,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;cAAA,QACnC,MAAM,CAAC,QAAQ;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;UAAA;YAAA;YAAA;YAAA;YAAA;YAAA;UAAA;UAAA;UAAA;QAAA;MAwCjC;IAAC;IAAA,kCAGJ,IAAI;MAAA,IAAC,IAAI;QAAA,OAAE,QAAQ,CAAC,CAAC;MAAA;MAAA;QAAA;QAAA,gBACa,QAAQ;QAAA;MAAA;IAAA;IAAA,iCAG5C,IAAI;MAAA,IAAC,IAAI;QAAA,OAAE,MAAM,CAAC,CAAC,EAAE,KAAK,KAAK,SAAS;MAAA;MAAA;QAAA;QAAA,sBAQpC,MAAM,CAAC,CAAC,EAAE,KAAK;QAAA;UAAA,UANZ,GAAG,UAAU,UAAU,WAAW,CAAC,CAAC,EAAE;YAAA,OAGzB,GAAG,UAAU,QAAQ,WAAW,CAAC,CAAC,EAAE;UAAA;UAAA;UAAA;QAAA;UAAA;UAAA;QAAA;QAAA;MAAA;IAAA;IAAA;MAAA,WAlFlD,YAAY,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;QAAA,OACpB,KAAK,CAAC,WAAW,IAAI,YAAY;QAAA,OACrC,KAAK,CAAC,OAAO,IAAI,MAAM;QAAA,OAKV,KAAK,CAAC,WAAW,KAAK,UAAU,GAAG,MAAM,GAAG,SAAS;QAAA,OAIhE,KAAK,CAAC,SAAS;QAAA,OACT,KAAK,CAAC,WAAW,IAAI,YAAY;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;IAAA;EAAA;AA8E7D;AAEA,OAAO,MAAM,IAAI,GAAG,QAAyB;AAC7C,IAAI,CAAC,IAAI,GAAG,QAAQ;AAEpB,eAAe,IAAI;AAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["actions/Toolbar.tsx"],"sourcesContent":["import { createContext, type JSX, useContext } from \"solid-js\";\n\nexport type ToolbarProps = {\n children: JSX.Element;\n label: string;\n orientation?: \"horizontal\" | \"vertical\";\n wrap?: boolean;\n class?: string;\n};\n\nexport type ToolbarGroupProps = { children: JSX.Element; label?: string; class?: string };\nexport type ToolbarSeparatorProps = { class?: string };\n\ntype ToolbarComponent = ((props: ToolbarProps) => JSX.Element) & {\n Group: (props: ToolbarGroupProps) => JSX.Element;\n Separator: (props: ToolbarSeparatorProps) => JSX.Element;\n Spacer: () => JSX.Element;\n};\n\ntype ToolbarOrientation = NonNullable<ToolbarProps[\"orientation\"]>;\n\nconst defaultToolbarOrientation: () => ToolbarOrientation = () => \"horizontal\";\nconst ToolbarOrientationContext = createContext(defaultToolbarOrientation);\n\nconst ToolbarGroup = (props: ToolbarGroupProps): JSX.Element => (\n <div class={`k2b-toolbar__group ${props.class ?? \"\"}`} role=\"group\" aria-label={props.label}>\n {props.children}\n </div>\n);\n\nconst ToolbarSeparator = (props: ToolbarSeparatorProps): JSX.Element => {\n const toolbarOrientation = useContext(ToolbarOrientationContext);\n const separatorOrientation = () => (toolbarOrientation() === \"horizontal\" ? \"vertical\" : \"horizontal\");\n\n return (\n <span\n class={`k2b-toolbar__separator ${props.class ?? \"\"}`}\n role=\"separator\"\n aria-orientation={separatorOrientation()}\n data-orientation={separatorOrientation()}\n />\n );\n};\n\nconst ToolbarSpacer = (): JSX.Element => <span class=\"k2b-toolbar__spacer\" aria-hidden=\"true\" />;\n\nexport const Toolbar = Object.assign(\n (props: ToolbarProps): JSX.Element => {\n const orientation = () => props.orientation ?? \"horizontal\";\n\n return (\n <ToolbarOrientationContext.Provider value={orientation}>\n <div\n class={`k2b-toolbar ${props.class ?? \"\"}`}\n role=\"toolbar\"\n aria-label={props.label}\n aria-orientation={orientation()}\n data-orientation={orientation()}\n data-wrap={props.wrap ? \"true\" : undefined}\n >\n {props.children}\n </div>\n </ToolbarOrientationContext.Provider>\n );\n },\n { Group: ToolbarGroup, Separator: ToolbarSeparator, Spacer: ToolbarSpacer },\n) as ToolbarComponent;\n\nexport default Toolbar;\n"],"mappings":";;;;;;;;;;;AAAA,SAAS,aAAa,EAAY,UAAU,QAAQ,UAAU;AAqB9D,MAAM,yBAAmD,GAAG,MAAM,YAAY;AAC9E,MAAM,yBAAyB,GAAG,aAAa,CAAC,yBAAyB,CAAC;AAE1E,MAAM,YAAY,GAAI,KAAwB;EAAA;EAAA,qBAEzC,KAAK,CAAC,QAAQ;EAAA;IAAA,UADL,sBAAsB,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;MAAA,OAA2B,KAAK,CAAC,KAAK;IAAA;IAAA;IAAA;EAAA;IAAA;IAAA;EAAA;EAAA;AAAA,IAG5F;AAED,MAAM,gBAAgB,GAAI,KAA4B,IAAkB;EACtE,MAAM,kBAAkB,GAAG,UAAU,CAAC,yBAAyB,CAAC;EAChE,MAAM,oBAAoB,GAAG,MAAO,kBAAkB,CAAC,CAAC,KAAK,YAAY,GAAG,UAAU,GAAG,YAAa;EAEtG;IAAA;IAAA;MAAA,WAEW,0BAA0B,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;QAAA,OAElC,oBAAoB,CAAC,CAAC;QAAA,OACtB,oBAAoB,CAAC,CAAC;MAAA;MAAA;MAAA;MAAA;IAAA;MAAA;MAAA;MAAA;IAAA;IAAA;EAAA;AAG9C,CAAC;AAED,MAAM,aAAa,GAAG,+BAA0E;AAEhG,OAAO,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CACjC,KAAmB,IAAkB;EACpC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,IAAI,YAAY;EAE3D,yBACG,yBAAyB,CAAC,QAAQ;IAAC,KAAK,EAAE,WAAW;IAAA;MAAA;MAAA,sBASjD,KAAK,CAAC,QAAQ;MAAA;QAAA,WAPR,eAAe,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;UAAA,OAE7B,KAAK,CAAC,KAAK;UAAA,OACL,WAAW,CAAC,CAAC;UAAA,OACb,WAAW,CAAC,CAAC;UAAA,OACpB,KAAK,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;MAAA;QAAA;QAAA;QAAA;QAAA;QAAA;MAAA;MAAA;IAAA;EAAA;AAMlD,CAAC,EACD;EAAE,KAAK,EAAE,YAAY;EAAE,SAAS,EAAE,gBAAgB;EAAE,MAAM,EAAE;AAAc,CAC5E,CAAqB;AAErB,eAAe,OAAO","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["actions/index.ts"],"sourcesContent":["export type { ButtonLinkProps, ButtonProps, ButtonSize, ButtonVariant, IconButtonLinkProps, IconButtonProps } from \"./Button\";\nexport { Button, ButtonLink, IconButton, IconButtonLink } from \"./Button\";\nexport type { ContextMenuProps } from \"./ContextMenu\";\nexport { ContextMenu } from \"./ContextMenu\";\nexport type { CopyButtonProps, CopyButtonValue } from \"./CopyButton\";\nexport { CopyButton } from \"./CopyButton\";\nexport type { DisclosureProps } from \"./Disclosure\";\nexport { Disclosure } from \"./Disclosure\";\nexport type {\n DropdownAction,\n DropdownActionBase,\n DropdownChoice,\n DropdownItemProps,\n DropdownPosition,\n DropdownProps,\n DropdownSection,\n DropdownTriggerProps,\n} from \"./Dropdown\";\nexport { Dropdown, DropdownItem, dropdownPosition } from \"./Dropdown\";\nexport type { FilterChipOption, FilterChipProps, FilterChipSection } from \"./FilterChip\";\nexport { FilterChip } from \"./FilterChip\";\nexport type { RemoveButtonProps } from \"./RemoveButton\";\nexport { RemoveButton } from \"./RemoveButton\";\nexport type { SegmentedControlProps, SegmentOption } from \"./SegmentedControl\";\nexport { SegmentedControl } from \"./SegmentedControl\";\nexport type { SplitButtonProps } from \"./SplitButton\";\nexport { SplitButton } from \"./SplitButton\";\nexport type {\n SpotlightButtonProps,\n SpotlightButtonVariant,\n SpotlightSearchOptions,\n SpotlightSearchResolver,\n} from \"./SpotlightSearch\";\nexport {\n openSpotlightSearch,\n SpotlightButton,\n} from \"./SpotlightSearch\";\nexport type { TabOption, TabsItemProps, TabsProps } from \"./Tabs\";\nexport { Tabs } from \"./Tabs\";\nexport type { ToolbarGroupProps, ToolbarProps, ToolbarSeparatorProps } from \"./Toolbar\";\nexport { Toolbar } from \"./Toolbar\";\n"],"mappings":"AACA,SAAS,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,QAAQ,UAAU;AAEzE,SAAS,WAAW,QAAQ,eAAe;AAE3C,SAAS,UAAU,QAAQ,cAAc;AAEzC,SAAS,UAAU,QAAQ,cAAc;AAWzC,SAAS,QAAQ,EAAE,YAAY,EAAE,gBAAgB,QAAQ,YAAY;AAErE,SAAS,UAAU,QAAQ,cAAc;AAEzC,SAAS,YAAY,QAAQ,gBAAgB;AAE7C,SAAS,gBAAgB,QAAQ,oBAAoB;AAErD,SAAS,WAAW,QAAQ,eAAe;AAO3C,SACE,mBAAmB,EACnB,eAAe,QACV,mBAAmB;AAE1B,SAAS,IAAI,QAAQ,QAAQ;AAE7B,SAAS,OAAO,QAAQ,WAAW","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["children","createEffect","createMemo","createSignal","createUniqueId","For","onCleanup","onMount","Show","untrack","Dropdown","SelectChip","useUiMessages","ChatContextUsage","ContextUsage","executeChatAction","nextChatCommandIndex","reportChatFailure","runChatSubmission","chatCommandQuery","chatMentionSegments","reconcileChatMentions","composerMaxInputHeight","composerUndoBudgetChars","attachmentIcon","attachment","icon","kind","ChatComposer","props","accessory","hasAccessory","toArray","some","item","messages","commandListId","replace","selectedCommandIndex","setSelectedCommandIndex","dragActive","setDragActive","addingFiles","setAddingFiles","submitting","setSubmitting","composerRef","textareaRef","fileInputRef","sawRunning","state","running","stopping","runningSubmitIntent","attachments","caret","setCaret","selectionEnd","setSelectionEnd","dismissed","setDismissed","composing","setComposing","searchResults","setSearchResults","searching","setSearching","searchError","setSearchError","executing","setExecuting","highlightRef","commandListRef","mentions","commandQuery","value","commandMatches","token","commands","filter","command","name","toLowerCase","includes","query","commandsOpen","Boolean","length","searchCommands","disposed","measure","top","window","visualViewport","offsetTop","parent","parentElement","test","getComputedStyle","overflowY","Math","max","getBoundingClientRect","bottom","style","setProperty","queueMicrotask","addEventListener","removeEventListener","abort","AbortController","timer","setTimeout","Promise","resolve","signal","then","results","aborted","catch","finally","clearTimeout","history","historyIndex","draftKey","snapshot","selectionStart","sameMentions","a","b","every","index","start","end","record","splice","push","size","reduce","total","entry","shift","edit","nextMentions","onValueChange","onMentionsChange","restoreHistory","direction","next","setSelectionRange","syncCaret","selectedCommand","blocked","disabled","hasDraft","trim","canSubmit","canSelectFiles","fileSelection","hasAddMenu","menuActions","hasContextUsage","contextPopupAction","context","contextUsage","contextWindow","Number","isFinite","usage","input","output","menuItems","items","label","attachFiles","action","click","variant","onError","autoResize","height","min","scrollHeight","focus","focusToken","undefined","list","querySelector","isConnected","scrollTop","offsetHeight","clientHeight","active","document","focused","activeElement","insideComposer","contains","editingElsewhere","body","matches","isContentEditable","closest","setAttachments","onAttachmentsChange","renderAttachmentCopy","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_$insert","_$effect","_$setAttribute","runFiles","files","selected","Array","from","onSelect","error","submit","intent","previousValue","previousAttachments","previousMentions","text","clear","perform","onSubmit","restore","executeCommand","previous","key","replacement","mention","nextValue","slice","submitRequested","setValue","onKeyDown","event","isComposing","ctrlKey","metaKey","preventDefault","shiftKey","_el$3","_tmpl$1","_el$47","_el$48","_co$11","_$getNextMarker","nextSibling","_el$25","_el$43","_el$44","_co$1","_el$27","_el$34","_el$35","_co$8","_el$36","_el$37","_co$9","_el$33","_el$45","_el$46","_co$10","_el$42","_$createComponent","when","_el$4","_tmpl$6","_el$5","_el$23","_el$24","_co$6","_el$6","_tmpl$5","_el$7","_el$15","_el$16","_co$2","_el$17","_el$18","_co$3","_el$19","_el$20","_co$4","_el$21","_el$22","_co$5","_ref$","_$use","each","_el$49","_tmpl$10","_el$50","_el$51","_el$52","$$click","$$pointerdown","description","_p$","_v$15","_v$16","_v$17","_v$18","_v$19","e","t","o","i","_$className","_$runHydrationEvents","_el$8","_tmpl$2","_el$9","_el$0","loading","_el$1","_tmpl$3","_el$10","_el$11","_el$12","_el$13","_co$","_$memo","_el$14","_tmpl$4","noResults","_v$","_v$2","_$setStyleProperty","_$setProperty","_ref$2","_el$26","_tmpl$7","_el$53","_tmpl$12","_el$54","_el$55","_el$56","_co$12","_el$57","_el$58","_co$13","_el$60","_el$61","_co$14","href","fallback","_el$62","_tmpl$14","_el$64","_el$65","_co$15","_el$66","_el$67","_co$16","previewUrl","_el$68","_tmpl$15","_el$63","_tmpl$13","_v$22","_v$23","alt","_el$69","_tmpl$16","_el$71","_el$72","_co$17","_el$73","_el$74","_co$18","_el$75","_el$70","_v$24","_v$25","_v$26","_v$27","openInNewTab","_el$76","_tmpl$17","_el$77","_el$78","_co$19","_el$79","_el$80","_co$20","_el$81","_el$59","_tmpl$11","candidate","id","_v$20","removeNamed","_v$21","classList","toggle","dataTransfer","types","currentTarget","relatedTarget","_el$28","_tmpl$8","dropFilesToAttach","_el$29","_tmpl$9","_el$31","_el$32","_co$7","_el$30","_ref$3","part","_el$82","_tmpl$18","$$keydown","$$beforeinput","inputType","$$keyup","clipboardData","onPaste","$$input","_ref$4","_el$38","_tmpl$0","_el$39","_el$40","_el$41","_co$0","footerContent","_el$83","_tmpl$21","_el$86","_el$87","_co$21","_el$88","_el$89","_co$22","_el$90","_el$91","_co$23","_el$92","_el$93","_co$24","_el$94","_el$95","_co$25","footerTools","Root","position","width","addToChat","Trigger","appearance","title","_tmpl$19","_el$85","_tmpl$20","_ref$5","_v$28","accept","_v$29","multiple","models","aria-label","chooseModel","menuWidth","placeholder","model","selectedModelId","options","map","image","onModelChange","modelId","modelDetails","_el$96","_tmpl$23","_el$99","_el$100","_co$26","_el$101","_el$102","_co$27","_el$103","_el$104","_co$28","_el$105","_el$106","_co$29","contextActions","_el$107","_tmpl$24","_el$108","_v$34","_v$35","_v$36","pressed","_v$37","_v$38","_v$39","n","_$mergeProps","onActionError","submitTools","onStop","_el$109","_tmpl$25","_el$110","_v$40","_v$41","queueing","steering","sending","queueMessage","steerResponse","sendMessage","_v$42","_v$43","_el$97","_tmpl$22","_el$98","_v$30","_v$31","stopResponse","_v$32","_v$33","content","_v$3","class","_v$4","_v$5","_v$6","messageComposer","_v$7","messageInput","_v$8","_v$9","_v$0","addGuidance","writeMessage","_v$1","inputLabel","message","_v$10","_v$11","_v$12","_v$13","_v$14","s","h","r","d","l","u","c","w","_$delegateEvents"],"sources":["chat/ChatComposer.tsx"],"sourcesContent":["import {\n children,\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n type JSX,\n onCleanup,\n onMount,\n Show,\n untrack,\n} from \"solid-js\";\nimport { Dropdown, type DropdownItem as DropdownItemData } from \"../actions/Dropdown\";\nimport { SelectChip } from \"../inputs/SelectChip\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { ChatContextUsage as ContextUsage } from \"./ChatPrimitives\";\nimport { executeChatAction, nextChatCommandIndex, reportChatFailure, runChatSubmission } from \"./chat-behavior\";\nimport { chatCommandQuery, chatMentionSegments, reconcileChatMentions } from \"./composer-document\";\nimport type {\n ChatAction,\n ChatAttachment,\n ChatComposerState,\n ChatContextUsageData,\n ChatMention,\n ChatModelOption,\n ChatSubmitInput,\n} from \"./types\";\n\nconst composerMaxInputHeight = 309;\n// Keep editor undo text within approximately 2 MiB, plus the current edit.\nconst composerUndoBudgetChars = 1_000_000;\n\nexport type ChatCommandContext = {\n setValue: (value: string) => void;\n submit: () => void;\n focus: () => void;\n};\n\nexport type ChatCommand = {\n name: string;\n description: string;\n icon?: string;\n action?: (context: ChatCommandContext) => void | Promise<void>;\n /** Selecting a reference inserts its display name and retains its opaque payload. */\n mention?: ChatAttachment;\n label?: string;\n disabled?: boolean;\n};\n\nexport type ChatFileSelection = {\n onSelect: (files: readonly File[]) => void | Promise<void>;\n onError?: (error: unknown) => void;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n label?: string;\n};\n\nexport type ChatPasteHandler = (event: ClipboardEvent & { currentTarget: HTMLTextAreaElement; target: Element }) => void;\n\nexport type ChatComposerProps = {\n value: string;\n onValueChange: (value: string) => void;\n onSubmit: (input: ChatSubmitInput) => boolean | void | Promise<boolean | void>;\n /** Submit intent used for drafts entered while a response is running. Defaults to `steer`. */\n runningSubmitIntent?: \"steer\" | \"queue\";\n onStop?: () => void | Promise<void>;\n onError?: (error: unknown) => void;\n state?: ChatComposerState;\n attachments?: readonly ChatAttachment[];\n onAttachmentsChange?: (attachments: readonly ChatAttachment[]) => void;\n fileSelection?: ChatFileSelection;\n /** Handle non-file clipboard content. Pasted files already use `fileSelection`. */\n onPaste?: ChatPasteHandler;\n menuActions?: readonly ChatAction[];\n models?: readonly ChatModelOption[];\n selectedModelId?: string | null;\n onModelChange?: (modelId: string) => void;\n /** Compact application-owned details immediately after the model selector. */\n modelDetails?: JSX.Element;\n commands?: readonly ChatCommand[];\n searchCommands?: (query: string, signal: AbortSignal) => Promise<readonly ChatCommand[]>;\n mentions?: readonly ChatMention[];\n onMentionsChange?: (mentions: readonly ChatMention[]) => void;\n /** Shared surface above the editor; suggestions temporarily replace this content. */\n accessory?: JSX.Element;\n contextUsage?: ChatContextUsageData;\n contextActions?: readonly ChatAction[];\n /** Optional action inside the context details popup. */\n contextPopupAction?: ChatAction;\n /** Additional compact controls rendered with the add/model controls. */\n footerTools?: JSX.Element;\n /** Compact application controls immediately before the send/stop button. */\n submitTools?: JSX.Element;\n /** Replaces footer controls during an application-owned interaction, preserving the editor. */\n footerContent?: JSX.Element;\n placeholder?: string;\n label?: string;\n inputLabel?: string;\n disabled?: boolean;\n error?: string;\n focusToken?: unknown;\n draftKey?: unknown;\n class?: string;\n};\n\nconst attachmentIcon = (attachment: ChatAttachment): string =>\n attachment.icon ?? (attachment.kind === \"image\" ? \"ti ti-photo\" : attachment.kind === \"resource\" ? \"ti ti-link\" : \"ti ti-file\");\n\nexport function ChatComposer(props: ChatComposerProps): JSX.Element {\n const accessory = children(() => props.accessory);\n const hasAccessory = () => accessory.toArray().some((item) => item != null && typeof item !== \"boolean\" && item !== \"\");\n const messages = useUiMessages();\n const commandListId = `k2b-chat-commands-${createUniqueId().replace(/[^A-Za-z0-9_-]/g, \"-\")}`;\n const [selectedCommandIndex, setSelectedCommandIndex] = createSignal(0);\n const [dragActive, setDragActive] = createSignal(false);\n const [addingFiles, setAddingFiles] = createSignal(false);\n const [submitting, setSubmitting] = createSignal(false);\n let composerRef: HTMLElement | undefined;\n let textareaRef: HTMLTextAreaElement | undefined;\n let fileInputRef: HTMLInputElement | undefined;\n let sawRunning = props.state === \"running\";\n\n const state = () => props.state ?? \"idle\";\n const running = () => state() === \"running\";\n const stopping = () => state() === \"stopping\";\n const runningSubmitIntent = () => props.runningSubmitIntent ?? \"steer\";\n const attachments = () => props.attachments ?? [];\n const [caret, setCaret] = createSignal(0);\n const [selectionEnd, setSelectionEnd] = createSignal(0);\n const [dismissed, setDismissed] = createSignal(false);\n const [composing, setComposing] = createSignal(false);\n const [searchResults, setSearchResults] = createSignal<readonly ChatCommand[]>([]);\n const [searching, setSearching] = createSignal(false);\n const [searchError, setSearchError] = createSignal(false);\n const [executing, setExecuting] = createSignal(false);\n let highlightRef: HTMLDivElement | undefined;\n let commandListRef: HTMLDivElement | undefined;\n const mentions = () => props.mentions ?? [];\n const commandQuery = createMemo(() => (dismissed() || composing() ? null : chatCommandQuery(props.value, caret(), selectionEnd())));\n const commandMatches = createMemo(() => {\n const token = commandQuery();\n if (!token) return [];\n return [\n ...(props.commands ?? []).filter((command) => command.name.toLowerCase().includes(token.query.toLowerCase())),\n ...searchResults(),\n ];\n });\n const commandsOpen = () => Boolean(commandQuery() && (props.commands?.length || props.searchCommands));\n createEffect(() => {\n if (!commandsOpen()) return;\n let disposed = false;\n const measure = () => {\n if (disposed || !commandListRef) return;\n let top = window.visualViewport?.offsetTop ?? 0;\n for (let parent = commandListRef.parentElement; parent; parent = parent.parentElement) {\n if (/(auto|scroll|hidden|clip)/.test(window.getComputedStyle(parent).overflowY)) {\n top = Math.max(top, parent.getBoundingClientRect().top);\n }\n }\n const bottom = commandListRef.parentElement!.getBoundingClientRect().bottom;\n commandListRef.style.setProperty(\"--k2b-chat-command-space\", `${Math.max(40, bottom - top - 8)}px`);\n };\n queueMicrotask(measure);\n window.addEventListener(\"resize\", measure);\n window.addEventListener(\"scroll\", measure, true);\n window.visualViewport?.addEventListener(\"resize\", measure);\n onCleanup(() => {\n disposed = true;\n window.removeEventListener(\"resize\", measure);\n window.removeEventListener(\"scroll\", measure, true);\n window.visualViewport?.removeEventListener(\"resize\", measure);\n });\n });\n createEffect(() => {\n const token = commandQuery();\n setSearchResults([]);\n setSearchError(false);\n if (!token || !props.searchCommands) {\n setSearching(false);\n return;\n }\n const abort = new AbortController();\n setSearching(true);\n const timer = setTimeout(() => {\n Promise.resolve(props.searchCommands!(token.query, abort.signal))\n .then((results) => {\n if (!abort.signal.aborted) setSearchResults(results);\n })\n .catch(() => {\n if (!abort.signal.aborted) setSearchError(true);\n })\n .finally(() => {\n if (!abort.signal.aborted) setSearching(false);\n });\n }, 120);\n onCleanup(() => {\n clearTimeout(timer);\n abort.abort();\n });\n });\n const history: { value: string; mentions: readonly ChatMention[]; caret: number }[] = [];\n let historyIndex = -1;\n createEffect(() => {\n props.draftKey;\n untrack(() => {\n history.length = 0;\n historyIndex = -1;\n setDismissed(true);\n });\n });\n const snapshot = () => ({ value: props.value, mentions: [...mentions()], caret: textareaRef?.selectionStart ?? 0 });\n const sameMentions = (a: readonly ChatMention[], b: readonly ChatMention[]) =>\n a.length === b.length &&\n a.every((item, index) => item.start === b[index]?.start && item.end === b[index]?.end && item.attachment === b[index]?.attachment);\n const record = () => {\n if (history[historyIndex]?.value !== props.value || !sameMentions(history[historyIndex]?.mentions ?? [], mentions())) {\n history.splice(historyIndex + 1);\n history.push(snapshot());\n let size = history.reduce((total, entry) => total + entry.value.length, 0);\n while (history.length > 2 && size > composerUndoBudgetChars) size -= history.shift()!.value.length;\n historyIndex = history.length - 1;\n }\n };\n const edit = (value: string, nextMentions = reconcileChatMentions(props.value, value, mentions())) => {\n record();\n props.onValueChange(value);\n props.onMentionsChange?.(nextMentions);\n record();\n setDismissed(false);\n };\n const restoreHistory = (direction: -1 | 1) => {\n record();\n const next = history[historyIndex + direction];\n if (!next) return;\n historyIndex += direction;\n props.onValueChange(next.value);\n props.onMentionsChange?.(next.mentions);\n queueMicrotask(() => {\n textareaRef?.setSelectionRange(next.caret, next.caret);\n syncCaret();\n });\n };\n const syncCaret = () => {\n setCaret(textareaRef?.selectionStart ?? props.value.length);\n setSelectionEnd(textareaRef?.selectionEnd ?? props.value.length);\n };\n const selectedCommand = () => commandMatches()[selectedCommandIndex()];\n const blocked = () => Boolean(props.disabled || stopping() || state() === \"submitting\" || executing() || addingFiles() || submitting());\n const hasDraft = () => Boolean(props.value.trim() || (!running() && attachments().length > 0));\n const canSubmit = () => !blocked() && hasDraft() && !(running() && runningSubmitIntent() === \"steer\" && mentions().length);\n const canSelectFiles = () => Boolean(props.fileSelection && !props.fileSelection.disabled && !running() && !blocked());\n const hasAddMenu = () => Boolean(props.fileSelection || props.menuActions?.length);\n const hasContextUsage = () => {\n if (props.contextPopupAction) return true;\n const context = props.contextUsage;\n if (!context || typeof context.contextWindow !== \"number\" || !Number.isFinite(context.contextWindow) || context.contextWindow <= 0) {\n return false;\n }\n return [context.usage?.total, context.usage?.input, context.usage?.output].some(\n (value) => typeof value === \"number\" && Number.isFinite(value) && value >= 0,\n );\n };\n\n const menuItems = (): readonly DropdownItemData[] => {\n const items: DropdownItemData[] = [];\n if (props.fileSelection) {\n items.push({\n icon: addingFiles() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-paperclip\",\n label: props.fileSelection.label ?? messages().attachFiles,\n disabled: !canSelectFiles(),\n action: () => fileInputRef?.click(),\n });\n }\n for (const action of props.menuActions ?? []) {\n items.push({\n icon: action.icon,\n label: action.label,\n variant: action.variant,\n disabled: action.disabled,\n action: () => reportChatFailure(() => executeChatAction(action), props.onError),\n });\n }\n return items;\n };\n\n const autoResize = () => {\n if (!textareaRef) return;\n textareaRef.style.height = \"auto\";\n textareaRef.style.height = `${Math.min(textareaRef.scrollHeight, composerMaxInputHeight)}px`;\n };\n\n const focus = () => textareaRef?.focus();\n\n onMount(() => {\n autoResize();\n if (props.focusToken !== undefined) focus();\n });\n\n createEffect(() => {\n commandMatches();\n setSelectedCommandIndex(0);\n });\n\n createEffect(() => {\n const index = selectedCommandIndex();\n commandMatches();\n queueMicrotask(() => {\n const list = commandListRef;\n const item = list?.querySelector<HTMLElement>(`[id=\"${commandListId}-${index}\"]`);\n if (!list || !item?.isConnected) return;\n if (item.offsetTop < list.scrollTop) list.scrollTop = item.offsetTop;\n else if (item.offsetTop + item.offsetHeight > list.scrollTop + list.clientHeight) {\n list.scrollTop = item.offsetTop + item.offsetHeight - list.clientHeight;\n }\n });\n });\n\n createEffect(() => {\n props.value;\n queueMicrotask(autoResize);\n });\n\n createEffect(() => {\n props.focusToken;\n if (props.focusToken !== undefined) queueMicrotask(focus);\n });\n\n createEffect(() => {\n const active = running();\n if (sawRunning && !active && !props.disabled && typeof document !== \"undefined\") {\n const focused = document.activeElement as HTMLElement | null;\n const insideComposer = Boolean(focused && composerRef?.contains(focused));\n const editingElsewhere = Boolean(\n focused &&\n focused !== document.body &&\n !insideComposer &&\n (focused.matches(\"input, textarea, select\") || focused.isContentEditable || focused.closest(\"[role='dialog'], [popover]\")),\n );\n if (!editingElsewhere) queueMicrotask(focus);\n }\n sawRunning = active;\n });\n\n const setAttachments = (next: readonly ChatAttachment[]) => props.onAttachmentsChange?.(next);\n\n const renderAttachmentCopy = (attachment: ChatAttachment) => (\n <span>\n <strong title={attachment.name}>{attachment.name}</strong>\n </span>\n );\n\n const runFiles = async (files: FileList | readonly File[]) => {\n if (!canSelectFiles()) return;\n const selected = Array.from(files);\n if (selected.length === 0) return;\n setAddingFiles(true);\n try {\n await props.fileSelection?.onSelect(selected);\n } catch (error) {\n (props.fileSelection?.onError ?? props.onError)?.(error);\n } finally {\n setAddingFiles(false);\n if (fileInputRef) fileInputRef.value = \"\";\n queueMicrotask(focus);\n }\n };\n\n const submit = async () => {\n if (!canSubmit()) return;\n const intent = running() ? runningSubmitIntent() : \"send\";\n const previousValue = props.value;\n const previousAttachments = attachments();\n const previousMentions = mentions();\n const input: ChatSubmitInput = {\n intent,\n text: previousValue,\n mentions: previousMentions,\n attachments: intent !== \"steer\" ? previousAttachments : [],\n };\n\n setSubmitting(true);\n try {\n await runChatSubmission({\n clear: () => {\n props.onValueChange(\"\");\n props.onMentionsChange?.([]);\n if (intent !== \"steer\") setAttachments([]);\n },\n perform: () => props.onSubmit(input),\n restore: () => {\n props.onValueChange(previousValue);\n props.onMentionsChange?.(previousMentions);\n if (intent !== \"steer\") setAttachments(previousAttachments);\n },\n onError: props.onError,\n });\n } finally {\n setSubmitting(false);\n queueMicrotask(() => {\n autoResize();\n focus();\n });\n }\n };\n\n const executeCommand = async (command: ChatCommand) => {\n const token = commandQuery();\n if (!token || command.disabled || blocked()) return;\n const previous = snapshot();\n const key = props.draftKey;\n const replacement = command.mention ? command.mention.name + \" \" : \"\";\n const nextValue = props.value.slice(0, token.start) + replacement + props.value.slice(token.end);\n const nextMentions = reconcileChatMentions(props.value, nextValue, mentions());\n if (command.mention)\n nextMentions.push({ start: token.start, end: token.start + command.mention.name.length, attachment: command.mention });\n edit(nextValue, nextMentions);\n setDismissed(true);\n setExecuting(true);\n let submitRequested = false;\n try {\n await command.action?.({\n setValue: (value) => edit(value),\n submit: () => {\n submitRequested = true;\n },\n focus,\n });\n } catch (error) {\n submitRequested = false;\n if (props.draftKey === key && props.value === nextValue) {\n props.onValueChange(previous.value);\n props.onMentionsChange?.(previous.mentions);\n }\n props.onError?.(error);\n } finally {\n setExecuting(false);\n }\n if (submitRequested && props.draftKey === key) await submit();\n queueMicrotask(() => {\n if (props.draftKey !== key) return;\n textareaRef?.setSelectionRange(token.start + replacement.length, token.start + replacement.length);\n syncCaret();\n autoResize();\n focus();\n });\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.isComposing || composing()) return;\n if ((event.ctrlKey || event.metaKey) && event.key.toLowerCase() === \"z\") {\n event.preventDefault();\n restoreHistory(event.shiftKey ? 1 : -1);\n return;\n }\n const matches = commandMatches();\n if (commandsOpen()) {\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n event.preventDefault();\n setSelectedCommandIndex((index) => nextChatCommandIndex(index, matches.length, event.key === \"ArrowUp\" ? -1 : 1));\n return;\n }\n if ((event.key === \"Enter\" || event.key === \"Tab\") && matches.length > 0) {\n event.preventDefault();\n const command = selectedCommand();\n if (command) void executeCommand(command);\n return;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n setDismissed(true);\n return;\n }\n }\n if (event.key === \"Enter\" && !event.shiftKey && !event.isComposing) {\n event.preventDefault();\n void submit();\n }\n };\n\n return (\n <div class=\"k2b-chat-composer-shell\">\n <Show when={commandsOpen() || hasAccessory()}>\n <div class=\"k2b-chat-composer-slot\">\n <div style={{ visibility: commandsOpen() ? \"hidden\" : undefined }} inert={commandsOpen()}>\n {accessory()}\n </div>\n <Show when={commandsOpen()}>\n <div class=\"k2b-chat-composer-accessory\">\n <div\n ref={commandListRef}\n id={commandListId}\n class=\"k2b-chat-composer__commands\"\n role=\"listbox\"\n aria-label={messages().commands}\n >\n <For each={commandMatches()}>\n {(command, index) => (\n <button\n id={`${commandListId}-${index()}`}\n type=\"button\"\n role=\"option\"\n tabIndex={-1}\n aria-selected={index() === selectedCommandIndex()}\n aria-disabled={command.disabled}\n data-active={index() === selectedCommandIndex() ? \"true\" : undefined}\n onPointerDown={(event) => event.preventDefault()}\n onClick={() => void executeCommand(command)}\n >\n <i class={command.icon ?? \"ti ti-slash\"} aria-hidden=\"true\" />\n <strong>{command.label ?? `/${command.name}`}</strong>\n <small>{command.description}</small>\n </button>\n )}\n </For>\n <Show when={searching()}>\n <div role=\"status\" class=\"k2b-chat-composer__loading\">\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />\n <strong>{messages().loading}</strong>\n </div>\n </Show>\n <Show when={searchError()}>\n <div role=\"status\">\n <i class=\"ti ti-alert-circle\" /> {messages().error}\n </div>\n </Show>\n <Show when={!searching() && !searchError() && commandMatches().length === 0}>\n <div role=\"status\">{messages().noResults}</div>\n </Show>\n </div>\n </div>\n </Show>\n </div>\n </Show>\n <section\n ref={composerRef}\n class={`k2b-chat-composer ${props.class ?? \"\"}`}\n data-running={running() ? \"true\" : undefined}\n data-drag-active={dragActive() ? \"true\" : undefined}\n role=\"group\"\n aria-label={props.label ?? messages().messageComposer}\n >\n <Show when={attachments().length > 0}>\n <div class=\"k2b-chat-composer__attachments\" role=\"list\" aria-label={messages().attachments} tabIndex={0}>\n <For each={attachments()}>\n {(attachment) => (\n <div class=\"k2b-chat-composer__attachment\" role=\"listitem\">\n <div\n class=\"k2b-chat-composer__attachment-content\"\n classList={{ \"k2b-chat-composer__attachment-content--action\": Boolean(attachment.action) }}\n >\n <Show\n when={attachment.href}\n fallback={\n <div class=\"k2b-chat-composer__attachment-identity\">\n <Show\n when={attachment.kind === \"image\" && attachment.previewUrl}\n fallback={<i class={attachmentIcon(attachment)} aria-hidden=\"true\" />}\n >\n <img src={attachment.previewUrl} alt={attachment.alt ?? \"\"} />\n </Show>\n {renderAttachmentCopy(attachment)}\n </div>\n }\n >\n {(href) => (\n <a\n class=\"k2b-chat-composer__attachment-link\"\n href={href()}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={messages().openInNewTab({ name: attachment.name })}\n >\n <Show\n when={attachment.kind === \"image\" && attachment.previewUrl}\n fallback={<i class={attachmentIcon(attachment)} aria-hidden=\"true\" />}\n >\n <img src={attachment.previewUrl} alt={attachment.alt ?? \"\"} />\n </Show>\n {renderAttachmentCopy(attachment)}\n </a>\n )}\n </Show>\n <Show when={attachment.action}>\n {(action) => (\n <button\n type=\"button\"\n class=\"k2b-chat-composer__attachment-action\"\n disabled={blocked() || action().disabled}\n onClick={() => reportChatFailure(() => executeChatAction(action()), props.onError)}\n >\n <Show when={action().icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n {action().label}\n </button>\n )}\n </Show>\n </div>\n <Show when={props.onAttachmentsChange}>\n <button\n type=\"button\"\n class=\"k2b-chat-composer__attachment-remove\"\n aria-label={messages().removeNamed({ name: attachment.name })}\n disabled={blocked()}\n onClick={() => setAttachments(attachments().filter((candidate) => candidate.id !== attachment.id))}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n )}\n </For>\n </div>\n </Show>\n\n <div\n class=\"k2b-chat-composer__input\"\n role=\"group\"\n aria-label={messages().messageInput}\n onDragEnter={(event) => {\n if (!canSelectFiles() || !event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(true);\n }}\n onDragOver={(event) => {\n if (!canSelectFiles() || !event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(true);\n }}\n onDragLeave={(event) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) setDragActive(false);\n }}\n onDrop={(event) => {\n if (!event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(false);\n if (canSelectFiles() && event.dataTransfer.files.length) void runFiles(event.dataTransfer.files);\n }}\n >\n <Show when={dragActive()}>\n <div class=\"k2b-chat-composer__drop\" aria-hidden=\"true\">\n {messages().dropFilesToAttach}\n </div>\n </Show>\n <Show when={mentions().length > 0}>\n <div ref={highlightRef} class=\"k2b-chat-composer__highlight\" aria-hidden=\"true\">\n <For each={chatMentionSegments(props.value, mentions())}>\n {(part) => <span classList={{ \"k2b-chat-composer__mention\": Boolean(part.mention) }}>{part.text}</span>}\n </For>\n {\"\\n\"}\n </div>\n </Show>\n {/* biome-ignore lint/a11y/useAriaPropsSupportedByRole: popup attributes are conditional with the combobox role */}\n <textarea\n ref={textareaRef}\n classList={{ \"k2b-chat-composer__textarea--highlighted\": mentions().length > 0 }}\n rows={1}\n value={props.value}\n disabled={blocked()}\n placeholder={props.placeholder ?? (running() ? messages().addGuidance : messages().writeMessage)}\n aria-label={props.inputLabel ?? messages().message}\n role={commandsOpen() ? \"combobox\" : undefined}\n aria-autocomplete={commandsOpen() ? \"list\" : undefined}\n aria-controls={commandsOpen() ? commandListId : undefined}\n aria-expanded={commandsOpen() ? \"true\" : undefined}\n aria-activedescendant={selectedCommand() ? `${commandListId}-${selectedCommandIndex()}` : undefined}\n onInput={(event) => {\n edit(event.currentTarget.value);\n syncCaret();\n autoResize();\n }}\n onPaste={(event) => {\n const clipboardData = event.clipboardData;\n if (canSelectFiles() && clipboardData?.files.length) {\n event.preventDefault();\n void runFiles(clipboardData.files);\n return;\n }\n props.onPaste?.(event);\n }}\n onSelect={syncCaret}\n onBlur={() => setDismissed(true)}\n onClick={() => {\n setDismissed(false);\n syncCaret();\n }}\n onKeyUp={syncCaret}\n onCompositionStart={() => setComposing(true)}\n onCompositionEnd={() => {\n setComposing(false);\n syncCaret();\n }}\n onScroll={() => {\n if (highlightRef && textareaRef) highlightRef.scrollTop = textareaRef.scrollTop;\n }}\n onBeforeInput={(event) => {\n if (event.inputType === \"historyUndo\" || event.inputType === \"historyRedo\") {\n event.preventDefault();\n restoreHistory(event.inputType === \"historyUndo\" ? -1 : 1);\n }\n }}\n onKeyDown={onKeyDown}\n />\n </div>\n\n <Show when={props.error}>\n <div class=\"k2b-chat-composer__error\" role=\"alert\">\n <i class=\"ti ti-alert-circle\" aria-hidden=\"true\" />\n {props.error}\n </div>\n </Show>\n\n <footer class=\"k2b-chat-composer__footer\">\n <Show\n when={props.footerContent}\n fallback={\n <>\n <div class=\"k2b-chat-composer__tools\">\n {props.footerTools}\n <Show when={hasAddMenu()}>\n <Dropdown.Root position=\"top-right\" width=\"12rem\" label={messages().addToChat} items={menuItems()} disabled={blocked()}>\n <Dropdown.Trigger\n appearance=\"plain\"\n class=\"k2b-chat-composer__icon-action\"\n label={messages().addToChat}\n title={messages().addToChat}\n >\n <i class=\"ti ti-plus\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </Show>\n <Show when={props.fileSelection}>\n <input\n ref={fileInputRef}\n class=\"k2b-sr-only\"\n type=\"file\"\n tabIndex={-1}\n aria-hidden=\"true\"\n accept={props.fileSelection?.accept}\n multiple={props.fileSelection?.multiple ?? true}\n onChange={(event) => {\n if (event.currentTarget.files?.length) void runFiles(event.currentTarget.files);\n }}\n />\n </Show>\n <Show when={(props.models?.length ?? 0) > 0}>\n <SelectChip\n aria-label={messages().chooseModel}\n position=\"top-right\"\n class=\"k2b-chat-composer__model\"\n menuWidth=\"15rem\"\n placeholder={messages().model}\n value={() => props.selectedModelId ?? \"\"}\n options={(props.models ?? []).map((model) => ({\n value: model.id,\n label: model.label,\n description: model.description,\n icon: model.icon,\n image: model.image,\n }))}\n disabled={blocked() || running() || !props.onModelChange}\n onValueChange={(modelId) => {\n props.onModelChange?.(modelId);\n queueMicrotask(focus);\n }}\n />\n </Show>\n {props.modelDetails}\n </div>\n\n <div class=\"k2b-chat-composer__submit\">\n <For each={props.contextActions}>\n {(action) => (\n <button\n type=\"button\"\n class=\"k2b-chat-composer__icon-action\"\n data-tone={action.variant === \"danger\" ? \"danger\" : undefined}\n disabled={action.disabled}\n aria-pressed={action.pressed}\n aria-label={action.label}\n title={action.label}\n onClick={() => reportChatFailure(() => executeChatAction(action), props.onError)}\n >\n <i class={action.icon ?? \"ti ti-dots\"} aria-hidden=\"true\" />\n </button>\n )}\n </For>\n <Show when={hasContextUsage() ? (props.contextUsage ?? {}) : undefined}>\n {(usage) => <ContextUsage {...usage()} action={props.contextPopupAction} onActionError={props.onError} />}\n </Show>\n {props.submitTools}\n <Show\n when={running() && !hasDraft() && props.onStop}\n fallback={\n <button\n type=\"button\"\n class=\"k2b-chat-composer__send\"\n disabled={!canSubmit()}\n aria-label={\n submitting()\n ? running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueing\n : messages().steering\n : messages().sending\n : running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueMessage\n : messages().steerResponse\n : messages().sendMessage\n }\n title={\n running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueMessage\n : messages().steerResponse\n : messages().sendMessage\n }\n onClick={() => void submit()}\n >\n <i class={submitting() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-arrow-up\"} aria-hidden=\"true\" />\n </button>\n }\n >\n <button\n type=\"button\"\n class=\"k2b-chat-composer__stop\"\n disabled={stopping()}\n aria-label={stopping() ? messages().stopping : messages().stopResponse}\n title={stopping() ? messages().stopping : messages().stopResponse}\n onClick={() => reportChatFailure(() => props.onStop?.(), props.onError)}\n >\n <i class={stopping() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-player-stop\"} aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n </>\n }\n >\n {(content) => content()}\n </Show>\n </footer>\n </section>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["chat/ChatComposer.tsx"],"sourcesContent":["import {\n children,\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n type JSX,\n onCleanup,\n onMount,\n Show,\n untrack,\n} from \"solid-js\";\nimport { Dropdown, type DropdownItem as DropdownItemData } from \"../actions/Dropdown\";\nimport { SelectChip } from \"../inputs/SelectChip\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { ChatContextUsage as ContextUsage } from \"./ChatPrimitives\";\nimport { executeChatAction, nextChatCommandIndex, reportChatFailure, runChatSubmission } from \"./chat-behavior\";\nimport { chatCommandQuery, chatMentionSegments, reconcileChatMentions } from \"./composer-document\";\nimport type {\n ChatAction,\n ChatAttachment,\n ChatComposerState,\n ChatContextUsageData,\n ChatMention,\n ChatModelOption,\n ChatSubmitInput,\n} from \"./types\";\n\nconst composerMaxInputHeight = 309;\n// Keep editor undo text within approximately 2 MiB, plus the current edit.\nconst composerUndoBudgetChars = 1_000_000;\n\nexport type ChatCommandContext = {\n setValue: (value: string) => void;\n submit: () => void;\n focus: () => void;\n};\n\nexport type ChatCommand = {\n name: string;\n description: string;\n icon?: string;\n action?: (context: ChatCommandContext) => void | Promise<void>;\n /** Selecting a reference inserts its display name and retains its opaque payload. */\n mention?: ChatAttachment;\n label?: string;\n disabled?: boolean;\n};\n\nexport type ChatFileSelection = {\n onSelect: (files: readonly File[]) => void | Promise<void>;\n onError?: (error: unknown) => void;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n label?: string;\n};\n\nexport type ChatPasteHandler = (event: ClipboardEvent & { currentTarget: HTMLTextAreaElement; target: Element }) => void;\n\nexport type ChatComposerProps = {\n value: string;\n onValueChange: (value: string) => void;\n onSubmit: (input: ChatSubmitInput) => boolean | void | Promise<boolean | void>;\n /** Submit intent used for drafts entered while a response is running. Defaults to `steer`. */\n runningSubmitIntent?: \"steer\" | \"queue\";\n onStop?: () => void | Promise<void>;\n onError?: (error: unknown) => void;\n state?: ChatComposerState;\n attachments?: readonly ChatAttachment[];\n onAttachmentsChange?: (attachments: readonly ChatAttachment[]) => void;\n fileSelection?: ChatFileSelection;\n /** Handle non-file clipboard content. Pasted files already use `fileSelection`. */\n onPaste?: ChatPasteHandler;\n menuActions?: readonly ChatAction[];\n models?: readonly ChatModelOption[];\n selectedModelId?: string | null;\n onModelChange?: (modelId: string) => void;\n /** Compact application-owned details immediately after the model selector. */\n modelDetails?: JSX.Element;\n commands?: readonly ChatCommand[];\n searchCommands?: (query: string, signal: AbortSignal) => Promise<readonly ChatCommand[]>;\n mentions?: readonly ChatMention[];\n onMentionsChange?: (mentions: readonly ChatMention[]) => void;\n /** Shared surface above the editor; suggestions temporarily replace this content. */\n accessory?: JSX.Element;\n contextUsage?: ChatContextUsageData;\n contextActions?: readonly ChatAction[];\n /** Optional action inside the context details popup. */\n contextPopupAction?: ChatAction;\n /** Additional compact controls rendered with the add/model controls. */\n footerTools?: JSX.Element;\n /** Compact application controls immediately before the send/stop button. */\n submitTools?: JSX.Element;\n /** Replaces footer controls during an application-owned interaction, preserving the editor. */\n footerContent?: JSX.Element;\n placeholder?: string;\n label?: string;\n inputLabel?: string;\n disabled?: boolean;\n error?: string;\n focusToken?: unknown;\n draftKey?: unknown;\n class?: string;\n};\n\nconst attachmentIcon = (attachment: ChatAttachment): string =>\n attachment.icon ?? (attachment.kind === \"image\" ? \"ti ti-photo\" : attachment.kind === \"resource\" ? \"ti ti-link\" : \"ti ti-file\");\n\nexport function ChatComposer(props: ChatComposerProps): JSX.Element {\n const accessory = children(() => props.accessory);\n const hasAccessory = () => accessory.toArray().some((item) => item != null && typeof item !== \"boolean\" && item !== \"\");\n const messages = useUiMessages();\n const commandListId = `k2b-chat-commands-${createUniqueId().replace(/[^A-Za-z0-9_-]/g, \"-\")}`;\n const [selectedCommandIndex, setSelectedCommandIndex] = createSignal(0);\n const [dragActive, setDragActive] = createSignal(false);\n const [addingFiles, setAddingFiles] = createSignal(false);\n const [submitting, setSubmitting] = createSignal(false);\n let composerRef: HTMLElement | undefined;\n let textareaRef: HTMLTextAreaElement | undefined;\n let fileInputRef: HTMLInputElement | undefined;\n let sawRunning = props.state === \"running\";\n\n const state = () => props.state ?? \"idle\";\n const running = () => state() === \"running\";\n const stopping = () => state() === \"stopping\";\n const runningSubmitIntent = () => props.runningSubmitIntent ?? \"steer\";\n const attachments = () => props.attachments ?? [];\n const [caret, setCaret] = createSignal(0);\n const [selectionEnd, setSelectionEnd] = createSignal(0);\n const [dismissed, setDismissed] = createSignal(false);\n const [composing, setComposing] = createSignal(false);\n const [searchResults, setSearchResults] = createSignal<readonly ChatCommand[]>([]);\n const [searching, setSearching] = createSignal(false);\n const [searchError, setSearchError] = createSignal(false);\n const [executing, setExecuting] = createSignal(false);\n let highlightRef: HTMLDivElement | undefined;\n let commandListRef: HTMLDivElement | undefined;\n const mentions = () => props.mentions ?? [];\n const commandQuery = createMemo(() => (dismissed() || composing() ? null : chatCommandQuery(props.value, caret(), selectionEnd())));\n const commandMatches = createMemo(() => {\n const token = commandQuery();\n if (!token) return [];\n return [\n ...(props.commands ?? []).filter((command) => command.name.toLowerCase().includes(token.query.toLowerCase())),\n ...searchResults(),\n ];\n });\n const commandsOpen = () => Boolean(commandQuery() && (props.commands?.length || props.searchCommands));\n createEffect(() => {\n if (!commandsOpen()) return;\n let disposed = false;\n const measure = () => {\n if (disposed || !commandListRef) return;\n let top = window.visualViewport?.offsetTop ?? 0;\n for (let parent = commandListRef.parentElement; parent; parent = parent.parentElement) {\n if (/(auto|scroll|hidden|clip)/.test(window.getComputedStyle(parent).overflowY)) {\n top = Math.max(top, parent.getBoundingClientRect().top);\n }\n }\n const bottom = commandListRef.parentElement!.getBoundingClientRect().bottom;\n commandListRef.style.setProperty(\"--k2b-chat-command-space\", `${Math.max(40, bottom - top - 8)}px`);\n };\n queueMicrotask(measure);\n window.addEventListener(\"resize\", measure);\n window.addEventListener(\"scroll\", measure, true);\n window.visualViewport?.addEventListener(\"resize\", measure);\n onCleanup(() => {\n disposed = true;\n window.removeEventListener(\"resize\", measure);\n window.removeEventListener(\"scroll\", measure, true);\n window.visualViewport?.removeEventListener(\"resize\", measure);\n });\n });\n createEffect(() => {\n const token = commandQuery();\n setSearchResults([]);\n setSearchError(false);\n if (!token || !props.searchCommands) {\n setSearching(false);\n return;\n }\n const abort = new AbortController();\n setSearching(true);\n const timer = setTimeout(() => {\n Promise.resolve(props.searchCommands!(token.query, abort.signal))\n .then((results) => {\n if (!abort.signal.aborted) setSearchResults(results);\n })\n .catch(() => {\n if (!abort.signal.aborted) setSearchError(true);\n })\n .finally(() => {\n if (!abort.signal.aborted) setSearching(false);\n });\n }, 120);\n onCleanup(() => {\n clearTimeout(timer);\n abort.abort();\n });\n });\n const history: { value: string; mentions: readonly ChatMention[]; caret: number }[] = [];\n let historyIndex = -1;\n createEffect(() => {\n props.draftKey;\n untrack(() => {\n history.length = 0;\n historyIndex = -1;\n setDismissed(true);\n });\n });\n const snapshot = () => ({ value: props.value, mentions: [...mentions()], caret: textareaRef?.selectionStart ?? 0 });\n const sameMentions = (a: readonly ChatMention[], b: readonly ChatMention[]) =>\n a.length === b.length &&\n a.every((item, index) => item.start === b[index]?.start && item.end === b[index]?.end && item.attachment === b[index]?.attachment);\n const record = () => {\n if (history[historyIndex]?.value !== props.value || !sameMentions(history[historyIndex]?.mentions ?? [], mentions())) {\n history.splice(historyIndex + 1);\n history.push(snapshot());\n let size = history.reduce((total, entry) => total + entry.value.length, 0);\n while (history.length > 2 && size > composerUndoBudgetChars) size -= history.shift()!.value.length;\n historyIndex = history.length - 1;\n }\n };\n const edit = (value: string, nextMentions = reconcileChatMentions(props.value, value, mentions())) => {\n record();\n props.onValueChange(value);\n props.onMentionsChange?.(nextMentions);\n record();\n setDismissed(false);\n };\n const restoreHistory = (direction: -1 | 1) => {\n record();\n const next = history[historyIndex + direction];\n if (!next) return;\n historyIndex += direction;\n props.onValueChange(next.value);\n props.onMentionsChange?.(next.mentions);\n queueMicrotask(() => {\n textareaRef?.setSelectionRange(next.caret, next.caret);\n syncCaret();\n });\n };\n const syncCaret = () => {\n setCaret(textareaRef?.selectionStart ?? props.value.length);\n setSelectionEnd(textareaRef?.selectionEnd ?? props.value.length);\n };\n const selectedCommand = () => commandMatches()[selectedCommandIndex()];\n const blocked = () => Boolean(props.disabled || stopping() || state() === \"submitting\" || executing() || addingFiles() || submitting());\n const hasDraft = () => Boolean(props.value.trim() || (!running() && attachments().length > 0));\n const canSubmit = () => !blocked() && hasDraft() && !(running() && runningSubmitIntent() === \"steer\" && mentions().length);\n const canSelectFiles = () => Boolean(props.fileSelection && !props.fileSelection.disabled && !running() && !blocked());\n const hasAddMenu = () => Boolean(props.fileSelection || props.menuActions?.length);\n const hasContextUsage = () => {\n if (props.contextPopupAction) return true;\n const context = props.contextUsage;\n if (!context || typeof context.contextWindow !== \"number\" || !Number.isFinite(context.contextWindow) || context.contextWindow <= 0) {\n return false;\n }\n return [context.usage?.total, context.usage?.input, context.usage?.output].some(\n (value) => typeof value === \"number\" && Number.isFinite(value) && value >= 0,\n );\n };\n\n const menuItems = (): readonly DropdownItemData[] => {\n const items: DropdownItemData[] = [];\n if (props.fileSelection) {\n items.push({\n icon: addingFiles() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-paperclip\",\n label: props.fileSelection.label ?? messages().attachFiles,\n disabled: !canSelectFiles(),\n action: () => fileInputRef?.click(),\n });\n }\n for (const action of props.menuActions ?? []) {\n items.push({\n icon: action.icon,\n label: action.label,\n variant: action.variant,\n disabled: action.disabled,\n action: () => reportChatFailure(() => executeChatAction(action), props.onError),\n });\n }\n return items;\n };\n\n const autoResize = () => {\n if (!textareaRef) return;\n textareaRef.style.height = \"auto\";\n textareaRef.style.height = `${Math.min(textareaRef.scrollHeight, composerMaxInputHeight)}px`;\n };\n\n const focus = () => textareaRef?.focus();\n\n onMount(() => {\n autoResize();\n if (props.focusToken !== undefined) focus();\n });\n\n createEffect(() => {\n commandMatches();\n setSelectedCommandIndex(0);\n });\n\n createEffect(() => {\n const index = selectedCommandIndex();\n commandMatches();\n queueMicrotask(() => {\n const list = commandListRef;\n const item = list?.querySelector<HTMLElement>(`[id=\"${commandListId}-${index}\"]`);\n if (!list || !item?.isConnected) return;\n if (item.offsetTop < list.scrollTop) list.scrollTop = item.offsetTop;\n else if (item.offsetTop + item.offsetHeight > list.scrollTop + list.clientHeight) {\n list.scrollTop = item.offsetTop + item.offsetHeight - list.clientHeight;\n }\n });\n });\n\n createEffect(() => {\n props.value;\n queueMicrotask(autoResize);\n });\n\n createEffect(() => {\n props.focusToken;\n if (props.focusToken !== undefined) queueMicrotask(focus);\n });\n\n createEffect(() => {\n const active = running();\n if (sawRunning && !active && !props.disabled && typeof document !== \"undefined\") {\n const focused = document.activeElement as HTMLElement | null;\n const insideComposer = Boolean(focused && composerRef?.contains(focused));\n const editingElsewhere = Boolean(\n focused &&\n focused !== document.body &&\n !insideComposer &&\n (focused.matches(\"input, textarea, select\") || focused.isContentEditable || focused.closest(\"[role='dialog'], [popover]\")),\n );\n if (!editingElsewhere) queueMicrotask(focus);\n }\n sawRunning = active;\n });\n\n const setAttachments = (next: readonly ChatAttachment[]) => props.onAttachmentsChange?.(next);\n\n const renderAttachmentCopy = (attachment: ChatAttachment) => (\n <span>\n <strong title={attachment.name}>{attachment.name}</strong>\n </span>\n );\n\n const runFiles = async (files: FileList | readonly File[]) => {\n if (!canSelectFiles()) return;\n const selected = Array.from(files);\n if (selected.length === 0) return;\n setAddingFiles(true);\n try {\n await props.fileSelection?.onSelect(selected);\n } catch (error) {\n (props.fileSelection?.onError ?? props.onError)?.(error);\n } finally {\n setAddingFiles(false);\n if (fileInputRef) fileInputRef.value = \"\";\n queueMicrotask(focus);\n }\n };\n\n const submit = async () => {\n if (!canSubmit()) return;\n const intent = running() ? runningSubmitIntent() : \"send\";\n const previousValue = props.value;\n const previousAttachments = attachments();\n const previousMentions = mentions();\n const input: ChatSubmitInput = {\n intent,\n text: previousValue,\n mentions: previousMentions,\n attachments: intent !== \"steer\" ? previousAttachments : [],\n };\n\n setSubmitting(true);\n try {\n await runChatSubmission({\n clear: () => {\n props.onValueChange(\"\");\n props.onMentionsChange?.([]);\n if (intent !== \"steer\") setAttachments([]);\n },\n perform: () => props.onSubmit(input),\n restore: () => {\n props.onValueChange(previousValue);\n props.onMentionsChange?.(previousMentions);\n if (intent !== \"steer\") setAttachments(previousAttachments);\n },\n onError: props.onError,\n });\n } finally {\n setSubmitting(false);\n queueMicrotask(() => {\n autoResize();\n focus();\n });\n }\n };\n\n const executeCommand = async (command: ChatCommand) => {\n const token = commandQuery();\n if (!token || command.disabled || blocked()) return;\n const previous = snapshot();\n const key = props.draftKey;\n const replacement = command.mention ? command.mention.name + \" \" : \"\";\n const nextValue = props.value.slice(0, token.start) + replacement + props.value.slice(token.end);\n const nextMentions = reconcileChatMentions(props.value, nextValue, mentions());\n if (command.mention)\n nextMentions.push({ start: token.start, end: token.start + command.mention.name.length, attachment: command.mention });\n edit(nextValue, nextMentions);\n setDismissed(true);\n setExecuting(true);\n let submitRequested = false;\n try {\n await command.action?.({\n setValue: (value) => edit(value),\n submit: () => {\n submitRequested = true;\n },\n focus,\n });\n } catch (error) {\n submitRequested = false;\n if (props.draftKey === key && props.value === nextValue) {\n props.onValueChange(previous.value);\n props.onMentionsChange?.(previous.mentions);\n }\n props.onError?.(error);\n } finally {\n setExecuting(false);\n }\n if (submitRequested && props.draftKey === key) await submit();\n queueMicrotask(() => {\n if (props.draftKey !== key) return;\n textareaRef?.setSelectionRange(token.start + replacement.length, token.start + replacement.length);\n syncCaret();\n autoResize();\n focus();\n });\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.isComposing || composing()) return;\n if ((event.ctrlKey || event.metaKey) && event.key.toLowerCase() === \"z\") {\n event.preventDefault();\n restoreHistory(event.shiftKey ? 1 : -1);\n return;\n }\n const matches = commandMatches();\n if (commandsOpen()) {\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n event.preventDefault();\n setSelectedCommandIndex((index) => nextChatCommandIndex(index, matches.length, event.key === \"ArrowUp\" ? -1 : 1));\n return;\n }\n if ((event.key === \"Enter\" || event.key === \"Tab\") && matches.length > 0) {\n event.preventDefault();\n const command = selectedCommand();\n if (command) void executeCommand(command);\n return;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n setDismissed(true);\n return;\n }\n }\n if (event.key === \"Enter\" && !event.shiftKey && !event.isComposing) {\n event.preventDefault();\n void submit();\n }\n };\n\n return (\n <div class=\"k2b-chat-composer-shell\">\n <Show when={commandsOpen() || hasAccessory()}>\n <div class=\"k2b-chat-composer-slot\">\n <div style={{ visibility: commandsOpen() ? \"hidden\" : undefined }} inert={commandsOpen()}>\n {accessory()}\n </div>\n <Show when={commandsOpen()}>\n <div class=\"k2b-chat-composer-accessory\">\n <div\n ref={commandListRef}\n id={commandListId}\n class=\"k2b-chat-composer__commands\"\n role=\"listbox\"\n aria-label={messages().commands}\n >\n <For each={commandMatches()}>\n {(command, index) => (\n <button\n id={`${commandListId}-${index()}`}\n type=\"button\"\n role=\"option\"\n tabIndex={-1}\n aria-selected={index() === selectedCommandIndex()}\n aria-disabled={command.disabled}\n data-active={index() === selectedCommandIndex() ? \"true\" : undefined}\n onPointerDown={(event) => event.preventDefault()}\n onClick={() => void executeCommand(command)}\n >\n <i class={command.icon ?? \"ti ti-slash\"} aria-hidden=\"true\" />\n <strong>{command.label ?? `/${command.name}`}</strong>\n <small>{command.description}</small>\n </button>\n )}\n </For>\n <Show when={searching()}>\n <div role=\"status\" class=\"k2b-chat-composer__loading\">\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />\n <strong>{messages().loading}</strong>\n </div>\n </Show>\n <Show when={searchError()}>\n <div role=\"status\">\n <i class=\"ti ti-alert-circle\" /> {messages().error}\n </div>\n </Show>\n <Show when={!searching() && !searchError() && commandMatches().length === 0}>\n <div role=\"status\">{messages().noResults}</div>\n </Show>\n </div>\n </div>\n </Show>\n </div>\n </Show>\n <section\n ref={composerRef}\n class={`k2b-chat-composer ${props.class ?? \"\"}`}\n data-running={running() ? \"true\" : undefined}\n data-drag-active={dragActive() ? \"true\" : undefined}\n role=\"group\"\n aria-label={props.label ?? messages().messageComposer}\n >\n <Show when={attachments().length > 0}>\n <div class=\"k2b-chat-composer__attachments\" role=\"list\" aria-label={messages().attachments} tabIndex={0}>\n <For each={attachments()}>\n {(attachment) => (\n <div class=\"k2b-chat-composer__attachment\" role=\"listitem\">\n <div\n class=\"k2b-chat-composer__attachment-content\"\n classList={{ \"k2b-chat-composer__attachment-content--action\": Boolean(attachment.action) }}\n >\n <Show\n when={attachment.href}\n fallback={\n <div class=\"k2b-chat-composer__attachment-identity\">\n <Show\n when={attachment.kind === \"image\" && attachment.previewUrl}\n fallback={<i class={attachmentIcon(attachment)} aria-hidden=\"true\" />}\n >\n <img src={attachment.previewUrl} alt={attachment.alt ?? \"\"} />\n </Show>\n {renderAttachmentCopy(attachment)}\n </div>\n }\n >\n {(href) => (\n <a\n class=\"k2b-chat-composer__attachment-link\"\n href={href()}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={messages().openInNewTab({ name: attachment.name })}\n >\n <Show\n when={attachment.kind === \"image\" && attachment.previewUrl}\n fallback={<i class={attachmentIcon(attachment)} aria-hidden=\"true\" />}\n >\n <img src={attachment.previewUrl} alt={attachment.alt ?? \"\"} />\n </Show>\n {renderAttachmentCopy(attachment)}\n </a>\n )}\n </Show>\n <Show when={attachment.action}>\n {(action) => (\n <button\n type=\"button\"\n class=\"k2b-chat-composer__attachment-action\"\n disabled={blocked() || action().disabled}\n onClick={() => reportChatFailure(() => executeChatAction(action()), props.onError)}\n >\n <Show when={action().icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n {action().label}\n </button>\n )}\n </Show>\n </div>\n <Show when={props.onAttachmentsChange}>\n <button\n type=\"button\"\n class=\"k2b-chat-composer__attachment-remove\"\n aria-label={messages().removeNamed({ name: attachment.name })}\n disabled={blocked()}\n onClick={() => setAttachments(attachments().filter((candidate) => candidate.id !== attachment.id))}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n )}\n </For>\n </div>\n </Show>\n\n <div\n class=\"k2b-chat-composer__input\"\n role=\"group\"\n aria-label={messages().messageInput}\n onDragEnter={(event) => {\n if (!canSelectFiles() || !event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(true);\n }}\n onDragOver={(event) => {\n if (!canSelectFiles() || !event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(true);\n }}\n onDragLeave={(event) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) setDragActive(false);\n }}\n onDrop={(event) => {\n if (!event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(false);\n if (canSelectFiles() && event.dataTransfer.files.length) void runFiles(event.dataTransfer.files);\n }}\n >\n <Show when={dragActive()}>\n <div class=\"k2b-chat-composer__drop\" aria-hidden=\"true\">\n {messages().dropFilesToAttach}\n </div>\n </Show>\n <Show when={mentions().length > 0}>\n <div ref={highlightRef} class=\"k2b-chat-composer__highlight\" aria-hidden=\"true\">\n <For each={chatMentionSegments(props.value, mentions())}>\n {(part) => <span classList={{ \"k2b-chat-composer__mention\": Boolean(part.mention) }}>{part.text}</span>}\n </For>\n {\"\\n\"}\n </div>\n </Show>\n {/* biome-ignore lint/a11y/useAriaPropsSupportedByRole: popup attributes are conditional with the combobox role */}\n <textarea\n ref={textareaRef}\n classList={{ \"k2b-chat-composer__textarea--highlighted\": mentions().length > 0 }}\n rows={1}\n value={props.value}\n disabled={blocked()}\n placeholder={props.placeholder ?? (running() ? messages().addGuidance : messages().writeMessage)}\n aria-label={props.inputLabel ?? messages().message}\n role={commandsOpen() ? \"combobox\" : undefined}\n aria-autocomplete={commandsOpen() ? \"list\" : undefined}\n aria-controls={commandsOpen() ? commandListId : undefined}\n aria-expanded={commandsOpen() ? \"true\" : undefined}\n aria-activedescendant={selectedCommand() ? `${commandListId}-${selectedCommandIndex()}` : undefined}\n onInput={(event) => {\n edit(event.currentTarget.value);\n syncCaret();\n autoResize();\n }}\n onPaste={(event) => {\n const clipboardData = event.clipboardData;\n if (canSelectFiles() && clipboardData?.files.length) {\n event.preventDefault();\n void runFiles(clipboardData.files);\n return;\n }\n props.onPaste?.(event);\n }}\n onSelect={syncCaret}\n onBlur={() => setDismissed(true)}\n onClick={() => {\n setDismissed(false);\n syncCaret();\n }}\n onKeyUp={syncCaret}\n onCompositionStart={() => setComposing(true)}\n onCompositionEnd={() => {\n setComposing(false);\n syncCaret();\n }}\n onScroll={() => {\n if (highlightRef && textareaRef) highlightRef.scrollTop = textareaRef.scrollTop;\n }}\n onBeforeInput={(event) => {\n if (event.inputType === \"historyUndo\" || event.inputType === \"historyRedo\") {\n event.preventDefault();\n restoreHistory(event.inputType === \"historyUndo\" ? -1 : 1);\n }\n }}\n onKeyDown={onKeyDown}\n />\n </div>\n\n <Show when={props.error}>\n <div class=\"k2b-chat-composer__error\" role=\"alert\">\n <i class=\"ti ti-alert-circle\" aria-hidden=\"true\" />\n {props.error}\n </div>\n </Show>\n\n <footer class=\"k2b-chat-composer__footer\">\n <Show\n when={props.footerContent}\n fallback={\n <>\n <div class=\"k2b-chat-composer__tools\">\n {props.footerTools}\n <Show when={hasAddMenu()}>\n <Dropdown.Root position=\"top-right\" width=\"12rem\" label={messages().addToChat} items={menuItems()} disabled={blocked()}>\n <Dropdown.Trigger\n appearance=\"plain\"\n class=\"k2b-chat-composer__icon-action\"\n label={messages().addToChat}\n title={messages().addToChat}\n >\n <i class=\"ti ti-plus\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </Show>\n <Show when={props.fileSelection}>\n <input\n ref={fileInputRef}\n class=\"k2b-sr-only\"\n type=\"file\"\n tabIndex={-1}\n aria-hidden=\"true\"\n accept={props.fileSelection?.accept}\n multiple={props.fileSelection?.multiple ?? true}\n onChange={(event) => {\n if (event.currentTarget.files?.length) void runFiles(event.currentTarget.files);\n }}\n />\n </Show>\n <Show when={(props.models?.length ?? 0) > 0}>\n <SelectChip\n aria-label={messages().chooseModel}\n position=\"top-right\"\n class=\"k2b-chat-composer__model\"\n menuWidth=\"15rem\"\n placeholder={messages().model}\n value={() => props.selectedModelId ?? \"\"}\n options={(props.models ?? []).map((model) => ({\n value: model.id,\n label: model.label,\n description: model.description,\n icon: model.icon,\n image: model.image,\n }))}\n disabled={blocked() || running() || !props.onModelChange}\n onValueChange={(modelId) => {\n props.onModelChange?.(modelId);\n queueMicrotask(focus);\n }}\n />\n </Show>\n {props.modelDetails}\n </div>\n\n <div class=\"k2b-chat-composer__submit\">\n <For each={props.contextActions}>\n {(action) => (\n <button\n type=\"button\"\n class=\"k2b-chat-composer__icon-action\"\n data-tone={action.variant === \"danger\" ? \"danger\" : undefined}\n disabled={action.disabled}\n aria-pressed={action.pressed}\n aria-label={action.label}\n title={action.label}\n onClick={() => reportChatFailure(() => executeChatAction(action), props.onError)}\n >\n <i class={action.icon ?? \"ti ti-dots\"} aria-hidden=\"true\" />\n </button>\n )}\n </For>\n <Show when={hasContextUsage() ? (props.contextUsage ?? {}) : undefined}>\n {(usage) => <ContextUsage {...usage()} action={props.contextPopupAction} onActionError={props.onError} />}\n </Show>\n {props.submitTools}\n <Show\n when={running() && !hasDraft() && props.onStop}\n fallback={\n <button\n type=\"button\"\n class=\"k2b-chat-composer__send\"\n disabled={!canSubmit()}\n aria-label={\n submitting()\n ? running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueing\n : messages().steering\n : messages().sending\n : running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueMessage\n : messages().steerResponse\n : messages().sendMessage\n }\n title={\n running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueMessage\n : messages().steerResponse\n : messages().sendMessage\n }\n onClick={() => void submit()}\n >\n <i class={submitting() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-arrow-up\"} aria-hidden=\"true\" />\n </button>\n }\n >\n <button\n type=\"button\"\n class=\"k2b-chat-composer__stop\"\n disabled={stopping()}\n aria-label={stopping() ? messages().stopping : messages().stopResponse}\n title={stopping() ? messages().stopping : messages().stopResponse}\n onClick={() => reportChatFailure(() => props.onStop?.(), props.onError)}\n >\n <i class={stopping() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-player-stop\"} aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n </>\n }\n >\n {(content) => content()}\n </Show>\n </footer>\n </section>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|