@k2b/ui 0.1.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +343 -0
- package/dist/.build-complete +0 -0
- package/dist/browser/actions/Button.js +236 -0
- package/dist/browser/actions/Button.js.map +1 -0
- package/dist/browser/actions/ContextMenu.js +199 -0
- package/dist/browser/actions/ContextMenu.js.map +1 -0
- package/dist/browser/actions/CopyButton.js +97 -0
- package/dist/browser/actions/CopyButton.js.map +1 -0
- package/dist/browser/actions/Disclosure.js +83 -0
- package/dist/browser/actions/Disclosure.js.map +1 -0
- package/dist/browser/actions/Dropdown.js +669 -0
- package/dist/browser/actions/Dropdown.js.map +1 -0
- package/dist/browser/actions/FilterChip.js +149 -0
- package/dist/browser/actions/FilterChip.js.map +1 -0
- package/dist/browser/actions/RemoveButton.js +47 -0
- package/dist/browser/actions/RemoveButton.js.map +1 -0
- package/dist/browser/actions/SegmentedControl.js +138 -0
- package/dist/browser/actions/SegmentedControl.js.map +1 -0
- package/dist/browser/actions/SplitButton.js +76 -0
- package/dist/browser/actions/SplitButton.js.map +1 -0
- package/dist/browser/actions/SpotlightSearch.js +87 -0
- package/dist/browser/actions/SpotlightSearch.js.map +1 -0
- package/dist/browser/actions/Tabs.js +185 -0
- package/dist/browser/actions/Tabs.js.map +1 -0
- package/dist/browser/actions/Toolbar.js +87 -0
- package/dist/browser/actions/Toolbar.js.map +1 -0
- package/dist/browser/actions/index.js +13 -0
- package/dist/browser/actions/index.js.map +1 -0
- package/dist/browser/chat/ChatComposer.js +760 -0
- package/dist/browser/chat/ChatComposer.js.map +1 -0
- package/dist/browser/chat/ChatPrimitives.js +688 -0
- package/dist/browser/chat/ChatPrimitives.js.map +1 -0
- package/dist/browser/chat/ChatRoot.js +27 -0
- package/dist/browser/chat/ChatRoot.js.map +1 -0
- package/dist/browser/chat/ChatTimeline.js +404 -0
- package/dist/browser/chat/ChatTimeline.js.map +1 -0
- package/dist/browser/chat/chat-behavior.js +53 -0
- package/dist/browser/chat/chat-behavior.js.map +1 -0
- package/dist/browser/chat/index.js +17 -0
- package/dist/browser/chat/index.js.map +1 -0
- package/dist/browser/chat/types.js +2 -0
- package/dist/browser/chat/types.js.map +1 -0
- package/dist/browser/content/Calendar.js +2168 -0
- package/dist/browser/content/Calendar.js.map +1 -0
- package/dist/browser/content/Chart.js +680 -0
- package/dist/browser/content/Chart.js.map +1 -0
- package/dist/browser/content/CodeDisplay.js +104 -0
- package/dist/browser/content/CodeDisplay.js.map +1 -0
- package/dist/browser/content/DataTable.js +724 -0
- package/dist/browser/content/DataTable.js.map +1 -0
- package/dist/browser/content/Docs.js +227 -0
- package/dist/browser/content/Docs.js.map +1 -0
- package/dist/browser/content/FileBrowser.js +462 -0
- package/dist/browser/content/FileBrowser.js.map +1 -0
- package/dist/browser/content/FileTree.js +453 -0
- package/dist/browser/content/FileTree.js.map +1 -0
- package/dist/browser/content/FileView.js +842 -0
- package/dist/browser/content/FileView.js.map +1 -0
- package/dist/browser/content/Lightbox.js +285 -0
- package/dist/browser/content/Lightbox.js.map +1 -0
- package/dist/browser/content/LogEntriesTable.js +139 -0
- package/dist/browser/content/LogEntriesTable.js.map +1 -0
- package/dist/browser/content/MarkdownView.js +138 -0
- package/dist/browser/content/MarkdownView.js.map +1 -0
- package/dist/browser/content/Pagination.js +182 -0
- package/dist/browser/content/Pagination.js.map +1 -0
- package/dist/browser/content/PdfPreview.js +204 -0
- package/dist/browser/content/PdfPreview.js.map +1 -0
- package/dist/browser/content/RangePicker.js +83 -0
- package/dist/browser/content/RangePicker.js.map +1 -0
- package/dist/browser/content/StructuredDataPreview.js +194 -0
- package/dist/browser/content/StructuredDataPreview.js.map +1 -0
- package/dist/browser/content/calendar-event-layout.js +92 -0
- package/dist/browser/content/calendar-event-layout.js.map +1 -0
- package/dist/browser/content/calendar-pointer.js +114 -0
- package/dist/browser/content/calendar-pointer.js.map +1 -0
- package/dist/browser/content/chart-map-viewport.js +33 -0
- package/dist/browser/content/chart-map-viewport.js.map +1 -0
- package/dist/browser/content/chart-state-timeline.js +124 -0
- package/dist/browser/content/chart-state-timeline.js.map +1 -0
- package/dist/browser/content/code-highlight.js +144 -0
- package/dist/browser/content/code-highlight.js.map +1 -0
- package/dist/browser/content/file-tree.js +93 -0
- package/dist/browser/content/file-tree.js.map +1 -0
- package/dist/browser/content/file-view-preview.js +112 -0
- package/dist/browser/content/file-view-preview.js.map +1 -0
- package/dist/browser/content/index.js +16 -0
- package/dist/browser/content/index.js.map +1 -0
- package/dist/browser/feedback/InlineGuidance.js +46 -0
- package/dist/browser/feedback/InlineGuidance.js.map +1 -0
- package/dist/browser/feedback/Tooltip.js +189 -0
- package/dist/browser/feedback/Tooltip.js.map +1 -0
- package/dist/browser/feedback/dialog-core.js +207 -0
- package/dist/browser/feedback/dialog-core.js.map +1 -0
- package/dist/browser/feedback/index.js +6 -0
- package/dist/browser/feedback/index.js.map +1 -0
- package/dist/browser/feedback/prompts.js +991 -0
- package/dist/browser/feedback/prompts.js.map +1 -0
- package/dist/browser/feedback/toast.js +271 -0
- package/dist/browser/feedback/toast.js.map +1 -0
- package/dist/browser/feedback/tooltip-position.js +25 -0
- package/dist/browser/feedback/tooltip-position.js.map +1 -0
- package/dist/browser/index.js +11 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/inputs/AutocompleteEditor.js +610 -0
- package/dist/browser/inputs/AutocompleteEditor.js.map +1 -0
- package/dist/browser/inputs/AutocompleteSelect.js +632 -0
- package/dist/browser/inputs/AutocompleteSelect.js.map +1 -0
- package/dist/browser/inputs/Checkbox.js +137 -0
- package/dist/browser/inputs/Checkbox.js.map +1 -0
- package/dist/browser/inputs/CheckboxCard.js +130 -0
- package/dist/browser/inputs/CheckboxCard.js.map +1 -0
- package/dist/browser/inputs/ChoiceGroups.js +174 -0
- package/dist/browser/inputs/ChoiceGroups.js.map +1 -0
- package/dist/browser/inputs/ChoiceInputs.js +400 -0
- package/dist/browser/inputs/ChoiceInputs.js.map +1 -0
- package/dist/browser/inputs/Combobox.js +274 -0
- package/dist/browser/inputs/Combobox.js.map +1 -0
- package/dist/browser/inputs/DatePicker.js +923 -0
- package/dist/browser/inputs/DatePicker.js.map +1 -0
- package/dist/browser/inputs/FileInputs.js +736 -0
- package/dist/browser/inputs/FileInputs.js.map +1 -0
- package/dist/browser/inputs/MultiSelectInput.js +565 -0
- package/dist/browser/inputs/MultiSelectInput.js.map +1 -0
- package/dist/browser/inputs/NumberInput.js +288 -0
- package/dist/browser/inputs/NumberInput.js.map +1 -0
- package/dist/browser/inputs/Select.js +507 -0
- package/dist/browser/inputs/Select.js.map +1 -0
- package/dist/browser/inputs/SelectChip.js +151 -0
- package/dist/browser/inputs/SelectChip.js.map +1 -0
- package/dist/browser/inputs/SpecialInputs.js +117 -0
- package/dist/browser/inputs/SpecialInputs.js.map +1 -0
- package/dist/browser/inputs/Switch.js +117 -0
- package/dist/browser/inputs/Switch.js.map +1 -0
- package/dist/browser/inputs/TagEditor.js +358 -0
- package/dist/browser/inputs/TagEditor.js.map +1 -0
- package/dist/browser/inputs/TagsInput.js +195 -0
- package/dist/browser/inputs/TagsInput.js.map +1 -0
- package/dist/browser/inputs/TemplateEditor.js +190 -0
- package/dist/browser/inputs/TemplateEditor.js.map +1 -0
- package/dist/browser/inputs/TextInput.js +318 -0
- package/dist/browser/inputs/TextInput.js.map +1 -0
- package/dist/browser/inputs/choice.js +188 -0
- package/dist/browser/inputs/choice.js.map +1 -0
- package/dist/browser/inputs/completion/behaviors.js +108 -0
- package/dist/browser/inputs/completion/behaviors.js.map +1 -0
- package/dist/browser/inputs/completion/engine.js +103 -0
- package/dist/browser/inputs/completion/engine.js.map +1 -0
- package/dist/browser/inputs/completion/index.js +4 -0
- package/dist/browser/inputs/completion/index.js.map +1 -0
- package/dist/browser/inputs/completion/overlay.js +25 -0
- package/dist/browser/inputs/completion/overlay.js.map +1 -0
- package/dist/browser/inputs/date-picker.js +123 -0
- package/dist/browser/inputs/date-picker.js.map +1 -0
- package/dist/browser/inputs/editor-dom.js +26 -0
- package/dist/browser/inputs/editor-dom.js.map +1 -0
- package/dist/browser/inputs/field-contract.js +9 -0
- package/dist/browser/inputs/field-contract.js.map +1 -0
- package/dist/browser/inputs/icon-options.js +46 -0
- package/dist/browser/inputs/icon-options.js.map +1 -0
- package/dist/browser/inputs/image-crop.js +145 -0
- package/dist/browser/inputs/image-crop.js.map +1 -0
- package/dist/browser/inputs/index.js +23 -0
- package/dist/browser/inputs/index.js.map +1 -0
- package/dist/browser/inputs/markdown/MarkdownEditor.js +725 -0
- package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -0
- package/dist/browser/inputs/markdown/Toolbar.js +172 -0
- package/dist/browser/inputs/markdown/Toolbar.js.map +1 -0
- package/dist/browser/inputs/markdown/actions.js +140 -0
- package/dist/browser/inputs/markdown/actions.js.map +1 -0
- package/dist/browser/inputs/markdown/active-formats.js +36 -0
- package/dist/browser/inputs/markdown/active-formats.js.map +1 -0
- package/dist/browser/inputs/markdown/behaviors.js +63 -0
- package/dist/browser/inputs/markdown/behaviors.js.map +1 -0
- package/dist/browser/inputs/markdown/code-zone.js +8 -0
- package/dist/browser/inputs/markdown/code-zone.js.map +1 -0
- package/dist/browser/internal/color.js +18 -0
- package/dist/browser/internal/color.js.map +1 -0
- package/dist/browser/internal/field.js +158 -0
- package/dist/browser/internal/field.js.map +1 -0
- package/dist/browser/internal/portal.js +17 -0
- package/dist/browser/internal/portal.js.map +1 -0
- package/dist/browser/intl/Format.js +273 -0
- package/dist/browser/intl/Format.js.map +1 -0
- package/dist/browser/intl/index.js +3 -0
- package/dist/browser/intl/index.js.map +1 -0
- package/dist/browser/intl/locale.js +63 -0
- package/dist/browser/intl/locale.js.map +1 -0
- package/dist/browser/intl/messages.js +753 -0
- package/dist/browser/intl/messages.js.map +1 -0
- package/dist/browser/layout/AppOverview.js +151 -0
- package/dist/browser/layout/AppOverview.js.map +1 -0
- package/dist/browser/layout/AppWorkspace.js +1502 -0
- package/dist/browser/layout/AppWorkspace.js.map +1 -0
- package/dist/browser/layout/DataPanel.js +122 -0
- package/dist/browser/layout/DataPanel.js.map +1 -0
- package/dist/browser/layout/DetailPanel.js +484 -0
- package/dist/browser/layout/DetailPanel.js.map +1 -0
- package/dist/browser/layout/Discussion.js +511 -0
- package/dist/browser/layout/Discussion.js.map +1 -0
- package/dist/browser/layout/FloatingWindow.js +332 -0
- package/dist/browser/layout/FloatingWindow.js.map +1 -0
- package/dist/browser/layout/PanelDialog.js +236 -0
- package/dist/browser/layout/PanelDialog.js.map +1 -0
- package/dist/browser/layout/PanelHeader.js +91 -0
- package/dist/browser/layout/PanelHeader.js.map +1 -0
- package/dist/browser/layout/Panes.js +978 -0
- package/dist/browser/layout/Panes.js.map +1 -0
- package/dist/browser/layout/ScrollArea.js +29 -0
- package/dist/browser/layout/ScrollArea.js.map +1 -0
- package/dist/browser/layout/Settings.js +381 -0
- package/dist/browser/layout/Settings.js.map +1 -0
- package/dist/browser/layout/SettingsCollection.js +212 -0
- package/dist/browser/layout/SettingsCollection.js.map +1 -0
- package/dist/browser/layout/SettingsModal.js +281 -0
- package/dist/browser/layout/SettingsModal.js.map +1 -0
- package/dist/browser/layout/app-workspace-controller.js +419 -0
- package/dist/browser/layout/app-workspace-controller.js.map +1 -0
- package/dist/browser/layout/app-workspace-state.js +125 -0
- package/dist/browser/layout/app-workspace-state.js.map +1 -0
- package/dist/browser/layout/floating-window-geometry.js +15 -0
- package/dist/browser/layout/floating-window-geometry.js.map +1 -0
- package/dist/browser/layout/index.js +17 -0
- package/dist/browser/layout/index.js.map +1 -0
- package/dist/browser/layout/panes-layout.js +436 -0
- package/dist/browser/layout/panes-layout.js.map +1 -0
- package/dist/browser/layout/stable-id.js +17 -0
- package/dist/browser/layout/stable-id.js.map +1 -0
- package/dist/browser/semantics.js +2 -0
- package/dist/browser/semantics.js.map +1 -0
- package/dist/browser/surfaces/Avatar.js +97 -0
- package/dist/browser/surfaces/Avatar.js.map +1 -0
- package/dist/browser/surfaces/DescriptionList.js +66 -0
- package/dist/browser/surfaces/DescriptionList.js.map +1 -0
- package/dist/browser/surfaces/LinkCard.js +40 -0
- package/dist/browser/surfaces/LinkCard.js.map +1 -0
- package/dist/browser/surfaces/NotFoundState.js +85 -0
- package/dist/browser/surfaces/NotFoundState.js.map +1 -0
- package/dist/browser/surfaces/NoticeCard.js +145 -0
- package/dist/browser/surfaces/NoticeCard.js.map +1 -0
- package/dist/browser/surfaces/Paper.js +33 -0
- package/dist/browser/surfaces/Paper.js.map +1 -0
- package/dist/browser/surfaces/Placeholder.js +90 -0
- package/dist/browser/surfaces/Placeholder.js.map +1 -0
- package/dist/browser/surfaces/ProgressBar.js +58 -0
- package/dist/browser/surfaces/ProgressBar.js.map +1 -0
- package/dist/browser/surfaces/StatCell.js +172 -0
- package/dist/browser/surfaces/StatCell.js.map +1 -0
- package/dist/browser/surfaces/StatGrid.js +80 -0
- package/dist/browser/surfaces/StatGrid.js.map +1 -0
- package/dist/browser/surfaces/StatusBadge.js +70 -0
- package/dist/browser/surfaces/StatusBadge.js.map +1 -0
- package/dist/browser/surfaces/Tag.js +94 -0
- package/dist/browser/surfaces/Tag.js.map +1 -0
- package/dist/browser/surfaces/index.js +13 -0
- package/dist/browser/surfaces/index.js.map +1 -0
- package/dist/browser/widgets/Widget.js +89 -0
- package/dist/browser/widgets/Widget.js.map +1 -0
- package/dist/browser/widgets/WidgetHero.js +47 -0
- package/dist/browser/widgets/WidgetHero.js.map +1 -0
- package/dist/browser/widgets/WidgetList.js +125 -0
- package/dist/browser/widgets/WidgetList.js.map +1 -0
- package/dist/browser/widgets/WidgetPills.js +78 -0
- package/dist/browser/widgets/WidgetPills.js.map +1 -0
- package/dist/browser/widgets/WidgetStat.js +114 -0
- package/dist/browser/widgets/WidgetStat.js.map +1 -0
- package/dist/browser/widgets/WidgetStatus.js +54 -0
- package/dist/browser/widgets/WidgetStatus.js.map +1 -0
- package/dist/browser/widgets/index.js +7 -0
- package/dist/browser/widgets/index.js.map +1 -0
- package/dist/global.css +3 -0
- package/dist/licenses/ibm-plex-mono.txt +93 -0
- package/dist/licenses/ibm-plex-sans.txt +93 -0
- package/dist/licenses/tabler-icons.txt +21 -0
- package/dist/plex.css +1 -0
- package/dist/ssr/actions/Button.js +203 -0
- package/dist/ssr/actions/Button.js.map +1 -0
- package/dist/ssr/actions/ContextMenu.js +128 -0
- package/dist/ssr/actions/ContextMenu.js.map +1 -0
- package/dist/ssr/actions/CopyButton.js +79 -0
- package/dist/ssr/actions/CopyButton.js.map +1 -0
- package/dist/ssr/actions/Disclosure.js +26 -0
- package/dist/ssr/actions/Disclosure.js.map +1 -0
- package/dist/ssr/actions/Dropdown.js +443 -0
- package/dist/ssr/actions/Dropdown.js.map +1 -0
- package/dist/ssr/actions/FilterChip.js +132 -0
- package/dist/ssr/actions/FilterChip.js.map +1 -0
- package/dist/ssr/actions/RemoveButton.js +45 -0
- package/dist/ssr/actions/RemoveButton.js.map +1 -0
- package/dist/ssr/actions/SegmentedControl.js +57 -0
- package/dist/ssr/actions/SegmentedControl.js.map +1 -0
- package/dist/ssr/actions/SplitButton.js +74 -0
- package/dist/ssr/actions/SplitButton.js.map +1 -0
- package/dist/ssr/actions/SpotlightSearch.js +38 -0
- package/dist/ssr/actions/SpotlightSearch.js.map +1 -0
- package/dist/ssr/actions/Tabs.js +91 -0
- package/dist/ssr/actions/Tabs.js.map +1 -0
- package/dist/ssr/actions/Toolbar.js +33 -0
- package/dist/ssr/actions/Toolbar.js.map +1 -0
- package/dist/ssr/actions/index.js +13 -0
- package/dist/ssr/actions/index.js.map +1 -0
- package/dist/ssr/chat/ChatComposer.js +392 -0
- package/dist/ssr/chat/ChatComposer.js.map +1 -0
- package/dist/ssr/chat/ChatPrimitives.js +377 -0
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -0
- package/dist/ssr/chat/ChatRoot.js +10 -0
- package/dist/ssr/chat/ChatRoot.js.map +1 -0
- package/dist/ssr/chat/ChatTimeline.js +301 -0
- package/dist/ssr/chat/ChatTimeline.js.map +1 -0
- package/dist/ssr/chat/chat-behavior.js +53 -0
- package/dist/ssr/chat/chat-behavior.js.map +1 -0
- package/dist/ssr/chat/index.js +17 -0
- package/dist/ssr/chat/index.js.map +1 -0
- package/dist/ssr/chat/types.js +2 -0
- package/dist/ssr/chat/types.js.map +1 -0
- package/dist/ssr/content/Calendar.js +1542 -0
- package/dist/ssr/content/Calendar.js.map +1 -0
- package/dist/ssr/content/Chart.js +552 -0
- package/dist/ssr/content/Chart.js.map +1 -0
- package/dist/ssr/content/CodeDisplay.js +55 -0
- package/dist/ssr/content/CodeDisplay.js.map +1 -0
- package/dist/ssr/content/DataTable.js +470 -0
- package/dist/ssr/content/DataTable.js.map +1 -0
- package/dist/ssr/content/Docs.js +108 -0
- package/dist/ssr/content/Docs.js.map +1 -0
- package/dist/ssr/content/FileBrowser.js +422 -0
- package/dist/ssr/content/FileBrowser.js.map +1 -0
- package/dist/ssr/content/FileTree.js +299 -0
- package/dist/ssr/content/FileTree.js.map +1 -0
- package/dist/ssr/content/FileView.js +612 -0
- package/dist/ssr/content/FileView.js.map +1 -0
- package/dist/ssr/content/Lightbox.js +164 -0
- package/dist/ssr/content/Lightbox.js.map +1 -0
- package/dist/ssr/content/LogEntriesTable.js +106 -0
- package/dist/ssr/content/LogEntriesTable.js.map +1 -0
- package/dist/ssr/content/MarkdownView.js +119 -0
- package/dist/ssr/content/MarkdownView.js.map +1 -0
- package/dist/ssr/content/Pagination.js +141 -0
- package/dist/ssr/content/Pagination.js.map +1 -0
- package/dist/ssr/content/PdfPreview.js +126 -0
- package/dist/ssr/content/PdfPreview.js.map +1 -0
- package/dist/ssr/content/RangePicker.js +35 -0
- package/dist/ssr/content/RangePicker.js.map +1 -0
- package/dist/ssr/content/StructuredDataPreview.js +127 -0
- package/dist/ssr/content/StructuredDataPreview.js.map +1 -0
- package/dist/ssr/content/calendar-event-layout.js +92 -0
- package/dist/ssr/content/calendar-event-layout.js.map +1 -0
- package/dist/ssr/content/calendar-pointer.js +114 -0
- package/dist/ssr/content/calendar-pointer.js.map +1 -0
- package/dist/ssr/content/chart-map-viewport.js +33 -0
- package/dist/ssr/content/chart-map-viewport.js.map +1 -0
- package/dist/ssr/content/chart-state-timeline.js +124 -0
- package/dist/ssr/content/chart-state-timeline.js.map +1 -0
- package/dist/ssr/content/code-highlight.js +144 -0
- package/dist/ssr/content/code-highlight.js.map +1 -0
- package/dist/ssr/content/file-tree.js +93 -0
- package/dist/ssr/content/file-tree.js.map +1 -0
- package/dist/ssr/content/file-view-preview.js +112 -0
- package/dist/ssr/content/file-view-preview.js.map +1 -0
- package/dist/ssr/content/index.js +16 -0
- package/dist/ssr/content/index.js.map +1 -0
- package/dist/ssr/feedback/InlineGuidance.js +26 -0
- package/dist/ssr/feedback/InlineGuidance.js.map +1 -0
- package/dist/ssr/feedback/Tooltip.js +156 -0
- package/dist/ssr/feedback/Tooltip.js.map +1 -0
- package/dist/ssr/feedback/dialog-core.js +207 -0
- package/dist/ssr/feedback/dialog-core.js.map +1 -0
- package/dist/ssr/feedback/index.js +6 -0
- package/dist/ssr/feedback/index.js.map +1 -0
- package/dist/ssr/feedback/prompts.js +703 -0
- package/dist/ssr/feedback/prompts.js.map +1 -0
- package/dist/ssr/feedback/toast.js +271 -0
- package/dist/ssr/feedback/toast.js.map +1 -0
- package/dist/ssr/feedback/tooltip-position.js +25 -0
- package/dist/ssr/feedback/tooltip-position.js.map +1 -0
- package/dist/ssr/index.js +11 -0
- package/dist/ssr/index.js.map +1 -0
- package/dist/ssr/inputs/AutocompleteEditor.js +463 -0
- package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -0
- package/dist/ssr/inputs/AutocompleteSelect.js +420 -0
- package/dist/ssr/inputs/AutocompleteSelect.js.map +1 -0
- package/dist/ssr/inputs/Checkbox.js +75 -0
- package/dist/ssr/inputs/Checkbox.js.map +1 -0
- package/dist/ssr/inputs/CheckboxCard.js +69 -0
- package/dist/ssr/inputs/CheckboxCard.js.map +1 -0
- package/dist/ssr/inputs/ChoiceGroups.js +101 -0
- package/dist/ssr/inputs/ChoiceGroups.js.map +1 -0
- package/dist/ssr/inputs/ChoiceInputs.js +250 -0
- package/dist/ssr/inputs/ChoiceInputs.js.map +1 -0
- package/dist/ssr/inputs/Combobox.js +177 -0
- package/dist/ssr/inputs/Combobox.js.map +1 -0
- package/dist/ssr/inputs/DatePicker.js +629 -0
- package/dist/ssr/inputs/DatePicker.js.map +1 -0
- package/dist/ssr/inputs/FileInputs.js +543 -0
- package/dist/ssr/inputs/FileInputs.js.map +1 -0
- package/dist/ssr/inputs/MultiSelectInput.js +347 -0
- package/dist/ssr/inputs/MultiSelectInput.js.map +1 -0
- package/dist/ssr/inputs/NumberInput.js +177 -0
- package/dist/ssr/inputs/NumberInput.js.map +1 -0
- package/dist/ssr/inputs/Select.js +308 -0
- package/dist/ssr/inputs/Select.js.map +1 -0
- package/dist/ssr/inputs/SelectChip.js +129 -0
- package/dist/ssr/inputs/SelectChip.js.map +1 -0
- package/dist/ssr/inputs/SpecialInputs.js +116 -0
- package/dist/ssr/inputs/SpecialInputs.js.map +1 -0
- package/dist/ssr/inputs/Switch.js +62 -0
- package/dist/ssr/inputs/Switch.js.map +1 -0
- package/dist/ssr/inputs/TagEditor.js +280 -0
- package/dist/ssr/inputs/TagEditor.js.map +1 -0
- package/dist/ssr/inputs/TagsInput.js +122 -0
- package/dist/ssr/inputs/TagsInput.js.map +1 -0
- package/dist/ssr/inputs/TemplateEditor.js +164 -0
- package/dist/ssr/inputs/TemplateEditor.js.map +1 -0
- package/dist/ssr/inputs/TextInput.js +211 -0
- package/dist/ssr/inputs/TextInput.js.map +1 -0
- package/dist/ssr/inputs/choice.js +188 -0
- package/dist/ssr/inputs/choice.js.map +1 -0
- package/dist/ssr/inputs/completion/behaviors.js +108 -0
- package/dist/ssr/inputs/completion/behaviors.js.map +1 -0
- package/dist/ssr/inputs/completion/engine.js +103 -0
- package/dist/ssr/inputs/completion/engine.js.map +1 -0
- package/dist/ssr/inputs/completion/index.js +4 -0
- package/dist/ssr/inputs/completion/index.js.map +1 -0
- package/dist/ssr/inputs/completion/overlay.js +25 -0
- package/dist/ssr/inputs/completion/overlay.js.map +1 -0
- package/dist/ssr/inputs/date-picker.js +123 -0
- package/dist/ssr/inputs/date-picker.js.map +1 -0
- package/dist/ssr/inputs/editor-dom.js +26 -0
- package/dist/ssr/inputs/editor-dom.js.map +1 -0
- package/dist/ssr/inputs/field-contract.js +9 -0
- package/dist/ssr/inputs/field-contract.js.map +1 -0
- package/dist/ssr/inputs/icon-options.js +46 -0
- package/dist/ssr/inputs/icon-options.js.map +1 -0
- package/dist/ssr/inputs/image-crop.js +145 -0
- package/dist/ssr/inputs/image-crop.js.map +1 -0
- package/dist/ssr/inputs/index.js +23 -0
- package/dist/ssr/inputs/index.js.map +1 -0
- package/dist/ssr/inputs/markdown/MarkdownEditor.js +516 -0
- package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -0
- package/dist/ssr/inputs/markdown/Toolbar.js +115 -0
- package/dist/ssr/inputs/markdown/Toolbar.js.map +1 -0
- package/dist/ssr/inputs/markdown/actions.js +140 -0
- package/dist/ssr/inputs/markdown/actions.js.map +1 -0
- package/dist/ssr/inputs/markdown/active-formats.js +36 -0
- package/dist/ssr/inputs/markdown/active-formats.js.map +1 -0
- package/dist/ssr/inputs/markdown/behaviors.js +63 -0
- package/dist/ssr/inputs/markdown/behaviors.js.map +1 -0
- package/dist/ssr/inputs/markdown/code-zone.js +8 -0
- package/dist/ssr/inputs/markdown/code-zone.js.map +1 -0
- package/dist/ssr/internal/color.js +18 -0
- package/dist/ssr/internal/color.js.map +1 -0
- package/dist/ssr/internal/field.js +90 -0
- package/dist/ssr/internal/field.js.map +1 -0
- package/dist/ssr/internal/portal.js +17 -0
- package/dist/ssr/internal/portal.js.map +1 -0
- package/dist/ssr/intl/Format.js +192 -0
- package/dist/ssr/intl/Format.js.map +1 -0
- package/dist/ssr/intl/index.js +3 -0
- package/dist/ssr/intl/index.js.map +1 -0
- package/dist/ssr/intl/locale.js +63 -0
- package/dist/ssr/intl/locale.js.map +1 -0
- package/dist/ssr/intl/messages.js +753 -0
- package/dist/ssr/intl/messages.js.map +1 -0
- package/dist/ssr/layout/AppOverview.js +85 -0
- package/dist/ssr/layout/AppOverview.js.map +1 -0
- package/dist/ssr/layout/AppWorkspace.js +976 -0
- package/dist/ssr/layout/AppWorkspace.js.map +1 -0
- package/dist/ssr/layout/DataPanel.js +101 -0
- package/dist/ssr/layout/DataPanel.js.map +1 -0
- package/dist/ssr/layout/DetailPanel.js +284 -0
- package/dist/ssr/layout/DetailPanel.js.map +1 -0
- package/dist/ssr/layout/Discussion.js +319 -0
- package/dist/ssr/layout/Discussion.js.map +1 -0
- package/dist/ssr/layout/FloatingWindow.js +259 -0
- package/dist/ssr/layout/FloatingWindow.js.map +1 -0
- package/dist/ssr/layout/PanelDialog.js +136 -0
- package/dist/ssr/layout/PanelDialog.js.map +1 -0
- package/dist/ssr/layout/PanelHeader.js +45 -0
- package/dist/ssr/layout/PanelHeader.js.map +1 -0
- package/dist/ssr/layout/Panes.js +678 -0
- package/dist/ssr/layout/Panes.js.map +1 -0
- package/dist/ssr/layout/ScrollArea.js +18 -0
- package/dist/ssr/layout/ScrollArea.js.map +1 -0
- package/dist/ssr/layout/Settings.js +219 -0
- package/dist/ssr/layout/Settings.js.map +1 -0
- package/dist/ssr/layout/SettingsCollection.js +150 -0
- package/dist/ssr/layout/SettingsCollection.js.map +1 -0
- package/dist/ssr/layout/SettingsModal.js +156 -0
- package/dist/ssr/layout/SettingsModal.js.map +1 -0
- package/dist/ssr/layout/app-workspace-controller.js +419 -0
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -0
- package/dist/ssr/layout/app-workspace-state.js +125 -0
- package/dist/ssr/layout/app-workspace-state.js.map +1 -0
- package/dist/ssr/layout/floating-window-geometry.js +15 -0
- package/dist/ssr/layout/floating-window-geometry.js.map +1 -0
- package/dist/ssr/layout/index.js +17 -0
- package/dist/ssr/layout/index.js.map +1 -0
- package/dist/ssr/layout/panes-layout.js +436 -0
- package/dist/ssr/layout/panes-layout.js.map +1 -0
- package/dist/ssr/layout/stable-id.js +17 -0
- package/dist/ssr/layout/stable-id.js.map +1 -0
- package/dist/ssr/semantics.js +2 -0
- package/dist/ssr/semantics.js.map +1 -0
- package/dist/ssr/surfaces/Avatar.js +43 -0
- package/dist/ssr/surfaces/Avatar.js.map +1 -0
- package/dist/ssr/surfaces/DescriptionList.js +25 -0
- package/dist/ssr/surfaces/DescriptionList.js.map +1 -0
- package/dist/ssr/surfaces/LinkCard.js +25 -0
- package/dist/ssr/surfaces/LinkCard.js.map +1 -0
- package/dist/ssr/surfaces/NotFoundState.js +38 -0
- package/dist/ssr/surfaces/NotFoundState.js.map +1 -0
- package/dist/ssr/surfaces/NoticeCard.js +83 -0
- package/dist/ssr/surfaces/NoticeCard.js.map +1 -0
- package/dist/ssr/surfaces/Paper.js +32 -0
- package/dist/ssr/surfaces/Paper.js.map +1 -0
- package/dist/ssr/surfaces/Placeholder.js +76 -0
- package/dist/ssr/surfaces/Placeholder.js.map +1 -0
- package/dist/ssr/surfaces/ProgressBar.js +13 -0
- package/dist/ssr/surfaces/ProgressBar.js.map +1 -0
- package/dist/ssr/surfaces/StatCell.js +80 -0
- package/dist/ssr/surfaces/StatCell.js.map +1 -0
- package/dist/ssr/surfaces/StatGrid.js +62 -0
- package/dist/ssr/surfaces/StatGrid.js.map +1 -0
- package/dist/ssr/surfaces/StatusBadge.js +38 -0
- package/dist/ssr/surfaces/StatusBadge.js.map +1 -0
- package/dist/ssr/surfaces/Tag.js +32 -0
- package/dist/ssr/surfaces/Tag.js.map +1 -0
- package/dist/ssr/surfaces/index.js +13 -0
- package/dist/ssr/surfaces/index.js.map +1 -0
- package/dist/ssr/widgets/Widget.js +54 -0
- package/dist/ssr/widgets/Widget.js.map +1 -0
- package/dist/ssr/widgets/WidgetHero.js +23 -0
- package/dist/ssr/widgets/WidgetHero.js.map +1 -0
- package/dist/ssr/widgets/WidgetList.js +73 -0
- package/dist/ssr/widgets/WidgetList.js.map +1 -0
- package/dist/ssr/widgets/WidgetPills.js +40 -0
- package/dist/ssr/widgets/WidgetPills.js.map +1 -0
- package/dist/ssr/widgets/WidgetStat.js +45 -0
- package/dist/ssr/widgets/WidgetStat.js.map +1 -0
- package/dist/ssr/widgets/WidgetStatus.js +23 -0
- package/dist/ssr/widgets/WidgetStatus.js.map +1 -0
- package/dist/ssr/widgets/index.js +7 -0
- package/dist/ssr/widgets/index.js.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/tabler-icons-q30jt7jk.woff2 +0 -0
- package/dist/tabler.css +4 -0
- package/package.json +77 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createUniqueId","Show","splitProps","Button","ButtonLink","Dropdown","classNames","base","extra","DetailPanelHeader","props","_$ssr","_tmpl$7","_$ssrAttribute","_$escape","class","_$createComponent","when","icon","children","_tmpl$8","leading","_tmpl$","title","subtitle","meta","_tmpl$4","_tmpl$2","_tmpl$3","actions","_tmpl$5","primaryActions","_tmpl$6","DetailPanelBody","_tmpl$9","scrollPreserveKey","DetailPanelSummary","headingId","_tmpl$1","_tmpl$0","DetailPanelGroup","_tmpl$10","label","DetailPanelSectionIcon","_tmpl$11","tone","DetailPanelActionContent","_tmpl$12","_tmpl$14","description","_tmpl$13","trailing","_tmpl$15","DetailPanelAction","local","rest","className","content","action","href","undefined","fallback","_$mergeProps","variant","size","menuItems","length","_tmpl$17","Root","items","align","menuLabel","Trigger","iconOnly","_tmpl$16","DetailPanelSection","collapsible","_tmpl$24","_tmpl$21","_tmpl$22","_tmpl$23","_tmpl$20","defaultOpen","_tmpl$18","_tmpl$19","DetailPanel","Header","Body","Summary","Group","Section","Action"],"sources":["layout/DetailPanel.tsx"],"sourcesContent":["import { createUniqueId, type JSX, Show, splitProps } from \"solid-js\";\nimport { Button, ButtonLink, type ButtonLinkProps, type ButtonProps } from \"../actions/Button\";\nimport { Dropdown, type DropdownItem } from \"../actions/Dropdown\";\n\nexport type DetailPanelProps = {\n children: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelHeaderBaseProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n meta?: JSX.Element;\n actions?: JSX.Element;\n primaryActions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelHeaderProps = DetailPanelHeaderBaseProps &\n (\n | {\n leading?: JSX.Element;\n icon?: never;\n }\n | {\n leading?: never;\n icon?: string;\n }\n );\n\nexport type DetailPanelBodyProps = {\n children: JSX.Element;\n scrollPreserveKey?: string;\n class?: string;\n};\n\nexport type DetailPanelSummaryProps = {\n title: JSX.Element;\n children: JSX.Element;\n actions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelGroupProps = {\n children: JSX.Element;\n label?: string;\n class?: string;\n};\n\nexport type DetailPanelTone = \"accent\" | \"neutral\" | \"success\" | \"warning\" | \"danger\";\n\ntype DetailPanelSectionBaseProps = {\n title: JSX.Element;\n icon?: string;\n tone?: DetailPanelTone;\n description?: JSX.Element;\n meta?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionBaseProps = {\n title: JSX.Element;\n description?: JSX.Element;\n leading?: JSX.Element;\n trailing?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionMenuProps =\n | {\n menuItems?: never;\n menuLabel?: never;\n }\n | {\n menuItems: readonly DropdownItem[];\n menuLabel: string;\n };\n\nexport type DetailPanelActionLinkProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonLinkProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href: string;\n };\n\nexport type DetailPanelActionButtonProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href?: never;\n };\n\nexport type DetailPanelActionProps = DetailPanelActionLinkProps | DetailPanelActionButtonProps;\n\nexport type DetailPanelSectionProps = DetailPanelSectionBaseProps &\n (\n | {\n children?: JSX.Element;\n actions?: JSX.Element;\n collapsible?: false;\n defaultOpen?: never;\n }\n | {\n children: JSX.Element;\n actions?: never;\n collapsible: true;\n defaultOpen?: boolean;\n }\n );\n\ntype DetailPanelComponent = ((props: DetailPanelProps) => JSX.Element) & {\n Header: (props: DetailPanelHeaderProps) => JSX.Element;\n Body: (props: DetailPanelBodyProps) => JSX.Element;\n Summary: (props: DetailPanelSummaryProps) => JSX.Element;\n Group: (props: DetailPanelGroupProps) => JSX.Element;\n Section: (props: DetailPanelSectionProps) => JSX.Element;\n Action: (props: DetailPanelActionProps) => JSX.Element;\n};\n\nconst classNames = (base: string, extra?: string): string => (extra ? `${base} ${extra}` : base);\n\nconst DetailPanelHeader = (props: DetailPanelHeaderProps): JSX.Element => (\n <header class={classNames(\"k2b-detail-panel__header\", props.class)}>\n <div class=\"k2b-detail-panel__header-main\">\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__header-icon\" aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n <Show when={props.leading}>\n <div class=\"k2b-detail-panel__header-leading\">{props.leading}</div>\n </Show>\n <div class=\"k2b-detail-panel__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle || props.meta}>\n <div class=\"k2b-detail-panel__supporting\">\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__meta\">{props.meta}</div>\n </Show>\n </div>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__actions\">{props.actions}</div>\n </Show>\n </div>\n <Show when={props.primaryActions}>\n <div class=\"k2b-detail-panel__primary-actions\">{props.primaryActions}</div>\n </Show>\n </header>\n);\n\nconst DetailPanelBody = (props: DetailPanelBodyProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__body\", props.class)} data-scroll-preserve={props.scrollPreserveKey}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSummary = (props: DetailPanelSummaryProps): JSX.Element => {\n const headingId = `k2b-detail-panel-summary-${createUniqueId()}`;\n\n return (\n <section class={classNames(\"k2b-detail-panel__summary\", props.class)} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__summary-header\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__summary-actions\">{props.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-detail-panel__summary-body\">{props.children}</div>\n </section>\n );\n};\n\nconst DetailPanelGroup = (props: DetailPanelGroupProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__group\", props.class)} role=\"group\" aria-label={props.label}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSectionIcon = (props: Pick<DetailPanelSectionBaseProps, \"icon\" | \"tone\">): JSX.Element => (\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__section-icon\" data-tone={props.tone ?? \"neutral\"} aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n);\n\nconst DetailPanelActionContent = (props: DetailPanelActionBaseProps): JSX.Element => (\n <>\n <Show when={props.leading}>\n <span class=\"k2b-detail-panel__action-leading\">{props.leading}</span>\n </Show>\n <span class=\"k2b-detail-panel__action-copy\">\n <span class=\"k2b-detail-panel__action-title\">{props.title}</span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__action-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.trailing}>\n <span class=\"k2b-detail-panel__action-trailing\">{props.trailing}</span>\n </Show>\n </>\n);\n\nconst DetailPanelAction = (props: DetailPanelActionProps): JSX.Element => {\n const [local, rest] = splitProps(props, [\"class\", \"description\", \"href\", \"leading\", \"menuItems\", \"menuLabel\", \"title\", \"trailing\"]);\n const className = classNames(\"k2b-detail-panel__action\", local.class);\n const content = () => (\n <DetailPanelActionContent title={local.title} description={local.description} leading={local.leading} trailing={local.trailing} />\n );\n\n const action = () => (\n <Show\n when={local.href !== undefined}\n fallback={\n <Button\n {...(rest as Omit<DetailPanelActionButtonProps, keyof DetailPanelActionBaseProps>)}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </Button>\n }\n >\n <ButtonLink\n {...(rest as Omit<DetailPanelActionLinkProps, keyof DetailPanelActionBaseProps | \"href\">)}\n href={local.href as string}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </ButtonLink>\n </Show>\n );\n\n return (\n <Show when={local.menuItems?.length} fallback={action()}>\n <div class=\"k2b-detail-panel__action-row\">\n {action()}\n <Dropdown.Root items={local.menuItems ?? []} align=\"end\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu\">\n <Dropdown.Trigger iconOnly size=\"sm\" variant=\"ghost\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu-trigger\">\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </div>\n </Show>\n );\n};\n\nconst DetailPanelSection = (props: DetailPanelSectionProps): JSX.Element => {\n const headingId = `k2b-detail-panel-section-${createUniqueId()}`;\n const className = () => classNames(\"k2b-detail-panel__section\", props.class);\n\n return (\n <Show\n when={props.collapsible}\n fallback={\n <section class={className()} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__section-actions\">{props.actions}</div>\n </Show>\n </header>\n <Show when={props.children !== undefined}>\n <div class=\"k2b-detail-panel__section-body\">{props.children}</div>\n </Show>\n </section>\n }\n >\n <details class={className()} open={props.defaultOpen}>\n <summary class=\"k2b-detail-panel__section-summary\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <span class=\"k2b-detail-panel__section-copy\">\n <span id={headingId} class=\"k2b-detail-panel__section-title\">\n {props.title}\n </span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__section-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.meta}>\n <span class=\"k2b-detail-panel__section-meta\">{props.meta}</span>\n </Show>\n <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />\n </summary>\n <div class=\"k2b-detail-panel__section-body\">{props.children}</div>\n </details>\n </Show>\n );\n};\n\nconst DetailPanel = ((props: DetailPanelProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel\", props.class)}>{props.children}</div>\n)) as DetailPanelComponent;\n\nDetailPanel.Header = DetailPanelHeader;\nDetailPanel.Body = DetailPanelBody;\nDetailPanel.Summary = DetailPanelSummary;\nDetailPanel.Group = DetailPanelGroup;\nDetailPanel.Section = DetailPanelSection;\nDetailPanel.Action = DetailPanelAction;\n\nexport default DetailPanel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { ssrElement as _$ssrElement } from "solid-js/web";
|
|
2
|
+
import { mergeProps as _$mergeProps } from "solid-js/web";
|
|
3
|
+
import { ssr as _$ssr } from "solid-js/web";
|
|
4
|
+
import { ssrAttribute as _$ssrAttribute } from "solid-js/web";
|
|
5
|
+
import { escape as _$escape } from "solid-js/web";
|
|
6
|
+
import { createComponent as _$createComponent } from "solid-js/web";
|
|
7
|
+
var _tmpl$ = ["<h2", ">", "</h2>"],
|
|
8
|
+
_tmpl$2 = ["<span class=\"k2b-discussion__count\">", "</span>"],
|
|
9
|
+
_tmpl$3 = ["<div class=\"k2b-discussion__actions\">", "</div>"],
|
|
10
|
+
_tmpl$4 = ["<header class=\"k2b-discussion__header\">", "", "", "", "</header>"],
|
|
11
|
+
_tmpl$5 = ["<div class=\"k2b-discussion__body\">", "</div>"],
|
|
12
|
+
_tmpl$6 = ["<span class=\"k2b-discussion__icon\" aria-hidden=\"true\"><i", "></i></span>"],
|
|
13
|
+
_tmpl$7 = ["<h3", ">", "</h3>"],
|
|
14
|
+
_tmpl$8 = "<i class=\"ti ti-send\" aria-hidden=\"true\"></i>",
|
|
15
|
+
_tmpl$9 = ["<div class=\"k2b-discussion__composer-field\" data-has-inset-action=\"true\">", "<div class=\"k2b-discussion__composer-inset-action\">", "</div></div>"],
|
|
16
|
+
_tmpl$0 = ["<p class=\"k2b-discussion__status\" role=\"alert\">", "</p>"],
|
|
17
|
+
_tmpl$1 = ["<footer>", "</footer>"],
|
|
18
|
+
_tmpl$10 = ["<p class=\"k2b-discussion__status\" role=\"status\"><i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\"></i> ", "</p>"],
|
|
19
|
+
_tmpl$11 = ["<button type=\"button\" class=\"k2b-discussion__load-more\"", "><i class=\"", "\" aria-hidden=\"true\"></i>", "</button>"],
|
|
20
|
+
_tmpl$12 = ["<div", "><div class=\"k2b-discussion__sentinel\" aria-hidden=\"true\"></div>", "", "", "", "<ol class=\"k2b-discussion__list\">", "</ol></div>"],
|
|
21
|
+
_tmpl$13 = ["<button type=\"button\">", "</button>"],
|
|
22
|
+
_tmpl$14 = ["<div class=\"k2b-discussion__status\" role=\"alert\"><span>", "</span>", "</div>"],
|
|
23
|
+
_tmpl$15 = ["<div class=\"k2b-discussion__status\" role=\"alert\"><span>", "</span><button type=\"button\">", "</button></div>"],
|
|
24
|
+
_tmpl$16 = ["<div class=\"k2b-discussion__avatar\">", "</div>"],
|
|
25
|
+
_tmpl$17 = ["<span class=\"k2b-discussion__timestamp\">", "</span>"],
|
|
26
|
+
_tmpl$18 = ["<span class=\"k2b-discussion__meta\">", "</span>"],
|
|
27
|
+
_tmpl$19 = ["<div class=\"k2b-discussion__item-actions\"", ">", "</div>"],
|
|
28
|
+
_tmpl$20 = ["<div class=\"k2b-discussion__reply-context\">", "</div>"],
|
|
29
|
+
_tmpl$21 = ["<div class=\"k2b-discussion__entry\"><header><strong>", "</strong>", "", "", "</header>", "<div class=\"k2b-discussion__content\">", "</div></div>"];
|
|
30
|
+
import { createEffect, createSignal, createUniqueId, onCleanup, onMount, Show, splitProps } from "solid-js";
|
|
31
|
+
import { Button, IconButton } from "../actions/Button";
|
|
32
|
+
import { MarkdownEditor } from "../inputs/markdown/MarkdownEditor";
|
|
33
|
+
import { useUiMessages } from "../intl/messages";
|
|
34
|
+
const classNames = (base, extra) => extra ? `${base} ${extra}` : base;
|
|
35
|
+
const DiscussionRoot = props => {
|
|
36
|
+
const headingId = `k2b-discussion-${createUniqueId()}`;
|
|
37
|
+
const [local, sectionProps] = splitProps(props, ["label", "children", "icon", "count", "actions", "as", "surface", "class"]);
|
|
38
|
+
return _$ssrElement("section", _$mergeProps(sectionProps, {
|
|
39
|
+
get ["class"]() {
|
|
40
|
+
return classNames("k2b-discussion", local.class);
|
|
41
|
+
},
|
|
42
|
+
get ["data-surface"]() {
|
|
43
|
+
return local.surface ?? "default";
|
|
44
|
+
},
|
|
45
|
+
"aria-labelledby": headingId
|
|
46
|
+
}), [_$ssr(_tmpl$4, _$escape(_$createComponent(Show, {
|
|
47
|
+
get when() {
|
|
48
|
+
return local.icon !== false && local.icon;
|
|
49
|
+
},
|
|
50
|
+
children: icon => _$ssr(_tmpl$6, _$ssrAttribute("class", _$escape(icon(), true), false))
|
|
51
|
+
})), _$escape(_$createComponent(Show, {
|
|
52
|
+
get when() {
|
|
53
|
+
return local.as === "h2";
|
|
54
|
+
},
|
|
55
|
+
get fallback() {
|
|
56
|
+
return _$ssr(_tmpl$7, _$ssrAttribute("id", _$escape(headingId, true), false), _$escape(local.label));
|
|
57
|
+
},
|
|
58
|
+
get children() {
|
|
59
|
+
return _$ssr(_tmpl$, _$ssrAttribute("id", _$escape(headingId, true), false), _$escape(local.label));
|
|
60
|
+
}
|
|
61
|
+
})), _$escape(_$createComponent(Show, {
|
|
62
|
+
get when() {
|
|
63
|
+
return local.count !== undefined;
|
|
64
|
+
},
|
|
65
|
+
get children() {
|
|
66
|
+
return _$ssr(_tmpl$2, _$escape(local.count));
|
|
67
|
+
}
|
|
68
|
+
})), _$escape(_$createComponent(Show, {
|
|
69
|
+
get when() {
|
|
70
|
+
return local.actions !== undefined;
|
|
71
|
+
},
|
|
72
|
+
get children() {
|
|
73
|
+
return _$ssr(_tmpl$3, _$escape(local.actions));
|
|
74
|
+
}
|
|
75
|
+
}))), _$ssr(_tmpl$5, _$escape(local.children))], false);
|
|
76
|
+
};
|
|
77
|
+
const DiscussionComposer = props => {
|
|
78
|
+
const messages = useUiMessages();
|
|
79
|
+
const [local, formProps] = splitProps(props, ["label", "onSubmit", "initialValue", "placeholder", "submitLabel", "cancelLabel", "onCancel", "lines", "class"]);
|
|
80
|
+
const [message, setMessage] = createSignal(local.initialValue ?? "");
|
|
81
|
+
const [submitting, setSubmitting] = createSignal(false);
|
|
82
|
+
const [submitError, setSubmitError] = createSignal(null);
|
|
83
|
+
const submit = async () => {
|
|
84
|
+
const normalized = message().trim();
|
|
85
|
+
if (!normalized || submitting()) return;
|
|
86
|
+
setSubmitting(true);
|
|
87
|
+
setSubmitError(null);
|
|
88
|
+
try {
|
|
89
|
+
const accepted = await local.onSubmit(normalized);
|
|
90
|
+
if (accepted !== false) setMessage("");
|
|
91
|
+
} catch (error) {
|
|
92
|
+
setSubmitError(error instanceof Error ? error.message : messages().couldNotPostMessage);
|
|
93
|
+
} finally {
|
|
94
|
+
setSubmitting(false);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
return _$ssrElement("form", _$mergeProps(formProps, {
|
|
98
|
+
get ["class"]() {
|
|
99
|
+
return classNames("k2b-discussion__composer", local.class);
|
|
100
|
+
}
|
|
101
|
+
}), [_$ssr(_tmpl$9, _$escape(_$createComponent(MarkdownEditor, {
|
|
102
|
+
get ["aria-label"]() {
|
|
103
|
+
return local.label;
|
|
104
|
+
},
|
|
105
|
+
value: message,
|
|
106
|
+
onValueChange: value => {
|
|
107
|
+
setMessage(value);
|
|
108
|
+
if (value.trim()) setSubmitError(null);
|
|
109
|
+
},
|
|
110
|
+
get placeholder() {
|
|
111
|
+
return local.placeholder;
|
|
112
|
+
},
|
|
113
|
+
get lines() {
|
|
114
|
+
return local.lines ?? 4;
|
|
115
|
+
},
|
|
116
|
+
noToolbar: true,
|
|
117
|
+
showStats: false,
|
|
118
|
+
get disabled() {
|
|
119
|
+
return submitting();
|
|
120
|
+
},
|
|
121
|
+
get error() {
|
|
122
|
+
return submitError() !== null;
|
|
123
|
+
},
|
|
124
|
+
onSubmit: () => void submit()
|
|
125
|
+
})), _$escape(_$createComponent(IconButton, {
|
|
126
|
+
type: "submit",
|
|
127
|
+
get label() {
|
|
128
|
+
return local.submitLabel ?? messages().postMessage;
|
|
129
|
+
},
|
|
130
|
+
size: "sm",
|
|
131
|
+
variant: "primary",
|
|
132
|
+
get loading() {
|
|
133
|
+
return submitting();
|
|
134
|
+
},
|
|
135
|
+
get disabled() {
|
|
136
|
+
return submitting() || !message().trim();
|
|
137
|
+
},
|
|
138
|
+
get children() {
|
|
139
|
+
return _$ssr(_tmpl$8);
|
|
140
|
+
}
|
|
141
|
+
}))), _$escape(_$createComponent(Show, {
|
|
142
|
+
get when() {
|
|
143
|
+
return submitError();
|
|
144
|
+
},
|
|
145
|
+
children: error => _$ssr(_tmpl$0, _$escape(error()))
|
|
146
|
+
})), _$escape(_$createComponent(Show, {
|
|
147
|
+
get when() {
|
|
148
|
+
return local.onCancel;
|
|
149
|
+
},
|
|
150
|
+
children: onCancel => _$ssr(_tmpl$1, _$escape(_$createComponent(Button, {
|
|
151
|
+
type: "button",
|
|
152
|
+
variant: "ghost",
|
|
153
|
+
size: "xs",
|
|
154
|
+
get disabled() {
|
|
155
|
+
return submitting();
|
|
156
|
+
},
|
|
157
|
+
get onClick() {
|
|
158
|
+
return onCancel();
|
|
159
|
+
},
|
|
160
|
+
get children() {
|
|
161
|
+
return local.cancelLabel ?? messages().cancel;
|
|
162
|
+
}
|
|
163
|
+
})))
|
|
164
|
+
}))], false);
|
|
165
|
+
};
|
|
166
|
+
const scrollOwner = element => {
|
|
167
|
+
let parent = element.parentElement;
|
|
168
|
+
while (parent) {
|
|
169
|
+
const style = getComputedStyle(parent);
|
|
170
|
+
if (style.overflowY === "auto" || style.overflowY === "scroll" || style.overflow === "auto" || style.overflow === "scroll") return parent;
|
|
171
|
+
parent = parent.parentElement;
|
|
172
|
+
}
|
|
173
|
+
return document.scrollingElement instanceof HTMLElement ? document.scrollingElement : null;
|
|
174
|
+
};
|
|
175
|
+
const DiscussionList = props => {
|
|
176
|
+
const messages = useUiMessages();
|
|
177
|
+
const [loadingMoreInternally, setLoadingMoreInternally] = createSignal(false);
|
|
178
|
+
const [loadMoreError, setLoadMoreError] = createSignal(null);
|
|
179
|
+
const [sentinelVisible, setSentinelVisible] = createSignal(false);
|
|
180
|
+
const [automaticLoadAttempted, setAutomaticLoadAttempted] = createSignal(false);
|
|
181
|
+
let listRef;
|
|
182
|
+
let sentinelRef;
|
|
183
|
+
let observer;
|
|
184
|
+
let adjustmentFrame;
|
|
185
|
+
let active = true;
|
|
186
|
+
const loadingMore = () => Boolean(props.loadingMore || loadingMoreInternally());
|
|
187
|
+
const canLoadMore = () => Boolean(!props.loading && !props.error && !loadMoreError() && props.hasMore && props.onLoadMore && !loadingMore());
|
|
188
|
+
const loadMore = async (retry = false) => {
|
|
189
|
+
if (props.loading || props.error || !retry && loadMoreError() || !props.onLoadMore || !props.hasMore || loadingMore()) return false;
|
|
190
|
+
const owner = listRef ? scrollOwner(listRef) : null;
|
|
191
|
+
const previousScrollHeight = owner?.scrollHeight ?? 0;
|
|
192
|
+
setLoadMoreError(null);
|
|
193
|
+
setLoadingMoreInternally(true);
|
|
194
|
+
let loaded = false;
|
|
195
|
+
try {
|
|
196
|
+
loaded = (await props.onLoadMore()) !== false;
|
|
197
|
+
} catch (error) {
|
|
198
|
+
if (active) setLoadMoreError(error instanceof Error ? error.message : messages().couldNotLoadEarlierMessages);
|
|
199
|
+
} finally {
|
|
200
|
+
if (active) setLoadingMoreInternally(false);
|
|
201
|
+
}
|
|
202
|
+
if (!active || !loaded || !owner) return false;
|
|
203
|
+
queueMicrotask(() => {
|
|
204
|
+
if (!active) return;
|
|
205
|
+
adjustmentFrame = requestAnimationFrame(() => {
|
|
206
|
+
if (!active) return;
|
|
207
|
+
owner.scrollTop += owner.scrollHeight - previousScrollHeight;
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
return true;
|
|
211
|
+
};
|
|
212
|
+
createEffect(() => {
|
|
213
|
+
if (!sentinelVisible()) {
|
|
214
|
+
setAutomaticLoadAttempted(false);
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
if (automaticLoadAttempted() || !canLoadMore()) return;
|
|
218
|
+
setAutomaticLoadAttempted(true);
|
|
219
|
+
void loadMore();
|
|
220
|
+
});
|
|
221
|
+
onMount(() => {
|
|
222
|
+
if (typeof IntersectionObserver === "undefined" || !sentinelRef) return;
|
|
223
|
+
observer = new IntersectionObserver(entries => {
|
|
224
|
+
setSentinelVisible(entries.some(entry => entry.isIntersecting));
|
|
225
|
+
}, {
|
|
226
|
+
rootMargin: "160px 0px 0px"
|
|
227
|
+
});
|
|
228
|
+
observer.observe(sentinelRef);
|
|
229
|
+
});
|
|
230
|
+
onCleanup(() => {
|
|
231
|
+
active = false;
|
|
232
|
+
observer?.disconnect();
|
|
233
|
+
if (adjustmentFrame !== undefined) cancelAnimationFrame(adjustmentFrame);
|
|
234
|
+
});
|
|
235
|
+
return _$ssr(_tmpl$12, _$ssrAttribute("class", _$escape(classNames("k2b-discussion__list-region", props.class), true), false) + _$ssrAttribute("aria-busy", props.loading || loadingMore() ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
236
|
+
get when() {
|
|
237
|
+
return props.loading;
|
|
238
|
+
},
|
|
239
|
+
get children() {
|
|
240
|
+
return _$ssr(_tmpl$10, _$escape(props.loadingLabel ?? messages().loadingMessages));
|
|
241
|
+
}
|
|
242
|
+
})), _$escape(_$createComponent(Show, {
|
|
243
|
+
get when() {
|
|
244
|
+
return props.error;
|
|
245
|
+
},
|
|
246
|
+
children: error => _$ssr(_tmpl$14, _$escape(error()), _$escape(_$createComponent(Show, {
|
|
247
|
+
get when() {
|
|
248
|
+
return props.onRetry;
|
|
249
|
+
},
|
|
250
|
+
get children() {
|
|
251
|
+
return _$ssr(_tmpl$13, _$escape(messages().retry));
|
|
252
|
+
}
|
|
253
|
+
})))
|
|
254
|
+
})), _$escape(_$createComponent(Show, {
|
|
255
|
+
get when() {
|
|
256
|
+
return loadMoreError();
|
|
257
|
+
},
|
|
258
|
+
children: error => _$ssr(_tmpl$15, _$escape(error()), _$escape(messages().retry))
|
|
259
|
+
})), _$escape(_$createComponent(Show, {
|
|
260
|
+
get when() {
|
|
261
|
+
return !props.loading && !props.error && !loadMoreError() && (canLoadMore() || loadingMore());
|
|
262
|
+
},
|
|
263
|
+
get children() {
|
|
264
|
+
return _$ssr(_tmpl$11, _$ssrAttribute("disabled", loadingMore(), true), `ti ${loadingMore() ? "ti-loader-2 k2b-spin" : "ti-history"}`, loadingMore() ? _$escape(props.loadingLabel ?? messages().loadingMessages) : _$escape(props.loadMoreLabel ?? messages().loadEarlier));
|
|
265
|
+
}
|
|
266
|
+
})), _$escape(props.children));
|
|
267
|
+
};
|
|
268
|
+
const DiscussionItem = props => {
|
|
269
|
+
const [local, itemProps] = splitProps(props, ["author", "children", "avatar", "timestamp", "meta", "replyContext", "actions", "actionVisibility", "class"]);
|
|
270
|
+
return _$ssrElement("li", _$mergeProps(itemProps, {
|
|
271
|
+
get ["class"]() {
|
|
272
|
+
return classNames("k2b-discussion__item", local.class);
|
|
273
|
+
},
|
|
274
|
+
get ["data-has-avatar"]() {
|
|
275
|
+
return local.avatar !== undefined ? "true" : undefined;
|
|
276
|
+
}
|
|
277
|
+
}), [_$escape(_$createComponent(Show, {
|
|
278
|
+
get when() {
|
|
279
|
+
return local.avatar !== undefined;
|
|
280
|
+
},
|
|
281
|
+
get children() {
|
|
282
|
+
return _$ssr(_tmpl$16, _$escape(local.avatar));
|
|
283
|
+
}
|
|
284
|
+
})), _$ssr(_tmpl$21, _$escape(local.author), _$escape(_$createComponent(Show, {
|
|
285
|
+
get when() {
|
|
286
|
+
return local.timestamp !== undefined;
|
|
287
|
+
},
|
|
288
|
+
get children() {
|
|
289
|
+
return _$ssr(_tmpl$17, _$escape(local.timestamp));
|
|
290
|
+
}
|
|
291
|
+
})), _$escape(_$createComponent(Show, {
|
|
292
|
+
get when() {
|
|
293
|
+
return local.meta !== undefined;
|
|
294
|
+
},
|
|
295
|
+
get children() {
|
|
296
|
+
return _$ssr(_tmpl$18, _$escape(local.meta));
|
|
297
|
+
}
|
|
298
|
+
})), _$escape(_$createComponent(Show, {
|
|
299
|
+
get when() {
|
|
300
|
+
return local.actions !== undefined;
|
|
301
|
+
},
|
|
302
|
+
get children() {
|
|
303
|
+
return _$ssr(_tmpl$19, _$ssrAttribute("data-visibility", _$escape(local.actionVisibility ?? "progressive", true), false), _$escape(local.actions));
|
|
304
|
+
}
|
|
305
|
+
})), _$escape(_$createComponent(Show, {
|
|
306
|
+
get when() {
|
|
307
|
+
return local.replyContext !== undefined;
|
|
308
|
+
},
|
|
309
|
+
get children() {
|
|
310
|
+
return _$ssr(_tmpl$20, _$escape(local.replyContext));
|
|
311
|
+
}
|
|
312
|
+
})), _$escape(local.children))], false);
|
|
313
|
+
};
|
|
314
|
+
const Discussion = DiscussionRoot;
|
|
315
|
+
Discussion.Composer = DiscussionComposer;
|
|
316
|
+
Discussion.List = DiscussionList;
|
|
317
|
+
Discussion.Item = DiscussionItem;
|
|
318
|
+
export default Discussion;
|
|
319
|
+
//# sourceMappingURL=Discussion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createEffect","createSignal","createUniqueId","onCleanup","onMount","Show","splitProps","Button","IconButton","MarkdownEditor","useUiMessages","classNames","base","extra","DiscussionRoot","props","headingId","local","sectionProps","_$ssrElement","_$mergeProps","class","data-surface","surface","_$ssr","_tmpl$4","_$escape","_$createComponent","when","icon","children","_tmpl$6","_$ssrAttribute","as","fallback","_tmpl$7","label","_tmpl$","count","undefined","_tmpl$2","actions","_tmpl$3","_tmpl$5","DiscussionComposer","messages","formProps","message","setMessage","initialValue","submitting","setSubmitting","submitError","setSubmitError","submit","normalized","trim","accepted","onSubmit","error","Error","couldNotPostMessage","_tmpl$9","aria-label","value","onValueChange","placeholder","lines","noToolbar","showStats","disabled","type","submitLabel","postMessage","size","variant","loading","_tmpl$8","_tmpl$0","onCancel","_tmpl$1","onClick","cancelLabel","cancel","scrollOwner","element","parent","parentElement","style","getComputedStyle","overflowY","overflow","document","scrollingElement","HTMLElement","DiscussionList","loadingMoreInternally","setLoadingMoreInternally","loadMoreError","setLoadMoreError","sentinelVisible","setSentinelVisible","automaticLoadAttempted","setAutomaticLoadAttempted","listRef","sentinelRef","observer","adjustmentFrame","active","loadingMore","Boolean","canLoadMore","hasMore","onLoadMore","loadMore","retry","owner","previousScrollHeight","scrollHeight","loaded","couldNotLoadEarlierMessages","queueMicrotask","requestAnimationFrame","scrollTop","IntersectionObserver","entries","some","entry","isIntersecting","rootMargin","observe","disconnect","cancelAnimationFrame","_tmpl$12","_tmpl$10","loadingLabel","loadingMessages","_tmpl$14","onRetry","_tmpl$13","_tmpl$15","_tmpl$11","loadMoreLabel","loadEarlier","DiscussionItem","itemProps","data-has-avatar","avatar","_tmpl$16","_tmpl$21","author","timestamp","_tmpl$17","meta","_tmpl$18","_tmpl$19","actionVisibility","replyContext","_tmpl$20","Discussion","Composer","List","Item"],"sources":["layout/Discussion.tsx"],"sourcesContent":["import { createEffect, createSignal, createUniqueId, type JSX, onCleanup, onMount, Show, splitProps } from \"solid-js\";\nimport { Button, IconButton } from \"../actions/Button\";\nimport { MarkdownEditor } from \"../inputs/markdown/MarkdownEditor\";\nimport { useUiMessages } from \"../intl/messages\";\n\nexport type DiscussionProps = Omit<JSX.HTMLAttributes<HTMLElement>, \"children\" | \"class\"> & {\n label: JSX.Element;\n children: JSX.Element;\n icon?: string | false;\n count?: number;\n actions?: JSX.Element;\n as?: \"h2\" | \"h3\";\n surface?: \"default\" | \"bare\";\n class?: string;\n};\n\nexport type DiscussionComposerProps = Omit<JSX.FormHTMLAttributes<HTMLFormElement>, \"children\" | \"class\" | \"onSubmit\"> & {\n label: string;\n onSubmit: (message: string) => boolean | void | Promise<boolean | void>;\n initialValue?: string;\n placeholder?: string;\n submitLabel?: string;\n cancelLabel?: string;\n onCancel?: () => void;\n lines?: number;\n class?: string;\n};\n\nexport type DiscussionListProps = {\n children?: JSX.Element;\n loading?: boolean;\n loadingLabel?: string;\n error?: string | null;\n onRetry?: () => void | Promise<void>;\n hasMore?: boolean;\n loadingMore?: boolean;\n loadMoreLabel?: string;\n onLoadMore?: () => boolean | void | Promise<boolean | void>;\n class?: string;\n};\n\nexport type DiscussionItemProps = Omit<JSX.LiHTMLAttributes<HTMLLIElement>, \"children\" | \"class\"> & {\n author: JSX.Element;\n children: JSX.Element;\n avatar?: JSX.Element;\n timestamp?: JSX.Element;\n meta?: JSX.Element;\n replyContext?: JSX.Element;\n actions?: JSX.Element;\n actionVisibility?: \"always\" | \"progressive\";\n class?: string;\n};\n\ntype DiscussionComponent = ((props: DiscussionProps) => JSX.Element) & {\n Composer: (props: DiscussionComposerProps) => JSX.Element;\n List: (props: DiscussionListProps) => JSX.Element;\n Item: (props: DiscussionItemProps) => JSX.Element;\n};\n\nconst classNames = (base: string, extra?: string): string => (extra ? `${base} ${extra}` : base);\n\nconst DiscussionRoot = (props: DiscussionProps): JSX.Element => {\n const headingId = `k2b-discussion-${createUniqueId()}`;\n const [local, sectionProps] = splitProps(props, [\"label\", \"children\", \"icon\", \"count\", \"actions\", \"as\", \"surface\", \"class\"]);\n\n return (\n <section\n {...sectionProps}\n class={classNames(\"k2b-discussion\", local.class)}\n data-surface={local.surface ?? \"default\"}\n aria-labelledby={headingId}\n >\n <header class=\"k2b-discussion__header\">\n <Show when={local.icon !== false && local.icon}>\n {(icon) => (\n <span class=\"k2b-discussion__icon\" aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n <Show when={local.as === \"h2\"} fallback={<h3 id={headingId}>{local.label}</h3>}>\n <h2 id={headingId}>{local.label}</h2>\n </Show>\n <Show when={local.count !== undefined}>\n <span class=\"k2b-discussion__count\">{local.count}</span>\n </Show>\n <Show when={local.actions !== undefined}>\n <div class=\"k2b-discussion__actions\">{local.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-discussion__body\">{local.children}</div>\n </section>\n );\n};\n\nconst DiscussionComposer = (props: DiscussionComposerProps): JSX.Element => {\n const messages = useUiMessages();\n const [local, formProps] = splitProps(props, [\n \"label\",\n \"onSubmit\",\n \"initialValue\",\n \"placeholder\",\n \"submitLabel\",\n \"cancelLabel\",\n \"onCancel\",\n \"lines\",\n \"class\",\n ]);\n const [message, setMessage] = createSignal(local.initialValue ?? \"\");\n const [submitting, setSubmitting] = createSignal(false);\n const [submitError, setSubmitError] = createSignal<string | null>(null);\n\n const submit = async () => {\n const normalized = message().trim();\n if (!normalized || submitting()) return;\n setSubmitting(true);\n setSubmitError(null);\n try {\n const accepted = await local.onSubmit(normalized);\n if (accepted !== false) setMessage(\"\");\n } catch (error) {\n setSubmitError(error instanceof Error ? error.message : messages().couldNotPostMessage);\n } finally {\n setSubmitting(false);\n }\n };\n\n return (\n <form\n {...formProps}\n class={classNames(\"k2b-discussion__composer\", local.class)}\n onSubmit={(event) => {\n event.preventDefault();\n void submit();\n }}\n >\n <div class=\"k2b-discussion__composer-field\" data-has-inset-action=\"true\">\n <MarkdownEditor\n aria-label={local.label}\n value={message}\n onValueChange={(value) => {\n setMessage(value);\n if (value.trim()) setSubmitError(null);\n }}\n placeholder={local.placeholder}\n lines={local.lines ?? 4}\n noToolbar\n showStats={false}\n disabled={submitting()}\n error={submitError() !== null}\n onSubmit={() => void submit()}\n />\n <div class=\"k2b-discussion__composer-inset-action\">\n <IconButton\n type=\"submit\"\n label={local.submitLabel ?? messages().postMessage}\n size=\"sm\"\n variant=\"primary\"\n loading={submitting()}\n disabled={submitting() || !message().trim()}\n >\n <i class=\"ti ti-send\" aria-hidden=\"true\" />\n </IconButton>\n </div>\n </div>\n <Show when={submitError()}>\n {(error) => (\n <p class=\"k2b-discussion__status\" role=\"alert\">\n {error()}\n </p>\n )}\n </Show>\n <Show when={local.onCancel}>\n {(onCancel) => (\n <footer>\n <Button type=\"button\" variant=\"ghost\" size=\"xs\" disabled={submitting()} onClick={onCancel()}>\n {local.cancelLabel ?? messages().cancel}\n </Button>\n </footer>\n )}\n </Show>\n </form>\n );\n};\n\nconst scrollOwner = (element: HTMLElement): HTMLElement | null => {\n let parent = element.parentElement;\n while (parent) {\n const style = getComputedStyle(parent);\n if (style.overflowY === \"auto\" || style.overflowY === \"scroll\" || style.overflow === \"auto\" || style.overflow === \"scroll\")\n return parent;\n parent = parent.parentElement;\n }\n return document.scrollingElement instanceof HTMLElement ? document.scrollingElement : null;\n};\n\nconst DiscussionList = (props: DiscussionListProps): JSX.Element => {\n const messages = useUiMessages();\n const [loadingMoreInternally, setLoadingMoreInternally] = createSignal(false);\n const [loadMoreError, setLoadMoreError] = createSignal<string | null>(null);\n const [sentinelVisible, setSentinelVisible] = createSignal(false);\n const [automaticLoadAttempted, setAutomaticLoadAttempted] = createSignal(false);\n let listRef: HTMLOListElement | undefined;\n let sentinelRef: HTMLDivElement | undefined;\n let observer: IntersectionObserver | undefined;\n let adjustmentFrame: number | undefined;\n let active = true;\n\n const loadingMore = () => Boolean(props.loadingMore || loadingMoreInternally());\n const canLoadMore = () =>\n Boolean(!props.loading && !props.error && !loadMoreError() && props.hasMore && props.onLoadMore && !loadingMore());\n\n const loadMore = async (retry = false): Promise<boolean> => {\n if (props.loading || props.error || (!retry && loadMoreError()) || !props.onLoadMore || !props.hasMore || loadingMore()) return false;\n const owner = listRef ? scrollOwner(listRef) : null;\n const previousScrollHeight = owner?.scrollHeight ?? 0;\n setLoadMoreError(null);\n setLoadingMoreInternally(true);\n let loaded = false;\n try {\n loaded = (await props.onLoadMore()) !== false;\n } catch (error) {\n if (active) setLoadMoreError(error instanceof Error ? error.message : messages().couldNotLoadEarlierMessages);\n } finally {\n if (active) setLoadingMoreInternally(false);\n }\n if (!active || !loaded || !owner) return false;\n queueMicrotask(() => {\n if (!active) return;\n adjustmentFrame = requestAnimationFrame(() => {\n if (!active) return;\n owner.scrollTop += owner.scrollHeight - previousScrollHeight;\n });\n });\n return true;\n };\n\n createEffect(() => {\n if (!sentinelVisible()) {\n setAutomaticLoadAttempted(false);\n return;\n }\n if (automaticLoadAttempted() || !canLoadMore()) return;\n setAutomaticLoadAttempted(true);\n void loadMore();\n });\n\n onMount(() => {\n if (typeof IntersectionObserver === \"undefined\" || !sentinelRef) return;\n observer = new IntersectionObserver(\n (entries) => {\n setSentinelVisible(entries.some((entry) => entry.isIntersecting));\n },\n { rootMargin: \"160px 0px 0px\" },\n );\n observer.observe(sentinelRef);\n });\n\n onCleanup(() => {\n active = false;\n observer?.disconnect();\n if (adjustmentFrame !== undefined) cancelAnimationFrame(adjustmentFrame);\n });\n\n return (\n <div class={classNames(\"k2b-discussion__list-region\", props.class)} aria-busy={props.loading || loadingMore() ? \"true\" : undefined}>\n <div ref={sentinelRef} class=\"k2b-discussion__sentinel\" aria-hidden=\"true\" />\n <Show when={props.loading}>\n <p class=\"k2b-discussion__status\" role=\"status\">\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" /> {props.loadingLabel ?? messages().loadingMessages}\n </p>\n </Show>\n <Show when={props.error}>\n {(error) => (\n <div class=\"k2b-discussion__status\" role=\"alert\">\n <span>{error()}</span>\n <Show when={props.onRetry}>\n <button type=\"button\" onClick={props.onRetry}>\n {messages().retry}\n </button>\n </Show>\n </div>\n )}\n </Show>\n <Show when={loadMoreError()}>\n {(error) => (\n <div class=\"k2b-discussion__status\" role=\"alert\">\n <span>{error()}</span>\n <button type=\"button\" onClick={() => void loadMore(true)}>\n {messages().retry}\n </button>\n </div>\n )}\n </Show>\n <Show when={!props.loading && !props.error && !loadMoreError() && (canLoadMore() || loadingMore())}>\n <button type=\"button\" class=\"k2b-discussion__load-more\" disabled={loadingMore()} onClick={() => void loadMore()}>\n <i class={`ti ${loadingMore() ? \"ti-loader-2 k2b-spin\" : \"ti-history\"}`} aria-hidden=\"true\" />\n {loadingMore() ? (props.loadingLabel ?? messages().loadingMessages) : (props.loadMoreLabel ?? messages().loadEarlier)}\n </button>\n </Show>\n <ol ref={listRef} class=\"k2b-discussion__list\">\n {props.children}\n </ol>\n </div>\n );\n};\n\nconst DiscussionItem = (props: DiscussionItemProps): JSX.Element => {\n const [local, itemProps] = splitProps(props, [\n \"author\",\n \"children\",\n \"avatar\",\n \"timestamp\",\n \"meta\",\n \"replyContext\",\n \"actions\",\n \"actionVisibility\",\n \"class\",\n ]);\n return (\n <li\n {...itemProps}\n class={classNames(\"k2b-discussion__item\", local.class)}\n data-has-avatar={local.avatar !== undefined ? \"true\" : undefined}\n >\n <Show when={local.avatar !== undefined}>\n <div class=\"k2b-discussion__avatar\">{local.avatar}</div>\n </Show>\n <div class=\"k2b-discussion__entry\">\n <header>\n <strong>{local.author}</strong>\n <Show when={local.timestamp !== undefined}>\n <span class=\"k2b-discussion__timestamp\">{local.timestamp}</span>\n </Show>\n <Show when={local.meta !== undefined}>\n <span class=\"k2b-discussion__meta\">{local.meta}</span>\n </Show>\n <Show when={local.actions !== undefined}>\n <div class=\"k2b-discussion__item-actions\" data-visibility={local.actionVisibility ?? \"progressive\"}>\n {local.actions}\n </div>\n </Show>\n </header>\n <Show when={local.replyContext !== undefined}>\n <div class=\"k2b-discussion__reply-context\">{local.replyContext}</div>\n </Show>\n <div class=\"k2b-discussion__content\">{local.children}</div>\n </div>\n </li>\n );\n};\n\nconst Discussion = DiscussionRoot as DiscussionComponent;\nDiscussion.Composer = DiscussionComposer;\nDiscussion.List = DiscussionList;\nDiscussion.Item = DiscussionItem;\n\nexport default Discussion;\n"],"mappings":"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","ignoreList":[]}
|