@50arms/ui 0.0.0-stage → 35.1.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 +167 -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 +331 -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 +20 -0
- package/dist/types/components/rbac/ApiKeysPanel.d.ts +26 -0
- package/dist/types/components/rbac/ApiKeysTable.d.ts +63 -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 +633 -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,28 @@
|
|
|
1
|
+
function i(n, e) {
|
|
2
|
+
return e.every((t) => n.built[t] === !0);
|
|
3
|
+
}
|
|
4
|
+
function u(n, e) {
|
|
5
|
+
return e.every((t) => n.built[t] !== !0);
|
|
6
|
+
}
|
|
7
|
+
function s(n, e) {
|
|
8
|
+
const t = n.filter((r) => r.status !== "rejected");
|
|
9
|
+
return t.length === 0 ? "unresolved" : t.every((r) => r.status === "verified" && i(r, e)) ? "shipped" : t.every((r) => r.status === "pending" && u(r, e)) ? "planned" : "in-progress";
|
|
10
|
+
}
|
|
11
|
+
function l(n) {
|
|
12
|
+
return [...n].sort((e, t) => e.order - t.order).map((e) => e.id);
|
|
13
|
+
}
|
|
14
|
+
function o(n, e) {
|
|
15
|
+
const t = n.filter((r) => r.status !== "rejected");
|
|
16
|
+
return {
|
|
17
|
+
built: t.filter((r) => r.built[e] === !0).length,
|
|
18
|
+
live: t.length
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
s as deriveRoadmapItemStatus,
|
|
23
|
+
i as isFullyBuilt,
|
|
24
|
+
u as isUnbuilt,
|
|
25
|
+
l as trackIds,
|
|
26
|
+
o as trackProgress
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=derive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derive.js","sources":["../../../src/components/roadmap/derive.ts"],"sourcesContent":["import type { RoadmapItemStatus, Track, UseCase } from \"./types\";\n\n/** Built on every track in `trackIds`. An absent key is not built. */\nexport function isFullyBuilt(useCase: UseCase, trackIds: readonly string[]): boolean {\n return trackIds.every((id) => useCase.built[id] === true);\n}\n\n/** Built on none of them. */\nexport function isUnbuilt(useCase: UseCase, trackIds: readonly string[]): boolean {\n return trackIds.every((id) => useCase.built[id] !== true);\n}\n\n/**\n * A RoadmapItem's status is derived from its own UseCases, never hand-set —\n * the same reasoning as any parent whose state depends on its children:\n * hand-set it and it silently drifts the moment a child changes underneath it.\n *\n * Rejected cases fall out of the rollup entirely — dead weight, not a blocker.\n * A goal left with no live cases (everything rejected) is \"unresolved\" rather\n * than defaulting to \"planned\", which would misreport a goal that needs a\n * human decision as one that simply hasn't started.\n *\n * SHIPPED REQUIRES EVERY TRACK, and that is the point of tracks existing. A\n * team building its interface ahead of its backend would otherwise roll up to\n * \"shipped\" on a screen with nothing behind it — the ledger's single most\n * damaging possible lie, because \"shipped\" is exactly the word people stop\n * checking.\n *\n * `trackIds` is required rather than defaulted. There is no sensible default:\n * an empty list would make `every` vacuously true and quietly restore the old\n * one-bit behaviour under a new name, which is worse than an argument.\n */\nexport function deriveRoadmapItemStatus(\n useCases: UseCase[],\n trackIds: readonly string[],\n): RoadmapItemStatus {\n const live = useCases.filter((uc) => uc.status !== \"rejected\");\n\n if (live.length === 0) return \"unresolved\";\n if (live.every((uc) => uc.status === \"verified\" && isFullyBuilt(uc, trackIds))) return \"shipped\";\n if (live.every((uc) => uc.status === \"pending\" && isUnbuilt(uc, trackIds))) return \"planned\";\n return \"in-progress\";\n}\n\n/** `Track.id`s in display order — what every rollup above wants. */\nexport function trackIds(tracks: readonly Track[]): string[] {\n return [...tracks].sort((a, b) => a.order - b.order).map((track) => track.id);\n}\n\n/**\n * How far a set of use cases has got along ONE track: `{ built, live }`.\n *\n * Counted over live cases only, for the same reason the rollup ignores them:\n * a rejected case can never be built, so including it would cap every\n * progress reading below 100% forever.\n */\nexport function trackProgress(\n useCases: UseCase[],\n trackId: string,\n): { built: number; live: number } {\n const live = useCases.filter((uc) => uc.status !== \"rejected\");\n return {\n built: live.filter((uc) => uc.built[trackId] === true).length,\n live: live.length,\n };\n}\n"],"names":["isFullyBuilt","useCase","trackIds","id","isUnbuilt","deriveRoadmapItemStatus","useCases","live","uc","tracks","a","b","track","trackProgress","trackId"],"mappings":"AAGO,SAASA,EAAaC,GAAkBC,GAAsC;AACnF,SAAOA,EAAS,MAAM,CAACC,MAAOF,EAAQ,MAAME,CAAE,MAAM,EAAI;AAC1D;AAGO,SAASC,EAAUH,GAAkBC,GAAsC;AAChF,SAAOA,EAAS,MAAM,CAACC,MAAOF,EAAQ,MAAME,CAAE,MAAM,EAAI;AAC1D;AAsBO,SAASE,EACdC,GACAJ,GACmB;AACnB,QAAMK,IAAOD,EAAS,OAAO,CAACE,MAAOA,EAAG,WAAW,UAAU;AAE7D,SAAID,EAAK,WAAW,IAAU,eAC1BA,EAAK,MAAM,CAACC,MAAOA,EAAG,WAAW,cAAcR,EAAaQ,GAAIN,CAAQ,CAAC,IAAU,YACnFK,EAAK,MAAM,CAACC,MAAOA,EAAG,WAAW,aAAaJ,EAAUI,GAAIN,CAAQ,CAAC,IAAU,YAC5E;AACT;AAGO,SAASA,EAASO,GAAoC;AAC3D,SAAO,CAAC,GAAGA,CAAM,EAAE,KAAK,CAACC,GAAGC,MAAMD,EAAE,QAAQC,EAAE,KAAK,EAAE,IAAI,CAACC,MAAUA,EAAM,EAAE;AAC9E;AASO,SAASC,EACdP,GACAQ,GACiC;AACjC,QAAMP,IAAOD,EAAS,OAAO,CAACE,MAAOA,EAAG,WAAW,UAAU;AAC7D,SAAO;AAAA,IACL,OAAOD,EAAK,OAAO,CAACC,MAAOA,EAAG,MAAMM,CAAO,MAAM,EAAI,EAAE;AAAA,IACvD,MAAMP,EAAK;AAAA,EAAA;AAEf;"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { jsxs as i, Fragment as $, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { useId as X, useState as Y, useEffect as q, useRef as Z } from "react";
|
|
3
|
+
import { Badge as A } from "../Badge.js";
|
|
4
|
+
import { Button as F } from "../Button.js";
|
|
5
|
+
import { Icon as u } from "../Icon.js";
|
|
6
|
+
import { cn as o } from "../../lib/cn.js";
|
|
7
|
+
import { useBelow as C } from "../../lib/use-media-query.js";
|
|
8
|
+
import { assertSteps as ee, stepperProgress as te, advanceBlockReason as re, stepStatus as se } from "./derive.js";
|
|
9
|
+
import { useUiStrings as ie } from "../../lib/i18n/provider.js";
|
|
10
|
+
import { useNumberFormat as ae } from "../../lib/i18n/number-format.js";
|
|
11
|
+
const oe = {
|
|
12
|
+
complete: {
|
|
13
|
+
icon: "circle-check",
|
|
14
|
+
marker: "border-success-border bg-success-subtle text-success-text",
|
|
15
|
+
label: "text-primary"
|
|
16
|
+
},
|
|
17
|
+
/* WARNING, NOT DANGER. A blocked step is not wrong — it is the thing you are
|
|
18
|
+
standing on, with something still to do, and its reason is always printed
|
|
19
|
+
beside the forward control. It does not need to shout. */
|
|
20
|
+
/* DX-4973: A CHECK REFUSED IT. Red like "incomplete" (both are faults) but a different glyph (an exclamation in a ring, not a cross),
|
|
21
|
+
because the fault is different: this one was tried and the answer is printed under the label in the same red. */
|
|
22
|
+
failed: {
|
|
23
|
+
icon: "circle-alert",
|
|
24
|
+
marker: "border-danger-border bg-danger-subtle text-danger-text",
|
|
25
|
+
label: "text-primary"
|
|
26
|
+
},
|
|
27
|
+
blocked: {
|
|
28
|
+
icon: "triangle-alert",
|
|
29
|
+
marker: "border-warning-border bg-warning-subtle text-warning-text",
|
|
30
|
+
label: "text-primary"
|
|
31
|
+
},
|
|
32
|
+
current: {
|
|
33
|
+
icon: null,
|
|
34
|
+
marker: "border-accent-border bg-accent text-accent-contrast",
|
|
35
|
+
label: "text-primary"
|
|
36
|
+
},
|
|
37
|
+
/* DANGER IS SPENT HERE, DELIBERATELY, AND ONLY HERE. A step behind the cursor
|
|
38
|
+
that was never finished is the single genuine fault a rail can show;
|
|
39
|
+
everything ahead is merely not done yet, which is not a fault. Spending
|
|
40
|
+
`danger` on "not reached" would leave nothing to mark the one thing that
|
|
41
|
+
actually went wrong. */
|
|
42
|
+
incomplete: {
|
|
43
|
+
icon: "circle-x",
|
|
44
|
+
marker: "border-danger-border bg-danger-subtle text-danger-text",
|
|
45
|
+
label: "text-primary"
|
|
46
|
+
},
|
|
47
|
+
/* DX-4963: LEFT ON PURPOSE, SO NEITHER A TICK NOR A FAULT. Green would say it was done and red would say it went wrong;
|
|
48
|
+
it was neither. A grey ring with a dash is its own shape (not the tick, the cross, the plain number or the
|
|
49
|
+
warning triangle) and has its own spoken word, so it is told apart without hue. */
|
|
50
|
+
/* DX-4968: DONE BUT UNPROVEN. Same neutral grey as "skipped" (green is reserved for a tested result), but a ringed dot, not a
|
|
51
|
+
dash, and the caller's own words are printed under the label and spoken. */
|
|
52
|
+
unverified: {
|
|
53
|
+
icon: "circle-dot",
|
|
54
|
+
marker: "border-border-strong bg-surface-sunken text-secondary",
|
|
55
|
+
label: "text-primary"
|
|
56
|
+
},
|
|
57
|
+
skipped: {
|
|
58
|
+
icon: "circle-minus",
|
|
59
|
+
marker: "border-border-strong bg-surface-sunken text-secondary",
|
|
60
|
+
label: "text-secondary"
|
|
61
|
+
},
|
|
62
|
+
upcoming: {
|
|
63
|
+
icon: null,
|
|
64
|
+
marker: "border-border bg-surface text-tertiary",
|
|
65
|
+
label: "text-tertiary"
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
function ge({
|
|
69
|
+
label: H,
|
|
70
|
+
steps: n,
|
|
71
|
+
current: r,
|
|
72
|
+
onCurrentChange: m,
|
|
73
|
+
showControls: M = !0,
|
|
74
|
+
onFinish: y,
|
|
75
|
+
backLabel: P,
|
|
76
|
+
nextLabel: _,
|
|
77
|
+
finishLabel: D,
|
|
78
|
+
orientation: N = "horizontal",
|
|
79
|
+
compact: S = !1,
|
|
80
|
+
emphasizeCurrent: z = !1,
|
|
81
|
+
children: I,
|
|
82
|
+
className: G
|
|
83
|
+
}) {
|
|
84
|
+
const s = ie().stepper, b = ae();
|
|
85
|
+
ee(n, r);
|
|
86
|
+
const l = te(n, r), x = re(n, r), g = r === n.length - 1, R = X(), B = `stepper-blocked-${R}`, k = N === "side", J = C(k ? "lg" : "sm"), h = S === !0 || S === "auto" && J, d = N !== "horizontal" || h, [p, T] = Y(!1), L = `stepper-list-${R}`;
|
|
87
|
+
q(() => {
|
|
88
|
+
T(!1);
|
|
89
|
+
}, [r]);
|
|
90
|
+
const O = Z(null);
|
|
91
|
+
q(() => {
|
|
92
|
+
if (d) return;
|
|
93
|
+
const t = O.current?.querySelector('[aria-current="step"]');
|
|
94
|
+
t instanceof HTMLElement && typeof t.scrollIntoView == "function" && t.scrollIntoView({ block: "nearest", inline: "nearest" });
|
|
95
|
+
}, [r, d, p, h]);
|
|
96
|
+
const j = s.stepOf(b(l.position), b(l.total)), K = !h || p, Q = /* @__PURE__ */ i($, { children: [
|
|
97
|
+
l.skipped > 0 && /* THE DISAGREEMENT, STATED. This is the chip a progress bar would
|
|
98
|
+
have swallowed: the cursor is at step 4 and only two of the three
|
|
99
|
+
behind it are finished. */
|
|
100
|
+
/* @__PURE__ */ e(A, { size: "sm", tone: "danger", dot: !0, children: s.missed(l.skipped, b(l.skipped)) }),
|
|
101
|
+
l.acknowledged > 0 && /* @__PURE__ */ e(A, { size: "sm", tone: "muted", dot: !0, children: s.skipped(l.acknowledged, b(l.acknowledged)) })
|
|
102
|
+
] });
|
|
103
|
+
return /* @__PURE__ */ i(
|
|
104
|
+
"div",
|
|
105
|
+
{
|
|
106
|
+
className: o(
|
|
107
|
+
"flex min-w-0 flex-col gap-6",
|
|
108
|
+
k && "lg:grid lg:grid-cols-[17rem_minmax(0,1fr)] lg:items-start lg:gap-x-10",
|
|
109
|
+
G
|
|
110
|
+
),
|
|
111
|
+
children: [
|
|
112
|
+
/* @__PURE__ */ i("div", { className: o("flex min-w-0 flex-col gap-6", k && "lg:sticky lg:top-0"), children: [
|
|
113
|
+
/* @__PURE__ */ i("div", { className: "flex flex-wrap items-center gap-3", children: [
|
|
114
|
+
h ? /* @__PURE__ */ i(
|
|
115
|
+
"button",
|
|
116
|
+
{
|
|
117
|
+
type: "button",
|
|
118
|
+
"aria-expanded": p,
|
|
119
|
+
"aria-controls": L,
|
|
120
|
+
onClick: () => T((t) => !t),
|
|
121
|
+
"data-testid": "stepper-compact-toggle",
|
|
122
|
+
className: "dx-tap -mx-1 flex min-w-0 cursor-pointer items-center gap-2 rounded-lg px-1 py-1 text-left outline-none hover:bg-surface-hover focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent-border",
|
|
123
|
+
children: [
|
|
124
|
+
/* @__PURE__ */ e("span", { className: "min-w-0 text-sm font-semibold text-primary", children: s.compactSummary(j, n[r].label) }),
|
|
125
|
+
/* @__PURE__ */ e("span", { className: "sr-only", children: p ? s.hideSteps : s.showSteps }),
|
|
126
|
+
/* @__PURE__ */ e(u, { name: p ? "chevron-up" : "chevron-down", size: "sm", className: "shrink-0 text-tertiary" })
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
) : /* @__PURE__ */ e("p", { className: "text-2xs font-semibold tracking-widest text-tertiary uppercase", children: j }),
|
|
130
|
+
Q
|
|
131
|
+
] }),
|
|
132
|
+
K && /* @__PURE__ */ e(
|
|
133
|
+
"ol",
|
|
134
|
+
{
|
|
135
|
+
ref: O,
|
|
136
|
+
id: L,
|
|
137
|
+
"aria-label": H,
|
|
138
|
+
className: o(
|
|
139
|
+
"flex min-w-0",
|
|
140
|
+
/* `relative` pairs with `overflow-x-auto`: each step's status carries
|
|
141
|
+
an `sr-only` span, which is `position: absolute`, and an
|
|
142
|
+
unpositioned scroller is not in its containing-block chain — so
|
|
143
|
+
the strip would not clip it and its width would reach the
|
|
144
|
+
document. See `scripts/probe-containment.mjs`. */
|
|
145
|
+
d ? "flex-col gap-1" : o("relative flex-row gap-3 overflow-x-auto pb-1", z ? "items-center" : "items-start")
|
|
146
|
+
),
|
|
147
|
+
children: n.map((t, c) => {
|
|
148
|
+
const f = se(n, r, c), v = oe[f], W = m !== void 0 && c < r, a = z ? c === r ? "active" : "inactive" : void 0, w = a === "active", E = /* @__PURE__ */ e(
|
|
149
|
+
"span",
|
|
150
|
+
{
|
|
151
|
+
"aria-hidden": "true",
|
|
152
|
+
className: o(
|
|
153
|
+
"grid shrink-0 place-items-center rounded-full border",
|
|
154
|
+
a === void 0 ? "size-7" : w ? "size-9" : "size-5",
|
|
155
|
+
w ? "text-xs" : "text-2xs",
|
|
156
|
+
"font-mono tabular-nums",
|
|
157
|
+
"transition-[color,background-color,border-color,width,height] duration-(--dur-base) ease-hover",
|
|
158
|
+
v.marker
|
|
159
|
+
),
|
|
160
|
+
children: v.icon === null ? c + 1 : /* @__PURE__ */ e(u, { name: v.icon, size: "xs" })
|
|
161
|
+
}
|
|
162
|
+
), U = /* @__PURE__ */ i($, { children: [
|
|
163
|
+
a === void 0 ? E : /* @__PURE__ */ e("span", { className: "grid w-9 shrink-0 place-items-center", children: E }),
|
|
164
|
+
/* @__PURE__ */ i("span", { className: "flex min-w-0 flex-col gap-0.5 text-left", children: [
|
|
165
|
+
/* @__PURE__ */ e(
|
|
166
|
+
"span",
|
|
167
|
+
{
|
|
168
|
+
className: o(
|
|
169
|
+
/* DX-4963: a label WRAPS, never "Bot u..." - nine steps in a strip cannot each be one line. */
|
|
170
|
+
"font-medium break-words",
|
|
171
|
+
a === void 0 ? "text-sm" : w ? "text-base font-semibold" : "text-xs",
|
|
172
|
+
"transition-colors duration-(--dur-fast) ease-hover",
|
|
173
|
+
v.label
|
|
174
|
+
),
|
|
175
|
+
children: t.label
|
|
176
|
+
}
|
|
177
|
+
),
|
|
178
|
+
t.hint && /* @__PURE__ */ e("span", { className: "text-xs break-words text-tertiary", children: t.hint }),
|
|
179
|
+
t.failed !== void 0 && /* @__PURE__ */ e("span", { className: "text-xs font-medium break-words text-danger-text", children: t.failed }),
|
|
180
|
+
t.unverified !== void 0 && /* @__PURE__ */ e("span", { className: "text-xs break-words text-secondary", children: t.unverified })
|
|
181
|
+
] }),
|
|
182
|
+
/* @__PURE__ */ e("span", { className: "sr-only", children: s.statusSuffix(f === "unverified" ? t.unverified : f === "failed" ? t.failed : s.status[f]) })
|
|
183
|
+
] }), V = o(
|
|
184
|
+
"flex min-w-0 gap-3 rounded-lg px-1 py-1",
|
|
185
|
+
a === void 0 ? "items-start" : "items-center",
|
|
186
|
+
!d && "min-w-32"
|
|
187
|
+
);
|
|
188
|
+
return /* @__PURE__ */ i(
|
|
189
|
+
"li",
|
|
190
|
+
{
|
|
191
|
+
"data-status": f,
|
|
192
|
+
"data-emphasis": a,
|
|
193
|
+
"aria-current": c === r ? "step" : void 0,
|
|
194
|
+
className: o(
|
|
195
|
+
"flex min-w-0 gap-3",
|
|
196
|
+
a === void 0 ? "items-start" : "items-center",
|
|
197
|
+
!d && "flex-1",
|
|
198
|
+
a !== void 0 && "transition-[opacity,color,background-color,border-color] duration-(--dur-base) ease-hover",
|
|
199
|
+
a === "inactive" && "opacity-60"
|
|
200
|
+
),
|
|
201
|
+
children: [
|
|
202
|
+
W ? /* @__PURE__ */ e(
|
|
203
|
+
"button",
|
|
204
|
+
{
|
|
205
|
+
type: "button",
|
|
206
|
+
onClick: () => m(c),
|
|
207
|
+
className: o(
|
|
208
|
+
V,
|
|
209
|
+
"dx-tap cursor-pointer text-left outline-none",
|
|
210
|
+
"transition-colors duration-(--dur-fast) ease-hover",
|
|
211
|
+
"hover:bg-surface-hover",
|
|
212
|
+
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent-border"
|
|
213
|
+
),
|
|
214
|
+
children: U
|
|
215
|
+
}
|
|
216
|
+
) : /* @__PURE__ */ e("span", { className: V, children: U }),
|
|
217
|
+
!d && c < n.length - 1 && /* @__PURE__ */ e(
|
|
218
|
+
"span",
|
|
219
|
+
{
|
|
220
|
+
"aria-hidden": "true",
|
|
221
|
+
className: o("h-px min-w-4 flex-1 bg-border-subtle", a === void 0 && "mt-4")
|
|
222
|
+
}
|
|
223
|
+
)
|
|
224
|
+
]
|
|
225
|
+
},
|
|
226
|
+
t.id
|
|
227
|
+
);
|
|
228
|
+
})
|
|
229
|
+
}
|
|
230
|
+
)
|
|
231
|
+
] }),
|
|
232
|
+
/* @__PURE__ */ i("div", { className: "flex min-w-0 flex-col gap-6", children: [
|
|
233
|
+
I !== void 0 && /* @__PURE__ */ e("div", { className: "min-w-0", children: I }),
|
|
234
|
+
m !== void 0 && M && /* @__PURE__ */ i("div", { className: "flex flex-wrap items-center gap-3", children: [
|
|
235
|
+
r > 0 && /* @__PURE__ */ e(
|
|
236
|
+
F,
|
|
237
|
+
{
|
|
238
|
+
variant: "outline",
|
|
239
|
+
onClick: () => m(r - 1),
|
|
240
|
+
leadingIcon: /* @__PURE__ */ e(u, { name: "arrow-left", size: "sm" }),
|
|
241
|
+
children: P ?? s.back
|
|
242
|
+
}
|
|
243
|
+
),
|
|
244
|
+
(!g || y !== void 0) && /* @__PURE__ */ e(
|
|
245
|
+
F,
|
|
246
|
+
{
|
|
247
|
+
disabled: x !== null,
|
|
248
|
+
"aria-describedby": x !== null ? B : void 0,
|
|
249
|
+
onClick: () => {
|
|
250
|
+
g ? y?.() : m(r + 1);
|
|
251
|
+
},
|
|
252
|
+
trailingIcon: g ? void 0 : /* @__PURE__ */ e(u, { name: "arrow-right", size: "sm" }),
|
|
253
|
+
children: g ? D ?? s.finish : _ ?? s.next
|
|
254
|
+
}
|
|
255
|
+
),
|
|
256
|
+
x !== null && /* @__PURE__ */ i(
|
|
257
|
+
"p",
|
|
258
|
+
{
|
|
259
|
+
id: B,
|
|
260
|
+
className: "flex min-w-0 items-center gap-1.5 text-sm text-warning-text",
|
|
261
|
+
children: [
|
|
262
|
+
/* @__PURE__ */ e(u, { name: "triangle-alert", size: "sm", className: "shrink-0" }),
|
|
263
|
+
/* @__PURE__ */ e("span", { className: "min-w-0", children: x })
|
|
264
|
+
]
|
|
265
|
+
}
|
|
266
|
+
)
|
|
267
|
+
] })
|
|
268
|
+
] })
|
|
269
|
+
]
|
|
270
|
+
}
|
|
271
|
+
);
|
|
272
|
+
}
|
|
273
|
+
export {
|
|
274
|
+
ge as Stepper
|
|
275
|
+
};
|
|
276
|
+
//# sourceMappingURL=Stepper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stepper.js","sources":["../../../src/components/stepper/Stepper.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState, type ReactNode } from \"react\";\nimport { Badge } from \"../Badge\";\nimport { Button } from \"../Button\";\nimport { Icon, type IconName } from \"../Icon\";\nimport { cn } from \"../../lib/cn\";\nimport { useNumberFormat, useUiStrings } from \"../../lib/i18n\";\nimport { useBelow } from \"../../lib/use-media-query\";\nimport { advanceBlockReason, assertSteps, stepStatus, stepperProgress } from \"./derive\";\nimport type { Step, StepStatus, StepperProgress } from \"./types\";\n\nexport type { Step, StepStatus, StepperProgress };\n\n/* ============================================================================\n STEPPER — a guided sequence with a gate on the way forward.\n\n THE CONTENT IS A SLOT, NOT A PANEL PER STEP, and that is the one place this\n deliberately diverges from `Tabs`.\n\n `Tabs`/`TabPanel` declares every panel and lets the library decide which is\n visible. That is right for tabs: they are PEERS, all of them reachable at any\n moment, and declaring them all is what lets the indicator know how many there\n are. A wizard is not that. Its steps are a SEQUENCE with a gate between them,\n exactly one is live, and the panels are usually forms whose state the\n consumer owns anyway. Declaring all of them would mount every form at once —\n and `TabPanel` has already been bitten by exactly that: a panel with no exit\n transition stayed mounted, and four open tabs put four panels on screen at\n the same time. A stepper that mounted five forms to show one would be\n reintroducing that shape on purpose.\n\n So `children` is the current step's content, whatever it is, and the consumer\n switches on `current` — which it is already holding, because it is the\n consumer that decides when a step is finished.\n\n NO PERCENTAGE, ANYWHERE. A stepper has two numbers that look like one:\n WHERE THE CURSOR IS and HOW MANY STEPS ARE FINISHED. They agree until\n somebody moves past a step without finishing it, and from then on a single\n bar has to pick one and quietly claim the other — \"60%\" over a flow where\n step 2 was skipped is a component papering over the disagreement it is best\n placed to report. So the header reads a POSITION (\"Step 3 of 5\"), which is a\n fact about where you are and nothing else, and when the two numbers do\n disagree the header says so in its own chip. `stepperProgress` is exported\n for a consumer that wants a bar and can then choose which number it is\n drawing, by name.\n\n BACKWARD IS CLICKABLE; FORWARD IS NOT A CONTROL AT ALL. Returning to a step\n you have already seen is safe and is how somebody fixes an answer, so every\n step behind the cursor is a real button. Jumping AHEAD is the one movement\n the gate can refuse, and a rail that offers it makes the gate decorative —\n so an unreached step is not a disabled button, it is not a button. A\n disabled control with no explanation is the \"broken button\" reading this\n library refuses elsewhere too; the way to avoid it is to not draw one.\n ========================================================================= */\n\ninterface StatusPresentation {\n /** Null means the marker draws the step NUMBER instead of a glyph. */\n icon: IconName | null;\n marker: string;\n label: string;\n}\n\n/* The glyphs differ per state, not only the hue: a tick, a cross, a dashed\n ring and a number are four shapes. Colour is reinforcement for the people\n who can use it — see `tokens.mdx`, \"Status never depends on hue alone\". */\nconst STATUS: Record<StepStatus, StatusPresentation> = {\n complete: {\n icon: \"circle-check\",\n marker: \"border-success-border bg-success-subtle text-success-text\",\n label: \"text-primary\",\n },\n /* WARNING, NOT DANGER. A blocked step is not wrong — it is the thing you are\n standing on, with something still to do, and its reason is always printed\n beside the forward control. It does not need to shout. */\n /* DX-4973: A CHECK REFUSED IT. Red like \"incomplete\" (both are faults) but a different glyph (an exclamation in a ring, not a cross),\n because the fault is different: this one was tried and the answer is printed under the label in the same red. */\n failed: {\n icon: \"circle-alert\",\n marker: \"border-danger-border bg-danger-subtle text-danger-text\",\n label: \"text-primary\",\n },\n blocked: {\n icon: \"triangle-alert\",\n marker: \"border-warning-border bg-warning-subtle text-warning-text\",\n label: \"text-primary\",\n },\n current: {\n icon: null,\n marker: \"border-accent-border bg-accent text-accent-contrast\",\n label: \"text-primary\",\n },\n /* DANGER IS SPENT HERE, DELIBERATELY, AND ONLY HERE. A step behind the cursor\n that was never finished is the single genuine fault a rail can show;\n everything ahead is merely not done yet, which is not a fault. Spending\n `danger` on \"not reached\" would leave nothing to mark the one thing that\n actually went wrong. */\n incomplete: {\n icon: \"circle-x\",\n marker: \"border-danger-border bg-danger-subtle text-danger-text\",\n label: \"text-primary\",\n },\n /* DX-4963: LEFT ON PURPOSE, SO NEITHER A TICK NOR A FAULT. Green would say it was done and red would say it went wrong;\n it was neither. A grey ring with a dash is its own shape (not the tick, the cross, the plain number or the\n warning triangle) and has its own spoken word, so it is told apart without hue. */\n /* DX-4968: DONE BUT UNPROVEN. Same neutral grey as \"skipped\" (green is reserved for a tested result), but a ringed dot, not a\n dash, and the caller's own words are printed under the label and spoken. */\n unverified: {\n icon: \"circle-dot\",\n marker: \"border-border-strong bg-surface-sunken text-secondary\",\n label: \"text-primary\",\n },\n skipped: {\n icon: \"circle-minus\",\n marker: \"border-border-strong bg-surface-sunken text-secondary\",\n label: \"text-secondary\",\n },\n upcoming: {\n icon: null,\n marker: \"border-border bg-surface text-tertiary\",\n label: \"text-tertiary\",\n },\n};\n\nexport interface StepperProps {\n /**\n * What this flow IS — \"Case intake\", \"Deployment\".\n *\n * It names the ordered list, which is how somebody arriving at the rail\n * learns what the sequence is for. Required rather than optional for the same\n * reason `KanbanBoard.label` is: an unnamed list announces as \"list\" and\n * gives nobody a reason to be in it.\n */\n label: string;\n steps: readonly Step[];\n /** 0-based. Out of range throws — see `assertSteps`. */\n current: number;\n /**\n * Move the cursor.\n *\n * ABSENT MAKES THE WHOLE RAIL A READ-OUT: no step is clickable and no\n * forward/back control is drawn. The configuration is the switch, the same\n * way `UseCaseCard` only becomes editable when handed `onStatusChange`. A\n * consumer driving its own buttons omits this and keeps the rail.\n */\n onCurrentChange?: (index: number) => void;\n /**\n * Draw the built-in Back / Next / Finish row. Default `true`.\n *\n * `false` keeps the rail clickable (`onCurrentChange` still fires for a click\n * on an earlier step, and only for that) and draws no row, so a consumer\n * whose content owns its own forward / back movement, such as a step that\n * pages through several screens, renders its own buttons without a second\n * row of them. Without it the only way to drop the row was to drop\n * `onCurrentChange`, which also made the rail a read-out, and a rail click on\n * the adjacent earlier step is indistinguishable from the built-in Back\n * button (both call `onCurrentChange(current - 1)`).\n *\n * Nothing prints a step's `blocked` reason when the row is hidden: it is\n * rendered beside the forward control. The consumer's own forward control\n * reads it from `advanceBlockReason` and shows it.\n */\n showControls?: boolean;\n /**\n * What the last step's forward control does. Absent means no control is drawn\n * on the last step — a wizard whose final action lives in its own form.\n */\n onFinish?: () => void;\n backLabel?: string;\n nextLabel?: string;\n finishLabel?: string;\n /**\n * `vertical` stacks the rail above long-form content. `horizontal` is the\n * default because a sequence reads left to right, which is also the only\n * layout in which the connector between two steps means anything.\n *\n * DX-4963: `side` puts the rail in a column BESIDE the content from the `lg` breakpoint (1024px) up, where a long flow\n * (nine steps) reads best and every label is whole, and stacks it above the content like `vertical` below that.\n */\n orientation?: \"horizontal\" | \"vertical\" | \"side\";\n /**\n * DX-4963 - the one-line form for a narrow screen: \"Step 3 of 9: Project\" in a button that opens the full list under it (and\n * closes again when the step changes). `true` always, `\"auto\"` wherever the full rail would not fit (below the `sm` breakpoint, 640px; with\n * `orientation=\"side\"` below `lg`, 1024px, DX-4968: between the two the stacked list would push the step's own content off the first\n * screen), `false` (the default) never. Nine steps stacked is about 530px tall; this keeps the step's own content on the first screen.\n */\n compact?: boolean | \"auto\";\n /**\n * DXUI-100 - draw the step you are on as the one that matters: it is larger and fully opaque, every other step is smaller\n * and faded, and each label is centred on its marker (the default aligns a label with the top of its marker, which reads\n * wrongly beside a marker of another size). Default `false`: a stepper that does not name it is drawn as before.\n *\n * Nothing is removed from a faded step: its status glyph, hint and spoken state are all still there, only quieter.\n */\n emphasizeCurrent?: boolean;\n /** The CURRENT step's content. */\n children?: ReactNode;\n className?: string;\n}\n\nexport function Stepper({\n label,\n steps,\n current,\n onCurrentChange,\n showControls = true,\n onFinish,\n backLabel,\n nextLabel,\n finishLabel,\n orientation = \"horizontal\",\n compact = false,\n emphasizeCurrent = false,\n children,\n className,\n}: StepperProps) {\n /* Loud, and before anything renders. Every case it catches is silent\n otherwise — see the note on `assertSteps`. */\n const strings = useUiStrings().stepper;\n const fmt = useNumberFormat();\n assertSteps(steps, current);\n\n const progress = stepperProgress(steps, current);\n const blockReason = advanceBlockReason(steps, current);\n const onLastStep = current === steps.length - 1;\n const uid = useId();\n const reasonId = `stepper-blocked-${uid}`;\n const side = orientation === \"side\";\n // DX-4968: \"auto\" follows the width where THIS layout stops fitting: the side rail needs lg, the strip needs sm.\n const narrow = useBelow(side ? \"lg\" : \"sm\");\n const isCompact = compact === true || (compact === \"auto\" && narrow);\n // The list the compact form opens is always the stacked one: a strip does not fit the width compact exists for.\n const vertical = orientation !== \"horizontal\" || isCompact;\n const [listOpen, setListOpen] = useState(false);\n const listId = `stepper-list-${uid}`;\n /* The list closes once a step is chosen (or the cursor moves any other way): the compact form exists to keep the step's own content\n on the first screen, and a list left open after a choice would push it down again. */\n useEffect(() => {\n setListOpen(false);\n }, [current]);\n /* A strip that scrolls keeps the current step in view: moving on from step 6 must not leave the cursor off the right edge. */\n const railRef = useRef<HTMLOListElement>(null);\n useEffect(() => {\n if (vertical) return;\n const here = railRef.current?.querySelector('[aria-current=\"step\"]');\n if (here instanceof HTMLElement && typeof here.scrollIntoView === \"function\") {\n here.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n }\n }, [current, vertical, listOpen, isCompact]);\n const positionText = strings.stepOf(fmt(progress.position), fmt(progress.total));\n const showRail = !isCompact || listOpen;\n\n const chips = (\n <>\n {progress.skipped > 0 && (\n /* THE DISAGREEMENT, STATED. This is the chip a progress bar would\n have swallowed: the cursor is at step 4 and only two of the three\n behind it are finished. */\n <Badge size=\"sm\" tone=\"danger\" dot>\n {strings.missed(progress.skipped, fmt(progress.skipped))}\n </Badge>\n )}\n {/* DX-4963: the steps left on purpose are counted in a grey chip, never the red one - a decision is not a fault. */}\n {progress.acknowledged > 0 && (\n <Badge size=\"sm\" tone=\"muted\" dot>\n {strings.skipped(progress.acknowledged, fmt(progress.acknowledged))}\n </Badge>\n )}\n </>\n );\n\n return (\n <div\n className={cn(\n \"flex min-w-0 flex-col gap-6\",\n side && \"lg:grid lg:grid-cols-[17rem_minmax(0,1fr)] lg:items-start lg:gap-x-10\",\n className,\n )}\n >\n <div className={cn(\"flex min-w-0 flex-col gap-6\", side && \"lg:sticky lg:top-0\")}>\n <div className=\"flex flex-wrap items-center gap-3\">\n {isCompact ? (\n <button\n type=\"button\"\n aria-expanded={listOpen}\n aria-controls={listId}\n onClick={() => setListOpen((open) => !open)}\n data-testid=\"stepper-compact-toggle\"\n className=\"dx-tap -mx-1 flex min-w-0 cursor-pointer items-center gap-2 rounded-lg px-1 py-1 text-left outline-none hover:bg-surface-hover focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent-border\"\n >\n <span className=\"min-w-0 text-sm font-semibold text-primary\">\n {strings.compactSummary(positionText, steps[current]!.label)}\n </span>\n <span className=\"sr-only\">{listOpen ? strings.hideSteps : strings.showSteps}</span>\n <Icon name={listOpen ? \"chevron-up\" : \"chevron-down\"} size=\"sm\" className=\"shrink-0 text-tertiary\" />\n </button>\n ) : (\n <p className=\"text-2xs font-semibold tracking-widest text-tertiary uppercase\">{positionText}</p>\n )}\n {chips}\n </div>\n\n {showRail && (\n <ol\n ref={railRef}\n id={listId}\n aria-label={label}\n className={cn(\n \"flex min-w-0\",\n /* `relative` pairs with `overflow-x-auto`: each step's status carries\n an `sr-only` span, which is `position: absolute`, and an\n unpositioned scroller is not in its containing-block chain — so\n the strip would not clip it and its width would reach the\n document. See `scripts/probe-containment.mjs`. */\n vertical\n ? \"flex-col gap-1\"\n : cn(\"relative flex-row gap-3 overflow-x-auto pb-1\", emphasizeCurrent ? \"items-center\" : \"items-start\"),\n )}\n >\n {steps.map((step, index) => {\n const status = stepStatus(steps, current, index);\n const presentation = STATUS[status];\n /* Strictly behind. The current step is where you already are, so a\n button on it would do nothing — the dead control this component\n avoids drawing anywhere. */\n const reachable = onCurrentChange !== undefined && index < current;\n\n /* DXUI-100: with `emphasizeCurrent` the cursor's step is \"active\" and every other step is \"inactive\"; without it no step\n carries the attribute and nothing below changes. */\n // I18N-ALLOW: emphasis tokens written to the data-emphasis attribute\n const emphasis =!emphasizeCurrent ? undefined : index === current ? \"active\" : \"inactive\";\n const active = emphasis === \"active\";\n const marker = (\n <span\n aria-hidden=\"true\"\n className={cn(\n \"grid shrink-0 place-items-center rounded-full border\",\n emphasis === undefined ? \"size-7\" : active ? \"size-9\" : \"size-5\",\n active ? \"text-xs\" : \"text-2xs\",\n \"font-mono tabular-nums\",\n \"transition-[color,background-color,border-color,width,height] duration-(--dur-base) ease-hover\",\n presentation.marker,\n )}\n >\n {presentation.icon === null ? (\n index + 1\n ) : (\n <Icon name={presentation.icon} size=\"xs\" />\n )}\n </span>\n );\n const body = (\n <>\n {/* DXUI-100: markers of two sizes share one axis, so a stacked rail's markers do not zigzag down its left edge. */}\n {emphasis === undefined ? marker : <span className=\"grid w-9 shrink-0 place-items-center\">{marker}</span>}\n <span className=\"flex min-w-0 flex-col gap-0.5 text-left\">\n <span\n className={cn(\n /* DX-4963: a label WRAPS, never \"Bot u...\" - nine steps in a strip cannot each be one line. */\n \"font-medium break-words\",\n emphasis === undefined ? \"text-sm\" : active ? \"text-base font-semibold\" : \"text-xs\",\n \"transition-colors duration-(--dur-fast) ease-hover\",\n presentation.label,\n )}\n >\n {step.label}\n </span>\n {step.hint && (\n <span className=\"text-xs break-words text-tertiary\">{step.hint}</span>\n )}\n {step.failed !== undefined && (\n <span className=\"text-xs font-medium break-words text-danger-text\">{step.failed}</span>\n )}\n {step.unverified !== undefined && (\n <span className=\"text-xs break-words text-secondary\">{step.unverified}</span>\n )}\n </span>\n {/* THE STATE IS PART OF THE NAME, NOT A REPLACEMENT FOR IT.\n `aria-label` OVERRIDES a button's content, and this library\n has already shipped that mistake once: `ProvenanceDisclosure`\n announced a page of field labels and not one value. So the\n state is EXTRA text inside the control rather than an\n attribute over it — the name reads \"Evidence, skipped\", with\n the label still leading it. */}\n <span className=\"sr-only\">{strings.statusSuffix(status === \"unverified\" ? step.unverified! : status === \"failed\" ? step.failed! : strings.status[status])}</span>\n </>\n );\n\n /* DX-4963: a horizontal step keeps room for its label (about five words of a short line) so the label wraps at word breaks\n and the strip scrolls instead of squeezing it into \"Acce / ss\". */\n const shared = cn(\n \"flex min-w-0 gap-3 rounded-lg px-1 py-1\",\n emphasis === undefined ? \"items-start\" : \"items-center\",\n !vertical && \"min-w-32\",\n );\n\n return (\n <li\n key={step.id}\n data-status={status}\n data-emphasis={emphasis}\n aria-current={index === current ? \"step\" : undefined}\n /* DX-4963: a floor on a horizontal step's width, so the strip SCROLLS (it is overflow-x-auto) before a label is squeezed. */\n className={cn(\n \"flex min-w-0 gap-3\",\n emphasis === undefined ? \"items-start\" : \"items-center\",\n !vertical && \"flex-1\",\n emphasis !== undefined && \"transition-[opacity,color,background-color,border-color] duration-(--dur-base) ease-hover\",\n emphasis === \"inactive\" && \"opacity-60\",\n )}\n >\n {reachable ? (\n <button\n type=\"button\"\n onClick={() => onCurrentChange(index)}\n className={cn(\n shared,\n \"dx-tap cursor-pointer text-left outline-none\",\n \"transition-colors duration-(--dur-fast) ease-hover\",\n \"hover:bg-surface-hover\",\n \"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent-border\",\n )}\n >\n {body}\n </button>\n ) : (\n <span className={shared}>{body}</span>\n )}\n\n {!vertical && index < steps.length - 1 && (\n <span\n aria-hidden=\"true\"\n className={cn(\"h-px min-w-4 flex-1 bg-border-subtle\", emphasis === undefined && \"mt-4\")}\n />\n )}\n </li>\n );\n })}\n </ol>\n )}\n </div>\n\n <div className=\"flex min-w-0 flex-col gap-6\">\n {children !== undefined && <div className=\"min-w-0\">{children}</div>}\n\n {onCurrentChange !== undefined && showControls && (\n <div className=\"flex flex-wrap items-center gap-3\">\n {/* Not rendered at all on the first step, rather than rendered and\n disabled: there is nowhere to go back to, and a control that\n exists only to be refused reads as broken. */}\n {current > 0 && (\n <Button\n variant=\"outline\"\n onClick={() => onCurrentChange(current - 1)}\n leadingIcon={<Icon name=\"arrow-left\" size=\"sm\" />}\n >\n {backLabel ?? strings.back}\n </Button>\n )}\n\n {(!onLastStep || onFinish !== undefined) && (\n <Button\n disabled={blockReason !== null}\n /* The reason is WIRED to the control, not merely printed near\n it — otherwise the one person who cannot see the two sitting\n side by side is told the button is dimmed and never told why. */\n aria-describedby={blockReason !== null ? reasonId : undefined}\n onClick={() => {\n if (onLastStep) onFinish?.();\n else onCurrentChange(current + 1);\n }}\n trailingIcon={onLastStep ? undefined : <Icon name=\"arrow-right\" size=\"sm\" />}\n >\n {onLastStep ? (finishLabel ?? strings.finish) : (nextLabel ?? strings.next)}\n </Button>\n )}\n\n {blockReason !== null && (\n <p\n id={reasonId}\n className=\"flex min-w-0 items-center gap-1.5 text-sm text-warning-text\"\n >\n <Icon name=\"triangle-alert\" size=\"sm\" className=\"shrink-0\" />\n <span className=\"min-w-0\">{blockReason}</span>\n </p>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"names":["STATUS","Stepper","label","steps","current","onCurrentChange","showControls","onFinish","backLabel","nextLabel","finishLabel","orientation","compact","emphasizeCurrent","children","className","strings","useUiStrings","fmt","useNumberFormat","assertSteps","progress","stepperProgress","blockReason","advanceBlockReason","onLastStep","uid","useId","reasonId","side","narrow","useBelow","isCompact","vertical","listOpen","setListOpen","useState","listId","useEffect","railRef","useRef","here","positionText","showRail","chips","jsxs","Fragment","Badge","cn","open","jsx","Icon","step","index","status","stepStatus","presentation","reachable","emphasis","active","marker","body","shared","Button"],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
function r(t, o) {
|
|
2
|
+
if (t.length === 0)
|
|
3
|
+
throw new Error("Stepper: `steps` is empty — there is no flow to show.");
|
|
4
|
+
if (!Number.isInteger(o) || o < 0 || o >= t.length)
|
|
5
|
+
throw new Error(
|
|
6
|
+
`Stepper: \`current\` is ${o}, which is not a step index in a flow of ${t.length}.`
|
|
7
|
+
);
|
|
8
|
+
const e = /* @__PURE__ */ new Set();
|
|
9
|
+
for (const i of t) {
|
|
10
|
+
if (e.has(i.id))
|
|
11
|
+
throw new Error(`Stepper: two steps share the id "${i.id}".`);
|
|
12
|
+
if (e.add(i.id), i.failed === "")
|
|
13
|
+
throw new Error(
|
|
14
|
+
`Stepper: step "${i.id}" is failed with an empty reason. The reason is the step's spoken state and what is printed under it, so say what the check said ("Asana refused the token") or omit \`failed\`.`
|
|
15
|
+
);
|
|
16
|
+
if (i.unverified === "")
|
|
17
|
+
throw new Error(
|
|
18
|
+
`Stepper: step "${i.id}" is unverified with an empty label. The words are the step's spoken state and what is printed under it, so say what is true ("Saved, not tested") or omit \`unverified\`.`
|
|
19
|
+
);
|
|
20
|
+
if (i.blocked === "")
|
|
21
|
+
throw new Error(
|
|
22
|
+
`Stepper: step "${i.id}" is blocked with an empty reason. A reason nobody can read leaves a disabled control with nothing beside it — omit \`blocked\` to allow the step, or say what is missing.`
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function n(t, o, e) {
|
|
27
|
+
r(t, o);
|
|
28
|
+
const i = t[e];
|
|
29
|
+
if (i === void 0)
|
|
30
|
+
throw new Error(`Stepper: there is no step at index ${e}.`);
|
|
31
|
+
return i.failed !== void 0 ? "failed" : i.blocked !== void 0 ? "blocked" : e === o ? "current" : i.complete === !0 ? "complete" : i.unverified !== void 0 ? "unverified" : i.skipped === !0 ? "skipped" : e < o ? "incomplete" : "upcoming";
|
|
32
|
+
}
|
|
33
|
+
function d(t, o) {
|
|
34
|
+
return r(t, o), t[o].blocked ?? null;
|
|
35
|
+
}
|
|
36
|
+
function a(t, o) {
|
|
37
|
+
return r(t, o), {
|
|
38
|
+
position: o + 1,
|
|
39
|
+
total: t.length,
|
|
40
|
+
complete: t.filter((e) => e.complete === !0).length,
|
|
41
|
+
skipped: t.filter((e, i) => i < o && e.complete !== !0 && e.skipped !== !0 && e.unverified === void 0 && e.failed === void 0).length,
|
|
42
|
+
acknowledged: t.filter((e, i) => i !== o && e.complete !== !0 && e.skipped === !0 && e.unverified === void 0 && e.blocked === void 0 && e.failed === void 0).length,
|
|
43
|
+
unverified: t.filter((e, i) => i !== o && e.complete !== !0 && e.unverified !== void 0 && e.blocked === void 0 && e.failed === void 0).length,
|
|
44
|
+
failed: t.filter((e) => e.failed !== void 0).length
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
d as advanceBlockReason,
|
|
49
|
+
r as assertSteps,
|
|
50
|
+
n as stepStatus,
|
|
51
|
+
a as stepperProgress
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=derive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derive.js","sources":["../../../src/components/stepper/derive.ts"],"sourcesContent":["import type { Step, StepStatus, StepperProgress } from \"./types\";\n\n/* ----------------------------------------------------------------------------\n WHAT THE FLOW IS DOING — separated from the component that draws it.\n\n Pure on purpose, and it is the same reasoning as `kanban/resolve.ts`: the\n rail is geometry and markup, which a test environment with no layout engine\n cannot see anyway, while \"may this person move forward\" is a decision that\n can be wrong rather than merely ugly. A stepper that lets somebody past a\n gate has done the one thing a stepper exists to stop.\n -------------------------------------------------------------------------- */\n\n/**\n * Reject a flow that cannot be rendered honestly, loudly.\n *\n * Every one of these is unreachable through the component's own UI and silent\n * if allowed through: an empty rail renders as a blank strip, an out-of-range\n * cursor renders no current step at all, duplicate ids give React two elements\n * with one key (which reconciles them into each other on the next change), and\n * an empty `blocked` string disables the forward button while printing nothing\n * beside it.\n */\nexport function assertSteps(steps: readonly Step[], current: number): void {\n if (steps.length === 0) {\n throw new Error(\"Stepper: `steps` is empty — there is no flow to show.\");\n }\n if (!Number.isInteger(current) || current < 0 || current >= steps.length) {\n throw new Error(\n `Stepper: \\`current\\` is ${current}, which is not a step index in a flow of ${steps.length}.`,\n );\n }\n\n const seen = new Set<string>();\n for (const step of steps) {\n if (seen.has(step.id)) {\n throw new Error(`Stepper: two steps share the id \"${step.id}\".`);\n }\n seen.add(step.id);\n if (step.failed === \"\") {\n throw new Error(\n `Stepper: step \"${step.id}\" is failed with an empty reason. ` +\n \"The reason is the step's spoken state and what is printed under it, so say what the check said (\\\"Asana refused the token\\\") or omit `failed`.\",\n );\n }\n if (step.unverified === \"\") {\n throw new Error(\n `Stepper: step \"${step.id}\" is unverified with an empty label. ` +\n \"The words are the step's spoken state and what is printed under it, so say what is true (\\\"Saved, not tested\\\") or omit `unverified`.\",\n );\n }\n if (step.blocked === \"\") {\n throw new Error(\n `Stepper: step \"${step.id}\" is blocked with an empty reason. ` +\n `A reason nobody can read leaves a disabled control with nothing beside it — ` +\n `omit \\`blocked\\` to allow the step, or say what is missing.`,\n );\n }\n }\n}\n\n/**\n * What one step IS, given where the cursor is.\n *\n * PRECEDENCE: failed, blocked, current, complete, unverified, skipped, incomplete, upcoming. DX-4973 puts `failed` first.\n * The next rule is the interesting one. `blocked` outranks\n * everything, including `complete`, wherever the step sits. Data saying both\n * is contradictory, and when a record contradicts itself the exception is what\n * the reader needs — the same call `ProvenanceBadge` makes when it stays quiet\n * on the ordinary case and loud on every other one. An affirmative that hides\n * an obstruction is the worse of the two possible mistakes.\n *\n * Note that a `blocked` reason on a step OTHER than the current one still\n * renders as blocked but gates nothing: only the current step's reason can stop\n * forward movement (see `advanceBlockReason`). That is deliberate — a flow can\n * legitimately want to say \"and this one ahead needs a signature\" without\n * claiming that is why you are stuck right now.\n */\nexport function stepStatus(\n steps: readonly Step[],\n current: number,\n index: number,\n): StepStatus {\n assertSteps(steps, current);\n const step = steps[index];\n if (step === undefined) {\n throw new Error(`Stepper: there is no step at index ${index}.`);\n }\n\n // DX-4973: a failed check outranks even the cursor and a blocked reason; the reader must not miss it.\n if (step.failed !== undefined) return \"failed\";\n if (step.blocked !== undefined) return \"blocked\";\n if (index === current) return \"current\";\n if (step.complete === true) return \"complete\";\n // DX-4963: left on purpose reads grey and never as a fault, ahead of the cursor or behind it.\n // DX-4968: done but with nothing to test; ranks above \"skipped\" because it was done, not passed over.\n if (step.unverified !== undefined) return \"unverified\";\n if (step.skipped === true) return \"skipped\";\n if (index < current) return \"incomplete\";\n return \"upcoming\";\n}\n\n/**\n * Why forward movement is refused, or `null` when it is not.\n *\n * ONLY THE CURRENT STEP GATES. A reason on a step you are not standing on is\n * information about that step, not a claim about this one.\n *\n * `null` is the only \"not blocked\" value — an empty string is rejected at\n * `assertSteps` rather than treated as absent, so a falsy check here cannot\n * turn a reason that failed to load into permission to proceed.\n */\nexport function advanceBlockReason(steps: readonly Step[], current: number): string | null {\n assertSteps(steps, current);\n return steps[current]!.blocked ?? null;\n}\n\n/**\n * Position and completion, as two numbers that are allowed to disagree.\n *\n * This exists so a consumer that genuinely wants a bar builds it from a named\n * number instead of guessing which one a bar meant. The component itself draws\n * no percentage — see the note on `Stepper`.\n */\nexport function stepperProgress(steps: readonly Step[], current: number): StepperProgress {\n assertSteps(steps, current);\n return {\n position: current + 1,\n total: steps.length,\n complete: steps.filter((step) => step.complete === true).length,\n skipped: steps.filter((step, index) => index < current && step.complete !== true && step.skipped !== true && step.unverified === undefined && step.failed === undefined).length,\n acknowledged: steps.filter((step, index) => index !== current && step.complete !== true && step.skipped === true && step.unverified === undefined && step.blocked === undefined && step.failed === undefined).length,\n unverified: steps.filter((step, index) => index !== current && step.complete !== true && step.unverified !== undefined && step.blocked === undefined && step.failed === undefined).length,\n failed: steps.filter((step) => step.failed !== undefined).length,\n };\n}\n"],"names":["assertSteps","steps","current","seen","step","stepStatus","index","advanceBlockReason","stepperProgress"],"mappings":"AAsBO,SAASA,EAAYC,GAAwBC,GAAuB;AACzE,MAAID,EAAM,WAAW;AACnB,UAAM,IAAI,MAAM,uDAAuD;AAEzE,MAAI,CAAC,OAAO,UAAUC,CAAO,KAAKA,IAAU,KAAKA,KAAWD,EAAM;AAChE,UAAM,IAAI;AAAA,MACR,2BAA2BC,CAAO,4CAA4CD,EAAM,MAAM;AAAA,IAAA;AAI9F,QAAME,wBAAW,IAAA;AACjB,aAAWC,KAAQH,GAAO;AACxB,QAAIE,EAAK,IAAIC,EAAK,EAAE;AAClB,YAAM,IAAI,MAAM,oCAAoCA,EAAK,EAAE,IAAI;AAGjE,QADAD,EAAK,IAAIC,EAAK,EAAE,GACZA,EAAK,WAAW;AAClB,YAAM,IAAI;AAAA,QACR,kBAAkBA,EAAK,EAAE;AAAA,MAAA;AAI7B,QAAIA,EAAK,eAAe;AACtB,YAAM,IAAI;AAAA,QACR,kBAAkBA,EAAK,EAAE;AAAA,MAAA;AAI7B,QAAIA,EAAK,YAAY;AACnB,YAAM,IAAI;AAAA,QACR,kBAAkBA,EAAK,EAAE;AAAA,MAAA;AAAA,EAK/B;AACF;AAmBO,SAASC,EACdJ,GACAC,GACAI,GACY;AACZ,EAAAN,EAAYC,GAAOC,CAAO;AAC1B,QAAME,IAAOH,EAAMK,CAAK;AACxB,MAAIF,MAAS;AACX,UAAM,IAAI,MAAM,sCAAsCE,CAAK,GAAG;AAIhE,SAAIF,EAAK,WAAW,SAAkB,WAClCA,EAAK,YAAY,SAAkB,YACnCE,MAAUJ,IAAgB,YAC1BE,EAAK,aAAa,KAAa,aAG/BA,EAAK,eAAe,SAAkB,eACtCA,EAAK,YAAY,KAAa,YAC9BE,IAAQJ,IAAgB,eACrB;AACT;AAYO,SAASK,EAAmBN,GAAwBC,GAAgC;AACzF,SAAAF,EAAYC,GAAOC,CAAO,GACnBD,EAAMC,CAAO,EAAG,WAAW;AACpC;AASO,SAASM,EAAgBP,GAAwBC,GAAkC;AACxF,SAAAF,EAAYC,GAAOC,CAAO,GACnB;AAAA,IACL,UAAUA,IAAU;AAAA,IACpB,OAAOD,EAAM;AAAA,IACb,UAAUA,EAAM,OAAO,CAACG,MAASA,EAAK,aAAa,EAAI,EAAE;AAAA,IACzD,SAASH,EAAM,OAAO,CAACG,GAAME,MAAUA,IAAQJ,KAAWE,EAAK,aAAa,MAAQA,EAAK,YAAY,MAAQA,EAAK,eAAe,UAAaA,EAAK,WAAW,MAAS,EAAE;AAAA,IACzK,cAAcH,EAAM,OAAO,CAACG,GAAME,MAAUA,MAAUJ,KAAWE,EAAK,aAAa,MAAQA,EAAK,YAAY,MAAQA,EAAK,eAAe,UAAaA,EAAK,YAAY,UAAaA,EAAK,WAAW,MAAS,EAAE;AAAA,IAC9M,YAAYH,EAAM,OAAO,CAACG,GAAME,MAAUA,MAAUJ,KAAWE,EAAK,aAAa,MAAQA,EAAK,eAAe,UAAaA,EAAK,YAAY,UAAaA,EAAK,WAAW,MAAS,EAAE;AAAA,IACnL,QAAQH,EAAM,OAAO,CAACG,MAASA,EAAK,WAAW,MAAS,EAAE;AAAA,EAAA;AAE9D;"}
|