@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,464 @@
|
|
|
1
|
+
import { normalizeRef as at, parseInline as z, plainText as lt } from "./inline.js";
|
|
2
|
+
import { segmentOf as Y, makeSegments as ct } from "./spans.js";
|
|
3
|
+
const it = 12, q = /^( {0,3})(`{3,}|~{3,})(.*)$/, Z = /^( {0,3})(#{1,6})(?:[ \t]|$)/, tt = /^ {0,3}(?:\*[ \t]*){3,}$|^ {0,3}(?:-[ \t]*){3,}$|^ {0,3}(?:_[ \t]*){3,}$/, A = /^ {0,3}>[ \t]?/, O = /^( {0,3})([-*+])(?:[ \t]|$)/, T = /^( {0,3})(\d{1,9})([.)])(?:[ \t]|$)/, ut = /^ {0,3}(=+|-+)[ \t]*$/, v = /^( {0,3})(\[\^([^\]\s]+)\]:)[ \t]*/d, et = /^( {0,3})(\[([^\]]+)\]:)[ \t]*(<[^>]*>|\S+)(?:[ \t]+(["'(].*["')]))?[ \t]*$/d, ft = /^\[([ xX])\](?:[ \t]+|$)/, ht = /^[ \t]*\|?[ \t]*:?-+:?[ \t]*(?:\|[ \t]*:?-+:?[ \t]*)*\|?[ \t]*$/, dt = /^(---|\+\+\+)[ \t]*$/;
|
|
4
|
+
function Mt(t) {
|
|
5
|
+
return gt(t);
|
|
6
|
+
}
|
|
7
|
+
function gt(t, e) {
|
|
8
|
+
const n = pt(t), r = { source: t, sink: e, refs: xt(n), footnotes: [], ids: /* @__PURE__ */ new Map() }, a = [];
|
|
9
|
+
let o = 0;
|
|
10
|
+
const s = Et(n, r);
|
|
11
|
+
return s && (a.push(s.node), o = s.next), a.push(...M(n.slice(o), r, 0, "text")), r.footnotes.length && a.push({ kind: "footnotes", items: r.footnotes }), a;
|
|
12
|
+
}
|
|
13
|
+
function kt(t) {
|
|
14
|
+
return t.toLowerCase().replace(/[^\p{L}\p{N}]+/gu, "-").replace(/^-+|-+$/g, "");
|
|
15
|
+
}
|
|
16
|
+
function pt(t) {
|
|
17
|
+
const e = [];
|
|
18
|
+
let n = 0;
|
|
19
|
+
for (; ; ) {
|
|
20
|
+
const r = t.indexOf(`
|
|
21
|
+
`, n), a = r < 0 ? t.slice(n) : t.slice(n, r);
|
|
22
|
+
if (e.push({ text: a.endsWith("\r") ? a.slice(0, -1) : a, start: n }), r < 0) break;
|
|
23
|
+
n = r + 1;
|
|
24
|
+
}
|
|
25
|
+
return e;
|
|
26
|
+
}
|
|
27
|
+
function y(t) {
|
|
28
|
+
return t.text.trim() === "";
|
|
29
|
+
}
|
|
30
|
+
function F(t) {
|
|
31
|
+
let e = 0;
|
|
32
|
+
for (const n of t)
|
|
33
|
+
if (n === " ") e += 1;
|
|
34
|
+
else if (n === " ") e += 4;
|
|
35
|
+
else break;
|
|
36
|
+
return e;
|
|
37
|
+
}
|
|
38
|
+
function S(t, e) {
|
|
39
|
+
let n = 0, r = 0;
|
|
40
|
+
for (; r < t.text.length && n < e; ) {
|
|
41
|
+
const a = t.text[r];
|
|
42
|
+
if (a === " ") n += 1;
|
|
43
|
+
else if (a === " ") n += 4;
|
|
44
|
+
else break;
|
|
45
|
+
r++;
|
|
46
|
+
}
|
|
47
|
+
return { text: t.text.slice(r), start: t.start + r };
|
|
48
|
+
}
|
|
49
|
+
function p(t, e, n, r) {
|
|
50
|
+
t.sink && n > e && t.sink.span(e, n, r);
|
|
51
|
+
}
|
|
52
|
+
function k(t, e, n, r) {
|
|
53
|
+
t.sink?.open(e, n, r);
|
|
54
|
+
}
|
|
55
|
+
function $(t, e) {
|
|
56
|
+
t.sink?.close(e);
|
|
57
|
+
}
|
|
58
|
+
function E(t, e) {
|
|
59
|
+
if (!t.sink) return;
|
|
60
|
+
let n = e;
|
|
61
|
+
t.source[n] === "\r" && n++, t.source[n] === `
|
|
62
|
+
` && n++, t.sink.close(n, n > e ? [{ start: e, end: n }] : void 0);
|
|
63
|
+
}
|
|
64
|
+
function mt(t, e, n) {
|
|
65
|
+
return { start: t[e].start, end: d(t[n]) };
|
|
66
|
+
}
|
|
67
|
+
function X(t, e, n, r) {
|
|
68
|
+
const a = e.length > 0 && e[e.length - 1].start + e[e.length - 1].text.length === e[0].start;
|
|
69
|
+
if (!t.sink || !e.length || a) return z(n, t.refs, t.sink, r);
|
|
70
|
+
const o = [];
|
|
71
|
+
for (let c = 0; c < e.length; c++) {
|
|
72
|
+
const i = e[c], u = i.start + i.text.length;
|
|
73
|
+
if (o.push({ start: i.start, end: u }), c === e.length - 1) break;
|
|
74
|
+
let h = u;
|
|
75
|
+
t.source[h] === "\r" && h++, t.source[h] === `
|
|
76
|
+
` && h++, h > u && o.push({ start: u, end: h });
|
|
77
|
+
}
|
|
78
|
+
k(t, { kind: "inline" }, e[0].start, o);
|
|
79
|
+
const s = z(n, t.refs, t.sink, r), l = e[e.length - 1];
|
|
80
|
+
return $(t, l.start + l.text.length), s;
|
|
81
|
+
}
|
|
82
|
+
function d(t) {
|
|
83
|
+
return t.start + t.text.length;
|
|
84
|
+
}
|
|
85
|
+
function xt(t) {
|
|
86
|
+
const e = /* @__PURE__ */ new Map();
|
|
87
|
+
let n = null, r = !0;
|
|
88
|
+
for (const a of t) {
|
|
89
|
+
const o = q.exec(a.text);
|
|
90
|
+
if (n) {
|
|
91
|
+
o && o[2][0] === n[0] && o[2].length >= n.length && (n = null);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (o) {
|
|
95
|
+
n = o[2];
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
const s = r ? et.exec(a.text) : null;
|
|
99
|
+
if (s) {
|
|
100
|
+
const l = at(s[3]);
|
|
101
|
+
e.has(l) || e.set(l, { href: bt(s[4]), title: s[5] ? s[5].slice(1, -1) : void 0 }), r = !0;
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
r = y(a);
|
|
105
|
+
}
|
|
106
|
+
return e;
|
|
107
|
+
}
|
|
108
|
+
function bt(t) {
|
|
109
|
+
return (t.startsWith("<") && t.endsWith(">") ? t.slice(1, -1) : t).replace(/\\([!-/:-@[-`{-~])/g, "$1");
|
|
110
|
+
}
|
|
111
|
+
function Et(t, e) {
|
|
112
|
+
if (!t.length) return null;
|
|
113
|
+
const n = dt.exec(t[0].text);
|
|
114
|
+
if (!n) return null;
|
|
115
|
+
let r = -1;
|
|
116
|
+
for (let s = 1; s < t.length; s++)
|
|
117
|
+
if (t[s].text.trimEnd() === n[1]) {
|
|
118
|
+
r = s;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
if (r < 0) return null;
|
|
122
|
+
const a = n[1] === "---" ? "yaml" : "toml", o = t.slice(1, r);
|
|
123
|
+
if (p(e, t[0].start, d(t[0]), "marker"), p(e, t[r].start, d(t[r]), "marker"), o.length && e.sink) {
|
|
124
|
+
const s = o[0].start, l = d(o[o.length - 1]);
|
|
125
|
+
e.sink.embed(e.source.slice(s, l), a, s);
|
|
126
|
+
}
|
|
127
|
+
if (k(e, { kind: "frontmatter", language: a }, t[0].start), o.length) {
|
|
128
|
+
const s = o[0].start, l = d(o[o.length - 1]);
|
|
129
|
+
k(e, { kind: "codeBody", language: a }, s, [{ start: s, end: l }]), $(e, l);
|
|
130
|
+
}
|
|
131
|
+
return E(e, d(t[r])), { node: { kind: "frontmatter", language: a, body: o.map((s) => s.text).join(`
|
|
132
|
+
`) }, next: r + 1 };
|
|
133
|
+
}
|
|
134
|
+
function M(t, e, n, r) {
|
|
135
|
+
const a = [];
|
|
136
|
+
if (n > it) return a;
|
|
137
|
+
let o = 0;
|
|
138
|
+
for (; o < t.length; ) {
|
|
139
|
+
const s = t[o];
|
|
140
|
+
if (y(s)) {
|
|
141
|
+
o++;
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const l = wt(t, o, e);
|
|
145
|
+
if (l) {
|
|
146
|
+
a.push(l.node), o = l.next;
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
const c = $t(s, e, r);
|
|
150
|
+
if (c) {
|
|
151
|
+
a.push(c), o++;
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
if (tt.test(s.text)) {
|
|
155
|
+
k(e, { kind: "rule" }, s.start), p(e, s.start, d(s), "marker"), a.push({ kind: "rule" }), E(e, d(s)), o++;
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
if (A.test(s.text)) {
|
|
159
|
+
k(e, { kind: "quote" }, s.start);
|
|
160
|
+
const f = yt(t, o, e, n);
|
|
161
|
+
a.push(f.node), E(e, d(t[f.next - 1])), o = f.next;
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
const i = v.exec(s.text);
|
|
165
|
+
if (i) {
|
|
166
|
+
k(e, { kind: "footnoteDef", label: i[3] }, s.start);
|
|
167
|
+
const f = Ot(t, o, e, n);
|
|
168
|
+
E(e, d(t[f.next - 1])), o = f.next;
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
const u = et.exec(s.text);
|
|
172
|
+
if (u) {
|
|
173
|
+
k(e, { kind: "linkDef" }, s.start), Tt(s, u, e), E(e, d(s)), o++;
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
if (rt(t, o)) {
|
|
177
|
+
k(e, { kind: "table" }, s.start);
|
|
178
|
+
const f = Dt(t, o, e);
|
|
179
|
+
a.push(f.node), $(e, d(t[f.next - 1])), o = f.next;
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
if (O.test(s.text) || T.test(s.text)) {
|
|
183
|
+
const f = T.exec(s.text), x = !O.exec(s.text) && !!f, g = { kind: "list", ordered: x, start: x ? Number(f[2]) : 1, tight: !0 };
|
|
184
|
+
k(e, g, s.start);
|
|
185
|
+
const w = _t(t, o, e, n, r, g);
|
|
186
|
+
a.push(w.node), E(e, d(t[w.next - 1])), o = w.next;
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
if (F(s.text) >= 4) {
|
|
190
|
+
const f = Rt(t, o, e);
|
|
191
|
+
a.push(f.node), o = f.next;
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
const h = Lt(t, o, e, r);
|
|
195
|
+
a.push(h.node), o = h.next;
|
|
196
|
+
}
|
|
197
|
+
return a;
|
|
198
|
+
}
|
|
199
|
+
function L(t) {
|
|
200
|
+
return q.test(t) || Z.test(t) || tt.test(t) || A.test(t) || O.test(t) || T.test(t) || v.test(t);
|
|
201
|
+
}
|
|
202
|
+
function wt(t, e, n) {
|
|
203
|
+
const r = t[e], a = q.exec(r.text);
|
|
204
|
+
if (!a || a[2][0] === "`" && a[3].includes("`")) return null;
|
|
205
|
+
const o = a[1].length, s = r.start + o;
|
|
206
|
+
p(n, s, s + a[2].length, "marker");
|
|
207
|
+
const l = a[3].trim();
|
|
208
|
+
if (l) {
|
|
209
|
+
const g = r.text.indexOf(l, o + a[2].length);
|
|
210
|
+
p(n, r.start + g, r.start + g + l.length, "attribute");
|
|
211
|
+
}
|
|
212
|
+
const c = l ? l.split(/\s+/)[0] : null, i = a[2][0] === "~" ? "~" : "\\u0060", u = new RegExp("^ {0,3}" + i + "{" + a[2].length + ",}[ \\t]*$"), h = [];
|
|
213
|
+
let f = e + 1, m = !0;
|
|
214
|
+
for (; f < t.length; f++) {
|
|
215
|
+
if (u.test(t[f].text)) {
|
|
216
|
+
p(n, t[f].start, d(t[f]), "marker"), m = !1, f++;
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
h.push(t[f]);
|
|
220
|
+
}
|
|
221
|
+
if (h.length && n.sink) {
|
|
222
|
+
const g = h[0].start, w = d(h[h.length - 1]);
|
|
223
|
+
n.sink.embed(n.source.slice(g, w), c, g);
|
|
224
|
+
}
|
|
225
|
+
if (k(n, { kind: "code", language: c, fenced: !0, open: m }, r.start), h.length) {
|
|
226
|
+
const g = h[0].start, w = d(h[h.length - 1]);
|
|
227
|
+
k(n, { kind: "codeBody", language: c }, g, [{ start: g, end: w }]), $(n, w);
|
|
228
|
+
}
|
|
229
|
+
E(n, d(t[f - 1]));
|
|
230
|
+
const x = h.map((g) => S(g, o).text).join(`
|
|
231
|
+
`);
|
|
232
|
+
return { node: { kind: "code", language: c, code: x, open: m }, next: f };
|
|
233
|
+
}
|
|
234
|
+
function Rt(t, e, n) {
|
|
235
|
+
const r = [];
|
|
236
|
+
let a = e;
|
|
237
|
+
for (; a < t.length && (y(t[a]) || F(t[a].text) >= 4); )
|
|
238
|
+
r.push(t[a]), a++;
|
|
239
|
+
for (; r.length && y(r[r.length - 1]); )
|
|
240
|
+
r.pop(), a--;
|
|
241
|
+
const o = r[0].start, s = d(r[r.length - 1]);
|
|
242
|
+
return p(n, o, s, "string"), k(n, { kind: "code", language: null, fenced: !1, open: !1 }, o), k(
|
|
243
|
+
n,
|
|
244
|
+
{ kind: "codeBody", language: null },
|
|
245
|
+
o,
|
|
246
|
+
r.map((c) => S(c, 4)).map((c) => ({ start: c.start, end: c.start + c.text.length }))
|
|
247
|
+
), $(n, s), E(n, s), { node: { kind: "code", language: null, code: r.map((c) => S(c, 4).text).join(`
|
|
248
|
+
`), open: !1 }, next: a };
|
|
249
|
+
}
|
|
250
|
+
function $t(t, e, n) {
|
|
251
|
+
const r = Z.exec(t.text);
|
|
252
|
+
if (!r) return null;
|
|
253
|
+
const a = r[2].length, o = t.start + r[1].length;
|
|
254
|
+
p(e, o, o + a, "marker");
|
|
255
|
+
let s = r[1].length + a, l = t.text.length;
|
|
256
|
+
const c = /(^|[ \t])(#+)[ \t]*$/.exec(t.text.slice(s));
|
|
257
|
+
if (c) {
|
|
258
|
+
const h = s + c.index + c[1].length;
|
|
259
|
+
p(e, t.start + h, t.start + h + c[2].length, "marker"), l = h;
|
|
260
|
+
}
|
|
261
|
+
for (; s < l && /[ \t]/.test(t.text[s]); ) s++;
|
|
262
|
+
if (c) for (; l > s && /[ \t]/.test(t.text[l - 1]); ) l--;
|
|
263
|
+
const i = Y({ text: t.text.slice(s, l), start: t.start + s });
|
|
264
|
+
k(e, { kind: "heading", level: a }, t.start);
|
|
265
|
+
const u = X(e, [{ text: t.text.slice(s, l), start: t.start + s }], i, n === "text" ? "heading" : n);
|
|
266
|
+
return E(e, d(t)), { kind: "heading", level: a, id: nt(e, u), children: u };
|
|
267
|
+
}
|
|
268
|
+
function nt(t, e) {
|
|
269
|
+
const n = kt(lt(e)) || "section", r = t.ids.get(n) ?? 0;
|
|
270
|
+
return t.ids.set(n, r + 1), r === 0 ? n : `${n}-${r}`;
|
|
271
|
+
}
|
|
272
|
+
function yt(t, e, n, r) {
|
|
273
|
+
const a = [];
|
|
274
|
+
let o = e;
|
|
275
|
+
for (; o < t.length; ) {
|
|
276
|
+
const s = t[o], l = A.exec(s.text);
|
|
277
|
+
if (l) {
|
|
278
|
+
p(n, s.start, s.start + l[0].length, "quote"), a.push({ text: s.text.slice(l[0].length), start: s.start + l[0].length }), o++;
|
|
279
|
+
continue;
|
|
280
|
+
}
|
|
281
|
+
if (y(s) || L(s.text) || a.length === 0) break;
|
|
282
|
+
a.push(s), o++;
|
|
283
|
+
}
|
|
284
|
+
return { node: { kind: "quote", children: M(a, n, r + 1, "quote") }, next: o };
|
|
285
|
+
}
|
|
286
|
+
function _t(t, e, n, r, a, o) {
|
|
287
|
+
const s = T.exec(t[e].text), l = O.exec(t[e].text), c = !l && !!s, i = c ? s[3] : l[2], u = c ? Number(s[2]) : 1, h = [];
|
|
288
|
+
let f = !1, m = e;
|
|
289
|
+
for (; m < t.length; ) {
|
|
290
|
+
const x = t[m], g = c ? T.exec(x.text) : O.exec(x.text);
|
|
291
|
+
if (!g || (c ? g[3] : g[2]) !== i) break;
|
|
292
|
+
const w = g[1].length, I = c ? g[2] + g[3] : g[2], K = x.start + w, P = { kind: "listItem", checked: null, marker: I }, ot = x.start;
|
|
293
|
+
k(n, P, ot), p(n, K, K + I.length, "marker");
|
|
294
|
+
const U = w + I.length, G = x.text.slice(U), C = /^[ \t]*/.exec(G)[0].length, j = U + (G.trim() === "" || C === 0 || C > 4 ? 1 : C), b = [{ text: x.text.slice(j), start: x.start + j }];
|
|
295
|
+
m++;
|
|
296
|
+
const _ = [];
|
|
297
|
+
for (; m < t.length; ) {
|
|
298
|
+
const R = t[m];
|
|
299
|
+
if (y(R)) {
|
|
300
|
+
_.push(R), m++;
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
if (F(R.text) >= j) {
|
|
304
|
+
if (_.length) {
|
|
305
|
+
f = !0;
|
|
306
|
+
for (const st of _) b.push({ text: "", start: st.start });
|
|
307
|
+
_.length = 0;
|
|
308
|
+
}
|
|
309
|
+
b.push(S(R, j)), m++;
|
|
310
|
+
continue;
|
|
311
|
+
}
|
|
312
|
+
if (_.length === 0 && !L(R.text)) {
|
|
313
|
+
b.push(R), m++;
|
|
314
|
+
continue;
|
|
315
|
+
}
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
318
|
+
if (_.length && m < t.length) {
|
|
319
|
+
const R = c ? T.exec(t[m].text) : O.exec(t[m].text);
|
|
320
|
+
R && (c ? R[3] : R[2]) === i && (f = !0);
|
|
321
|
+
}
|
|
322
|
+
let N = null;
|
|
323
|
+
const B = ft.exec(b[0].text);
|
|
324
|
+
B && (N = B[1] !== " ", P.checked = N, p(n, b[0].start, b[0].start + 3, "marker"), b[0] = { text: b[0].text.slice(B[0].length), start: b[0].start + B[0].length }), h.push({ checked: N, children: M(b, n, r + 1, a) });
|
|
325
|
+
const Q = b[b.length - 1];
|
|
326
|
+
E(n, Q.start + Q.text.length);
|
|
327
|
+
}
|
|
328
|
+
return o && (o.tight = !f), { node: { kind: "list", ordered: c, start: u, tight: !f, items: h }, next: m };
|
|
329
|
+
}
|
|
330
|
+
function Ot(t, e, n, r) {
|
|
331
|
+
const a = t[e], o = v.exec(a.text);
|
|
332
|
+
if (!o) return null;
|
|
333
|
+
const s = a.start + o[1].length;
|
|
334
|
+
p(n, s, s + o[2].length, "marker");
|
|
335
|
+
const l = [{ text: a.text.slice(o[0].length), start: a.start + o[0].length }];
|
|
336
|
+
let c = e + 1;
|
|
337
|
+
for (; c < t.length; ) {
|
|
338
|
+
const i = t[c];
|
|
339
|
+
if (y(i)) {
|
|
340
|
+
if (c + 1 < t.length && F(t[c + 1].text) >= 4) {
|
|
341
|
+
l.push({ text: "", start: i.start }), c++;
|
|
342
|
+
continue;
|
|
343
|
+
}
|
|
344
|
+
break;
|
|
345
|
+
}
|
|
346
|
+
if (F(i.text) >= 4) {
|
|
347
|
+
l.push(S(i, 4)), c++;
|
|
348
|
+
continue;
|
|
349
|
+
}
|
|
350
|
+
if (L(i.text)) break;
|
|
351
|
+
l.push(i), c++;
|
|
352
|
+
}
|
|
353
|
+
return n.footnotes.push({ label: o[3], children: M(l, n, r + 1, "text") }), { next: c };
|
|
354
|
+
}
|
|
355
|
+
function Tt(t, e, n) {
|
|
356
|
+
const r = t.start + e[1].length;
|
|
357
|
+
p(n, r, r + e[2].length, "marker");
|
|
358
|
+
const a = e.indices?.[4];
|
|
359
|
+
a && p(n, t.start + a[0], t.start + a[1], "url");
|
|
360
|
+
const o = e.indices?.[5];
|
|
361
|
+
o && p(n, t.start + o[0], t.start + o[1], "string");
|
|
362
|
+
}
|
|
363
|
+
function rt(t, e) {
|
|
364
|
+
if (e + 1 >= t.length) return !1;
|
|
365
|
+
const n = t[e], r = t[e + 1];
|
|
366
|
+
return !n.text.includes("|") || !r.text.includes("-") || !ht.test(r.text) ? !1 : D(n).cells.length === D(r).cells.length;
|
|
367
|
+
}
|
|
368
|
+
function D(t) {
|
|
369
|
+
const e = [], n = [], r = t.text;
|
|
370
|
+
let a = 0;
|
|
371
|
+
for (let o = 0; o < r.length; o++) {
|
|
372
|
+
if (r[o] === "\\") {
|
|
373
|
+
o++;
|
|
374
|
+
continue;
|
|
375
|
+
}
|
|
376
|
+
r[o] === "|" && (n.push({ start: t.start + o, end: t.start + o + 1 }), e.push(H({ text: r.slice(a, o), start: t.start + a })), a = o + 1);
|
|
377
|
+
}
|
|
378
|
+
return e.push(H({ text: r.slice(a), start: t.start + a })), e.length > 1 && e[0].text === "" && /^[ \t]*\|/.test(r) && e.shift(), e.length > 1 && e[e.length - 1].text === "" && /\|[ \t]*$/.test(r) && e.pop(), { cells: e, pipes: n };
|
|
379
|
+
}
|
|
380
|
+
function H(t) {
|
|
381
|
+
const e = /^[ \t]*/.exec(t.text)[0].length;
|
|
382
|
+
return { text: t.text.slice(e).replace(/[ \t]+$/, ""), start: t.start + e };
|
|
383
|
+
}
|
|
384
|
+
function Dt(t, e, n) {
|
|
385
|
+
let r = e + 1;
|
|
386
|
+
for (; r + 1 < t.length; ) {
|
|
387
|
+
const u = t[r + 1];
|
|
388
|
+
if (y(u) || !u.text.includes("|") || L(u.text)) break;
|
|
389
|
+
r++;
|
|
390
|
+
}
|
|
391
|
+
const o = D(t[e + 1]).cells.map(St), s = D(t[e]);
|
|
392
|
+
for (const u of s.pipes) p(n, u.start, u.end, "punctuation");
|
|
393
|
+
const l = J(n, t[e], s.cells, !0, o, W(n, d(t[e])));
|
|
394
|
+
p(n, t[e + 1].start, d(t[e + 1]), "marker");
|
|
395
|
+
const c = e + 1 === r ? d(t[e + 1]) : W(n, d(t[e + 1]));
|
|
396
|
+
k(n, { kind: "tableDelimiter" }, t[e + 1].start), k(n, { kind: "tableGutter" }, t[e + 1].start), $(n, c), $(n, c);
|
|
397
|
+
const i = [];
|
|
398
|
+
for (let u = e + 2; u <= r; u++) {
|
|
399
|
+
const h = t[u], f = D(h);
|
|
400
|
+
for (const g of f.pipes) p(n, g.start, g.end, "punctuation");
|
|
401
|
+
const m = u === r ? d(h) : W(n, d(h)), x = J(n, h, f.cells, !1, o, m);
|
|
402
|
+
for (; x.length < l.length; ) x.push({ children: [] });
|
|
403
|
+
i.push(x.slice(0, l.length));
|
|
404
|
+
}
|
|
405
|
+
return { node: { kind: "table", head: l, rows: i, align: o }, next: r + 1 };
|
|
406
|
+
}
|
|
407
|
+
function W(t, e) {
|
|
408
|
+
let n = e;
|
|
409
|
+
return t.source[n] === "\r" && n++, t.source[n] === `
|
|
410
|
+
` && n++, n;
|
|
411
|
+
}
|
|
412
|
+
function J(t, e, n, r, a, o) {
|
|
413
|
+
k(t, { kind: "tableRow", header: r }, e.start);
|
|
414
|
+
const s = [];
|
|
415
|
+
let l = e.start;
|
|
416
|
+
const c = (i) => {
|
|
417
|
+
i <= l || (k(t, { kind: "tableGutter" }, l), $(t, i), l = i);
|
|
418
|
+
};
|
|
419
|
+
for (let i = 0; i < n.length; i++) {
|
|
420
|
+
const u = n[i];
|
|
421
|
+
c(u.start), s.push(Ft(u, t, r, a[i] ?? null)), l = u.start + u.text.length;
|
|
422
|
+
}
|
|
423
|
+
return c(o), $(t, o), s;
|
|
424
|
+
}
|
|
425
|
+
function Ft(t, e, n, r) {
|
|
426
|
+
k(e, { kind: "tableCell", header: n, align: r }, t.start);
|
|
427
|
+
const a = X(e, [t], Y(t), "text");
|
|
428
|
+
return $(e, t.start + t.text.length), { children: a };
|
|
429
|
+
}
|
|
430
|
+
function St(t) {
|
|
431
|
+
const e = t.text.trim(), n = e.startsWith(":"), r = e.endsWith(":");
|
|
432
|
+
return n && r ? "center" : r ? "right" : n ? "left" : null;
|
|
433
|
+
}
|
|
434
|
+
function Lt(t, e, n, r) {
|
|
435
|
+
const a = [t[e]];
|
|
436
|
+
let o = e + 1;
|
|
437
|
+
for (; o < t.length; ) {
|
|
438
|
+
const l = t[o];
|
|
439
|
+
if (y(l)) break;
|
|
440
|
+
const c = ut.exec(l.text);
|
|
441
|
+
if (c) {
|
|
442
|
+
p(n, l.start, d(l), "marker");
|
|
443
|
+
const i = c[1][0] === "=" ? 1 : 2;
|
|
444
|
+
k(n, { kind: "heading", level: i }, t[e].start);
|
|
445
|
+
const u = V(a, n, r === "text" ? "heading" : r);
|
|
446
|
+
return E(n, d(l)), { node: { kind: "heading", level: i, id: nt(n, u), children: u }, next: o + 1 };
|
|
447
|
+
}
|
|
448
|
+
if (L(l.text) || rt(t, o)) break;
|
|
449
|
+
a.push(l), o++;
|
|
450
|
+
}
|
|
451
|
+
k(n, { kind: "paragraph" }, t[e].start);
|
|
452
|
+
const s = { kind: "paragraph", children: V(a, n, r) };
|
|
453
|
+
return E(n, mt(t, e, o - 1).end), { node: s, next: o };
|
|
454
|
+
}
|
|
455
|
+
function V(t, e, n) {
|
|
456
|
+
return X(e, t, ct(t), n);
|
|
457
|
+
}
|
|
458
|
+
export {
|
|
459
|
+
q as RE_FENCE,
|
|
460
|
+
gt as parseDocument,
|
|
461
|
+
Mt as parseMarkdown,
|
|
462
|
+
kt as slug
|
|
463
|
+
};
|
|
464
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sources":["../../../../src/lib/syntax/markdown/parse.ts"],"sourcesContent":["/* ============================================================================\n MARKDOWN — BLOCKS FIRST, THEN INLINE.\n\n WHY THIS IS A PARSER AND NOT A RULE STACK (the argument in ./types.ts, made\n concrete). Three decisions in this file cannot be made by looking at the\n characters under the cursor:\n\n - `---` is a thematic break, the underline of a setext heading, or the end\n of front matter, depending on what came BEFORE it.\n - A line indented four spaces is a code block at the top level and a\n paragraph inside a list item whose marker was three columns wide.\n - A line with no marker at all continues the blockquote above it (lazy\n continuation) unless it happens to start a block of its own.\n\n Each needs context a positional scanner does not have, which is why markdown\n is the one language here with `tokenize` overridden and a real parse behind\n it.\n\n THE PARSE HAPPENS ONCE. `parseDocument` optionally takes a `Sink`; the\n renderer's tree and the editor's token list both come out of the same walk,\n so they cannot disagree about where a heading starts. See ./spans.ts.\n\n RAW HTML IS NEVER INTERPRETED — a `<div>` in the source is the literal text\n `<div>`. That is a security decision, not a missing feature; see ./inline.ts.\n ========================================================================= */\n\nimport type { TokenType } from \"../types\";\nimport { normalizeRef, parseInline, plainText, type LinkRef } from \"./inline\";\nimport type { Frame, Range } from \"./frames\";\nimport { makeSegments, segmentOf, type Piece, type Segments, type Sink } from \"./spans\";\nimport type { MdAlign, MdCell, MdInline, MdListItem, MdNode } from \"./types\";\n\n/** A source line, without its terminator, with the offset of its first char. */\ninterface Line {\n text: string;\n start: number;\n}\n\ninterface Ctx {\n source: string;\n sink?: Sink;\n refs: Map<string, LinkRef>;\n footnotes: Array<{ label: string; children: MdNode[] }>;\n ids: Map<string, number>;\n}\n\n/** Deeply nested quotes/lists recurse; a pathological document must terminate. */\nconst MAX_BLOCK_DEPTH = 12;\n\n/** Exported so any other layer that needs to find the SAME fence boundaries\n the parser itself will — e.g. `StreamingMarkdown`'s pre-parse balancing\n pass — imports this instead of keeping a second copy of the pattern. */\nexport const RE_FENCE = /^( {0,3})(`{3,}|~{3,})(.*)$/;\nconst RE_ATX = /^( {0,3})(#{1,6})(?:[ \\t]|$)/;\nconst RE_RULE = /^ {0,3}(?:\\*[ \\t]*){3,}$|^ {0,3}(?:-[ \\t]*){3,}$|^ {0,3}(?:_[ \\t]*){3,}$/;\nconst RE_QUOTE = /^ {0,3}>[ \\t]?/;\nconst RE_BULLET = /^( {0,3})([-*+])(?:[ \\t]|$)/;\nconst RE_ORDERED = /^( {0,3})(\\d{1,9})([.)])(?:[ \\t]|$)/;\nconst RE_SETEXT = /^ {0,3}(=+|-+)[ \\t]*$/;\nconst RE_FOOTDEF = /^( {0,3})(\\[\\^([^\\]\\s]+)\\]:)[ \\t]*/d;\nconst RE_LINKDEF = /^( {0,3})(\\[([^\\]]+)\\]:)[ \\t]*(<[^>]*>|\\S+)(?:[ \\t]+([\"'(].*[\"')]))?[ \\t]*$/d;\nconst RE_TASK = /^\\[([ xX])\\](?:[ \\t]+|$)/;\nconst RE_DELIM_ROW = /^[ \\t]*\\|?[ \\t]*:?-+:?[ \\t]*(?:\\|[ \\t]*:?-+:?[ \\t]*)*\\|?[ \\t]*$/;\nconst RE_FRONT = /^(---|\\+\\+\\+)[ \\t]*$/;\n\n/* --- Public API ----------------------------------------------------------- */\n\n/** The renderer's entry point: tree only, no token bookkeeping. */\nexport function parseMarkdown(source: string): MdNode[] {\n return parseDocument(source);\n}\n\n/**\n * The shared entry point. `sink` is supplied only by the grammar; without it\n * the span reporting compiles down to a handful of `undefined` checks.\n */\nexport function parseDocument(source: string, sink?: Sink): MdNode[] {\n const lines = toLines(source);\n const ctx: Ctx = { source, sink, refs: collectRefs(lines), footnotes: [], ids: new Map() };\n\n const nodes: MdNode[] = [];\n let start = 0;\n\n const front = readFrontMatter(lines, ctx);\n if (front) {\n nodes.push(front.node);\n start = front.next;\n }\n\n nodes.push(...parseBlocks(lines.slice(start), ctx, 0, \"text\"));\n\n /* Footnote definitions are gathered wherever they appeared and rendered once,\n at the end — which is where a reader looks for them regardless of where the\n author happened to type them. */\n if (ctx.footnotes.length) nodes.push({ kind: \"footnotes\", items: ctx.footnotes });\n\n return nodes;\n}\n\n/** Heading anchors: lowercase, non-word runs to hyphens, trimmed. */\nexport function slug(text: string): string {\n return text\n .toLowerCase()\n .replace(/[^\\p{L}\\p{N}]+/gu, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\n\n/* --- Lines ---------------------------------------------------------------- */\n\nfunction toLines(source: string): Line[] {\n const lines: Line[] = [];\n let start = 0;\n for (;;) {\n const nl = source.indexOf(\"\\n\", start);\n const raw = nl < 0 ? source.slice(start) : source.slice(start, nl);\n /* A CRLF document keeps its `\\r` in the source but not in the line text;\n the stray byte is left uncovered on purpose, so the token normaliser\n reports it as plain text and every offset after it stays correct. */\n lines.push({ text: raw.endsWith(\"\\r\") ? raw.slice(0, -1) : raw, start });\n if (nl < 0) break;\n start = nl + 1;\n }\n return lines;\n}\n\nfunction isBlank(line: Line): boolean {\n return line.text.trim() === \"\";\n}\n\nfunction indentOf(text: string): number {\n let n = 0;\n for (const ch of text) {\n if (ch === \" \") n += 1;\n else if (ch === \"\\t\") n += 4;\n else break;\n }\n return n;\n}\n\n/** Removes up to `n` columns of leading whitespace, keeping offsets truthful. */\nfunction stripIndent(line: Line, n: number): Line {\n let taken = 0;\n let i = 0;\n while (i < line.text.length && taken < n) {\n const ch = line.text[i];\n if (ch === \" \") taken += 1;\n else if (ch === \"\\t\") taken += 4;\n else break;\n i++;\n }\n return { text: line.text.slice(i), start: line.start + i };\n}\n\nfunction mark(ctx: Ctx, start: number, end: number, type: TokenType): void {\n if (ctx.sink && end > start) ctx.sink.span(start, end, type);\n}\n\n/* --- Frames --------------------------------------------------------------- */\n\n/**\n * Blocks are bracketed in `parseBlocks` rather than inside each `read*`,\n * because that is the ONE place that knows both ends: a `read*` returns `next`,\n * and `lines[next - 1]` is the last line it took. Doing it inside each reader\n * would mean thirteen places computing the same end offset, and the setext case\n * proves how that goes wrong — the underline is not in the paragraph's pieces,\n * so a reader that measured its own content would stop one line short.\n */\nfunction frame(ctx: Ctx, f: Frame, start: number, content?: readonly Range[]): void {\n ctx.sink?.open(f, start, content);\n}\n\nfunction endFrame(ctx: Ctx, end: number): void {\n ctx.sink?.close(end);\n}\n\n/**\n * Closes a BLOCK frame, extending it over its own line terminator and claiming\n * that terminator as its text.\n *\n * WHY A BLOCK OWNS ITS LINE ENDING. A newline and a box both mean \"break the\n * line\", and a projection that keeps both prints every break twice — so exactly\n * one of them has to win, per construct. The rule this expresses is: a block\n * OWNS the newline that ends it, renders it, and therefore needs no box of its\n * own. The one construct where the box wins instead is the table, whose rows\n * must be real `<tr>` elements; its internal newlines stay unclaimed and\n * collapse, which is what stops a table double-spacing.\n *\n * Measured, not reasoned: with the terminator left unclaimed, a two-item list\n * rendered on ONE line, and making the item a box instead rendered it on five.\n */\nfunction endBlock(ctx: Ctx, end: number): void {\n if (!ctx.sink) return;\n let at = end;\n /* `\\r\\n` counts as one ending — the parser drops the `\\r` from the line text\n but it is still a source character and still part of the break. */\n if (ctx.source[at] === \"\\r\") at++;\n if (ctx.source[at] === \"\\n\") at++;\n ctx.sink.close(at, at > end ? [{ start: end, end: at }] : undefined);\n}\n\n/** The span a run of lines occupies, from the first character to the last. */\nfunction spanOf(lines: Line[], from: number, to: number): { start: number; end: number } {\n return { start: lines[from].start, end: lineEnd(lines[to]) };\n}\n\n/**\n * Opens the frame that holds one run of prose, and declares what of it is text.\n *\n * THE TWO KINDS OF CHARACTER BETWEEN TWO LINES, which is the whole reason this\n * lives here rather than inside `parseInline`. A paragraph's pieces are its\n * lines with every block prefix already cut off, so what sits between piece N\n * and piece N+1 is a line terminator FOLLOWED BY a prefix — and they are\n * opposites. The terminator is the author's own line break and must survive as\n * text, or two lines of a paragraph would run together with no space; the\n * `> ` or the list indent is markup and must collapse. Declaring the pieces\n * alone loses the first; declaring the hull keeps the second.\n *\n * Only this layer can tell them apart, because only it has the source string.\n */\nfunction inlineFrame(ctx: Ctx, pieces: Line[], seg: Segments, ambient: TokenType): MdInline[] {\n /* SG-794 — AN EMPTY RUN GETS NO FRAME OF ITS OWN, not even a zero-width one.\n `pieces.length` can be 1 with the one piece itself holding no characters —\n an empty table cell, notably, once `toCell()` trims its content down to \"\".\n Opening `{kind:\"inline\"}` there would put a SECOND zero-width frame at the\n exact same offset as the caller's own zero-width frame (a table cell, a\n list item, whatever called this) — and `project.ts`'s `walk()` never\n recurses into a zero-width frame's children (a zero-width element already\n gets its one synthetic empty text leaf for free, so there is nothing for\n a nested frame to usefully hold anyway). The inline frame's content is\n therefore never visited as this element's child; it surfaces instead as\n an ORPHANED SIBLING at the same offset, one level up — a stray `<span\n data-md=\"inline\">` sitting directly inside a `<tr>`, which is not\n something a browser's table model can place: it gets wrapped in an\n anonymous cell box, adding a column the row's own gutters never declared\n and throwing off every other row's column alignment. Skip opening the\n frame when there is nothing in it to declare — `parseInline` still runs,\n and still correctly returns no children for no text. */\n const empty = pieces.length > 0 && pieces[pieces.length - 1].start + pieces[pieces.length - 1].text.length === pieces[0].start;\n if (!ctx.sink || !pieces.length || empty) return parseInline(seg, ctx.refs, ctx.sink, ambient);\n\n const ranges: Range[] = [];\n for (let i = 0; i < pieces.length; i++) {\n const piece = pieces[i];\n const end = piece.start + piece.text.length;\n ranges.push({ start: piece.start, end });\n if (i === pieces.length - 1) break;\n /* The terminator, `\\r\\n` included — the parser drops the `\\r` from the line\n text but it is still a source character and still belongs to the break. */\n let at = end;\n if (ctx.source[at] === \"\\r\") at++;\n if (ctx.source[at] === \"\\n\") at++;\n if (at > end) ranges.push({ start: end, end: at });\n }\n\n frame(ctx, { kind: \"inline\" }, pieces[0].start, ranges);\n const children = parseInline(seg, ctx.refs, ctx.sink, ambient);\n const tail = pieces[pieces.length - 1];\n endFrame(ctx, tail.start + tail.text.length);\n return children;\n}\n\nfunction lineEnd(line: Line): number {\n return line.start + line.text.length;\n}\n\n/* --- Link reference definitions ------------------------------------------- */\n\n/**\n * A reference definition may appear AFTER the link that uses it, so they are\n * collected in their own pass. Fenced regions are skipped: `[x]: y` inside a\n * code block is code, and letting it register a definition would silently\n * change how prose elsewhere in the document renders.\n */\nfunction collectRefs(lines: Line[]): Map<string, LinkRef> {\n const refs = new Map<string, LinkRef>();\n let fence: string | null = null;\n let canStart = true;\n\n for (const line of lines) {\n const fenceMatch = RE_FENCE.exec(line.text);\n if (fence) {\n if (fenceMatch && fenceMatch[2][0] === fence[0] && fenceMatch[2].length >= fence.length) fence = null;\n continue;\n }\n if (fenceMatch) {\n fence = fenceMatch[2];\n continue;\n }\n\n const def = canStart ? RE_LINKDEF.exec(line.text) : null;\n if (def) {\n const key = normalizeRef(def[3]);\n if (!refs.has(key)) refs.set(key, { href: cleanDest(def[4]), title: def[5] ? def[5].slice(1, -1) : undefined });\n canStart = true;\n continue;\n }\n canStart = isBlank(line);\n }\n\n return refs;\n}\n\nfunction cleanDest(dest: string): string {\n const inner = dest.startsWith(\"<\") && dest.endsWith(\">\") ? dest.slice(1, -1) : dest;\n return inner.replace(/\\\\([!-/:-@[-`{-~])/g, \"$1\");\n}\n\n/* --- Front matter --------------------------------------------------------- */\n\nfunction readFrontMatter(lines: Line[], ctx: Ctx): { node: MdNode; next: number } | null {\n if (!lines.length) return null;\n const open = RE_FRONT.exec(lines[0].text);\n if (!open) return null;\n\n let close = -1;\n for (let i = 1; i < lines.length; i++) {\n if (lines[i].text.trimEnd() === open[1]) {\n close = i;\n break;\n }\n }\n /* An unterminated `---` at the top of a file is a thematic break, not front\n matter that will eventually close — otherwise every document starting with\n a horizontal rule would swallow itself. */\n if (close < 0) return null;\n\n const language = open[1] === \"---\" ? \"yaml\" : \"toml\";\n const body = lines.slice(1, close);\n mark(ctx, lines[0].start, lineEnd(lines[0]), \"marker\");\n mark(ctx, lines[close].start, lineEnd(lines[close]), \"marker\");\n\n if (body.length && ctx.sink) {\n const from = body[0].start;\n const to = lineEnd(body[body.length - 1]);\n ctx.sink.embed(ctx.source.slice(from, to), language, from);\n }\n\n frame(ctx, { kind: \"frontmatter\", language }, lines[0].start);\n if (body.length) {\n const bodyFrom = body[0].start;\n const bodyTo = lineEnd(body[body.length - 1]);\n frame(ctx, { kind: \"codeBody\", language }, bodyFrom, [{ start: bodyFrom, end: bodyTo }]);\n endFrame(ctx, bodyTo);\n }\n endBlock(ctx, lineEnd(lines[close]));\n\n return { node: { kind: \"frontmatter\", language, body: body.map((l) => l.text).join(\"\\n\") }, next: close + 1 };\n}\n\n/* --- Blocks --------------------------------------------------------------- */\n\nfunction parseBlocks(lines: Line[], ctx: Ctx, depth: number, ambient: TokenType): MdNode[] {\n const nodes: MdNode[] = [];\n if (depth > MAX_BLOCK_DEPTH) return nodes;\n let i = 0;\n\n while (i < lines.length) {\n const line = lines[i];\n\n if (isBlank(line)) {\n i++;\n continue;\n }\n\n /* WHERE A FRAME IS OPENED depends on one thing only: whether the block has\n CHILD frames. `open`/`close` must nest properly with each other (spans do\n not participate), so a reader that recurses — quote, list, footnote,\n table — is bracketed HERE, before it runs. A reader with no children, or\n one whose own children come last, opens its frame itself: the fence knows\n its language only after scanning, and paragraph-versus-setext is not\n decided until the terminating line is read. */\n const fence = readFence(lines, i, ctx);\n if (fence) {\n nodes.push(fence.node);\n i = fence.next;\n continue;\n }\n\n const atx = readAtx(line, ctx, ambient);\n if (atx) {\n nodes.push(atx);\n i++;\n continue;\n }\n\n if (RE_RULE.test(line.text)) {\n frame(ctx, { kind: \"rule\" }, line.start);\n mark(ctx, line.start, lineEnd(line), \"marker\");\n nodes.push({ kind: \"rule\" });\n endBlock(ctx, lineEnd(line));\n i++;\n continue;\n }\n\n if (RE_QUOTE.test(line.text)) {\n frame(ctx, { kind: \"quote\" }, line.start);\n const quote = readQuote(lines, i, ctx, depth);\n nodes.push(quote.node);\n endBlock(ctx, lineEnd(lines[quote.next - 1]));\n i = quote.next;\n continue;\n }\n\n const footMatch = RE_FOOTDEF.exec(line.text);\n if (footMatch) {\n frame(ctx, { kind: \"footnoteDef\", label: footMatch[3] }, line.start);\n const foot = readFootnoteDef(lines, i, ctx, depth)!;\n endBlock(ctx, lineEnd(lines[foot.next - 1]));\n i = foot.next;\n continue;\n }\n\n const def = RE_LINKDEF.exec(line.text);\n if (def) {\n frame(ctx, { kind: \"linkDef\" }, line.start);\n markLinkDef(line, def, ctx);\n endBlock(ctx, lineEnd(line));\n i++;\n continue;\n }\n\n if (isTableStart(lines, i)) {\n frame(ctx, { kind: \"table\" }, line.start);\n const table = readTable(lines, i, ctx);\n nodes.push(table.node);\n /* THE ONE BLOCK THAT DOES NOT OWN ITS LINE ENDING. A table renders as a\n real box because its rows must be real rows, and a box cannot hold\n loose text — claiming the terminator put a text node directly inside\n <table>, which is invalid markup. So the box wins here and the\n terminator stays at document level, where it still renders. */\n endFrame(ctx, lineEnd(lines[table.next - 1]));\n i = table.next;\n continue;\n }\n\n if (RE_BULLET.test(line.text) || RE_ORDERED.test(line.text)) {\n const first = RE_ORDERED.exec(line.text);\n const bullet = RE_BULLET.exec(line.text);\n const ordered = !bullet && !!first;\n /* `tight` is only known once the whole list is read, so the frame carries\n the value the reader will land on — filled in by `readList` through the\n record it is handed, rather than guessed here. */\n const listFrame: Frame = { kind: \"list\", ordered, start: ordered ? Number(first![2]) : 1, tight: true };\n frame(ctx, listFrame, line.start);\n const list = readList(lines, i, ctx, depth, ambient, listFrame);\n nodes.push(list.node);\n endBlock(ctx, lineEnd(lines[list.next - 1]));\n i = list.next;\n continue;\n }\n\n if (indentOf(line.text) >= 4) {\n const code = readIndentedCode(lines, i, ctx);\n nodes.push(code.node);\n i = code.next;\n continue;\n }\n\n /* Paragraph and setext share a reader, and which one it produced is only\n known afterwards — so this frame is opened by the reader, not here. */\n const para = readParagraph(lines, i, ctx, ambient);\n nodes.push(para.node);\n i = para.next;\n }\n\n return nodes;\n}\n\n/** Everything that ends a paragraph by starting something of its own. */\nfunction startsBlock(text: string): boolean {\n return (\n RE_FENCE.test(text) ||\n RE_ATX.test(text) ||\n RE_RULE.test(text) ||\n RE_QUOTE.test(text) ||\n RE_BULLET.test(text) ||\n RE_ORDERED.test(text) ||\n RE_FOOTDEF.test(text)\n );\n}\n\n/* --- Fenced code ---------------------------------------------------------- */\n\nfunction readFence(lines: Line[], i: number, ctx: Ctx): { node: MdNode; next: number } | null {\n const line = lines[i];\n const m = RE_FENCE.exec(line.text);\n if (!m) return null;\n /* A backtick fence's info string cannot contain a backtick, which is what\n keeps `` `a` `` from being read as an opening fence. */\n if (m[2][0] === \"`\" && m[3].includes(\"`\")) return null;\n\n const indent = m[1].length;\n const fenceStart = line.start + indent;\n mark(ctx, fenceStart, fenceStart + m[2].length, \"marker\");\n\n const info = m[3].trim();\n if (info) {\n const at = line.text.indexOf(info, indent + m[2].length);\n mark(ctx, line.start + at, line.start + at + info.length, \"attribute\");\n }\n const language = info ? info.split(/\\s+/)[0] : null;\n\n /* Built rather than written literally: the closing fence must be the SAME\n character and at least as long, so `~~~` inside a ``` block stays content. */\n const fenceChar = m[2][0] === \"~\" ? \"~\" : \"\\\\u0060\";\n const closer = new RegExp(\"^ {0,3}\" + fenceChar + \"{\" + m[2].length + \",}[ \\\\t]*$\");\n const body: Line[] = [];\n let j = i + 1;\n let open = true;\n\n for (; j < lines.length; j++) {\n if (closer.test(lines[j].text)) {\n mark(ctx, lines[j].start, lineEnd(lines[j]), \"marker\");\n open = false;\n j++;\n break;\n }\n body.push(lines[j]);\n }\n\n if (body.length && ctx.sink) {\n /* The RAW region is handed to the inner grammar, indentation included: the\n node's `code` has the fence's indent stripped, but a token list must\n still cover the source it was cut from. */\n const from = body[0].start;\n const to = lineEnd(body[body.length - 1]);\n ctx.sink.embed(ctx.source.slice(from, to), language, from);\n }\n\n /* Emitted here rather than by the caller because the language and the\n closed-ness are only known now — and a fence has no child frames, so\n opening it after its own spans breaks no nesting. The body's RAW range is\n its content: the fence lines around it are syntax, everything between is\n text the user edits. */\n frame(ctx, { kind: \"code\", language, fenced: true, open }, line.start);\n /* The body gets a frame of its own so the code's own decoration stops before\n the terminator this block is about to claim — see `codeBody` in frames.ts.\n The outer frame declares nothing, which leaves the fence lines syntax. */\n if (body.length) {\n const bodyFrom = body[0].start;\n const bodyTo = lineEnd(body[body.length - 1]);\n frame(ctx, { kind: \"codeBody\", language }, bodyFrom, [{ start: bodyFrom, end: bodyTo }]);\n endFrame(ctx, bodyTo);\n }\n endBlock(ctx, lineEnd(lines[j - 1]));\n\n const code = body.map((l) => stripIndent(l, indent).text).join(\"\\n\");\n return { node: { kind: \"code\", language, code, open }, next: j };\n}\n\nfunction readIndentedCode(lines: Line[], i: number, ctx: Ctx): { node: MdNode; next: number } {\n const body: Line[] = [];\n let j = i;\n while (j < lines.length && (isBlank(lines[j]) || indentOf(lines[j].text) >= 4)) {\n body.push(lines[j]);\n j++;\n }\n /* Trailing blank lines belong to the document, not to the code — keeping\n them would render an indented block with phantom empty lines at the end. */\n while (body.length && isBlank(body[body.length - 1])) {\n body.pop();\n j--;\n }\n\n const from = body[0].start;\n const to = lineEnd(body[body.length - 1]);\n mark(ctx, from, to, \"string\");\n /* One range PER LINE, not one spanning the block: every line carries its own\n four columns of indentation, and a single hull would swallow all of them\n but the first — projecting real syntax as editable prose. */\n frame(ctx, { kind: \"code\", language: null, fenced: false, open: false }, from);\n frame(\n ctx,\n { kind: \"codeBody\", language: null },\n from,\n body.map((l) => stripIndent(l, 4)).map((l) => ({ start: l.start, end: l.start + l.text.length })),\n );\n endFrame(ctx, to);\n endBlock(ctx, to);\n\n const code = body.map((l) => stripIndent(l, 4).text).join(\"\\n\");\n return { node: { kind: \"code\", language: null, code, open: false }, next: j };\n}\n\n/* --- Headings ------------------------------------------------------------- */\n\nfunction readAtx(line: Line, ctx: Ctx, ambient: TokenType): MdNode | null {\n const m = RE_ATX.exec(line.text);\n if (!m) return null;\n\n const level = m[2].length as 1 | 2 | 3 | 4 | 5 | 6;\n const hashStart = line.start + m[1].length;\n mark(ctx, hashStart, hashStart + level, \"marker\");\n\n let from = m[1].length + level;\n let to = line.text.length;\n\n /* The closing-hash form: `## Title ##`. The hashes must be preceded by\n whitespace, or `# C#` would lose its sharp. */\n const closing = /(^|[ \\t])(#+)[ \\t]*$/.exec(line.text.slice(from));\n if (closing) {\n const at = from + closing.index + closing[1].length;\n mark(ctx, line.start + at, line.start + at + closing[2].length, \"marker\");\n to = at;\n }\n\n while (from < to && /[ \\t]/.test(line.text[from])) from++;\n /* TRAILING WHITESPACE IS TRIMMED ONLY WHEN IT PRECEDES A CLOSING `##`\n SEQUENCE — SG-792. An earlier version of this function ALWAYS trimmed\n trailing whitespace/tabs off `to`, unconditionally, which pulled it out of\n the inline frame's own content range. That reclassified it as SYNTAX\n (this frame's own `content` is `[]`; see `project.ts`'s `emitText` —\n anything not claimed by a child frame's content is markup), which the\n caret map then treats as a construct's own TRAILING markup\n (`caret-map.ts`'s \"BLOCK'S TRAILING MARKUP\" rule: stand BEFORE it, the\n same rule a closing code fence gets). The instant a reviewer pressed\n Space at the end of a heading line, that space became \"trailing\" and the\n caret snapped back to stand before it — so the NEXT character typed\n landed before the space instead of after it. Every following space\n repeated the trap, which is why a whole line of typed words ran together\n with every space shoved to the end: confirmed by a real Chromium probe\n stepping one keystroke at a time (`gpt-manager`'s SG-792 investigation),\n never by re-deriving the rule.\n A trailing space with nothing else on the line is harmless in the SOURCE\n — a spec-compliant renderer ignores it exactly like it ignores one in a\n paragraph — so there is nothing there that needs hiding, and it is now\n left as ordinary editable content, exactly like a paragraph's own\n trailing space already was.\n The explicit closing-hash form (`## Title ##`) is different: CommonMark\n really does treat the whitespace between the title and the closing hashes\n as part of that construct's own markup, `strips the closing-hash form\n but keeps a sharp that is part of a word` (syntax-markdown.test.tsx)\n depends on exactly that, and unlike a just-typed trailing space this\n whitespace sits BETWEEN two things that already both exist — it is never\n \"maybe more text is coming\" the way end-of-line trailing space is while\n someone is actively typing. So the trim stays, scoped to that one case. */\n if (closing) while (to > from && /[ \\t]/.test(line.text[to - 1])) to--;\n\n const seg = segmentOf({ text: line.text.slice(from, to), start: line.start + from });\n /* Opened around the inline parse so the inline frame nests inside it, and\n spanning the WHOLE line so the hashes and the trailing `##` are inside a\n frame that does not claim them as content — which is what makes them\n project as collapsible syntax rather than as prose. */\n frame(ctx, { kind: \"heading\", level }, line.start);\n const children = inlineFrame(ctx, [{ text: line.text.slice(from, to), start: line.start + from }], seg, ambient === \"text\" ? \"heading\" : ambient);\n endBlock(ctx, lineEnd(line));\n return { kind: \"heading\", level, id: headingId(ctx, children), children };\n}\n\nfunction headingId(ctx: Ctx, children: MdInline[]): string {\n const base = slug(plainText(children)) || \"section\";\n const seen = ctx.ids.get(base) ?? 0;\n ctx.ids.set(base, seen + 1);\n /* Anchors must be unique or every duplicate heading links to the first one —\n the classic broken table of contents. */\n return seen === 0 ? base : `${base}-${seen}`;\n}\n\n/* --- Blockquote ----------------------------------------------------------- */\n\nfunction readQuote(lines: Line[], i: number, ctx: Ctx, depth: number): { node: MdNode; next: number } {\n const body: Line[] = [];\n let j = i;\n\n while (j < lines.length) {\n const line = lines[j];\n const m = RE_QUOTE.exec(line.text);\n if (m) {\n mark(ctx, line.start, line.start + m[0].length, \"quote\");\n body.push({ text: line.text.slice(m[0].length), start: line.start + m[0].length });\n j++;\n continue;\n }\n /* Lazy continuation: a bare line under a quoted paragraph stays in the\n quote. It stops at a blank line or at anything that starts a block,\n because those end the paragraph it would have continued. */\n if (isBlank(line) || startsBlock(line.text) || body.length === 0) break;\n body.push(line);\n j++;\n }\n\n return { node: { kind: \"quote\", children: parseBlocks(body, ctx, depth + 1, \"quote\") }, next: j };\n}\n\n/* --- Lists ---------------------------------------------------------------- */\n\nfunction readList(\n lines: Line[],\n i: number,\n ctx: Ctx,\n depth: number,\n ambient: TokenType,\n /* Opened by the caller, because the items nest inside it — but `tight` is not\n known until the last item has been read, so the caller hands the record\n over and this function stamps the answer onto it. The alternative is a\n look-ahead that re-implements the whole loop just to count blank lines. */\n frameToFill?: Frame & { kind: \"list\" },\n): { node: MdNode; next: number } {\n const firstOrdered = RE_ORDERED.exec(lines[i].text);\n const firstBullet = RE_BULLET.exec(lines[i].text);\n const ordered = !firstBullet && !!firstOrdered;\n const delimiter = ordered ? firstOrdered![3] : firstBullet![2];\n const start = ordered ? Number(firstOrdered![2]) : 1;\n\n const items: MdListItem[] = [];\n let loose = false;\n let j = i;\n\n while (j < lines.length) {\n const line = lines[j];\n const m = ordered ? RE_ORDERED.exec(line.text) : RE_BULLET.exec(line.text);\n /* A different bullet character or delimiter starts a NEW list — that is\n how an author separates two adjacent lists with no prose between. */\n if (!m || (ordered ? m[3] : m[2]) !== delimiter) break;\n\n const indent = m[1].length;\n const markerText = ordered ? m[2] + m[3] : m[2];\n const markerStart = line.start + indent;\n /* Opened at the line's own start, not at the marker: the item's leading\n indentation is part of the item in the source, and a projection that left\n it outside every frame would have nowhere to put those characters. */\n const itemFrame: Frame & { kind: \"listItem\" } = { kind: \"listItem\", checked: null, marker: markerText };\n const itemStart = line.start;\n frame(ctx, itemFrame, itemStart);\n mark(ctx, markerStart, markerStart + markerText.length, \"marker\");\n\n const afterMarker = indent + markerText.length;\n const rest = line.text.slice(afterMarker);\n const spaces = /^[ \\t]*/.exec(rest)![0].length;\n /* An empty item, or one whose content is indented far enough to be code,\n both put the content column one space past the marker. */\n const contentIndent = afterMarker + (rest.trim() === \"\" || spaces === 0 || spaces > 4 ? 1 : spaces);\n\n /* The FIRST line is cut by character index, not by stripping whitespace:\n `- one` begins with the marker, so a whitespace-only strip removes\n nothing and the item's content is re-parsed as the same list item, one\n level deeper, until the recursion cap. Continuation lines below DO start\n with whitespace and are stripped by column. */\n const body: Line[] = [{ text: line.text.slice(contentIndent), start: line.start + contentIndent }];\n j++;\n\n const blanks: Line[] = [];\n while (j < lines.length) {\n const next = lines[j];\n if (isBlank(next)) {\n blanks.push(next);\n j++;\n continue;\n }\n if (indentOf(next.text) >= contentIndent) {\n if (blanks.length) {\n /* A blank line INSIDE an item makes the whole list loose, which is\n what turns tight `<li>text</li>` into `<li><p>text</p></li>`. */\n loose = true;\n for (const blank of blanks) body.push({ text: \"\", start: blank.start });\n blanks.length = 0;\n }\n body.push(stripIndent(next, contentIndent));\n j++;\n continue;\n }\n if (blanks.length === 0 && !startsBlock(next.text)) {\n body.push(next);\n j++;\n continue;\n }\n break;\n }\n if (blanks.length && j < lines.length) {\n const more = ordered ? RE_ORDERED.exec(lines[j].text) : RE_BULLET.exec(lines[j].text);\n if (more && (ordered ? more[3] : more[2]) === delimiter) loose = true;\n }\n\n let checked: boolean | null = null;\n const task = RE_TASK.exec(body[0].text);\n if (task) {\n checked = task[1] !== \" \";\n itemFrame.checked = checked;\n mark(ctx, body[0].start, body[0].start + 3, \"marker\");\n body[0] = { text: body[0].text.slice(task[0].length), start: body[0].start + task[0].length };\n }\n\n items.push({ checked, children: parseBlocks(body, ctx, depth + 1, ambient) });\n /* The last BODY line, not `lines[j - 1]`: trailing blanks are consumed by\n the look-ahead above without joining the item, and stretching the frame\n over them would put document whitespace inside a list item. */\n const tail = body[body.length - 1];\n endBlock(ctx, tail.start + tail.text.length);\n }\n\n if (frameToFill) frameToFill.tight = !loose;\n return { node: { kind: \"list\", ordered, start, tight: !loose, items }, next: j };\n}\n\n/* --- Footnote definitions ------------------------------------------------- */\n\nfunction readFootnoteDef(lines: Line[], i: number, ctx: Ctx, depth: number): { next: number } | null {\n const line = lines[i];\n const m = RE_FOOTDEF.exec(line.text);\n if (!m) return null;\n\n const markerStart = line.start + m[1].length;\n mark(ctx, markerStart, markerStart + m[2].length, \"marker\");\n\n const body: Line[] = [{ text: line.text.slice(m[0].length), start: line.start + m[0].length }];\n let j = i + 1;\n while (j < lines.length) {\n const next = lines[j];\n if (isBlank(next)) {\n if (j + 1 < lines.length && indentOf(lines[j + 1].text) >= 4) {\n body.push({ text: \"\", start: next.start });\n j++;\n continue;\n }\n break;\n }\n if (indentOf(next.text) >= 4) {\n body.push(stripIndent(next, 4));\n j++;\n continue;\n }\n if (startsBlock(next.text)) break;\n body.push(next);\n j++;\n }\n\n ctx.footnotes.push({ label: m[3], children: parseBlocks(body, ctx, depth + 1, \"text\") });\n return { next: j };\n}\n\nfunction markLinkDef(line: Line, def: RegExpExecArray, ctx: Ctx): void {\n const markerStart = line.start + def[1].length;\n mark(ctx, markerStart, markerStart + def[2].length, \"marker\");\n const dest = def.indices?.[4];\n if (dest) mark(ctx, line.start + dest[0], line.start + dest[1], \"url\");\n const title = def.indices?.[5];\n if (title) mark(ctx, line.start + title[0], line.start + title[1], \"string\");\n}\n\n/* --- Tables --------------------------------------------------------------- */\n\nfunction isTableStart(lines: Line[], i: number): boolean {\n if (i + 1 >= lines.length) return false;\n const head = lines[i];\n const rule = lines[i + 1];\n if (!head.text.includes(\"|\") || !rule.text.includes(\"-\")) return false;\n if (!RE_DELIM_ROW.test(rule.text)) return false;\n /* GFM: the delimiter row must describe exactly as many columns as the header\n has, which is also what stops a paragraph containing a pipe from being\n mistaken for a table. */\n return splitRow(head).cells.length === splitRow(rule).cells.length;\n}\n\nfunction splitRow(line: Line): { cells: Piece[]; pipes: Array<{ start: number; end: number }> } {\n const cells: Piece[] = [];\n const pipes: Array<{ start: number; end: number }> = [];\n const text = line.text;\n let from = 0;\n\n for (let i = 0; i < text.length; i++) {\n if (text[i] === \"\\\\\") {\n i++;\n continue;\n }\n if (text[i] !== \"|\") continue;\n pipes.push({ start: line.start + i, end: line.start + i + 1 });\n cells.push(trimPiece({ text: text.slice(from, i), start: line.start + from }));\n from = i + 1;\n }\n cells.push(trimPiece({ text: text.slice(from), start: line.start + from }));\n\n if (cells.length > 1 && cells[0].text === \"\" && /^[ \\t]*\\|/.test(text)) cells.shift();\n if (cells.length > 1 && cells[cells.length - 1].text === \"\" && /\\|[ \\t]*$/.test(text)) cells.pop();\n return { cells, pipes };\n}\n\nfunction trimPiece(piece: Piece): Piece {\n const lead = /^[ \\t]*/.exec(piece.text)![0].length;\n const text = piece.text.slice(lead).replace(/[ \\t]+$/, \"\");\n return { text, start: piece.start + lead };\n}\n\nfunction readTable(lines: Line[], i: number, ctx: Ctx): { node: MdNode; next: number } {\n /* THE EXTENT IS FOUND FIRST, and that is not a tidiness choice. Every row but\n the last swallows the newline that ends it — into its own trailing gutter\n cell, because a `<table>` cannot hold text between its rows any more than a\n `<tr>` can hold text between its cells. Whether a row is the last one is\n therefore something the emitter has to know BEFORE it emits, so the scan\n runs to completion first. */\n let last = i + 1;\n while (last + 1 < lines.length) {\n const line = lines[last + 1];\n if (isBlank(line) || !line.text.includes(\"|\") || startsBlock(line.text)) break;\n last++;\n }\n\n const ruleRow = splitRow(lines[i + 1]);\n const align = ruleRow.cells.map(alignOf);\n\n const headRow = splitRow(lines[i]);\n for (const pipe of headRow.pipes) mark(ctx, pipe.start, pipe.end, \"punctuation\");\n const head = readRow(ctx, lines[i], headRow.cells, true, align, terminatorAfter(ctx, lineEnd(lines[i])));\n\n /* The delimiter row carries no prose at all, so it is one marker span rather\n than pipes-plus-dashes; nothing in it is ever editable content. It still\n gets a row AND a cell, because in a projection every source character needs\n somewhere legal to live, and \"legal\" inside a table means inside a cell. */\n mark(ctx, lines[i + 1].start, lineEnd(lines[i + 1]), \"marker\");\n const ruleEnd = i + 1 === last ? lineEnd(lines[i + 1]) : terminatorAfter(ctx, lineEnd(lines[i + 1]));\n frame(ctx, { kind: \"tableDelimiter\" }, lines[i + 1].start);\n frame(ctx, { kind: \"tableGutter\" }, lines[i + 1].start);\n endFrame(ctx, ruleEnd);\n endFrame(ctx, ruleEnd);\n\n const rows: MdCell[][] = [];\n for (let j = i + 2; j <= last; j++) {\n const line = lines[j];\n const row = splitRow(line);\n for (const pipe of row.pipes) mark(ctx, pipe.start, pipe.end, \"punctuation\");\n const end = j === last ? lineEnd(line) : terminatorAfter(ctx, lineEnd(line));\n const cells = readRow(ctx, line, row.cells, false, align, end);\n /* Ragged rows are normalised to the header width: a short row gets empty\n cells and a long one is truncated, so the DOM table is never jagged. */\n while (cells.length < head.length) cells.push({ children: [] });\n rows.push(cells.slice(0, head.length));\n }\n\n return { node: { kind: \"table\", head, rows, align }, next: last + 1 };\n}\n\n/** The offset past the line terminator at `end`, or `end` if there is none. */\nfunction terminatorAfter(ctx: Ctx, end: number): number {\n let at = end;\n if (ctx.source[at] === \"\\r\") at++;\n if (ctx.source[at] === \"\\n\") at++;\n return at;\n}\n\n/**\n * One table row: alternating gutters and cells, so every character is in a cell.\n *\n * A DOM table cannot hold text outside a cell. Text placed directly in a `<tr>`\n * gets an anonymous cell box that the browser will not step a caret into, which\n * the arrow-key torture test caught as Right moving from offset 2 to offset 2 —\n * the pipes and the padding were unreachable. So the pipes get cells of their\n * own, hidden rather than absent.\n *\n * The cell frames stay TRIMMED, which is what keeps the padding out of a cell\n * edit's range: an editor that re-pads cells is the Obsidian 1.5 revolt, and\n * padding that is not inside the cell frame cannot be rewritten by one.\n */\nfunction readRow(\n ctx: Ctx,\n line: Line,\n cells: Piece[],\n header: boolean,\n align: (MdAlign | null)[],\n /* Past the row's own newline for every row but the last, so the character\n that ends the line lands in a cell rather than loose in the table. */\n end: number,\n): MdCell[] {\n frame(ctx, { kind: \"tableRow\", header }, line.start);\n const out: MdCell[] = [];\n let at = line.start;\n\n const gutter = (to: number) => {\n if (to <= at) return;\n frame(ctx, { kind: \"tableGutter\" }, at);\n endFrame(ctx, to);\n at = to;\n };\n\n for (let c = 0; c < cells.length; c++) {\n const piece = cells[c];\n gutter(piece.start);\n out.push(toCell(piece, ctx, header, align[c] ?? null));\n at = piece.start + piece.text.length;\n }\n gutter(end);\n\n endFrame(ctx, end);\n return out;\n}\n\nfunction toCell(piece: Piece, ctx: Ctx, header: boolean, align: MdAlign | null): MdCell {\n /* `trimPiece` already moved `start` past the leading padding, so the frame\n opens at the trimmed start and the surrounding spaces belong to the ROW.\n That is deliberate: Obsidian 1.5's revolt was over an editor reflowing cell\n padding, and padding that is not inside the cell cannot be rewritten by a\n cell edit. */\n frame(ctx, { kind: \"tableCell\", header, align }, piece.start);\n const children = inlineFrame(ctx, [piece], segmentOf(piece), \"text\");\n endFrame(ctx, piece.start + piece.text.length);\n return { children };\n}\n\nfunction alignOf(cell: Piece): MdAlign | null {\n const text = cell.text.trim();\n const left = text.startsWith(\":\");\n const right = text.endsWith(\":\");\n if (left && right) return \"center\";\n if (right) return \"right\";\n if (left) return \"left\";\n return null;\n}\n\n/* --- Paragraphs and setext headings --------------------------------------- */\n\nfunction readParagraph(lines: Line[], i: number, ctx: Ctx, ambient: TokenType): { node: MdNode; next: number } {\n const pieces: Line[] = [lines[i]];\n let j = i + 1;\n\n while (j < lines.length) {\n const line = lines[j];\n if (isBlank(line)) break;\n\n /* Setext is checked BEFORE the thematic-break rule that would otherwise\n claim `---`: an underline under an open paragraph is a heading, and only\n the paragraph above it can decide that. */\n const setext = RE_SETEXT.exec(line.text);\n if (setext) {\n mark(ctx, line.start, lineEnd(line), \"marker\");\n const level = setext[1][0] === \"=\" ? 1 : 2;\n frame(ctx, { kind: \"heading\", level }, lines[i].start);\n const children = inlineOf(pieces, ctx, ambient === \"text\" ? \"heading\" : ambient);\n endBlock(ctx, lineEnd(line));\n return { node: { kind: \"heading\", level, id: headingId(ctx, children), children }, next: j + 1 };\n }\n\n if (startsBlock(line.text) || isTableStart(lines, j)) break;\n pieces.push(line);\n j++;\n }\n\n /* Opened here, not by `parseBlocks`, because whether this is a paragraph or a\n setext heading is not decided until the terminating line has been read —\n and the underline is not one of the pieces, so a frame measured from the\n content alone would stop one line short of the source it owns. */\n frame(ctx, { kind: \"paragraph\" }, lines[i].start);\n const node: MdNode = { kind: \"paragraph\", children: inlineOf(pieces, ctx, ambient) };\n endBlock(ctx, spanOf(lines, i, j - 1).end);\n return { node, next: j };\n}\n\nfunction inlineOf(pieces: Line[], ctx: Ctx, ambient: TokenType): MdInline[] {\n return inlineFrame(ctx, pieces, makeSegments(pieces), ambient);\n}\n"],"names":["MAX_BLOCK_DEPTH","RE_FENCE","RE_ATX","RE_RULE","RE_QUOTE","RE_BULLET","RE_ORDERED","RE_SETEXT","RE_FOOTDEF","RE_LINKDEF","RE_TASK","RE_DELIM_ROW","RE_FRONT","parseMarkdown","source","parseDocument","sink","lines","toLines","ctx","collectRefs","nodes","start","front","readFrontMatter","parseBlocks","slug","text","nl","raw","isBlank","line","indentOf","n","ch","stripIndent","taken","i","mark","end","type","frame","f","content","endFrame","endBlock","at","spanOf","from","to","lineEnd","inlineFrame","pieces","seg","ambient","empty","parseInline","ranges","piece","children","tail","refs","fence","canStart","fenceMatch","def","key","normalizeRef","cleanDest","dest","open","close","language","body","bodyFrom","bodyTo","l","depth","readFence","atx","readAtx","quote","readQuote","footMatch","foot","readFootnoteDef","markLinkDef","isTableStart","table","readTable","first","ordered","listFrame","list","readList","code","readIndentedCode","para","readParagraph","startsBlock","m","indent","fenceStart","info","fenceChar","closer","j","level","hashStart","closing","segmentOf","headingId","base","plainText","seen","frameToFill","firstOrdered","firstBullet","delimiter","items","loose","markerText","markerStart","itemFrame","itemStart","afterMarker","rest","spaces","contentIndent","blanks","next","blank","more","checked","task","title","head","rule","splitRow","cells","pipes","trimPiece","lead","last","align","alignOf","headRow","pipe","readRow","terminatorAfter","ruleEnd","rows","row","header","out","gutter","c","toCell","cell","left","right","setext","inlineOf","node","makeSegments"],"mappings":"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"}
|