@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":["DEFAULT_ICON_GROUPS","value","label","icon","name","description","groups","keywords","DEFAULT_ICON_OPTIONS"],"sources":["inputs/icon-options.ts"],"sourcesContent":["import type { SelectGroup } from \"./Select\";\nimport type { IconOption } from \"./SpecialInputs\";\n\nexport const DEFAULT_ICON_GROUPS = [\n { value: \"recommended\", label: \"Recommended\" },\n { value: \"people\", label: \"People\" },\n { value: \"work\", label: \"Work\" },\n { value: \"communication\", label: \"Communication\" },\n { value: \"files\", label: \"Files\" },\n { value: \"data\", label: \"Data & tech\" },\n { value: \"commerce\", label: \"Commerce\" },\n { value: \"places\", label: \"Places\" },\n { value: \"food\", label: \"Food\" },\n { value: \"media\", label: \"Media\" },\n { value: \"devices\", label: \"Devices\" },\n] as const satisfies readonly SelectGroup[];\n\ntype DefaultIconGroup = (typeof DEFAULT_ICON_GROUPS)[number][\"value\"];\n\nconst icon = (\n name: string,\n label: string,\n description: string,\n groups: readonly DefaultIconGroup[],\n keywords: readonly string[] = [],\n): IconOption => ({\n value: `ti ti-${name}`,\n label,\n description,\n icon: `ti ti-${name}`,\n groups,\n keywords: [name, ...keywords],\n});\n\n/** A curated, application-neutral Tabler catalogue for IconInput. */\nexport const DEFAULT_ICON_OPTIONS: readonly IconOption[] = [\n icon(\"activity\", \"Activity\", \"Live activity or health signals\", [\"recommended\", \"data\"], [\"pulse\", \"monitor\"]),\n icon(\"adjustments\", \"Adjustments\", \"Tune settings or controls\", [\"recommended\", \"work\"], [\"settings\", \"controls\"]),\n icon(\"alert-circle\", \"Alert\", \"Important warning or problem\", [\"recommended\", \"work\"], [\"warning\", \"error\"]),\n icon(\"archive\", \"Archive\", \"Stored or inactive material\", [\"recommended\", \"files\", \"work\"], [\"box\", \"storage\"]),\n icon(\"bell\", \"Bell\", \"Notifications and reminders\", [\"recommended\", \"communication\"], [\"notification\", \"reminder\"]),\n icon(\"book\", \"Book\", \"Reading, knowledge, or a library\", [\"recommended\", \"files\"], [\"docs\", \"read\", \"library\"]),\n icon(\"bookmark\", \"Bookmark\", \"Saved content for later\", [\"recommended\", \"files\"], [\"save\", \"favorite\"]),\n icon(\"box\", \"Box\", \"A product, package, or container\", [\"recommended\", \"commerce\", \"work\"], [\"package\", \"inventory\"]),\n icon(\"briefcase\", \"Briefcase\", \"Business, a job, or a project\", [\"recommended\", \"work\"], [\"business\", \"job\"]),\n icon(\"building\", \"Building\", \"An organization or office\", [\"recommended\", \"work\", \"places\"], [\"company\", \"office\"]),\n icon(\"calendar\", \"Calendar\", \"Dates, plans, and schedules\", [\"recommended\", \"work\"], [\"date\", \"schedule\"]),\n icon(\"camera\", \"Camera\", \"Photography or image capture\", [\"recommended\", \"media\", \"devices\"], [\"photo\", \"image\"]),\n icon(\"chart-bar\", \"Bar chart\", \"Compare values across categories\", [\"recommended\", \"data\", \"work\"], [\"analytics\", \"stats\"]),\n icon(\"chart-line\", \"Line chart\", \"Show a trend over time\", [\"recommended\", \"data\", \"work\"], [\"analytics\", \"trend\"]),\n icon(\"check\", \"Check\", \"A completed or confirmed action\", [\"recommended\", \"work\"], [\"done\", \"success\"]),\n icon(\"circle-check\", \"Check circle\", \"Successful or approved status\", [\"recommended\", \"work\"], [\"done\", \"success\", \"approved\"]),\n icon(\"clock\", \"Clock\", \"Time, duration, or a deadline\", [\"recommended\", \"work\"], [\"time\", \"schedule\"]),\n icon(\"cloud\", \"Cloud\", \"Hosted or synchronized services\", [\"recommended\", \"data\"], [\"hosting\", \"online\", \"sync\"]),\n icon(\"heart\", \"Heart\", \"A favorite, like, or health topic\", [\"recommended\", \"people\"], [\"favorite\", \"health\", \"love\"]),\n icon(\"home\", \"Home\", \"A home page or physical home\", [\"recommended\", \"places\"], [\"start\", \"house\"]),\n icon(\"layout-dashboard\", \"Dashboard\", \"An overview or control center\", [\"recommended\", \"data\", \"work\"], [\"layout\", \"overview\"]),\n icon(\"search\", \"Search\", \"Find content or records\", [\"recommended\", \"work\", \"data\"], [\"find\", \"lookup\"]),\n icon(\"settings\", \"Settings\", \"Configuration and preferences\", [\"recommended\", \"work\"], [\"configure\", \"preferences\"]),\n icon(\"sparkles\", \"Sparkles\", \"AI, magic, or something new\", [\"recommended\", \"data\", \"media\"], [\"ai\", \"magic\", \"new\"]),\n icon(\"star\", \"Star\", \"A favorite, rating, or highlight\", [\"recommended\", \"work\"], [\"favorite\", \"rating\"]),\n icon(\"tag\", \"Tag\", \"A label or category\", [\"recommended\", \"files\", \"work\"], [\"label\", \"category\"]),\n icon(\"cube\", \"Cube\", \"A module, object, or component\", [\"recommended\", \"data\", \"work\"], [\"package\", \"component\"]),\n icon(\"download\", \"Download\", \"Save or export a file\", [\"recommended\", \"files\", \"data\"], [\"save\", \"export\"]),\n icon(\"external-link\", \"External link\", \"Open a different page or website\", [\"recommended\", \"communication\", \"data\"], [\"open\", \"new tab\"]),\n icon(\"eye\", \"Eye\", \"View, preview, or visibility\", [\"recommended\", \"work\", \"media\"], [\"view\", \"preview\"]),\n icon(\"help-circle\", \"Help\", \"Help, support, or a question\", [\"recommended\", \"communication\"], [\"question\", \"support\"]),\n icon(\"info-circle\", \"Info\", \"Additional information or guidance\", [\"recommended\", \"communication\"], [\"information\", \"help\"]),\n icon(\"key\", \"Key\", \"Access, credentials, or security\", [\"recommended\", \"work\", \"data\"], [\"access\", \"security\"]),\n icon(\"link\", \"Link\", \"A URL or connection\", [\"recommended\", \"communication\", \"data\"], [\"url\", \"connection\"]),\n icon(\"list\", \"List\", \"A sequence of items or rows\", [\"recommended\", \"work\", \"files\"], [\"items\", \"rows\"]),\n icon(\"lock\", \"Lock\", \"Private or protected content\", [\"recommended\", \"work\", \"data\"], [\"security\", \"private\"]),\n icon(\"package\", \"Package\", \"A shipped item or software module\", [\"recommended\", \"commerce\", \"data\"], [\"box\", \"module\"]),\n icon(\"plus\", \"Plus\", \"Add or create something\", [\"recommended\", \"work\"], [\"add\", \"create\"]),\n icon(\"shield\", \"Shield\", \"Security or protection\", [\"recommended\", \"work\", \"data\"], [\"security\", \"protection\"]),\n icon(\"trash\", \"Trash\", \"Delete or remove something\", [\"recommended\", \"work\", \"files\"], [\"delete\", \"remove\"]),\n icon(\"upload\", \"Upload\", \"Import or send a file\", [\"recommended\", \"files\", \"data\"], [\"import\", \"file\"]),\n icon(\"x\", \"Close\", \"Close, cancel, or remove\", [\"recommended\", \"work\"], [\"cancel\", \"remove\"]),\n\n icon(\"address-book\", \"Address book\", \"Saved people and contact details\", [\"people\", \"communication\"], [\"contacts\", \"directory\"]),\n icon(\"friends\", \"Friends\", \"Friends or a social circle\", [\"people\", \"communication\"], [\"social\", \"group\"]),\n icon(\"id\", \"ID card\", \"Identity or account details\", [\"people\", \"work\"], [\"identity\", \"badge\"]),\n icon(\"mood-smile\", \"Smile\", \"Positive mood or feedback\", [\"people\", \"communication\"], [\"happy\", \"emoji\"]),\n icon(\"user\", \"User\", \"One person or account\", [\"recommended\", \"people\", \"work\"], [\"person\", \"account\"]),\n icon(\"user-check\", \"Verified user\", \"An approved or verified person\", [\"people\", \"work\"], [\"approved\", \"verified\"]),\n icon(\"user-circle\", \"User profile\", \"A personal profile or avatar\", [\"people\"], [\"profile\", \"avatar\"]),\n icon(\"user-plus\", \"Add user\", \"Invite or add a person\", [\"people\", \"work\"], [\"invite\", \"join\"]),\n icon(\"users\", \"Users\", \"A group, team, or audience\", [\"recommended\", \"people\", \"work\"], [\"people\", \"team\"]),\n\n icon(\"award\", \"Award\", \"An achievement or recognition\", [\"work\", \"people\"], [\"medal\", \"achievement\"]),\n icon(\"building-store\", \"Store\", \"A shop or retail location\", [\"work\", \"commerce\", \"places\"], [\"shop\", \"retail\"]),\n icon(\"clipboard\", \"Clipboard\", \"Copied content or a work item\", [\"work\", \"files\"], [\"copy\", \"paste\"]),\n icon(\"clipboard-list\", \"Task list\", \"A checklist or set of tasks\", [\"work\", \"files\"], [\"todo\", \"checklist\"]),\n icon(\"edit\", \"Edit\", \"Change existing content\", [\"recommended\", \"work\", \"files\"], [\"pencil\", \"change\"]),\n icon(\"filter\", \"Filter\", \"Narrow a set of results\", [\"work\", \"data\"], [\"refine\", \"search\"]),\n icon(\"flag\", \"Flag\", \"A marker, milestone, or report\", [\"work\", \"places\"], [\"marker\", \"milestone\"]),\n icon(\"presentation\", \"Presentation\", \"Slides or a talk\", [\"work\", \"files\", \"media\"], [\"slides\", \"deck\"]),\n icon(\"printer\", \"Printer\", \"Print a physical copy\", [\"work\", \"files\", \"devices\"], [\"print\", \"paper\"]),\n icon(\"school\", \"School\", \"Education, training, or a campus\", [\"work\", \"people\", \"places\"], [\"education\", \"learning\"]),\n icon(\"target\", \"Target\", \"A goal or objective\", [\"work\", \"data\"], [\"goal\", \"aim\"]),\n icon(\"tool\", \"Tool\", \"Maintenance or practical work\", [\"recommended\", \"work\"], [\"build\", \"maintenance\", \"wrench\"]),\n icon(\"trophy\", \"Trophy\", \"A win or major achievement\", [\"work\", \"people\"], [\"winner\", \"champion\"]),\n\n icon(\"file\", \"File\", \"A generic file or document\", [\"recommended\", \"files\"], [\"document\"]),\n icon(\"file-code\", \"Code file\", \"Source code or a script\", [\"files\", \"data\"], [\"source\", \"developer\"]),\n icon(\"file-spreadsheet\", \"Spreadsheet\", \"Tabular data or a workbook\", [\"files\", \"data\", \"work\"], [\"excel\", \"sheet\", \"csv\"]),\n icon(\"file-text\", \"Document\", \"Written text or documentation\", [\"recommended\", \"files\", \"work\"], [\"text\", \"docs\"]),\n icon(\"files\", \"Files\", \"A collection of documents\", [\"files\", \"work\"], [\"documents\", \"multiple\"]),\n icon(\"folder\", \"Folder\", \"A directory of files\", [\"recommended\", \"files\", \"work\"], [\"directory\"]),\n icon(\"folder-open\", \"Open folder\", \"A currently open directory\", [\"files\", \"work\"], [\"directory\", \"browse\"]),\n icon(\"note\", \"Note\", \"A short memo or annotation\", [\"recommended\", \"files\", \"work\"], [\"memo\", \"writing\"]),\n icon(\"notebook\", \"Notebook\", \"Notes, a journal, or research\", [\"files\", \"work\"], [\"journal\", \"writing\"]),\n icon(\"paperclip\", \"Attachment\", \"An attached file\", [\"files\", \"communication\", \"work\"], [\"attach\", \"paperclip\"]),\n icon(\"pencil\", \"Pencil\", \"Writing or composing content\", [\"files\", \"work\"], [\"write\", \"compose\"]),\n\n icon(\"api\", \"API\", \"An application programming interface\", [\"data\"], [\"endpoint\", \"service\"]),\n icon(\"brand-github\", \"GitHub\", \"A GitHub repository or project\", [\"data\", \"work\"], [\"git\", \"repository\", \"code\"]),\n icon(\"browser\", \"Browser\", \"A website or web browser\", [\"data\", \"devices\"], [\"web\", \"internet\"]),\n icon(\"bug\", \"Bug\", \"A software issue or defect\", [\"data\", \"work\"], [\"error\", \"issue\"]),\n icon(\"code\", \"Code\", \"Programming or source code\", [\"recommended\", \"data\", \"work\"], [\"source\", \"developer\"]),\n icon(\"database\", \"Database\", \"Structured data storage\", [\"recommended\", \"data\"], [\"db\", \"storage\"]),\n icon(\"git-branch\", \"Git branch\", \"A branch of source changes\", [\"data\", \"work\"], [\"repository\", \"fork\"]),\n icon(\"network\", \"Network\", \"Connected systems or nodes\", [\"data\", \"devices\"], [\"connection\", \"graph\"]),\n icon(\"robot\", \"Robot\", \"Automation, a bot, or AI\", [\"data\", \"work\"], [\"bot\", \"ai\", \"automation\"]),\n icon(\"server\", \"Server\", \"A host or infrastructure service\", [\"recommended\", \"data\", \"devices\"], [\"host\", \"infrastructure\"]),\n icon(\"table\", \"Table\", \"Rows and columns of data\", [\"data\", \"files\", \"work\"], [\"grid\", \"spreadsheet\"]),\n icon(\"terminal\", \"Terminal\", \"A command line or shell\", [\"data\", \"devices\"], [\"console\", \"cli\", \"shell\"]),\n icon(\"wifi\", \"Wi-Fi\", \"Wireless network access\", [\"data\", \"devices\"], [\"wireless\", \"internet\"]),\n\n icon(\"at\", \"At sign\", \"A mention or email address\", [\"communication\"], [\"mention\", \"email\"]),\n icon(\"mail\", \"Mail\", \"Email or written correspondence\", [\"recommended\", \"communication\", \"work\"], [\"email\", \"message\"]),\n icon(\"mail-opened\", \"Opened mail\", \"A read or opened message\", [\"communication\", \"work\"], [\"email\", \"read\"]),\n icon(\"message\", \"Message\", \"Chat or a conversation\", [\"recommended\", \"communication\", \"people\"], [\"chat\", \"comment\"]),\n icon(\"messages\", \"Messages\", \"A conversation with several messages\", [\"communication\", \"people\"], [\"chat\", \"conversation\"]),\n icon(\"microphone\", \"Microphone\", \"Voice input or audio recording\", [\"communication\", \"media\", \"devices\"], [\"audio\", \"voice\", \"record\"]),\n icon(\"phone\", \"Phone\", \"A telephone call or contact number\", [\"communication\", \"people\", \"devices\"], [\"call\", \"telephone\"]),\n icon(\"send\", \"Send\", \"Deliver a message or submission\", [\"recommended\", \"communication\", \"work\"], [\"submit\", \"deliver\"]),\n icon(\"share\", \"Share\", \"Distribute content to others\", [\"communication\", \"people\", \"files\"], [\"send\", \"social\"]),\n\n icon(\"building-bank\", \"Bank\", \"Banking or a financial institution\", [\"commerce\", \"work\", \"places\"], [\"finance\", \"money\"]),\n icon(\"calculator\", \"Calculator\", \"Calculation or accounting\", [\"commerce\", \"data\", \"devices\"], [\"math\", \"compute\"]),\n icon(\"cash\", \"Cash\", \"Physical money or a cash payment\", [\"commerce\"], [\"money\", \"banknote\"]),\n icon(\"coin\", \"Coin\", \"Money, currency, or credits\", [\"recommended\", \"commerce\"], [\"money\", \"finance\"]),\n icon(\"credit-card\", \"Credit card\", \"Card payments and billing\", [\"recommended\", \"commerce\"], [\"payment\", \"money\"]),\n icon(\"currency-dollar\", \"Dollar\", \"Prices or amounts in dollars\", [\"commerce\", \"data\"], [\"currency\", \"money\", \"usd\", \"$\"]),\n icon(\"currency-euro\", \"Euro\", \"Prices or amounts in euros\", [\"commerce\", \"data\"], [\"currency\", \"money\", \"eur\", \"€\"]),\n icon(\"percentage\", \"Percentage\", \"A rate, share, or discount\", [\"commerce\", \"data\"], [\"percent\", \"discount\", \"%\"]),\n icon(\"receipt\", \"Receipt\", \"A purchase, bill, or invoice\", [\"commerce\", \"files\"], [\"bill\", \"invoice\"]),\n icon(\"shopping-bag\", \"Shopping bag\", \"Retail shopping or an order\", [\"commerce\"], [\"shop\", \"buy\"]),\n icon(\"shopping-cart\", \"Shopping cart\", \"A basket of items to purchase\", [\"commerce\"], [\"shop\", \"purchase\"]),\n icon(\"wallet\", \"Wallet\", \"Money, cards, or an account balance\", [\"commerce\"], [\"cash\", \"finance\"]),\n\n icon(\"bike\", \"Bike\", \"Cycling or bicycle transport\", [\"places\"], [\"bicycle\", \"transport\"]),\n icon(\"bus\", \"Bus\", \"Public road transport\", [\"places\"], [\"transport\", \"public\"]),\n icon(\"car\", \"Car\", \"Driving or a road vehicle\", [\"places\"], [\"auto\", \"vehicle\"]),\n icon(\"compass\", \"Compass\", \"Direction or navigation\", [\"places\"], [\"navigation\", \"direction\"]),\n icon(\"map\", \"Map\", \"Geography or an area overview\", [\"places\", \"data\"], [\"location\", \"geography\"]),\n icon(\"map-pin\", \"Map pin\", \"A specific place or address\", [\"recommended\", \"places\"], [\"location\", \"place\"]),\n icon(\"mountain\", \"Mountain\", \"Nature, outdoors, or a peak\", [\"places\"], [\"outdoors\", \"nature\"]),\n icon(\"plane\", \"Plane\", \"Air travel or a flight\", [\"places\"], [\"flight\", \"airplane\"]),\n icon(\"rocket\", \"Rocket\", \"A launch, growth, or fast start\", [\"places\", \"work\", \"data\"], [\"launch\", \"space\", \"boost\"]),\n icon(\"route\", \"Route\", \"A path, journey, or itinerary\", [\"places\"], [\"path\", \"travel\"]),\n icon(\"ship\", \"Ship\", \"Sea transport or shipping\", [\"places\", \"commerce\"], [\"boat\", \"vessel\"]),\n icon(\"tent\", \"Tent\", \"Camping or an outdoor location\", [\"places\"], [\"camping\", \"outdoors\"]),\n icon(\"train\", \"Train\", \"Rail travel or public transport\", [\"places\"], [\"rail\", \"transport\"]),\n icon(\"truck\", \"Truck\", \"Freight, logistics, or delivery\", [\"places\", \"commerce\"], [\"shipping\", \"delivery\"]),\n icon(\"world\", \"World\", \"Global, international, or web content\", [\"recommended\", \"places\", \"data\"], [\"globe\", \"web\"]),\n\n icon(\"apple\", \"Apple\", \"Fruit, food, or healthy eating\", [\"food\"], [\"fruit\", \"healthy\"]),\n icon(\"cake\", \"Cake\", \"Dessert or a celebration\", [\"food\"], [\"dessert\", \"birthday\"]),\n icon(\"chef-hat\", \"Chef hat\", \"Cooking, recipes, or a restaurant\", [\"food\", \"work\"], [\"cook\", \"recipe\", \"restaurant\"]),\n icon(\"coffee\", \"Coffee\", \"Coffee, a café, or a break\", [\"recommended\", \"food\", \"work\"], [\"drink\", \"cafe\", \"caffeine\"]),\n icon(\"cookie\", \"Cookie\", \"A snack, dessert, or browser cookie\", [\"food\", \"data\"], [\"dessert\", \"snack\"]),\n icon(\"glass\", \"Glass\", \"A drink or beverage\", [\"food\"], [\"drink\", \"wine\"]),\n icon(\"ice-cream\", \"Ice cream\", \"A frozen dessert or treat\", [\"food\"], [\"dessert\", \"frozen\"]),\n icon(\"lemon\", \"Lemon\", \"Citrus fruit or a fresh flavor\", [\"food\"], [\"fruit\", \"citrus\"]),\n icon(\"mug\", \"Mug\", \"A hot drink or cup\", [\"food\", \"work\"], [\"cup\", \"beverage\"]),\n icon(\"pizza\", \"Pizza\", \"Food, delivery, or a restaurant\", [\"recommended\", \"food\", \"commerce\"], [\"restaurant\", \"delivery\"]),\n\n icon(\"headphones\", \"Headphones\", \"Listening to music or audio\", [\"media\", \"devices\"], [\"audio\", \"listen\"]),\n icon(\"music\", \"Music\", \"Songs, sound, or audio\", [\"media\"], [\"song\", \"audio\"]),\n icon(\"palette\", \"Palette\", \"Color, art, or visual design\", [\"media\", \"work\"], [\"color\", \"design\", \"art\"]),\n icon(\"photo\", \"Photo\", \"An image or picture\", [\"recommended\", \"media\", \"files\"], [\"image\", \"picture\"]),\n icon(\"player-pause\", \"Pause\", \"Pause audio or video playback\", [\"media\"], [\"stop\", \"playback\"]),\n icon(\"player-play\", \"Play\", \"Start audio or video playback\", [\"recommended\", \"media\"], [\"start\", \"playback\"]),\n icon(\"player-stop\", \"Stop\", \"Stop audio or video playback\", [\"media\"], [\"halt\", \"playback\"]),\n icon(\"video\", \"Video\", \"Moving images or a recording\", [\"recommended\", \"media\", \"communication\"], [\"camera\", \"movie\"]),\n icon(\"volume\", \"Volume\", \"Sound or audio level\", [\"media\", \"devices\"], [\"sound\", \"audio\"]),\n\n icon(\"device-desktop\", \"Desktop\", \"A desktop computer or monitor\", [\"recommended\", \"devices\", \"data\"], [\"computer\", \"screen\"]),\n icon(\"device-laptop\", \"Laptop\", \"A portable computer\", [\"devices\", \"data\"], [\"computer\"]),\n icon(\"device-mobile\", \"Mobile phone\", \"A smartphone or mobile view\", [\"devices\", \"communication\"], [\"phone\", \"smartphone\"]),\n icon(\"device-tablet\", \"Tablet\", \"A tablet computer or tablet view\", [\"devices\", \"data\"], [\"ipad\", \"computer\"]),\n icon(\"plug\", \"Plug\", \"Power or a system connection\", [\"devices\", \"data\"], [\"connect\", \"power\"]),\n] as const;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["inputs/icon-options.ts"],"sourcesContent":["import type { SelectGroup } from \"./Select\";\nimport type { IconOption } from \"./SpecialInputs\";\n\nexport const DEFAULT_ICON_GROUPS = [\n { value: \"recommended\", label: \"Recommended\" },\n { value: \"people\", label: \"People\" },\n { value: \"work\", label: \"Work\" },\n { value: \"communication\", label: \"Communication\" },\n { value: \"files\", label: \"Files\" },\n { value: \"data\", label: \"Data & tech\" },\n { value: \"commerce\", label: \"Commerce\" },\n { value: \"places\", label: \"Places\" },\n { value: \"food\", label: \"Food\" },\n { value: \"media\", label: \"Media\" },\n { value: \"devices\", label: \"Devices\" },\n] as const satisfies readonly SelectGroup[];\n\ntype DefaultIconGroup = (typeof DEFAULT_ICON_GROUPS)[number][\"value\"];\n\nconst icon = (\n name: string,\n label: string,\n description: string,\n groups: readonly DefaultIconGroup[],\n keywords: readonly string[] = [],\n): IconOption => ({\n value: `ti ti-${name}`,\n label,\n description,\n icon: `ti ti-${name}`,\n groups,\n keywords: [name, ...keywords],\n});\n\n/** A curated, application-neutral Tabler catalogue for IconInput. */\nexport const DEFAULT_ICON_OPTIONS: readonly IconOption[] = [\n icon(\"activity\", \"Activity\", \"Live activity or health signals\", [\"recommended\", \"data\"], [\"pulse\", \"monitor\"]),\n icon(\"adjustments\", \"Adjustments\", \"Tune settings or controls\", [\"recommended\", \"work\"], [\"settings\", \"controls\"]),\n icon(\"alert-circle\", \"Alert\", \"Important warning or problem\", [\"recommended\", \"work\"], [\"warning\", \"error\"]),\n icon(\"archive\", \"Archive\", \"Stored or inactive material\", [\"recommended\", \"files\", \"work\"], [\"box\", \"storage\"]),\n icon(\"bell\", \"Bell\", \"Notifications and reminders\", [\"recommended\", \"communication\"], [\"notification\", \"reminder\"]),\n icon(\"book\", \"Book\", \"Reading, knowledge, or a library\", [\"recommended\", \"files\"], [\"docs\", \"read\", \"library\"]),\n icon(\"bookmark\", \"Bookmark\", \"Saved content for later\", [\"recommended\", \"files\"], [\"save\", \"favorite\"]),\n icon(\"box\", \"Box\", \"A product, package, or container\", [\"recommended\", \"commerce\", \"work\"], [\"package\", \"inventory\"]),\n icon(\"briefcase\", \"Briefcase\", \"Business, a job, or a project\", [\"recommended\", \"work\"], [\"business\", \"job\"]),\n icon(\"building\", \"Building\", \"An organization or office\", [\"recommended\", \"work\", \"places\"], [\"company\", \"office\"]),\n icon(\"calendar\", \"Calendar\", \"Dates, plans, and schedules\", [\"recommended\", \"work\"], [\"date\", \"schedule\"]),\n icon(\"camera\", \"Camera\", \"Photography or image capture\", [\"recommended\", \"media\", \"devices\"], [\"photo\", \"image\"]),\n icon(\"chart-bar\", \"Bar chart\", \"Compare values across categories\", [\"recommended\", \"data\", \"work\"], [\"analytics\", \"stats\"]),\n icon(\"chart-line\", \"Line chart\", \"Show a trend over time\", [\"recommended\", \"data\", \"work\"], [\"analytics\", \"trend\"]),\n icon(\"check\", \"Check\", \"A completed or confirmed action\", [\"recommended\", \"work\"], [\"done\", \"success\"]),\n icon(\"circle-check\", \"Check circle\", \"Successful or approved status\", [\"recommended\", \"work\"], [\"done\", \"success\", \"approved\"]),\n icon(\"clock\", \"Clock\", \"Time, duration, or a deadline\", [\"recommended\", \"work\"], [\"time\", \"schedule\"]),\n icon(\"cloud\", \"Cloud\", \"Hosted or synchronized services\", [\"recommended\", \"data\"], [\"hosting\", \"online\", \"sync\"]),\n icon(\"heart\", \"Heart\", \"A favorite, like, or health topic\", [\"recommended\", \"people\"], [\"favorite\", \"health\", \"love\"]),\n icon(\"home\", \"Home\", \"A home page or physical home\", [\"recommended\", \"places\"], [\"start\", \"house\"]),\n icon(\"layout-dashboard\", \"Dashboard\", \"An overview or control center\", [\"recommended\", \"data\", \"work\"], [\"layout\", \"overview\"]),\n icon(\"search\", \"Search\", \"Find content or records\", [\"recommended\", \"work\", \"data\"], [\"find\", \"lookup\"]),\n icon(\"settings\", \"Settings\", \"Configuration and preferences\", [\"recommended\", \"work\"], [\"configure\", \"preferences\"]),\n icon(\"sparkles\", \"Sparkles\", \"AI, magic, or something new\", [\"recommended\", \"data\", \"media\"], [\"ai\", \"magic\", \"new\"]),\n icon(\"star\", \"Star\", \"A favorite, rating, or highlight\", [\"recommended\", \"work\"], [\"favorite\", \"rating\"]),\n icon(\"tag\", \"Tag\", \"A label or category\", [\"recommended\", \"files\", \"work\"], [\"label\", \"category\"]),\n icon(\"cube\", \"Cube\", \"A module, object, or component\", [\"recommended\", \"data\", \"work\"], [\"package\", \"component\"]),\n icon(\"download\", \"Download\", \"Save or export a file\", [\"recommended\", \"files\", \"data\"], [\"save\", \"export\"]),\n icon(\"external-link\", \"External link\", \"Open a different page or website\", [\"recommended\", \"communication\", \"data\"], [\"open\", \"new tab\"]),\n icon(\"eye\", \"Eye\", \"View, preview, or visibility\", [\"recommended\", \"work\", \"media\"], [\"view\", \"preview\"]),\n icon(\"help-circle\", \"Help\", \"Help, support, or a question\", [\"recommended\", \"communication\"], [\"question\", \"support\"]),\n icon(\"info-circle\", \"Info\", \"Additional information or guidance\", [\"recommended\", \"communication\"], [\"information\", \"help\"]),\n icon(\"key\", \"Key\", \"Access, credentials, or security\", [\"recommended\", \"work\", \"data\"], [\"access\", \"security\"]),\n icon(\"link\", \"Link\", \"A URL or connection\", [\"recommended\", \"communication\", \"data\"], [\"url\", \"connection\"]),\n icon(\"list\", \"List\", \"A sequence of items or rows\", [\"recommended\", \"work\", \"files\"], [\"items\", \"rows\"]),\n icon(\"lock\", \"Lock\", \"Private or protected content\", [\"recommended\", \"work\", \"data\"], [\"security\", \"private\"]),\n icon(\"package\", \"Package\", \"A shipped item or software module\", [\"recommended\", \"commerce\", \"data\"], [\"box\", \"module\"]),\n icon(\"plus\", \"Plus\", \"Add or create something\", [\"recommended\", \"work\"], [\"add\", \"create\"]),\n icon(\"shield\", \"Shield\", \"Security or protection\", [\"recommended\", \"work\", \"data\"], [\"security\", \"protection\"]),\n icon(\"trash\", \"Trash\", \"Delete or remove something\", [\"recommended\", \"work\", \"files\"], [\"delete\", \"remove\"]),\n icon(\"upload\", \"Upload\", \"Import or send a file\", [\"recommended\", \"files\", \"data\"], [\"import\", \"file\"]),\n icon(\"x\", \"Close\", \"Close, cancel, or remove\", [\"recommended\", \"work\"], [\"cancel\", \"remove\"]),\n\n icon(\"address-book\", \"Address book\", \"Saved people and contact details\", [\"people\", \"communication\"], [\"contacts\", \"directory\"]),\n icon(\"friends\", \"Friends\", \"Friends or a social circle\", [\"people\", \"communication\"], [\"social\", \"group\"]),\n icon(\"id\", \"ID card\", \"Identity or account details\", [\"people\", \"work\"], [\"identity\", \"badge\"]),\n icon(\"mood-smile\", \"Smile\", \"Positive mood or feedback\", [\"people\", \"communication\"], [\"happy\", \"emoji\"]),\n icon(\"user\", \"User\", \"One person or account\", [\"recommended\", \"people\", \"work\"], [\"person\", \"account\"]),\n icon(\"user-check\", \"Verified user\", \"An approved or verified person\", [\"people\", \"work\"], [\"approved\", \"verified\"]),\n icon(\"user-circle\", \"User profile\", \"A personal profile or avatar\", [\"people\"], [\"profile\", \"avatar\"]),\n icon(\"user-plus\", \"Add user\", \"Invite or add a person\", [\"people\", \"work\"], [\"invite\", \"join\"]),\n icon(\"users\", \"Users\", \"A group, team, or audience\", [\"recommended\", \"people\", \"work\"], [\"people\", \"team\"]),\n\n icon(\"award\", \"Award\", \"An achievement or recognition\", [\"work\", \"people\"], [\"medal\", \"achievement\"]),\n icon(\"building-store\", \"Store\", \"A shop or retail location\", [\"work\", \"commerce\", \"places\"], [\"shop\", \"retail\"]),\n icon(\"clipboard\", \"Clipboard\", \"Copied content or a work item\", [\"work\", \"files\"], [\"copy\", \"paste\"]),\n icon(\"clipboard-list\", \"Task list\", \"A checklist or set of tasks\", [\"work\", \"files\"], [\"todo\", \"checklist\"]),\n icon(\"edit\", \"Edit\", \"Change existing content\", [\"recommended\", \"work\", \"files\"], [\"pencil\", \"change\"]),\n icon(\"filter\", \"Filter\", \"Narrow a set of results\", [\"work\", \"data\"], [\"refine\", \"search\"]),\n icon(\"flag\", \"Flag\", \"A marker, milestone, or report\", [\"work\", \"places\"], [\"marker\", \"milestone\"]),\n icon(\"presentation\", \"Presentation\", \"Slides or a talk\", [\"work\", \"files\", \"media\"], [\"slides\", \"deck\"]),\n icon(\"printer\", \"Printer\", \"Print a physical copy\", [\"work\", \"files\", \"devices\"], [\"print\", \"paper\"]),\n icon(\"school\", \"School\", \"Education, training, or a campus\", [\"work\", \"people\", \"places\"], [\"education\", \"learning\"]),\n icon(\"target\", \"Target\", \"A goal or objective\", [\"work\", \"data\"], [\"goal\", \"aim\"]),\n icon(\"tool\", \"Tool\", \"Maintenance or practical work\", [\"recommended\", \"work\"], [\"build\", \"maintenance\", \"wrench\"]),\n icon(\"trophy\", \"Trophy\", \"A win or major achievement\", [\"work\", \"people\"], [\"winner\", \"champion\"]),\n\n icon(\"file\", \"File\", \"A generic file or document\", [\"recommended\", \"files\"], [\"document\"]),\n icon(\"file-code\", \"Code file\", \"Source code or a script\", [\"files\", \"data\"], [\"source\", \"developer\"]),\n icon(\"file-spreadsheet\", \"Spreadsheet\", \"Tabular data or a workbook\", [\"files\", \"data\", \"work\"], [\"excel\", \"sheet\", \"csv\"]),\n icon(\"file-text\", \"Document\", \"Written text or documentation\", [\"recommended\", \"files\", \"work\"], [\"text\", \"docs\"]),\n icon(\"files\", \"Files\", \"A collection of documents\", [\"files\", \"work\"], [\"documents\", \"multiple\"]),\n icon(\"folder\", \"Folder\", \"A directory of files\", [\"recommended\", \"files\", \"work\"], [\"directory\"]),\n icon(\"folder-open\", \"Open folder\", \"A currently open directory\", [\"files\", \"work\"], [\"directory\", \"browse\"]),\n icon(\"note\", \"Note\", \"A short memo or annotation\", [\"recommended\", \"files\", \"work\"], [\"memo\", \"writing\"]),\n icon(\"notebook\", \"Notebook\", \"Notes, a journal, or research\", [\"files\", \"work\"], [\"journal\", \"writing\"]),\n icon(\"paperclip\", \"Attachment\", \"An attached file\", [\"files\", \"communication\", \"work\"], [\"attach\", \"paperclip\"]),\n icon(\"pencil\", \"Pencil\", \"Writing or composing content\", [\"files\", \"work\"], [\"write\", \"compose\"]),\n\n icon(\"api\", \"API\", \"An application programming interface\", [\"data\"], [\"endpoint\", \"service\"]),\n icon(\"brand-github\", \"GitHub\", \"A GitHub repository or project\", [\"data\", \"work\"], [\"git\", \"repository\", \"code\"]),\n icon(\"browser\", \"Browser\", \"A website or web browser\", [\"data\", \"devices\"], [\"web\", \"internet\"]),\n icon(\"bug\", \"Bug\", \"A software issue or defect\", [\"data\", \"work\"], [\"error\", \"issue\"]),\n icon(\"code\", \"Code\", \"Programming or source code\", [\"recommended\", \"data\", \"work\"], [\"source\", \"developer\"]),\n icon(\"database\", \"Database\", \"Structured data storage\", [\"recommended\", \"data\"], [\"db\", \"storage\"]),\n icon(\"git-branch\", \"Git branch\", \"A branch of source changes\", [\"data\", \"work\"], [\"repository\", \"fork\"]),\n icon(\"network\", \"Network\", \"Connected systems or nodes\", [\"data\", \"devices\"], [\"connection\", \"graph\"]),\n icon(\"robot\", \"Robot\", \"Automation, a bot, or AI\", [\"data\", \"work\"], [\"bot\", \"ai\", \"automation\"]),\n icon(\"server\", \"Server\", \"A host or infrastructure service\", [\"recommended\", \"data\", \"devices\"], [\"host\", \"infrastructure\"]),\n icon(\"table\", \"Table\", \"Rows and columns of data\", [\"data\", \"files\", \"work\"], [\"grid\", \"spreadsheet\"]),\n icon(\"terminal\", \"Terminal\", \"A command line or shell\", [\"data\", \"devices\"], [\"console\", \"cli\", \"shell\"]),\n icon(\"wifi\", \"Wi-Fi\", \"Wireless network access\", [\"data\", \"devices\"], [\"wireless\", \"internet\"]),\n\n icon(\"at\", \"At sign\", \"A mention or email address\", [\"communication\"], [\"mention\", \"email\"]),\n icon(\"mail\", \"Mail\", \"Email or written correspondence\", [\"recommended\", \"communication\", \"work\"], [\"email\", \"message\"]),\n icon(\"mail-opened\", \"Opened mail\", \"A read or opened message\", [\"communication\", \"work\"], [\"email\", \"read\"]),\n icon(\"message\", \"Message\", \"Chat or a conversation\", [\"recommended\", \"communication\", \"people\"], [\"chat\", \"comment\"]),\n icon(\"messages\", \"Messages\", \"A conversation with several messages\", [\"communication\", \"people\"], [\"chat\", \"conversation\"]),\n icon(\"microphone\", \"Microphone\", \"Voice input or audio recording\", [\"communication\", \"media\", \"devices\"], [\"audio\", \"voice\", \"record\"]),\n icon(\"phone\", \"Phone\", \"A telephone call or contact number\", [\"communication\", \"people\", \"devices\"], [\"call\", \"telephone\"]),\n icon(\"send\", \"Send\", \"Deliver a message or submission\", [\"recommended\", \"communication\", \"work\"], [\"submit\", \"deliver\"]),\n icon(\"share\", \"Share\", \"Distribute content to others\", [\"communication\", \"people\", \"files\"], [\"send\", \"social\"]),\n\n icon(\"building-bank\", \"Bank\", \"Banking or a financial institution\", [\"commerce\", \"work\", \"places\"], [\"finance\", \"money\"]),\n icon(\"calculator\", \"Calculator\", \"Calculation or accounting\", [\"commerce\", \"data\", \"devices\"], [\"math\", \"compute\"]),\n icon(\"cash\", \"Cash\", \"Physical money or a cash payment\", [\"commerce\"], [\"money\", \"banknote\"]),\n icon(\"coin\", \"Coin\", \"Money, currency, or credits\", [\"recommended\", \"commerce\"], [\"money\", \"finance\"]),\n icon(\"credit-card\", \"Credit card\", \"Card payments and billing\", [\"recommended\", \"commerce\"], [\"payment\", \"money\"]),\n icon(\"currency-dollar\", \"Dollar\", \"Prices or amounts in dollars\", [\"commerce\", \"data\"], [\"currency\", \"money\", \"usd\", \"$\"]),\n icon(\"currency-euro\", \"Euro\", \"Prices or amounts in euros\", [\"commerce\", \"data\"], [\"currency\", \"money\", \"eur\", \"€\"]),\n icon(\"percentage\", \"Percentage\", \"A rate, share, or discount\", [\"commerce\", \"data\"], [\"percent\", \"discount\", \"%\"]),\n icon(\"receipt\", \"Receipt\", \"A purchase, bill, or invoice\", [\"commerce\", \"files\"], [\"bill\", \"invoice\"]),\n icon(\"shopping-bag\", \"Shopping bag\", \"Retail shopping or an order\", [\"commerce\"], [\"shop\", \"buy\"]),\n icon(\"shopping-cart\", \"Shopping cart\", \"A basket of items to purchase\", [\"commerce\"], [\"shop\", \"purchase\"]),\n icon(\"wallet\", \"Wallet\", \"Money, cards, or an account balance\", [\"commerce\"], [\"cash\", \"finance\"]),\n\n icon(\"bike\", \"Bike\", \"Cycling or bicycle transport\", [\"places\"], [\"bicycle\", \"transport\"]),\n icon(\"bus\", \"Bus\", \"Public road transport\", [\"places\"], [\"transport\", \"public\"]),\n icon(\"car\", \"Car\", \"Driving or a road vehicle\", [\"places\"], [\"auto\", \"vehicle\"]),\n icon(\"compass\", \"Compass\", \"Direction or navigation\", [\"places\"], [\"navigation\", \"direction\"]),\n icon(\"map\", \"Map\", \"Geography or an area overview\", [\"places\", \"data\"], [\"location\", \"geography\"]),\n icon(\"map-pin\", \"Map pin\", \"A specific place or address\", [\"recommended\", \"places\"], [\"location\", \"place\"]),\n icon(\"mountain\", \"Mountain\", \"Nature, outdoors, or a peak\", [\"places\"], [\"outdoors\", \"nature\"]),\n icon(\"plane\", \"Plane\", \"Air travel or a flight\", [\"places\"], [\"flight\", \"airplane\"]),\n icon(\"rocket\", \"Rocket\", \"A launch, growth, or fast start\", [\"places\", \"work\", \"data\"], [\"launch\", \"space\", \"boost\"]),\n icon(\"route\", \"Route\", \"A path, journey, or itinerary\", [\"places\"], [\"path\", \"travel\"]),\n icon(\"ship\", \"Ship\", \"Sea transport or shipping\", [\"places\", \"commerce\"], [\"boat\", \"vessel\"]),\n icon(\"tent\", \"Tent\", \"Camping or an outdoor location\", [\"places\"], [\"camping\", \"outdoors\"]),\n icon(\"train\", \"Train\", \"Rail travel or public transport\", [\"places\"], [\"rail\", \"transport\"]),\n icon(\"truck\", \"Truck\", \"Freight, logistics, or delivery\", [\"places\", \"commerce\"], [\"shipping\", \"delivery\"]),\n icon(\"world\", \"World\", \"Global, international, or web content\", [\"recommended\", \"places\", \"data\"], [\"globe\", \"web\"]),\n\n icon(\"apple\", \"Apple\", \"Fruit, food, or healthy eating\", [\"food\"], [\"fruit\", \"healthy\"]),\n icon(\"cake\", \"Cake\", \"Dessert or a celebration\", [\"food\"], [\"dessert\", \"birthday\"]),\n icon(\"chef-hat\", \"Chef hat\", \"Cooking, recipes, or a restaurant\", [\"food\", \"work\"], [\"cook\", \"recipe\", \"restaurant\"]),\n icon(\"coffee\", \"Coffee\", \"Coffee, a café, or a break\", [\"recommended\", \"food\", \"work\"], [\"drink\", \"cafe\", \"caffeine\"]),\n icon(\"cookie\", \"Cookie\", \"A snack, dessert, or browser cookie\", [\"food\", \"data\"], [\"dessert\", \"snack\"]),\n icon(\"glass\", \"Glass\", \"A drink or beverage\", [\"food\"], [\"drink\", \"wine\"]),\n icon(\"ice-cream\", \"Ice cream\", \"A frozen dessert or treat\", [\"food\"], [\"dessert\", \"frozen\"]),\n icon(\"lemon\", \"Lemon\", \"Citrus fruit or a fresh flavor\", [\"food\"], [\"fruit\", \"citrus\"]),\n icon(\"mug\", \"Mug\", \"A hot drink or cup\", [\"food\", \"work\"], [\"cup\", \"beverage\"]),\n icon(\"pizza\", \"Pizza\", \"Food, delivery, or a restaurant\", [\"recommended\", \"food\", \"commerce\"], [\"restaurant\", \"delivery\"]),\n\n icon(\"headphones\", \"Headphones\", \"Listening to music or audio\", [\"media\", \"devices\"], [\"audio\", \"listen\"]),\n icon(\"music\", \"Music\", \"Songs, sound, or audio\", [\"media\"], [\"song\", \"audio\"]),\n icon(\"palette\", \"Palette\", \"Color, art, or visual design\", [\"media\", \"work\"], [\"color\", \"design\", \"art\"]),\n icon(\"photo\", \"Photo\", \"An image or picture\", [\"recommended\", \"media\", \"files\"], [\"image\", \"picture\"]),\n icon(\"player-pause\", \"Pause\", \"Pause audio or video playback\", [\"media\"], [\"stop\", \"playback\"]),\n icon(\"player-play\", \"Play\", \"Start audio or video playback\", [\"recommended\", \"media\"], [\"start\", \"playback\"]),\n icon(\"player-stop\", \"Stop\", \"Stop audio or video playback\", [\"media\"], [\"halt\", \"playback\"]),\n icon(\"video\", \"Video\", \"Moving images or a recording\", [\"recommended\", \"media\", \"communication\"], [\"camera\", \"movie\"]),\n icon(\"volume\", \"Volume\", \"Sound or audio level\", [\"media\", \"devices\"], [\"sound\", \"audio\"]),\n\n icon(\"device-desktop\", \"Desktop\", \"A desktop computer or monitor\", [\"recommended\", \"devices\", \"data\"], [\"computer\", \"screen\"]),\n icon(\"device-laptop\", \"Laptop\", \"A portable computer\", [\"devices\", \"data\"], [\"computer\"]),\n icon(\"device-mobile\", \"Mobile phone\", \"A smartphone or mobile view\", [\"devices\", \"communication\"], [\"phone\", \"smartphone\"]),\n icon(\"device-tablet\", \"Tablet\", \"A tablet computer or tablet view\", [\"devices\", \"data\"], [\"ipad\", \"computer\"]),\n icon(\"plug\", \"Plug\", \"Power or a system connection\", [\"devices\", \"data\"], [\"connect\", \"power\"]),\n] as const;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MIN_CROP_SIZE","clamp","value","min","max","Math","aspectRatio","aspect","width","height","normalizeImageCropRotation","rotation","round","rotateImageCropRight","getInitialImageCropRect","imageSize","x","y","target","source","clampImageCropRect","rect","resizeImageCropAroundCenter","scale","safeScale","centerX","centerY","resizeImageCropFromCorner","handle","dx","dy","movesEast","includes","movesSouth","anchorX","anchorY","requestedWidth","requestedHeight","widthFromHeight","requested","abs","horizontalLimit","verticalLimit","maxWidth","minimumWidth","imageCropRectToPixels","cropped","state","output","img","data","create","rotate","crop","resize","maxHeight","ratio","createCroppedImageCanvas","result","toCanvas","createCroppedImageDataUrl","toBase64","format","quality"],"sources":["inputs/image-crop.ts"],"sourcesContent":["export type ImageCropAspect = \"free\" | { width: number; height: number };\nexport type ImageCropRotation = 0 | 90 | 180 | 270;\nexport type ImageCropRect = { x: number; y: number; width: number; height: number };\nexport type ImageCropState = { crop: ImageCropRect; rotation: ImageCropRotation };\nexport type ImageCropSource = File | Blob | HTMLImageElement | HTMLCanvasElement | string;\nexport type ImageCropOutput = {\n width?: number;\n height?: number;\n maxWidth?: number;\n maxHeight?: number;\n format?: \"webp\" | \"jpeg\" | \"png\";\n quality?: number;\n};\nexport type ImageCropSize = { width: number; height: number };\nexport type ImageCropResizeHandle = \"nw\" | \"ne\" | \"sw\" | \"se\";\n\nconst MIN_CROP_SIZE = 0.08;\nconst clamp = (value: number, min: number, max: number) => Math.max(min, Math.min(max, value));\nconst aspectRatio = (aspect: Exclude<ImageCropAspect, \"free\">) =>\n aspect.width > 0 && aspect.height > 0 ? aspect.width / aspect.height : 1;\n\nexport const normalizeImageCropRotation = (rotation: number): ImageCropRotation =>\n ((((Math.round(rotation / 90) * 90) % 360) + 360) % 360) as ImageCropRotation;\n\nexport const rotateImageCropRight = (rotation: ImageCropRotation): ImageCropRotation => normalizeImageCropRotation(rotation + 90);\n\nexport const getInitialImageCropRect = (imageSize: ImageCropSize, aspect: ImageCropAspect = \"free\"): ImageCropRect => {\n if (aspect === \"free\") return { x: 0.1, y: 0.1, width: 0.8, height: 0.8 };\n const target = aspectRatio(aspect);\n const source = imageSize.width > 0 && imageSize.height > 0 ? imageSize.width / imageSize.height : 1;\n let width = 0.86;\n let height = (width * source) / target;\n if (height > 0.86) {\n height = 0.86;\n width = (height * target) / source;\n }\n width = clamp(width, MIN_CROP_SIZE, 1);\n height = clamp(height, MIN_CROP_SIZE, 1);\n return { x: (1 - width) / 2, y: (1 - height) / 2, width, height };\n};\n\nexport const clampImageCropRect = (rect: ImageCropRect, imageSize: ImageCropSize, aspect: ImageCropAspect = \"free\"): ImageCropRect => {\n if (aspect === \"free\") {\n const width = clamp(rect.width, MIN_CROP_SIZE, 1);\n const height = clamp(rect.height, MIN_CROP_SIZE, 1);\n return { x: clamp(rect.x, 0, 1 - width), y: clamp(rect.y, 0, 1 - height), width, height };\n }\n const target = aspectRatio(aspect);\n const source = imageSize.width > 0 && imageSize.height > 0 ? imageSize.width / imageSize.height : 1;\n let width = clamp(rect.width, MIN_CROP_SIZE, 1);\n let height = (width * source) / target;\n if (height > 1) {\n height = 1;\n width = (height * target) / source;\n }\n return { x: clamp(rect.x, 0, 1 - width), y: clamp(rect.y, 0, 1 - height), width, height };\n};\n\nexport const resizeImageCropAroundCenter = (\n rect: ImageCropRect,\n imageSize: ImageCropSize,\n aspect: ImageCropAspect,\n scale: number,\n): ImageCropRect => {\n const safeScale = clamp(scale, 0.2, 5);\n const centerX = rect.x + rect.width / 2;\n const centerY = rect.y + rect.height / 2;\n const width = clamp(rect.width / safeScale, MIN_CROP_SIZE, 1);\n const height =\n aspect === \"free\"\n ? clamp(rect.height / safeScale, MIN_CROP_SIZE, 1)\n : (width * (imageSize.width / Math.max(1, imageSize.height))) / aspectRatio(aspect);\n return clampImageCropRect({ x: centerX - width / 2, y: centerY - height / 2, width, height }, imageSize, aspect);\n};\n\n/** Resizes a crop from one corner while keeping the opposite corner anchored. */\nexport const resizeImageCropFromCorner = (\n rect: ImageCropRect,\n imageSize: ImageCropSize,\n aspect: ImageCropAspect,\n handle: ImageCropResizeHandle,\n dx: number,\n dy: number,\n): ImageCropRect => {\n const movesEast = handle.includes(\"e\");\n const movesSouth = handle.includes(\"s\");\n const anchorX = movesEast ? rect.x : rect.x + rect.width;\n const anchorY = movesSouth ? rect.y : rect.y + rect.height;\n const requestedWidth = rect.width + (movesEast ? dx : -dx);\n const requestedHeight = rect.height + (movesSouth ? dy : -dy);\n\n if (aspect === \"free\") {\n const width = clamp(requestedWidth, MIN_CROP_SIZE, movesEast ? 1 - anchorX : anchorX);\n const height = clamp(requestedHeight, MIN_CROP_SIZE, movesSouth ? 1 - anchorY : anchorY);\n return {\n x: movesEast ? anchorX : anchorX - width,\n y: movesSouth ? anchorY : anchorY - height,\n width,\n height,\n };\n }\n\n const source = imageSize.width > 0 && imageSize.height > 0 ? imageSize.width / imageSize.height : 1;\n const target = aspectRatio(aspect);\n const widthFromHeight = (requestedHeight * target) / source;\n const requested = Math.abs(requestedWidth - rect.width) >= Math.abs(widthFromHeight - rect.width) ? requestedWidth : widthFromHeight;\n const horizontalLimit = movesEast ? 1 - anchorX : anchorX;\n const verticalLimit = movesSouth ? 1 - anchorY : anchorY;\n const maxWidth = Math.max(0, Math.min(horizontalLimit, (verticalLimit * target) / source));\n const minimumWidth = Math.min(maxWidth, Math.max(MIN_CROP_SIZE, (MIN_CROP_SIZE * target) / source));\n const width = clamp(requested, minimumWidth, maxWidth);\n const height = (width * source) / target;\n\n return {\n x: movesEast ? anchorX : anchorX - width,\n y: movesSouth ? anchorY : anchorY - height,\n width,\n height,\n };\n};\n\nexport const imageCropRectToPixels = (rect: ImageCropRect, imageSize: ImageCropSize) => {\n const x = clamp(rect.x, 0, 1 - MIN_CROP_SIZE);\n const y = clamp(rect.y, 0, 1 - MIN_CROP_SIZE);\n return {\n x: Math.round(x * imageSize.width),\n y: Math.round(y * imageSize.height),\n width: Math.max(1, Math.round(clamp(rect.width, MIN_CROP_SIZE, 1 - x) * imageSize.width)),\n height: Math.max(1, Math.round(clamp(rect.height, MIN_CROP_SIZE, 1 - y) * imageSize.height)),\n };\n};\n\nconst cropped = async (source: ImageCropSource, state: ImageCropState, output: ImageCropOutput) => {\n const { img } = await import(\"@k2b/stdlib/browser\");\n let data = await img.create(source);\n if (state.rotation) data = await img.rotate(state.rotation)(data);\n const crop = imageCropRectToPixels(state.crop, { width: data.width, height: data.height });\n data = await img.crop(crop.x, crop.y, crop.width, crop.height)(data);\n if (output.width || output.height) {\n data = await img.resize(output.width, output.height, \"fill\")(data);\n } else if (output.maxWidth || output.maxHeight) {\n const ratio = Math.min(1, (output.maxWidth ?? data.width) / data.width, (output.maxHeight ?? data.height) / data.height);\n if (ratio < 1) data = await img.resize(Math.round(data.width * ratio), Math.round(data.height * ratio), \"fill\")(data);\n }\n return { img, data };\n};\n\nexport const createCroppedImageCanvas = async (\n source: ImageCropSource,\n state: ImageCropState,\n output: ImageCropOutput = {},\n): Promise<HTMLCanvasElement> => {\n const result = await cropped(source, state, output);\n return result.img.toCanvas(result.data);\n};\n\nexport const createCroppedImageDataUrl = async (\n source: ImageCropSource,\n state: ImageCropState,\n output: ImageCropOutput = {},\n): Promise<string> => {\n const result = await cropped(source, state, output);\n return result.img.toBase64(output.format ?? \"webp\", output.quality ?? 0.86)(result.data);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["inputs/image-crop.ts"],"sourcesContent":["export type ImageCropAspect = \"free\" | { width: number; height: number };\nexport type ImageCropRotation = 0 | 90 | 180 | 270;\nexport type ImageCropRect = { x: number; y: number; width: number; height: number };\nexport type ImageCropState = { crop: ImageCropRect; rotation: ImageCropRotation };\nexport type ImageCropSource = File | Blob | HTMLImageElement | HTMLCanvasElement | string;\nexport type ImageCropOutput = {\n width?: number;\n height?: number;\n maxWidth?: number;\n maxHeight?: number;\n format?: \"webp\" | \"jpeg\" | \"png\";\n quality?: number;\n};\nexport type ImageCropSize = { width: number; height: number };\nexport type ImageCropResizeHandle = \"nw\" | \"ne\" | \"sw\" | \"se\";\n\nconst MIN_CROP_SIZE = 0.08;\nconst clamp = (value: number, min: number, max: number) => Math.max(min, Math.min(max, value));\nconst aspectRatio = (aspect: Exclude<ImageCropAspect, \"free\">) =>\n aspect.width > 0 && aspect.height > 0 ? aspect.width / aspect.height : 1;\n\nexport const normalizeImageCropRotation = (rotation: number): ImageCropRotation =>\n ((((Math.round(rotation / 90) * 90) % 360) + 360) % 360) as ImageCropRotation;\n\nexport const rotateImageCropRight = (rotation: ImageCropRotation): ImageCropRotation => normalizeImageCropRotation(rotation + 90);\n\nexport const getInitialImageCropRect = (imageSize: ImageCropSize, aspect: ImageCropAspect = \"free\"): ImageCropRect => {\n if (aspect === \"free\") return { x: 0.1, y: 0.1, width: 0.8, height: 0.8 };\n const target = aspectRatio(aspect);\n const source = imageSize.width > 0 && imageSize.height > 0 ? imageSize.width / imageSize.height : 1;\n let width = 0.86;\n let height = (width * source) / target;\n if (height > 0.86) {\n height = 0.86;\n width = (height * target) / source;\n }\n width = clamp(width, MIN_CROP_SIZE, 1);\n height = clamp(height, MIN_CROP_SIZE, 1);\n return { x: (1 - width) / 2, y: (1 - height) / 2, width, height };\n};\n\nexport const clampImageCropRect = (rect: ImageCropRect, imageSize: ImageCropSize, aspect: ImageCropAspect = \"free\"): ImageCropRect => {\n if (aspect === \"free\") {\n const width = clamp(rect.width, MIN_CROP_SIZE, 1);\n const height = clamp(rect.height, MIN_CROP_SIZE, 1);\n return { x: clamp(rect.x, 0, 1 - width), y: clamp(rect.y, 0, 1 - height), width, height };\n }\n const target = aspectRatio(aspect);\n const source = imageSize.width > 0 && imageSize.height > 0 ? imageSize.width / imageSize.height : 1;\n let width = clamp(rect.width, MIN_CROP_SIZE, 1);\n let height = (width * source) / target;\n if (height > 1) {\n height = 1;\n width = (height * target) / source;\n }\n return { x: clamp(rect.x, 0, 1 - width), y: clamp(rect.y, 0, 1 - height), width, height };\n};\n\nexport const resizeImageCropAroundCenter = (\n rect: ImageCropRect,\n imageSize: ImageCropSize,\n aspect: ImageCropAspect,\n scale: number,\n): ImageCropRect => {\n const safeScale = clamp(scale, 0.2, 5);\n const centerX = rect.x + rect.width / 2;\n const centerY = rect.y + rect.height / 2;\n const width = clamp(rect.width / safeScale, MIN_CROP_SIZE, 1);\n const height =\n aspect === \"free\"\n ? clamp(rect.height / safeScale, MIN_CROP_SIZE, 1)\n : (width * (imageSize.width / Math.max(1, imageSize.height))) / aspectRatio(aspect);\n return clampImageCropRect({ x: centerX - width / 2, y: centerY - height / 2, width, height }, imageSize, aspect);\n};\n\n/** Resizes a crop from one corner while keeping the opposite corner anchored. */\nexport const resizeImageCropFromCorner = (\n rect: ImageCropRect,\n imageSize: ImageCropSize,\n aspect: ImageCropAspect,\n handle: ImageCropResizeHandle,\n dx: number,\n dy: number,\n): ImageCropRect => {\n const movesEast = handle.includes(\"e\");\n const movesSouth = handle.includes(\"s\");\n const anchorX = movesEast ? rect.x : rect.x + rect.width;\n const anchorY = movesSouth ? rect.y : rect.y + rect.height;\n const requestedWidth = rect.width + (movesEast ? dx : -dx);\n const requestedHeight = rect.height + (movesSouth ? dy : -dy);\n\n if (aspect === \"free\") {\n const width = clamp(requestedWidth, MIN_CROP_SIZE, movesEast ? 1 - anchorX : anchorX);\n const height = clamp(requestedHeight, MIN_CROP_SIZE, movesSouth ? 1 - anchorY : anchorY);\n return {\n x: movesEast ? anchorX : anchorX - width,\n y: movesSouth ? anchorY : anchorY - height,\n width,\n height,\n };\n }\n\n const source = imageSize.width > 0 && imageSize.height > 0 ? imageSize.width / imageSize.height : 1;\n const target = aspectRatio(aspect);\n const widthFromHeight = (requestedHeight * target) / source;\n const requested = Math.abs(requestedWidth - rect.width) >= Math.abs(widthFromHeight - rect.width) ? requestedWidth : widthFromHeight;\n const horizontalLimit = movesEast ? 1 - anchorX : anchorX;\n const verticalLimit = movesSouth ? 1 - anchorY : anchorY;\n const maxWidth = Math.max(0, Math.min(horizontalLimit, (verticalLimit * target) / source));\n const minimumWidth = Math.min(maxWidth, Math.max(MIN_CROP_SIZE, (MIN_CROP_SIZE * target) / source));\n const width = clamp(requested, minimumWidth, maxWidth);\n const height = (width * source) / target;\n\n return {\n x: movesEast ? anchorX : anchorX - width,\n y: movesSouth ? anchorY : anchorY - height,\n width,\n height,\n };\n};\n\nexport const imageCropRectToPixels = (rect: ImageCropRect, imageSize: ImageCropSize) => {\n const x = clamp(rect.x, 0, 1 - MIN_CROP_SIZE);\n const y = clamp(rect.y, 0, 1 - MIN_CROP_SIZE);\n return {\n x: Math.round(x * imageSize.width),\n y: Math.round(y * imageSize.height),\n width: Math.max(1, Math.round(clamp(rect.width, MIN_CROP_SIZE, 1 - x) * imageSize.width)),\n height: Math.max(1, Math.round(clamp(rect.height, MIN_CROP_SIZE, 1 - y) * imageSize.height)),\n };\n};\n\nconst cropped = async (source: ImageCropSource, state: ImageCropState, output: ImageCropOutput) => {\n const { img } = await import(\"@k2b/stdlib/browser\");\n let data = await img.create(source);\n if (state.rotation) data = await img.rotate(state.rotation)(data);\n const crop = imageCropRectToPixels(state.crop, { width: data.width, height: data.height });\n data = await img.crop(crop.x, crop.y, crop.width, crop.height)(data);\n if (output.width || output.height) {\n data = await img.resize(output.width, output.height, \"fill\")(data);\n } else if (output.maxWidth || output.maxHeight) {\n const ratio = Math.min(1, (output.maxWidth ?? data.width) / data.width, (output.maxHeight ?? data.height) / data.height);\n if (ratio < 1) data = await img.resize(Math.round(data.width * ratio), Math.round(data.height * ratio), \"fill\")(data);\n }\n return { img, data };\n};\n\nexport const createCroppedImageCanvas = async (\n source: ImageCropSource,\n state: ImageCropState,\n output: ImageCropOutput = {},\n): Promise<HTMLCanvasElement> => {\n const result = await cropped(source, state, output);\n return result.img.toCanvas(result.data);\n};\n\nexport const createCroppedImageDataUrl = async (\n source: ImageCropSource,\n state: ImageCropState,\n output: ImageCropOutput = {},\n): Promise<string> => {\n const result = await cropped(source, state, output);\n return result.img.toBase64(output.format ?? \"webp\", output.quality ?? 0.86)(result.data);\n};\n"],"mappings":"AAgBA,MAAM,aAAa,GAAG,IAAI;AAC1B,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC9F,MAAM,WAAW,GAAI,MAAwC,IAC3D,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AAE1E,OAAO,MAAM,0BAA0B,GAAI,QAAgB,IACxD,CAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,GAAI,GAAG,GAAI,GAAG,IAAI,GAAyB;AAE/E,OAAO,MAAM,oBAAoB,GAAI,QAA2B,IAAwB,0BAA0B,CAAC,QAAQ,GAAG,EAAE,CAAC;AAEjI,OAAO,MAAM,uBAAuB,GAAG,CAAC,SAAwB,EAAE,MAAuB,GAAG,MAAM,KAAoB;EACpH,IAAI,MAAM,KAAK,MAAM,EAAE,OAAO;IAAE,CAAC,EAAE,GAAG;IAAE,CAAC,EAAE,GAAG;IAAE,KAAK,EAAE,GAAG;IAAE,MAAM,EAAE;EAAI,CAAC;EACzE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;EAClC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;EACnG,IAAI,KAAK,GAAG,IAAI;EAChB,IAAI,MAAM,GAAI,KAAK,GAAG,MAAM,GAAI,MAAM;EACtC,IAAI,MAAM,GAAG,IAAI,EAAE;IACjB,MAAM,GAAG,IAAI;IACb,KAAK,GAAI,MAAM,GAAG,MAAM,GAAI,MAAM;EACpC;EACA,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;EACtC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;EACxC,OAAO;IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC;IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IAAE,KAAK;IAAE;EAAO,CAAC;AACnE,CAAC;AAED,OAAO,MAAM,kBAAkB,GAAG,CAAC,IAAmB,EAAE,SAAwB,EAAE,MAAuB,GAAG,MAAM,KAAoB;EACpI,IAAI,MAAM,KAAK,MAAM,EAAE;IACrB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACnD,OAAO;MAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;MAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;MAAE,KAAK;MAAE;IAAO,CAAC;EAC3F;EACA,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;EAClC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;EACnG,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;EAC/C,IAAI,MAAM,GAAI,KAAK,GAAG,MAAM,GAAI,MAAM;EACtC,IAAI,MAAM,GAAG,CAAC,EAAE;IACd,MAAM,GAAG,CAAC;IACV,KAAK,GAAI,MAAM,GAAG,MAAM,GAAI,MAAM;EACpC;EACA,OAAO;IAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;IAAE,KAAK;IAAE;EAAO,CAAC;AAC3F,CAAC;AAED,OAAO,MAAM,2BAA2B,GAAG,CACzC,IAAmB,EACnB,SAAwB,EACxB,MAAuB,EACvB,KAAa,KACK;EAClB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;EACtC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;EACvC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EACxC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;EAC7D,MAAM,MAAM,GACV,MAAM,KAAK,MAAM,GACb,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,GAC/C,KAAK,IAAI,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAI,WAAW,CAAC,MAAM,CAAC;EACvF,OAAO,kBAAkB,CAAC;IAAE,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,CAAC;IAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC;IAAE,KAAK;IAAE;EAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC;AAClH,CAAC;;AAED;AACA,OAAO,MAAM,yBAAyB,GAAG,CACvC,IAAmB,EACnB,SAAwB,EACxB,MAAuB,EACvB,MAA6B,EAC7B,EAAU,EACV,EAAU,KACQ;EAClB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;EACtC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;EACvC,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK;EACxD,MAAM,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM;EAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;EAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;EAE7D,IAAI,MAAM,KAAK,MAAM,EAAE;IACrB,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,aAAa,EAAE,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;IACrF,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,EAAE,aAAa,EAAE,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;IACxF,OAAO;MACL,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK;MACxC,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM;MAC1C,KAAK;MACL;IACF,CAAC;EACH;EAEA,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;EACnG,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;EAClC,MAAM,eAAe,GAAI,eAAe,GAAG,MAAM,GAAI,MAAM;EAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,cAAc,GAAG,eAAe;EACpI,MAAM,eAAe,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO;EACzD,MAAM,aAAa,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO;EACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,EAAG,aAAa,GAAG,MAAM,GAAI,MAAM,CAAC,CAAC;EAC1F,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAG,aAAa,GAAG,MAAM,GAAI,MAAM,CAAC,CAAC;EACnG,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC;EACtD,MAAM,MAAM,GAAI,KAAK,GAAG,MAAM,GAAI,MAAM;EAExC,OAAO;IACL,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK;IACxC,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM;IAC1C,KAAK;IACL;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAM,qBAAqB,GAAG,CAAC,IAAmB,EAAE,SAAwB,KAAK;EACtF,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC;EAC7C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC;EAC7C,OAAO;IACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;IAClC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACzF,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;EAC7F,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,OAAO,MAAuB,EAAE,KAAqB,EAAE,MAAuB,KAAK;EACjG,MAAM;IAAE;EAAI,CAAC,GAAG,MAAM,OAAO,qBAAqB,CAAC;EACnD,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;EACnC,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;EACjE,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,IAAI,CAAC,KAAK;IAAE,MAAM,EAAE,IAAI,CAAC;EAAO,CAAC,CAAC;EAC1F,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;EACpE,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE;IACjC,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;EACpE,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IACxH,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;EACvH;EACA,OAAO;IAAE,GAAG;IAAE;EAAK,CAAC;AACtB,CAAC;AAED,OAAO,MAAM,wBAAwB,GAAG,OACtC,MAAuB,EACvB,KAAqB,EACrB,MAAuB,GAAG,CAAC,CAAC,KACG;EAC/B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;EACnD,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACzC,CAAC;AAED,OAAO,MAAM,yBAAyB,GAAG,OACvC,MAAuB,EACvB,KAAqB,EACrB,MAAuB,GAAG,CAAC,CAAC,KACR;EACpB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;EACnD,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1F,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["inputs/index.ts"],"sourcesContent":["export type { AutocompleteEditorProps } from \"./AutocompleteEditor\";\nexport { AutocompleteEditor } from \"./AutocompleteEditor\";\nexport type {\n AutocompleteSelectOption,\n AutocompleteSelectProps,\n AutocompleteSelectSearchResult,\n} from \"./AutocompleteSelect\";\nexport { AutocompleteSelect } from \"./AutocompleteSelect\";\nexport type { CheckboxProps } from \"./Checkbox\";\nexport { Checkbox } from \"./Checkbox\";\nexport type { CheckboxCardProps } from \"./CheckboxCard\";\nexport { CheckboxCard } from \"./CheckboxCard\";\nexport type {\n ColorInputProps,\n PinInputProps,\n SliderProps,\n} from \"./ChoiceInputs\";\nexport { ColorInput, PinInput, Slider } from \"./ChoiceInputs\";\nexport type { ComboboxOption, ComboboxProps } from \"./Combobox\";\nexport { Combobox } from \"./Combobox\";\nexport type { ChoiceOption, ChoiceOptionsLoader } from \"./choice\";\nexport type {\n Completion,\n QueryContext,\n SuggestContext,\n Suggestion,\n} from \"./completion\";\nexport { abbreviations } from \"./completion\";\nexport type {\n DatePickerBaseProps,\n DatePickerProps,\n DatePreset,\n DateRangePickerProps,\n DateRangeValue,\n DateTimePickerProps,\n DurationPreset,\n} from \"./DatePicker\";\nexport { DatePicker, DateRangePicker, DateTimePicker } from \"./DatePicker\";\nexport type { FileDropzoneProps, ImageCropperProps, ImageInputProps } from \"./FileInputs\";\nexport { FileDropzone, ImageCropper, ImageInput } from \"./FileInputs\";\nexport type { DateContext, FieldProps, MaybeAccessor, ValueFieldProps } from \"./field-contract\";\nexport { DEFAULT_ICON_GROUPS, DEFAULT_ICON_OPTIONS } from \"./icon-options\";\nexport type {\n ImageCropAspect,\n ImageCropOutput,\n ImageCropRect,\n ImageCropRotation,\n ImageCropSize,\n ImageCropSource,\n ImageCropState,\n} from \"./image-crop\";\nexport {\n clampImageCropRect,\n createCroppedImageCanvas,\n createCroppedImageDataUrl,\n getInitialImageCropRect,\n imageCropRectToPixels,\n normalizeImageCropRotation,\n resizeImageCropAroundCenter,\n rotateImageCropRight,\n} from \"./image-crop\";\nexport type {\n MultiSelectFetchDataFn,\n MultiSelectInputProps,\n MultiSelectOption,\n} from \"./MultiSelectInput\";\nexport { MultiSelectInput } from \"./MultiSelectInput\";\nexport type { MarkdownEditorProps } from \"./markdown/MarkdownEditor\";\nexport { MarkdownEditor } from \"./markdown/MarkdownEditor\";\nexport type { NumberInputProps } from \"./NumberInput\";\nexport { NumberInput } from \"./NumberInput\";\nexport type { SelectGridSize, SelectGroup, SelectOption, SelectProps, SelectSourceOption, SelectView } from \"./Select\";\nexport { Select } from \"./Select\";\nexport type { SelectChipOption, SelectChipProps } from \"./SelectChip\";\nexport { SelectChip } from \"./SelectChip\";\nexport type { IconInputProps, IconOption } from \"./SpecialInputs\";\nexport { IconInput } from \"./SpecialInputs\";\nexport type { SwitchProps } from \"./Switch\";\nexport { Switch } from \"./Switch\";\nexport type { TagEditorItem, TagEditorLabels, TagEditorProps, TagEditorValue } from \"./TagEditor\";\nexport { TagEditor } from \"./TagEditor\";\nexport type { TagsInputProps } from \"./TagsInput\";\nexport { TagsInput } from \"./TagsInput\";\nexport type {\n TemplateEditorLayout,\n TemplateEditorProps,\n TemplatePreviewProps,\n TemplateSampleDataProps,\n TemplateVariable,\n TemplateVariableKind,\n} from \"./TemplateEditor\";\nexport {\n createTemplateEditorPanesLayout,\n TemplateEditor,\n TemplatePreview,\n TemplateSampleData,\n} from \"./TemplateEditor\";\nexport type { TextInputProps } from \"./TextInput\";\nexport { TextInput } from \"./TextInput\";\n"],"mappings":"AACA,SAAS,kBAAkB,QAAQ,sBAAsB;AAMzD,SAAS,kBAAkB,QAAQ,sBAAsB;AAEzD,SAAS,QAAQ,QAAQ,YAAY;AAErC,SAAS,YAAY,QAAQ,gBAAgB;AAM7C,SAAS,UAAU,EAAE,QAAQ,EAAE,MAAM,QAAQ,gBAAgB;AAE7D,SAAS,QAAQ,QAAQ,YAAY;AAQrC,SAAS,aAAa,QAAQ,cAAc;AAU5C,SAAS,UAAU,EAAE,eAAe,EAAE,cAAc,QAAQ,cAAc;AAE1E,SAAS,YAAY,EAAE,YAAY,EAAE,UAAU,QAAQ,cAAc;AAErE,SAAS,mBAAmB,EAAE,oBAAoB,QAAQ,gBAAgB;AAU1E,SACE,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,QACf,cAAc;AAMrB,SAAS,gBAAgB,QAAQ,oBAAoB;AAErD,SAAS,cAAc,QAAQ,2BAA2B;AAE1D,SAAS,WAAW,QAAQ,eAAe;AAE3C,SAAS,MAAM,QAAQ,UAAU;AAEjC,SAAS,UAAU,QAAQ,cAAc;AAEzC,SAAS,SAAS,QAAQ,iBAAiB;AAE3C,SAAS,MAAM,QAAQ,UAAU;AAEjC,SAAS,SAAS,QAAQ,aAAa;AAEvC,SAAS,SAAS,QAAQ,aAAa;AASvC,SACE,+BAA+B,EAC/B,cAAc,EACd,eAAe,EACf,kBAAkB,QACb,kBAAkB;AAEzB,SAAS,SAAS,QAAQ,aAAa","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ssrElement as _$ssrElement } from "solid-js/web";
|
|
2
2
|
import { mergeProps as _$mergeProps } from "solid-js/web";
|
|
3
|
+
import { memo as _$memo } from "solid-js/web";
|
|
3
4
|
import { ssrStyleProperty as _$ssrStyleProperty } from "solid-js/web";
|
|
4
5
|
import { createComponent as _$createComponent } from "solid-js/web";
|
|
5
6
|
import { ssr as _$ssr } from "solid-js/web";
|
|
@@ -445,7 +446,7 @@ export function MarkdownEditor(props) {
|
|
|
445
446
|
}
|
|
446
447
|
})), _$escape(_$createComponent(Show, {
|
|
447
448
|
get when() {
|
|
448
|
-
return
|
|
449
|
+
return _$memo(() => !!!localValue())() && props.placeholder;
|
|
449
450
|
},
|
|
450
451
|
get children() {
|
|
451
452
|
return _$ssr(_tmpl$2, _$escape(props.placeholder));
|
|
@@ -481,7 +482,7 @@ export function MarkdownEditor(props) {
|
|
|
481
482
|
}
|
|
482
483
|
}), undefined, false), _$escape(_$createComponent(Show, {
|
|
483
484
|
get when() {
|
|
484
|
-
return (props.showStats ?? true) && !props.disabled;
|
|
485
|
+
return _$memo(() => !!(props.showStats ?? true))() && !props.disabled;
|
|
485
486
|
},
|
|
486
487
|
get children() {
|
|
487
488
|
return _$ssr(_tmpl$3, _$ssrAttribute("data-empty", stats().chars === 0 ? "true" : _$escape(undefined, true), false), _$escape(stats().lines), stats().lines === 1 ? "line" : "lines", _$escape(stats().words), stats().words === 1 ? "word" : "words", _$escape(stats().chars), stats().chars === 1 ? "char" : "chars");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["highlight","createEffect","createMemo","createSignal","createUniqueId","For","onCleanup","onMount","Show","untrack","createFieldMeta","Field","fieldControlAria","useUiMessages","abbreviations","abbreviationsCompletion","buildSuggestContext","collectKnownLabels","createCompletionBehaviorState","detectQuery","displayLabel","renderWithOverlay","resolveSuggestions","resolveMaybeAccessor","computeActiveFormats","handleListContinuation","handleShortcut","handleSmartPaste","isInCodeZone","Toolbar","MarkdownEditor","props","messages","meta","id","textarea","preview","dropdown","completionAbort","completionTimer","overlayFrame","overlayInitialized","renderPendingOverlay","completionBehavior","textareaSignal","setTextareaSignal","activeFormats","setActiveFormats","Set","composing","setComposing","localValue","setLocalValue","value","error","state","setState","loading","setLoading","completionError","setCompletionError","dropdownOpen","setDropdownOpen","completionId","listboxId","controlId","optionId","index","activeSuggestion","current","suggestions","selectedIndex","mergedCompletions","merged","Object","keys","length","push","completions","undefined","knownLabels","incoming","target","labels","active","ghost","at","context","end","text","slice","anchor","innerHTML","markdown","scrollTop","scrollLeft","matches","positionDropdown","requestAnimationFrame","render","updateActiveFormats","closeDropdown","hidePopover","clearCompletion","abort","clearTimeout","isConnected","querySelector","rect","getBoundingClientRect","maxHeight","spaceBelow","window","innerHeight","bottom","openAbove","top","width","Math","min","innerWidth","left","style","setProperty","max","showPopover","isAbortError","DOMException","name","Boolean","applySuggestionList","normalized","toLowerCase","usable","filter","suggestion","textEdit","start","Number","isInteger","startsWith","previous","retained","findIndex","completion","queueMicrotask","runAsyncCompletion","promise","signal","aborted","Error","message","startCompletionResolution","result","query","kind","data","recomputeCompletion","isExcluded","AbortController","delay","debounceMs","setTimeout","retryCompletion","activateSuggestion","applied","applySuggestion","moveSelection","direction","stats","lines","split","words","match","chars","selectionChange","document","activeElement","reposition","addEventListener","removeEventListener","cancelAnimationFrame","reset","onInput","event","tryExpand","currentTarget","onValueChange","onKeyDown","isComposing","key","metaKey","ctrlKey","altKey","shiftKey","tryRestore","preventDefault","dropdownCompletion","blur","onSubmit","saveControls","_$createComponent","when","onSave","children","_$ssr","_tmpl$","_$ssrAttribute","_$escape","saveShortcut","save","disabled","saveDisabled","saving","saved","class","label","description","fill","required","_tmpl$6","labelId","variant","_$ssrStyleProperty","String","noToolbar","trailing","toolbarTrailing","onClose","_tmpl$7","close","placeholder","_tmpl$2","_$ssrElement","_$mergeProps","spellcheck","maxLength","aria-controls","aria-activedescendant","showStats","_tmpl$3","_tmpl$5","completionSuggestions","_tmpl$4","_tmpl$8","retry","each","_tmpl$9","hint","_tmpl$0"],"sources":["inputs/markdown/MarkdownEditor.tsx"],"sourcesContent":["import { highlight } from \"@k2b/stdlib\";\nimport { createEffect, createMemo, createSignal, createUniqueId, For, type JSX, onCleanup, onMount, Show, untrack } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../../internal/field\";\nimport { useUiMessages } from \"../../intl/messages\";\nimport {\n abbreviations as abbreviationsCompletion,\n buildSuggestContext,\n type Completion,\n collectKnownLabels,\n createCompletionBehaviorState,\n detectQuery,\n displayLabel,\n type QueryContext,\n renderWithOverlay,\n resolveSuggestions,\n type Suggestion,\n} from \"../completion\";\nimport type { ValueFieldProps } from \"../field-contract\";\nimport { resolveMaybeAccessor } from \"../field-contract\";\nimport { computeActiveFormats } from \"./active-formats\";\nimport { handleListContinuation, handleShortcut, handleSmartPaste } from \"./behaviors\";\nimport { isInCodeZone } from \"./code-zone\";\nimport Toolbar from \"./Toolbar\";\n\nexport type MarkdownEditorProps = ValueFieldProps<string> & {\n onSubmit?: () => void;\n placeholder?: string;\n lines?: number;\n noToolbar?: boolean;\n spellcheck?: boolean;\n name?: string;\n maxLength?: number;\n textareaRef?: (element: HTMLTextAreaElement) => void;\n abbreviations?: Record<string, string>;\n completions?: readonly Completion[];\n showStats?: boolean;\n variant?: \"default\" | \"paper\" | \"embedded\";\n fill?: boolean;\n /** Groups save and close at the end of the toolbar. The caller owns navigation and unsaved-change confirmation. */\n onClose?: () => void;\n onSave?: () => void;\n saveDisabled?: boolean;\n saving?: boolean;\n /** Shows a successful-save check. The caller clears it after a brief delay or the next edit. */\n saved?: boolean;\n toolbarTrailing?: JSX.Element;\n};\n\ntype CompletionState = {\n context: QueryContext;\n suggestions: readonly Suggestion[];\n selectedIndex: number;\n};\n\nexport function MarkdownEditor(props: MarkdownEditorProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n let textarea: HTMLTextAreaElement | undefined;\n let preview: HTMLDivElement | undefined;\n let dropdown: HTMLDivElement | undefined;\n let completionAbort: AbortController | null = null;\n let completionTimer: ReturnType<typeof setTimeout> | null = null;\n let overlayFrame: number | undefined;\n let overlayInitialized = false;\n let renderPendingOverlay: (() => void) | undefined;\n const completionBehavior = createCompletionBehaviorState();\n\n const [textareaSignal, setTextareaSignal] = createSignal<HTMLTextAreaElement | null>(null);\n const [activeFormats, setActiveFormats] = createSignal<Set<string>>(new Set());\n const [composing, setComposing] = createSignal(false);\n const [localValue, setLocalValue] = createSignal(resolveMaybeAccessor(props.value) ?? \"\");\n const error = () => resolveMaybeAccessor(props.error);\n const [state, setState] = createSignal<CompletionState | null>(null);\n const [loading, setLoading] = createSignal(false);\n const [completionError, setCompletionError] = createSignal<string | null>(null);\n const [dropdownOpen, setDropdownOpen] = createSignal(false);\n const completionId = createUniqueId();\n const listboxId = `${meta.controlId}-${completionId}-suggestions`;\n const optionId = (index: number): string => `${listboxId}-${index}`;\n const activeSuggestion = (): Suggestion | null => {\n const current = state();\n return current?.suggestions[current.selectedIndex] ?? null;\n };\n\n const mergedCompletions = createMemo<readonly Completion[] | undefined>(() => {\n const merged: Completion[] = [];\n if (props.abbreviations && Object.keys(props.abbreviations).length > 0) {\n merged.push(abbreviationsCompletion(props.abbreviations));\n }\n if (props.completions) merged.push(...props.completions);\n return merged.length > 0 ? merged : undefined;\n });\n const knownLabels = createMemo(() => collectKnownLabels(mergedCompletions()));\n\n createEffect(() => {\n const incoming = resolveMaybeAccessor(props.value);\n if (incoming !== undefined && incoming !== null && incoming !== untrack(localValue)) {\n setLocalValue(incoming);\n }\n });\n\n createEffect(() => {\n const target = localValue();\n if (!composing() && textarea && textarea.value !== target) {\n textarea.value = target;\n }\n });\n\n createEffect(() => {\n if (!preview) return;\n const value = localValue();\n const labels = knownLabels();\n const current = state();\n const active = activeSuggestion();\n const ghost =\n current && active\n ? {\n at: current.context.end,\n text: active.text.slice(current.context.text.length),\n }\n : undefined;\n const anchor = current && !ghost ? { at: current.context.end } : undefined;\n renderPendingOverlay = () => {\n if (!preview) return;\n preview.innerHTML = renderWithOverlay(value, (text) => highlight.markdown(text, { knownLabels: labels }), { ghost, anchor });\n if (textarea) {\n preview.scrollTop = textarea.scrollTop;\n preview.scrollLeft = textarea.scrollLeft;\n }\n if (dropdown?.matches(\":popover-open\")) positionDropdown();\n };\n if (!overlayInitialized) {\n overlayInitialized = true;\n renderPendingOverlay();\n renderPendingOverlay = undefined;\n return;\n }\n if (overlayFrame !== undefined) return;\n overlayFrame = requestAnimationFrame(() => {\n overlayFrame = undefined;\n const render = renderPendingOverlay;\n renderPendingOverlay = undefined;\n render?.();\n });\n });\n\n const updateActiveFormats = (): void => {\n if (textarea) setActiveFormats(computeActiveFormats(textarea));\n };\n\n const closeDropdown = (): void => {\n if (dropdown?.matches(\":popover-open\")) dropdown.hidePopover();\n setDropdownOpen(false);\n };\n\n const clearCompletion = (): void => {\n completionAbort?.abort();\n completionAbort = null;\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n setState(null);\n setLoading(false);\n setCompletionError(null);\n closeDropdown();\n };\n\n const positionDropdown = (): void => {\n if (!dropdown?.isConnected || !preview?.isConnected || !textarea?.isConnected) {\n return;\n }\n const anchor = preview.querySelector<HTMLElement>(\"[data-completion-anchor]\");\n const rect = anchor?.getBoundingClientRect() ?? textarea.getBoundingClientRect();\n const maxHeight = 260;\n const spaceBelow = window.innerHeight - rect.bottom;\n const openAbove = spaceBelow < maxHeight && rect.top > spaceBelow;\n const width = Math.min(280, window.innerWidth - 16);\n const left = Math.min(rect.left, window.innerWidth - width - 8);\n dropdown.style.setProperty(\"left\", `${Math.max(8, left)}px`, \"important\");\n dropdown.style.setProperty(\"width\", `${width}px`, \"important\");\n if (openAbove) {\n dropdown.style.setProperty(\"top\", \"auto\", \"important\");\n dropdown.style.setProperty(\"bottom\", `${window.innerHeight - rect.top + 4}px`, \"important\");\n } else {\n dropdown.style.setProperty(\"top\", `${rect.bottom + 4}px`, \"important\");\n dropdown.style.setProperty(\"bottom\", \"auto\", \"important\");\n }\n if (!dropdown.matches(\":popover-open\")) dropdown.showPopover();\n };\n\n const isAbortError = (error: unknown): boolean =>\n error instanceof DOMException\n ? error.name === \"AbortError\"\n : Boolean(error && typeof error === \"object\" && \"name\" in error && (error as { name: string }).name === \"AbortError\");\n\n const applySuggestionList = (context: QueryContext, suggestions: readonly Suggestion[]): void => {\n const value = localValue();\n const normalized = context.text.toLowerCase();\n const usable = suggestions.filter((suggestion) => {\n if (suggestion.textEdit) {\n const { start, end, text } = suggestion.textEdit;\n return (\n Number.isInteger(start) &&\n Number.isInteger(end) &&\n start >= 0 &&\n end >= start &&\n end <= value.length &&\n value.slice(start, end) !== text\n );\n }\n return suggestion.text.toLowerCase().startsWith(normalized) && suggestion.text.length > context.text.length;\n });\n if (usable.length === 0) {\n setState(null);\n closeDropdown();\n return;\n }\n const previous = activeSuggestion()?.text;\n const retained = previous ? usable.findIndex((suggestion) => suggestion.text === previous) : -1;\n setState({\n context,\n suggestions: usable,\n selectedIndex: retained >= 0 ? retained : 0,\n });\n if (context.completion.dropdown) {\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n } else {\n closeDropdown();\n }\n };\n\n const runAsyncCompletion = async (context: QueryContext, promise: Promise<readonly Suggestion[]>, signal: AbortSignal): Promise<void> => {\n try {\n const suggestions = await promise;\n if (signal.aborted) return;\n setLoading(false);\n applySuggestionList(context, suggestions);\n } catch (error) {\n if (signal.aborted || isAbortError(error)) return;\n setLoading(false);\n setState(null);\n setCompletionError(error instanceof Error ? error.message : \"Suggestions could not be loaded\");\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n }\n };\n\n const startCompletionResolution = (context: QueryContext, signal: AbortSignal): void => {\n if (signal.aborted || !textarea) return;\n setLoading(true);\n setCompletionError(null);\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n try {\n const result = resolveSuggestions(context.completion, context.query, buildSuggestContext(textarea, context), signal);\n if (result.kind === \"sync\") {\n setLoading(false);\n applySuggestionList(context, result.data);\n } else {\n void runAsyncCompletion(context, result.promise, signal);\n }\n } catch (error) {\n if (signal.aborted || isAbortError(error)) return;\n setLoading(false);\n setState(null);\n setCompletionError(error instanceof Error ? error.message : \"Suggestions could not be loaded\");\n queueMicrotask(positionDropdown);\n }\n };\n\n const recomputeCompletion = (): void => {\n if (!textarea) return;\n const context = detectQuery(textarea, mergedCompletions(), {\n isExcluded: isInCodeZone,\n });\n if (!context) {\n clearCompletion();\n return;\n }\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n completionAbort = new AbortController();\n const current = state();\n if (\n current &&\n (current.context.start !== context.start ||\n current.context.end !== context.end ||\n current.context.text !== context.text ||\n current.context.completion !== context.completion)\n ) {\n setState(null);\n closeDropdown();\n }\n setCompletionError(null);\n const delay = Math.max(0, context.completion.debounceMs ?? 0);\n if (delay === 0) {\n startCompletionResolution(context, completionAbort.signal);\n } else {\n setLoading(false);\n if (!state()) closeDropdown();\n const signal = completionAbort.signal;\n completionTimer = setTimeout(() => {\n completionTimer = null;\n startCompletionResolution(context, signal);\n }, delay);\n }\n };\n\n const retryCompletion = (): void => {\n if (!textarea) return;\n const context = detectQuery(textarea, mergedCompletions(), {\n isExcluded: isInCodeZone,\n });\n if (!context) return clearCompletion();\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n completionAbort = new AbortController();\n startCompletionResolution(context, completionAbort.signal);\n };\n\n const activateSuggestion = (index = state()?.selectedIndex ?? -1): boolean => {\n const current = state();\n const active = current?.suggestions[index];\n if (!textarea || !current || !active) return false;\n if (!active.textEdit && active.text === current.context.text) {\n closeDropdown();\n setState(null);\n return false;\n }\n const applied = completionBehavior.applySuggestion(textarea, current.context, active);\n closeDropdown();\n setState(null);\n return applied;\n };\n\n const moveSelection = (direction: 1 | -1): void => {\n const current = state();\n if (!current || current.suggestions.length === 0) return;\n setState({\n ...current,\n selectedIndex: (current.selectedIndex + direction + current.suggestions.length) % current.suggestions.length,\n });\n };\n\n const stats = createMemo(() => {\n const value = localValue();\n return {\n lines: value.length === 0 ? 0 : value.split(\"\\n\").length,\n words: value.match(/\\S+/g)?.length ?? 0,\n chars: value.length,\n };\n });\n\n onMount(() => {\n if (textarea) setTextareaSignal(textarea);\n updateActiveFormats();\n const selectionChange = (): void => {\n if (document.activeElement === textarea) {\n updateActiveFormats();\n recomputeCompletion();\n }\n };\n // Reposition an OPEN popover only. Calling `positionDropdown` blindly\n // would `showPopover()` a dropdown that is deliberately closed (a\n // ghost-only completion keeps state without a dropdown).\n const reposition = (): void => {\n if (dropdown?.matches(\":popover-open\")) positionDropdown();\n };\n document.addEventListener(\"selectionchange\", selectionChange);\n window.addEventListener(\"resize\", reposition);\n onCleanup(() => {\n document.removeEventListener(\"selectionchange\", selectionChange);\n window.removeEventListener(\"resize\", reposition);\n if (dropdown?.matches(\":popover-open\")) dropdown.hidePopover();\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n if (overlayFrame !== undefined) cancelAnimationFrame(overlayFrame);\n overlayFrame = undefined;\n renderPendingOverlay = undefined;\n completionBehavior.reset();\n });\n });\n\n const onInput = (event: InputEvent & { currentTarget: HTMLTextAreaElement }): void => {\n if (\n completionBehavior.tryExpand(event.currentTarget, mergedCompletions(), {\n isExcluded: isInCodeZone,\n })\n ) {\n return;\n }\n setLocalValue(event.currentTarget.value);\n props.onValueChange?.(event.currentTarget.value);\n updateActiveFormats();\n recomputeCompletion();\n };\n\n const onKeyDown = (event: KeyboardEvent): void => {\n if (!textarea || event.isComposing) return;\n if (\n event.key === \"Backspace\" &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.altKey &&\n !event.shiftKey &&\n completionBehavior.tryRestore(textarea)\n ) {\n event.preventDefault();\n return;\n }\n const current = state();\n const dropdownCompletion = current?.context.completion.dropdown === true;\n if (current && dropdownCompletion && (event.key === \"ArrowDown\" || event.key === \"ArrowUp\")) {\n event.preventDefault();\n moveSelection(event.key === \"ArrowDown\" ? 1 : -1);\n return;\n }\n if (\n event.key === \"Enter\" &&\n !event.shiftKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.altKey &&\n current &&\n dropdownCompletion &&\n dropdownOpen()\n ) {\n event.preventDefault();\n activateSuggestion();\n return;\n }\n if (event.key === \"Tab\" && !event.shiftKey && !event.metaKey && !event.ctrlKey && !event.altKey && current) {\n event.preventDefault();\n activateSuggestion();\n return;\n }\n if (event.key === \"Escape\") {\n if (current) {\n event.preventDefault();\n closeDropdown();\n setState(null);\n return;\n }\n if ((mergedCompletions()?.length ?? 0) > 0) {\n event.preventDefault();\n textarea.blur();\n return;\n }\n }\n if (event.key === \"Enter\" && (event.metaKey || event.ctrlKey) && props.onSubmit) {\n event.preventDefault();\n props.onSubmit();\n return;\n }\n if (handleShortcut(event, textarea)) {\n event.preventDefault();\n return;\n }\n if (event.key === \"Enter\" && !event.shiftKey && !event.metaKey && !event.ctrlKey && !event.altKey && handleListContinuation(textarea)) {\n event.preventDefault();\n }\n };\n\n const saveControls = (): JSX.Element => (\n <>\n <Show when={props.onSave}>\n <button\n type=\"button\"\n class=\"k2b-markdown-editor__tool\"\n title={messages().saveShortcut}\n aria-label={messages().save}\n tabIndex={-1}\n disabled={props.disabled || props.saveDisabled || props.saving}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => props.onSave?.()}\n >\n <i class={props.saving ? \"ti ti-loader-2 k2b-spin\" : props.saved ? \"ti ti-check\" : \"ti ti-device-floppy\"} aria-hidden=\"true\" />\n </button>\n </Show>\n </>\n );\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={props.error}\n fill={props.fill}\n meta={meta}\n required={props.required}\n disabled={props.disabled}\n >\n <div\n class=\"k2b-markdown-editor\"\n role=\"group\"\n aria-labelledby={props.label ? meta.labelId : undefined}\n aria-label={!props.label ? props[\"aria-label\"] : undefined}\n data-disabled={props.disabled ? \"true\" : undefined}\n data-invalid={error() ? \"true\" : undefined}\n data-variant={props.variant === \"default\" ? undefined : props.variant}\n data-fill={props.fill ? \"true\" : undefined}\n style={{\n \"--k2b-editor-lines\": String(props.lines ?? 6),\n }}\n onKeyDown={(event) => {\n if (props.onSave && (event.metaKey || event.ctrlKey) && event.key.toLowerCase() === \"s\") {\n event.preventDefault();\n if (!props.disabled && !props.saveDisabled && !props.saving) props.onSave();\n }\n }}\n >\n <Show when={!props.noToolbar}>\n <Toolbar\n textarea={textareaSignal}\n activeFormats={activeFormats}\n disabled={props.disabled}\n trailing={\n <>\n {props.toolbarTrailing}\n {saveControls()}\n <Show when={props.onClose}>\n <button\n type=\"button\"\n class=\"k2b-markdown-editor__tool\"\n title={messages().close}\n aria-label={messages().close}\n tabIndex={props.disabled ? 0 : -1}\n onClick={() => props.onClose?.()}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </>\n }\n />\n </Show>\n <div class=\"k2b-markdown-editor__surface\">\n <Show when={!localValue() && props.placeholder}>\n <div class=\"k2b-markdown-editor__placeholder\" aria-hidden=\"true\">\n {props.placeholder}\n </div>\n </Show>\n <div ref={preview} class=\"k2b-markdown-editor__preview\" aria-hidden=\"true\" />\n <textarea\n ref={(element) => {\n textarea = element;\n props.textareaRef?.(element);\n }}\n id={meta.controlId}\n name={props.name}\n class=\"k2b-markdown-editor__input\"\n onInput={onInput}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n onKeyDown={onKeyDown}\n onPaste={(event) => {\n if (textarea && handleSmartPaste(event, textarea)) {\n event.preventDefault();\n }\n }}\n onScroll={(event) => {\n if (preview) {\n preview.scrollTop = event.currentTarget.scrollTop;\n preview.scrollLeft = event.currentTarget.scrollLeft;\n }\n }}\n onCompositionStart={() => setComposing(true)}\n onCompositionEnd={() => setComposing(false)}\n onBlur={(event) => {\n const next = event.relatedTarget as HTMLElement | null;\n if (next && dropdown?.contains(next)) return;\n completionBehavior.reset();\n clearCompletion();\n }}\n disabled={props.disabled}\n required={props.required}\n spellcheck={props.spellcheck ?? true}\n maxLength={props.maxLength}\n {...fieldControlAria(meta, props)}\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-controls={dropdownOpen() ? listboxId : undefined}\n aria-activedescendant={dropdownOpen() && state() ? optionId(state()!.selectedIndex) : undefined}\n />\n </div>\n <Show when={(props.showStats ?? true) && !props.disabled}>\n <div class=\"k2b-markdown-editor__stats\" aria-hidden=\"true\" data-empty={stats().chars === 0 ? \"true\" : undefined}>\n <span>\n {stats().lines} {stats().lines === 1 ? \"line\" : \"lines\"}\n </span>\n <span>\n {stats().words} {stats().words === 1 ? \"word\" : \"words\"}\n </span>\n <span>\n {stats().chars} {stats().chars === 1 ? \"char\" : \"chars\"}\n </span>\n </div>\n </Show>\n <Show when={state() || loading() || completionError()}>\n <div\n ref={dropdown}\n popover=\"manual\"\n class=\"k2b-autocomplete__options\"\n role=\"presentation\"\n aria-label={messages().completionSuggestions}\n >\n <div id={listboxId} class=\"k2b-autocomplete__listbox\" role=\"listbox\" aria-label={messages().suggestions}>\n <Show when={loading()}>\n <div class=\"k2b-autocomplete__status\" role=\"status\">\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />\n Loading suggestions\n </div>\n </Show>\n <Show when={completionError()}>\n {(message) => (\n <div class=\"k2b-autocomplete__status\" data-error=\"true\" role=\"alert\">\n <i class=\"ti ti-alert-circle\" aria-hidden=\"true\" />\n <span>{message()}</span>\n <button type=\"button\" onMouseDown={(event) => event.preventDefault()} onClick={retryCompletion}>\n {messages().retry}\n </button>\n </div>\n )}\n </Show>\n <For each={state()?.suggestions ?? []}>\n {(suggestion, index) => (\n // biome-ignore lint/a11y/useKeyWithClickEvents: the owning textarea handles keyboard activation through aria-activedescendant.\n <div\n id={optionId(index())}\n class=\"k2b-autocomplete__option\"\n role=\"option\"\n aria-selected={index() === state()?.selectedIndex}\n onMouseEnter={() => {\n const current = state();\n if (current) {\n setState({ ...current, selectedIndex: index() });\n }\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n }}\n onClick={() => {\n activateSuggestion(index());\n textarea?.focus();\n }}\n >\n <span>{displayLabel(suggestion, state()!.context.completion)}</span>\n <Show when={suggestion.hint}>{(hint) => <small>{hint()}</small>}</Show>\n </div>\n )}\n </For>\n </div>\n </div>\n </Show>\n </div>\n </Field>\n );\n}\n\nexport type { Completion, SuggestContext, Suggestion } from \"../completion\";\nexport { abbreviations } from \"../completion\";\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["inputs/markdown/MarkdownEditor.tsx"],"sourcesContent":["import { highlight } from \"@k2b/stdlib\";\nimport { createEffect, createMemo, createSignal, createUniqueId, For, type JSX, onCleanup, onMount, Show, untrack } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../../internal/field\";\nimport { useUiMessages } from \"../../intl/messages\";\nimport {\n abbreviations as abbreviationsCompletion,\n buildSuggestContext,\n type Completion,\n collectKnownLabels,\n createCompletionBehaviorState,\n detectQuery,\n displayLabel,\n type QueryContext,\n renderWithOverlay,\n resolveSuggestions,\n type Suggestion,\n} from \"../completion\";\nimport type { ValueFieldProps } from \"../field-contract\";\nimport { resolveMaybeAccessor } from \"../field-contract\";\nimport { computeActiveFormats } from \"./active-formats\";\nimport { handleListContinuation, handleShortcut, handleSmartPaste } from \"./behaviors\";\nimport { isInCodeZone } from \"./code-zone\";\nimport Toolbar from \"./Toolbar\";\n\nexport type MarkdownEditorProps = ValueFieldProps<string> & {\n onSubmit?: () => void;\n placeholder?: string;\n lines?: number;\n noToolbar?: boolean;\n spellcheck?: boolean;\n name?: string;\n maxLength?: number;\n textareaRef?: (element: HTMLTextAreaElement) => void;\n abbreviations?: Record<string, string>;\n completions?: readonly Completion[];\n showStats?: boolean;\n variant?: \"default\" | \"paper\" | \"embedded\";\n fill?: boolean;\n /** Groups save and close at the end of the toolbar. The caller owns navigation and unsaved-change confirmation. */\n onClose?: () => void;\n onSave?: () => void;\n saveDisabled?: boolean;\n saving?: boolean;\n /** Shows a successful-save check. The caller clears it after a brief delay or the next edit. */\n saved?: boolean;\n toolbarTrailing?: JSX.Element;\n};\n\ntype CompletionState = {\n context: QueryContext;\n suggestions: readonly Suggestion[];\n selectedIndex: number;\n};\n\nexport function MarkdownEditor(props: MarkdownEditorProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n let textarea: HTMLTextAreaElement | undefined;\n let preview: HTMLDivElement | undefined;\n let dropdown: HTMLDivElement | undefined;\n let completionAbort: AbortController | null = null;\n let completionTimer: ReturnType<typeof setTimeout> | null = null;\n let overlayFrame: number | undefined;\n let overlayInitialized = false;\n let renderPendingOverlay: (() => void) | undefined;\n const completionBehavior = createCompletionBehaviorState();\n\n const [textareaSignal, setTextareaSignal] = createSignal<HTMLTextAreaElement | null>(null);\n const [activeFormats, setActiveFormats] = createSignal<Set<string>>(new Set());\n const [composing, setComposing] = createSignal(false);\n const [localValue, setLocalValue] = createSignal(resolveMaybeAccessor(props.value) ?? \"\");\n const error = () => resolveMaybeAccessor(props.error);\n const [state, setState] = createSignal<CompletionState | null>(null);\n const [loading, setLoading] = createSignal(false);\n const [completionError, setCompletionError] = createSignal<string | null>(null);\n const [dropdownOpen, setDropdownOpen] = createSignal(false);\n const completionId = createUniqueId();\n const listboxId = `${meta.controlId}-${completionId}-suggestions`;\n const optionId = (index: number): string => `${listboxId}-${index}`;\n const activeSuggestion = (): Suggestion | null => {\n const current = state();\n return current?.suggestions[current.selectedIndex] ?? null;\n };\n\n const mergedCompletions = createMemo<readonly Completion[] | undefined>(() => {\n const merged: Completion[] = [];\n if (props.abbreviations && Object.keys(props.abbreviations).length > 0) {\n merged.push(abbreviationsCompletion(props.abbreviations));\n }\n if (props.completions) merged.push(...props.completions);\n return merged.length > 0 ? merged : undefined;\n });\n const knownLabels = createMemo(() => collectKnownLabels(mergedCompletions()));\n\n createEffect(() => {\n const incoming = resolveMaybeAccessor(props.value);\n if (incoming !== undefined && incoming !== null && incoming !== untrack(localValue)) {\n setLocalValue(incoming);\n }\n });\n\n createEffect(() => {\n const target = localValue();\n if (!composing() && textarea && textarea.value !== target) {\n textarea.value = target;\n }\n });\n\n createEffect(() => {\n if (!preview) return;\n const value = localValue();\n const labels = knownLabels();\n const current = state();\n const active = activeSuggestion();\n const ghost =\n current && active\n ? {\n at: current.context.end,\n text: active.text.slice(current.context.text.length),\n }\n : undefined;\n const anchor = current && !ghost ? { at: current.context.end } : undefined;\n renderPendingOverlay = () => {\n if (!preview) return;\n preview.innerHTML = renderWithOverlay(value, (text) => highlight.markdown(text, { knownLabels: labels }), { ghost, anchor });\n if (textarea) {\n preview.scrollTop = textarea.scrollTop;\n preview.scrollLeft = textarea.scrollLeft;\n }\n if (dropdown?.matches(\":popover-open\")) positionDropdown();\n };\n if (!overlayInitialized) {\n overlayInitialized = true;\n renderPendingOverlay();\n renderPendingOverlay = undefined;\n return;\n }\n if (overlayFrame !== undefined) return;\n overlayFrame = requestAnimationFrame(() => {\n overlayFrame = undefined;\n const render = renderPendingOverlay;\n renderPendingOverlay = undefined;\n render?.();\n });\n });\n\n const updateActiveFormats = (): void => {\n if (textarea) setActiveFormats(computeActiveFormats(textarea));\n };\n\n const closeDropdown = (): void => {\n if (dropdown?.matches(\":popover-open\")) dropdown.hidePopover();\n setDropdownOpen(false);\n };\n\n const clearCompletion = (): void => {\n completionAbort?.abort();\n completionAbort = null;\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n setState(null);\n setLoading(false);\n setCompletionError(null);\n closeDropdown();\n };\n\n const positionDropdown = (): void => {\n if (!dropdown?.isConnected || !preview?.isConnected || !textarea?.isConnected) {\n return;\n }\n const anchor = preview.querySelector<HTMLElement>(\"[data-completion-anchor]\");\n const rect = anchor?.getBoundingClientRect() ?? textarea.getBoundingClientRect();\n const maxHeight = 260;\n const spaceBelow = window.innerHeight - rect.bottom;\n const openAbove = spaceBelow < maxHeight && rect.top > spaceBelow;\n const width = Math.min(280, window.innerWidth - 16);\n const left = Math.min(rect.left, window.innerWidth - width - 8);\n dropdown.style.setProperty(\"left\", `${Math.max(8, left)}px`, \"important\");\n dropdown.style.setProperty(\"width\", `${width}px`, \"important\");\n if (openAbove) {\n dropdown.style.setProperty(\"top\", \"auto\", \"important\");\n dropdown.style.setProperty(\"bottom\", `${window.innerHeight - rect.top + 4}px`, \"important\");\n } else {\n dropdown.style.setProperty(\"top\", `${rect.bottom + 4}px`, \"important\");\n dropdown.style.setProperty(\"bottom\", \"auto\", \"important\");\n }\n if (!dropdown.matches(\":popover-open\")) dropdown.showPopover();\n };\n\n const isAbortError = (error: unknown): boolean =>\n error instanceof DOMException\n ? error.name === \"AbortError\"\n : Boolean(error && typeof error === \"object\" && \"name\" in error && (error as { name: string }).name === \"AbortError\");\n\n const applySuggestionList = (context: QueryContext, suggestions: readonly Suggestion[]): void => {\n const value = localValue();\n const normalized = context.text.toLowerCase();\n const usable = suggestions.filter((suggestion) => {\n if (suggestion.textEdit) {\n const { start, end, text } = suggestion.textEdit;\n return (\n Number.isInteger(start) &&\n Number.isInteger(end) &&\n start >= 0 &&\n end >= start &&\n end <= value.length &&\n value.slice(start, end) !== text\n );\n }\n return suggestion.text.toLowerCase().startsWith(normalized) && suggestion.text.length > context.text.length;\n });\n if (usable.length === 0) {\n setState(null);\n closeDropdown();\n return;\n }\n const previous = activeSuggestion()?.text;\n const retained = previous ? usable.findIndex((suggestion) => suggestion.text === previous) : -1;\n setState({\n context,\n suggestions: usable,\n selectedIndex: retained >= 0 ? retained : 0,\n });\n if (context.completion.dropdown) {\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n } else {\n closeDropdown();\n }\n };\n\n const runAsyncCompletion = async (context: QueryContext, promise: Promise<readonly Suggestion[]>, signal: AbortSignal): Promise<void> => {\n try {\n const suggestions = await promise;\n if (signal.aborted) return;\n setLoading(false);\n applySuggestionList(context, suggestions);\n } catch (error) {\n if (signal.aborted || isAbortError(error)) return;\n setLoading(false);\n setState(null);\n setCompletionError(error instanceof Error ? error.message : \"Suggestions could not be loaded\");\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n }\n };\n\n const startCompletionResolution = (context: QueryContext, signal: AbortSignal): void => {\n if (signal.aborted || !textarea) return;\n setLoading(true);\n setCompletionError(null);\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n try {\n const result = resolveSuggestions(context.completion, context.query, buildSuggestContext(textarea, context), signal);\n if (result.kind === \"sync\") {\n setLoading(false);\n applySuggestionList(context, result.data);\n } else {\n void runAsyncCompletion(context, result.promise, signal);\n }\n } catch (error) {\n if (signal.aborted || isAbortError(error)) return;\n setLoading(false);\n setState(null);\n setCompletionError(error instanceof Error ? error.message : \"Suggestions could not be loaded\");\n queueMicrotask(positionDropdown);\n }\n };\n\n const recomputeCompletion = (): void => {\n if (!textarea) return;\n const context = detectQuery(textarea, mergedCompletions(), {\n isExcluded: isInCodeZone,\n });\n if (!context) {\n clearCompletion();\n return;\n }\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n completionAbort = new AbortController();\n const current = state();\n if (\n current &&\n (current.context.start !== context.start ||\n current.context.end !== context.end ||\n current.context.text !== context.text ||\n current.context.completion !== context.completion)\n ) {\n setState(null);\n closeDropdown();\n }\n setCompletionError(null);\n const delay = Math.max(0, context.completion.debounceMs ?? 0);\n if (delay === 0) {\n startCompletionResolution(context, completionAbort.signal);\n } else {\n setLoading(false);\n if (!state()) closeDropdown();\n const signal = completionAbort.signal;\n completionTimer = setTimeout(() => {\n completionTimer = null;\n startCompletionResolution(context, signal);\n }, delay);\n }\n };\n\n const retryCompletion = (): void => {\n if (!textarea) return;\n const context = detectQuery(textarea, mergedCompletions(), {\n isExcluded: isInCodeZone,\n });\n if (!context) return clearCompletion();\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n completionAbort = new AbortController();\n startCompletionResolution(context, completionAbort.signal);\n };\n\n const activateSuggestion = (index = state()?.selectedIndex ?? -1): boolean => {\n const current = state();\n const active = current?.suggestions[index];\n if (!textarea || !current || !active) return false;\n if (!active.textEdit && active.text === current.context.text) {\n closeDropdown();\n setState(null);\n return false;\n }\n const applied = completionBehavior.applySuggestion(textarea, current.context, active);\n closeDropdown();\n setState(null);\n return applied;\n };\n\n const moveSelection = (direction: 1 | -1): void => {\n const current = state();\n if (!current || current.suggestions.length === 0) return;\n setState({\n ...current,\n selectedIndex: (current.selectedIndex + direction + current.suggestions.length) % current.suggestions.length,\n });\n };\n\n const stats = createMemo(() => {\n const value = localValue();\n return {\n lines: value.length === 0 ? 0 : value.split(\"\\n\").length,\n words: value.match(/\\S+/g)?.length ?? 0,\n chars: value.length,\n };\n });\n\n onMount(() => {\n if (textarea) setTextareaSignal(textarea);\n updateActiveFormats();\n const selectionChange = (): void => {\n if (document.activeElement === textarea) {\n updateActiveFormats();\n recomputeCompletion();\n }\n };\n // Reposition an OPEN popover only. Calling `positionDropdown` blindly\n // would `showPopover()` a dropdown that is deliberately closed (a\n // ghost-only completion keeps state without a dropdown).\n const reposition = (): void => {\n if (dropdown?.matches(\":popover-open\")) positionDropdown();\n };\n document.addEventListener(\"selectionchange\", selectionChange);\n window.addEventListener(\"resize\", reposition);\n onCleanup(() => {\n document.removeEventListener(\"selectionchange\", selectionChange);\n window.removeEventListener(\"resize\", reposition);\n if (dropdown?.matches(\":popover-open\")) dropdown.hidePopover();\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n if (overlayFrame !== undefined) cancelAnimationFrame(overlayFrame);\n overlayFrame = undefined;\n renderPendingOverlay = undefined;\n completionBehavior.reset();\n });\n });\n\n const onInput = (event: InputEvent & { currentTarget: HTMLTextAreaElement }): void => {\n if (\n completionBehavior.tryExpand(event.currentTarget, mergedCompletions(), {\n isExcluded: isInCodeZone,\n })\n ) {\n return;\n }\n setLocalValue(event.currentTarget.value);\n props.onValueChange?.(event.currentTarget.value);\n updateActiveFormats();\n recomputeCompletion();\n };\n\n const onKeyDown = (event: KeyboardEvent): void => {\n if (!textarea || event.isComposing) return;\n if (\n event.key === \"Backspace\" &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.altKey &&\n !event.shiftKey &&\n completionBehavior.tryRestore(textarea)\n ) {\n event.preventDefault();\n return;\n }\n const current = state();\n const dropdownCompletion = current?.context.completion.dropdown === true;\n if (current && dropdownCompletion && (event.key === \"ArrowDown\" || event.key === \"ArrowUp\")) {\n event.preventDefault();\n moveSelection(event.key === \"ArrowDown\" ? 1 : -1);\n return;\n }\n if (\n event.key === \"Enter\" &&\n !event.shiftKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.altKey &&\n current &&\n dropdownCompletion &&\n dropdownOpen()\n ) {\n event.preventDefault();\n activateSuggestion();\n return;\n }\n if (event.key === \"Tab\" && !event.shiftKey && !event.metaKey && !event.ctrlKey && !event.altKey && current) {\n event.preventDefault();\n activateSuggestion();\n return;\n }\n if (event.key === \"Escape\") {\n if (current) {\n event.preventDefault();\n closeDropdown();\n setState(null);\n return;\n }\n if ((mergedCompletions()?.length ?? 0) > 0) {\n event.preventDefault();\n textarea.blur();\n return;\n }\n }\n if (event.key === \"Enter\" && (event.metaKey || event.ctrlKey) && props.onSubmit) {\n event.preventDefault();\n props.onSubmit();\n return;\n }\n if (handleShortcut(event, textarea)) {\n event.preventDefault();\n return;\n }\n if (event.key === \"Enter\" && !event.shiftKey && !event.metaKey && !event.ctrlKey && !event.altKey && handleListContinuation(textarea)) {\n event.preventDefault();\n }\n };\n\n const saveControls = (): JSX.Element => (\n <>\n <Show when={props.onSave}>\n <button\n type=\"button\"\n class=\"k2b-markdown-editor__tool\"\n title={messages().saveShortcut}\n aria-label={messages().save}\n tabIndex={-1}\n disabled={props.disabled || props.saveDisabled || props.saving}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => props.onSave?.()}\n >\n <i class={props.saving ? \"ti ti-loader-2 k2b-spin\" : props.saved ? \"ti ti-check\" : \"ti ti-device-floppy\"} aria-hidden=\"true\" />\n </button>\n </Show>\n </>\n );\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={props.error}\n fill={props.fill}\n meta={meta}\n required={props.required}\n disabled={props.disabled}\n >\n <div\n class=\"k2b-markdown-editor\"\n role=\"group\"\n aria-labelledby={props.label ? meta.labelId : undefined}\n aria-label={!props.label ? props[\"aria-label\"] : undefined}\n data-disabled={props.disabled ? \"true\" : undefined}\n data-invalid={error() ? \"true\" : undefined}\n data-variant={props.variant === \"default\" ? undefined : props.variant}\n data-fill={props.fill ? \"true\" : undefined}\n style={{\n \"--k2b-editor-lines\": String(props.lines ?? 6),\n }}\n onKeyDown={(event) => {\n if (props.onSave && (event.metaKey || event.ctrlKey) && event.key.toLowerCase() === \"s\") {\n event.preventDefault();\n if (!props.disabled && !props.saveDisabled && !props.saving) props.onSave();\n }\n }}\n >\n <Show when={!props.noToolbar}>\n <Toolbar\n textarea={textareaSignal}\n activeFormats={activeFormats}\n disabled={props.disabled}\n trailing={\n <>\n {props.toolbarTrailing}\n {saveControls()}\n <Show when={props.onClose}>\n <button\n type=\"button\"\n class=\"k2b-markdown-editor__tool\"\n title={messages().close}\n aria-label={messages().close}\n tabIndex={props.disabled ? 0 : -1}\n onClick={() => props.onClose?.()}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </>\n }\n />\n </Show>\n <div class=\"k2b-markdown-editor__surface\">\n <Show when={!localValue() && props.placeholder}>\n <div class=\"k2b-markdown-editor__placeholder\" aria-hidden=\"true\">\n {props.placeholder}\n </div>\n </Show>\n <div ref={preview} class=\"k2b-markdown-editor__preview\" aria-hidden=\"true\" />\n <textarea\n ref={(element) => {\n textarea = element;\n props.textareaRef?.(element);\n }}\n id={meta.controlId}\n name={props.name}\n class=\"k2b-markdown-editor__input\"\n onInput={onInput}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n onKeyDown={onKeyDown}\n onPaste={(event) => {\n if (textarea && handleSmartPaste(event, textarea)) {\n event.preventDefault();\n }\n }}\n onScroll={(event) => {\n if (preview) {\n preview.scrollTop = event.currentTarget.scrollTop;\n preview.scrollLeft = event.currentTarget.scrollLeft;\n }\n }}\n onCompositionStart={() => setComposing(true)}\n onCompositionEnd={() => setComposing(false)}\n onBlur={(event) => {\n const next = event.relatedTarget as HTMLElement | null;\n if (next && dropdown?.contains(next)) return;\n completionBehavior.reset();\n clearCompletion();\n }}\n disabled={props.disabled}\n required={props.required}\n spellcheck={props.spellcheck ?? true}\n maxLength={props.maxLength}\n {...fieldControlAria(meta, props)}\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-controls={dropdownOpen() ? listboxId : undefined}\n aria-activedescendant={dropdownOpen() && state() ? optionId(state()!.selectedIndex) : undefined}\n />\n </div>\n <Show when={(props.showStats ?? true) && !props.disabled}>\n <div class=\"k2b-markdown-editor__stats\" aria-hidden=\"true\" data-empty={stats().chars === 0 ? \"true\" : undefined}>\n <span>\n {stats().lines} {stats().lines === 1 ? \"line\" : \"lines\"}\n </span>\n <span>\n {stats().words} {stats().words === 1 ? \"word\" : \"words\"}\n </span>\n <span>\n {stats().chars} {stats().chars === 1 ? \"char\" : \"chars\"}\n </span>\n </div>\n </Show>\n <Show when={state() || loading() || completionError()}>\n <div\n ref={dropdown}\n popover=\"manual\"\n class=\"k2b-autocomplete__options\"\n role=\"presentation\"\n aria-label={messages().completionSuggestions}\n >\n <div id={listboxId} class=\"k2b-autocomplete__listbox\" role=\"listbox\" aria-label={messages().suggestions}>\n <Show when={loading()}>\n <div class=\"k2b-autocomplete__status\" role=\"status\">\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />\n Loading suggestions\n </div>\n </Show>\n <Show when={completionError()}>\n {(message) => (\n <div class=\"k2b-autocomplete__status\" data-error=\"true\" role=\"alert\">\n <i class=\"ti ti-alert-circle\" aria-hidden=\"true\" />\n <span>{message()}</span>\n <button type=\"button\" onMouseDown={(event) => event.preventDefault()} onClick={retryCompletion}>\n {messages().retry}\n </button>\n </div>\n )}\n </Show>\n <For each={state()?.suggestions ?? []}>\n {(suggestion, index) => (\n // biome-ignore lint/a11y/useKeyWithClickEvents: the owning textarea handles keyboard activation through aria-activedescendant.\n <div\n id={optionId(index())}\n class=\"k2b-autocomplete__option\"\n role=\"option\"\n aria-selected={index() === state()?.selectedIndex}\n onMouseEnter={() => {\n const current = state();\n if (current) {\n setState({ ...current, selectedIndex: index() });\n }\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n }}\n onClick={() => {\n activateSuggestion(index());\n textarea?.focus();\n }}\n >\n <span>{displayLabel(suggestion, state()!.context.completion)}</span>\n <Show when={suggestion.hint}>{(hint) => <small>{hint()}</small>}</Show>\n </div>\n )}\n </For>\n </div>\n </div>\n </Show>\n </div>\n </Field>\n );\n}\n\nexport type { Completion, SuggestContext, Suggestion } from \"../completion\";\nexport { abbreviations } from \"../completion\";\n"],"mappings":"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","ignoreList":[]}
|