@50arms/ui 0.0.0-stage → 35.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +193 -2
- package/dist/components/Accordion.js +68 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/AgentWorkingSpinner.js +46 -0
- package/dist/components/AgentWorkingSpinner.js.map +1 -0
- package/dist/components/AppShell.js +228 -0
- package/dist/components/AppShell.js.map +1 -0
- package/dist/components/Attention.js +130 -0
- package/dist/components/Attention.js.map +1 -0
- package/dist/components/Avatar.js +99 -0
- package/dist/components/Avatar.js.map +1 -0
- package/dist/components/Badge.js +143 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Board.js +292 -0
- package/dist/components/Board.js.map +1 -0
- package/dist/components/Button.js +327 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Callout.js +106 -0
- package/dist/components/Callout.js.map +1 -0
- package/dist/components/Card.js +140 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/Choice.js +361 -0
- package/dist/components/Choice.js.map +1 -0
- package/dist/components/CodeEditor.js +384 -0
- package/dist/components/CodeEditor.js.map +1 -0
- package/dist/components/ColorPicker.js +174 -0
- package/dist/components/ColorPicker.js.map +1 -0
- package/dist/components/Combobox.js +212 -0
- package/dist/components/Combobox.js.map +1 -0
- package/dist/components/CommandPalette.js +163 -0
- package/dist/components/CommandPalette.js.map +1 -0
- package/dist/components/ConcentricRing.js +60 -0
- package/dist/components/ConcentricRing.js.map +1 -0
- package/dist/components/ConnectionCard.js +98 -0
- package/dist/components/ConnectionCard.js.map +1 -0
- package/dist/components/ContextItemRow.js +49 -0
- package/dist/components/ContextItemRow.js.map +1 -0
- package/dist/components/CopyValue.js +57 -0
- package/dist/components/CopyValue.js.map +1 -0
- package/dist/components/CountBadge.js +26 -0
- package/dist/components/CountBadge.js.map +1 -0
- package/dist/components/DateCalendar.js +156 -0
- package/dist/components/DateCalendar.js.map +1 -0
- package/dist/components/DateField.js +166 -0
- package/dist/components/DateField.js.map +1 -0
- package/dist/components/DatePicker.js +56 -0
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/components/DateTimeText.js +19 -0
- package/dist/components/DateTimeText.js.map +1 -0
- package/dist/components/DescriptionList.js +25 -0
- package/dist/components/DescriptionList.js.map +1 -0
- package/dist/components/Dialog.js +332 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/DragDrop.js +395 -0
- package/dist/components/DragDrop.js.map +1 -0
- package/dist/components/Drawer.js +100 -0
- package/dist/components/Drawer.js.map +1 -0
- package/dist/components/EditGutter.js +110 -0
- package/dist/components/EditGutter.js.map +1 -0
- package/dist/components/EmojiPicker.js +174 -0
- package/dist/components/EmojiPicker.js.map +1 -0
- package/dist/components/ErrorBoundary.js +47 -0
- package/dist/components/ErrorBoundary.js.map +1 -0
- package/dist/components/Field.js +115 -0
- package/dist/components/Field.js.map +1 -0
- package/dist/components/FileUpload.js +128 -0
- package/dist/components/FileUpload.js.map +1 -0
- package/dist/components/FilterMenu.js +256 -0
- package/dist/components/FilterMenu.js.map +1 -0
- package/dist/components/GatesSection.js +79 -0
- package/dist/components/GatesSection.js.map +1 -0
- package/dist/components/Icon.js +50 -0
- package/dist/components/Icon.js.map +1 -0
- package/dist/components/IconButton.js +59 -0
- package/dist/components/IconButton.js.map +1 -0
- package/dist/components/IconStack.js +69 -0
- package/dist/components/IconStack.js.map +1 -0
- package/dist/components/ImageUploadField.js +146 -0
- package/dist/components/ImageUploadField.js.map +1 -0
- package/dist/components/InlineEdit.js +432 -0
- package/dist/components/InlineEdit.js.map +1 -0
- package/dist/components/InlineMarkdownEdit.js +184 -0
- package/dist/components/InlineMarkdownEdit.js.map +1 -0
- package/dist/components/Input.js +156 -0
- package/dist/components/Input.js.map +1 -0
- package/dist/components/LegalDocument.js +155 -0
- package/dist/components/LegalDocument.js.map +1 -0
- package/dist/components/LineDiff.js +95 -0
- package/dist/components/LineDiff.js.map +1 -0
- package/dist/components/ListHeader.js +72 -0
- package/dist/components/ListHeader.js.map +1 -0
- package/dist/components/Loading.js +111 -0
- package/dist/components/Loading.js.map +1 -0
- package/dist/components/Markdown.js +28 -0
- package/dist/components/Markdown.js.map +1 -0
- package/dist/components/MarkdownEditor.js +467 -0
- package/dist/components/MarkdownEditor.js.map +1 -0
- package/dist/components/Menu.js +185 -0
- package/dist/components/Menu.js.map +1 -0
- package/dist/components/Navigation.js +87 -0
- package/dist/components/Navigation.js.map +1 -0
- package/dist/components/NumberInput.js +119 -0
- package/dist/components/NumberInput.js.map +1 -0
- package/dist/components/OTPInput.js +71 -0
- package/dist/components/OTPInput.js.map +1 -0
- package/dist/components/OrderedEntityManager.js +170 -0
- package/dist/components/OrderedEntityManager.js.map +1 -0
- package/dist/components/PagedWindowList.js +74 -0
- package/dist/components/PagedWindowList.js.map +1 -0
- package/dist/components/PaginationBar.js +95 -0
- package/dist/components/PaginationBar.js.map +1 -0
- package/dist/components/Panel.js +396 -0
- package/dist/components/Panel.js.map +1 -0
- package/dist/components/PasswordInput.js +32 -0
- package/dist/components/PasswordInput.js.map +1 -0
- package/dist/components/PasswordRequirements.js +25 -0
- package/dist/components/PasswordRequirements.js.map +1 -0
- package/dist/components/PatchDiff.js +96 -0
- package/dist/components/PatchDiff.js.map +1 -0
- package/dist/components/PendingVeil.js +18 -0
- package/dist/components/PendingVeil.js.map +1 -0
- package/dist/components/Popover.js +214 -0
- package/dist/components/Popover.js.map +1 -0
- package/dist/components/Progress.js +419 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/RatingScale.js +89 -0
- package/dist/components/RatingScale.js.map +1 -0
- package/dist/components/ReadMore.js +232 -0
- package/dist/components/ReadMore.js.map +1 -0
- package/dist/components/RecordCard.js +202 -0
- package/dist/components/RecordCard.js.map +1 -0
- package/dist/components/RelativeTime.js +29 -0
- package/dist/components/RelativeTime.js.map +1 -0
- package/dist/components/SandboxedFrame.js +135 -0
- package/dist/components/SandboxedFrame.js.map +1 -0
- package/dist/components/SearchInput.js +38 -0
- package/dist/components/SearchInput.js.map +1 -0
- package/dist/components/SecretField.js +228 -0
- package/dist/components/SecretField.js.map +1 -0
- package/dist/components/SectionNav.js +42 -0
- package/dist/components/SectionNav.js.map +1 -0
- package/dist/components/Select.js +172 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/SequenceDiagram.js +109 -0
- package/dist/components/SequenceDiagram.js.map +1 -0
- package/dist/components/SettingRow.js +124 -0
- package/dist/components/SettingRow.js.map +1 -0
- package/dist/components/SignOffRings.js +36 -0
- package/dist/components/SignOffRings.js.map +1 -0
- package/dist/components/Slider.js +353 -0
- package/dist/components/Slider.js.map +1 -0
- package/dist/components/SolutionChoice.js +89 -0
- package/dist/components/SolutionChoice.js.map +1 -0
- package/dist/components/SortMenu.js +75 -0
- package/dist/components/SortMenu.js.map +1 -0
- package/dist/components/Spinner.js +42 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/Stat.js +148 -0
- package/dist/components/Stat.js.map +1 -0
- package/dist/components/StatusSelect.js +119 -0
- package/dist/components/StatusSelect.js.map +1 -0
- package/dist/components/Surface.js +210 -0
- package/dist/components/Surface.js.map +1 -0
- package/dist/components/Table.js +300 -0
- package/dist/components/Table.js.map +1 -0
- package/dist/components/Tabs.js +288 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/ThemeMenu.js +198 -0
- package/dist/components/ThemeMenu.js.map +1 -0
- package/dist/components/Toast.js +217 -0
- package/dist/components/Toast.js.map +1 -0
- package/dist/components/Toggle.js +147 -0
- package/dist/components/Toggle.js.map +1 -0
- package/dist/components/ToggleMatrix.js +157 -0
- package/dist/components/ToggleMatrix.js.map +1 -0
- package/dist/components/Tree.js +125 -0
- package/dist/components/Tree.js.map +1 -0
- package/dist/components/TriStateSwitch.js +111 -0
- package/dist/components/TriStateSwitch.js.map +1 -0
- package/dist/components/VideoPlayer.js +64 -0
- package/dist/components/VideoPlayer.js.map +1 -0
- package/dist/components/auth/AcceptInvitationCard.js +110 -0
- package/dist/components/auth/AcceptInvitationCard.js.map +1 -0
- package/dist/components/auth/AuthLayout.js +18 -0
- package/dist/components/auth/AuthLayout.js.map +1 -0
- package/dist/components/auth/ForgotPasswordForm.js +44 -0
- package/dist/components/auth/ForgotPasswordForm.js.map +1 -0
- package/dist/components/auth/LoginForm.js +76 -0
- package/dist/components/auth/LoginForm.js.map +1 -0
- package/dist/components/auth/ResetPasswordForm.js +69 -0
- package/dist/components/auth/ResetPasswordForm.js.map +1 -0
- package/dist/components/auth/SignInProviders.js +45 -0
- package/dist/components/auth/SignInProviders.js.map +1 -0
- package/dist/components/auth/SignupCard.js +204 -0
- package/dist/components/auth/SignupCard.js.map +1 -0
- package/dist/components/auth/TermsAcceptance.js +43 -0
- package/dist/components/auth/TermsAcceptance.js.map +1 -0
- package/dist/components/board/context.js +32 -0
- package/dist/components/board/context.js.map +1 -0
- package/dist/components/board/recipe.js +94 -0
- package/dist/components/board/recipe.js.map +1 -0
- package/dist/components/calendar/CalendarMonth.js +299 -0
- package/dist/components/calendar/CalendarMonth.js.map +1 -0
- package/dist/components/calendar/CalendarTimeGrid.js +430 -0
- package/dist/components/calendar/CalendarTimeGrid.js.map +1 -0
- package/dist/components/calendar/EventActions.js +101 -0
- package/dist/components/calendar/EventActions.js.map +1 -0
- package/dist/components/calendar/format.js +73 -0
- package/dist/components/calendar/format.js.map +1 -0
- package/dist/components/calendar/palette.js +31 -0
- package/dist/components/calendar/palette.js.map +1 -0
- package/dist/components/calendar/use-calendar-drag.js +149 -0
- package/dist/components/calendar/use-calendar-drag.js.map +1 -0
- package/dist/components/calendar/use-event-keyboard.js +87 -0
- package/dist/components/calendar/use-event-keyboard.js.map +1 -0
- package/dist/components/calendar/use-grid-navigation.js +79 -0
- package/dist/components/calendar/use-grid-navigation.js.map +1 -0
- package/dist/components/calendar/use-now.js +27 -0
- package/dist/components/calendar/use-now.js.map +1 -0
- package/dist/components/card-face/AcRingGlyph.js +39 -0
- package/dist/components/card-face/AcRingGlyph.js.map +1 -0
- package/dist/components/card-face/BoardCardAgentSlot.js +17 -0
- package/dist/components/card-face/BoardCardAgentSlot.js.map +1 -0
- package/dist/components/card-face/CardFace.js +109 -0
- package/dist/components/card-face/CardFace.js.map +1 -0
- package/dist/components/card-face/CardTypeBadge.js +17 -0
- package/dist/components/card-face/CardTypeBadge.js.map +1 -0
- package/dist/components/card-face/EffortBadge.js +11 -0
- package/dist/components/card-face/EffortBadge.js.map +1 -0
- package/dist/components/card-face/GateRingGlyph.js +31 -0
- package/dist/components/card-face/GateRingGlyph.js.map +1 -0
- package/dist/components/card-face/OverflowRow.js +70 -0
- package/dist/components/card-face/OverflowRow.js.map +1 -0
- package/dist/components/card-face/TapTip.js +32 -0
- package/dist/components/card-face/TapTip.js.map +1 -0
- package/dist/components/card-face/hit-area.js +6 -0
- package/dist/components/card-face/hit-area.js.map +1 -0
- package/dist/components/card-face/vocabulary.js +102 -0
- package/dist/components/card-face/vocabulary.js.map +1 -0
- package/dist/components/chart/BarList.js +78 -0
- package/dist/components/chart/BarList.js.map +1 -0
- package/dist/components/chart/LineChart.js +310 -0
- package/dist/components/chart/LineChart.js.map +1 -0
- package/dist/components/chart/ShareBar.js +141 -0
- package/dist/components/chart/ShareBar.js.map +1 -0
- package/dist/components/chart/TimeSeriesChart.js +305 -0
- package/dist/components/chart/TimeSeriesChart.js.map +1 -0
- package/dist/components/chart/label-metrics.js +17 -0
- package/dist/components/chart/label-metrics.js.map +1 -0
- package/dist/components/chart/line-chart-axis.js +38 -0
- package/dist/components/chart/line-chart-axis.js.map +1 -0
- package/dist/components/chart/line-chart-scale.js +132 -0
- package/dist/components/chart/line-chart-scale.js.map +1 -0
- package/dist/components/chart/line-series-style.js +22 -0
- package/dist/components/chart/line-series-style.js.map +1 -0
- package/dist/components/chart/share-bar-labels.js +14 -0
- package/dist/components/chart/share-bar-labels.js.map +1 -0
- package/dist/components/chart/shared.js +157 -0
- package/dist/components/chart/shared.js.map +1 -0
- package/dist/components/chart/time-series-scale.js +51 -0
- package/dist/components/chart/time-series-scale.js.map +1 -0
- package/dist/components/chat/Attachment.js +316 -0
- package/dist/components/chat/Attachment.js.map +1 -0
- package/dist/components/chat/Chat.js +171 -0
- package/dist/components/chat/Chat.js.map +1 -0
- package/dist/components/chat/Composer.js +274 -0
- package/dist/components/chat/Composer.js.map +1 -0
- package/dist/components/chat/ContextMeter.js +202 -0
- package/dist/components/chat/ContextMeter.js.map +1 -0
- package/dist/components/chat/EffortControl.js +116 -0
- package/dist/components/chat/EffortControl.js.map +1 -0
- package/dist/components/chat/FileCover.js +78 -0
- package/dist/components/chat/FileCover.js.map +1 -0
- package/dist/components/chat/Message.js +356 -0
- package/dist/components/chat/Message.js.map +1 -0
- package/dist/components/chat/MessageScroller.js +104 -0
- package/dist/components/chat/MessageScroller.js.map +1 -0
- package/dist/components/chat/ModelSelector.js +156 -0
- package/dist/components/chat/ModelSelector.js.map +1 -0
- package/dist/components/chat/StreamingMarkdown.js +42 -0
- package/dist/components/chat/StreamingMarkdown.js.map +1 -0
- package/dist/components/chat/download-file.js +9 -0
- package/dist/components/chat/download-file.js.map +1 -0
- package/dist/components/chat/file-icon.js +39 -0
- package/dist/components/chat/file-icon.js.map +1 -0
- package/dist/components/checklist/StatusChecklist.js +103 -0
- package/dist/components/checklist/StatusChecklist.js.map +1 -0
- package/dist/components/checklist/tally.js +29 -0
- package/dist/components/checklist/tally.js.map +1 -0
- package/dist/components/code-editor/context.js +13 -0
- package/dist/components/code-editor/context.js.map +1 -0
- package/dist/components/code-editor/editing.js +93 -0
- package/dist/components/code-editor/editing.js.map +1 -0
- package/dist/components/code-editor/highlight.js +27 -0
- package/dist/components/code-editor/highlight.js.map +1 -0
- package/dist/components/code-editor/recipe.js +75 -0
- package/dist/components/code-editor/recipe.js.map +1 -0
- package/dist/components/date-timeline/DateTimeline.js +358 -0
- package/dist/components/date-timeline/DateTimeline.js.map +1 -0
- package/dist/components/date-timeline/TimelineRow.js +100 -0
- package/dist/components/date-timeline/TimelineRow.js.map +1 -0
- package/dist/components/date-timeline/useBarDrag.js +44 -0
- package/dist/components/date-timeline/useBarDrag.js.map +1 -0
- package/dist/components/date-timeline/useMarkerDrag.js +40 -0
- package/dist/components/date-timeline/useMarkerDrag.js.map +1 -0
- package/dist/components/date-timeline/useTimelineZoom.js +44 -0
- package/dist/components/date-timeline/useTimelineZoom.js.map +1 -0
- package/dist/components/drag-drop/context.js +37 -0
- package/dist/components/drag-drop/context.js.map +1 -0
- package/dist/components/drag-drop/recipe.js +270 -0
- package/dist/components/drag-drop/recipe.js.map +1 -0
- package/dist/components/drag-drop/shift.js +157 -0
- package/dist/components/drag-drop/shift.js.map +1 -0
- package/dist/components/edit/activation.js +10 -0
- package/dist/components/edit/activation.js.map +1 -0
- package/dist/components/edit/outcome.js +47 -0
- package/dist/components/edit/outcome.js.map +1 -0
- package/dist/components/edit/use-edit-session.js +146 -0
- package/dist/components/edit/use-edit-session.js.map +1 -0
- package/dist/components/file-viewer/FileViewer.js +97 -0
- package/dist/components/file-viewer/FileViewer.js.map +1 -0
- package/dist/components/file-viewer/PageNumberJumpField.js +47 -0
- package/dist/components/file-viewer/PageNumberJumpField.js.map +1 -0
- package/dist/components/file-viewer/ViewerControls.js +122 -0
- package/dist/components/file-viewer/ViewerControls.js.map +1 -0
- package/dist/components/file-viewer/ViewerRail.js +57 -0
- package/dist/components/file-viewer/ViewerRail.js.map +1 -0
- package/dist/components/file-viewer/ViewerStage.js +112 -0
- package/dist/components/file-viewer/ViewerStage.js.map +1 -0
- package/dist/components/file-viewer/frames.js +37 -0
- package/dist/components/file-viewer/frames.js.map +1 -0
- package/dist/components/file-viewer/use-frame-cursor.js +32 -0
- package/dist/components/file-viewer/use-frame-cursor.js.map +1 -0
- package/dist/components/file-viewer/use-viewer-keys.js +50 -0
- package/dist/components/file-viewer/use-viewer-keys.js.map +1 -0
- package/dist/components/file-viewer/use-viewer-zoom.js +68 -0
- package/dist/components/file-viewer/use-viewer-zoom.js.map +1 -0
- package/dist/components/focus-web/FocusWeb.js +322 -0
- package/dist/components/focus-web/FocusWeb.js.map +1 -0
- package/dist/components/focus-web/layout.js +34 -0
- package/dist/components/focus-web/layout.js.map +1 -0
- package/dist/components/graph-explorer/GraphExplorer.js +441 -0
- package/dist/components/graph-explorer/GraphExplorer.js.map +1 -0
- package/dist/components/graph-explorer/camera-math.js +102 -0
- package/dist/components/graph-explorer/camera-math.js.map +1 -0
- package/dist/components/graph-explorer/tree-layout.js +103 -0
- package/dist/components/graph-explorer/tree-layout.js.map +1 -0
- package/dist/components/graph-explorer/use-camera.js +82 -0
- package/dist/components/graph-explorer/use-camera.js.map +1 -0
- package/dist/components/graph-explorer/viewport-gesture.js +107 -0
- package/dist/components/graph-explorer/viewport-gesture.js.map +1 -0
- package/dist/components/kanban/KanbanBoard.js +219 -0
- package/dist/components/kanban/KanbanBoard.js.map +1 -0
- package/dist/components/kanban/recipe.js +144 -0
- package/dist/components/kanban/recipe.js.map +1 -0
- package/dist/components/markdown/Affordances.js +398 -0
- package/dist/components/markdown/Affordances.js.map +1 -0
- package/dist/components/markdown/AttachmentStrip.js +128 -0
- package/dist/components/markdown/AttachmentStrip.js.map +1 -0
- package/dist/components/markdown/ImageUpload.js +45 -0
- package/dist/components/markdown/ImageUpload.js.map +1 -0
- package/dist/components/media-error.js +7 -0
- package/dist/components/media-error.js.map +1 -0
- package/dist/components/nav-sections.js +61 -0
- package/dist/components/nav-sections.js.map +1 -0
- package/dist/components/node-canvas/NodeCanvas.js +384 -0
- package/dist/components/node-canvas/NodeCanvas.js.map +1 -0
- package/dist/components/node-canvas/layout.js +237 -0
- package/dist/components/node-canvas/layout.js.map +1 -0
- package/dist/components/node-canvas/use-canvas-gestures.js +143 -0
- package/dist/components/node-canvas/use-canvas-gestures.js.map +1 -0
- package/dist/components/openapi/OpenApiViewer.js +137 -0
- package/dist/components/openapi/OpenApiViewer.js.map +1 -0
- package/dist/components/openapi/OperationCard.js +145 -0
- package/dist/components/openapi/OperationCard.js.map +1 -0
- package/dist/components/openapi/SchemaView.js +68 -0
- package/dist/components/openapi/SchemaView.js.map +1 -0
- package/dist/components/openapi/resolve.js +102 -0
- package/dist/components/openapi/resolve.js.map +1 -0
- package/dist/components/openapi/types.js +5 -0
- package/dist/components/openapi/types.js.map +1 -0
- package/dist/components/overlay-shell.js +29 -0
- package/dist/components/overlay-shell.js.map +1 -0
- package/dist/components/overlay-stack.js +27 -0
- package/dist/components/overlay-stack.js.map +1 -0
- package/dist/components/paged-window/PageBlock.js +50 -0
- package/dist/components/paged-window/PageBlock.js.map +1 -0
- package/dist/components/provenance/ConfidenceBar.js +60 -0
- package/dist/components/provenance/ConfidenceBar.js.map +1 -0
- package/dist/components/provenance/ConfidenceMeter.js +36 -0
- package/dist/components/provenance/ConfidenceMeter.js.map +1 -0
- package/dist/components/provenance/ConfidenceReadout.js +31 -0
- package/dist/components/provenance/ConfidenceReadout.js.map +1 -0
- package/dist/components/provenance/ProvenanceBadge.js +44 -0
- package/dist/components/provenance/ProvenanceBadge.js.map +1 -0
- package/dist/components/provenance/ProvenanceDetail.js +114 -0
- package/dist/components/provenance/ProvenanceDetail.js.map +1 -0
- package/dist/components/provenance/ProvenanceDisclosure.js +111 -0
- package/dist/components/provenance/ProvenanceDisclosure.js.map +1 -0
- package/dist/components/provenance/absence.js +31 -0
- package/dist/components/provenance/absence.js.map +1 -0
- package/dist/components/provenance/types.js +30 -0
- package/dist/components/provenance/types.js.map +1 -0
- package/dist/components/rbac/AccessRequestPanel.js +153 -0
- package/dist/components/rbac/AccessRequestPanel.js.map +1 -0
- package/dist/components/rbac/AccountMenu.js +118 -0
- package/dist/components/rbac/AccountMenu.js.map +1 -0
- package/dist/components/rbac/AgentKeysList.js +20 -0
- package/dist/components/rbac/AgentKeysList.js.map +1 -0
- package/dist/components/rbac/ApiKeysPanel.js +172 -0
- package/dist/components/rbac/ApiKeysPanel.js.map +1 -0
- package/dist/components/rbac/ApiKeysTable.js +169 -0
- package/dist/components/rbac/ApiKeysTable.js.map +1 -0
- package/dist/components/rbac/Brand.js +13 -0
- package/dist/components/rbac/Brand.js.map +1 -0
- package/dist/components/rbac/Can.js +18 -0
- package/dist/components/rbac/Can.js.map +1 -0
- package/dist/components/rbac/ChangePasswordForm.js +73 -0
- package/dist/components/rbac/ChangePasswordForm.js.map +1 -0
- package/dist/components/rbac/DangerZone.js +27 -0
- package/dist/components/rbac/DangerZone.js.map +1 -0
- package/dist/components/rbac/DevToolsPopover.js +140 -0
- package/dist/components/rbac/DevToolsPopover.js.map +1 -0
- package/dist/components/rbac/EndedLine.js +24 -0
- package/dist/components/rbac/EndedLine.js.map +1 -0
- package/dist/components/rbac/InvitationsList.js +148 -0
- package/dist/components/rbac/InvitationsList.js.map +1 -0
- package/dist/components/rbac/InviteMembersDialog.js +97 -0
- package/dist/components/rbac/InviteMembersDialog.js.map +1 -0
- package/dist/components/rbac/MembersPanel.js +138 -0
- package/dist/components/rbac/MembersPanel.js.map +1 -0
- package/dist/components/rbac/PermissionRequestPanel.js +141 -0
- package/dist/components/rbac/PermissionRequestPanel.js.map +1 -0
- package/dist/components/rbac/ProfileForm.js +86 -0
- package/dist/components/rbac/ProfileForm.js.map +1 -0
- package/dist/components/rbac/ProfilePage.js +58 -0
- package/dist/components/rbac/ProfilePage.js.map +1 -0
- package/dist/components/rbac/RBACProvider.js +82 -0
- package/dist/components/rbac/RBACProvider.js.map +1 -0
- package/dist/components/rbac/RoleEditorDialog.js +90 -0
- package/dist/components/rbac/RoleEditorDialog.js.map +1 -0
- package/dist/components/rbac/RoleKeyPicker.js +77 -0
- package/dist/components/rbac/RoleKeyPicker.js.map +1 -0
- package/dist/components/rbac/RolePermissionMatrix.js +37 -0
- package/dist/components/rbac/RolePermissionMatrix.js.map +1 -0
- package/dist/components/rbac/RolesPermissionsPage.js +142 -0
- package/dist/components/rbac/RolesPermissionsPage.js.map +1 -0
- package/dist/components/rbac/SessionsList.js +146 -0
- package/dist/components/rbac/SessionsList.js.map +1 -0
- package/dist/components/rbac/TeamSettingsForm.js +69 -0
- package/dist/components/rbac/TeamSettingsForm.js.map +1 -0
- package/dist/components/rbac/TeamSwitcher.js +66 -0
- package/dist/components/rbac/TeamSwitcher.js.map +1 -0
- package/dist/components/rbac/approvalPanelParts.js +130 -0
- package/dist/components/rbac/approvalPanelParts.js.map +1 -0
- package/dist/components/rbac/permissionSections.js +8 -0
- package/dist/components/rbac/permissionSections.js.map +1 -0
- package/dist/components/rbac/stagedForm.js +42 -0
- package/dist/components/rbac/stagedForm.js.map +1 -0
- package/dist/components/rbac/useStagedImage.js +21 -0
- package/dist/components/rbac/useStagedImage.js.map +1 -0
- package/dist/components/roadmap/PhaseManager.js +48 -0
- package/dist/components/roadmap/PhaseManager.js.map +1 -0
- package/dist/components/roadmap/RoadmapItemCard.js +96 -0
- package/dist/components/roadmap/RoadmapItemCard.js.map +1 -0
- package/dist/components/roadmap/RoadmapPage.js +34 -0
- package/dist/components/roadmap/RoadmapPage.js.map +1 -0
- package/dist/components/roadmap/RoadmapSwimlaneBoard.js +91 -0
- package/dist/components/roadmap/RoadmapSwimlaneBoard.js.map +1 -0
- package/dist/components/roadmap/TrackManager.js +58 -0
- package/dist/components/roadmap/TrackManager.js.map +1 -0
- package/dist/components/roadmap/UseCaseCard.js +93 -0
- package/dist/components/roadmap/UseCaseCard.js.map +1 -0
- package/dist/components/roadmap/UseCaseLedgerPage.js +98 -0
- package/dist/components/roadmap/UseCaseLedgerPage.js.map +1 -0
- package/dist/components/roadmap/chip-tones.js +9 -0
- package/dist/components/roadmap/chip-tones.js.map +1 -0
- package/dist/components/roadmap/derive.js +28 -0
- package/dist/components/roadmap/derive.js.map +1 -0
- package/dist/components/stepper/Stepper.js +276 -0
- package/dist/components/stepper/Stepper.js.map +1 -0
- package/dist/components/stepper/derive.js +53 -0
- package/dist/components/stepper/derive.js.map +1 -0
- package/dist/confidence.css +222 -0
- package/dist/fonts/bricolage-grotesque-0.woff2 +0 -0
- package/dist/fonts/bricolage-grotesque-1.woff2 +0 -0
- package/dist/fonts/bricolage-grotesque-2.woff2 +0 -0
- package/dist/fonts/figtree-0.woff2 +0 -0
- package/dist/fonts/figtree-1.woff2 +0 -0
- package/dist/fonts/figtree-2.woff2 +0 -0
- package/dist/fonts/figtree-3.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-0.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-1.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-10.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-11.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-2.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-3.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-4.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-5.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-6.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-7.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-8.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-9.woff2 +0 -0
- package/dist/fonts.css +187 -0
- package/dist/icons/data.js +233 -0
- package/dist/icons/data.js.map +1 -0
- package/dist/index.js +942 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/attention.js +75 -0
- package/dist/lib/attention.js.map +1 -0
- package/dist/lib/board/anchor.js +14 -0
- package/dist/lib/board/anchor.js.map +1 -0
- package/dist/lib/board/model.js +41 -0
- package/dist/lib/board/model.js.map +1 -0
- package/dist/lib/board/move.js +161 -0
- package/dist/lib/board/move.js.map +1 -0
- package/dist/lib/board/position.js +11 -0
- package/dist/lib/board/position.js.map +1 -0
- package/dist/lib/board/rejection.js +22 -0
- package/dist/lib/board/rejection.js.map +1 -0
- package/dist/lib/board/use-board.js +43 -0
- package/dist/lib/board/use-board.js.map +1 -0
- package/dist/lib/calendar/band-packer.js +44 -0
- package/dist/lib/calendar/band-packer.js.map +1 -0
- package/dist/lib/calendar/drag.js +74 -0
- package/dist/lib/calendar/drag.js.map +1 -0
- package/dist/lib/calendar/lane-packer.js +67 -0
- package/dist/lib/calendar/lane-packer.js.map +1 -0
- package/dist/lib/calendar/segments.js +82 -0
- package/dist/lib/calendar/segments.js.map +1 -0
- package/dist/lib/calendar/types.js +7 -0
- package/dist/lib/calendar/types.js.map +1 -0
- package/dist/lib/chart-palette.js +27 -0
- package/dist/lib/chart-palette.js.map +1 -0
- package/dist/lib/clipboard.js +30 -0
- package/dist/lib/clipboard.js.map +1 -0
- package/dist/lib/cn.js +9 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/lib/color.js +24 -0
- package/dist/lib/color.js.map +1 -0
- package/dist/lib/component-guidance.js +297 -0
- package/dist/lib/component-guidance.js.map +1 -0
- package/dist/lib/confidence.js +22 -0
- package/dist/lib/confidence.js.map +1 -0
- package/dist/lib/date-timeline/scale.js +197 -0
- package/dist/lib/date-timeline/scale.js.map +1 -0
- package/dist/lib/design-frame/document.js +44 -0
- package/dist/lib/design-frame/document.js.map +1 -0
- package/dist/lib/design-frame/mini-app-script.js +107 -0
- package/dist/lib/design-frame/mini-app-script.js.map +1 -0
- package/dist/lib/design-frame/mini-app.js +12 -0
- package/dist/lib/design-frame/mini-app.js.map +1 -0
- package/dist/lib/design-frame/protocol.js +46 -0
- package/dist/lib/design-frame/protocol.js.map +1 -0
- package/dist/lib/dev-warn.js +17 -0
- package/dist/lib/dev-warn.js.map +1 -0
- package/dist/lib/dnd/announce.js +120 -0
- package/dist/lib/dnd/announce.js.map +1 -0
- package/dist/lib/dnd/autoscroll.js +123 -0
- package/dist/lib/dnd/autoscroll.js.map +1 -0
- package/dist/lib/dnd/cross-drop.js +11 -0
- package/dist/lib/dnd/cross-drop.js.map +1 -0
- package/dist/lib/dnd/geometry.js +99 -0
- package/dist/lib/dnd/geometry.js.map +1 -0
- package/dist/lib/dnd/sensors/gesture.js +86 -0
- package/dist/lib/dnd/sensors/gesture.js.map +1 -0
- package/dist/lib/dnd/sensors/keyboard.js +47 -0
- package/dist/lib/dnd/sensors/keyboard.js.map +1 -0
- package/dist/lib/dnd/sensors/pointer.js +32 -0
- package/dist/lib/dnd/sensors/pointer.js.map +1 -0
- package/dist/lib/dnd/session.js +256 -0
- package/dist/lib/dnd/session.js.map +1 -0
- package/dist/lib/dnd/use-drag.js +90 -0
- package/dist/lib/dnd/use-drag.js.map +1 -0
- package/dist/lib/dom/scroll-ancestor.js +18 -0
- package/dist/lib/dom/scroll-ancestor.js.map +1 -0
- package/dist/lib/format.js +23 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/group-in-order.js +13 -0
- package/dist/lib/group-in-order.js.map +1 -0
- package/dist/lib/header-fold.js +11 -0
- package/dist/lib/header-fold.js.map +1 -0
- package/dist/lib/i18n/areas/auth-provenance-flows.js +156 -0
- package/dist/lib/i18n/areas/auth-provenance-flows.js.map +1 -0
- package/dist/lib/i18n/areas/board.js +35 -0
- package/dist/lib/i18n/areas/board.js.map +1 -0
- package/dist/lib/i18n/areas/card-face.js +10 -0
- package/dist/lib/i18n/areas/card-face.js.map +1 -0
- package/dist/lib/i18n/areas/chat-chart.js +118 -0
- package/dist/lib/i18n/areas/chat-chart.js.map +1 -0
- package/dist/lib/i18n/areas/code-editor.js +24 -0
- package/dist/lib/i18n/areas/code-editor.js.map +1 -0
- package/dist/lib/i18n/areas/date-timeline.js +21 -0
- package/dist/lib/i18n/areas/date-timeline.js.map +1 -0
- package/dist/lib/i18n/areas/dates.js +71 -0
- package/dist/lib/i18n/areas/dates.js.map +1 -0
- package/dist/lib/i18n/areas/docs-views.js +183 -0
- package/dist/lib/i18n/areas/docs-views.js.map +1 -0
- package/dist/lib/i18n/areas/feedback.js +75 -0
- package/dist/lib/i18n/areas/feedback.js.map +1 -0
- package/dist/lib/i18n/areas/formats.js +24 -0
- package/dist/lib/i18n/areas/formats.js.map +1 -0
- package/dist/lib/i18n/areas/forms.js +110 -0
- package/dist/lib/i18n/areas/forms.js.map +1 -0
- package/dist/lib/i18n/areas/keys.js +25 -0
- package/dist/lib/i18n/areas/keys.js.map +1 -0
- package/dist/lib/i18n/areas/markdown.js +136 -0
- package/dist/lib/i18n/areas/markdown.js.map +1 -0
- package/dist/lib/i18n/areas/move-rejected.js +14 -0
- package/dist/lib/i18n/areas/move-rejected.js.map +1 -0
- package/dist/lib/i18n/areas/navigation.js +104 -0
- package/dist/lib/i18n/areas/navigation.js.map +1 -0
- package/dist/lib/i18n/areas/rbac.js +332 -0
- package/dist/lib/i18n/areas/rbac.js.map +1 -0
- package/dist/lib/i18n/emphasis.js +6 -0
- package/dist/lib/i18n/emphasis.js.map +1 -0
- package/dist/lib/i18n/number-format.js +9 -0
- package/dist/lib/i18n/number-format.js.map +1 -0
- package/dist/lib/i18n/plural.js +9 -0
- package/dist/lib/i18n/plural.js.map +1 -0
- package/dist/lib/i18n/provider.js +27 -0
- package/dist/lib/i18n/provider.js.map +1 -0
- package/dist/lib/i18n/strings.js +38 -0
- package/dist/lib/i18n/strings.js.map +1 -0
- package/dist/lib/icons.js +17 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/interactive-target.js +9 -0
- package/dist/lib/interactive-target.js.map +1 -0
- package/dist/lib/intl-cache.js +69 -0
- package/dist/lib/intl-cache.js.map +1 -0
- package/dist/lib/legal-document.js +37 -0
- package/dist/lib/legal-document.js.map +1 -0
- package/dist/lib/line-diff-model.js +51 -0
- package/dist/lib/line-diff-model.js.map +1 -0
- package/dist/lib/markdown/attachments.js +71 -0
- package/dist/lib/markdown/attachments.js.map +1 -0
- package/dist/lib/markdown/caret-map.js +153 -0
- package/dist/lib/markdown/caret-map.js.map +1 -0
- package/dist/lib/markdown/caret.js +35 -0
- package/dist/lib/markdown/caret.js.map +1 -0
- package/dist/lib/markdown/commands.js +443 -0
- package/dist/lib/markdown/commands.js.map +1 -0
- package/dist/lib/markdown/convert.js +153 -0
- package/dist/lib/markdown/convert.js.map +1 -0
- package/dist/lib/markdown/dom.js +89 -0
- package/dist/lib/markdown/dom.js.map +1 -0
- package/dist/lib/markdown/edit.js +92 -0
- package/dist/lib/markdown/edit.js.map +1 -0
- package/dist/lib/markdown/history.js +79 -0
- package/dist/lib/markdown/history.js.map +1 -0
- package/dist/lib/markdown/hotkeys.js +63 -0
- package/dist/lib/markdown/hotkeys.js.map +1 -0
- package/dist/lib/markdown/image-pipeline.js +236 -0
- package/dist/lib/markdown/image-pipeline.js.map +1 -0
- package/dist/lib/markdown/images.js +85 -0
- package/dist/lib/markdown/images.js.map +1 -0
- package/dist/lib/markdown/input.js +210 -0
- package/dist/lib/markdown/input.js.map +1 -0
- package/dist/lib/markdown/keys.js +37 -0
- package/dist/lib/markdown/keys.js.map +1 -0
- package/dist/lib/markdown/paste.js +180 -0
- package/dist/lib/markdown/paste.js.map +1 -0
- package/dist/lib/markdown/position.js +111 -0
- package/dist/lib/markdown/position.js.map +1 -0
- package/dist/lib/markdown/project.js +108 -0
- package/dist/lib/markdown/project.js.map +1 -0
- package/dist/lib/markdown/reconcile.js +127 -0
- package/dist/lib/markdown/reconcile.js.map +1 -0
- package/dist/lib/markdown/surface.js +373 -0
- package/dist/lib/markdown/surface.js.map +1 -0
- package/dist/lib/motion.js +22 -0
- package/dist/lib/motion.js.map +1 -0
- package/dist/lib/pad.js +7 -0
- package/dist/lib/pad.js.map +1 -0
- package/dist/lib/paged-window/layout.js +15 -0
- package/dist/lib/paged-window/layout.js.map +1 -0
- package/dist/lib/paged-window/list-owner.js +21 -0
- package/dist/lib/paged-window/list-owner.js.map +1 -0
- package/dist/lib/paged-window/records-binding.js +239 -0
- package/dist/lib/paged-window/records-binding.js.map +1 -0
- package/dist/lib/paged-window/store.js +562 -0
- package/dist/lib/paged-window/store.js.map +1 -0
- package/dist/lib/paged-window/use-measured-pitch.js +38 -0
- package/dist/lib/paged-window/use-measured-pitch.js.map +1 -0
- package/dist/lib/paged-window/use-page-visibility.js +36 -0
- package/dist/lib/paged-window/use-page-visibility.js.map +1 -0
- package/dist/lib/paged-window/use-paged-window.js +43 -0
- package/dist/lib/paged-window/use-paged-window.js.map +1 -0
- package/dist/lib/paged-window/use-scroll-root.js +12 -0
- package/dist/lib/paged-window/use-scroll-root.js.map +1 -0
- package/dist/lib/persist.js +84 -0
- package/dist/lib/persist.js.map +1 -0
- package/dist/lib/preference-values.js +13 -0
- package/dist/lib/preference-values.js.map +1 -0
- package/dist/lib/preferences.js +86 -0
- package/dist/lib/preferences.js.map +1 -0
- package/dist/lib/reads/hooks.js +156 -0
- package/dist/lib/reads/hooks.js.map +1 -0
- package/dist/lib/reads/optimistic.js +169 -0
- package/dist/lib/reads/optimistic.js.map +1 -0
- package/dist/lib/reads/refetch.js +108 -0
- package/dist/lib/reads/refetch.js.map +1 -0
- package/dist/lib/reads/slots.js +215 -0
- package/dist/lib/reads/slots.js.map +1 -0
- package/dist/lib/realtime/hooks.js +40 -0
- package/dist/lib/realtime/hooks.js.map +1 -0
- package/dist/lib/realtime/provider.js +25 -0
- package/dist/lib/realtime/provider.js.map +1 -0
- package/dist/lib/realtime/registry.js +472 -0
- package/dist/lib/realtime/registry.js.map +1 -0
- package/dist/lib/records/define-record-type.js +33 -0
- package/dist/lib/records/define-record-type.js.map +1 -0
- package/dist/lib/records/hooks.js +39 -0
- package/dist/lib/records/hooks.js.map +1 -0
- package/dist/lib/records/store.js +572 -0
- package/dist/lib/records/store.js.map +1 -0
- package/dist/lib/records/wire.js +58 -0
- package/dist/lib/records/wire.js.map +1 -0
- package/dist/lib/reduced-motion-help.js +19 -0
- package/dist/lib/reduced-motion-help.js.map +1 -0
- package/dist/lib/scroll-caret.js +18 -0
- package/dist/lib/scroll-caret.js.map +1 -0
- package/dist/lib/sim/createSimStore.js +54 -0
- package/dist/lib/sim/createSimStore.js.map +1 -0
- package/dist/lib/sim/latency.js +28 -0
- package/dist/lib/sim/latency.js.map +1 -0
- package/dist/lib/sim/registry.js +13 -0
- package/dist/lib/sim/registry.js.map +1 -0
- package/dist/lib/sim/settings.js +41 -0
- package/dist/lib/sim/settings.js.map +1 -0
- package/dist/lib/submit-shortcut.js +25 -0
- package/dist/lib/submit-shortcut.js.map +1 -0
- package/dist/lib/syntax/index.js +33 -0
- package/dist/lib/syntax/index.js.map +1 -0
- package/dist/lib/syntax/languages/bash.js +77 -0
- package/dist/lib/syntax/languages/bash.js.map +1 -0
- package/dist/lib/syntax/languages/css.js +81 -0
- package/dist/lib/syntax/languages/css.js.map +1 -0
- package/dist/lib/syntax/languages/html.js +91 -0
- package/dist/lib/syntax/languages/html.js.map +1 -0
- package/dist/lib/syntax/languages/index.js +49 -0
- package/dist/lib/syntax/languages/index.js.map +1 -0
- package/dist/lib/syntax/languages/javascript.js +133 -0
- package/dist/lib/syntax/languages/javascript.js.map +1 -0
- package/dist/lib/syntax/languages/json.js +45 -0
- package/dist/lib/syntax/languages/json.js.map +1 -0
- package/dist/lib/syntax/languages/mongodb.js +24 -0
- package/dist/lib/syntax/languages/mongodb.js.map +1 -0
- package/dist/lib/syntax/languages/plain.js +10 -0
- package/dist/lib/syntax/languages/plain.js.map +1 -0
- package/dist/lib/syntax/languages/sql.js +113 -0
- package/dist/lib/syntax/languages/sql.js.map +1 -0
- package/dist/lib/syntax/languages/vue.js +31 -0
- package/dist/lib/syntax/languages/vue.js.map +1 -0
- package/dist/lib/syntax/languages/yaml.js +55 -0
- package/dist/lib/syntax/languages/yaml.js.map +1 -0
- package/dist/lib/syntax/markdown/grammar.js +52 -0
- package/dist/lib/syntax/markdown/grammar.js.map +1 -0
- package/dist/lib/syntax/markdown/inline.js +477 -0
- package/dist/lib/syntax/markdown/inline.js.map +1 -0
- package/dist/lib/syntax/markdown/parse.js +464 -0
- package/dist/lib/syntax/markdown/parse.js.map +1 -0
- package/dist/lib/syntax/markdown/refs.js +94 -0
- package/dist/lib/syntax/markdown/refs.js.map +1 -0
- package/dist/lib/syntax/markdown/render.js +230 -0
- package/dist/lib/syntax/markdown/render.js.map +1 -0
- package/dist/lib/syntax/markdown/spans.js +40 -0
- package/dist/lib/syntax/markdown/spans.js.map +1 -0
- package/dist/lib/syntax/registry.js +55 -0
- package/dist/lib/syntax/registry.js.map +1 -0
- package/dist/lib/syntax/tokenize.js +96 -0
- package/dist/lib/syntax/tokenize.js.map +1 -0
- package/dist/lib/time/instant.js +7 -0
- package/dist/lib/time/instant.js.map +1 -0
- package/dist/lib/time/plain.js +83 -0
- package/dist/lib/time/plain.js.map +1 -0
- package/dist/lib/time/relativeAge.js +20 -0
- package/dist/lib/time/relativeAge.js.map +1 -0
- package/dist/lib/time/relativeClock.js +59 -0
- package/dist/lib/time/relativeClock.js.map +1 -0
- package/dist/lib/time/types.js +23 -0
- package/dist/lib/time/types.js.map +1 -0
- package/dist/lib/time/zone.js +148 -0
- package/dist/lib/time/zone.js.map +1 -0
- package/dist/lib/use-controllable.js +16 -0
- package/dist/lib/use-controllable.js.map +1 -0
- package/dist/lib/use-fill-height.js +49 -0
- package/dist/lib/use-fill-height.js.map +1 -0
- package/dist/lib/use-hydrated.js +14 -0
- package/dist/lib/use-hydrated.js.map +1 -0
- package/dist/lib/use-media-query.js +30 -0
- package/dist/lib/use-media-query.js.map +1 -0
- package/dist/lib/use-relabel-base-ui-dismiss.js +26 -0
- package/dist/lib/use-relabel-base-ui-dismiss.js.map +1 -0
- package/dist/lib/use-release-snap-drag.js +29 -0
- package/dist/lib/use-release-snap-drag.js.map +1 -0
- package/dist/lib/use-roving-options.js +18 -0
- package/dist/lib/use-roving-options.js.map +1 -0
- package/dist/lib/values/absent.js +5 -0
- package/dist/lib/values/absent.js.map +1 -0
- package/dist/lib/values/boolean.js +13 -0
- package/dist/lib/values/boolean.js.map +1 -0
- package/dist/lib/values/currency.js +23 -0
- package/dist/lib/values/currency.js.map +1 -0
- package/dist/lib/values/date.js +35 -0
- package/dist/lib/values/date.js.map +1 -0
- package/dist/lib/values/datetime.js +54 -0
- package/dist/lib/values/datetime.js.map +1 -0
- package/dist/lib/values/locale-date.js +60 -0
- package/dist/lib/values/locale-date.js.map +1 -0
- package/dist/lib/values/number.js +16 -0
- package/dist/lib/values/number.js.map +1 -0
- package/dist/pure.js +379 -0
- package/dist/pure.js.map +1 -0
- package/dist/styles.css +190 -0
- package/dist/theme.css +360 -0
- package/dist/types/components/Accordion.d.ts +15 -0
- package/dist/types/components/AgentWorkingSpinner.d.ts +23 -0
- package/dist/types/components/AppShell.d.ts +164 -0
- package/dist/types/components/Attention.d.ts +87 -0
- package/dist/types/components/Avatar.d.ts +154 -0
- package/dist/types/components/Badge.d.ts +131 -0
- package/dist/types/components/Board.d.ts +239 -0
- package/dist/types/components/Button.d.ts +208 -0
- package/dist/types/components/Callout.d.ts +163 -0
- package/dist/types/components/Card.d.ts +219 -0
- package/dist/types/components/Choice.d.ts +127 -0
- package/dist/types/components/CodeEditor.d.ts +86 -0
- package/dist/types/components/ColorPicker.d.ts +14 -0
- package/dist/types/components/Combobox.d.ts +43 -0
- package/dist/types/components/CommandPalette.d.ts +35 -0
- package/dist/types/components/ConcentricRing.d.ts +61 -0
- package/dist/types/components/ConnectionCard.d.ts +64 -0
- package/dist/types/components/ContextItemRow.d.ts +35 -0
- package/dist/types/components/CopyValue.d.ts +14 -0
- package/dist/types/components/CountBadge.d.ts +14 -0
- package/dist/types/components/DateCalendar.d.ts +30 -0
- package/dist/types/components/DateField.d.ts +29 -0
- package/dist/types/components/DatePicker.d.ts +20 -0
- package/dist/types/components/DateTimeText.d.ts +9 -0
- package/dist/types/components/DescriptionList.d.ts +40 -0
- package/dist/types/components/Dialog.d.ts +269 -0
- package/dist/types/components/DragDrop.d.ts +196 -0
- package/dist/types/components/Drawer.d.ts +163 -0
- package/dist/types/components/EditGutter.d.ts +44 -0
- package/dist/types/components/EmojiPicker.d.ts +30 -0
- package/dist/types/components/ErrorBoundary.d.ts +43 -0
- package/dist/types/components/Field.d.ts +37 -0
- package/dist/types/components/FileUpload.d.ts +22 -0
- package/dist/types/components/FilterMenu.d.ts +120 -0
- package/dist/types/components/GatesSection.d.ts +79 -0
- package/dist/types/components/Icon.d.ts +40 -0
- package/dist/types/components/IconButton.d.ts +69 -0
- package/dist/types/components/IconStack.d.ts +28 -0
- package/dist/types/components/ImageUploadField.d.ts +38 -0
- package/dist/types/components/InlineEdit.d.ts +183 -0
- package/dist/types/components/InlineMarkdownEdit.d.ts +100 -0
- package/dist/types/components/Input.d.ts +128 -0
- package/dist/types/components/LegalDocument.d.ts +23 -0
- package/dist/types/components/LineDiff.d.ts +53 -0
- package/dist/types/components/ListHeader.d.ts +45 -0
- package/dist/types/components/Loading.d.ts +131 -0
- package/dist/types/components/Markdown.d.ts +35 -0
- package/dist/types/components/MarkdownEditor.d.ts +129 -0
- package/dist/types/components/Menu.d.ts +157 -0
- package/dist/types/components/Navigation.d.ts +67 -0
- package/dist/types/components/NumberInput.d.ts +177 -0
- package/dist/types/components/OTPInput.d.ts +13 -0
- package/dist/types/components/OrderedEntityManager.d.ts +64 -0
- package/dist/types/components/PagedWindowList.d.ts +23 -0
- package/dist/types/components/PaginationBar.d.ts +31 -0
- package/dist/types/components/Panel.d.ts +94 -0
- package/dist/types/components/PasswordInput.d.ts +7 -0
- package/dist/types/components/PasswordRequirements.d.ts +11 -0
- package/dist/types/components/PatchDiff.d.ts +38 -0
- package/dist/types/components/PendingVeil.d.ts +8 -0
- package/dist/types/components/Popover.d.ts +231 -0
- package/dist/types/components/Progress.d.ts +580 -0
- package/dist/types/components/RatingScale.d.ts +30 -0
- package/dist/types/components/ReadMore.d.ts +26 -0
- package/dist/types/components/RecordCard.d.ts +413 -0
- package/dist/types/components/RelativeTime.d.ts +17 -0
- package/dist/types/components/SandboxedFrame.d.ts +37 -0
- package/dist/types/components/SearchInput.d.ts +6 -0
- package/dist/types/components/SecretField.d.ts +90 -0
- package/dist/types/components/SectionNav.d.ts +15 -0
- package/dist/types/components/Select.d.ts +53 -0
- package/dist/types/components/SequenceDiagram.d.ts +15 -0
- package/dist/types/components/SettingRow.d.ts +144 -0
- package/dist/types/components/SignOffRings.d.ts +29 -0
- package/dist/types/components/Slider.d.ts +255 -0
- package/dist/types/components/SolutionChoice.d.ts +49 -0
- package/dist/types/components/SortMenu.d.ts +45 -0
- package/dist/types/components/Spinner.d.ts +29 -0
- package/dist/types/components/Stat.d.ts +136 -0
- package/dist/types/components/StatusSelect.d.ts +93 -0
- package/dist/types/components/Surface.d.ts +145 -0
- package/dist/types/components/Table.d.ts +164 -0
- package/dist/types/components/Tabs.d.ts +142 -0
- package/dist/types/components/ThemeMenu.d.ts +56 -0
- package/dist/types/components/Toast.d.ts +63 -0
- package/dist/types/components/Toggle.d.ts +168 -0
- package/dist/types/components/ToggleMatrix.d.ts +51 -0
- package/dist/types/components/Tree.d.ts +20 -0
- package/dist/types/components/TriStateSwitch.d.ts +63 -0
- package/dist/types/components/VideoPlayer.d.ts +26 -0
- package/dist/types/components/auth/AcceptInvitationCard.d.ts +54 -0
- package/dist/types/components/auth/AuthLayout.d.ts +12 -0
- package/dist/types/components/auth/ForgotPasswordForm.d.ts +6 -0
- package/dist/types/components/auth/LoginForm.d.ts +13 -0
- package/dist/types/components/auth/ResetPasswordForm.d.ts +9 -0
- package/dist/types/components/auth/SignInProviders.d.ts +56 -0
- package/dist/types/components/auth/SignupCard.d.ts +62 -0
- package/dist/types/components/auth/TermsAcceptance.d.ts +14 -0
- package/dist/types/components/auth/index.d.ts +8 -0
- package/dist/types/components/board/context.d.ts +65 -0
- package/dist/types/components/board/recipe.d.ts +97 -0
- package/dist/types/components/calendar/CalendarMonth.d.ts +32 -0
- package/dist/types/components/calendar/CalendarTimeGrid.d.ts +74 -0
- package/dist/types/components/calendar/EventActions.d.ts +16 -0
- package/dist/types/components/calendar/format.d.ts +42 -0
- package/dist/types/components/calendar/palette.d.ts +17 -0
- package/dist/types/components/calendar/use-calendar-drag.d.ts +53 -0
- package/dist/types/components/calendar/use-event-keyboard.d.ts +23 -0
- package/dist/types/components/calendar/use-grid-navigation.d.ts +47 -0
- package/dist/types/components/calendar/use-now.d.ts +20 -0
- package/dist/types/components/card-face/AcRingGlyph.d.ts +20 -0
- package/dist/types/components/card-face/BoardCardAgentSlot.d.ts +19 -0
- package/dist/types/components/card-face/CardFace.d.ts +106 -0
- package/dist/types/components/card-face/CardTypeBadge.d.ts +21 -0
- package/dist/types/components/card-face/EffortBadge.d.ts +9 -0
- package/dist/types/components/card-face/GateRingGlyph.d.ts +22 -0
- package/dist/types/components/card-face/OverflowRow.d.ts +40 -0
- package/dist/types/components/card-face/TapTip.d.ts +15 -0
- package/dist/types/components/card-face/hit-area.d.ts +20 -0
- package/dist/types/components/card-face/vocabulary.d.ts +83 -0
- package/dist/types/components/chart/BarList.d.ts +27 -0
- package/dist/types/components/chart/LineChart.d.ts +64 -0
- package/dist/types/components/chart/ShareBar.d.ts +26 -0
- package/dist/types/components/chart/TimeSeriesChart.d.ts +60 -0
- package/dist/types/components/chart/label-metrics.d.ts +9 -0
- package/dist/types/components/chart/line-chart-axis.d.ts +14 -0
- package/dist/types/components/chart/line-chart-scale.d.ts +55 -0
- package/dist/types/components/chart/line-series-style.d.ts +14 -0
- package/dist/types/components/chart/share-bar-labels.d.ts +17 -0
- package/dist/types/components/chart/shared.d.ts +122 -0
- package/dist/types/components/chart/time-series-scale.d.ts +29 -0
- package/dist/types/components/chat/Attachment.d.ts +125 -0
- package/dist/types/components/chat/Chat.d.ts +60 -0
- package/dist/types/components/chat/Composer.d.ts +62 -0
- package/dist/types/components/chat/ContextMeter.d.ts +45 -0
- package/dist/types/components/chat/EffortControl.d.ts +23 -0
- package/dist/types/components/chat/FileCover.d.ts +14 -0
- package/dist/types/components/chat/Message.d.ts +66 -0
- package/dist/types/components/chat/MessageScroller.d.ts +18 -0
- package/dist/types/components/chat/ModelSelector.d.ts +44 -0
- package/dist/types/components/chat/StreamingMarkdown.d.ts +11 -0
- package/dist/types/components/chat/download-file.d.ts +7 -0
- package/dist/types/components/chat/file-icon.d.ts +29 -0
- package/dist/types/components/chat/types.d.ts +165 -0
- package/dist/types/components/checklist/StatusChecklist.d.ts +37 -0
- package/dist/types/components/checklist/index.d.ts +3 -0
- package/dist/types/components/checklist/tally.d.ts +19 -0
- package/dist/types/components/checklist/types.d.ts +28 -0
- package/dist/types/components/code-editor/context.d.ts +32 -0
- package/dist/types/components/code-editor/editing.d.ts +39 -0
- package/dist/types/components/code-editor/highlight.d.ts +20 -0
- package/dist/types/components/code-editor/recipe.d.ts +109 -0
- package/dist/types/components/date-timeline/DateTimeline.d.ts +99 -0
- package/dist/types/components/date-timeline/TimelineRow.d.ts +22 -0
- package/dist/types/components/date-timeline/useBarDrag.d.ts +15 -0
- package/dist/types/components/date-timeline/useMarkerDrag.d.ts +14 -0
- package/dist/types/components/date-timeline/useTimelineZoom.d.ts +23 -0
- package/dist/types/components/drag-drop/context.d.ts +85 -0
- package/dist/types/components/drag-drop/recipe.d.ts +163 -0
- package/dist/types/components/drag-drop/shift.d.ts +153 -0
- package/dist/types/components/edit/activation.d.ts +21 -0
- package/dist/types/components/edit/outcome.d.ts +29 -0
- package/dist/types/components/edit/use-edit-session.d.ts +77 -0
- package/dist/types/components/file-viewer/FileViewer.d.ts +2 -0
- package/dist/types/components/file-viewer/PageNumberJumpField.d.ts +9 -0
- package/dist/types/components/file-viewer/ViewerControls.d.ts +20 -0
- package/dist/types/components/file-viewer/ViewerRail.d.ts +10 -0
- package/dist/types/components/file-viewer/ViewerStage.d.ts +22 -0
- package/dist/types/components/file-viewer/frames.d.ts +28 -0
- package/dist/types/components/file-viewer/index.d.ts +3 -0
- package/dist/types/components/file-viewer/types.d.ts +70 -0
- package/dist/types/components/file-viewer/use-frame-cursor.d.ts +13 -0
- package/dist/types/components/file-viewer/use-viewer-keys.d.ts +24 -0
- package/dist/types/components/file-viewer/use-viewer-zoom.d.ts +29 -0
- package/dist/types/components/focus-web/FocusWeb.d.ts +3 -0
- package/dist/types/components/focus-web/index.d.ts +4 -0
- package/dist/types/components/focus-web/layout.d.ts +55 -0
- package/dist/types/components/focus-web/types.d.ts +131 -0
- package/dist/types/components/graph-explorer/GraphExplorer.d.ts +42 -0
- package/dist/types/components/graph-explorer/camera-math.d.ts +119 -0
- package/dist/types/components/graph-explorer/index.d.ts +5 -0
- package/dist/types/components/graph-explorer/tree-layout.d.ts +67 -0
- package/dist/types/components/graph-explorer/types.d.ts +62 -0
- package/dist/types/components/graph-explorer/use-camera.d.ts +81 -0
- package/dist/types/components/graph-explorer/viewport-gesture.d.ts +32 -0
- package/dist/types/components/kanban/KanbanBoard.d.ts +72 -0
- package/dist/types/components/kanban/recipe.d.ts +73 -0
- package/dist/types/components/kanban/types.d.ts +55 -0
- package/dist/types/components/markdown/Affordances.d.ts +105 -0
- package/dist/types/components/markdown/AttachmentStrip.d.ts +25 -0
- package/dist/types/components/markdown/ImageUpload.d.ts +56 -0
- package/dist/types/components/media-error.d.ts +11 -0
- package/dist/types/components/nav-sections.d.ts +10 -0
- package/dist/types/components/node-canvas/NodeCanvas.d.ts +66 -0
- package/dist/types/components/node-canvas/index.d.ts +3 -0
- package/dist/types/components/node-canvas/layout.d.ts +29 -0
- package/dist/types/components/node-canvas/types.d.ts +207 -0
- package/dist/types/components/node-canvas/use-canvas-gestures.d.ts +39 -0
- package/dist/types/components/openapi/OpenApiViewer.d.ts +14 -0
- package/dist/types/components/openapi/OperationCard.d.ts +33 -0
- package/dist/types/components/openapi/SchemaView.d.ts +14 -0
- package/dist/types/components/openapi/index.d.ts +6 -0
- package/dist/types/components/openapi/resolve.d.ts +72 -0
- package/dist/types/components/openapi/types.d.ts +128 -0
- package/dist/types/components/overlay-shell.d.ts +48 -0
- package/dist/types/components/overlay-stack.d.ts +18 -0
- package/dist/types/components/paged-window/PageBlock.d.ts +31 -0
- package/dist/types/components/provenance/ConfidenceBar.d.ts +118 -0
- package/dist/types/components/provenance/ConfidenceMeter.d.ts +21 -0
- package/dist/types/components/provenance/ConfidenceReadout.d.ts +17 -0
- package/dist/types/components/provenance/ProvenanceBadge.d.ts +23 -0
- package/dist/types/components/provenance/ProvenanceDetail.d.ts +109 -0
- package/dist/types/components/provenance/ProvenanceDisclosure.d.ts +107 -0
- package/dist/types/components/provenance/absence.d.ts +37 -0
- package/dist/types/components/provenance/index.d.ts +7 -0
- package/dist/types/components/provenance/types.d.ts +137 -0
- package/dist/types/components/rbac/AccessRequestPanel.d.ts +92 -0
- package/dist/types/components/rbac/AccountMenu.d.ts +46 -0
- package/dist/types/components/rbac/AgentKeysList.d.ts +22 -0
- package/dist/types/components/rbac/ApiKeysPanel.d.ts +26 -0
- package/dist/types/components/rbac/ApiKeysTable.d.ts +65 -0
- package/dist/types/components/rbac/Brand.d.ts +8 -0
- package/dist/types/components/rbac/Can.d.ts +19 -0
- package/dist/types/components/rbac/ChangePasswordForm.d.ts +18 -0
- package/dist/types/components/rbac/DangerZone.d.ts +8 -0
- package/dist/types/components/rbac/DevToolsPopover.d.ts +36 -0
- package/dist/types/components/rbac/EndedLine.d.ts +21 -0
- package/dist/types/components/rbac/InvitationsList.d.ts +39 -0
- package/dist/types/components/rbac/InviteMembersDialog.d.ts +21 -0
- package/dist/types/components/rbac/MembersPanel.d.ts +31 -0
- package/dist/types/components/rbac/PermissionRequestPanel.d.ts +36 -0
- package/dist/types/components/rbac/ProfileForm.d.ts +27 -0
- package/dist/types/components/rbac/ProfilePage.d.ts +16 -0
- package/dist/types/components/rbac/RBACProvider.d.ts +69 -0
- package/dist/types/components/rbac/RoleEditorDialog.d.ts +28 -0
- package/dist/types/components/rbac/RoleKeyPicker.d.ts +24 -0
- package/dist/types/components/rbac/RolePermissionMatrix.d.ts +21 -0
- package/dist/types/components/rbac/RolesPermissionsPage.d.ts +24 -0
- package/dist/types/components/rbac/SessionsList.d.ts +35 -0
- package/dist/types/components/rbac/TeamSettingsForm.d.ts +22 -0
- package/dist/types/components/rbac/TeamSwitcher.d.ts +5 -0
- package/dist/types/components/rbac/approvalPanelParts.d.ts +69 -0
- package/dist/types/components/rbac/index.d.ts +25 -0
- package/dist/types/components/rbac/permissionSections.d.ts +8 -0
- package/dist/types/components/rbac/stagedForm.d.ts +25 -0
- package/dist/types/components/rbac/types.d.ts +65 -0
- package/dist/types/components/rbac/useStagedImage.d.ts +15 -0
- package/dist/types/components/roadmap/PhaseManager.d.ts +19 -0
- package/dist/types/components/roadmap/RoadmapItemCard.d.ts +51 -0
- package/dist/types/components/roadmap/RoadmapPage.d.ts +12 -0
- package/dist/types/components/roadmap/RoadmapSwimlaneBoard.d.ts +15 -0
- package/dist/types/components/roadmap/TrackManager.d.ts +19 -0
- package/dist/types/components/roadmap/UseCaseCard.d.ts +30 -0
- package/dist/types/components/roadmap/UseCaseLedgerPage.d.ts +29 -0
- package/dist/types/components/roadmap/chip-tones.d.ts +2 -0
- package/dist/types/components/roadmap/derive.d.ts +39 -0
- package/dist/types/components/roadmap/index.d.ts +10 -0
- package/dist/types/components/roadmap/types.d.ts +86 -0
- package/dist/types/components/stepper/Stepper.d.ts +79 -0
- package/dist/types/components/stepper/derive.d.ts +49 -0
- package/dist/types/components/stepper/index.d.ts +3 -0
- package/dist/types/components/stepper/types.d.ts +118 -0
- package/dist/types/icons/data.d.ts +2054 -0
- package/dist/types/index.d.ts +209 -0
- package/dist/types/lib/attention.d.ts +62 -0
- package/dist/types/lib/board/anchor.d.ts +69 -0
- package/dist/types/lib/board/index.d.ts +17 -0
- package/dist/types/lib/board/model.d.ts +43 -0
- package/dist/types/lib/board/move.d.ts +181 -0
- package/dist/types/lib/board/position.d.ts +22 -0
- package/dist/types/lib/board/rejection.d.ts +8 -0
- package/dist/types/lib/board/types.d.ts +294 -0
- package/dist/types/lib/board/use-board.d.ts +47 -0
- package/dist/types/lib/calendar/band-packer.d.ts +53 -0
- package/dist/types/lib/calendar/drag.d.ts +125 -0
- package/dist/types/lib/calendar/index.d.ts +4 -0
- package/dist/types/lib/calendar/lane-packer.d.ts +88 -0
- package/dist/types/lib/calendar/segments.d.ts +91 -0
- package/dist/types/lib/calendar/types.d.ts +166 -0
- package/dist/types/lib/chart-palette.d.ts +14 -0
- package/dist/types/lib/clipboard.d.ts +12 -0
- package/dist/types/lib/cn.d.ts +7 -0
- package/dist/types/lib/color.d.ts +14 -0
- package/dist/types/lib/component-guidance.d.ts +15 -0
- package/dist/types/lib/confidence.d.ts +28 -0
- package/dist/types/lib/date-timeline/scale.d.ts +143 -0
- package/dist/types/lib/design-frame/document.d.ts +39 -0
- package/dist/types/lib/design-frame/mini-app-script.d.ts +29 -0
- package/dist/types/lib/design-frame/mini-app.d.ts +17 -0
- package/dist/types/lib/design-frame/protocol.d.ts +78 -0
- package/dist/types/lib/dev-warn.d.ts +10 -0
- package/dist/types/lib/dnd/announce.d.ts +124 -0
- package/dist/types/lib/dnd/autoscroll.d.ts +88 -0
- package/dist/types/lib/dnd/cross-drop.d.ts +18 -0
- package/dist/types/lib/dnd/geometry.d.ts +126 -0
- package/dist/types/lib/dnd/index.d.ts +17 -0
- package/dist/types/lib/dnd/sensors/gesture.d.ts +37 -0
- package/dist/types/lib/dnd/sensors/keyboard.d.ts +54 -0
- package/dist/types/lib/dnd/sensors/pointer.d.ts +59 -0
- package/dist/types/lib/dnd/session.d.ts +124 -0
- package/dist/types/lib/dnd/types.d.ts +226 -0
- package/dist/types/lib/dnd/use-drag.d.ts +82 -0
- package/dist/types/lib/dom/scroll-ancestor.d.ts +15 -0
- package/dist/types/lib/format.d.ts +33 -0
- package/dist/types/lib/group-in-order.d.ts +13 -0
- package/dist/types/lib/header-fold.d.ts +10 -0
- package/dist/types/lib/i18n/areas/auth-provenance-flows.d.ts +287 -0
- package/dist/types/lib/i18n/areas/board.d.ts +51 -0
- package/dist/types/lib/i18n/areas/card-face.d.ts +8 -0
- package/dist/types/lib/i18n/areas/chat-chart.d.ts +202 -0
- package/dist/types/lib/i18n/areas/code-editor.d.ts +40 -0
- package/dist/types/lib/i18n/areas/date-timeline.d.ts +36 -0
- package/dist/types/lib/i18n/areas/dates.d.ts +103 -0
- package/dist/types/lib/i18n/areas/docs-views.d.ts +297 -0
- package/dist/types/lib/i18n/areas/feedback.d.ts +132 -0
- package/dist/types/lib/i18n/areas/formats.d.ts +30 -0
- package/dist/types/lib/i18n/areas/forms.d.ts +182 -0
- package/dist/types/lib/i18n/areas/keys.d.ts +15 -0
- package/dist/types/lib/i18n/areas/markdown.d.ts +150 -0
- package/dist/types/lib/i18n/areas/move-rejected.d.ts +16 -0
- package/dist/types/lib/i18n/areas/navigation.d.ts +185 -0
- package/dist/types/lib/i18n/areas/rbac.d.ts +635 -0
- package/dist/types/lib/i18n/emphasis.d.ts +3 -0
- package/dist/types/lib/i18n/index.d.ts +10 -0
- package/dist/types/lib/i18n/number-format.d.ts +5 -0
- package/dist/types/lib/i18n/plural.d.ts +7 -0
- package/dist/types/lib/i18n/provider.d.ts +16 -0
- package/dist/types/lib/i18n/strings.d.ts +18 -0
- package/dist/types/lib/icons.d.ts +22 -0
- package/dist/types/lib/interactive-target.d.ts +3 -0
- package/dist/types/lib/intl-cache.d.ts +31 -0
- package/dist/types/lib/legal-document.d.ts +82 -0
- package/dist/types/lib/line-diff-model.d.ts +39 -0
- package/dist/types/lib/markdown/attachments.d.ts +50 -0
- package/dist/types/lib/markdown/caret-map.d.ts +69 -0
- package/dist/types/lib/markdown/caret.d.ts +6 -0
- package/dist/types/lib/markdown/commands.d.ts +186 -0
- package/dist/types/lib/markdown/convert.d.ts +99 -0
- package/dist/types/lib/markdown/dom.d.ts +30 -0
- package/dist/types/lib/markdown/edit.d.ts +16 -0
- package/dist/types/lib/markdown/history.d.ts +59 -0
- package/dist/types/lib/markdown/hotkeys.d.ts +63 -0
- package/dist/types/lib/markdown/image-pipeline.d.ts +173 -0
- package/dist/types/lib/markdown/images.d.ts +138 -0
- package/dist/types/lib/markdown/input.d.ts +38 -0
- package/dist/types/lib/markdown/keys.d.ts +34 -0
- package/dist/types/lib/markdown/paste.d.ts +9 -0
- package/dist/types/lib/markdown/position.d.ts +43 -0
- package/dist/types/lib/markdown/project.d.ts +88 -0
- package/dist/types/lib/markdown/reconcile.d.ts +63 -0
- package/dist/types/lib/markdown/surface.d.ts +236 -0
- package/dist/types/lib/motion.d.ts +30 -0
- package/dist/types/lib/pad.d.ts +6 -0
- package/dist/types/lib/paged-window/index.d.ts +2 -0
- package/dist/types/lib/paged-window/layout.d.ts +21 -0
- package/dist/types/lib/paged-window/list-owner.d.ts +12 -0
- package/dist/types/lib/paged-window/records-binding.d.ts +102 -0
- package/dist/types/lib/paged-window/store.d.ts +307 -0
- package/dist/types/lib/paged-window/use-measured-pitch.d.ts +34 -0
- package/dist/types/lib/paged-window/use-page-visibility.d.ts +20 -0
- package/dist/types/lib/paged-window/use-paged-window.d.ts +61 -0
- package/dist/types/lib/paged-window/use-scroll-root.d.ts +18 -0
- package/dist/types/lib/persist.d.ts +57 -0
- package/dist/types/lib/preference-values.d.ts +72 -0
- package/dist/types/lib/preferences.d.ts +26 -0
- package/dist/types/lib/reads/hooks.d.ts +49 -0
- package/dist/types/lib/reads/index.d.ts +5 -0
- package/dist/types/lib/reads/optimistic.d.ts +119 -0
- package/dist/types/lib/reads/refetch.d.ts +83 -0
- package/dist/types/lib/reads/slots.d.ts +137 -0
- package/dist/types/lib/reads/types.d.ts +155 -0
- package/dist/types/lib/realtime/hooks.d.ts +38 -0
- package/dist/types/lib/realtime/index.d.ts +4 -0
- package/dist/types/lib/realtime/provider.d.ts +38 -0
- package/dist/types/lib/realtime/registry.d.ts +225 -0
- package/dist/types/lib/realtime/types.d.ts +242 -0
- package/dist/types/lib/records/define-record-type.d.ts +29 -0
- package/dist/types/lib/records/hooks.d.ts +46 -0
- package/dist/types/lib/records/index.d.ts +5 -0
- package/dist/types/lib/records/store.d.ts +289 -0
- package/dist/types/lib/records/types.d.ts +195 -0
- package/dist/types/lib/records/wire.d.ts +96 -0
- package/dist/types/lib/reduced-motion-help.d.ts +23 -0
- package/dist/types/lib/scroll-caret.d.ts +6 -0
- package/dist/types/lib/sim/createSimStore.d.ts +18 -0
- package/dist/types/lib/sim/index.d.ts +5 -0
- package/dist/types/lib/sim/latency.d.ts +10 -0
- package/dist/types/lib/sim/registry.d.ts +14 -0
- package/dist/types/lib/sim/settings.d.ts +11 -0
- package/dist/types/lib/sim/types.d.ts +3 -0
- package/dist/types/lib/submit-shortcut.d.ts +24 -0
- package/dist/types/lib/syntax/index.d.ts +16 -0
- package/dist/types/lib/syntax/languages/bash.d.ts +1 -0
- package/dist/types/lib/syntax/languages/css.d.ts +1 -0
- package/dist/types/lib/syntax/languages/html.d.ts +17 -0
- package/dist/types/lib/syntax/languages/index.d.ts +33 -0
- package/dist/types/lib/syntax/languages/javascript.d.ts +22 -0
- package/dist/types/lib/syntax/languages/json.d.ts +1 -0
- package/dist/types/lib/syntax/languages/mongodb.d.ts +1 -0
- package/dist/types/lib/syntax/languages/plain.d.ts +9 -0
- package/dist/types/lib/syntax/languages/sql.d.ts +4 -0
- package/dist/types/lib/syntax/languages/vue.d.ts +1 -0
- package/dist/types/lib/syntax/languages/yaml.d.ts +1 -0
- package/dist/types/lib/syntax/markdown/frames.d.ts +145 -0
- package/dist/types/lib/syntax/markdown/grammar.d.ts +1 -0
- package/dist/types/lib/syntax/markdown/index.d.ts +5 -0
- package/dist/types/lib/syntax/markdown/inline.d.ts +21 -0
- package/dist/types/lib/syntax/markdown/parse.d.ts +15 -0
- package/dist/types/lib/syntax/markdown/refs.d.ts +47 -0
- package/dist/types/lib/syntax/markdown/render.d.ts +25 -0
- package/dist/types/lib/syntax/markdown/spans.d.ts +84 -0
- package/dist/types/lib/syntax/markdown/types.d.ts +108 -0
- package/dist/types/lib/syntax/registry.d.ts +37 -0
- package/dist/types/lib/syntax/tokenize.d.ts +17 -0
- package/dist/types/lib/syntax/types.d.ts +119 -0
- package/dist/types/lib/time/index.d.ts +4 -0
- package/dist/types/lib/time/instant.d.ts +2 -0
- package/dist/types/lib/time/plain.d.ts +61 -0
- package/dist/types/lib/time/relativeAge.d.ts +18 -0
- package/dist/types/lib/time/relativeClock.d.ts +8 -0
- package/dist/types/lib/time/types.d.ts +87 -0
- package/dist/types/lib/time/zone.d.ts +106 -0
- package/dist/types/lib/use-controllable.d.ts +14 -0
- package/dist/types/lib/use-fill-height.d.ts +26 -0
- package/dist/types/lib/use-hydrated.d.ts +8 -0
- package/dist/types/lib/use-media-query.d.ts +29 -0
- package/dist/types/lib/use-relabel-base-ui-dismiss.d.ts +6 -0
- package/dist/types/lib/use-release-snap-drag.d.ts +25 -0
- package/dist/types/lib/use-roving-options.d.ts +10 -0
- package/dist/types/lib/values/absent.d.ts +7 -0
- package/dist/types/lib/values/boolean.d.ts +29 -0
- package/dist/types/lib/values/currency.d.ts +22 -0
- package/dist/types/lib/values/date.d.ts +30 -0
- package/dist/types/lib/values/datetime.d.ts +48 -0
- package/dist/types/lib/values/index.d.ts +5 -0
- package/dist/types/lib/values/locale-date.d.ts +34 -0
- package/dist/types/lib/values/number.d.ts +27 -0
- package/dist/types/pure.d.ts +48 -0
- package/package.json +136 -4
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useState as b, useRef as a, useEffect as T } from "react";
|
|
2
|
+
import { editSpan as X } from "../../lib/date-timeline/scale.js";
|
|
3
|
+
const R = 3;
|
|
4
|
+
function M(E, L, y) {
|
|
5
|
+
const [k, S] = b(null), d = a(null), n = a(null), l = a(!1), w = a(void 0), f = a({ items: E, pxPerDay: L, onItemChange: y });
|
|
6
|
+
f.current = { items: E, pxPerDay: L, onItemChange: y };
|
|
7
|
+
const v = (t) => {
|
|
8
|
+
d.current = t, S(t);
|
|
9
|
+
}, m = () => {
|
|
10
|
+
clearTimeout(w.current), l.current = !1;
|
|
11
|
+
}, p = (t) => {
|
|
12
|
+
const e = d.current;
|
|
13
|
+
if (!e || (n.current?.(), n.current = null, v(null), e.active && (l.current = !0, w.current = setTimeout(m, 0)), !t || !e.active || e.days === 0)) return;
|
|
14
|
+
const { items: c, onItemChange: o } = f.current, r = c.find((i) => i.id === e.id);
|
|
15
|
+
if (!r || !o) return;
|
|
16
|
+
const s = X(r, e.edit, e.days);
|
|
17
|
+
o(r.id, s.start, s.end);
|
|
18
|
+
};
|
|
19
|
+
return T(
|
|
20
|
+
() => () => {
|
|
21
|
+
n.current?.(), clearTimeout(w.current);
|
|
22
|
+
},
|
|
23
|
+
[]
|
|
24
|
+
), { drag: k, startDrag: (t, e) => {
|
|
25
|
+
if (!e.editable || t.button !== 0) return;
|
|
26
|
+
const c = t.target.closest("[data-edge]")?.dataset.edge;
|
|
27
|
+
m(), n.current?.(), v({ id: e.id, edit: c === "start" || c === "end" ? c : "move", startX: t.clientX, days: 0, active: !1 });
|
|
28
|
+
const o = (g) => {
|
|
29
|
+
const u = d.current;
|
|
30
|
+
if (!u) return;
|
|
31
|
+
const D = g.clientX - u.startX;
|
|
32
|
+
!u.active && Math.abs(D) < R || v({ ...u, active: !0, days: Math.round(D / f.current.pxPerDay) });
|
|
33
|
+
}, r = () => p(!0), s = () => p(!1), i = (g) => {
|
|
34
|
+
g.key === "Escape" && p(!1);
|
|
35
|
+
};
|
|
36
|
+
window.addEventListener("pointermove", o), window.addEventListener("pointerup", r), window.addEventListener("pointercancel", s), window.addEventListener("keydown", i), n.current = () => {
|
|
37
|
+
window.removeEventListener("pointermove", o), window.removeEventListener("pointerup", r), window.removeEventListener("pointercancel", s), window.removeEventListener("keydown", i);
|
|
38
|
+
};
|
|
39
|
+
}, consumeSwallowedClick: () => l.current ? (m(), !0) : !1 };
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
M as useBarDrag
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=useBarDrag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBarDrag.js","sources":["../../../src/components/date-timeline/useBarDrag.ts"],"sourcesContent":["import { useEffect, useRef, useState, type PointerEvent } from \"react\";\nimport { editSpan, type DateTimelineEdit } from \"../../lib/date-timeline/scale\";\nimport type { DateTimelineChange, DateTimelineItem } from \"./DateTimeline\";\n\n/* ============================================================================\n THE DRAG CONTROLLER (DXUI-60) — one press-move-release on one bar.\n\n A press on an editable bar starts a drag; the pointer then moves and releases\n anywhere on the page, so the listeners live on the window for as long as the\n press is held. They are added in the press itself, never in an effect, so a\n move right after it is never missed. The pointer must travel a few pixels\n before the press counts as a drag; less is a click and the bar activates as\n it always did.\n\n A drag ends in a click on the same button. That click must not activate the\n item, but it only follows when the release was over the button, so the\n suppression is cleared one tick after the release whether or not a click came.\n ============================================================================ */\n\n/** A pointer must travel this far before a press becomes a drag; less is a click. */\nconst DRAG_THRESHOLD_PX = 3;\n\nexport interface Drag {\n id: string;\n edit: DateTimelineEdit;\n startX: number;\n days: number;\n active: boolean;\n}\n\nexport function useBarDrag(items: readonly DateTimelineItem[], pxPerDay: number, onItemChange: DateTimelineChange | undefined) {\n const [drag, setDrag] = useState<Drag | null>(null);\n const dragRef = useRef<Drag | null>(null);\n const release = useRef<(() => void) | null>(null);\n const swallowClick = useRef(false);\n const swallowTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const latest = useRef({ items, pxPerDay, onItemChange });\n latest.current = { items, pxPerDay, onItemChange };\n\n const setDragState = (next: Drag | null) => {\n dragRef.current = next;\n setDrag(next);\n };\n const clearSwallow = () => {\n clearTimeout(swallowTimer.current);\n swallowClick.current = false;\n };\n const endDrag = (commit: boolean) => {\n const current = dragRef.current;\n if (!current) return;\n release.current?.();\n release.current = null;\n setDragState(null);\n if (current.active) {\n swallowClick.current = true;\n swallowTimer.current = setTimeout(clearSwallow, 0);\n }\n if (!commit || !current.active || current.days === 0) return;\n const { items: all, onItemChange: change } = latest.current;\n const item = all.find((i) => i.id === current.id);\n if (!item || !change) return;\n const next = editSpan(item, current.edit, current.days);\n change(item.id, next.start, next.end);\n };\n // A press held when the timeline unmounts must not leave its listeners or timer behind.\n useEffect(\n () => () => {\n release.current?.();\n clearTimeout(swallowTimer.current);\n },\n [],\n );\n\n const startDrag = (e: PointerEvent<HTMLElement>, item: DateTimelineItem) => {\n if (!item.editable || e.button !== 0) return;\n const grabbed = (e.target as HTMLElement).closest<HTMLElement>(\"[data-edge]\")?.dataset.edge;\n clearSwallow();\n release.current?.();\n setDragState({ id: item.id, edit: grabbed === \"start\" || grabbed === \"end\" ? grabbed : \"move\", startX: e.clientX, days: 0, active: false });\n const move = (m: globalThis.PointerEvent) => {\n const current = dragRef.current;\n if (!current) return;\n const dx = m.clientX - current.startX;\n if (!current.active && Math.abs(dx) < DRAG_THRESHOLD_PX) return;\n setDragState({ ...current, active: true, days: Math.round(dx / latest.current.pxPerDay) });\n };\n const up = () => endDrag(true);\n const cancel = () => endDrag(false);\n const key = (k: globalThis.KeyboardEvent) => {\n if (k.key === \"Escape\") endDrag(false);\n };\n window.addEventListener(\"pointermove\", move);\n window.addEventListener(\"pointerup\", up);\n window.addEventListener(\"pointercancel\", cancel);\n window.addEventListener(\"keydown\", key);\n release.current = () => {\n window.removeEventListener(\"pointermove\", move);\n window.removeEventListener(\"pointerup\", up);\n window.removeEventListener(\"pointercancel\", cancel);\n window.removeEventListener(\"keydown\", key);\n };\n };\n\n /** True once for the click that ends a drag: the caller then skips activating the item. */\n const consumeSwallowedClick = () => {\n if (!swallowClick.current) return false;\n clearSwallow();\n return true;\n };\n\n return { drag, startDrag, consumeSwallowedClick };\n}\n"],"names":["DRAG_THRESHOLD_PX","useBarDrag","items","pxPerDay","onItemChange","drag","setDrag","useState","dragRef","useRef","release","swallowClick","swallowTimer","latest","setDragState","next","clearSwallow","endDrag","commit","current","all","change","item","editSpan","useEffect","e","grabbed","move","m","dx","up","cancel","key","k"],"mappings":";;AAoBA,MAAMA,IAAoB;AAUnB,SAASC,EAAWC,GAAoCC,GAAkBC,GAA8C;AAC7H,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAsB,IAAI,GAC5CC,IAAUC,EAAoB,IAAI,GAClCC,IAAUD,EAA4B,IAAI,GAC1CE,IAAeF,EAAO,EAAK,GAC3BG,IAAeH,EAAkD,MAAS,GAC1EI,IAASJ,EAAO,EAAE,OAAAP,GAAO,UAAAC,GAAU,cAAAC,GAAc;AACvD,EAAAS,EAAO,UAAU,EAAE,OAAAX,GAAO,UAAAC,GAAU,cAAAC,EAAA;AAEpC,QAAMU,IAAe,CAACC,MAAsB;AAC1C,IAAAP,EAAQ,UAAUO,GAClBT,EAAQS,CAAI;AAAA,EACd,GACMC,IAAe,MAAM;AACzB,iBAAaJ,EAAa,OAAO,GACjCD,EAAa,UAAU;AAAA,EACzB,GACMM,IAAU,CAACC,MAAoB;AACnC,UAAMC,IAAUX,EAAQ;AASxB,QARI,CAACW,MACLT,EAAQ,UAAA,GACRA,EAAQ,UAAU,MAClBI,EAAa,IAAI,GACbK,EAAQ,WACVR,EAAa,UAAU,IACvBC,EAAa,UAAU,WAAWI,GAAc,CAAC,IAE/C,CAACE,KAAU,CAACC,EAAQ,UAAUA,EAAQ,SAAS,GAAG;AACtD,UAAM,EAAE,OAAOC,GAAK,cAAcC,EAAA,IAAWR,EAAO,SAC9CS,IAAOF,EAAI,KAAK,CAAC,MAAM,EAAE,OAAOD,EAAQ,EAAE;AAChD,QAAI,CAACG,KAAQ,CAACD,EAAQ;AACtB,UAAMN,IAAOQ,EAASD,GAAMH,EAAQ,MAAMA,EAAQ,IAAI;AACtD,IAAAE,EAAOC,EAAK,IAAIP,EAAK,OAAOA,EAAK,GAAG;AAAA,EACtC;AAEA,SAAAS;AAAA,IACE,MAAM,MAAM;AACV,MAAAd,EAAQ,UAAA,GACR,aAAaE,EAAa,OAAO;AAAA,IACnC;AAAA,IACA,CAAA;AAAA,EAAC,GAwCI,EAAE,MAAAP,GAAM,WArCG,CAACoB,GAA8BH,MAA2B;AAC1E,QAAI,CAACA,EAAK,YAAYG,EAAE,WAAW,EAAG;AACtC,UAAMC,IAAWD,EAAE,OAAuB,QAAqB,aAAa,GAAG,QAAQ;AACvF,IAAAT,EAAA,GACAN,EAAQ,UAAA,GACRI,EAAa,EAAE,IAAIQ,EAAK,IAAI,MAAMI,MAAY,WAAWA,MAAY,QAAQA,IAAU,QAAQ,QAAQD,EAAE,SAAS,MAAM,GAAG,QAAQ,IAAO;AAC1I,UAAME,IAAO,CAACC,MAA+B;AAC3C,YAAMT,IAAUX,EAAQ;AACxB,UAAI,CAACW,EAAS;AACd,YAAMU,IAAKD,EAAE,UAAUT,EAAQ;AAC/B,MAAI,CAACA,EAAQ,UAAU,KAAK,IAAIU,CAAE,IAAI7B,KACtCc,EAAa,EAAE,GAAGK,GAAS,QAAQ,IAAM,MAAM,KAAK,MAAMU,IAAKhB,EAAO,QAAQ,QAAQ,GAAG;AAAA,IAC3F,GACMiB,IAAK,MAAMb,EAAQ,EAAI,GACvBc,IAAS,MAAMd,EAAQ,EAAK,GAC5Be,IAAM,CAACC,MAAgC;AAC3C,MAAIA,EAAE,QAAQ,YAAUhB,EAAQ,EAAK;AAAA,IACvC;AACA,WAAO,iBAAiB,eAAeU,CAAI,GAC3C,OAAO,iBAAiB,aAAaG,CAAE,GACvC,OAAO,iBAAiB,iBAAiBC,CAAM,GAC/C,OAAO,iBAAiB,WAAWC,CAAG,GACtCtB,EAAQ,UAAU,MAAM;AACtB,aAAO,oBAAoB,eAAeiB,CAAI,GAC9C,OAAO,oBAAoB,aAAaG,CAAE,GAC1C,OAAO,oBAAoB,iBAAiBC,CAAM,GAClD,OAAO,oBAAoB,WAAWC,CAAG;AAAA,IAC3C;AAAA,EACF,GAS0B,uBANI,MACvBrB,EAAa,WAClBK,EAAA,GACO,MAF2B,GAKV;AAC5B;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { useState as C, useRef as l, useEffect as M } from "react";
|
|
2
|
+
import { clampMarkerDays as R, addDays as b } from "../../lib/date-timeline/scale.js";
|
|
3
|
+
const h = 3;
|
|
4
|
+
function O(w, m, g, E) {
|
|
5
|
+
const [D, k] = C(null), f = l(null), c = l(!1), s = l(null), i = l({ markers: w, pxPerDay: m, range: g, onMarkerChange: E });
|
|
6
|
+
i.current = { markers: w, pxPerDay: m, range: g, onMarkerChange: E };
|
|
7
|
+
const p = (e) => {
|
|
8
|
+
f.current = e, k(e);
|
|
9
|
+
}, v = (e) => {
|
|
10
|
+
const t = f.current;
|
|
11
|
+
if (!t || (s.current?.(), s.current = null, p(null), !e || t.days === 0)) return;
|
|
12
|
+
const { markers: d, onMarkerChange: o } = i.current, n = d.find((u) => u.id === t.id);
|
|
13
|
+
!n || !o || o(n.id, b(n.date, t.days));
|
|
14
|
+
};
|
|
15
|
+
return M(() => () => s.current?.(), []), { drag: D, startDrag: (e, t) => {
|
|
16
|
+
if (!t.editable || t.pending || w.some((r) => r.pending) || e.button !== 0) return;
|
|
17
|
+
s.current?.(), c.current = !1, p({ id: t.id, startX: e.clientX, days: 0 });
|
|
18
|
+
const d = (r) => {
|
|
19
|
+
const a = f.current;
|
|
20
|
+
if (!a) return;
|
|
21
|
+
Math.abs(r.clientX - a.startX) > h && (c.current = !0);
|
|
22
|
+
const { pxPerDay: L, range: S } = i.current, y = i.current.markers.find((X) => X.id === a.id);
|
|
23
|
+
y && p({ ...a, days: R(y.date, Math.round((r.clientX - a.startX) / L), S) });
|
|
24
|
+
}, o = () => v(!0), n = () => v(!1), u = (r) => {
|
|
25
|
+
r.key === "Escape" && v(!1);
|
|
26
|
+
};
|
|
27
|
+
window.addEventListener("pointermove", d), window.addEventListener("pointerup", o), window.addEventListener("pointercancel", n), window.addEventListener("keydown", u), s.current = () => {
|
|
28
|
+
window.removeEventListener("pointermove", d), window.removeEventListener("pointerup", o), window.removeEventListener("pointercancel", n), window.removeEventListener("keydown", u);
|
|
29
|
+
};
|
|
30
|
+
}, consumeSwallowedClick: () => {
|
|
31
|
+
const e = c.current;
|
|
32
|
+
return c.current = !1, e;
|
|
33
|
+
}, clearSwallowedClick: () => {
|
|
34
|
+
c.current = !1;
|
|
35
|
+
} };
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
O as useMarkerDrag
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=useMarkerDrag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMarkerDrag.js","sources":["../../../src/components/date-timeline/useMarkerDrag.ts"],"sourcesContent":["import { useEffect, useRef, useState, type PointerEvent } from \"react\";\nimport { addDays, clampMarkerDays, type DayRange } from \"../../lib/date-timeline/scale\";\nimport type { DateTimelineMarker } from \"./DateTimeline\";\n\n/* ============================================================================\n THE MARKER DRAG CONTROLLER (DXUI-67) — one press-move-release on one marker's handle.\n\n The same shape as `useBarDrag`: the pointer moves and releases anywhere on the page, so the\n listeners live on the window while the press is held, added in the press itself so a move right\n after it is never missed. A press that travels past a small threshold is a drag, and the click\n that follows its release is swallowed so it never also activates the marker (DXUI-69). The day count is clamped to the axis, which is built from the markers' own dates.\n ============================================================================ */\n\n/* Pointer travel, in pixels, past which a press is a drag and not a click. */\nconst DRAG_THRESHOLD_PX = 3;\n\nexport interface MarkerDrag {\n id: string;\n startX: number;\n days: number;\n}\n\nexport function useMarkerDrag(\n markers: readonly DateTimelineMarker[],\n pxPerDay: number,\n range: DayRange,\n onMarkerChange: ((id: string, date: Date) => void) | undefined,\n) {\n const [drag, setDrag] = useState<MarkerDrag | null>(null);\n const dragRef = useRef<MarkerDrag | null>(null);\n /* A press that travelled is a drag: the click that follows its release is not an activation (DXUI-69). */\n const travelled = useRef(false);\n const release = useRef<(() => void) | null>(null);\n const latest = useRef({ markers, pxPerDay, range, onMarkerChange });\n latest.current = { markers, pxPerDay, range, onMarkerChange };\n\n const setDragState = (next: MarkerDrag | null) => {\n dragRef.current = next;\n setDrag(next);\n };\n const endDrag = (commit: boolean) => {\n const current = dragRef.current;\n if (!current) return;\n release.current?.();\n release.current = null;\n setDragState(null);\n if (!commit || current.days === 0) return;\n const { markers: all, onMarkerChange: change } = latest.current;\n const marker = all.find((m) => m.id === current.id);\n if (!marker || !change) return;\n change(marker.id, addDays(marker.date, current.days));\n };\n // A press held when the timeline unmounts must not leave its listeners behind.\n useEffect(() => () => release.current?.(), []);\n\n const startDrag = (e: PointerEvent<HTMLElement>, marker: DateTimelineMarker) => {\n // A save in flight locks every handle (DEC-111): a pending marker and all the others wait for its answer.\n if (!marker.editable || marker.pending || markers.some((m) => m.pending) || e.button !== 0) return;\n release.current?.();\n travelled.current = false;\n setDragState({ id: marker.id, startX: e.clientX, days: 0 });\n const move = (m: globalThis.PointerEvent) => {\n const current = dragRef.current;\n if (!current) return;\n if (Math.abs(m.clientX - current.startX) > DRAG_THRESHOLD_PX) travelled.current = true;\n const { pxPerDay: px, range: r } = latest.current;\n const target = latest.current.markers.find((x) => x.id === current.id);\n if (!target) return;\n setDragState({ ...current, days: clampMarkerDays(target.date, Math.round((m.clientX - current.startX) / px), r) });\n };\n const up = () => endDrag(true);\n const cancel = () => endDrag(false);\n const key = (k: globalThis.KeyboardEvent) => {\n if (k.key === \"Escape\") endDrag(false);\n };\n window.addEventListener(\"pointermove\", move);\n window.addEventListener(\"pointerup\", up);\n window.addEventListener(\"pointercancel\", cancel);\n window.addEventListener(\"keydown\", key);\n release.current = () => {\n window.removeEventListener(\"pointermove\", move);\n window.removeEventListener(\"pointerup\", up);\n window.removeEventListener(\"pointercancel\", cancel);\n window.removeEventListener(\"keydown\", key);\n };\n };\n\n /** True once (and clears) when the click arriving now ends a drag; false for a plain click. */\n const consumeSwallowedClick = () => {\n const was = travelled.current;\n travelled.current = false;\n return was;\n };\n const clearSwallowedClick = () => {\n travelled.current = false;\n };\n\n return { drag, startDrag, consumeSwallowedClick, clearSwallowedClick };\n}\n"],"names":["DRAG_THRESHOLD_PX","useMarkerDrag","markers","pxPerDay","range","onMarkerChange","drag","setDrag","useState","dragRef","useRef","travelled","release","latest","setDragState","next","endDrag","commit","current","all","change","marker","m","addDays","useEffect","move","px","r","target","x","clampMarkerDays","up","cancel","key","k","was"],"mappings":";;AAcA,MAAMA,IAAoB;AAQnB,SAASC,EACdC,GACAC,GACAC,GACAC,GACA;AACA,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAA4B,IAAI,GAClDC,IAAUC,EAA0B,IAAI,GAExCC,IAAYD,EAAO,EAAK,GACxBE,IAAUF,EAA4B,IAAI,GAC1CG,IAASH,EAAO,EAAE,SAAAR,GAAS,UAAAC,GAAU,OAAAC,GAAO,gBAAAC,GAAgB;AAClE,EAAAQ,EAAO,UAAU,EAAE,SAAAX,GAAS,UAAAC,GAAU,OAAAC,GAAO,gBAAAC,EAAA;AAE7C,QAAMS,IAAe,CAACC,MAA4B;AAChD,IAAAN,EAAQ,UAAUM,GAClBR,EAAQQ,CAAI;AAAA,EACd,GACMC,IAAU,CAACC,MAAoB;AACnC,UAAMC,IAAUT,EAAQ;AAKxB,QAJI,CAACS,MACLN,EAAQ,UAAA,GACRA,EAAQ,UAAU,MAClBE,EAAa,IAAI,GACb,CAACG,KAAUC,EAAQ,SAAS,GAAG;AACnC,UAAM,EAAE,SAASC,GAAK,gBAAgBC,EAAA,IAAWP,EAAO,SAClDQ,IAASF,EAAI,KAAK,CAACG,MAAMA,EAAE,OAAOJ,EAAQ,EAAE;AAClD,IAAI,CAACG,KAAU,CAACD,KAChBA,EAAOC,EAAO,IAAIE,EAAQF,EAAO,MAAMH,EAAQ,IAAI,CAAC;AAAA,EACtD;AAEA,SAAAM,EAAU,MAAM,MAAMZ,EAAQ,UAAA,GAAa,CAAA,CAAE,GA4CtC,EAAE,MAAAN,GAAM,WA1CG,CAAC,GAA8Be,MAA+B;AAE9E,QAAI,CAACA,EAAO,YAAYA,EAAO,WAAWnB,EAAQ,KAAK,CAACoB,MAAMA,EAAE,OAAO,KAAK,EAAE,WAAW,EAAG;AAC5F,IAAAV,EAAQ,UAAA,GACRD,EAAU,UAAU,IACpBG,EAAa,EAAE,IAAIO,EAAO,IAAI,QAAQ,EAAE,SAAS,MAAM,GAAG;AAC1D,UAAMI,IAAO,CAACH,MAA+B;AAC3C,YAAMJ,IAAUT,EAAQ;AACxB,UAAI,CAACS,EAAS;AACd,MAAI,KAAK,IAAII,EAAE,UAAUJ,EAAQ,MAAM,IAAIlB,MAAmBW,EAAU,UAAU;AAClF,YAAM,EAAE,UAAUe,GAAI,OAAOC,EAAA,IAAMd,EAAO,SACpCe,IAASf,EAAO,QAAQ,QAAQ,KAAK,CAACgB,MAAMA,EAAE,OAAOX,EAAQ,EAAE;AACrE,MAAKU,KACLd,EAAa,EAAE,GAAGI,GAAS,MAAMY,EAAgBF,EAAO,MAAM,KAAK,OAAON,EAAE,UAAUJ,EAAQ,UAAUQ,CAAE,GAAGC,CAAC,GAAG;AAAA,IACnH,GACMI,IAAK,MAAMf,EAAQ,EAAI,GACvBgB,IAAS,MAAMhB,EAAQ,EAAK,GAC5BiB,IAAM,CAACC,MAAgC;AAC3C,MAAIA,EAAE,QAAQ,YAAUlB,EAAQ,EAAK;AAAA,IACvC;AACA,WAAO,iBAAiB,eAAeS,CAAI,GAC3C,OAAO,iBAAiB,aAAaM,CAAE,GACvC,OAAO,iBAAiB,iBAAiBC,CAAM,GAC/C,OAAO,iBAAiB,WAAWC,CAAG,GACtCrB,EAAQ,UAAU,MAAM;AACtB,aAAO,oBAAoB,eAAea,CAAI,GAC9C,OAAO,oBAAoB,aAAaM,CAAE,GAC1C,OAAO,oBAAoB,iBAAiBC,CAAM,GAClD,OAAO,oBAAoB,WAAWC,CAAG;AAAA,IAC3C;AAAA,EACF,GAY0B,uBATI,MAAM;AAClC,UAAME,IAAMxB,EAAU;AACtB,WAAAA,EAAU,UAAU,IACbwB;AAAA,EACT,GAKiD,qBAJrB,MAAM;AAChC,IAAAxB,EAAU,UAAU;AAAA,EACtB,EAEiD;AACnD;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useRef as m, useCallback as L, useLayoutEffect as p, useEffect as w } from "react";
|
|
2
|
+
import { dayAtViewportX as k, scrollLeftForAnchor as A, scalePxPerDay as f, wheelZoomFactor as E, KEY_ZOOM_FACTOR as D, DEFAULT_PX_PER_DAY as _ } from "../../lib/date-timeline/scale.js";
|
|
3
|
+
function W({ scroller: o, pxPerDay: n, range: c, labelWidth: u, isEmpty: y, onPxPerDayChange: d, centerOnToday: K }) {
|
|
4
|
+
const i = m({ pxPerDay: n, range: c, labelWidth: u, onPxPerDayChange: d });
|
|
5
|
+
i.current = { pxPerDay: n, range: c, labelWidth: u, onPxPerDayChange: d };
|
|
6
|
+
const a = m(null), l = L(
|
|
7
|
+
(e, r) => {
|
|
8
|
+
const t = i.current;
|
|
9
|
+
if (e === t.pxPerDay) return;
|
|
10
|
+
const s = o.current;
|
|
11
|
+
if (s) {
|
|
12
|
+
const h = r === void 0 ? t.labelWidth + (s.clientWidth - t.labelWidth) / 2 : Math.max(t.labelWidth, r);
|
|
13
|
+
a.current = { day: k(h, s.scrollLeft, t.range.startDay, t.pxPerDay, t.labelWidth), viewportX: h, pxPerDay: e };
|
|
14
|
+
}
|
|
15
|
+
t.onPxPerDayChange(e);
|
|
16
|
+
},
|
|
17
|
+
[o]
|
|
18
|
+
);
|
|
19
|
+
return p(() => {
|
|
20
|
+
const e = a.current;
|
|
21
|
+
a.current = null;
|
|
22
|
+
const r = o.current;
|
|
23
|
+
e && e.pxPerDay === n && r ? r.scrollLeft = A(e.day, c.startDay, n, u, e.viewportX) : K();
|
|
24
|
+
}, [n, y]), w(() => {
|
|
25
|
+
const e = o.current;
|
|
26
|
+
if (!e) return;
|
|
27
|
+
const r = (t) => {
|
|
28
|
+
!t.ctrlKey && !t.metaKey || (t.preventDefault(), l(f(i.current.pxPerDay, E(t.deltaY, t.deltaMode)), t.clientX - e.getBoundingClientRect().left - e.clientLeft));
|
|
29
|
+
};
|
|
30
|
+
return e.addEventListener("wheel", r, { passive: !1 }), () => e.removeEventListener("wheel", r);
|
|
31
|
+
}, [o, y, l]), { zoomTo: l, onKeyDown: (e) => {
|
|
32
|
+
if (!(e.ctrlKey || e.metaKey) || e.altKey) return;
|
|
33
|
+
let r;
|
|
34
|
+
if (e.key === "+" || e.key === "=") r = f(n, D);
|
|
35
|
+
else if (e.key === "-" || e.key === "_") r = f(n, 1 / D);
|
|
36
|
+
else if (e.key === "0") r = _;
|
|
37
|
+
else return;
|
|
38
|
+
e.preventDefault(), l(r);
|
|
39
|
+
} };
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
W as useTimelineZoom
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=useTimelineZoom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTimelineZoom.js","sources":["../../../src/components/date-timeline/useTimelineZoom.ts"],"sourcesContent":["import { useCallback, useEffect, useLayoutEffect, useRef, type KeyboardEvent, type RefObject } from \"react\";\nimport {\n DEFAULT_PX_PER_DAY,\n KEY_ZOOM_FACTOR,\n dayAtViewportX,\n scalePxPerDay,\n scrollLeftForAnchor,\n wheelZoomFactor,\n type DayRange,\n} from \"../../lib/date-timeline/scale\";\n\ninterface TimelineZoomInput {\n scroller: RefObject<HTMLDivElement | null>;\n pxPerDay: number;\n range: DayRange;\n labelWidth: number;\n /** True while the scroller is not rendered (no items): the effects run again when it first mounts. */\n isEmpty: boolean;\n onPxPerDayChange: (pxPerDay: number) => void;\n /** Scrolls the date area to today; the fallback when the scale changed without a zoom started here. */\n centerOnToday: () => void;\n}\n\n/**\n * The timeline's zoom inputs (DXUI-61, DEC-129, DEC-130): Ctrl/Cmd + wheel over the scroller, Ctrl/Cmd + plus, minus and 0 inside the\n * timeline, and `zoomTo` for the slider. A zoom keeps one date still on screen: the one under the pointer for the wheel,\n * the visible center for the rest.\n */\nexport function useTimelineZoom({ scroller, pxPerDay, range, labelWidth, isEmpty, onPxPerDayChange, centerOnToday }: TimelineZoomInput) {\n /* The new scale only arrives with the host's next render, so the date and where it sits are held here and the scroll is\n set before paint, from that render's own axis (a change of tick unit moves the axis start). */\n const latest = useRef({ pxPerDay, range, labelWidth, onPxPerDayChange });\n latest.current = { pxPerDay, range, labelWidth, onPxPerDayChange };\n const pendingAnchor = useRef<{ day: number; viewportX: number; pxPerDay: number } | null>(null);\n const zoomTo = useCallback(\n (next: number, viewportX?: number) => {\n const current = latest.current;\n if (next === current.pxPerDay) return;\n const el = scroller.current;\n if (el) {\n const x = viewportX === undefined ? current.labelWidth + (el.clientWidth - current.labelWidth) / 2 : Math.max(current.labelWidth, viewportX);\n pendingAnchor.current = { day: dayAtViewportX(x, el.scrollLeft, current.range.startDay, current.pxPerDay, current.labelWidth), viewportX: x, pxPerDay: next };\n }\n current.onPxPerDayChange(next);\n },\n [scroller],\n );\n\n /* Before paint, whenever the scale changes or the scroller first mounts (it is not rendered while empty): a zoom started here\n keeps its anchor, any other change (the host set the scale itself) opens on today. Not on every `items` change: a host that\n refetches would otherwise snatch the viewer back to today while they read the far end. */\n useLayoutEffect(() => {\n const anchor = pendingAnchor.current;\n pendingAnchor.current = null;\n const el = scroller.current;\n if (anchor && anchor.pxPerDay === pxPerDay && el) {\n el.scrollLeft = scrollLeftForAnchor(anchor.day, range.startDay, pxPerDay, labelWidth, anchor.viewportX);\n } else centerOnToday();\n }, [pxPerDay, isEmpty]); // eslint-disable-line react-hooks/exhaustive-deps\n\n /* Ctrl (or Cmd) + wheel, which is also how a trackpad pinch arrives. A native non-passive listener: React's `onWheel` is passive and\n cannot stop the browser's page zoom, and only a wheel over the scroller is stopped. */\n useEffect(() => {\n const el = scroller.current;\n if (!el) return;\n const onWheel = (event: WheelEvent) => {\n if (!event.ctrlKey && !event.metaKey) return;\n event.preventDefault();\n zoomTo(scalePxPerDay(latest.current.pxPerDay, wheelZoomFactor(event.deltaY, event.deltaMode)), event.clientX - el.getBoundingClientRect().left - el.clientLeft);\n };\n el.addEventListener(\"wheel\", onWheel, { passive: false });\n return () => el.removeEventListener(\"wheel\", onWheel);\n }, [scroller, isEmpty, zoomTo]);\n\n /* Ctrl (or Cmd) + plus / minus / 0 while focus is inside the timeline (a keydown from any child bubbles to the root that carries this). `=` is the unshifted plus key. */\n const onKeyDown = (event: KeyboardEvent) => {\n if (!(event.ctrlKey || event.metaKey) || event.altKey) return;\n let next: number;\n if (event.key === \"+\" || event.key === \"=\") next = scalePxPerDay(pxPerDay, KEY_ZOOM_FACTOR);\n else if (event.key === \"-\" || event.key === \"_\") next = scalePxPerDay(pxPerDay, 1 / KEY_ZOOM_FACTOR);\n else if (event.key === \"0\") next = DEFAULT_PX_PER_DAY;\n else return;\n event.preventDefault();\n zoomTo(next);\n };\n\n return { zoomTo, onKeyDown };\n}\n"],"names":["useTimelineZoom","scroller","pxPerDay","range","labelWidth","isEmpty","onPxPerDayChange","centerOnToday","latest","useRef","pendingAnchor","zoomTo","useCallback","next","viewportX","current","el","x","dayAtViewportX","useLayoutEffect","anchor","scrollLeftForAnchor","useEffect","onWheel","event","scalePxPerDay","wheelZoomFactor","KEY_ZOOM_FACTOR","DEFAULT_PX_PER_DAY"],"mappings":";;AA4BO,SAASA,EAAgB,EAAE,UAAAC,GAAU,UAAAC,GAAU,OAAAC,GAAO,YAAAC,GAAY,SAAAC,GAAS,kBAAAC,GAAkB,eAAAC,KAAoC;AAGtI,QAAMC,IAASC,EAAO,EAAE,UAAAP,GAAU,OAAAC,GAAO,YAAAC,GAAY,kBAAAE,GAAkB;AACvE,EAAAE,EAAO,UAAU,EAAE,UAAAN,GAAU,OAAAC,GAAO,YAAAC,GAAY,kBAAAE,EAAA;AAChD,QAAMI,IAAgBD,EAAoE,IAAI,GACxFE,IAASC;AAAA,IACb,CAACC,GAAcC,MAAuB;AACpC,YAAMC,IAAUP,EAAO;AACvB,UAAIK,MAASE,EAAQ,SAAU;AAC/B,YAAMC,IAAKf,EAAS;AACpB,UAAIe,GAAI;AACN,cAAMC,IAAIH,MAAc,SAAYC,EAAQ,cAAcC,EAAG,cAAcD,EAAQ,cAAc,IAAI,KAAK,IAAIA,EAAQ,YAAYD,CAAS;AAC3I,QAAAJ,EAAc,UAAU,EAAE,KAAKQ,EAAeD,GAAGD,EAAG,YAAYD,EAAQ,MAAM,UAAUA,EAAQ,UAAUA,EAAQ,UAAU,GAAG,WAAWE,GAAG,UAAUJ,EAAA;AAAA,MACzJ;AACA,MAAAE,EAAQ,iBAAiBF,CAAI;AAAA,IAC/B;AAAA,IACA,CAACZ,CAAQ;AAAA,EAAA;AAMX,SAAAkB,EAAgB,MAAM;AACpB,UAAMC,IAASV,EAAc;AAC7B,IAAAA,EAAc,UAAU;AACxB,UAAMM,IAAKf,EAAS;AACpB,IAAImB,KAAUA,EAAO,aAAalB,KAAYc,IAC5CA,EAAG,aAAaK,EAAoBD,EAAO,KAAKjB,EAAM,UAAUD,GAAUE,GAAYgB,EAAO,SAAS,IACjGb,EAAA;AAAA,EACT,GAAG,CAACL,GAAUG,CAAO,CAAC,GAItBiB,EAAU,MAAM;AACd,UAAMN,IAAKf,EAAS;AACpB,QAAI,CAACe,EAAI;AACT,UAAMO,IAAU,CAACC,MAAsB;AACrC,MAAI,CAACA,EAAM,WAAW,CAACA,EAAM,YAC7BA,EAAM,eAAA,GACNb,EAAOc,EAAcjB,EAAO,QAAQ,UAAUkB,EAAgBF,EAAM,QAAQA,EAAM,SAAS,CAAC,GAAGA,EAAM,UAAUR,EAAG,wBAAwB,OAAOA,EAAG,UAAU;AAAA,IAChK;AACA,WAAAA,EAAG,iBAAiB,SAASO,GAAS,EAAE,SAAS,IAAO,GACjD,MAAMP,EAAG,oBAAoB,SAASO,CAAO;AAAA,EACtD,GAAG,CAACtB,GAAUI,GAASM,CAAM,CAAC,GAcvB,EAAE,QAAAA,GAAQ,WAXC,CAACa,MAAyB;AAC1C,QAAI,EAAEA,EAAM,WAAWA,EAAM,YAAYA,EAAM,OAAQ;AACvD,QAAIX;AACJ,QAAIW,EAAM,QAAQ,OAAOA,EAAM,QAAQ,IAAK,CAAAX,IAAOY,EAAcvB,GAAUyB,CAAe;AAAA,aACjFH,EAAM,QAAQ,OAAOA,EAAM,QAAQ,IAAK,CAAAX,IAAOY,EAAcvB,GAAU,IAAIyB,CAAe;AAAA,aAC1FH,EAAM,QAAQ,IAAK,CAAAX,IAAOe;AAAA,QAC9B;AACL,IAAAJ,EAAM,eAAA,GACNb,EAAOE,CAAI;AAAA,EACb,EAEiB;AACnB;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { createContext as e, useContext as n } from "react";
|
|
2
|
+
const t = e(null), i = e(null), u = e(null), a = e(null), s = e(!1), d = t.Provider, c = i.Provider, p = u.Provider, l = a.Provider, C = s.Provider;
|
|
3
|
+
function g() {
|
|
4
|
+
return n(s);
|
|
5
|
+
}
|
|
6
|
+
function v() {
|
|
7
|
+
return n(a);
|
|
8
|
+
}
|
|
9
|
+
function f(o) {
|
|
10
|
+
const r = n(t);
|
|
11
|
+
if (!r) throw new Error(`<${o}> must be rendered inside a <DragDrop>.`);
|
|
12
|
+
return r;
|
|
13
|
+
}
|
|
14
|
+
function P(o) {
|
|
15
|
+
const r = n(i);
|
|
16
|
+
if (!r)
|
|
17
|
+
throw new Error(`<${o}> must be rendered inside a <DragDropContainer>.`);
|
|
18
|
+
return r;
|
|
19
|
+
}
|
|
20
|
+
function m(o) {
|
|
21
|
+
const r = n(u);
|
|
22
|
+
if (!r) throw new Error(`<${o}> must be rendered inside a <DragDropItem>.`);
|
|
23
|
+
return r;
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
C as DragDropCloneProvider,
|
|
27
|
+
c as DragDropContainerProvider,
|
|
28
|
+
l as DragDropGroupProvider,
|
|
29
|
+
p as DragDropItemProvider,
|
|
30
|
+
d as DragDropProvider,
|
|
31
|
+
f as useDragDrop,
|
|
32
|
+
g as useDragDropClone,
|
|
33
|
+
P as useDragDropContainer,
|
|
34
|
+
v as useDragDropGroup,
|
|
35
|
+
m as useDragDropItem
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../src/components/drag-drop/context.ts"],"sourcesContent":["import { createContext, useContext, type ReactNode } from \"react\";\nimport type { DragAxis, DragId, ContainerId, DragSession, GroupId, PieceId } from \"../../lib/dnd\";\nimport type { ContainerShift } from \"./shift\";\n\n/* ----------------------------------------------------------------------------\n Shared state for `DragDrop`'s parts.\n\n THREE MODULE-PRIVATE CONTEXTS AND THREE HOOKS THAT THROW, which is the shape\n every multi-part component in this library uses (`Panel.tsx`,\n `code-editor/context.ts`). Three rather than one because the nesting is real:\n the board owns the session, a container owns the axis and the shift its own\n children apply, and an item owns the element a handle attaches to. Flattening\n them would make a container's shift visible to a sibling container's items,\n which is precisely the mistake that produces a whole column moving in\n sympathy with the one next to it.\n\n The throw is the point. A `<DragDropHandle>` rendered outside an item would\n otherwise read `undefined`, attach to nothing, and render a grip that is\n focusable, styled, described by the instructions — and inert. That failure\n has no error, no type error and no visible symptom on a machine with a mouse,\n which is the entire class this project keeps finding.\n -------------------------------------------------------------------------- */\n\nexport interface DragDropContextValue {\n session: DragSession;\n /**\n * The id of THIS board's instructions paragraph, generated per board.\n *\n * Per board, not per page: the engine's `DRAG_INSTRUCTIONS_ID` is a module\n * constant, so two boards on one page emit the same id twice and every\n * handle's `aria-describedby` then resolves to whichever the browser saw\n * first. A duplicate id is valid HTML that no check reads, and the symptom —\n * one board's handles describing the other's — is invisible to everything\n * except a screen reader.\n */\n instructionsId: string;\n /**\n * What the carried card SHOWS — never how, whether, or where it is carried.\n *\n * There is exactly one carry mechanism (`DragDrop.tsx#CarriedCard`: a `fixed`\n * clone portalled to the body) and every item uses it, so this is content and\n * nothing else. Absent — the ordinary case — the clone renders the carried\n * item's OWN children, which is the only version of the card that cannot\n * drift from the row it stands for.\n *\n * This used to be a `lifted` boolean counting mounted `<DragDropOverlay>`s,\n * and it selected a MECHANISM: overlay mounted meant a portalled clone,\n * absent meant the row transformed itself in flow. Two mechanisms is what\n * this field no longer is. A board that forgot the overlay got a card that\n * could not leave its own scroll container, which is a defect a consumer had\n * no way to know it owed — and the reason the mechanism is not a choice.\n */\n renderCarried: ((id: DragId) => ReactNode) | undefined;\n /** Items and containers publish their spoken names here at mount. */\n registerLabel: (kind: \"item\" | \"container\", id: string, label: string | undefined) => () => void;\n /**\n * THE CENSUS — what this board is actually made of, so a board that cannot\n * work can say so.\n *\n * A misconfiguration that produces SILENCE is a library defect, not a\n * consumer defect, and this surface is full of the shape: a board whose rows\n * have no drag source renders perfectly, announces itself correctly, passes\n * every test, and cannot be dragged at all. No error, nothing to see. Same\n * for a board with no `onDragEnd`, which drags beautifully and drops nothing.\n *\n * Parts report themselves here at mount; `DragDrop` reads the tally once the\n * page has settled and warns in development. See `DragDrop.tsx#useCensus`.\n */\n census: DragDropCensus;\n}\n\nexport interface DragDropCensus {\n /** One row. `container` and `index` are reported so duplicates can be found. */\n item: (id: string, container: string, index: number) => () => void;\n /** One thing the sensors can actually attach to — a grip, or a whole surface. */\n source: (id: string) => () => void;\n}\n\nexport interface DragDropContainerContextValue {\n id: ContainerId;\n axis: DragAxis;\n /** Null when no drag is in flight — nothing moves and no gap is open. */\n shift: ContainerShift | null;\n}\n\nexport interface DragDropItemContextValue {\n id: DragId;\n /** The element the pointer and keyboard sensors attach to. */\n setHandleRef: (el: HTMLElement | null) => void;\n /** Spoken name, used to build the handle's accessible name. */\n label: string | undefined;\n}\n\n/** DX-5522: the group box an item is drawn in, and (DX-5521) the piece of it. */\nexport interface DragDropGroupContextValue {\n id: GroupId;\n piece: PieceId;\n}\n\nconst BoardContext = createContext<DragDropContextValue | null>(null);\nconst ContainerContext = createContext<DragDropContainerContextValue | null>(null);\nconst ItemContext = createContext<DragDropItemContextValue | null>(null);\nconst GroupContext = createContext<DragDropGroupContextValue | null>(null);\n\n/**\n * True inside the carried clone — the same card markup, rendered a second time\n * as the thing being carried.\n *\n * IT IS A PICTURE OF A CARD, NOT A SECOND CARD. Reusing the consumer's own\n * markup is the only way the clone cannot drift from the row it represents, and\n * the cost is that everything interactive inside it arrives twice: a second\n * element answering `[data-dnd-handle]` (which every gate in this repo counts),\n * a second `tabIndex={0}` in the tab order, and a second element the sensors\n * would attach to. So the parts render their appearance here and none of their\n * behaviour. Defaults to false, and never throws — a card rendered outside a\n * clone is the ordinary case.\n */\nconst CloneContext = createContext(false);\n\nexport const DragDropProvider = BoardContext.Provider;\nexport const DragDropContainerProvider = ContainerContext.Provider;\nexport const DragDropItemProvider = ItemContext.Provider;\nexport const DragDropGroupProvider = GroupContext.Provider;\nexport const DragDropCloneProvider = CloneContext.Provider;\n\nexport function useDragDropClone(): boolean {\n return useContext(CloneContext);\n}\n\n/** The group box this item is drawn in, or null for an item drawn on its own — never throws: most items have none. */\nexport function useDragDropGroup(): DragDropGroupContextValue | null {\n return useContext(GroupContext);\n}\n\nexport function useDragDrop(component: string): DragDropContextValue {\n const value = useContext(BoardContext);\n if (!value) throw new Error(`<${component}> must be rendered inside a <DragDrop>.`);\n return value;\n}\n\nexport function useDragDropContainer(component: string): DragDropContainerContextValue {\n const value = useContext(ContainerContext);\n if (!value) {\n throw new Error(`<${component}> must be rendered inside a <DragDropContainer>.`);\n }\n return value;\n}\n\nexport function useDragDropItem(component: string): DragDropItemContextValue {\n const value = useContext(ItemContext);\n if (!value) throw new Error(`<${component}> must be rendered inside a <DragDropItem>.`);\n return value;\n}\n"],"names":["BoardContext","createContext","ContainerContext","ItemContext","GroupContext","CloneContext","DragDropProvider","DragDropContainerProvider","DragDropItemProvider","DragDropGroupProvider","DragDropCloneProvider","useDragDropClone","useContext","useDragDropGroup","useDragDrop","component","value","useDragDropContainer","useDragDropItem"],"mappings":";AAmGA,MAAMA,IAAeC,EAA2C,IAAI,GAC9DC,IAAmBD,EAAoD,IAAI,GAC3EE,IAAcF,EAA+C,IAAI,GACjEG,IAAeH,EAAgD,IAAI,GAenEI,IAAeJ,EAAc,EAAK,GAE3BK,IAAmBN,EAAa,UAChCO,IAA4BL,EAAiB,UAC7CM,IAAuBL,EAAY,UACnCM,IAAwBL,EAAa,UACrCM,IAAwBL,EAAa;AAE3C,SAASM,IAA4B;AAC1C,SAAOC,EAAWP,CAAY;AAChC;AAGO,SAASQ,IAAqD;AACnE,SAAOD,EAAWR,CAAY;AAChC;AAEO,SAASU,EAAYC,GAAyC;AACnE,QAAMC,IAAQJ,EAAWZ,CAAY;AACrC,MAAI,CAACgB,EAAO,OAAM,IAAI,MAAM,IAAID,CAAS,yCAAyC;AAClF,SAAOC;AACT;AAEO,SAASC,EAAqBF,GAAkD;AACrF,QAAMC,IAAQJ,EAAWV,CAAgB;AACzC,MAAI,CAACc;AACH,UAAM,IAAI,MAAM,IAAID,CAAS,kDAAkD;AAEjF,SAAOC;AACT;AAEO,SAASE,EAAgBH,GAA6C;AAC3E,QAAMC,IAAQJ,EAAWT,CAAW;AACpC,MAAI,CAACa,EAAO,OAAM,IAAI,MAAM,IAAID,CAAS,6CAA6C;AACtF,SAAOC;AACT;"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { tv as e } from "tailwind-variants";
|
|
2
|
+
const t = e({
|
|
3
|
+
slots: {
|
|
4
|
+
/* No layout of its own. A board is a grid, a row, a single column or a
|
|
5
|
+
page-wide splitter, and every one of those belongs to the consumer —
|
|
6
|
+
what this element exists for is to give the live region and the
|
|
7
|
+
instructions a home that cannot be forgotten. Both are `sr-only`, which
|
|
8
|
+
is absolutely positioned, so neither becomes a grid or flex child of
|
|
9
|
+
whatever layout the consumer puts here. */
|
|
10
|
+
root: "",
|
|
11
|
+
/* THE DROP CONTAINER IS THE SCROLLER, and they have to be the same element:
|
|
12
|
+
auto-scroll finds its edges from whatever is scrollable under the pointer,
|
|
13
|
+
so a wrapper that scrolls while a child registers as the container gives
|
|
14
|
+
the two different boxes — the list scrolls from one edge while the
|
|
15
|
+
insertion point is resolved against another.
|
|
16
|
+
|
|
17
|
+
NO `gap`. Spacing lives on the items as a margin, because the insertion
|
|
18
|
+
marker is a zero-height child and a flex `gap` would add a whole gap's
|
|
19
|
+
worth of layout for it — moving every box below it, on a surface whose
|
|
20
|
+
whole design depends on the boxes not moving. A margin adds nothing for a
|
|
21
|
+
zero-height element, so the marker is free.
|
|
22
|
+
|
|
23
|
+
BOTH AXES ARE DECLARED, on the `axis` variant below, and the CROSS one is
|
|
24
|
+
`hidden` — see the note there. Declaring only the reorder axis is what
|
|
25
|
+
produced a scrollbar nobody asked for. */
|
|
26
|
+
container: "relative flex min-h-0 min-w-0 overscroll-contain",
|
|
27
|
+
/* The MEASURED element. Nothing here may transform it — see `shift.ts`. */
|
|
28
|
+
item: "min-w-0 shrink-0",
|
|
29
|
+
/* The element that moves. Its transition is only declared WHILE a drag is
|
|
30
|
+
in flight — see the `moving` variant. */
|
|
31
|
+
shift: "min-w-0",
|
|
32
|
+
/* DX-5522: A GROUP BOX'S FRAME, the decoration drawn around a group's cards. It is out of flow and the cards are not
|
|
33
|
+
inside it, so changing its extent moves no measured box (the cards are what the engine measures, and they sit in a
|
|
34
|
+
sibling), and the group's own layout box — the registered, measured one — stays what it was at pickup. The extent is
|
|
35
|
+
set inline from `ContainerShift.groups`; the transition only exists while a drag does, for the reason on `moving`. */
|
|
36
|
+
groupFrame: "pointer-events-none absolute",
|
|
37
|
+
/* The element holding a group's cards. In the container's own direction, and a group's LAST card leaves no margin after
|
|
38
|
+
itself: the box's padding is the space under it, and an item's margin there would make the box taller than its cards.
|
|
39
|
+
The marker drawn after that card compensates (`shift.ts`, `item-after`). */
|
|
40
|
+
groupItems: "flex",
|
|
41
|
+
/* Zero-sized in flow, so where the marker sits in the DOM says WHICH slot
|
|
42
|
+
is the target without its presence changing a single box. The visible
|
|
43
|
+
landing zone is its absolutely-positioned child. */
|
|
44
|
+
marker: [
|
|
45
|
+
"pointer-events-none relative shrink-0",
|
|
46
|
+
"transition-[var(--tx-colors),translate]",
|
|
47
|
+
"duration-[calc(var(--dur-base)*var(--motion-travel))] ease-standard"
|
|
48
|
+
],
|
|
49
|
+
/* Fades in rather than appearing at full strength: the gap takes a moment
|
|
50
|
+
to open, and an outline drawn at once sits on top of the neighbour that
|
|
51
|
+
is still moving out of it. */
|
|
52
|
+
landing: "absolute animate-fade-in rounded-lg border-2 border-dashed border-accent-border bg-accent-subtle",
|
|
53
|
+
/* THE WHOLE CARD AS THE DRAG SOURCE — `DragDropHandle`'s alternative.
|
|
54
|
+
It carries no appearance of its own: the thing being dragged is the
|
|
55
|
+
consumer's card, and a surface that painted anything would paint over it.
|
|
56
|
+
What it does carry is the two properties a drag source cannot work
|
|
57
|
+
without.
|
|
58
|
+
|
|
59
|
+
`select-none`, because a press-and-move on a card full of text selects
|
|
60
|
+
that text, and a drag under a growing blue selection reads as broken even
|
|
61
|
+
when the card lands correctly. A grip never had this problem — there is
|
|
62
|
+
nothing inside a 24px icon to select.
|
|
63
|
+
|
|
64
|
+
`touch-pan-*` comes from the `axis` variant, for exactly the reason the
|
|
65
|
+
grip's does: `touch-action: none` would eat every swipe that happens to
|
|
66
|
+
begin on a card, and on a board that is every swipe. */
|
|
67
|
+
surface: [
|
|
68
|
+
"min-w-0 select-none outline-none",
|
|
69
|
+
"focus-visible:ring-2 focus-visible:ring-focus-ring"
|
|
70
|
+
],
|
|
71
|
+
handle: [
|
|
72
|
+
/* PADDING, NOT `min-h-6`, and the difference is measurable. `dx-tap` is
|
|
73
|
+
44px on a coarse pointer and `auto` on a mouse, so the grip on a desktop
|
|
74
|
+
would otherwise be exactly its icon — 16px, under WCAG 2.2's 24px floor
|
|
75
|
+
(conformant on the spacing exception, since the next grip is a whole
|
|
76
|
+
card away, but not easy to hit). A `min-w-6` fixes that and breaks the
|
|
77
|
+
other end: Tailwind emits it into `@layer utilities`, which outranks
|
|
78
|
+
`dx-tap`'s `@layer components`, so it CAPS the touch target back down to
|
|
79
|
+
24px. Measured: 24x24 under coarse-pointer emulation with
|
|
80
|
+
`--tap-target` resolving to 44px, system-wide rule ACK-5 silently
|
|
81
|
+
reverted for this one control. Padding is additive and outranks
|
|
82
|
+
nothing. */
|
|
83
|
+
"dx-tap inline-grid shrink-0 cursor-grab place-items-center rounded p-1",
|
|
84
|
+
"text-tertiary outline-none",
|
|
85
|
+
"transition-[var(--tx-colors)] duration-(--dur-fast) ease-hover",
|
|
86
|
+
/* BOTH AXES, and the background is the one that is load-bearing. A
|
|
87
|
+
text-only hover works right up until a consumer sets the handle's
|
|
88
|
+
resting colour to the same `text-primary` it hovers to — which the
|
|
89
|
+
demo's own column grips do, because they read as chips — and then
|
|
90
|
+
hovering changes nothing at all. Measured by `audit:hover` at
|
|
91
|
+
ΔE 0.000 on two of them, on the first run after this component
|
|
92
|
+
landed. `--surface-hover` is the system's interaction fill and it
|
|
93
|
+
mixes from whatever ground the handle sits on, so it stays visible
|
|
94
|
+
however the consumer paints the rest. */
|
|
95
|
+
"hover:bg-surface-hover hover:text-primary active:cursor-grabbing",
|
|
96
|
+
"focus-visible:ring-2 focus-visible:ring-focus-ring"
|
|
97
|
+
],
|
|
98
|
+
/* POINTER EVENTS OFF, AND IT IS NOT DECORATION. A clone sitting under the
|
|
99
|
+
cursor makes `elementFromPoint` return the CLONE, so auto-scroll resolves
|
|
100
|
+
the document instead of the column and silently stops scrolling — measured
|
|
101
|
+
once already, on this component's own engine.
|
|
102
|
+
|
|
103
|
+
`fixed`, not `absolute`: the card is carried across containers that clip
|
|
104
|
+
their own overflow, and an absolutely-positioned clone is clipped by the
|
|
105
|
+
first one it leaves. It is rendered through a portal for the same reason. */
|
|
106
|
+
overlay: [
|
|
107
|
+
"pointer-events-none fixed top-0 left-0 z-(--z-drag) min-w-0",
|
|
108
|
+
"transition-[var(--tx-colors),translate]",
|
|
109
|
+
"ease-standard"
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
variants: {
|
|
113
|
+
/* THE REORDER AXIS SCROLLS; THE CROSS AXIS IS `hidden`, EXPLICITLY.
|
|
114
|
+
Declaring one axis and leaving the other alone does NOT leave the other
|
|
115
|
+
alone: CSS computes `overflow-x: visible` to `auto` the moment
|
|
116
|
+
`overflow-y` is not `visible` (and vice versa). So `overflow-y-auto` on
|
|
117
|
+
its own silently made every vertical list a HORIZONTAL scroller too —
|
|
118
|
+
measured, `getComputedStyle(container).overflowX === "auto"` on a
|
|
119
|
+
container whose only overflow class was `overflow-y-auto`.
|
|
120
|
+
|
|
121
|
+
At rest that costs nothing, because nothing overflows sideways: every
|
|
122
|
+
container in this package measured `scrollWidth === clientWidth`. What
|
|
123
|
+
made it visible was a drag, back when the held row was carried IN FLOW —
|
|
124
|
+
a transformed in-flow element contributes to its ancestor's scrollable
|
|
125
|
+
overflow region, so the row inflated the extent of the very container it
|
|
126
|
+
was inside (512 -> 607px on a straight 90px sideways drag), which bought
|
|
127
|
+
a scrollbar under a list with nothing to scroll, then auto-scroll theft
|
|
128
|
+
(`isScrollable` asks whether an element BOTH declares a scrolling
|
|
129
|
+
overflow AND actually overflows, and the row supplied the second half by
|
|
130
|
+
itself), then an unbounded runaway — 435 -> 2985px of extent in three
|
|
131
|
+
seconds, because scrolling moved the row's rest box and the row's offset
|
|
132
|
+
was measured from it.
|
|
133
|
+
|
|
134
|
+
NONE OF THAT IS REACHABLE ANY MORE, AND THAT IS THE POINT OF THIS
|
|
135
|
+
DECLARATION SURVIVING THE FIX. The carried card is a `fixed` clone in a
|
|
136
|
+
portal (`DragDrop.tsx#CarriedCard`) — nothing transformed is left in
|
|
137
|
+
flow, so nothing inflates an extent, and the same portal is what lets the
|
|
138
|
+
card bleed past this container's edge instead of being clipped at it.
|
|
139
|
+
What this pair still does is keep the SECOND scroller from existing at
|
|
140
|
+
all: `overflow-y-auto` alone computes to a horizontal scroller, and a
|
|
141
|
+
container that declares a scrolling overflow it does not need is one
|
|
142
|
+
`elementFromPoint` result away from being auto-scroll's target for an
|
|
143
|
+
axis with no travel in it. The declaration is cheap and the coercion is
|
|
144
|
+
silent, which is the whole argument for stating both.
|
|
145
|
+
|
|
146
|
+
`hidden` rather than `visible` because `visible` is not available: an
|
|
147
|
+
element cannot scroll one axis and overflow the other, by the same
|
|
148
|
+
computation described above. The cross axis is the half of that trade
|
|
149
|
+
that costs nothing — no surface here scrolls a column sideways or a row
|
|
150
|
+
vertically, `item` is `min-w-0` and its content truncates, and the only
|
|
151
|
+
thing that ever needed to escape sideways is the carried card, which is
|
|
152
|
+
no longer in the box to be clipped. The reorder axis keeps `auto`
|
|
153
|
+
untouched, so `attachAutoScroll` goes on driving the only axis a reorder
|
|
154
|
+
ever needed to scroll. */
|
|
155
|
+
axis: {
|
|
156
|
+
y: {
|
|
157
|
+
container: "flex-col overflow-x-hidden overflow-y-auto",
|
|
158
|
+
item: "mb-2",
|
|
159
|
+
groupFrame: "inset-0",
|
|
160
|
+
groupItems: "flex-col",
|
|
161
|
+
marker: "h-0 w-full",
|
|
162
|
+
landing: "inset-x-0 top-0",
|
|
163
|
+
handle: "touch-pan-y",
|
|
164
|
+
surface: "touch-pan-y"
|
|
165
|
+
},
|
|
166
|
+
x: {
|
|
167
|
+
container: "flex-row overflow-x-auto overflow-y-hidden",
|
|
168
|
+
item: "mr-2",
|
|
169
|
+
groupFrame: "inset-0",
|
|
170
|
+
groupItems: "flex-row",
|
|
171
|
+
/* `self-stretch`, AND IT USED TO BE `h-full` — WHICH MEASURED ZERO.
|
|
172
|
+
|
|
173
|
+
A row's height is normally its content's, so it is INDEFINITE, and a
|
|
174
|
+
percentage against an indefinite height resolves to `auto`. `auto` on
|
|
175
|
+
a marker that is `w-0` with an absolutely positioned child is nothing
|
|
176
|
+
at all: measured mid-drag in the demo's own chip row, the marker came
|
|
177
|
+
out 0 × 0 inside a 56px container, so the line showing where the chip
|
|
178
|
+
was about to land did not exist. It is invisible in the one place it
|
|
179
|
+
is the whole affordance, and it fails silently.
|
|
180
|
+
|
|
181
|
+
Worse than a no-op, because `align-self: stretch` applies only while
|
|
182
|
+
the cross-size property is `auto` — so writing `height: 100%` is what
|
|
183
|
+
TOOK the stretch away. Same defect, same cause, as the `h-full` the
|
|
184
|
+
kanban lane carried (see `kanban/recipe.ts`); it just had no visible
|
|
185
|
+
symptom on a bounded row, which is what the demo happened to have.
|
|
186
|
+
|
|
187
|
+
Stated as `self-stretch` rather than left to the container's default
|
|
188
|
+
because it is the declaration that is load-bearing here, and a future
|
|
189
|
+
`items-center` on the container — reasonable for a row of chips — would
|
|
190
|
+
otherwise silently take it away again. */
|
|
191
|
+
marker: "w-0 self-stretch",
|
|
192
|
+
landing: "inset-y-0 left-0",
|
|
193
|
+
handle: "touch-pan-x",
|
|
194
|
+
surface: "touch-pan-x"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
/* THE TRANSITION ONLY EXISTS WHILE A DRAG DOES, and that is not a
|
|
198
|
+
micro-optimisation — it is the difference between an animation and a
|
|
199
|
+
leftover. On release the consumer reorders its data, so every row's BOX
|
|
200
|
+
jumps to its new place in the same frame the shift returns to zero: a
|
|
201
|
+
transition still declared then slides the row from an offset that no
|
|
202
|
+
longer means anything, on top of a layout change that already happened.
|
|
203
|
+
Measured: `audit:dnd` reads a handle's box immediately after a drop and
|
|
204
|
+
presses there, and for 160ms afterwards the handle was somewhere else.
|
|
205
|
+
|
|
206
|
+
Nothing is lost at the other end. Pickup opens no gap — the insertion
|
|
207
|
+
point starts at the card's own place, so every shift is zero — and by the
|
|
208
|
+
time the first one is not, this class has been present for a frame.
|
|
209
|
+
|
|
210
|
+
Stripping it hands the element back to the base rule in `index.css`, so
|
|
211
|
+
it keeps the global colour fade rather than losing it. */
|
|
212
|
+
moving: {
|
|
213
|
+
true: {
|
|
214
|
+
shift: [
|
|
215
|
+
"transition-[var(--tx-colors),translate,opacity]",
|
|
216
|
+
"duration-[calc(var(--dur-base)*var(--motion-travel))] ease-standard"
|
|
217
|
+
],
|
|
218
|
+
groupFrame: [
|
|
219
|
+
"transition-[var(--tx-colors),top,bottom,left,right]",
|
|
220
|
+
"duration-[calc(var(--dur-base)*var(--motion-travel))] ease-standard"
|
|
221
|
+
]
|
|
222
|
+
},
|
|
223
|
+
false: {}
|
|
224
|
+
},
|
|
225
|
+
/* THERE IS NO `carried` VARIANT, and its absence is the shape of the fix.
|
|
226
|
+
It used to dress the row itself as the card in the hand — a 2% lift
|
|
227
|
+
scale, `z-(--z-drag)`, `duration-0`, `pointer-events-none` — for boards
|
|
228
|
+
that had not mounted an overlay to carry it instead. Carrying a row in
|
|
229
|
+
flow is what this component stopped doing: it cannot leave its own
|
|
230
|
+
scroller, and it inflates that scroller's extent (see the `axis` variant
|
|
231
|
+
above). Every carried card is now the `overlay` slot below, and the row
|
|
232
|
+
it left is a hole — `opacity-0`, no dressing, nothing to configure. */
|
|
233
|
+
mode: {
|
|
234
|
+
/* Following the cursor: no transition at all. Easing a clone toward the
|
|
235
|
+
pointer makes it lag behind the hand that is moving it, which reads as
|
|
236
|
+
the drag having become unresponsive rather than as smoothing. */
|
|
237
|
+
pointer: { overlay: "duration-0 rotate-2 shadow-xl" },
|
|
238
|
+
/* No pointer to follow, so it rests in the slot it would land in and
|
|
239
|
+
glides between slots as the arrow keys move the insertion point. The
|
|
240
|
+
ring is deliberate: focus stays on the handle inside the item's own
|
|
241
|
+
(now empty) slot, so this is the only thing on screen that shows the
|
|
242
|
+
keyboard where it is. */
|
|
243
|
+
keyboard: {
|
|
244
|
+
overlay: [
|
|
245
|
+
"duration-[calc(var(--dur-base)*var(--motion-travel))]",
|
|
246
|
+
"rounded-lg shadow-lg ring-2 ring-focus-ring"
|
|
247
|
+
]
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
/* DX-5521: a group box's piece that the next piece continues (a box drawn across two page blocks of a windowed list, see
|
|
251
|
+
`PieceId`). Its last card keeps its margin, because the next card of the box follows it, and the piece leaves no margin
|
|
252
|
+
after itself, so the two pieces meet edge to edge and the cards across the join are spaced like any two in one box. */
|
|
253
|
+
continuesAfter: {
|
|
254
|
+
true: {},
|
|
255
|
+
false: {}
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
compoundVariants: [
|
|
259
|
+
/* A box's LAST card leaves no margin after itself (see `groupItems`); a piece that continues has no last card of the box. */
|
|
260
|
+
{ axis: "y", continuesAfter: !1, class: { groupItems: "[&>[data-dnd-item]:not(:has(~[data-dnd-item]))]:mb-0" } },
|
|
261
|
+
{ axis: "x", continuesAfter: !1, class: { groupItems: "[&>[data-dnd-item]:not(:has(~[data-dnd-item]))]:mr-0" } },
|
|
262
|
+
{ axis: "y", continuesAfter: !0, class: { item: "mb-0" } },
|
|
263
|
+
{ axis: "x", continuesAfter: !0, class: { item: "mr-0" } }
|
|
264
|
+
],
|
|
265
|
+
defaultVariants: { axis: "y", mode: "pointer", moving: !1, continuesAfter: !1 }
|
|
266
|
+
});
|
|
267
|
+
export {
|
|
268
|
+
t as dnd
|
|
269
|
+
};
|
|
270
|
+
//# sourceMappingURL=recipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipe.js","sources":["../../../src/components/drag-drop/recipe.ts"],"sourcesContent":["import { tv } from \"tailwind-variants\";\n\n/* ----------------------------------------------------------------------------\n The slots for `DragDrop`.\n\n ONE DURATION TOKEN CARRIES THE WHOLE PREFERENCE, and it is multiplied by\n `--motion-travel`, not `--motion-scale`. Reduced motion in this system halves\n duration and zeroes DISTANCE (`styles/motion.css`, D-18) — but the distance\n here is the message: the gap that opens is the only thing on screen saying\n where the card will land, so zeroing it would remove the information rather\n than the motion. Zeroing the duration instead is the honest reading of\n \"reduce\": the gap still opens, it opens instantly, and nothing travels.\n\n The elements that carry it — `shift` and `overlay` — deliberately hold no\n colour of their own. A single `transition-duration` covers every property in\n the list, so a colour on one of these would go instant under reduced motion\n along with the travel; the coloured surface is the consumer's card INSIDE\n them, which keeps the global colour fade untouched. The list still re-includes\n `var(--tx-colors)` because naming a transition REPLACES the global one rather\n than extending it, and an element with no colour transition at all is what\n `audit:motion` counts as an offender (MOTION-1).\n -------------------------------------------------------------------------- */\n\nexport const dnd = tv({\n slots: {\n /* No layout of its own. A board is a grid, a row, a single column or a\n page-wide splitter, and every one of those belongs to the consumer —\n what this element exists for is to give the live region and the\n instructions a home that cannot be forgotten. Both are `sr-only`, which\n is absolutely positioned, so neither becomes a grid or flex child of\n whatever layout the consumer puts here. */\n root: \"\",\n\n /* THE DROP CONTAINER IS THE SCROLLER, and they have to be the same element:\n auto-scroll finds its edges from whatever is scrollable under the pointer,\n so a wrapper that scrolls while a child registers as the container gives\n the two different boxes — the list scrolls from one edge while the\n insertion point is resolved against another.\n\n NO `gap`. Spacing lives on the items as a margin, because the insertion\n marker is a zero-height child and a flex `gap` would add a whole gap's\n worth of layout for it — moving every box below it, on a surface whose\n whole design depends on the boxes not moving. A margin adds nothing for a\n zero-height element, so the marker is free.\n\n BOTH AXES ARE DECLARED, on the `axis` variant below, and the CROSS one is\n `hidden` — see the note there. Declaring only the reorder axis is what\n produced a scrollbar nobody asked for. */\n container: \"relative flex min-h-0 min-w-0 overscroll-contain\",\n\n /* The MEASURED element. Nothing here may transform it — see `shift.ts`. */\n item: \"min-w-0 shrink-0\",\n\n /* The element that moves. Its transition is only declared WHILE a drag is\n in flight — see the `moving` variant. */\n shift: \"min-w-0\",\n\n /* DX-5522: A GROUP BOX'S FRAME, the decoration drawn around a group's cards. It is out of flow and the cards are not\n inside it, so changing its extent moves no measured box (the cards are what the engine measures, and they sit in a\n sibling), and the group's own layout box — the registered, measured one — stays what it was at pickup. The extent is\n set inline from `ContainerShift.groups`; the transition only exists while a drag does, for the reason on `moving`. */\n groupFrame: \"pointer-events-none absolute\",\n\n /* The element holding a group's cards. In the container's own direction, and a group's LAST card leaves no margin after\n itself: the box's padding is the space under it, and an item's margin there would make the box taller than its cards.\n The marker drawn after that card compensates (`shift.ts`, `item-after`). */\n groupItems: \"flex\",\n\n /* Zero-sized in flow, so where the marker sits in the DOM says WHICH slot\n is the target without its presence changing a single box. The visible\n landing zone is its absolutely-positioned child. */\n marker: [\n \"pointer-events-none relative shrink-0\",\n \"transition-[var(--tx-colors),translate]\",\n \"duration-[calc(var(--dur-base)*var(--motion-travel))] ease-standard\",\n ],\n /* Fades in rather than appearing at full strength: the gap takes a moment\n to open, and an outline drawn at once sits on top of the neighbour that\n is still moving out of it. */\n landing: \"absolute animate-fade-in rounded-lg border-2 border-dashed border-accent-border bg-accent-subtle\",\n\n /* THE WHOLE CARD AS THE DRAG SOURCE — `DragDropHandle`'s alternative.\n It carries no appearance of its own: the thing being dragged is the\n consumer's card, and a surface that painted anything would paint over it.\n What it does carry is the two properties a drag source cannot work\n without.\n\n `select-none`, because a press-and-move on a card full of text selects\n that text, and a drag under a growing blue selection reads as broken even\n when the card lands correctly. A grip never had this problem — there is\n nothing inside a 24px icon to select.\n\n `touch-pan-*` comes from the `axis` variant, for exactly the reason the\n grip's does: `touch-action: none` would eat every swipe that happens to\n begin on a card, and on a board that is every swipe. */\n surface: [\n \"min-w-0 select-none outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-focus-ring\",\n ],\n\n handle: [\n /* PADDING, NOT `min-h-6`, and the difference is measurable. `dx-tap` is\n 44px on a coarse pointer and `auto` on a mouse, so the grip on a desktop\n would otherwise be exactly its icon — 16px, under WCAG 2.2's 24px floor\n (conformant on the spacing exception, since the next grip is a whole\n card away, but not easy to hit). A `min-w-6` fixes that and breaks the\n other end: Tailwind emits it into `@layer utilities`, which outranks\n `dx-tap`'s `@layer components`, so it CAPS the touch target back down to\n 24px. Measured: 24x24 under coarse-pointer emulation with\n `--tap-target` resolving to 44px, system-wide rule ACK-5 silently\n reverted for this one control. Padding is additive and outranks\n nothing. */\n \"dx-tap inline-grid shrink-0 cursor-grab place-items-center rounded p-1\",\n \"text-tertiary outline-none\",\n \"transition-[var(--tx-colors)] duration-(--dur-fast) ease-hover\",\n /* BOTH AXES, and the background is the one that is load-bearing. A\n text-only hover works right up until a consumer sets the handle's\n resting colour to the same `text-primary` it hovers to — which the\n demo's own column grips do, because they read as chips — and then\n hovering changes nothing at all. Measured by `audit:hover` at\n ΔE 0.000 on two of them, on the first run after this component\n landed. `--surface-hover` is the system's interaction fill and it\n mixes from whatever ground the handle sits on, so it stays visible\n however the consumer paints the rest. */\n \"hover:bg-surface-hover hover:text-primary active:cursor-grabbing\",\n \"focus-visible:ring-2 focus-visible:ring-focus-ring\",\n ],\n\n /* POINTER EVENTS OFF, AND IT IS NOT DECORATION. A clone sitting under the\n cursor makes `elementFromPoint` return the CLONE, so auto-scroll resolves\n the document instead of the column and silently stops scrolling — measured\n once already, on this component's own engine.\n\n `fixed`, not `absolute`: the card is carried across containers that clip\n their own overflow, and an absolutely-positioned clone is clipped by the\n first one it leaves. It is rendered through a portal for the same reason. */\n overlay: [\n \"pointer-events-none fixed top-0 left-0 z-(--z-drag) min-w-0\",\n \"transition-[var(--tx-colors),translate]\",\n \"ease-standard\",\n ],\n },\n variants: {\n /* THE REORDER AXIS SCROLLS; THE CROSS AXIS IS `hidden`, EXPLICITLY.\n Declaring one axis and leaving the other alone does NOT leave the other\n alone: CSS computes `overflow-x: visible` to `auto` the moment\n `overflow-y` is not `visible` (and vice versa). So `overflow-y-auto` on\n its own silently made every vertical list a HORIZONTAL scroller too —\n measured, `getComputedStyle(container).overflowX === \"auto\"` on a\n container whose only overflow class was `overflow-y-auto`.\n\n At rest that costs nothing, because nothing overflows sideways: every\n container in this package measured `scrollWidth === clientWidth`. What\n made it visible was a drag, back when the held row was carried IN FLOW —\n a transformed in-flow element contributes to its ancestor's scrollable\n overflow region, so the row inflated the extent of the very container it\n was inside (512 -> 607px on a straight 90px sideways drag), which bought\n a scrollbar under a list with nothing to scroll, then auto-scroll theft\n (`isScrollable` asks whether an element BOTH declares a scrolling\n overflow AND actually overflows, and the row supplied the second half by\n itself), then an unbounded runaway — 435 -> 2985px of extent in three\n seconds, because scrolling moved the row's rest box and the row's offset\n was measured from it.\n\n NONE OF THAT IS REACHABLE ANY MORE, AND THAT IS THE POINT OF THIS\n DECLARATION SURVIVING THE FIX. The carried card is a `fixed` clone in a\n portal (`DragDrop.tsx#CarriedCard`) — nothing transformed is left in\n flow, so nothing inflates an extent, and the same portal is what lets the\n card bleed past this container's edge instead of being clipped at it.\n What this pair still does is keep the SECOND scroller from existing at\n all: `overflow-y-auto` alone computes to a horizontal scroller, and a\n container that declares a scrolling overflow it does not need is one\n `elementFromPoint` result away from being auto-scroll's target for an\n axis with no travel in it. The declaration is cheap and the coercion is\n silent, which is the whole argument for stating both.\n\n `hidden` rather than `visible` because `visible` is not available: an\n element cannot scroll one axis and overflow the other, by the same\n computation described above. The cross axis is the half of that trade\n that costs nothing — no surface here scrolls a column sideways or a row\n vertically, `item` is `min-w-0` and its content truncates, and the only\n thing that ever needed to escape sideways is the carried card, which is\n no longer in the box to be clipped. The reorder axis keeps `auto`\n untouched, so `attachAutoScroll` goes on driving the only axis a reorder\n ever needed to scroll. */\n axis: {\n y: {\n container: \"flex-col overflow-x-hidden overflow-y-auto\",\n item: \"mb-2\",\n groupFrame: \"inset-0\",\n groupItems: \"flex-col\",\n marker: \"h-0 w-full\",\n landing: \"inset-x-0 top-0\",\n handle: \"touch-pan-y\",\n surface: \"touch-pan-y\",\n },\n x: {\n container: \"flex-row overflow-x-auto overflow-y-hidden\",\n item: \"mr-2\",\n groupFrame: \"inset-0\",\n groupItems: \"flex-row\",\n /* `self-stretch`, AND IT USED TO BE `h-full` — WHICH MEASURED ZERO.\n\n A row's height is normally its content's, so it is INDEFINITE, and a\n percentage against an indefinite height resolves to `auto`. `auto` on\n a marker that is `w-0` with an absolutely positioned child is nothing\n at all: measured mid-drag in the demo's own chip row, the marker came\n out 0 × 0 inside a 56px container, so the line showing where the chip\n was about to land did not exist. It is invisible in the one place it\n is the whole affordance, and it fails silently.\n\n Worse than a no-op, because `align-self: stretch` applies only while\n the cross-size property is `auto` — so writing `height: 100%` is what\n TOOK the stretch away. Same defect, same cause, as the `h-full` the\n kanban lane carried (see `kanban/recipe.ts`); it just had no visible\n symptom on a bounded row, which is what the demo happened to have.\n\n Stated as `self-stretch` rather than left to the container's default\n because it is the declaration that is load-bearing here, and a future\n `items-center` on the container — reasonable for a row of chips — would\n otherwise silently take it away again. */\n marker: \"w-0 self-stretch\",\n landing: \"inset-y-0 left-0\",\n handle: \"touch-pan-x\",\n surface: \"touch-pan-x\",\n },\n },\n /* THE TRANSITION ONLY EXISTS WHILE A DRAG DOES, and that is not a\n micro-optimisation — it is the difference between an animation and a\n leftover. On release the consumer reorders its data, so every row's BOX\n jumps to its new place in the same frame the shift returns to zero: a\n transition still declared then slides the row from an offset that no\n longer means anything, on top of a layout change that already happened.\n Measured: `audit:dnd` reads a handle's box immediately after a drop and\n presses there, and for 160ms afterwards the handle was somewhere else.\n\n Nothing is lost at the other end. Pickup opens no gap — the insertion\n point starts at the card's own place, so every shift is zero — and by the\n time the first one is not, this class has been present for a frame.\n\n Stripping it hands the element back to the base rule in `index.css`, so\n it keeps the global colour fade rather than losing it. */\n moving: {\n true: {\n shift: [\n \"transition-[var(--tx-colors),translate,opacity]\",\n \"duration-[calc(var(--dur-base)*var(--motion-travel))] ease-standard\",\n ],\n groupFrame: [\n \"transition-[var(--tx-colors),top,bottom,left,right]\",\n \"duration-[calc(var(--dur-base)*var(--motion-travel))] ease-standard\",\n ],\n },\n false: {},\n },\n /* THERE IS NO `carried` VARIANT, and its absence is the shape of the fix.\n It used to dress the row itself as the card in the hand — a 2% lift\n scale, `z-(--z-drag)`, `duration-0`, `pointer-events-none` — for boards\n that had not mounted an overlay to carry it instead. Carrying a row in\n flow is what this component stopped doing: it cannot leave its own\n scroller, and it inflates that scroller's extent (see the `axis` variant\n above). Every carried card is now the `overlay` slot below, and the row\n it left is a hole — `opacity-0`, no dressing, nothing to configure. */\n mode: {\n /* Following the cursor: no transition at all. Easing a clone toward the\n pointer makes it lag behind the hand that is moving it, which reads as\n the drag having become unresponsive rather than as smoothing. */\n pointer: { overlay: \"duration-0 rotate-2 shadow-xl\" },\n /* No pointer to follow, so it rests in the slot it would land in and\n glides between slots as the arrow keys move the insertion point. The\n ring is deliberate: focus stays on the handle inside the item's own\n (now empty) slot, so this is the only thing on screen that shows the\n keyboard where it is. */\n keyboard: {\n overlay: [\n \"duration-[calc(var(--dur-base)*var(--motion-travel))]\",\n \"rounded-lg shadow-lg ring-2 ring-focus-ring\",\n ],\n },\n },\n /* DX-5521: a group box's piece that the next piece continues (a box drawn across two page blocks of a windowed list, see\n `PieceId`). Its last card keeps its margin, because the next card of the box follows it, and the piece leaves no margin\n after itself, so the two pieces meet edge to edge and the cards across the join are spaced like any two in one box. */\n continuesAfter: {\n true: {},\n false: {},\n },\n },\n compoundVariants: [\n /* A box's LAST card leaves no margin after itself (see `groupItems`); a piece that continues has no last card of the box. */\n { axis: \"y\", continuesAfter: false, class: { groupItems: \"[&>[data-dnd-item]:not(:has(~[data-dnd-item]))]:mb-0\" } },\n { axis: \"x\", continuesAfter: false, class: { groupItems: \"[&>[data-dnd-item]:not(:has(~[data-dnd-item]))]:mr-0\" } },\n { axis: \"y\", continuesAfter: true, class: { item: \"mb-0\" } },\n { axis: \"x\", continuesAfter: true, class: { item: \"mr-0\" } },\n ],\n defaultVariants: { axis: \"y\", mode: \"pointer\", moving: false, continuesAfter: false },\n});\n"],"names":["dnd","tv"],"mappings":";AAuBO,MAAMA,IAAMC,EAAG;AAAA,EACpB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAiBN,WAAW;AAAA;AAAA,IAGX,MAAM;AAAA;AAAA;AAAA,IAIN,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAMP,YAAY;AAAA;AAAA;AAAA;AAAA,IAKZ,YAAY;AAAA;AAAA;AAAA;AAAA,IAKZ,QAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA,IAKF,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBT,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IAAA;AAAA,IAGF,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYN;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUA;AAAA,MACA;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWF,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAAA,EAEF,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA2CR,MAAM;AAAA,MACJ,GAAG;AAAA,QACD,WAAW;AAAA,QACX,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,SAAS;AAAA,MAAA;AAAA,MAEX,GAAG;AAAA,QACD,WAAW;AAAA,QACX,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAqBZ,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,SAAS;AAAA,MAAA;AAAA,IACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAiBF,QAAQ;AAAA,MACN,MAAM;AAAA,QACJ,OAAO;AAAA,UACL;AAAA,UACA;AAAA,QAAA;AAAA,QAEF,YAAY;AAAA,UACV;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,OAAO,CAAA;AAAA,IAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUV,MAAM;AAAA;AAAA;AAAA;AAAA,MAIJ,SAAS,EAAE,SAAS,gCAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMpB,UAAU;AAAA,QACR,SAAS;AAAA,UACP;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKF,gBAAgB;AAAA,MACd,MAAM,CAAA;AAAA,MACN,OAAO,CAAA;AAAA,IAAC;AAAA,EACV;AAAA,EAEF,kBAAkB;AAAA;AAAA,IAEhB,EAAE,MAAM,KAAK,gBAAgB,IAAO,OAAO,EAAE,YAAY,yDAAuD;AAAA,IAChH,EAAE,MAAM,KAAK,gBAAgB,IAAO,OAAO,EAAE,YAAY,yDAAuD;AAAA,IAChH,EAAE,MAAM,KAAK,gBAAgB,IAAM,OAAO,EAAE,MAAM,SAAO;AAAA,IACzD,EAAE,MAAM,KAAK,gBAAgB,IAAM,OAAO,EAAE,MAAM,OAAA,EAAO;AAAA,EAAE;AAAA,EAE7D,iBAAiB,EAAE,MAAM,KAAK,MAAM,WAAW,QAAQ,IAAO,gBAAgB,GAAA;AAChF,CAAC;"}
|