@k2b/ui 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/actions/ContextMenu.js +3 -1
- package/dist/browser/actions/ContextMenu.js.map +1 -1
- package/dist/browser/actions/FilterChip.js +3 -1
- package/dist/browser/actions/FilterChip.js.map +1 -1
- package/dist/browser/actions/SpotlightSearch.js +3 -1
- package/dist/browser/actions/SpotlightSearch.js.map +1 -1
- package/dist/browser/actions/filter-messages.js +20 -0
- package/dist/browser/actions/filter-messages.js.map +1 -0
- package/dist/browser/actions/spotlight-messages.js +16 -0
- package/dist/browser/actions/spotlight-messages.js.map +1 -0
- package/dist/browser/chat/ChatComposer.js +47 -41
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/ChatPrimitives.js +25 -23
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/chat/ChatRoot.js +3 -3
- package/dist/browser/chat/ChatRoot.js.map +1 -1
- package/dist/browser/chat/ChatTimeline.js +12 -12
- package/dist/browser/chat/ChatTimeline.js.map +1 -1
- package/dist/browser/chat/chat-messages.js +236 -0
- package/dist/browser/chat/chat-messages.js.map +1 -0
- package/dist/browser/content/Calendar.js +1096 -1060
- package/dist/browser/content/Calendar.js.map +1 -1
- package/dist/browser/content/CalendarDayView.js +1187 -0
- package/dist/browser/content/CalendarDayView.js.map +1 -0
- package/dist/browser/content/CalendarWeekView.js +1571 -0
- package/dist/browser/content/CalendarWeekView.js.map +1 -0
- package/dist/browser/content/Chart.js +15 -8
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartExplorer.js +185 -85
- package/dist/browser/content/ChartExplorer.js.map +1 -1
- package/dist/browser/content/ChartExplorerControls.js +9 -7
- package/dist/browser/content/ChartExplorerControls.js.map +1 -1
- package/dist/browser/content/ChartFilterControls.js +93 -34
- package/dist/browser/content/ChartFilterControls.js.map +1 -1
- package/dist/browser/content/ChartSnapshotView.js +3 -3
- package/dist/browser/content/ChartSnapshotView.js.map +1 -1
- package/dist/browser/content/DataTable.js +238 -201
- package/dist/browser/content/DataTable.js.map +1 -1
- package/dist/browser/content/Docs.js +3 -1
- package/dist/browser/content/Docs.js.map +1 -1
- package/dist/browser/content/FileBrowser.js +30 -26
- package/dist/browser/content/FileBrowser.js.map +1 -1
- package/dist/browser/content/FileTree.js +9 -7
- package/dist/browser/content/FileTree.js.map +1 -1
- package/dist/browser/content/FileView.js +37 -28
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/content/Lightbox.js +9 -7
- package/dist/browser/content/Lightbox.js.map +1 -1
- package/dist/browser/content/LogEntriesTable.js +3 -3
- package/dist/browser/content/LogEntriesTable.js.map +1 -1
- package/dist/browser/content/MessageRow.js +24 -22
- package/dist/browser/content/MessageRow.js.map +1 -1
- package/dist/browser/content/Pagination.js +7 -7
- package/dist/browser/content/Pagination.js.map +1 -1
- package/dist/browser/content/PdfPreview.js +15 -13
- package/dist/browser/content/PdfPreview.js.map +1 -1
- package/dist/browser/content/RangePicker.js +3 -1
- package/dist/browser/content/RangePicker.js.map +1 -1
- package/dist/browser/content/StructuredDataPreview.js +3 -1
- package/dist/browser/content/StructuredDataPreview.js.map +1 -1
- package/dist/browser/content/Timeline.js +13 -11
- package/dist/browser/content/Timeline.js.map +1 -1
- package/dist/browser/content/VideoPlayer.js +5 -5
- package/dist/browser/content/VideoPlayer.js.map +1 -1
- package/dist/browser/content/VirtualFeed.js +6 -4
- package/dist/browser/content/VirtualFeed.js.map +1 -1
- package/dist/browser/content/ZoomPanViewport.js +10 -7
- package/dist/browser/content/ZoomPanViewport.js.map +1 -1
- package/dist/browser/content/calendar-day-scroll.js +98 -0
- package/dist/browser/content/calendar-day-scroll.js.map +1 -0
- package/dist/browser/content/calendar-days.js +408 -0
- package/dist/browser/content/calendar-days.js.map +1 -0
- package/dist/browser/content/calendar-dialogs.js +236 -0
- package/dist/browser/content/calendar-dialogs.js.map +1 -0
- package/dist/browser/content/calendar-messages.js +249 -3
- package/dist/browser/content/calendar-messages.js.map +1 -1
- package/dist/browser/content/calendar-pointer.js +19 -6
- package/dist/browser/content/calendar-pointer.js.map +1 -1
- package/dist/browser/content/calendar-shared.js +328 -0
- package/dist/browser/content/calendar-shared.js.map +1 -0
- package/dist/browser/content/calendar-time-view.js +1649 -0
- package/dist/browser/content/calendar-time-view.js.map +1 -0
- package/dist/browser/content/chart-messages.js +146 -0
- package/dist/browser/content/chart-messages.js.map +1 -0
- package/dist/browser/content/collection-selection.js +2 -0
- package/dist/browser/content/collection-selection.js.map +1 -1
- package/dist/browser/content/data-table-messages.js +24 -0
- package/dist/browser/content/data-table-messages.js.map +1 -0
- package/dist/browser/content/docs-messages.js +24 -0
- package/dist/browser/content/docs-messages.js.map +1 -0
- package/dist/browser/content/feed-messages.js +34 -0
- package/dist/browser/content/feed-messages.js.map +1 -0
- package/dist/browser/content/file-browser-messages.js +69 -0
- package/dist/browser/content/file-browser-messages.js.map +1 -0
- package/dist/browser/content/file-view-messages.js +64 -0
- package/dist/browser/content/file-view-messages.js.map +1 -0
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/content/lightbox-messages.js +36 -0
- package/dist/browser/content/lightbox-messages.js.map +1 -0
- package/dist/browser/content/log-entries-messages.js +20 -0
- package/dist/browser/content/log-entries-messages.js.map +1 -0
- package/dist/browser/content/markdown-info-block-messages.js +24 -0
- package/dist/browser/content/markdown-info-block-messages.js.map +1 -0
- package/dist/browser/content/markdown-info-blocks.js +3 -3
- package/dist/browser/content/markdown-info-blocks.js.map +1 -1
- package/dist/browser/content/markdown-links.js +2 -2
- package/dist/browser/content/markdown-links.js.map +1 -1
- package/dist/browser/content/markdown-reference-messages.js +30 -0
- package/dist/browser/content/markdown-reference-messages.js.map +1 -0
- package/dist/browser/content/pagination-messages.js +38 -0
- package/dist/browser/content/pagination-messages.js.map +1 -0
- package/dist/browser/content/pdf-messages.js +43 -0
- package/dist/browser/content/pdf-messages.js.map +1 -0
- package/dist/browser/content/range-picker-messages.js +20 -0
- package/dist/browser/content/range-picker-messages.js.map +1 -0
- package/dist/browser/content/structured-data-messages.js +22 -0
- package/dist/browser/content/structured-data-messages.js.map +1 -0
- package/dist/browser/content/timeline-messages.js +62 -0
- package/dist/browser/content/timeline-messages.js.map +1 -0
- package/dist/browser/content/video-messages.js +24 -0
- package/dist/browser/content/video-messages.js.map +1 -0
- package/dist/browser/content/viewport-messages.js +28 -0
- package/dist/browser/content/viewport-messages.js.map +1 -0
- package/dist/browser/feedback/HoverPreview.js +34 -6
- package/dist/browser/feedback/HoverPreview.js.map +1 -1
- package/dist/browser/feedback/InstallGuide.js +18 -18
- package/dist/browser/feedback/InstallGuide.js.map +1 -1
- package/dist/browser/feedback/install-messages.js +104 -0
- package/dist/browser/feedback/install-messages.js.map +1 -0
- package/dist/browser/feedback/prompt-messages.js +65 -0
- package/dist/browser/feedback/prompt-messages.js.map +1 -0
- package/dist/browser/feedback/prompts.js +14 -11
- package/dist/browser/feedback/prompts.js.map +1 -1
- package/dist/browser/feedback/toast-messages.js +18 -0
- package/dist/browser/feedback/toast-messages.js.map +1 -0
- package/dist/browser/feedback/toast.js +4 -3
- package/dist/browser/feedback/toast.js.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/inputs/AutocompleteEditor.js +6 -4
- package/dist/browser/inputs/AutocompleteEditor.js.map +1 -1
- package/dist/browser/inputs/AutocompleteSelect.js +10 -8
- package/dist/browser/inputs/AutocompleteSelect.js.map +1 -1
- package/dist/browser/inputs/ChoiceGroups.js +4 -0
- package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
- package/dist/browser/inputs/ChoiceInputs.js +5 -5
- package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
- package/dist/browser/inputs/Combobox.js +3 -2
- package/dist/browser/inputs/Combobox.js.map +1 -1
- package/dist/browser/inputs/FileDropTarget.js +6 -6
- package/dist/browser/inputs/FileDropTarget.js.map +1 -1
- package/dist/browser/inputs/FileInputs.js +30 -21
- package/dist/browser/inputs/FileInputs.js.map +1 -1
- package/dist/browser/inputs/MultiSelectInput.js +7 -5
- package/dist/browser/inputs/MultiSelectInput.js.map +1 -1
- package/dist/browser/inputs/NumberInput.js +4 -2
- package/dist/browser/inputs/NumberInput.js.map +1 -1
- package/dist/browser/inputs/QrScanner.js +5 -5
- package/dist/browser/inputs/QrScanner.js.map +1 -1
- package/dist/browser/inputs/Select.js +7 -5
- package/dist/browser/inputs/Select.js.map +1 -1
- package/dist/browser/inputs/SelectChip.js +3 -3
- package/dist/browser/inputs/SelectChip.js.map +1 -1
- package/dist/browser/inputs/SignatureInput.js +9 -3
- package/dist/browser/inputs/SignatureInput.js.map +1 -1
- package/dist/browser/inputs/SpecialInputs.js +4 -2
- package/dist/browser/inputs/SpecialInputs.js.map +1 -1
- package/dist/browser/inputs/TagEditor.js +8 -6
- package/dist/browser/inputs/TagEditor.js.map +1 -1
- package/dist/browser/inputs/TagsInput.js +5 -5
- package/dist/browser/inputs/TagsInput.js.map +1 -1
- package/dist/browser/inputs/TemplateEditor.js +5 -5
- package/dist/browser/inputs/TemplateEditor.js.map +1 -1
- package/dist/browser/inputs/TextInput.js +3 -1
- package/dist/browser/inputs/TextInput.js.map +1 -1
- package/dist/browser/inputs/completion-messages.js +24 -0
- package/dist/browser/inputs/completion-messages.js.map +1 -0
- package/dist/browser/inputs/file-drop-messages.js +63 -0
- package/dist/browser/inputs/file-drop-messages.js.map +1 -0
- package/dist/browser/inputs/file-drop.js.map +1 -1
- package/dist/browser/inputs/file-input-messages.js +60 -0
- package/dist/browser/inputs/file-input-messages.js.map +1 -0
- package/dist/browser/inputs/icon-messages.js +22 -0
- package/dist/browser/inputs/icon-messages.js.map +1 -0
- package/dist/browser/inputs/input-messages.js +38 -0
- package/dist/browser/inputs/input-messages.js.map +1 -0
- package/dist/browser/inputs/markdown/MarkdownEditor.js +10 -6
- package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/browser/inputs/markdown/Toolbar.js +13 -13
- package/dist/browser/inputs/markdown/Toolbar.js.map +1 -1
- package/dist/browser/inputs/markdown/editor-messages.js +43 -0
- package/dist/browser/inputs/markdown/editor-messages.js.map +1 -0
- package/dist/browser/inputs/markdown/toolbar-messages.js +40 -0
- package/dist/browser/inputs/markdown/toolbar-messages.js.map +1 -0
- package/dist/browser/inputs/qr-messages.js +26 -0
- package/dist/browser/inputs/qr-messages.js.map +1 -0
- package/dist/browser/inputs/select-messages.js +63 -0
- package/dist/browser/inputs/select-messages.js.map +1 -0
- package/dist/browser/inputs/tag-messages.js +44 -0
- package/dist/browser/inputs/tag-messages.js.map +1 -0
- package/dist/browser/inputs/template-messages.js +22 -0
- package/dist/browser/inputs/template-messages.js.map +1 -0
- package/dist/browser/internal/render-error-messages.js +20 -0
- package/dist/browser/internal/render-error-messages.js.map +1 -0
- package/dist/browser/internal/render-error.js +3 -1
- package/dist/browser/internal/render-error.js.map +1 -1
- package/dist/browser/internal/text-selection.js +101 -0
- package/dist/browser/internal/text-selection.js.map +1 -0
- package/dist/browser/intl/messages.js +6 -1155
- package/dist/browser/intl/messages.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +594 -425
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/BottomSheet.js +6 -1
- package/dist/browser/layout/BottomSheet.js.map +1 -1
- package/dist/browser/layout/Discussion.js +8 -5
- package/dist/browser/layout/Discussion.js.map +1 -1
- package/dist/browser/layout/FloatingWindow.js +8 -5
- package/dist/browser/layout/FloatingWindow.js.map +1 -1
- package/dist/browser/layout/Navigation.js +7 -6
- package/dist/browser/layout/Navigation.js.map +1 -1
- package/dist/browser/layout/PageTitle.js +373 -0
- package/dist/browser/layout/PageTitle.js.map +1 -0
- package/dist/browser/layout/PanelDialog.js +8 -6
- package/dist/browser/layout/PanelDialog.js.map +1 -1
- package/dist/browser/layout/Panes.js +23 -15
- package/dist/browser/layout/Panes.js.map +1 -1
- package/dist/browser/layout/PullToRefresh.js +13 -4
- package/dist/browser/layout/PullToRefresh.js.map +1 -1
- package/dist/browser/layout/Settings.js +14 -12
- package/dist/browser/layout/Settings.js.map +1 -1
- package/dist/browser/layout/SettingsCollection.js +6 -5
- package/dist/browser/layout/SettingsCollection.js.map +1 -1
- package/dist/browser/layout/SettingsModal.js +3 -1
- package/dist/browser/layout/SettingsModal.js.map +1 -1
- package/dist/browser/layout/app-workspace-controller.js +821 -12
- package/dist/browser/layout/app-workspace-controller.js.map +1 -1
- package/dist/browser/layout/app-workspace-state.js +3 -2
- package/dist/browser/layout/app-workspace-state.js.map +1 -1
- package/dist/browser/layout/floating-window-messages.js +28 -0
- package/dist/browser/layout/floating-window-messages.js.map +1 -0
- package/dist/browser/layout/index.js +2 -0
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/layout/navigation-model.js.map +1 -1
- package/dist/browser/layout/page-title-controller.js +169 -0
- package/dist/browser/layout/page-title-controller.js.map +1 -0
- package/dist/browser/layout/panel-dialog-messages.js +20 -0
- package/dist/browser/layout/panel-dialog-messages.js.map +1 -0
- package/dist/browser/layout/panes-messages.js +48 -0
- package/dist/browser/layout/panes-messages.js.map +1 -0
- package/dist/browser/layout/refresh-messages.js +20 -0
- package/dist/browser/layout/refresh-messages.js.map +1 -0
- package/dist/browser/layout/settings-messages.js +54 -0
- package/dist/browser/layout/settings-messages.js.map +1 -0
- package/dist/browser/layout/workspace-messages.js +56 -0
- package/dist/browser/layout/workspace-messages.js.map +1 -0
- package/dist/browser/surfaces/Avatar.js +5 -5
- package/dist/browser/surfaces/Avatar.js.map +1 -1
- package/dist/browser/surfaces/ResourceCard.js +4 -2
- package/dist/browser/surfaces/ResourceCard.js.map +1 -1
- package/dist/browser/surfaces/StatCell.js +18 -6
- package/dist/browser/surfaces/StatCell.js.map +1 -1
- package/dist/browser/surfaces/Tag.js +3 -3
- package/dist/browser/surfaces/Tag.js.map +1 -1
- package/dist/browser/surfaces/avatar-messages.js +26 -0
- package/dist/browser/surfaces/avatar-messages.js.map +1 -0
- package/dist/browser/surfaces/resource-messages.js +26 -0
- package/dist/browser/surfaces/resource-messages.js.map +1 -0
- package/dist/browser/widgets/Widget.js +6 -0
- package/dist/browser/widgets/Widget.js.map +1 -1
- package/dist/ssr/actions/ContextMenu.js.map +1 -1
- package/dist/ssr/actions/FilterChip.js +3 -1
- package/dist/ssr/actions/FilterChip.js.map +1 -1
- package/dist/ssr/actions/SpotlightSearch.js +3 -1
- package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
- package/dist/ssr/actions/filter-messages.js +20 -0
- package/dist/ssr/actions/filter-messages.js.map +1 -0
- package/dist/ssr/actions/spotlight-messages.js +16 -0
- package/dist/ssr/actions/spotlight-messages.js.map +1 -0
- package/dist/ssr/chat/ChatComposer.js +47 -41
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/ChatPrimitives.js +23 -21
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/chat/ChatRoot.js +3 -3
- package/dist/ssr/chat/ChatRoot.js.map +1 -1
- package/dist/ssr/chat/ChatTimeline.js +11 -11
- package/dist/ssr/chat/ChatTimeline.js.map +1 -1
- package/dist/ssr/chat/chat-messages.js +236 -0
- package/dist/ssr/chat/chat-messages.js.map +1 -0
- package/dist/ssr/content/Calendar.js +534 -346
- package/dist/ssr/content/Calendar.js.map +1 -1
- package/dist/ssr/content/CalendarDayView.js +800 -0
- package/dist/ssr/content/CalendarDayView.js.map +1 -0
- package/dist/ssr/content/CalendarWeekView.js +1069 -0
- package/dist/ssr/content/CalendarWeekView.js.map +1 -0
- package/dist/ssr/content/Chart.js +12 -5
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartExplorer.js +98 -37
- package/dist/ssr/content/ChartExplorer.js.map +1 -1
- package/dist/ssr/content/ChartExplorerControls.js +9 -7
- package/dist/ssr/content/ChartExplorerControls.js.map +1 -1
- package/dist/ssr/content/ChartFilterControls.js +52 -8
- package/dist/ssr/content/ChartFilterControls.js.map +1 -1
- package/dist/ssr/content/ChartSnapshotView.js +3 -3
- package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
- package/dist/ssr/content/DataTable.js +77 -53
- package/dist/ssr/content/DataTable.js.map +1 -1
- package/dist/ssr/content/Docs.js +3 -1
- package/dist/ssr/content/Docs.js.map +1 -1
- package/dist/ssr/content/FileBrowser.js +30 -26
- package/dist/ssr/content/FileBrowser.js.map +1 -1
- package/dist/ssr/content/FileTree.js +9 -7
- package/dist/ssr/content/FileTree.js.map +1 -1
- package/dist/ssr/content/FileView.js +37 -28
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/content/Lightbox.js +8 -6
- package/dist/ssr/content/Lightbox.js.map +1 -1
- package/dist/ssr/content/LogEntriesTable.js +3 -3
- package/dist/ssr/content/LogEntriesTable.js.map +1 -1
- package/dist/ssr/content/MessageRow.js +24 -22
- package/dist/ssr/content/MessageRow.js.map +1 -1
- package/dist/ssr/content/Pagination.js +6 -6
- package/dist/ssr/content/Pagination.js.map +1 -1
- package/dist/ssr/content/PdfPreview.js +15 -13
- package/dist/ssr/content/PdfPreview.js.map +1 -1
- package/dist/ssr/content/RangePicker.js +3 -1
- package/dist/ssr/content/RangePicker.js.map +1 -1
- package/dist/ssr/content/StructuredDataPreview.js +3 -1
- package/dist/ssr/content/StructuredDataPreview.js.map +1 -1
- package/dist/ssr/content/Timeline.js +13 -11
- package/dist/ssr/content/Timeline.js.map +1 -1
- package/dist/ssr/content/VideoPlayer.js +5 -5
- package/dist/ssr/content/VideoPlayer.js.map +1 -1
- package/dist/ssr/content/VirtualFeed.js +6 -4
- package/dist/ssr/content/VirtualFeed.js.map +1 -1
- package/dist/ssr/content/ZoomPanViewport.js +7 -4
- package/dist/ssr/content/ZoomPanViewport.js.map +1 -1
- package/dist/ssr/content/calendar-day-scroll.js +98 -0
- package/dist/ssr/content/calendar-day-scroll.js.map +1 -0
- package/dist/ssr/content/calendar-days.js +408 -0
- package/dist/ssr/content/calendar-days.js.map +1 -0
- package/dist/ssr/content/calendar-dialogs.js +159 -0
- package/dist/ssr/content/calendar-dialogs.js.map +1 -0
- package/dist/ssr/content/calendar-messages.js +249 -3
- package/dist/ssr/content/calendar-messages.js.map +1 -1
- package/dist/ssr/content/calendar-pointer.js +19 -6
- package/dist/ssr/content/calendar-pointer.js.map +1 -1
- package/dist/ssr/content/calendar-shared.js +261 -0
- package/dist/ssr/content/calendar-shared.js.map +1 -0
- package/dist/ssr/content/calendar-time-view.js +1306 -0
- package/dist/ssr/content/calendar-time-view.js.map +1 -0
- package/dist/ssr/content/chart-messages.js +146 -0
- package/dist/ssr/content/chart-messages.js.map +1 -0
- package/dist/ssr/content/collection-selection.js +2 -0
- package/dist/ssr/content/collection-selection.js.map +1 -1
- package/dist/ssr/content/data-table-messages.js +24 -0
- package/dist/ssr/content/data-table-messages.js.map +1 -0
- package/dist/ssr/content/docs-messages.js +24 -0
- package/dist/ssr/content/docs-messages.js.map +1 -0
- package/dist/ssr/content/feed-messages.js +34 -0
- package/dist/ssr/content/feed-messages.js.map +1 -0
- package/dist/ssr/content/file-browser-messages.js +69 -0
- package/dist/ssr/content/file-browser-messages.js.map +1 -0
- package/dist/ssr/content/file-view-messages.js +64 -0
- package/dist/ssr/content/file-view-messages.js.map +1 -0
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/content/lightbox-messages.js +36 -0
- package/dist/ssr/content/lightbox-messages.js.map +1 -0
- package/dist/ssr/content/log-entries-messages.js +20 -0
- package/dist/ssr/content/log-entries-messages.js.map +1 -0
- package/dist/ssr/content/markdown-info-block-messages.js +24 -0
- package/dist/ssr/content/markdown-info-block-messages.js.map +1 -0
- package/dist/ssr/content/markdown-info-blocks.js +3 -3
- package/dist/ssr/content/markdown-info-blocks.js.map +1 -1
- package/dist/ssr/content/markdown-links.js +2 -2
- package/dist/ssr/content/markdown-links.js.map +1 -1
- package/dist/ssr/content/markdown-reference-messages.js +30 -0
- package/dist/ssr/content/markdown-reference-messages.js.map +1 -0
- package/dist/ssr/content/pagination-messages.js +38 -0
- package/dist/ssr/content/pagination-messages.js.map +1 -0
- package/dist/ssr/content/pdf-messages.js +43 -0
- package/dist/ssr/content/pdf-messages.js.map +1 -0
- package/dist/ssr/content/range-picker-messages.js +20 -0
- package/dist/ssr/content/range-picker-messages.js.map +1 -0
- package/dist/ssr/content/structured-data-messages.js +22 -0
- package/dist/ssr/content/structured-data-messages.js.map +1 -0
- package/dist/ssr/content/timeline-messages.js +62 -0
- package/dist/ssr/content/timeline-messages.js.map +1 -0
- package/dist/ssr/content/video-messages.js +24 -0
- package/dist/ssr/content/video-messages.js.map +1 -0
- package/dist/ssr/content/viewport-messages.js +28 -0
- package/dist/ssr/content/viewport-messages.js.map +1 -0
- package/dist/ssr/feedback/HoverPreview.js +34 -6
- package/dist/ssr/feedback/HoverPreview.js.map +1 -1
- package/dist/ssr/feedback/InstallGuide.js +18 -18
- package/dist/ssr/feedback/InstallGuide.js.map +1 -1
- package/dist/ssr/feedback/install-messages.js +104 -0
- package/dist/ssr/feedback/install-messages.js.map +1 -0
- package/dist/ssr/feedback/prompt-messages.js +65 -0
- package/dist/ssr/feedback/prompt-messages.js.map +1 -0
- package/dist/ssr/feedback/prompts.js +14 -11
- package/dist/ssr/feedback/prompts.js.map +1 -1
- package/dist/ssr/feedback/toast-messages.js +18 -0
- package/dist/ssr/feedback/toast-messages.js.map +1 -0
- package/dist/ssr/feedback/toast.js +4 -3
- package/dist/ssr/feedback/toast.js.map +1 -1
- package/dist/ssr/index.js +1 -1
- package/dist/ssr/index.js.map +1 -1
- package/dist/ssr/inputs/AutocompleteEditor.js +5 -3
- package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -1
- package/dist/ssr/inputs/AutocompleteSelect.js +10 -8
- package/dist/ssr/inputs/AutocompleteSelect.js.map +1 -1
- package/dist/ssr/inputs/ChoiceGroups.js +4 -0
- package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
- package/dist/ssr/inputs/ChoiceInputs.js +5 -5
- package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
- package/dist/ssr/inputs/Combobox.js +3 -1
- package/dist/ssr/inputs/Combobox.js.map +1 -1
- package/dist/ssr/inputs/FileDropTarget.js +6 -6
- package/dist/ssr/inputs/FileDropTarget.js.map +1 -1
- package/dist/ssr/inputs/FileInputs.js +29 -20
- package/dist/ssr/inputs/FileInputs.js.map +1 -1
- package/dist/ssr/inputs/MultiSelectInput.js +7 -5
- package/dist/ssr/inputs/MultiSelectInput.js.map +1 -1
- package/dist/ssr/inputs/NumberInput.js +4 -2
- package/dist/ssr/inputs/NumberInput.js.map +1 -1
- package/dist/ssr/inputs/QrScanner.js +4 -4
- package/dist/ssr/inputs/QrScanner.js.map +1 -1
- package/dist/ssr/inputs/Select.js +7 -5
- package/dist/ssr/inputs/Select.js.map +1 -1
- package/dist/ssr/inputs/SelectChip.js +3 -3
- package/dist/ssr/inputs/SelectChip.js.map +1 -1
- package/dist/ssr/inputs/SignatureInput.js +9 -3
- package/dist/ssr/inputs/SignatureInput.js.map +1 -1
- package/dist/ssr/inputs/SpecialInputs.js +4 -2
- package/dist/ssr/inputs/SpecialInputs.js.map +1 -1
- package/dist/ssr/inputs/TagEditor.js +8 -6
- package/dist/ssr/inputs/TagEditor.js.map +1 -1
- package/dist/ssr/inputs/TagsInput.js +5 -5
- package/dist/ssr/inputs/TagsInput.js.map +1 -1
- package/dist/ssr/inputs/TemplateEditor.js +5 -5
- package/dist/ssr/inputs/TemplateEditor.js.map +1 -1
- package/dist/ssr/inputs/TextInput.js +3 -1
- package/dist/ssr/inputs/TextInput.js.map +1 -1
- package/dist/ssr/inputs/completion-messages.js +24 -0
- package/dist/ssr/inputs/completion-messages.js.map +1 -0
- package/dist/ssr/inputs/file-drop-messages.js +63 -0
- package/dist/ssr/inputs/file-drop-messages.js.map +1 -0
- package/dist/ssr/inputs/file-drop.js.map +1 -1
- package/dist/ssr/inputs/file-input-messages.js +60 -0
- package/dist/ssr/inputs/file-input-messages.js.map +1 -0
- package/dist/ssr/inputs/icon-messages.js +22 -0
- package/dist/ssr/inputs/icon-messages.js.map +1 -0
- package/dist/ssr/inputs/input-messages.js +38 -0
- package/dist/ssr/inputs/input-messages.js.map +1 -0
- package/dist/ssr/inputs/markdown/MarkdownEditor.js +9 -5
- package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/ssr/inputs/markdown/Toolbar.js +13 -13
- package/dist/ssr/inputs/markdown/Toolbar.js.map +1 -1
- package/dist/ssr/inputs/markdown/editor-messages.js +43 -0
- package/dist/ssr/inputs/markdown/editor-messages.js.map +1 -0
- package/dist/ssr/inputs/markdown/toolbar-messages.js +40 -0
- package/dist/ssr/inputs/markdown/toolbar-messages.js.map +1 -0
- package/dist/ssr/inputs/qr-messages.js +26 -0
- package/dist/ssr/inputs/qr-messages.js.map +1 -0
- package/dist/ssr/inputs/select-messages.js +63 -0
- package/dist/ssr/inputs/select-messages.js.map +1 -0
- package/dist/ssr/inputs/tag-messages.js +44 -0
- package/dist/ssr/inputs/tag-messages.js.map +1 -0
- package/dist/ssr/inputs/template-messages.js +22 -0
- package/dist/ssr/inputs/template-messages.js.map +1 -0
- package/dist/ssr/internal/render-error-messages.js +20 -0
- package/dist/ssr/internal/render-error-messages.js.map +1 -0
- package/dist/ssr/internal/render-error.js +3 -1
- package/dist/ssr/internal/render-error.js.map +1 -1
- package/dist/ssr/internal/text-selection.js +101 -0
- package/dist/ssr/internal/text-selection.js.map +1 -0
- package/dist/ssr/intl/messages.js +6 -1155
- package/dist/ssr/intl/messages.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +219 -103
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/BottomSheet.js +1 -0
- package/dist/ssr/layout/BottomSheet.js.map +1 -1
- package/dist/ssr/layout/Discussion.js +8 -5
- package/dist/ssr/layout/Discussion.js.map +1 -1
- package/dist/ssr/layout/FloatingWindow.js +8 -5
- package/dist/ssr/layout/FloatingWindow.js.map +1 -1
- package/dist/ssr/layout/Navigation.js +6 -5
- package/dist/ssr/layout/Navigation.js.map +1 -1
- package/dist/ssr/layout/PageTitle.js +256 -0
- package/dist/ssr/layout/PageTitle.js.map +1 -0
- package/dist/ssr/layout/PanelDialog.js +8 -6
- package/dist/ssr/layout/PanelDialog.js.map +1 -1
- package/dist/ssr/layout/Panes.js +22 -14
- package/dist/ssr/layout/Panes.js.map +1 -1
- package/dist/ssr/layout/PullToRefresh.js +13 -4
- package/dist/ssr/layout/PullToRefresh.js.map +1 -1
- package/dist/ssr/layout/Settings.js +14 -12
- package/dist/ssr/layout/Settings.js.map +1 -1
- package/dist/ssr/layout/SettingsCollection.js +6 -5
- package/dist/ssr/layout/SettingsCollection.js.map +1 -1
- package/dist/ssr/layout/SettingsModal.js +3 -1
- package/dist/ssr/layout/SettingsModal.js.map +1 -1
- package/dist/ssr/layout/app-workspace-controller.js +821 -12
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
- package/dist/ssr/layout/app-workspace-state.js +3 -2
- package/dist/ssr/layout/app-workspace-state.js.map +1 -1
- package/dist/ssr/layout/floating-window-messages.js +28 -0
- package/dist/ssr/layout/floating-window-messages.js.map +1 -0
- package/dist/ssr/layout/index.js +2 -0
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/layout/navigation-model.js.map +1 -1
- package/dist/ssr/layout/page-title-controller.js +169 -0
- package/dist/ssr/layout/page-title-controller.js.map +1 -0
- package/dist/ssr/layout/panel-dialog-messages.js +20 -0
- package/dist/ssr/layout/panel-dialog-messages.js.map +1 -0
- package/dist/ssr/layout/panes-messages.js +48 -0
- package/dist/ssr/layout/panes-messages.js.map +1 -0
- package/dist/ssr/layout/refresh-messages.js +20 -0
- package/dist/ssr/layout/refresh-messages.js.map +1 -0
- package/dist/ssr/layout/settings-messages.js +54 -0
- package/dist/ssr/layout/settings-messages.js.map +1 -0
- package/dist/ssr/layout/workspace-messages.js +56 -0
- package/dist/ssr/layout/workspace-messages.js.map +1 -0
- package/dist/ssr/surfaces/Avatar.js +5 -5
- package/dist/ssr/surfaces/Avatar.js.map +1 -1
- package/dist/ssr/surfaces/ResourceCard.js +4 -2
- package/dist/ssr/surfaces/ResourceCard.js.map +1 -1
- package/dist/ssr/surfaces/StatCell.js +2 -2
- package/dist/ssr/surfaces/StatCell.js.map +1 -1
- package/dist/ssr/surfaces/Tag.js +3 -3
- package/dist/ssr/surfaces/Tag.js.map +1 -1
- package/dist/ssr/surfaces/avatar-messages.js +26 -0
- package/dist/ssr/surfaces/avatar-messages.js.map +1 -0
- package/dist/ssr/surfaces/resource-messages.js +26 -0
- package/dist/ssr/surfaces/resource-messages.js.map +1 -0
- package/dist/ssr/widgets/Widget.js +6 -0
- package/dist/ssr/widgets/Widget.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/actions/filter-messages.d.ts +8 -0
- package/dist/types/actions/spotlight-messages.d.ts +8 -0
- package/dist/types/chat/chat-messages.d.ts +116 -0
- package/dist/types/content/Calendar.d.ts +91 -0
- package/dist/types/content/CalendarDayView.d.ts +7 -0
- package/dist/types/content/CalendarWeekView.d.ts +7 -0
- package/dist/types/content/ChartExplorer.d.ts +36 -1
- package/dist/types/content/ChartFilterControls.d.ts +6 -1
- package/dist/types/content/DataTable.d.ts +7 -0
- package/dist/types/content/FileView.d.ts +0 -10
- package/dist/types/content/calendar-day-scroll.d.ts +42 -0
- package/dist/types/content/calendar-days.d.ts +192 -0
- package/dist/types/content/calendar-dialogs.d.ts +22 -0
- package/dist/types/content/calendar-messages.d.ts +119 -1
- package/dist/types/content/calendar-pointer.d.ts +9 -0
- package/dist/types/content/calendar-shared.d.ts +69 -0
- package/dist/types/content/calendar-time-view.d.ts +252 -0
- package/dist/types/content/chart-messages.d.ts +37 -0
- package/dist/types/content/data-table-messages.d.ts +10 -0
- package/dist/types/content/docs-messages.d.ts +10 -0
- package/dist/types/content/feed-messages.d.ts +15 -0
- package/dist/types/content/file-browser-messages.d.ts +33 -0
- package/dist/types/content/file-view-messages.d.ts +30 -0
- package/dist/types/content/index.d.ts +2 -2
- package/dist/types/content/lightbox-messages.d.ts +16 -0
- package/dist/types/content/log-entries-messages.d.ts +8 -0
- package/dist/types/content/markdown-info-block-messages.d.ts +12 -0
- package/dist/types/content/markdown-reference-messages.d.ts +15 -0
- package/dist/types/content/pagination-messages.d.ts +17 -0
- package/dist/types/content/pdf-messages.d.ts +20 -0
- package/dist/types/content/range-picker-messages.d.ts +8 -0
- package/dist/types/content/structured-data-messages.d.ts +9 -0
- package/dist/types/content/timeline-messages.d.ts +29 -0
- package/dist/types/content/video-messages.d.ts +10 -0
- package/dist/types/content/viewport-messages.d.ts +12 -0
- package/dist/types/feedback/install-messages.d.ts +50 -0
- package/dist/types/feedback/prompt-messages.d.ts +31 -0
- package/dist/types/feedback/toast-messages.d.ts +9 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/inputs/completion-messages.d.ts +10 -0
- package/dist/types/inputs/file-drop-messages.d.ts +30 -0
- package/dist/types/inputs/file-drop.d.ts +3 -3
- package/dist/types/inputs/file-input-messages.d.ts +28 -0
- package/dist/types/inputs/icon-messages.d.ts +9 -0
- package/dist/types/inputs/input-messages.d.ts +17 -0
- package/dist/types/inputs/markdown/editor-messages.d.ts +20 -0
- package/dist/types/inputs/markdown/toolbar-messages.d.ts +18 -0
- package/dist/types/inputs/qr-messages.d.ts +11 -0
- package/dist/types/inputs/select-messages.d.ts +30 -0
- package/dist/types/inputs/tag-messages.d.ts +20 -0
- package/dist/types/inputs/template-messages.d.ts +9 -0
- package/dist/types/internal/render-error-messages.d.ts +8 -0
- package/dist/types/internal/text-selection.d.ts +18 -0
- package/dist/types/intl/messages.d.ts +3 -544
- package/dist/types/layout/AppWorkspace.d.ts +42 -5
- package/dist/types/layout/PageTitle.d.ts +65 -0
- package/dist/types/layout/app-workspace-controller.d.ts +12 -0
- package/dist/types/layout/app-workspace-state.d.ts +3 -2
- package/dist/types/layout/floating-window-messages.d.ts +12 -0
- package/dist/types/layout/index.d.ts +3 -0
- package/dist/types/layout/navigation-model.d.ts +7 -0
- package/dist/types/layout/page-title-controller.d.ts +13 -0
- package/dist/types/layout/panel-dialog-messages.d.ts +8 -0
- package/dist/types/layout/panes-messages.d.ts +22 -0
- package/dist/types/layout/refresh-messages.d.ts +8 -0
- package/dist/types/layout/settings-messages.d.ts +25 -0
- package/dist/types/layout/workspace-messages.d.ts +26 -0
- package/dist/types/surfaces/StatCell.d.ts +5 -0
- package/dist/types/surfaces/avatar-messages.d.ts +11 -0
- package/dist/types/surfaces/resource-messages.d.ts +11 -0
- package/dist/types/widgets/Widget.d.ts +5 -1
- package/package.json +1 -1
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { memo as _$memo } from "solid-js/web";
|
|
2
|
+
import { ssrAttribute as _$ssrAttribute } from "solid-js/web";
|
|
3
|
+
import { ssr as _$ssr } from "solid-js/web";
|
|
4
|
+
import { escape as _$escape } from "solid-js/web";
|
|
5
|
+
import { createComponent as _$createComponent } from "solid-js/web";
|
|
6
|
+
var _tmpl$ = ["<div class=\"k2b-dialog__panel\">", "<div class=\"k2b-dialog__body\"><dl class=\"k2b-calendar-shortcuts\">", "</dl><p class=\"k2b-calendar-shortcuts__note\">", "</p></div></div>"],
|
|
7
|
+
_tmpl$2 = ["<dt>", "", "</dt>"],
|
|
8
|
+
_tmpl$3 = ["<dd>", "</dd>"],
|
|
9
|
+
_tmpl$4 = ["<kbd class=\"k2b-calendar-shortcuts__key\">", "</kbd>"],
|
|
10
|
+
_tmpl$5 = "<span class=\"k2b-calendar-shortcuts__or\">/</span>",
|
|
11
|
+
_tmpl$6 = ["<form class=\"k2b-dialog__panel\">", "<div class=\"k2b-dialog__body k2b-calendar-goto\"><input class=\"k2b-calendar-goto__input\" type=\"text\" autocomplete=\"off\" spellcheck=\"false\"", " aria-describedby=\"k2b-calendar-goto-hint\"", "><p class=\"k2b-calendar-goto__preview\" id=\"k2b-calendar-goto-hint\" aria-live=\"polite\"", ">", "</p></div><footer class=\"k2b-dialog__actions\"><button type=\"submit\" class=\"k2b-button\" data-variant=\"primary\" data-size=\"sm\"", ">", "</button></footer></form>"];
|
|
12
|
+
import { createSignal, For, Show } from "solid-js";
|
|
13
|
+
import { dialogCore } from "../feedback/dialog-core";
|
|
14
|
+
import { DialogHeader } from "../feedback/prompts";
|
|
15
|
+
import { addDayKeys } from "./calendar-days";
|
|
16
|
+
const isMac = () => typeof navigator !== "undefined" && /Mac|iPhone|iPad/.test(navigator.platform);
|
|
17
|
+
|
|
18
|
+
/** The keys of a shortcut as the reader presses them, such as ["⇧", "N"] or ["Shift", "N"]. */
|
|
19
|
+
export const shortcutKeys = shortcut => {
|
|
20
|
+
const mac = isMac();
|
|
21
|
+
const names = {
|
|
22
|
+
shift: mac ? "⇧" : "Shift",
|
|
23
|
+
alt: mac ? "⌥" : "Alt",
|
|
24
|
+
ctrl: mac ? "⌃" : "Ctrl",
|
|
25
|
+
meta: mac ? "⌘" : "Meta",
|
|
26
|
+
mod: mac ? "⌘" : "Ctrl",
|
|
27
|
+
arrowup: "↑",
|
|
28
|
+
arrowdown: "↓",
|
|
29
|
+
arrowleft: "←",
|
|
30
|
+
arrowright: "→"
|
|
31
|
+
};
|
|
32
|
+
return shortcut.split("+").map(part => names[part.toLowerCase()] ?? (part.length === 1 ? part.toUpperCase() : part));
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The calendar's shortcuts: the same list the host registers for its dispatcher and its help. `alternatives` names
|
|
37
|
+
* other keys the calendar itself handles for a command, such as the arrow keys that page like J and K.
|
|
38
|
+
*/
|
|
39
|
+
export const openCalendarShortcuts = (commands, messages, alternatives = {}) => dialogCore.open(close => _$ssr(_tmpl$, _$escape(_$createComponent(DialogHeader, {
|
|
40
|
+
get title() {
|
|
41
|
+
return messages.calendarShortcuts;
|
|
42
|
+
},
|
|
43
|
+
icon: "ti ti-keyboard",
|
|
44
|
+
close: () => close()
|
|
45
|
+
})), _$escape(_$createComponent(For, {
|
|
46
|
+
get each() {
|
|
47
|
+
return commands.filter(command => command.shortcut);
|
|
48
|
+
},
|
|
49
|
+
children: command => [_$ssr(_tmpl$2, _$escape(_$createComponent(For, {
|
|
50
|
+
get each() {
|
|
51
|
+
return shortcutKeys(command.shortcut);
|
|
52
|
+
},
|
|
53
|
+
children: key => _$ssr(_tmpl$4, _$escape(key))
|
|
54
|
+
})), _$escape(_$createComponent(Show, {
|
|
55
|
+
get when() {
|
|
56
|
+
return alternatives[command.id];
|
|
57
|
+
},
|
|
58
|
+
children: other => [_$ssr(_tmpl$5), _$createComponent(For, {
|
|
59
|
+
get each() {
|
|
60
|
+
return shortcutKeys(other());
|
|
61
|
+
},
|
|
62
|
+
children: key => _$ssr(_tmpl$4, _$escape(key))
|
|
63
|
+
})]
|
|
64
|
+
}))), _$ssr(_tmpl$3, _$escape(command.label))]
|
|
65
|
+
})), _$escape(messages.calendarShortcutsNote)), {
|
|
66
|
+
panelClassName: "k2b-dialog k2b-dialog--small",
|
|
67
|
+
ariaLabel: messages.calendarShortcuts
|
|
68
|
+
});
|
|
69
|
+
const pad = value => String(value).padStart(2, "0");
|
|
70
|
+
const validKey = (year, month, day) => {
|
|
71
|
+
const date = new Date(Date.UTC(year, month - 1, day));
|
|
72
|
+
return date.getUTCFullYear() === year && date.getUTCMonth() === month - 1 && date.getUTCDate() === day ? `${year}-${pad(month)}-${pad(day)}` : null;
|
|
73
|
+
};
|
|
74
|
+
/** The Monday of an ISO week of a year. */
|
|
75
|
+
const isoWeekStart = (year, week) => {
|
|
76
|
+
const january4 = new Date(Date.UTC(year, 0, 4));
|
|
77
|
+
const monday = new Date(january4.getTime() - ((january4.getUTCDay() || 7) - 1) * 86_400_000);
|
|
78
|
+
return addDayKeys(monday.toISOString().slice(0, 10), (week - 1) * 7);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Reads German and English dates, weekdays, months, week numbers, today, and tomorrow for Go to. Weekdays include
|
|
83
|
+
* today unless preceded by next; a month alone uses the next year if it has passed. A date without a year is this
|
|
84
|
+
* year's. Names ignore case and accents and allow a trailing dot. Returns a `YYYY-MM-DD` key or `null`.
|
|
85
|
+
*/
|
|
86
|
+
export const parseGoTo = (text, today) => {
|
|
87
|
+
const value = text.trim().toLowerCase();
|
|
88
|
+
if (!value) return null;
|
|
89
|
+
const year = Number(today.slice(0, 4));
|
|
90
|
+
if (/^(heute|today)$/.test(value)) return today;
|
|
91
|
+
if (/^(morgen|tomorrow)$/.test(value)) return addDayKeys(today, 1);
|
|
92
|
+
const fullYear = raw => raw ? raw.length === 2 ? 2000 + Number(raw) : Number(raw) : year;
|
|
93
|
+
let match = /^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(value);
|
|
94
|
+
if (match) return validKey(Number(match[1]), Number(match[2]), Number(match[3]));
|
|
95
|
+
match = /^(\d{1,2})\.(\d{1,2})\.?(\d{2}|\d{4})?$/.exec(value);
|
|
96
|
+
if (match) return validKey(fullYear(match[3]), Number(match[2]), Number(match[1]));
|
|
97
|
+
match = /^(\d{1,2})\/(\d{1,2})(?:\/(\d{2}|\d{4}))?$/.exec(value);
|
|
98
|
+
if (match) return validKey(fullYear(match[3]), Number(match[1]), Number(match[2]));
|
|
99
|
+
match = /^(?:kw|w|week|woche)\s*(\d{1,2})(?:\s*\/?\s*(\d{4}))?$/.exec(value);
|
|
100
|
+
if (match) {
|
|
101
|
+
const week = Number(match[1]);
|
|
102
|
+
return week >= 1 && week <= 53 ? isoWeekStart(match[2] ? Number(match[2]) : year, week) : null;
|
|
103
|
+
}
|
|
104
|
+
const named = value.normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/\.$/, "").trim();
|
|
105
|
+
const weekdays = ["montag mo monday mon", "dienstag di tuesday tue tues", "mittwoch mi wednesday wed", "donnerstag do thursday thu thur thurs", "freitag fr friday fri", "samstag sa saturday sat", "sonntag so sunday sun"];
|
|
106
|
+
match = /^(?:(am|on|nachste|nachsten|nachster|naechsten|kommende|kommenden|next)\s+)?([a-z]+)$/.exec(named);
|
|
107
|
+
if (match) {
|
|
108
|
+
const name = match[2];
|
|
109
|
+
const weekday = weekdays.findIndex(names => names.split(" ").includes(name ?? ""));
|
|
110
|
+
if (weekday >= 0) {
|
|
111
|
+
const date = new Date(Date.UTC(year, Number(today.slice(5, 7)) - 1, Number(today.slice(8, 10))));
|
|
112
|
+
const todayWeekday = (date.getUTCDay() + 6) % 7;
|
|
113
|
+
let diff = (weekday - todayWeekday + 7) % 7;
|
|
114
|
+
if (match[1] && match[1] !== "am" && match[1] !== "on" && diff === 0) diff = 7;
|
|
115
|
+
return addDayKeys(today, diff);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const months = ["januar jan january", "februar feb february", "marz maerz mar mrz march", "april apr", "mai may", "juni jun june", "juli jul july", "august aug", "september sep sept", "oktober okt october oct", "november nov", "dezember dez december dec"];
|
|
119
|
+
const monthOf = name => months.findIndex(names => names.split(" ").includes(name ?? "")) + 1;
|
|
120
|
+
match = /^(\d{1,2})\.?\s+([a-z]+)\.?(?:\s+(\d{4}))?$/.exec(named);
|
|
121
|
+
if (match) return validKey(fullYear(match[3]), monthOf(match[2]), Number(match[1]));
|
|
122
|
+
match = /^([a-z]+)\.?\s+(\d{1,2})(?:,?\s+(\d{4}))?$/.exec(named);
|
|
123
|
+
if (match) return validKey(fullYear(match[3]), monthOf(match[1]), Number(match[2]));
|
|
124
|
+
match = /^([a-z]+)\.?(?:\s+(\d{4}))?$/.exec(named);
|
|
125
|
+
if (match) {
|
|
126
|
+
const month = monthOf(match[1]);
|
|
127
|
+
const monthYear = match[2] ? Number(match[2]) : year + (month < Number(today.slice(5, 7)) ? 1 : 0);
|
|
128
|
+
return validKey(monthYear, month, 1);
|
|
129
|
+
}
|
|
130
|
+
return null;
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/** Go to: a field that reads a date or a week number and names the day it found before the reader goes there. */
|
|
134
|
+
export const openCalendarGoTo = props => dialogCore.open(close => {
|
|
135
|
+
const [text, setText] = createSignal("");
|
|
136
|
+
const result = () => parseGoTo(text(), props.today);
|
|
137
|
+
return _$ssr(_tmpl$6, _$escape(_$createComponent(DialogHeader, {
|
|
138
|
+
get title() {
|
|
139
|
+
return props.messages.calendarCommandGoTo;
|
|
140
|
+
},
|
|
141
|
+
icon: "ti ti-calendar-search",
|
|
142
|
+
close: () => close()
|
|
143
|
+
})), _$ssrAttribute("aria-label", _$escape(props.messages.calendarCommandGoTo, true), false), _$ssrAttribute("placeholder", _$escape(props.messages.calendarGoToPlaceholder, true), false) + _$ssrAttribute("value", _$escape(text(), true), false), _$ssrAttribute("data-ok", result() ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
144
|
+
get when() {
|
|
145
|
+
return result();
|
|
146
|
+
},
|
|
147
|
+
get fallback() {
|
|
148
|
+
return _$memo(() => !!text().trim())() ? props.messages.calendarGoToUnknown : props.messages.calendarGoToHint;
|
|
149
|
+
},
|
|
150
|
+
children: key => `→ ${props.describe(key())}`
|
|
151
|
+
})), _$ssrAttribute("disabled", !result(), true), _$escape(props.messages.calendarGoToGo));
|
|
152
|
+
}, {
|
|
153
|
+
panelClassName: "k2b-dialog k2b-dialog--small",
|
|
154
|
+
ariaLabel: props.messages.calendarCommandGoTo,
|
|
155
|
+
initialFocus: "first-input"
|
|
156
|
+
}).then(key => {
|
|
157
|
+
if (key) props.onGo(key);
|
|
158
|
+
});
|
|
159
|
+
//# sourceMappingURL=calendar-dialogs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["content/calendar-dialogs.tsx"],"sourcesContent":["import { createSignal, For, Show } from \"solid-js\";\nimport { dialogCore } from \"../feedback/dialog-core\";\nimport { DialogHeader } from \"../feedback/prompts\";\nimport type { CalendarCommand } from \"./Calendar\";\nimport { addDayKeys } from \"./calendar-days\";\nimport type { CalendarMessages } from \"./calendar-messages\";\n\nconst isMac = () => typeof navigator !== \"undefined\" && /Mac|iPhone|iPad/.test(navigator.platform);\n\n/** The keys of a shortcut as the reader presses them, such as [\"⇧\", \"N\"] or [\"Shift\", \"N\"]. */\nexport const shortcutKeys = (shortcut: string): string[] => {\n const mac = isMac();\n const names: Record<string, string> = {\n shift: mac ? \"⇧\" : \"Shift\",\n alt: mac ? \"⌥\" : \"Alt\",\n ctrl: mac ? \"⌃\" : \"Ctrl\",\n meta: mac ? \"⌘\" : \"Meta\",\n mod: mac ? \"⌘\" : \"Ctrl\",\n arrowup: \"↑\",\n arrowdown: \"↓\",\n arrowleft: \"←\",\n arrowright: \"→\",\n };\n return shortcut.split(\"+\").map((part) => names[part.toLowerCase()] ?? (part.length === 1 ? part.toUpperCase() : part));\n};\n\n/**\n * The calendar's shortcuts: the same list the host registers for its dispatcher and its help. `alternatives` names\n * other keys the calendar itself handles for a command, such as the arrow keys that page like J and K.\n */\nexport const openCalendarShortcuts = (\n commands: readonly CalendarCommand[],\n messages: CalendarMessages,\n alternatives: Readonly<Record<string, string>> = {},\n) =>\n dialogCore.open<void>(\n (close) => (\n <div class=\"k2b-dialog__panel\">\n <DialogHeader title={messages.calendarShortcuts} icon=\"ti ti-keyboard\" close={() => close()} />\n <div class=\"k2b-dialog__body\">\n <dl class=\"k2b-calendar-shortcuts\">\n <For each={commands.filter((command) => command.shortcut)}>\n {(command) => (\n <>\n <dt>\n <For each={shortcutKeys(command.shortcut!)}>{(key) => <kbd class=\"k2b-calendar-shortcuts__key\">{key}</kbd>}</For>\n <Show when={alternatives[command.id]}>\n {(other) => (\n <>\n <span class=\"k2b-calendar-shortcuts__or\">/</span>\n <For each={shortcutKeys(other())}>{(key) => <kbd class=\"k2b-calendar-shortcuts__key\">{key}</kbd>}</For>\n </>\n )}\n </Show>\n </dt>\n <dd>{command.label}</dd>\n </>\n )}\n </For>\n </dl>\n <p class=\"k2b-calendar-shortcuts__note\">{messages.calendarShortcutsNote}</p>\n </div>\n </div>\n ),\n { panelClassName: \"k2b-dialog k2b-dialog--small\", ariaLabel: messages.calendarShortcuts },\n );\n\nconst pad = (value: number) => String(value).padStart(2, \"0\");\nconst validKey = (year: number, month: number, day: number) => {\n const date = new Date(Date.UTC(year, month - 1, day));\n return date.getUTCFullYear() === year && date.getUTCMonth() === month - 1 && date.getUTCDate() === day\n ? `${year}-${pad(month)}-${pad(day)}`\n : null;\n};\n/** The Monday of an ISO week of a year. */\nconst isoWeekStart = (year: number, week: number) => {\n const january4 = new Date(Date.UTC(year, 0, 4));\n const monday = new Date(january4.getTime() - ((january4.getUTCDay() || 7) - 1) * 86_400_000);\n return addDayKeys(monday.toISOString().slice(0, 10), (week - 1) * 7);\n};\n\n/**\n * Reads German and English dates, weekdays, months, week numbers, today, and tomorrow for Go to. Weekdays include\n * today unless preceded by next; a month alone uses the next year if it has passed. A date without a year is this\n * year's. Names ignore case and accents and allow a trailing dot. Returns a `YYYY-MM-DD` key or `null`.\n */\nexport const parseGoTo = (text: string, today: string): string | null => {\n const value = text.trim().toLowerCase();\n if (!value) return null;\n const year = Number(today.slice(0, 4));\n if (/^(heute|today)$/.test(value)) return today;\n if (/^(morgen|tomorrow)$/.test(value)) return addDayKeys(today, 1);\n const fullYear = (raw: string | undefined) => (raw ? (raw.length === 2 ? 2000 + Number(raw) : Number(raw)) : year);\n let match = /^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/.exec(value);\n if (match) return validKey(Number(match[1]), Number(match[2]), Number(match[3]));\n match = /^(\\d{1,2})\\.(\\d{1,2})\\.?(\\d{2}|\\d{4})?$/.exec(value);\n if (match) return validKey(fullYear(match[3]), Number(match[2]), Number(match[1]));\n match = /^(\\d{1,2})\\/(\\d{1,2})(?:\\/(\\d{2}|\\d{4}))?$/.exec(value);\n if (match) return validKey(fullYear(match[3]), Number(match[1]), Number(match[2]));\n match = /^(?:kw|w|week|woche)\\s*(\\d{1,2})(?:\\s*\\/?\\s*(\\d{4}))?$/.exec(value);\n if (match) {\n const week = Number(match[1]);\n return week >= 1 && week <= 53 ? isoWeekStart(match[2] ? Number(match[2]) : year, week) : null;\n }\n const named = value\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .replace(/\\.$/, \"\")\n .trim();\n const weekdays = [\n \"montag mo monday mon\",\n \"dienstag di tuesday tue tues\",\n \"mittwoch mi wednesday wed\",\n \"donnerstag do thursday thu thur thurs\",\n \"freitag fr friday fri\",\n \"samstag sa saturday sat\",\n \"sonntag so sunday sun\",\n ];\n match = /^(?:(am|on|nachste|nachsten|nachster|naechsten|kommende|kommenden|next)\\s+)?([a-z]+)$/.exec(named);\n if (match) {\n const name = match[2];\n const weekday = weekdays.findIndex((names) => names.split(\" \").includes(name ?? \"\"));\n if (weekday >= 0) {\n const date = new Date(Date.UTC(year, Number(today.slice(5, 7)) - 1, Number(today.slice(8, 10))));\n const todayWeekday = (date.getUTCDay() + 6) % 7;\n let diff = (weekday - todayWeekday + 7) % 7;\n if (match[1] && match[1] !== \"am\" && match[1] !== \"on\" && diff === 0) diff = 7;\n return addDayKeys(today, diff);\n }\n }\n const months = [\n \"januar jan january\",\n \"februar feb february\",\n \"marz maerz mar mrz march\",\n \"april apr\",\n \"mai may\",\n \"juni jun june\",\n \"juli jul july\",\n \"august aug\",\n \"september sep sept\",\n \"oktober okt october oct\",\n \"november nov\",\n \"dezember dez december dec\",\n ];\n const monthOf = (name: string | undefined) => months.findIndex((names) => names.split(\" \").includes(name ?? \"\")) + 1;\n match = /^(\\d{1,2})\\.?\\s+([a-z]+)\\.?(?:\\s+(\\d{4}))?$/.exec(named);\n if (match) return validKey(fullYear(match[3]), monthOf(match[2]), Number(match[1]));\n match = /^([a-z]+)\\.?\\s+(\\d{1,2})(?:,?\\s+(\\d{4}))?$/.exec(named);\n if (match) return validKey(fullYear(match[3]), monthOf(match[1]), Number(match[2]));\n match = /^([a-z]+)\\.?(?:\\s+(\\d{4}))?$/.exec(named);\n if (match) {\n const month = monthOf(match[1]);\n const monthYear = match[2] ? Number(match[2]) : year + (month < Number(today.slice(5, 7)) ? 1 : 0);\n return validKey(monthYear, month, 1);\n }\n return null;\n};\n\n/** Go to: a field that reads a date or a week number and names the day it found before the reader goes there. */\nexport const openCalendarGoTo = (props: {\n messages: CalendarMessages;\n today: string;\n describe: (key: string) => string;\n onGo: (key: string) => void;\n}) =>\n dialogCore\n .open<string>(\n (close) => {\n const [text, setText] = createSignal(\"\");\n const result = () => parseGoTo(text(), props.today);\n return (\n <form\n class=\"k2b-dialog__panel\"\n onSubmit={(event) => {\n event.preventDefault();\n const key = result();\n if (key) close(key);\n }}\n >\n <DialogHeader title={props.messages.calendarCommandGoTo} icon=\"ti ti-calendar-search\" close={() => close()} />\n <div class=\"k2b-dialog__body k2b-calendar-goto\">\n <input\n class=\"k2b-calendar-goto__input\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck={false}\n aria-label={props.messages.calendarCommandGoTo}\n aria-describedby=\"k2b-calendar-goto-hint\"\n placeholder={props.messages.calendarGoToPlaceholder}\n value={text()}\n onInput={(event) => setText(event.currentTarget.value)}\n />\n <p class=\"k2b-calendar-goto__preview\" id=\"k2b-calendar-goto-hint\" aria-live=\"polite\" data-ok={result() ? \"true\" : undefined}>\n <Show when={result()} fallback={text().trim() ? props.messages.calendarGoToUnknown : props.messages.calendarGoToHint}>\n {(key) => `→ ${props.describe(key())}`}\n </Show>\n </p>\n </div>\n <footer class=\"k2b-dialog__actions\">\n <button type=\"submit\" class=\"k2b-button\" data-variant=\"primary\" data-size=\"sm\" disabled={!result()}>\n {props.messages.calendarGoToGo}\n </button>\n </footer>\n </form>\n );\n },\n { panelClassName: \"k2b-dialog k2b-dialog--small\", ariaLabel: props.messages.calendarCommandGoTo, initialFocus: \"first-input\" },\n )\n .then((key) => {\n if (key) props.onGo(key);\n });\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,13 +2,32 @@ import { i18n } from "@k2b/stdlib";
|
|
|
2
2
|
import { useLocale } from "../intl/locale";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* The
|
|
5
|
+
* The calendar's own strings. They live beside the calendar instead of in the shared catalog, so applications that
|
|
6
6
|
* never render a calendar do not ship them.
|
|
7
7
|
*/
|
|
8
8
|
const calendarMessages = i18n.define({
|
|
9
9
|
baseLocale: "en",
|
|
10
10
|
messages: {
|
|
11
11
|
en: {
|
|
12
|
+
calendarView: "Calendar view",
|
|
13
|
+
openDate: ({
|
|
14
|
+
label
|
|
15
|
+
}) => `Open ${label}`,
|
|
16
|
+
createEventOn: ({
|
|
17
|
+
label
|
|
18
|
+
}) => `Create event on ${label}`,
|
|
19
|
+
hiddenOverlappingEvents: ({
|
|
20
|
+
count
|
|
21
|
+
}) => `${count} hidden overlapping events`,
|
|
22
|
+
calendarEventTime: ({
|
|
23
|
+
title,
|
|
24
|
+
start,
|
|
25
|
+
end
|
|
26
|
+
}) => `${title}, ${start} to ${end}`,
|
|
27
|
+
weekShort: "Wk",
|
|
28
|
+
noEvents: "No events",
|
|
29
|
+
moveEvent: "Move event",
|
|
30
|
+
resizeEvent: "Resize event",
|
|
12
31
|
calendarMoreEvents: ({
|
|
13
32
|
count
|
|
14
33
|
}) => `+${count} more`,
|
|
@@ -38,9 +57,132 @@ const calendarMessages = i18n.define({
|
|
|
38
57
|
calendarContinuesUntil: ({
|
|
39
58
|
day,
|
|
40
59
|
month
|
|
41
|
-
}) => `until ${month ? `${month} ` : ""}${day}
|
|
60
|
+
}) => `until ${month ? `${month} ` : ""}${day}`,
|
|
61
|
+
calendarDuration: ({
|
|
62
|
+
minutes
|
|
63
|
+
}) => {
|
|
64
|
+
if (minutes < 60) return `${minutes} min`;
|
|
65
|
+
const hours = Math.floor(minutes / 60);
|
|
66
|
+
const rest = minutes % 60;
|
|
67
|
+
return `${hours} hr${rest ? ` ${rest} min` : hours === 1 ? "" : "s"}`;
|
|
68
|
+
},
|
|
69
|
+
calendarFree: ({
|
|
70
|
+
duration
|
|
71
|
+
}) => `${duration} free`,
|
|
72
|
+
calendarCreateAt: ({
|
|
73
|
+
start,
|
|
74
|
+
end
|
|
75
|
+
}) => `Create event ${start}–${end}`,
|
|
76
|
+
calendarFreeAction: ({
|
|
77
|
+
duration,
|
|
78
|
+
from,
|
|
79
|
+
to,
|
|
80
|
+
start,
|
|
81
|
+
end
|
|
82
|
+
}) => `${duration} free, ${from} to ${to}. Create event ${start}–${end}`,
|
|
83
|
+
calendarRemaining: ({
|
|
84
|
+
duration
|
|
85
|
+
}) => `${duration} left`,
|
|
86
|
+
calendarSoon: ({
|
|
87
|
+
title,
|
|
88
|
+
duration
|
|
89
|
+
}) => `${title} in ${duration}`,
|
|
90
|
+
calendarNight: ({
|
|
91
|
+
from,
|
|
92
|
+
to
|
|
93
|
+
}) => `Night · ${from} → ${to}`,
|
|
94
|
+
calendarNightHours: ({
|
|
95
|
+
from,
|
|
96
|
+
to
|
|
97
|
+
}) => `Night · ${from}–${to}`,
|
|
98
|
+
calendarFoldNight: "Fold",
|
|
99
|
+
calendarOpenNight: "Open the night",
|
|
100
|
+
calendarFoldNights: "Fold the nights",
|
|
101
|
+
calendarOpenNights: ({
|
|
102
|
+
from,
|
|
103
|
+
to
|
|
104
|
+
}) => `Open the nights, ${from} to ${to}`,
|
|
105
|
+
calendarUntil: ({
|
|
106
|
+
time
|
|
107
|
+
}) => `until ${time}`,
|
|
108
|
+
calendarNothingPlannedShort: "Nothing planned",
|
|
109
|
+
calendarUnfoldDays: ({
|
|
110
|
+
count
|
|
111
|
+
}) => count === 1 ? "Show day" : "Show days",
|
|
112
|
+
calendarDayCount: ({
|
|
113
|
+
count
|
|
114
|
+
}) => `${count} days`,
|
|
115
|
+
calendarDaySummary: ({
|
|
116
|
+
events,
|
|
117
|
+
tasks
|
|
118
|
+
}) => [events ? `${events} ${events === 1 ? "event" : "events"}` : "", tasks ? `${tasks} ${tasks === 1 ? "to-do" : "to-dos"}` : ""].filter(Boolean).join(" · "),
|
|
119
|
+
calendarMoreDays: "More days load as you scroll …",
|
|
120
|
+
calendarAllDayRow: "all day",
|
|
121
|
+
calendarAllDayRowShort: "all day",
|
|
122
|
+
calendarAllDayAndDue: "All day and due",
|
|
123
|
+
calendarDone: ({
|
|
124
|
+
title
|
|
125
|
+
}) => `Done: ${title}`,
|
|
126
|
+
calendarAllDone: "All done for today",
|
|
127
|
+
calendarAllDoneShort: "All done",
|
|
128
|
+
calendarDue: ({
|
|
129
|
+
time
|
|
130
|
+
}) => `due ${time}`,
|
|
131
|
+
calendarFits: "fits",
|
|
132
|
+
calendarTooShort: ({
|
|
133
|
+
duration
|
|
134
|
+
}) => `${duration} too short`,
|
|
135
|
+
calendarOverlaps: ({
|
|
136
|
+
title
|
|
137
|
+
}) => `overlaps “${title}”`,
|
|
138
|
+
calendarWeekNumber: ({
|
|
139
|
+
week
|
|
140
|
+
}) => `W ${week}`,
|
|
141
|
+
calendarWeek: "Week",
|
|
142
|
+
calendarDays: "Days",
|
|
143
|
+
calendarKeyboardHelp: "Arrow keys move between days, events, and free time. Enter opens or creates, Space checks off.",
|
|
144
|
+
calendarDayKeyboardHelp: "Tab moves through the events and free time of each day. Enter opens or creates, Space checks off.",
|
|
145
|
+
calendarShortcuts: "Keyboard shortcuts",
|
|
146
|
+
calendarShortcutsNote: "Shortcuts work anywhere on this page, except while you type in a text field or a dialog is open.",
|
|
147
|
+
calendarCommandToday: "Today",
|
|
148
|
+
calendarCommandTodayDescription: "Show today in the calendar",
|
|
149
|
+
calendarCommandNext: "Next",
|
|
150
|
+
calendarCommandNextDescription: "Show the next day, week, month, or year",
|
|
151
|
+
calendarCommandPrevious: "Previous",
|
|
152
|
+
calendarCommandPreviousDescription: "Show the previous day, week, month, or year",
|
|
153
|
+
calendarCommandView: ({
|
|
154
|
+
view
|
|
155
|
+
}) => `${view} view`,
|
|
156
|
+
calendarCommandViewDescription: ({
|
|
157
|
+
view
|
|
158
|
+
}) => `Switch the calendar to the ${view.toLowerCase()} view`,
|
|
159
|
+
calendarCommandGoTo: "Go to",
|
|
160
|
+
calendarCommandGoToDescription: "Jump to a date or a week number",
|
|
161
|
+
calendarGoToPlaceholder: "Date, such as 3/15, Friday, March, or W 12",
|
|
162
|
+
calendarGoToHint: "Enter a date, a weekday, a month, or a week number.",
|
|
163
|
+
calendarGoToUnknown: "Not recognized.",
|
|
164
|
+
calendarGoToGo: "Go"
|
|
42
165
|
},
|
|
43
166
|
de: {
|
|
167
|
+
calendarView: "Kalenderansicht",
|
|
168
|
+
openDate: ({
|
|
169
|
+
label
|
|
170
|
+
}) => `${label} öffnen`,
|
|
171
|
+
createEventOn: ({
|
|
172
|
+
label
|
|
173
|
+
}) => `Termin am ${label} erstellen`,
|
|
174
|
+
hiddenOverlappingEvents: ({
|
|
175
|
+
count
|
|
176
|
+
}) => `${count} ausgeblendete überlappende Termine`,
|
|
177
|
+
calendarEventTime: ({
|
|
178
|
+
title,
|
|
179
|
+
start,
|
|
180
|
+
end
|
|
181
|
+
}) => `${title}, ${start} bis ${end}`,
|
|
182
|
+
weekShort: "KW",
|
|
183
|
+
noEvents: "Keine Termine",
|
|
184
|
+
moveEvent: "Termin verschieben",
|
|
185
|
+
resizeEvent: "Termindauer ändern",
|
|
44
186
|
calendarMoreEvents: ({
|
|
45
187
|
count
|
|
46
188
|
}) => `+${count} weitere`,
|
|
@@ -70,7 +212,111 @@ const calendarMessages = i18n.define({
|
|
|
70
212
|
calendarContinuesUntil: ({
|
|
71
213
|
day,
|
|
72
214
|
month
|
|
73
|
-
}) => `bis ${day}.${month ? ` ${month}` : ""}
|
|
215
|
+
}) => `bis ${day}.${month ? ` ${month}` : ""}`,
|
|
216
|
+
calendarDuration: ({
|
|
217
|
+
minutes
|
|
218
|
+
}) => {
|
|
219
|
+
if (minutes < 60) return `${minutes} Min`;
|
|
220
|
+
const hours = Math.floor(minutes / 60);
|
|
221
|
+
const rest = minutes % 60;
|
|
222
|
+
return rest ? `${hours} Std. ${rest}` : `${hours} Std.`;
|
|
223
|
+
},
|
|
224
|
+
calendarFree: ({
|
|
225
|
+
duration
|
|
226
|
+
}) => `${duration} frei`,
|
|
227
|
+
calendarCreateAt: ({
|
|
228
|
+
start,
|
|
229
|
+
end
|
|
230
|
+
}) => `Termin ${start}–${end} anlegen`,
|
|
231
|
+
calendarFreeAction: ({
|
|
232
|
+
duration,
|
|
233
|
+
from,
|
|
234
|
+
to,
|
|
235
|
+
start,
|
|
236
|
+
end
|
|
237
|
+
}) => `${duration} frei, ${from} bis ${to}. Termin ${start}–${end} anlegen`,
|
|
238
|
+
calendarRemaining: ({
|
|
239
|
+
duration
|
|
240
|
+
}) => `noch ${duration}`,
|
|
241
|
+
calendarSoon: ({
|
|
242
|
+
title,
|
|
243
|
+
duration
|
|
244
|
+
}) => `${title} in ${duration}`,
|
|
245
|
+
calendarNight: ({
|
|
246
|
+
from,
|
|
247
|
+
to
|
|
248
|
+
}) => `Nacht · ${from} → ${to}`,
|
|
249
|
+
calendarNightHours: ({
|
|
250
|
+
from,
|
|
251
|
+
to
|
|
252
|
+
}) => `Nacht · ${from}–${to}`,
|
|
253
|
+
calendarFoldNight: "einklappen",
|
|
254
|
+
calendarOpenNight: "Nacht ausklappen",
|
|
255
|
+
calendarFoldNights: "Nächte einklappen",
|
|
256
|
+
calendarOpenNights: ({
|
|
257
|
+
from,
|
|
258
|
+
to
|
|
259
|
+
}) => `Nächte ausklappen, ${from}–${to} Uhr`,
|
|
260
|
+
calendarUntil: ({
|
|
261
|
+
time
|
|
262
|
+
}) => `bis ${time}`,
|
|
263
|
+
calendarNothingPlannedShort: "Nichts geplant",
|
|
264
|
+
calendarUnfoldDays: ({
|
|
265
|
+
count
|
|
266
|
+
}) => count === 1 ? "Tag aufklappen" : "Tage aufklappen",
|
|
267
|
+
calendarDayCount: ({
|
|
268
|
+
count
|
|
269
|
+
}) => `${count} Tage`,
|
|
270
|
+
calendarDaySummary: ({
|
|
271
|
+
events,
|
|
272
|
+
tasks
|
|
273
|
+
}) => [events ? `${events} ${events === 1 ? "Termin" : "Termine"}` : "", tasks ? `${tasks} ${tasks === 1 ? "To-do" : "To-dos"}` : ""].filter(Boolean).join(" · "),
|
|
274
|
+
calendarMoreDays: "Weitere Tage laden beim Scrollen …",
|
|
275
|
+
calendarAllDayRow: "ganztägig",
|
|
276
|
+
calendarAllDayRowShort: "ganzt.",
|
|
277
|
+
calendarAllDayAndDue: "Ganztägig und fällig",
|
|
278
|
+
calendarDone: ({
|
|
279
|
+
title
|
|
280
|
+
}) => `Erledigt: ${title}`,
|
|
281
|
+
calendarAllDone: "Alles für heute erledigt",
|
|
282
|
+
calendarAllDoneShort: "Alles erledigt",
|
|
283
|
+
calendarDue: ({
|
|
284
|
+
time
|
|
285
|
+
}) => `fällig ${time}`,
|
|
286
|
+
calendarFits: "passt",
|
|
287
|
+
calendarTooShort: ({
|
|
288
|
+
duration
|
|
289
|
+
}) => `${duration} zu kurz`,
|
|
290
|
+
calendarOverlaps: ({
|
|
291
|
+
title
|
|
292
|
+
}) => `überschneidet „${title}“`,
|
|
293
|
+
calendarWeekNumber: ({
|
|
294
|
+
week
|
|
295
|
+
}) => `KW ${week}`,
|
|
296
|
+
calendarWeek: "Woche",
|
|
297
|
+
calendarDays: "Tage",
|
|
298
|
+
calendarKeyboardHelp: "Pfeiltasten wechseln zwischen Tagen, Terminen und freier Zeit. Enter öffnet oder legt an, Leertaste hakt ab.",
|
|
299
|
+
calendarDayKeyboardHelp: "Tab wechselt zwischen den Terminen und der freien Zeit jedes Tages. Enter öffnet oder legt an, Leertaste hakt ab.",
|
|
300
|
+
calendarShortcuts: "Tastenkürzel",
|
|
301
|
+
calendarShortcutsNote: "Kürzel wirken überall auf dieser Seite, nur nicht beim Tippen in einem Eingabefeld oder bei offenem Dialog.",
|
|
302
|
+
calendarCommandToday: "Heute",
|
|
303
|
+
calendarCommandTodayDescription: "Im Kalender heute zeigen",
|
|
304
|
+
calendarCommandNext: "Weiter",
|
|
305
|
+
calendarCommandNextDescription: "Nächsten Tag, nächste Woche, nächsten Monat oder nächstes Jahr zeigen",
|
|
306
|
+
calendarCommandPrevious: "Zurück",
|
|
307
|
+
calendarCommandPreviousDescription: "Vorigen Tag, vorige Woche, vorigen Monat oder voriges Jahr zeigen",
|
|
308
|
+
calendarCommandView: ({
|
|
309
|
+
view
|
|
310
|
+
}) => `Ansicht ${view}`,
|
|
311
|
+
calendarCommandViewDescription: ({
|
|
312
|
+
view
|
|
313
|
+
}) => `Den Kalender als ${view} zeigen`,
|
|
314
|
+
calendarCommandGoTo: "Gehe zu",
|
|
315
|
+
calendarCommandGoToDescription: "Zu einem Datum oder einer Kalenderwoche springen",
|
|
316
|
+
calendarGoToPlaceholder: "Datum, z. B. 15.3., Freitag, März oder KW 12",
|
|
317
|
+
calendarGoToHint: "Datum, Wochentag, Monat oder Kalenderwoche eingeben.",
|
|
318
|
+
calendarGoToUnknown: "Nicht erkannt.",
|
|
319
|
+
calendarGoToGo: "Springen"
|
|
74
320
|
}
|
|
75
321
|
}
|
|
76
322
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["content/calendar-messages.ts"],"sourcesContent":["import { i18n } from \"@k2b/stdlib\";\nimport { useLocale } from \"../intl/locale\";\n\n/**\n * The month view's own strings. They live beside the calendar instead of in the shared catalog, so applications that\n * never render a calendar do not ship them.\n */\nconst calendarMessages = i18n.define({\n baseLocale: \"en\",\n messages: {\n en: {\n calendarMoreEvents: ({ count }: { count: number }) => `+${count} more`,\n calendarMoreEventsOn: ({ count, label }: { count: number; label: string }) => `${count} more on ${label}`,\n calendarSelectionActions: \"Actions for the selected days\",\n calendarQuickCreate: \"New entry\",\n calendarSelectedDays: ({ start, end, count }: { start: string; end: string; count: number }) => `${start} – ${end} · ${count} days`,\n calendarOpenDay: \"Open day\",\n calendarOpenWeek: \"Open week\",\n calendarOpenWeekNumber: ({ week }: { week: number }) => `Week ${week}, open week`,\n calendarClearSelection: \"Clear selection\",\n calendarNewEvent: \"New event\",\n calendarNothingPlanned: \"Nothing planned.\",\n calendarContinuesFrom: ({ day, month }: { day: number; month?: string }) => `from ${month ? `${month} ` : \"\"}${day}`,\n calendarContinuesUntil: ({ day, month }: { day: number; month?: string }) => `until ${month ? `${month} ` : \"\"}${day}`,\n },\n de: {\n calendarMoreEvents: ({ count }) => `+${count} weitere`,\n calendarMoreEventsOn: ({ count, label }) => `${count} weitere am ${label}`,\n calendarSelectionActions: \"Aktionen für die ausgewählten Tage\",\n calendarQuickCreate: \"Neuer Eintrag\",\n calendarSelectedDays: ({ start, end, count }) => `${start} – ${end} · ${count} Tage`,\n calendarOpenDay: \"Tag öffnen\",\n calendarOpenWeek: \"Woche öffnen\",\n calendarOpenWeekNumber: ({ week }) => `KW ${week}, Woche öffnen`,\n calendarClearSelection: \"Auswahl aufheben\",\n calendarNewEvent: \"Neuer Termin\",\n calendarNothingPlanned: \"Nichts geplant.\",\n calendarContinuesFrom: ({ day, month }) => `seit ${day}.${month ? ` ${month}` : \"\"}`,\n calendarContinuesUntil: ({ day, month }) => `bis ${day}.${month ? ` ${month}` : \"\"}`,\n },\n },\n});\n\nexport type CalendarMessages = ReturnType<(typeof calendarMessages)[\"resolve\"]>[\"t\"];\n\n/** Resolved from the inherited render locale, like the rest of @k2b/ui. */\nexport const useCalendarMessages = (): (() => CalendarMessages) => {\n const locale = useLocale();\n return () => calendarMessages.resolve([locale()]).t;\n};\n\nexport const checkCalendarMessages = () => calendarMessages.check();\n"],"mappings":"AAAA,SAAS,IAAI,QAAQ,aAAa;AAClC,SAAS,SAAS,QAAQ,gBAAgB;;AAE1C;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;EACnC,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE;IACR,EAAE,EAAE;MACF,kBAAkB,EAAE,CAAC;QAAE;MAAyB,CAAC,KAAK,IAAI,KAAK,OAAO;MACtE,oBAAoB,EAAE,CAAC;QAAE,KAAK;QAAE;MAAwC,CAAC,KAAK,GAAG,KAAK,YAAY,KAAK,EAAE;MACzG,wBAAwB,EAAE,+BAA+B;MACzD,mBAAmB,EAAE,WAAW;MAChC,oBAAoB,EAAE,CAAC;QAAE,KAAK;QAAE,GAAG;QAAE;MAAqD,CAAC,KAAK,GAAG,KAAK,MAAM,GAAG,MAAM,KAAK,OAAO;MACnI,eAAe,EAAE,UAAU;MAC3B,gBAAgB,EAAE,WAAW;MAC7B,sBAAsB,EAAE,CAAC;QAAE;MAAuB,CAAC,KAAK,QAAQ,IAAI,aAAa;MACjF,sBAAsB,EAAE,iBAAiB;MACzC,gBAAgB,EAAE,WAAW;MAC7B,sBAAsB,EAAE,kBAAkB;MAC1C,qBAAqB,EAAE,CAAC;QAAE,GAAG;QAAE;MAAuC,CAAC,KAAK,QAAQ,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE;MACpH,sBAAsB,EAAE,CAAC;QAAE,GAAG;QAAE;MAAuC,CAAC,KAAK,SAAS,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,EAAE,GAAG,GAAG;IACtH,CAAC;IACD,EAAE,EAAE;MACF,kBAAkB,EAAE,CAAC;QAAE;MAAM,CAAC,KAAK,IAAI,KAAK,UAAU;MACtD,oBAAoB,EAAE,CAAC;QAAE,KAAK;QAAE;MAAM,CAAC,KAAK,GAAG,KAAK,eAAe,KAAK,EAAE;MAC1E,wBAAwB,EAAE,oCAAoC;MAC9D,mBAAmB,EAAE,eAAe;MACpC,oBAAoB,EAAE,CAAC;QAAE,KAAK;QAAE,GAAG;QAAE;MAAM,CAAC,KAAK,GAAG,KAAK,MAAM,GAAG,MAAM,KAAK,OAAO;MACpF,eAAe,EAAE,YAAY;MAC7B,gBAAgB,EAAE,cAAc;MAChC,sBAAsB,EAAE,CAAC;QAAE;MAAK,CAAC,KAAK,MAAM,IAAI,gBAAgB;MAChE,sBAAsB,EAAE,kBAAkB;MAC1C,gBAAgB,EAAE,cAAc;MAChC,sBAAsB,EAAE,iBAAiB;MACzC,qBAAqB,EAAE,CAAC;QAAE,GAAG;QAAE;MAAM,CAAC,KAAK,QAAQ,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,GAAG,EAAE,EAAE;MACpF,sBAAsB,EAAE,CAAC;QAAE,GAAG;QAAE;MAAM,CAAC,KAAK,OAAO,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,GAAG,EAAE;IACpF;EACF;AACF,CAAC,CAAC;AAIF;AACA,OAAO,MAAM,mBAAmB,GAAG,MAAgC;EACjE,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;EAC1B,OAAO,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,OAAO,MAAM,qBAAqB,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["content/calendar-messages.ts"],"sourcesContent":["import { i18n } from \"@k2b/stdlib\";\nimport { useLocale } from \"../intl/locale\";\n\n/**\n * The calendar's own strings. They live beside the calendar instead of in the shared catalog, so applications that\n * never render a calendar do not ship them.\n */\nconst calendarMessages = i18n.define({\n baseLocale: \"en\",\n messages: {\n en: {\n calendarView: \"Calendar view\",\n openDate: ({ label }: { label: string }) => `Open ${label}`,\n createEventOn: ({ label }: { label: string }) => `Create event on ${label}`,\n hiddenOverlappingEvents: ({ count }: { count: number }) => `${count} hidden overlapping events`,\n calendarEventTime: ({ title, start, end }: { title: string; start: string; end: string }) => `${title}, ${start} to ${end}`,\n weekShort: \"Wk\",\n noEvents: \"No events\",\n moveEvent: \"Move event\",\n resizeEvent: \"Resize event\",\n calendarMoreEvents: ({ count }: { count: number }) => `+${count} more`,\n calendarMoreEventsOn: ({ count, label }: { count: number; label: string }) => `${count} more on ${label}`,\n calendarSelectionActions: \"Actions for the selected days\",\n calendarQuickCreate: \"New entry\",\n calendarSelectedDays: ({ start, end, count }: { start: string; end: string; count: number }) => `${start} – ${end} · ${count} days`,\n calendarOpenDay: \"Open day\",\n calendarOpenWeek: \"Open week\",\n calendarOpenWeekNumber: ({ week }: { week: number }) => `Week ${week}, open week`,\n calendarClearSelection: \"Clear selection\",\n calendarNewEvent: \"New event\",\n calendarNothingPlanned: \"Nothing planned.\",\n calendarContinuesFrom: ({ day, month }: { day: number; month?: string }) => `from ${month ? `${month} ` : \"\"}${day}`,\n calendarContinuesUntil: ({ day, month }: { day: number; month?: string }) => `until ${month ? `${month} ` : \"\"}${day}`,\n calendarDuration: ({ minutes }: { minutes: number }) => {\n if (minutes < 60) return `${minutes} min`;\n const hours = Math.floor(minutes / 60);\n const rest = minutes % 60;\n return `${hours} hr${rest ? ` ${rest} min` : hours === 1 ? \"\" : \"s\"}`;\n },\n calendarFree: ({ duration }: { duration: string }) => `${duration} free`,\n calendarCreateAt: ({ start, end }: { start: string; end: string }) => `Create event ${start}–${end}`,\n calendarFreeAction: ({\n duration,\n from,\n to,\n start,\n end,\n }: {\n duration: string;\n from: string;\n to: string;\n start: string;\n end: string;\n }) => `${duration} free, ${from} to ${to}. Create event ${start}–${end}`,\n calendarRemaining: ({ duration }: { duration: string }) => `${duration} left`,\n calendarSoon: ({ title, duration }: { title: string; duration: string }) => `${title} in ${duration}`,\n calendarNight: ({ from, to }: { from: string; to: string }) => `Night · ${from} → ${to}`,\n calendarNightHours: ({ from, to }: { from: string; to: string }) => `Night · ${from}–${to}`,\n calendarFoldNight: \"Fold\",\n calendarOpenNight: \"Open the night\",\n calendarFoldNights: \"Fold the nights\",\n calendarOpenNights: ({ from, to }: { from: string; to: string }) => `Open the nights, ${from} to ${to}`,\n calendarUntil: ({ time }: { time: string }) => `until ${time}`,\n calendarNothingPlannedShort: \"Nothing planned\",\n calendarUnfoldDays: ({ count }: { count: number }): string => (count === 1 ? \"Show day\" : \"Show days\"),\n calendarDayCount: ({ count }: { count: number }) => `${count} days`,\n calendarDaySummary: ({ events, tasks }: { events: number; tasks: number }) =>\n [events ? `${events} ${events === 1 ? \"event\" : \"events\"}` : \"\", tasks ? `${tasks} ${tasks === 1 ? \"to-do\" : \"to-dos\"}` : \"\"]\n .filter(Boolean)\n .join(\" · \"),\n calendarMoreDays: \"More days load as you scroll …\",\n calendarAllDayRow: \"all day\",\n calendarAllDayRowShort: \"all day\",\n calendarAllDayAndDue: \"All day and due\",\n calendarDone: ({ title }: { title: string }) => `Done: ${title}`,\n calendarAllDone: \"All done for today\",\n calendarAllDoneShort: \"All done\",\n calendarDue: ({ time }: { time: string }) => `due ${time}`,\n calendarFits: \"fits\",\n calendarTooShort: ({ duration }: { duration: string }) => `${duration} too short`,\n calendarOverlaps: ({ title }: { title: string }) => `overlaps “${title}”`,\n calendarWeekNumber: ({ week }: { week: number }) => `W ${week}`,\n calendarWeek: \"Week\",\n calendarDays: \"Days\",\n calendarKeyboardHelp: \"Arrow keys move between days, events, and free time. Enter opens or creates, Space checks off.\",\n calendarDayKeyboardHelp: \"Tab moves through the events and free time of each day. Enter opens or creates, Space checks off.\",\n calendarShortcuts: \"Keyboard shortcuts\",\n calendarShortcutsNote: \"Shortcuts work anywhere on this page, except while you type in a text field or a dialog is open.\",\n calendarCommandToday: \"Today\",\n calendarCommandTodayDescription: \"Show today in the calendar\",\n calendarCommandNext: \"Next\",\n calendarCommandNextDescription: \"Show the next day, week, month, or year\",\n calendarCommandPrevious: \"Previous\",\n calendarCommandPreviousDescription: \"Show the previous day, week, month, or year\",\n calendarCommandView: ({ view }: { view: string }) => `${view} view`,\n calendarCommandViewDescription: ({ view }: { view: string }) => `Switch the calendar to the ${view.toLowerCase()} view`,\n calendarCommandGoTo: \"Go to\",\n calendarCommandGoToDescription: \"Jump to a date or a week number\",\n calendarGoToPlaceholder: \"Date, such as 3/15, Friday, March, or W 12\",\n calendarGoToHint: \"Enter a date, a weekday, a month, or a week number.\",\n calendarGoToUnknown: \"Not recognized.\",\n calendarGoToGo: \"Go\",\n },\n de: {\n calendarView: \"Kalenderansicht\",\n openDate: ({ label }) => `${label} öffnen`,\n createEventOn: ({ label }) => `Termin am ${label} erstellen`,\n hiddenOverlappingEvents: ({ count }) => `${count} ausgeblendete überlappende Termine`,\n calendarEventTime: ({ title, start, end }) => `${title}, ${start} bis ${end}`,\n weekShort: \"KW\",\n noEvents: \"Keine Termine\",\n moveEvent: \"Termin verschieben\",\n resizeEvent: \"Termindauer ändern\",\n calendarMoreEvents: ({ count }) => `+${count} weitere`,\n calendarMoreEventsOn: ({ count, label }) => `${count} weitere am ${label}`,\n calendarSelectionActions: \"Aktionen für die ausgewählten Tage\",\n calendarQuickCreate: \"Neuer Eintrag\",\n calendarSelectedDays: ({ start, end, count }) => `${start} – ${end} · ${count} Tage`,\n calendarOpenDay: \"Tag öffnen\",\n calendarOpenWeek: \"Woche öffnen\",\n calendarOpenWeekNumber: ({ week }) => `KW ${week}, Woche öffnen`,\n calendarClearSelection: \"Auswahl aufheben\",\n calendarNewEvent: \"Neuer Termin\",\n calendarNothingPlanned: \"Nichts geplant.\",\n calendarContinuesFrom: ({ day, month }) => `seit ${day}.${month ? ` ${month}` : \"\"}`,\n calendarContinuesUntil: ({ day, month }) => `bis ${day}.${month ? ` ${month}` : \"\"}`,\n calendarDuration: ({ minutes }) => {\n if (minutes < 60) return `${minutes} Min`;\n const hours = Math.floor(minutes / 60);\n const rest = minutes % 60;\n return rest ? `${hours} Std. ${rest}` : `${hours} Std.`;\n },\n calendarFree: ({ duration }) => `${duration} frei`,\n calendarCreateAt: ({ start, end }) => `Termin ${start}–${end} anlegen`,\n calendarFreeAction: ({ duration, from, to, start, end }) => `${duration} frei, ${from} bis ${to}. Termin ${start}–${end} anlegen`,\n calendarRemaining: ({ duration }) => `noch ${duration}`,\n calendarSoon: ({ title, duration }) => `${title} in ${duration}`,\n calendarNight: ({ from, to }) => `Nacht · ${from} → ${to}`,\n calendarNightHours: ({ from, to }) => `Nacht · ${from}–${to}`,\n calendarFoldNight: \"einklappen\",\n calendarOpenNight: \"Nacht ausklappen\",\n calendarFoldNights: \"Nächte einklappen\",\n calendarOpenNights: ({ from, to }) => `Nächte ausklappen, ${from}–${to} Uhr`,\n calendarUntil: ({ time }) => `bis ${time}`,\n calendarNothingPlannedShort: \"Nichts geplant\",\n calendarUnfoldDays: ({ count }) => (count === 1 ? \"Tag aufklappen\" : \"Tage aufklappen\"),\n calendarDayCount: ({ count }) => `${count} Tage`,\n calendarDaySummary: ({ events, tasks }) =>\n [events ? `${events} ${events === 1 ? \"Termin\" : \"Termine\"}` : \"\", tasks ? `${tasks} ${tasks === 1 ? \"To-do\" : \"To-dos\"}` : \"\"]\n .filter(Boolean)\n .join(\" · \"),\n calendarMoreDays: \"Weitere Tage laden beim Scrollen …\",\n calendarAllDayRow: \"ganztägig\",\n calendarAllDayRowShort: \"ganzt.\",\n calendarAllDayAndDue: \"Ganztägig und fällig\",\n calendarDone: ({ title }) => `Erledigt: ${title}`,\n calendarAllDone: \"Alles für heute erledigt\",\n calendarAllDoneShort: \"Alles erledigt\",\n calendarDue: ({ time }) => `fällig ${time}`,\n calendarFits: \"passt\",\n calendarTooShort: ({ duration }) => `${duration} zu kurz`,\n calendarOverlaps: ({ title }) => `überschneidet „${title}“`,\n calendarWeekNumber: ({ week }) => `KW ${week}`,\n calendarWeek: \"Woche\",\n calendarDays: \"Tage\",\n calendarKeyboardHelp: \"Pfeiltasten wechseln zwischen Tagen, Terminen und freier Zeit. Enter öffnet oder legt an, Leertaste hakt ab.\",\n calendarDayKeyboardHelp:\n \"Tab wechselt zwischen den Terminen und der freien Zeit jedes Tages. Enter öffnet oder legt an, Leertaste hakt ab.\",\n calendarShortcuts: \"Tastenkürzel\",\n calendarShortcutsNote: \"Kürzel wirken überall auf dieser Seite, nur nicht beim Tippen in einem Eingabefeld oder bei offenem Dialog.\",\n calendarCommandToday: \"Heute\",\n calendarCommandTodayDescription: \"Im Kalender heute zeigen\",\n calendarCommandNext: \"Weiter\",\n calendarCommandNextDescription: \"Nächsten Tag, nächste Woche, nächsten Monat oder nächstes Jahr zeigen\",\n calendarCommandPrevious: \"Zurück\",\n calendarCommandPreviousDescription: \"Vorigen Tag, vorige Woche, vorigen Monat oder voriges Jahr zeigen\",\n calendarCommandView: ({ view }) => `Ansicht ${view}`,\n calendarCommandViewDescription: ({ view }) => `Den Kalender als ${view} zeigen`,\n calendarCommandGoTo: \"Gehe zu\",\n calendarCommandGoToDescription: \"Zu einem Datum oder einer Kalenderwoche springen\",\n calendarGoToPlaceholder: \"Datum, z. B. 15.3., Freitag, März oder KW 12\",\n calendarGoToHint: \"Datum, Wochentag, Monat oder Kalenderwoche eingeben.\",\n calendarGoToUnknown: \"Nicht erkannt.\",\n calendarGoToGo: \"Springen\",\n },\n },\n});\n\nexport type CalendarMessages = ReturnType<(typeof calendarMessages)[\"resolve\"]>[\"t\"];\n\n/** Resolved from the inherited render locale, like the rest of @k2b/ui. */\nexport const useCalendarMessages = (): (() => CalendarMessages) => {\n const locale = useLocale();\n return () => calendarMessages.resolve([locale()]).t;\n};\n\nexport const checkCalendarMessages = () => calendarMessages.check();\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { suppressTextSelection } from "../internal/text-selection";
|
|
1
2
|
export const CALENDAR_SNAP_MINUTES = 15;
|
|
2
3
|
export const snapCalendarMinutes = (minutes, step = CALENDAR_SNAP_MINUTES) => Math.round(minutes / step) * step;
|
|
3
4
|
export const calendarDayIndexAtPoint = (clientX, startX, width, days) => {
|
|
@@ -30,13 +31,14 @@ export const startCalendarPointerSession = options => {
|
|
|
30
31
|
const startY = options.event.clientY;
|
|
31
32
|
// Leave enough room for normal click jitter before an event becomes a drag.
|
|
32
33
|
const threshold = options.threshold ?? 6;
|
|
33
|
-
const previousUserSelect = document.body.style.userSelect;
|
|
34
34
|
let clientX = startX;
|
|
35
35
|
let clientY = startY;
|
|
36
36
|
let active = false;
|
|
37
37
|
let finished = false;
|
|
38
38
|
let latest = null;
|
|
39
39
|
let scrollFrame = 0;
|
|
40
|
+
let releaseTextSelection = null;
|
|
41
|
+
let armed = !options.armAutoScroll;
|
|
40
42
|
const preview = () => {
|
|
41
43
|
const value = options.resolve(clientX, clientY);
|
|
42
44
|
if (value === null) return;
|
|
@@ -47,7 +49,9 @@ export const startCalendarPointerSession = options => {
|
|
|
47
49
|
scrollFrame = 0;
|
|
48
50
|
if (!active || !options.scrollContainer) return;
|
|
49
51
|
const rect = options.scrollContainer.getBoundingClientRect();
|
|
50
|
-
const
|
|
52
|
+
const inside = clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;
|
|
53
|
+
if (!armed && inside && clientY > rect.top + 56 && clientY < rect.bottom - 56) armed = true;
|
|
54
|
+
const speed = armed && (inside || !options.armAutoScroll) ? calendarAutoScrollSpeed(clientY, rect.top, rect.bottom) : 0;
|
|
51
55
|
if (speed !== 0) {
|
|
52
56
|
const before = options.scrollContainer.scrollTop;
|
|
53
57
|
options.scrollContainer.scrollTop += speed;
|
|
@@ -63,13 +67,13 @@ export const startCalendarPointerSession = options => {
|
|
|
63
67
|
window.removeEventListener("blur", cancel);
|
|
64
68
|
window.removeEventListener("keydown", onKeyDown);
|
|
65
69
|
if (target?.hasPointerCapture?.(pointerId)) target.releasePointerCapture(pointerId);
|
|
66
|
-
|
|
70
|
+
releaseTextSelection?.();
|
|
67
71
|
if (cancelActiveSession === cancel) cancelActiveSession = null;
|
|
68
72
|
};
|
|
69
73
|
const activate = () => {
|
|
70
74
|
if (active) return;
|
|
71
75
|
active = true;
|
|
72
|
-
|
|
76
|
+
releaseTextSelection = suppressTextSelection(pointerId);
|
|
73
77
|
target?.setPointerCapture?.(pointerId);
|
|
74
78
|
options.onActivate?.();
|
|
75
79
|
preview();
|
|
@@ -79,7 +83,11 @@ export const startCalendarPointerSession = options => {
|
|
|
79
83
|
if (finished) return;
|
|
80
84
|
finished = true;
|
|
81
85
|
cleanup();
|
|
82
|
-
|
|
86
|
+
try {
|
|
87
|
+
if (active) options.onCancel?.();
|
|
88
|
+
} finally {
|
|
89
|
+
options.onEnd?.();
|
|
90
|
+
}
|
|
83
91
|
}
|
|
84
92
|
function onMove(event) {
|
|
85
93
|
if (finished || event.pointerId !== pointerId) return;
|
|
@@ -88,13 +96,18 @@ export const startCalendarPointerSession = options => {
|
|
|
88
96
|
if (!active && Math.hypot(clientX - startX, clientY - startY) >= threshold) activate();
|
|
89
97
|
if (!active) return;
|
|
90
98
|
event.preventDefault();
|
|
99
|
+
options.onMove?.(clientX, clientY);
|
|
91
100
|
preview();
|
|
92
101
|
}
|
|
93
102
|
function onUp(event) {
|
|
94
103
|
if (finished || event.pointerId !== pointerId) return;
|
|
95
104
|
finished = true;
|
|
96
105
|
cleanup();
|
|
97
|
-
|
|
106
|
+
try {
|
|
107
|
+
if (active && latest !== null) options.onCommit(latest);else if (active) options.onCancel?.();
|
|
108
|
+
} finally {
|
|
109
|
+
options.onEnd?.();
|
|
110
|
+
}
|
|
98
111
|
}
|
|
99
112
|
function onKeyDown(event) {
|
|
100
113
|
if (event.key !== "Escape") return;
|