@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 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["content/CalendarDayView.tsx"],"sourcesContent":["import {\n createComputed,\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n on,\n onCleanup,\n onMount,\n Show,\n untrack,\n} from \"solid-js\";\nimport { brakedScroll, GESTURE_GAP_MS, SETTLE_RADIUS, settleTarget, stopCrossing, stopIndexAt, wheelPixels } from \"./calendar-day-scroll\";\nimport {\n addDayKeys,\n DAY_MINUTES,\n type DayGroup,\n dayGroups,\n dayHeightTerms,\n dayKeyRange,\n dayMinuteAt,\n dayY,\n dayYTerms,\n markerLanes,\n readDayGeometry,\n termsCss,\n} from \"./calendar-days\";\nimport { EventChip, eventHref } from \"./calendar-shared\";\nimport {\n AllDayChips,\n createTimeView,\n dayBands,\n dayGaps,\n daySummary,\n eventAccent,\n foldedEntries,\n gapAside,\n isNearNow,\n longDay,\n markerAbove,\n nightHours,\n reducedMotion,\n shortDay,\n soonNote,\n TimeBand,\n TimeCheck,\n TimeGap,\n TimeMarker,\n TimeOverlays,\n TimeQuickCreate,\n type TimeView,\n type TimeViewHandle,\n type TimeViewProps,\n} from \"./calendar-time-view\";\n\nconst groupId = (group: DayGroup) => (group.kind === \"day\" ? `d:${group.key}` : `e:${group.keys.join(\",\")}`);\nconst groupFirst = (group: DayGroup) => (group.kind === \"day\" ? group.key : group.keys[0]!);\n\n/**\n * The day view with `dayHours`: the loaded days one below the other in a single scroll, each with its heading kept on\n * top while it is in view. Runs of empty days fold into one row. The view slows down and settles at each day start,\n * and a line at the top of the heading fills while a day start passes.\n */\nexport const CalendarDayView = (props: TimeViewProps) => {\n const view = createTimeView(props);\n const [mounted, setMounted] = createSignal(false);\n const [unfolded, setUnfolded] = createSignal<ReadonlySet<string>>(new Set());\n const [topKey, setTopKey] = createSignal(untrack(view.anchorKey));\n const [hover, setHover] = createSignal<{ key: string; minute: number } | null>(null);\n /** Where today's day lies from the view, kept current while scrolling for the Today button's arrow. */\n const [todayPlace, setTodayPlace] = createSignal<\"up\" | \"down\" | \"\">(\"\");\n let scroller: HTMLDivElement | undefined;\n let track: HTMLDivElement | undefined;\n const helpId = createUniqueId();\n\n // The server and the first render start at the shown day, so the page never flashes the days before it; once\n // mounted the earlier days join above it without moving the view.\n const keys = createMemo(() => {\n const { first, last } = view.range();\n const anchor = view.anchorKey();\n const from = mounted() || anchor < first || anchor > last ? first : anchor;\n return dayKeyRange(from, last);\n });\n // Today and the day the reader opened never fold, so a day opened from the month shows its hours to create in.\n const groups = createMemo(() =>\n dayGroups(keys(), (key) => view.dayOf(key).empty, new Set([view.nowKey(), view.anchorKey(), ...unfolded()])),\n );\n const unfold = (keys: readonly string[]) => setUnfolded((value) => new Set([...value, ...keys]));\n const groupIds = createMemo(() => groups().map(groupId));\n const groupsById = createMemo(() => new Map(groups().map((group) => [groupId(group), group])));\n\n // Where each group starts in the scroll, measured after every change of the groups and on resize.\n let sections: HTMLElement[] = [];\n let tops: number[] = [];\n const measure = () => {\n if (!track) return;\n sections = [...track.querySelectorAll<HTMLElement>(\":scope > [data-calendar-group]\")];\n tops = sections.map((section) => section.offsetTop);\n };\n const keysOf = (section: HTMLElement | undefined) => (section?.dataset.calendarKeys ?? \"\").split(\",\").filter(Boolean);\n const sectionOf = (key: string) => sections.find((section) => keysOf(section).includes(key));\n\n /** The group at the top of the view and how far into it the view is, kept across changes above it. */\n let anchor: { key: string; delta: number } | null = null;\n /** A day the host moved to before its days loaded; it goes on screen once they arrive. */\n let pendingTarget: string | null = null;\n /** The last scroll position the view read, to tell the reader's direction. */\n let lastScrollTop = 0;\n const rememberAnchor = () => {\n if (!scroller || sections.length === 0) return;\n const index = stopIndexAt(tops, scroller.scrollTop);\n const section = sections[index];\n if (section) anchor = { key: keysOf(section)[0]!, delta: scroller.scrollTop - tops[index]! };\n };\n const restoreAnchor = () => {\n if (!scroller || !anchor) return;\n const saved = anchor;\n let index = sections.findIndex((section) => keysOf(section).includes(saved.key));\n if (index < 0) index = sections.findIndex((section) => keysOf(section)[0]! >= saved.key);\n if (index < 0) return;\n const top = tops[index]! + Math.min(saved.delta, sections[index]!.offsetHeight - 1);\n if (Math.abs(scroller.scrollTop - top) > 0.5) scroller.scrollTop = top;\n lastScrollTop = scroller.scrollTop;\n };\n\n /** The scroll position of a minute of a day, or of the day's start without a minute. */\n const topFor = (key: string, minute?: number) => {\n const section = sectionOf(key);\n if (!section) return null;\n const index = sections.indexOf(section);\n const body = section.querySelector<HTMLElement>(\"[data-calendar-body]\");\n if (minute === undefined || !body) return tops[index]!;\n const geometry = readDayGeometry(body, view.wake(), body.dataset.expanded === \"true\");\n return tops[index]! + body.offsetTop + dayY(geometry, minute);\n };\n\n // Gliding: arrows, Today, and Go to scroll smoothly; the stops and loading wait until the glide arrived.\n let glideTarget: number | null = null;\n let glideTimer = 0;\n const glide = (top: number) => {\n if (!scroller) return;\n const target = Math.round(Math.max(0, Math.min(top, scroller.scrollHeight - scroller.clientHeight)));\n glideTarget = target;\n window.clearTimeout(glideTimer);\n glideTimer = window.setTimeout(() => {\n glideTarget = null;\n }, 1600);\n // What the view keeps in place from now on is where the glide arrives, not where it started.\n const index = stopIndexAt(tops, target);\n const section = sections[index];\n if (section) anchor = { key: keysOf(section)[0]!, delta: target - tops[index]! };\n scroller.scrollTo({ top: target, behavior: reducedMotion() ? \"instant\" : \"smooth\" });\n };\n\n /** Puts a day on screen: now in the upper third today, else an hour before its first entry, else its start. */\n const positionAt = (key: string) => {\n if (!scroller) return;\n measure();\n if (key === view.nowKey()) {\n const top = topFor(key, view.nowMinute());\n // Now in the upper third, but never showing the end of the day before above the day's own heading.\n if (top !== null) scroller.scrollTop = Math.max(topFor(key) ?? 0, top - scroller.clientHeight / 3);\n lastScrollTop = scroller.scrollTop;\n return;\n }\n const model = view.dayOf(key);\n const first = Math.min(\n ...model.bands.map((band) => band.start),\n ...model.markers.map((marker) => marker.minute),\n Number.POSITIVE_INFINITY,\n );\n const start = topFor(key);\n if (start === null) return;\n const entry = Number.isFinite(first) && first > 120 ? topFor(key, first - 60) : null;\n scroller.scrollTop = entry === null ? start : Math.max(start, entry - 44);\n lastScrollTop = scroller.scrollTop;\n };\n\n // Input: the wheel brakes at day starts; a resting scroll glides onto a near one.\n let lastInput: \"wheel\" | \"touch\" | \"other\" = \"other\";\n let fingers = 0;\n let settling = false;\n let restTimer = 0;\n let frame = 0;\n let ready = false;\n let carry = 0;\n let lastWheel = 0;\n const settle = () => {\n if (!scroller || fingers > 0 || settling || glideTarget !== null || view.dragging()) return;\n const target = settleTarget(tops.slice(1), scroller.scrollTop, lastInput === \"touch\" ? SETTLE_RADIUS.touch : SETTLE_RADIUS.wheel);\n if (target === undefined) return;\n settling = true;\n scroller.scrollTo({ top: target, behavior: reducedMotion() ? \"instant\" : \"smooth\" });\n window.setTimeout(() => {\n settling = false;\n }, 450);\n };\n const onWheel = (event: WheelEvent) => {\n if (!scroller || event.ctrlKey || Math.abs(event.deltaX) > Math.abs(event.deltaY) || view.dragging()) return;\n const delta = wheelPixels(event.deltaY, event.deltaMode, scroller.clientHeight);\n const top = scroller.scrollTop;\n const max = scroller.scrollHeight - scroller.clientHeight;\n // At the ends the wheel asks for more days instead.\n if ((delta > 0 && top >= max - 1) || (delta < 0 && top <= 1)) {\n loadMore(delta > 0 ? \"later\" : \"earlier\");\n return;\n }\n if (event.timeStamp - lastWheel > GESTURE_GAP_MS) carry = 0;\n // A gesture that goes on takes over from a glide onto a day start; the view settles again once it rests.\n settling = false;\n lastWheel = event.timeStamp;\n const next = brakedScroll(tops, top + carry, delta);\n lastInput = \"wheel\";\n if (next === undefined) {\n carry = 0;\n return;\n }\n event.preventDefault();\n glideTarget = null;\n const bounded = Math.max(0, Math.min(max, next));\n scroller.scrollTop = bounded;\n // Steps too small for a pixel add up instead of vanishing.\n carry = bounded - scroller.scrollTop;\n };\n\n // Loading: each end asks once per range, and only after the view settled at its first position.\n let askedEarlier = \"\";\n let askedLater = \"\";\n const loadMore = (edge: \"earlier\" | \"later\") => {\n // Days that come in above move the view, so they wait for a glide to arrive; days below move nothing.\n if (!ready || view.dragging() || (edge === \"earlier\" && glideTarget !== null)) return;\n const { first, last } = view.range();\n if (edge === \"earlier\" && props.owner.onLoadEarlier && askedEarlier !== first) {\n askedEarlier = first;\n void props.owner.onLoadEarlier();\n }\n if (edge === \"later\" && props.owner.onLoadLater && askedLater !== last) {\n askedLater = last;\n void props.owner.onLoadLater();\n }\n };\n\n let reportTimer = 0;\n let reported = \"\";\n /** Tells the host the days the reader sees once they changed, after the scroll calmed down. */\n const reportVisible = () => {\n const { first, last } = untrack(visibleKeys);\n if (`${first}/${last}` === reported) return;\n reported = `${first}/${last}`;\n window.clearTimeout(reportTimer);\n reportTimer = window.setTimeout(() => props.owner.onVisibleDateChange?.(view.parseKey(first), view.parseKey(last)), 250);\n };\n const updateChrome = () => {\n if (!scroller) return;\n const top = scroller.scrollTop;\n const index = stopIndexAt(tops, top);\n const key = keysOf(sections[index])[0];\n if (key && key !== untrack(topKey)) setTopKey(key);\n reportVisible();\n for (const [position, section] of sections.entries()) {\n const head = section.firstElementChild as HTMLElement | null;\n if (!head) continue;\n const crossing = position > 0 ? stopCrossing(tops[position]!, top) : 0;\n if (crossing > 0) head.style.setProperty(\"--k2b-calendar-cross\", String(crossing));\n else if (head.style.getPropertyValue(\"--k2b-calendar-cross\")) head.style.removeProperty(\"--k2b-calendar-cross\");\n }\n setTodayPlace(placeOfToday());\n // Only the reader's own scrolling asks for more: days that came in above push the view down, and runs of empty\n // days are short, so asking whenever the view is near an end would load one empty week after the other.\n const direction = Math.sign(top - lastScrollTop);\n lastScrollTop = top;\n if (direction > 0 && top + scroller.clientHeight > scroller.scrollHeight - 2 * scroller.clientHeight) loadMore(\"later\");\n else if (direction < 0 && top < scroller.clientHeight) loadMore(\"earlier\");\n rememberAnchor();\n };\n const onScroll = () => {\n if (!scroller) return;\n if (glideTarget !== null && Math.abs(scroller.scrollTop - glideTarget) < 2) glideTarget = null;\n if (!frame)\n frame = requestAnimationFrame(() => {\n frame = 0;\n updateChrome();\n });\n window.clearTimeout(restTimer);\n restTimer = window.setTimeout(settle, lastInput === \"touch\" ? 90 : 160);\n };\n\n onMount(() => {\n setMounted(true);\n queueMicrotask(() => {\n positionAt(view.anchorKey());\n rememberAnchor();\n ready = true;\n updateChrome();\n });\n const observer =\n typeof ResizeObserver === \"undefined\"\n ? undefined\n : new ResizeObserver(() => {\n measure();\n // A glide owns the scroll until it arrives; putting the view back meanwhile would stop it.\n if (glideTarget === null) restoreAnchor();\n });\n if (track) observer?.observe(track);\n onCleanup(() => {\n observer?.disconnect();\n window.clearTimeout(restTimer);\n window.clearTimeout(reportTimer);\n window.clearTimeout(glideTimer);\n if (frame) cancelAnimationFrame(frame);\n });\n });\n // Before new days or an unfolded run change the page, note where the reader is from the page as it stands: the\n // place remembered in the last frame can be a scroll behind on a busy page. A computation runs before any render\n // effect touches the page.\n createComputed(\n on(\n () => [groupIds(), view.days()] as const,\n () => {\n if (!untrack(mounted)) return;\n measure();\n rememberAnchor();\n },\n { defer: true },\n ),\n );\n // New days above or below, a folded night, or an unfolded run: keep what the reader looks at in place.\n createEffect(\n on(\n () => [groupIds(), view.days()] as const,\n () => {\n if (!untrack(mounted)) return;\n measure();\n if (pendingTarget && loaded(pendingTarget)) {\n positionAt(pendingTarget);\n pendingTarget = null;\n rememberAnchor();\n } else restoreAnchor();\n updateChrome();\n },\n { defer: true },\n ),\n );\n // Another date from the host puts that day on screen.\n createEffect(\n on(\n view.anchorKey,\n (key) => {\n if (!untrack(mounted)) return;\n pendingTarget = loaded(key) ? null : key;\n if (pendingTarget) return;\n if (key === untrack(visibleKeys).first) {\n rememberAnchor();\n return;\n }\n queueMicrotask(() => {\n positionAt(key);\n rememberAnchor();\n updateChrome();\n });\n },\n { defer: true },\n ),\n );\n\n /** Whether today's day is above, below, or in the view. */\n const placeOfToday = (): \"up\" | \"down\" | \"\" => {\n const key = view.nowKey();\n if (!scroller) return \"\";\n const section = sectionOf(key);\n if (!section) return key < untrack(topKey) ? \"up\" : \"down\";\n const index = sections.indexOf(section);\n const top = scroller.scrollTop;\n if (tops[index]! + section.offsetHeight < top) return \"up\";\n if (tops[index]! > top + scroller.clientHeight) return \"down\";\n return \"\";\n };\n const visibleKeys = () => {\n const first = topKey();\n if (!scroller || sections.length === 0) return { first, last: first };\n const bottom = scroller.scrollTop + scroller.clientHeight;\n const index = stopIndexAt(tops, bottom - 1);\n const keysAtBottom = keysOf(sections[index]);\n return { first, last: keysAtBottom[keysAtBottom.length - 1] ?? first };\n };\n const loaded = (key: string) => key >= view.range().first && key <= view.range().last;\n const goTo = (key: string) => {\n if (!loaded(key) || !scroller) return false;\n // A day inside a run of empty days opens on its own, so the view goes to that day and not to the run.\n if (untrack(groups).some((group) => group.kind === \"empty\" && group.keys.includes(key))) unfold([key]);\n measure();\n const top = topFor(key);\n if (top === null) return false;\n glide(top);\n return true;\n };\n const handle: TimeViewHandle = {\n visibleKeys,\n step: (direction) => {\n if (!scroller) return false;\n measure();\n const top = scroller.scrollTop;\n const index = stopIndexAt(tops, top);\n const target = direction > 0 ? tops[index + 1] : top - tops[index]! > 8 ? tops[index] : tops[index - 1];\n if (target === undefined) return false;\n glide(target);\n return true;\n },\n goTo,\n today: () => {\n const key = view.nowKey();\n if (!loaded(key) || !scroller) return false;\n measure();\n const top = topFor(key, view.nowMinute());\n if (top === null) return false;\n glide(Math.max(topFor(key) ?? 0, top - scroller.clientHeight / 3));\n return true;\n },\n todayDirection: () => {\n const key = view.nowKey();\n const { first, last } = view.range();\n if (key < first) return \"up\";\n if (key > last) return \"down\";\n return todayPlace();\n },\n controller: {\n quickCreate: (create) => {\n const target = view.createTarget(visibleKeys());\n const body = scroller?.querySelector<HTMLElement>(`[data-calendar-body=\"${target.key}\"]`);\n view.openQuickCreate(\n target.key,\n target.start,\n target.end,\n anchorFor(target.key, target.start, target.end) ?? body ?? scroller!,\n create,\n );\n },\n createTarget: () => {\n const target = view.createTarget(visibleKeys());\n return view.rangeOfSelection(target);\n },\n dragIn: (event, item, onDrop) => view.dragIn(event, item, onDrop, scroller),\n },\n };\n /** The place of a slot on screen for the quick create, when it is in view. */\n const anchorFor = (key: string, start: number, end: number): DOMRect | null => {\n const body = scroller?.querySelector<HTMLElement>(`[data-calendar-body=\"${key}\"]`);\n if (!body || !scroller) return null;\n const rect = body.getBoundingClientRect();\n const bounds = scroller.getBoundingClientRect();\n const geometry = readDayGeometry(body, view.wake(), body.dataset.expanded === \"true\");\n const top = rect.top + dayY(geometry, start);\n const bottom = rect.top + dayY(geometry, end);\n if (bottom < bounds.top + 40 || top > bounds.bottom - 20) return null;\n const left = rect.left + 56;\n const clampedTop = Math.max(bounds.top, top);\n return new DOMRect(left, clampedTop, Math.min(rect.right - left, 320), Math.max(8, Math.min(bottom, bounds.bottom) - clampedTop));\n };\n onMount(() => props.register(handle));\n onCleanup(() => props.register(null));\n\n /** Tab into the stream lands on the first stop on screen, not on the first loaded day weeks above. */\n let tabbedAt = -1e9;\n onMount(() => {\n const note = (event: KeyboardEvent) => {\n if (event.key === \"Tab\") {\n tabbedAt = performance.now();\n if (scroller) restingTop = scroller.scrollTop;\n }\n };\n window.addEventListener(\"keydown\", note, true);\n onCleanup(() => window.removeEventListener(\"keydown\", note, true));\n });\n let restingTop = 0;\n const onFocusIn = (event: FocusEvent) => {\n if (!scroller) return;\n const from = event.relatedTarget instanceof Node ? event.relatedTarget : null;\n if (performance.now() - tabbedAt > 400 || (from && scroller.contains(from))) {\n restingTop = scroller.scrollTop;\n return;\n }\n // Undo the scroll to the focused stop, which some engines make before this runs and some after; a stop on screen\n // keeps the focus.\n if (Math.abs(scroller.scrollTop - restingTop) >= 1) scroller.scrollTop = restingTop;\n const bounds = scroller.getBoundingClientRect();\n const visible = (element: Element) => {\n const rect = element.getBoundingClientRect();\n return rect.height > 0 && rect.top >= bounds.top - 1 && rect.bottom <= bounds.bottom + 1;\n };\n if (event.target instanceof Element && visible(event.target)) return;\n const stops = [...scroller.querySelectorAll<HTMLElement>(\"a[href],button:not([tabindex='-1'])\")].filter(visible);\n const back = Boolean(from && scroller.compareDocumentPosition(from) & Node.DOCUMENT_POSITION_FOLLOWING);\n (back ? stops[stops.length - 1] : stops[0])?.focus({ preventScroll: true });\n };\n\n return (\n <div class=\"k2b-calendar-days\" data-view=\"day\" data-dragging={view.dragging() || undefined}>\n <div\n ref={scroller}\n class=\"k2b-calendar-days__scroll\"\n tabIndex={-1}\n aria-describedby={helpId}\n onScroll={onScroll}\n onWheel={onWheel}\n onTouchStart={(event) => {\n fingers = event.touches.length;\n lastInput = \"touch\";\n glideTarget = null;\n }}\n onTouchEnd={(event) => {\n fingers = event.touches.length;\n }}\n onTouchCancel={(event) => {\n fingers = event.touches.length;\n }}\n onFocusIn={onFocusIn}\n >\n <div ref={track} class=\"k2b-calendar-days__track\">\n <For each={groupIds()}>\n {(id) => {\n const group = () => groupsById().get(id);\n return (\n <Show when={group()}>\n {(current) =>\n current().kind === \"day\" ? (\n <DaySection view={view} dayKey={groupFirst(current())} hover={hover} setHover={setHover} scroller={() => scroller} />\n ) : (\n <EmptyRun view={view} keys={(current() as Extract<DayGroup, { kind: \"empty\" }>).keys} onUnfold={unfold} />\n )\n }\n </Show>\n );\n }}\n </For>\n <Show when={props.owner.onLoadLater}>\n <p class=\"k2b-calendar-days__more\">{view.messages().calendarMoreDays}</p>\n </Show>\n </div>\n </div>\n <p class=\"k2b-calendar-sr\" id={helpId}>\n {view.messages().calendarDayKeyboardHelp}\n </p>\n <TimeQuickCreate view={view} />\n </div>\n );\n};\n\nconst DaySection = (props: {\n view: TimeView;\n dayKey: string;\n hover: () => { key: string; minute: number } | null;\n setHover: (value: { key: string; minute: number } | null) => void;\n scroller: () => HTMLElement | undefined;\n}) => {\n const view = props.view;\n const model = createMemo(() => view.dayOf(props.dayKey));\n const expanded = () => view.nightOpen(props.dayKey, model());\n const headingId = createUniqueId();\n const badge = () => view.props.owner.dayBadges?.[props.dayKey];\n const today = () => props.dayKey === view.calendarToday();\n const selectedDay = () => {\n const current = view.selection();\n return Boolean(current && current.key === props.dayKey && current.start === undefined);\n };\n const soon = () => soonNote(view, props.dayKey);\n const wake = () => view.wake();\n const nowMinute = () => (props.dayKey === view.nowKey() ? view.nowMinute() : null);\n const bands = createMemo(() => dayBands(view, props.dayKey, expanded()));\n const gaps = createMemo(() => dayGaps(view, props.dayKey));\n const markers = () => model().markers.filter((marker) => marker.minute < (expanded() ? DAY_MINUTES : wake()));\n /** Deadlines whose pills would cover each other share the width; keyed by marker, so rows keep their elements. */\n const lanes = createMemo(() => new Map(markerLanes(markers(), wake()).map((entry) => [entry.item, entry])));\n const folded = () => (expanded() ? [] : foldedEntries(view, props.dayKey));\n const nightLabel = () =>\n view.messages().calendarNight({ from: shortDay(view, props.dayKey), to: shortDay(view, addDayKeys(props.dayKey, 1)) });\n const foldLabel = () =>\n view.messages().calendarNightHours({\n from: view.clock(wake()).slice(0, 2),\n to: view.clock(DAY_MINUTES).slice(0, 2),\n });\n\n // Gaps, bands, and markers in one time order, so Tab runs through the day as it reads. Unchanged rows keep their\n // elements and focus when the clock updates the gaps.\n const timeline = createMemo<\n Array<\n | { at: number; kind: \"gap\"; gap: ReturnType<typeof gaps>[number] }\n | { at: number; kind: \"band\"; band: ReturnType<typeof bands>[number] }\n | { at: number; kind: \"marker\"; marker: ReturnType<typeof markers>[number] }\n >\n >(\n (previous) =>\n [\n ...gaps().map(\n (gap) =>\n previous.find(\n (row) => row.kind === \"gap\" && row.gap.start === gap.start && row.gap.end === gap.end && row.gap.past === gap.past,\n ) ?? { at: gap.start, kind: \"gap\" as const, gap },\n ),\n ...bands().map(\n (band) =>\n previous.find((row) => row.kind === \"band\" && row.band === band) ?? {\n at: Math.max(0, band.start),\n kind: \"band\" as const,\n band,\n },\n ),\n ...markers().map(\n (marker) =>\n previous.find((row) => row.kind === \"marker\" && row.marker === marker) ?? {\n at: marker.minute,\n kind: \"marker\" as const,\n marker,\n },\n ),\n ].sort((left, right) => left.at - right.at),\n [],\n );\n\n const isEmptyTarget = (target: EventTarget | null) =>\n target instanceof Element &&\n !target.closest(\"a,button,[data-calendar-event],.k2b-calendar-band,.k2b-calendar-marker,.k2b-calendar-draft,.k2b-calendar-fold\");\n const minuteAt = (element: HTMLElement, clientY: number) => {\n const geometry = readDayGeometry(element, wake(), expanded());\n const rect = element.getBoundingClientRect();\n return Math.max(0, Math.min((expanded() ? DAY_MINUTES : wake()) - 15, dayMinuteAt(geometry, clientY - rect.top)));\n };\n let lastPointer = \"mouse\";\n\n return (\n <section\n class=\"k2b-calendar-days__day\"\n data-calendar-group=\"\"\n data-calendar-keys={props.dayKey}\n aria-labelledby={headingId}\n data-today={today() ? \"true\" : undefined}\n data-past={props.dayKey < view.nowKey() ? \"true\" : undefined}\n data-selected={selectedDay() ? \"true\" : undefined}\n >\n <header class=\"k2b-calendar-days__head\">\n <h2 class=\"k2b-calendar-days__title\" id={headingId}>\n <button\n type=\"button\"\n class=\"k2b-calendar-days__title-button\"\n aria-pressed={selectedDay() ? \"true\" : \"false\"}\n onClick={() => {\n view.setTouchDraft(null);\n view.setSelection(selectedDay() ? null : { key: props.dayKey });\n }}\n >\n <Show when={today()}>\n <span class=\"k2b-calendar-days__today\">{view.props.labels.today}</span>\n </Show>\n <span class=\"k2b-calendar-days__long\">{longDay(view, props.dayKey)}</span>\n <span class=\"k2b-calendar-days__short\">{shortDay(view, props.dayKey, true)}</span>\n </button>\n </h2>\n <span class=\"k2b-calendar-days__note\" data-cheer={view.cheered() === props.dayKey ? \"true\" : undefined}>\n <span class=\"k2b-calendar-days__soon\">\n <Show when={soon()}>\n <i class=\"ti ti-clock\" aria-hidden=\"true\" />\n <span>{soon()}</span>\n </Show>\n </span>\n {/* Screen readers hear it as an announcement; this only marks the moment. */}\n <span class=\"k2b-calendar-days__cheer\" aria-hidden=\"true\">\n <i class=\"ti ti-confetti\" aria-hidden=\"true\" />\n {view.messages().calendarAllDone}\n </span>\n </span>\n <Show when={badge()}>\n {(current) => (\n <span class=\"k2b-calendar-days__badge\">\n <Show when={current().icon}>{(icon) => <i class={`ti ti-${icon()}`} aria-hidden=\"true\" />}</Show>\n {current().label}\n </span>\n )}\n </Show>\n <span class=\"k2b-calendar-days__summary\">{daySummary(view, props.dayKey)}</span>\n </header>\n <Show when={model().spans.length > 0}>\n <div class=\"k2b-calendar-days__all-day\" role=\"group\" aria-label={view.messages().calendarAllDayAndDue}>\n <AllDayChips view={view} dayKey={props.dayKey} spans={model().spans} />\n </div>\n </Show>\n {/* biome-ignore lint/a11y/noStaticElementInteractions: free time is reached through its gap buttons; the pointer adds drawing and slots. */}\n <div\n ref={(element) => view.registerBody(props.dayKey, element, expanded)}\n class=\"k2b-calendar-days__body\"\n data-calendar-body={props.dayKey}\n data-expanded={expanded() ? \"true\" : \"false\"}\n style={{ height: termsCss(dayHeightTerms(wake(), expanded())) }}\n onPointerDown={(event) => {\n lastPointer = event.pointerType;\n if (event.button !== 0 || !isEmptyTarget(event.target)) return;\n view.startDraw(event, props.dayKey, props.scroller());\n }}\n // Some engines send a tap as touch events only; a tap is a tap either way.\n onTouchStart={() => {\n lastPointer = \"touch\";\n }}\n // Listening on the timeline itself, not through delegation, makes it a tap target on iOS.\n on:click={(event) => {\n if (!isEmptyTarget(event.target) || !view.canCreate()) return;\n const minute = Math.floor(minuteAt(event.currentTarget, event.clientY) / 30) * 30;\n const end = Math.min(minute + 60, expanded() ? DAY_MINUTES : wake());\n if (lastPointer === \"mouse\") {\n view.setTouchDraft(null);\n view.setSelection({ key: props.dayKey, start: minute, end });\n return;\n }\n view.setTouchDraft({ key: props.dayKey, start: minute, end });\n view.setSelection({ key: props.dayKey, start: minute, end });\n }}\n onDblClick={(event) => {\n if (!isEmptyTarget(event.target) || lastPointer !== \"mouse\") return;\n const minute = Math.floor(minuteAt(event.currentTarget, event.clientY) / 30) * 30;\n view.openQuickCreate(props.dayKey, minute, Math.min(minute + 60, expanded() ? DAY_MINUTES : wake()), event.currentTarget);\n }}\n onPointerMove={(event) => {\n if (event.pointerType !== \"mouse\" || view.dragging() || !isEmptyTarget(event.target)) {\n if (props.hover()?.key === props.dayKey) props.setHover(null);\n return;\n }\n const minute = Math.floor(minuteAt(event.currentTarget, event.clientY) / 15) * 15;\n props.setHover({ key: props.dayKey, minute });\n }}\n onPointerLeave={() => {\n if (props.hover()?.key === props.dayKey) props.setHover(null);\n }}\n >\n <For each={Array.from({ length: wake() / 60 + 1 }, (_, index) => index * 60)}>\n {(minute) => (\n <>\n <span class=\"k2b-calendar-days__line\" style={{ top: termsCss(dayYTerms(wake(), expanded(), minute)) }} aria-hidden=\"true\" />\n <span\n class=\"k2b-calendar-days__hour\"\n data-near-now={isNearNow(view, props.dayKey, minute) ? \"true\" : undefined}\n style={{ top: termsCss(dayYTerms(wake(), expanded(), minute)) }}\n aria-hidden=\"true\"\n >\n {view.clock(minute)}\n </span>\n </>\n )}\n </For>\n <Show\n when={expanded()}\n fallback={\n <div class=\"k2b-calendar-fold\" style={{ top: `calc(${termsCss(dayYTerms(wake(), false, wake()))} + 3px)` }}>\n <button\n type=\"button\"\n class=\"k2b-calendar-fold__toggle\"\n aria-expanded=\"false\"\n aria-label={view.messages().calendarOpenNight}\n onClick={() => view.setNight(props.dayKey, true)}\n >\n <i class=\"ti ti-moon\" aria-hidden=\"true\" />\n <span>{foldLabel()}</span>\n <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />\n </button>\n <Show when={folded().length > 0}>\n <ul class=\"k2b-calendar-fold__chips\">\n <For each={folded()}>\n {(entry) => {\n const checked = () => view.checkedOf(entry.event);\n return (\n <li\n data-checkbox={checked() !== undefined ? \"true\" : undefined}\n data-checked={checked() ? \"true\" : undefined}\n style={{ \"--k2b-calendar-accent\": eventAccent(entry.event) }}\n >\n <Show when={checked() !== undefined}>\n <TimeCheck view={view} event={entry.event} />\n </Show>\n <EventChip\n event={view.normalized(entry.event, props.dayKey)}\n owner={view.props.owner}\n href={eventHref(view.props.owner, entry.event)}\n compact\n timeline\n leadingTime={entry.time}\n checkbox={checked() !== undefined}\n onCheck={view.checkOf(entry.event)}\n />\n </li>\n );\n }}\n </For>\n </ul>\n </Show>\n </div>\n }\n >\n <span\n class=\"k2b-calendar-night\"\n style={{ top: termsCss(dayYTerms(wake(), true, wake())), height: termsCss(dayHeightTermsNight(wake())) }}\n aria-hidden=\"true\"\n />\n <button\n type=\"button\"\n class=\"k2b-calendar-night__bar\"\n aria-expanded=\"true\"\n style={{ top: termsCss(dayYTerms(wake(), true, wake())) }}\n onClick={() => view.setNight(props.dayKey, false)}\n >\n <i class=\"ti ti-moon\" aria-hidden=\"true\" />\n <span>{nightLabel()}</span>\n <span class=\"k2b-calendar-night__action\">\n {view.messages().calendarFoldNight}\n <i class=\"ti ti-chevron-up\" aria-hidden=\"true\" />\n </span>\n </button>\n <For each={nightHours(wake())}>\n {(minute) => (\n <>\n <span\n class=\"k2b-calendar-days__line\"\n data-midnight={view.clock(minute) === \"00:00\" ? \"true\" : undefined}\n style={{ top: termsCss(dayYTerms(wake(), true, minute)) }}\n aria-hidden=\"true\"\n />\n <span\n class=\"k2b-calendar-days__hour\"\n data-night=\"true\"\n style={{ top: termsCss(dayYTerms(wake(), true, minute)) }}\n aria-hidden=\"true\"\n >\n {view.clock(minute)}\n </span>\n <Show when={view.clock(minute) === \"00:00\"}>\n <span class=\"k2b-calendar-days__midnight\" style={{ top: termsCss(dayYTerms(wake(), true, minute)) }} aria-hidden=\"true\">\n {shortDay(view, addDayKeys(props.dayKey, 1), true)}\n </span>\n </Show>\n </>\n )}\n </For>\n </Show>\n <For each={timeline()}>\n {(entry) =>\n entry.kind === \"gap\" ? (\n <TimeGap view={view} gap={entry.gap} dayKey={props.dayKey} expanded={expanded()} aside={gapAside(model(), entry.gap)} />\n ) : entry.kind === \"band\" ? (\n <TimeBand\n view={view}\n band={entry.band}\n dayKey={props.dayKey}\n expanded={expanded()}\n showLocation\n hourPx={56}\n scroller={props.scroller}\n />\n ) : (\n <TimeMarker\n view={view}\n event={entry.marker.item}\n minute={entry.marker.minute}\n dayKey={props.dayKey}\n expanded={expanded()}\n above={markerAbove(model(), entry.marker.minute)}\n lane={lanes().get(entry.marker)?.lane ?? 0}\n lanes={lanes().get(entry.marker)?.lanes ?? 1}\n showTime\n scroller={props.scroller}\n />\n )\n }\n </For>\n <TimeOverlays view={view} dayKey={props.dayKey} expanded={expanded()} />\n <Show when={props.hover()?.key === props.dayKey && props.hover()}>\n {(current) => (\n <span class=\"k2b-calendar-hover\" style={{ top: termsCss(dayYTerms(wake(), expanded(), current().minute)) }} aria-hidden=\"true\">\n {view.clock(current().minute)}\n </span>\n )}\n </Show>\n <Show when={nowMinute() !== null && nowMinute()! >= 0 && nowMinute()! < (expanded() ? DAY_MINUTES : wake())}>\n <div class=\"k2b-calendar-now\" style={{ top: termsCss(dayYTerms(wake(), expanded(), nowMinute()!)) }} aria-hidden=\"true\">\n <span class=\"k2b-calendar-now__time\">{view.clock(nowMinute()!)}</span>\n </div>\n </Show>\n </div>\n </section>\n );\n};\n\nconst dayHeightTermsNight = (wake: number) => {\n const total = dayHeightTerms(wake, true);\n return [0, total[1], total[2], 0] as const;\n};\n\nconst EmptyRun = (props: { view: TimeView; keys: string[]; onUnfold: (keys: readonly string[]) => void }) => {\n const view = props.view;\n const headingId = createUniqueId();\n const first = () => props.keys[0]!;\n const last = () => props.keys[props.keys.length - 1]!;\n const title = () => (props.keys.length === 1 ? longDay(view, first()) : `${shortDay(view, first())} – ${shortDay(view, last(), true)}`);\n return (\n <section\n class=\"k2b-calendar-days__day\"\n data-calendar-group=\"\"\n data-calendar-keys={props.keys.join(\",\")}\n data-empty=\"true\"\n data-past={last() < view.nowKey() ? \"true\" : undefined}\n aria-labelledby={headingId}\n >\n <header class=\"k2b-calendar-days__head\">\n <h2 class=\"k2b-calendar-days__title\" id={headingId}>\n <span class=\"k2b-calendar-days__run\">{title()}</span>\n </h2>\n <span class=\"k2b-calendar-days__note\" />\n <For each={props.keys.filter((key) => view.props.owner.dayBadges?.[key])}>\n {(key) => {\n const badge = view.props.owner.dayBadges![key]!;\n return (\n <span class=\"k2b-calendar-days__badge\" data-run=\"true\">\n <Show when={props.keys.length > 1}>\n <span class=\"k2b-calendar-days__badge-day\">{shortDay(view, key).split(/[\\s,.]/)[0]}</span>\n </Show>\n <Show when={badge.icon}>{(icon) => <i class={`ti ti-${icon()}`} aria-hidden=\"true\" />}</Show>\n {badge.label}\n </span>\n );\n }}\n </For>\n <span class=\"k2b-calendar-days__summary\">\n {props.keys.length > 1 ? view.messages().calendarDayCount({ count: props.keys.length }) : \"\"}\n </span>\n </header>\n <button type=\"button\" class=\"k2b-calendar-days__empty\" data-calendar-unfold=\"\" onClick={() => props.onUnfold(props.keys)}>\n <span>{view.messages().calendarNothingPlannedShort}</span>\n <span class=\"k2b-calendar-days__empty-action\">\n <i class=\"ti ti-arrows-vertical\" aria-hidden=\"true\" />\n {view.messages().calendarUnfoldDays({ count: props.keys.length })}\n </span>\n </button>\n </section>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|