@50arms/ui 0.0.0-stage → 35.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +193 -2
- package/dist/components/Accordion.js +68 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/AgentWorkingSpinner.js +46 -0
- package/dist/components/AgentWorkingSpinner.js.map +1 -0
- package/dist/components/AppShell.js +228 -0
- package/dist/components/AppShell.js.map +1 -0
- package/dist/components/Attention.js +130 -0
- package/dist/components/Attention.js.map +1 -0
- package/dist/components/Avatar.js +99 -0
- package/dist/components/Avatar.js.map +1 -0
- package/dist/components/Badge.js +143 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Board.js +292 -0
- package/dist/components/Board.js.map +1 -0
- package/dist/components/Button.js +327 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Callout.js +106 -0
- package/dist/components/Callout.js.map +1 -0
- package/dist/components/Card.js +140 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/Choice.js +361 -0
- package/dist/components/Choice.js.map +1 -0
- package/dist/components/CodeEditor.js +384 -0
- package/dist/components/CodeEditor.js.map +1 -0
- package/dist/components/ColorPicker.js +174 -0
- package/dist/components/ColorPicker.js.map +1 -0
- package/dist/components/Combobox.js +212 -0
- package/dist/components/Combobox.js.map +1 -0
- package/dist/components/CommandPalette.js +163 -0
- package/dist/components/CommandPalette.js.map +1 -0
- package/dist/components/ConcentricRing.js +60 -0
- package/dist/components/ConcentricRing.js.map +1 -0
- package/dist/components/ConnectionCard.js +98 -0
- package/dist/components/ConnectionCard.js.map +1 -0
- package/dist/components/ContextItemRow.js +49 -0
- package/dist/components/ContextItemRow.js.map +1 -0
- package/dist/components/CopyValue.js +57 -0
- package/dist/components/CopyValue.js.map +1 -0
- package/dist/components/CountBadge.js +26 -0
- package/dist/components/CountBadge.js.map +1 -0
- package/dist/components/DateCalendar.js +156 -0
- package/dist/components/DateCalendar.js.map +1 -0
- package/dist/components/DateField.js +166 -0
- package/dist/components/DateField.js.map +1 -0
- package/dist/components/DatePicker.js +56 -0
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/components/DateTimeText.js +19 -0
- package/dist/components/DateTimeText.js.map +1 -0
- package/dist/components/DescriptionList.js +25 -0
- package/dist/components/DescriptionList.js.map +1 -0
- package/dist/components/Dialog.js +332 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/DragDrop.js +395 -0
- package/dist/components/DragDrop.js.map +1 -0
- package/dist/components/Drawer.js +100 -0
- package/dist/components/Drawer.js.map +1 -0
- package/dist/components/EditGutter.js +110 -0
- package/dist/components/EditGutter.js.map +1 -0
- package/dist/components/EmojiPicker.js +174 -0
- package/dist/components/EmojiPicker.js.map +1 -0
- package/dist/components/ErrorBoundary.js +47 -0
- package/dist/components/ErrorBoundary.js.map +1 -0
- package/dist/components/Field.js +115 -0
- package/dist/components/Field.js.map +1 -0
- package/dist/components/FileUpload.js +128 -0
- package/dist/components/FileUpload.js.map +1 -0
- package/dist/components/FilterMenu.js +256 -0
- package/dist/components/FilterMenu.js.map +1 -0
- package/dist/components/GatesSection.js +79 -0
- package/dist/components/GatesSection.js.map +1 -0
- package/dist/components/Icon.js +50 -0
- package/dist/components/Icon.js.map +1 -0
- package/dist/components/IconButton.js +59 -0
- package/dist/components/IconButton.js.map +1 -0
- package/dist/components/IconStack.js +69 -0
- package/dist/components/IconStack.js.map +1 -0
- package/dist/components/ImageUploadField.js +146 -0
- package/dist/components/ImageUploadField.js.map +1 -0
- package/dist/components/InlineEdit.js +432 -0
- package/dist/components/InlineEdit.js.map +1 -0
- package/dist/components/InlineMarkdownEdit.js +184 -0
- package/dist/components/InlineMarkdownEdit.js.map +1 -0
- package/dist/components/Input.js +156 -0
- package/dist/components/Input.js.map +1 -0
- package/dist/components/LegalDocument.js +155 -0
- package/dist/components/LegalDocument.js.map +1 -0
- package/dist/components/LineDiff.js +95 -0
- package/dist/components/LineDiff.js.map +1 -0
- package/dist/components/ListHeader.js +72 -0
- package/dist/components/ListHeader.js.map +1 -0
- package/dist/components/Loading.js +111 -0
- package/dist/components/Loading.js.map +1 -0
- package/dist/components/Markdown.js +28 -0
- package/dist/components/Markdown.js.map +1 -0
- package/dist/components/MarkdownEditor.js +467 -0
- package/dist/components/MarkdownEditor.js.map +1 -0
- package/dist/components/Menu.js +185 -0
- package/dist/components/Menu.js.map +1 -0
- package/dist/components/Navigation.js +87 -0
- package/dist/components/Navigation.js.map +1 -0
- package/dist/components/NumberInput.js +119 -0
- package/dist/components/NumberInput.js.map +1 -0
- package/dist/components/OTPInput.js +71 -0
- package/dist/components/OTPInput.js.map +1 -0
- package/dist/components/OrderedEntityManager.js +170 -0
- package/dist/components/OrderedEntityManager.js.map +1 -0
- package/dist/components/PagedWindowList.js +74 -0
- package/dist/components/PagedWindowList.js.map +1 -0
- package/dist/components/PaginationBar.js +95 -0
- package/dist/components/PaginationBar.js.map +1 -0
- package/dist/components/Panel.js +396 -0
- package/dist/components/Panel.js.map +1 -0
- package/dist/components/PasswordInput.js +32 -0
- package/dist/components/PasswordInput.js.map +1 -0
- package/dist/components/PasswordRequirements.js +25 -0
- package/dist/components/PasswordRequirements.js.map +1 -0
- package/dist/components/PatchDiff.js +96 -0
- package/dist/components/PatchDiff.js.map +1 -0
- package/dist/components/PendingVeil.js +18 -0
- package/dist/components/PendingVeil.js.map +1 -0
- package/dist/components/Popover.js +214 -0
- package/dist/components/Popover.js.map +1 -0
- package/dist/components/Progress.js +419 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/RatingScale.js +89 -0
- package/dist/components/RatingScale.js.map +1 -0
- package/dist/components/ReadMore.js +232 -0
- package/dist/components/ReadMore.js.map +1 -0
- package/dist/components/RecordCard.js +202 -0
- package/dist/components/RecordCard.js.map +1 -0
- package/dist/components/RelativeTime.js +29 -0
- package/dist/components/RelativeTime.js.map +1 -0
- package/dist/components/SandboxedFrame.js +135 -0
- package/dist/components/SandboxedFrame.js.map +1 -0
- package/dist/components/SearchInput.js +38 -0
- package/dist/components/SearchInput.js.map +1 -0
- package/dist/components/SecretField.js +228 -0
- package/dist/components/SecretField.js.map +1 -0
- package/dist/components/SectionNav.js +42 -0
- package/dist/components/SectionNav.js.map +1 -0
- package/dist/components/Select.js +172 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/SequenceDiagram.js +109 -0
- package/dist/components/SequenceDiagram.js.map +1 -0
- package/dist/components/SettingRow.js +124 -0
- package/dist/components/SettingRow.js.map +1 -0
- package/dist/components/SignOffRings.js +36 -0
- package/dist/components/SignOffRings.js.map +1 -0
- package/dist/components/Slider.js +353 -0
- package/dist/components/Slider.js.map +1 -0
- package/dist/components/SolutionChoice.js +89 -0
- package/dist/components/SolutionChoice.js.map +1 -0
- package/dist/components/SortMenu.js +75 -0
- package/dist/components/SortMenu.js.map +1 -0
- package/dist/components/Spinner.js +42 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/Stat.js +148 -0
- package/dist/components/Stat.js.map +1 -0
- package/dist/components/StatusSelect.js +119 -0
- package/dist/components/StatusSelect.js.map +1 -0
- package/dist/components/Surface.js +210 -0
- package/dist/components/Surface.js.map +1 -0
- package/dist/components/Table.js +300 -0
- package/dist/components/Table.js.map +1 -0
- package/dist/components/Tabs.js +288 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/ThemeMenu.js +198 -0
- package/dist/components/ThemeMenu.js.map +1 -0
- package/dist/components/Toast.js +217 -0
- package/dist/components/Toast.js.map +1 -0
- package/dist/components/Toggle.js +147 -0
- package/dist/components/Toggle.js.map +1 -0
- package/dist/components/ToggleMatrix.js +157 -0
- package/dist/components/ToggleMatrix.js.map +1 -0
- package/dist/components/Tree.js +125 -0
- package/dist/components/Tree.js.map +1 -0
- package/dist/components/TriStateSwitch.js +111 -0
- package/dist/components/TriStateSwitch.js.map +1 -0
- package/dist/components/VideoPlayer.js +64 -0
- package/dist/components/VideoPlayer.js.map +1 -0
- package/dist/components/auth/AcceptInvitationCard.js +110 -0
- package/dist/components/auth/AcceptInvitationCard.js.map +1 -0
- package/dist/components/auth/AuthLayout.js +18 -0
- package/dist/components/auth/AuthLayout.js.map +1 -0
- package/dist/components/auth/ForgotPasswordForm.js +44 -0
- package/dist/components/auth/ForgotPasswordForm.js.map +1 -0
- package/dist/components/auth/LoginForm.js +76 -0
- package/dist/components/auth/LoginForm.js.map +1 -0
- package/dist/components/auth/ResetPasswordForm.js +69 -0
- package/dist/components/auth/ResetPasswordForm.js.map +1 -0
- package/dist/components/auth/SignInProviders.js +45 -0
- package/dist/components/auth/SignInProviders.js.map +1 -0
- package/dist/components/auth/SignupCard.js +204 -0
- package/dist/components/auth/SignupCard.js.map +1 -0
- package/dist/components/auth/TermsAcceptance.js +43 -0
- package/dist/components/auth/TermsAcceptance.js.map +1 -0
- package/dist/components/board/context.js +32 -0
- package/dist/components/board/context.js.map +1 -0
- package/dist/components/board/recipe.js +94 -0
- package/dist/components/board/recipe.js.map +1 -0
- package/dist/components/calendar/CalendarMonth.js +299 -0
- package/dist/components/calendar/CalendarMonth.js.map +1 -0
- package/dist/components/calendar/CalendarTimeGrid.js +430 -0
- package/dist/components/calendar/CalendarTimeGrid.js.map +1 -0
- package/dist/components/calendar/EventActions.js +101 -0
- package/dist/components/calendar/EventActions.js.map +1 -0
- package/dist/components/calendar/format.js +73 -0
- package/dist/components/calendar/format.js.map +1 -0
- package/dist/components/calendar/palette.js +31 -0
- package/dist/components/calendar/palette.js.map +1 -0
- package/dist/components/calendar/use-calendar-drag.js +149 -0
- package/dist/components/calendar/use-calendar-drag.js.map +1 -0
- package/dist/components/calendar/use-event-keyboard.js +87 -0
- package/dist/components/calendar/use-event-keyboard.js.map +1 -0
- package/dist/components/calendar/use-grid-navigation.js +79 -0
- package/dist/components/calendar/use-grid-navigation.js.map +1 -0
- package/dist/components/calendar/use-now.js +27 -0
- package/dist/components/calendar/use-now.js.map +1 -0
- package/dist/components/card-face/AcRingGlyph.js +39 -0
- package/dist/components/card-face/AcRingGlyph.js.map +1 -0
- package/dist/components/card-face/BoardCardAgentSlot.js +17 -0
- package/dist/components/card-face/BoardCardAgentSlot.js.map +1 -0
- package/dist/components/card-face/CardFace.js +109 -0
- package/dist/components/card-face/CardFace.js.map +1 -0
- package/dist/components/card-face/CardTypeBadge.js +17 -0
- package/dist/components/card-face/CardTypeBadge.js.map +1 -0
- package/dist/components/card-face/EffortBadge.js +11 -0
- package/dist/components/card-face/EffortBadge.js.map +1 -0
- package/dist/components/card-face/GateRingGlyph.js +31 -0
- package/dist/components/card-face/GateRingGlyph.js.map +1 -0
- package/dist/components/card-face/OverflowRow.js +70 -0
- package/dist/components/card-face/OverflowRow.js.map +1 -0
- package/dist/components/card-face/TapTip.js +32 -0
- package/dist/components/card-face/TapTip.js.map +1 -0
- package/dist/components/card-face/hit-area.js +6 -0
- package/dist/components/card-face/hit-area.js.map +1 -0
- package/dist/components/card-face/vocabulary.js +102 -0
- package/dist/components/card-face/vocabulary.js.map +1 -0
- package/dist/components/chart/BarList.js +78 -0
- package/dist/components/chart/BarList.js.map +1 -0
- package/dist/components/chart/LineChart.js +310 -0
- package/dist/components/chart/LineChart.js.map +1 -0
- package/dist/components/chart/ShareBar.js +141 -0
- package/dist/components/chart/ShareBar.js.map +1 -0
- package/dist/components/chart/TimeSeriesChart.js +305 -0
- package/dist/components/chart/TimeSeriesChart.js.map +1 -0
- package/dist/components/chart/label-metrics.js +17 -0
- package/dist/components/chart/label-metrics.js.map +1 -0
- package/dist/components/chart/line-chart-axis.js +38 -0
- package/dist/components/chart/line-chart-axis.js.map +1 -0
- package/dist/components/chart/line-chart-scale.js +132 -0
- package/dist/components/chart/line-chart-scale.js.map +1 -0
- package/dist/components/chart/line-series-style.js +22 -0
- package/dist/components/chart/line-series-style.js.map +1 -0
- package/dist/components/chart/share-bar-labels.js +14 -0
- package/dist/components/chart/share-bar-labels.js.map +1 -0
- package/dist/components/chart/shared.js +157 -0
- package/dist/components/chart/shared.js.map +1 -0
- package/dist/components/chart/time-series-scale.js +51 -0
- package/dist/components/chart/time-series-scale.js.map +1 -0
- package/dist/components/chat/Attachment.js +316 -0
- package/dist/components/chat/Attachment.js.map +1 -0
- package/dist/components/chat/Chat.js +171 -0
- package/dist/components/chat/Chat.js.map +1 -0
- package/dist/components/chat/Composer.js +274 -0
- package/dist/components/chat/Composer.js.map +1 -0
- package/dist/components/chat/ContextMeter.js +202 -0
- package/dist/components/chat/ContextMeter.js.map +1 -0
- package/dist/components/chat/EffortControl.js +116 -0
- package/dist/components/chat/EffortControl.js.map +1 -0
- package/dist/components/chat/FileCover.js +78 -0
- package/dist/components/chat/FileCover.js.map +1 -0
- package/dist/components/chat/Message.js +356 -0
- package/dist/components/chat/Message.js.map +1 -0
- package/dist/components/chat/MessageScroller.js +104 -0
- package/dist/components/chat/MessageScroller.js.map +1 -0
- package/dist/components/chat/ModelSelector.js +156 -0
- package/dist/components/chat/ModelSelector.js.map +1 -0
- package/dist/components/chat/StreamingMarkdown.js +42 -0
- package/dist/components/chat/StreamingMarkdown.js.map +1 -0
- package/dist/components/chat/download-file.js +9 -0
- package/dist/components/chat/download-file.js.map +1 -0
- package/dist/components/chat/file-icon.js +39 -0
- package/dist/components/chat/file-icon.js.map +1 -0
- package/dist/components/checklist/StatusChecklist.js +103 -0
- package/dist/components/checklist/StatusChecklist.js.map +1 -0
- package/dist/components/checklist/tally.js +29 -0
- package/dist/components/checklist/tally.js.map +1 -0
- package/dist/components/code-editor/context.js +13 -0
- package/dist/components/code-editor/context.js.map +1 -0
- package/dist/components/code-editor/editing.js +93 -0
- package/dist/components/code-editor/editing.js.map +1 -0
- package/dist/components/code-editor/highlight.js +27 -0
- package/dist/components/code-editor/highlight.js.map +1 -0
- package/dist/components/code-editor/recipe.js +75 -0
- package/dist/components/code-editor/recipe.js.map +1 -0
- package/dist/components/date-timeline/DateTimeline.js +358 -0
- package/dist/components/date-timeline/DateTimeline.js.map +1 -0
- package/dist/components/date-timeline/TimelineRow.js +100 -0
- package/dist/components/date-timeline/TimelineRow.js.map +1 -0
- package/dist/components/date-timeline/useBarDrag.js +44 -0
- package/dist/components/date-timeline/useBarDrag.js.map +1 -0
- package/dist/components/date-timeline/useMarkerDrag.js +40 -0
- package/dist/components/date-timeline/useMarkerDrag.js.map +1 -0
- package/dist/components/date-timeline/useTimelineZoom.js +44 -0
- package/dist/components/date-timeline/useTimelineZoom.js.map +1 -0
- package/dist/components/drag-drop/context.js +37 -0
- package/dist/components/drag-drop/context.js.map +1 -0
- package/dist/components/drag-drop/recipe.js +270 -0
- package/dist/components/drag-drop/recipe.js.map +1 -0
- package/dist/components/drag-drop/shift.js +157 -0
- package/dist/components/drag-drop/shift.js.map +1 -0
- package/dist/components/edit/activation.js +10 -0
- package/dist/components/edit/activation.js.map +1 -0
- package/dist/components/edit/outcome.js +47 -0
- package/dist/components/edit/outcome.js.map +1 -0
- package/dist/components/edit/use-edit-session.js +146 -0
- package/dist/components/edit/use-edit-session.js.map +1 -0
- package/dist/components/file-viewer/FileViewer.js +97 -0
- package/dist/components/file-viewer/FileViewer.js.map +1 -0
- package/dist/components/file-viewer/PageNumberJumpField.js +47 -0
- package/dist/components/file-viewer/PageNumberJumpField.js.map +1 -0
- package/dist/components/file-viewer/ViewerControls.js +122 -0
- package/dist/components/file-viewer/ViewerControls.js.map +1 -0
- package/dist/components/file-viewer/ViewerRail.js +57 -0
- package/dist/components/file-viewer/ViewerRail.js.map +1 -0
- package/dist/components/file-viewer/ViewerStage.js +112 -0
- package/dist/components/file-viewer/ViewerStage.js.map +1 -0
- package/dist/components/file-viewer/frames.js +37 -0
- package/dist/components/file-viewer/frames.js.map +1 -0
- package/dist/components/file-viewer/use-frame-cursor.js +32 -0
- package/dist/components/file-viewer/use-frame-cursor.js.map +1 -0
- package/dist/components/file-viewer/use-viewer-keys.js +50 -0
- package/dist/components/file-viewer/use-viewer-keys.js.map +1 -0
- package/dist/components/file-viewer/use-viewer-zoom.js +68 -0
- package/dist/components/file-viewer/use-viewer-zoom.js.map +1 -0
- package/dist/components/focus-web/FocusWeb.js +322 -0
- package/dist/components/focus-web/FocusWeb.js.map +1 -0
- package/dist/components/focus-web/layout.js +34 -0
- package/dist/components/focus-web/layout.js.map +1 -0
- package/dist/components/graph-explorer/GraphExplorer.js +441 -0
- package/dist/components/graph-explorer/GraphExplorer.js.map +1 -0
- package/dist/components/graph-explorer/camera-math.js +102 -0
- package/dist/components/graph-explorer/camera-math.js.map +1 -0
- package/dist/components/graph-explorer/tree-layout.js +103 -0
- package/dist/components/graph-explorer/tree-layout.js.map +1 -0
- package/dist/components/graph-explorer/use-camera.js +82 -0
- package/dist/components/graph-explorer/use-camera.js.map +1 -0
- package/dist/components/graph-explorer/viewport-gesture.js +107 -0
- package/dist/components/graph-explorer/viewport-gesture.js.map +1 -0
- package/dist/components/kanban/KanbanBoard.js +219 -0
- package/dist/components/kanban/KanbanBoard.js.map +1 -0
- package/dist/components/kanban/recipe.js +144 -0
- package/dist/components/kanban/recipe.js.map +1 -0
- package/dist/components/markdown/Affordances.js +398 -0
- package/dist/components/markdown/Affordances.js.map +1 -0
- package/dist/components/markdown/AttachmentStrip.js +128 -0
- package/dist/components/markdown/AttachmentStrip.js.map +1 -0
- package/dist/components/markdown/ImageUpload.js +45 -0
- package/dist/components/markdown/ImageUpload.js.map +1 -0
- package/dist/components/media-error.js +7 -0
- package/dist/components/media-error.js.map +1 -0
- package/dist/components/nav-sections.js +61 -0
- package/dist/components/nav-sections.js.map +1 -0
- package/dist/components/node-canvas/NodeCanvas.js +384 -0
- package/dist/components/node-canvas/NodeCanvas.js.map +1 -0
- package/dist/components/node-canvas/layout.js +237 -0
- package/dist/components/node-canvas/layout.js.map +1 -0
- package/dist/components/node-canvas/use-canvas-gestures.js +143 -0
- package/dist/components/node-canvas/use-canvas-gestures.js.map +1 -0
- package/dist/components/openapi/OpenApiViewer.js +137 -0
- package/dist/components/openapi/OpenApiViewer.js.map +1 -0
- package/dist/components/openapi/OperationCard.js +145 -0
- package/dist/components/openapi/OperationCard.js.map +1 -0
- package/dist/components/openapi/SchemaView.js +68 -0
- package/dist/components/openapi/SchemaView.js.map +1 -0
- package/dist/components/openapi/resolve.js +102 -0
- package/dist/components/openapi/resolve.js.map +1 -0
- package/dist/components/openapi/types.js +5 -0
- package/dist/components/openapi/types.js.map +1 -0
- package/dist/components/overlay-shell.js +29 -0
- package/dist/components/overlay-shell.js.map +1 -0
- package/dist/components/overlay-stack.js +27 -0
- package/dist/components/overlay-stack.js.map +1 -0
- package/dist/components/paged-window/PageBlock.js +50 -0
- package/dist/components/paged-window/PageBlock.js.map +1 -0
- package/dist/components/provenance/ConfidenceBar.js +60 -0
- package/dist/components/provenance/ConfidenceBar.js.map +1 -0
- package/dist/components/provenance/ConfidenceMeter.js +36 -0
- package/dist/components/provenance/ConfidenceMeter.js.map +1 -0
- package/dist/components/provenance/ConfidenceReadout.js +31 -0
- package/dist/components/provenance/ConfidenceReadout.js.map +1 -0
- package/dist/components/provenance/ProvenanceBadge.js +44 -0
- package/dist/components/provenance/ProvenanceBadge.js.map +1 -0
- package/dist/components/provenance/ProvenanceDetail.js +114 -0
- package/dist/components/provenance/ProvenanceDetail.js.map +1 -0
- package/dist/components/provenance/ProvenanceDisclosure.js +111 -0
- package/dist/components/provenance/ProvenanceDisclosure.js.map +1 -0
- package/dist/components/provenance/absence.js +31 -0
- package/dist/components/provenance/absence.js.map +1 -0
- package/dist/components/provenance/types.js +30 -0
- package/dist/components/provenance/types.js.map +1 -0
- package/dist/components/rbac/AccessRequestPanel.js +153 -0
- package/dist/components/rbac/AccessRequestPanel.js.map +1 -0
- package/dist/components/rbac/AccountMenu.js +118 -0
- package/dist/components/rbac/AccountMenu.js.map +1 -0
- package/dist/components/rbac/AgentKeysList.js +20 -0
- package/dist/components/rbac/AgentKeysList.js.map +1 -0
- package/dist/components/rbac/ApiKeysPanel.js +172 -0
- package/dist/components/rbac/ApiKeysPanel.js.map +1 -0
- package/dist/components/rbac/ApiKeysTable.js +169 -0
- package/dist/components/rbac/ApiKeysTable.js.map +1 -0
- package/dist/components/rbac/Brand.js +13 -0
- package/dist/components/rbac/Brand.js.map +1 -0
- package/dist/components/rbac/Can.js +18 -0
- package/dist/components/rbac/Can.js.map +1 -0
- package/dist/components/rbac/ChangePasswordForm.js +73 -0
- package/dist/components/rbac/ChangePasswordForm.js.map +1 -0
- package/dist/components/rbac/DangerZone.js +27 -0
- package/dist/components/rbac/DangerZone.js.map +1 -0
- package/dist/components/rbac/DevToolsPopover.js +140 -0
- package/dist/components/rbac/DevToolsPopover.js.map +1 -0
- package/dist/components/rbac/EndedLine.js +24 -0
- package/dist/components/rbac/EndedLine.js.map +1 -0
- package/dist/components/rbac/InvitationsList.js +148 -0
- package/dist/components/rbac/InvitationsList.js.map +1 -0
- package/dist/components/rbac/InviteMembersDialog.js +97 -0
- package/dist/components/rbac/InviteMembersDialog.js.map +1 -0
- package/dist/components/rbac/MembersPanel.js +138 -0
- package/dist/components/rbac/MembersPanel.js.map +1 -0
- package/dist/components/rbac/PermissionRequestPanel.js +141 -0
- package/dist/components/rbac/PermissionRequestPanel.js.map +1 -0
- package/dist/components/rbac/ProfileForm.js +86 -0
- package/dist/components/rbac/ProfileForm.js.map +1 -0
- package/dist/components/rbac/ProfilePage.js +58 -0
- package/dist/components/rbac/ProfilePage.js.map +1 -0
- package/dist/components/rbac/RBACProvider.js +82 -0
- package/dist/components/rbac/RBACProvider.js.map +1 -0
- package/dist/components/rbac/RoleEditorDialog.js +90 -0
- package/dist/components/rbac/RoleEditorDialog.js.map +1 -0
- package/dist/components/rbac/RoleKeyPicker.js +77 -0
- package/dist/components/rbac/RoleKeyPicker.js.map +1 -0
- package/dist/components/rbac/RolePermissionMatrix.js +37 -0
- package/dist/components/rbac/RolePermissionMatrix.js.map +1 -0
- package/dist/components/rbac/RolesPermissionsPage.js +142 -0
- package/dist/components/rbac/RolesPermissionsPage.js.map +1 -0
- package/dist/components/rbac/SessionsList.js +146 -0
- package/dist/components/rbac/SessionsList.js.map +1 -0
- package/dist/components/rbac/TeamSettingsForm.js +69 -0
- package/dist/components/rbac/TeamSettingsForm.js.map +1 -0
- package/dist/components/rbac/TeamSwitcher.js +66 -0
- package/dist/components/rbac/TeamSwitcher.js.map +1 -0
- package/dist/components/rbac/approvalPanelParts.js +130 -0
- package/dist/components/rbac/approvalPanelParts.js.map +1 -0
- package/dist/components/rbac/permissionSections.js +8 -0
- package/dist/components/rbac/permissionSections.js.map +1 -0
- package/dist/components/rbac/stagedForm.js +42 -0
- package/dist/components/rbac/stagedForm.js.map +1 -0
- package/dist/components/rbac/useStagedImage.js +21 -0
- package/dist/components/rbac/useStagedImage.js.map +1 -0
- package/dist/components/roadmap/PhaseManager.js +48 -0
- package/dist/components/roadmap/PhaseManager.js.map +1 -0
- package/dist/components/roadmap/RoadmapItemCard.js +96 -0
- package/dist/components/roadmap/RoadmapItemCard.js.map +1 -0
- package/dist/components/roadmap/RoadmapPage.js +34 -0
- package/dist/components/roadmap/RoadmapPage.js.map +1 -0
- package/dist/components/roadmap/RoadmapSwimlaneBoard.js +91 -0
- package/dist/components/roadmap/RoadmapSwimlaneBoard.js.map +1 -0
- package/dist/components/roadmap/TrackManager.js +58 -0
- package/dist/components/roadmap/TrackManager.js.map +1 -0
- package/dist/components/roadmap/UseCaseCard.js +93 -0
- package/dist/components/roadmap/UseCaseCard.js.map +1 -0
- package/dist/components/roadmap/UseCaseLedgerPage.js +98 -0
- package/dist/components/roadmap/UseCaseLedgerPage.js.map +1 -0
- package/dist/components/roadmap/chip-tones.js +9 -0
- package/dist/components/roadmap/chip-tones.js.map +1 -0
- package/dist/components/roadmap/derive.js +28 -0
- package/dist/components/roadmap/derive.js.map +1 -0
- package/dist/components/stepper/Stepper.js +276 -0
- package/dist/components/stepper/Stepper.js.map +1 -0
- package/dist/components/stepper/derive.js +53 -0
- package/dist/components/stepper/derive.js.map +1 -0
- package/dist/confidence.css +222 -0
- package/dist/fonts/bricolage-grotesque-0.woff2 +0 -0
- package/dist/fonts/bricolage-grotesque-1.woff2 +0 -0
- package/dist/fonts/bricolage-grotesque-2.woff2 +0 -0
- package/dist/fonts/figtree-0.woff2 +0 -0
- package/dist/fonts/figtree-1.woff2 +0 -0
- package/dist/fonts/figtree-2.woff2 +0 -0
- package/dist/fonts/figtree-3.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-0.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-1.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-10.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-11.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-2.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-3.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-4.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-5.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-6.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-7.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-8.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-9.woff2 +0 -0
- package/dist/fonts.css +187 -0
- package/dist/icons/data.js +233 -0
- package/dist/icons/data.js.map +1 -0
- package/dist/index.js +942 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/attention.js +75 -0
- package/dist/lib/attention.js.map +1 -0
- package/dist/lib/board/anchor.js +14 -0
- package/dist/lib/board/anchor.js.map +1 -0
- package/dist/lib/board/model.js +41 -0
- package/dist/lib/board/model.js.map +1 -0
- package/dist/lib/board/move.js +161 -0
- package/dist/lib/board/move.js.map +1 -0
- package/dist/lib/board/position.js +11 -0
- package/dist/lib/board/position.js.map +1 -0
- package/dist/lib/board/rejection.js +22 -0
- package/dist/lib/board/rejection.js.map +1 -0
- package/dist/lib/board/use-board.js +43 -0
- package/dist/lib/board/use-board.js.map +1 -0
- package/dist/lib/calendar/band-packer.js +44 -0
- package/dist/lib/calendar/band-packer.js.map +1 -0
- package/dist/lib/calendar/drag.js +74 -0
- package/dist/lib/calendar/drag.js.map +1 -0
- package/dist/lib/calendar/lane-packer.js +67 -0
- package/dist/lib/calendar/lane-packer.js.map +1 -0
- package/dist/lib/calendar/segments.js +82 -0
- package/dist/lib/calendar/segments.js.map +1 -0
- package/dist/lib/calendar/types.js +7 -0
- package/dist/lib/calendar/types.js.map +1 -0
- package/dist/lib/chart-palette.js +27 -0
- package/dist/lib/chart-palette.js.map +1 -0
- package/dist/lib/clipboard.js +30 -0
- package/dist/lib/clipboard.js.map +1 -0
- package/dist/lib/cn.js +9 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/lib/color.js +24 -0
- package/dist/lib/color.js.map +1 -0
- package/dist/lib/component-guidance.js +297 -0
- package/dist/lib/component-guidance.js.map +1 -0
- package/dist/lib/confidence.js +22 -0
- package/dist/lib/confidence.js.map +1 -0
- package/dist/lib/date-timeline/scale.js +197 -0
- package/dist/lib/date-timeline/scale.js.map +1 -0
- package/dist/lib/design-frame/document.js +44 -0
- package/dist/lib/design-frame/document.js.map +1 -0
- package/dist/lib/design-frame/mini-app-script.js +107 -0
- package/dist/lib/design-frame/mini-app-script.js.map +1 -0
- package/dist/lib/design-frame/mini-app.js +12 -0
- package/dist/lib/design-frame/mini-app.js.map +1 -0
- package/dist/lib/design-frame/protocol.js +46 -0
- package/dist/lib/design-frame/protocol.js.map +1 -0
- package/dist/lib/dev-warn.js +17 -0
- package/dist/lib/dev-warn.js.map +1 -0
- package/dist/lib/dnd/announce.js +120 -0
- package/dist/lib/dnd/announce.js.map +1 -0
- package/dist/lib/dnd/autoscroll.js +123 -0
- package/dist/lib/dnd/autoscroll.js.map +1 -0
- package/dist/lib/dnd/cross-drop.js +11 -0
- package/dist/lib/dnd/cross-drop.js.map +1 -0
- package/dist/lib/dnd/geometry.js +99 -0
- package/dist/lib/dnd/geometry.js.map +1 -0
- package/dist/lib/dnd/sensors/gesture.js +86 -0
- package/dist/lib/dnd/sensors/gesture.js.map +1 -0
- package/dist/lib/dnd/sensors/keyboard.js +47 -0
- package/dist/lib/dnd/sensors/keyboard.js.map +1 -0
- package/dist/lib/dnd/sensors/pointer.js +32 -0
- package/dist/lib/dnd/sensors/pointer.js.map +1 -0
- package/dist/lib/dnd/session.js +256 -0
- package/dist/lib/dnd/session.js.map +1 -0
- package/dist/lib/dnd/use-drag.js +90 -0
- package/dist/lib/dnd/use-drag.js.map +1 -0
- package/dist/lib/dom/scroll-ancestor.js +18 -0
- package/dist/lib/dom/scroll-ancestor.js.map +1 -0
- package/dist/lib/format.js +23 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/group-in-order.js +13 -0
- package/dist/lib/group-in-order.js.map +1 -0
- package/dist/lib/header-fold.js +11 -0
- package/dist/lib/header-fold.js.map +1 -0
- package/dist/lib/i18n/areas/auth-provenance-flows.js +156 -0
- package/dist/lib/i18n/areas/auth-provenance-flows.js.map +1 -0
- package/dist/lib/i18n/areas/board.js +35 -0
- package/dist/lib/i18n/areas/board.js.map +1 -0
- package/dist/lib/i18n/areas/card-face.js +10 -0
- package/dist/lib/i18n/areas/card-face.js.map +1 -0
- package/dist/lib/i18n/areas/chat-chart.js +118 -0
- package/dist/lib/i18n/areas/chat-chart.js.map +1 -0
- package/dist/lib/i18n/areas/code-editor.js +24 -0
- package/dist/lib/i18n/areas/code-editor.js.map +1 -0
- package/dist/lib/i18n/areas/date-timeline.js +21 -0
- package/dist/lib/i18n/areas/date-timeline.js.map +1 -0
- package/dist/lib/i18n/areas/dates.js +71 -0
- package/dist/lib/i18n/areas/dates.js.map +1 -0
- package/dist/lib/i18n/areas/docs-views.js +183 -0
- package/dist/lib/i18n/areas/docs-views.js.map +1 -0
- package/dist/lib/i18n/areas/feedback.js +75 -0
- package/dist/lib/i18n/areas/feedback.js.map +1 -0
- package/dist/lib/i18n/areas/formats.js +24 -0
- package/dist/lib/i18n/areas/formats.js.map +1 -0
- package/dist/lib/i18n/areas/forms.js +110 -0
- package/dist/lib/i18n/areas/forms.js.map +1 -0
- package/dist/lib/i18n/areas/keys.js +25 -0
- package/dist/lib/i18n/areas/keys.js.map +1 -0
- package/dist/lib/i18n/areas/markdown.js +136 -0
- package/dist/lib/i18n/areas/markdown.js.map +1 -0
- package/dist/lib/i18n/areas/move-rejected.js +14 -0
- package/dist/lib/i18n/areas/move-rejected.js.map +1 -0
- package/dist/lib/i18n/areas/navigation.js +104 -0
- package/dist/lib/i18n/areas/navigation.js.map +1 -0
- package/dist/lib/i18n/areas/rbac.js +332 -0
- package/dist/lib/i18n/areas/rbac.js.map +1 -0
- package/dist/lib/i18n/emphasis.js +6 -0
- package/dist/lib/i18n/emphasis.js.map +1 -0
- package/dist/lib/i18n/number-format.js +9 -0
- package/dist/lib/i18n/number-format.js.map +1 -0
- package/dist/lib/i18n/plural.js +9 -0
- package/dist/lib/i18n/plural.js.map +1 -0
- package/dist/lib/i18n/provider.js +27 -0
- package/dist/lib/i18n/provider.js.map +1 -0
- package/dist/lib/i18n/strings.js +38 -0
- package/dist/lib/i18n/strings.js.map +1 -0
- package/dist/lib/icons.js +17 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/interactive-target.js +9 -0
- package/dist/lib/interactive-target.js.map +1 -0
- package/dist/lib/intl-cache.js +69 -0
- package/dist/lib/intl-cache.js.map +1 -0
- package/dist/lib/legal-document.js +37 -0
- package/dist/lib/legal-document.js.map +1 -0
- package/dist/lib/line-diff-model.js +51 -0
- package/dist/lib/line-diff-model.js.map +1 -0
- package/dist/lib/markdown/attachments.js +71 -0
- package/dist/lib/markdown/attachments.js.map +1 -0
- package/dist/lib/markdown/caret-map.js +153 -0
- package/dist/lib/markdown/caret-map.js.map +1 -0
- package/dist/lib/markdown/caret.js +35 -0
- package/dist/lib/markdown/caret.js.map +1 -0
- package/dist/lib/markdown/commands.js +443 -0
- package/dist/lib/markdown/commands.js.map +1 -0
- package/dist/lib/markdown/convert.js +153 -0
- package/dist/lib/markdown/convert.js.map +1 -0
- package/dist/lib/markdown/dom.js +89 -0
- package/dist/lib/markdown/dom.js.map +1 -0
- package/dist/lib/markdown/edit.js +92 -0
- package/dist/lib/markdown/edit.js.map +1 -0
- package/dist/lib/markdown/history.js +79 -0
- package/dist/lib/markdown/history.js.map +1 -0
- package/dist/lib/markdown/hotkeys.js +63 -0
- package/dist/lib/markdown/hotkeys.js.map +1 -0
- package/dist/lib/markdown/image-pipeline.js +236 -0
- package/dist/lib/markdown/image-pipeline.js.map +1 -0
- package/dist/lib/markdown/images.js +85 -0
- package/dist/lib/markdown/images.js.map +1 -0
- package/dist/lib/markdown/input.js +210 -0
- package/dist/lib/markdown/input.js.map +1 -0
- package/dist/lib/markdown/keys.js +37 -0
- package/dist/lib/markdown/keys.js.map +1 -0
- package/dist/lib/markdown/paste.js +180 -0
- package/dist/lib/markdown/paste.js.map +1 -0
- package/dist/lib/markdown/position.js +111 -0
- package/dist/lib/markdown/position.js.map +1 -0
- package/dist/lib/markdown/project.js +108 -0
- package/dist/lib/markdown/project.js.map +1 -0
- package/dist/lib/markdown/reconcile.js +127 -0
- package/dist/lib/markdown/reconcile.js.map +1 -0
- package/dist/lib/markdown/surface.js +373 -0
- package/dist/lib/markdown/surface.js.map +1 -0
- package/dist/lib/motion.js +22 -0
- package/dist/lib/motion.js.map +1 -0
- package/dist/lib/pad.js +7 -0
- package/dist/lib/pad.js.map +1 -0
- package/dist/lib/paged-window/layout.js +15 -0
- package/dist/lib/paged-window/layout.js.map +1 -0
- package/dist/lib/paged-window/list-owner.js +21 -0
- package/dist/lib/paged-window/list-owner.js.map +1 -0
- package/dist/lib/paged-window/records-binding.js +239 -0
- package/dist/lib/paged-window/records-binding.js.map +1 -0
- package/dist/lib/paged-window/store.js +562 -0
- package/dist/lib/paged-window/store.js.map +1 -0
- package/dist/lib/paged-window/use-measured-pitch.js +38 -0
- package/dist/lib/paged-window/use-measured-pitch.js.map +1 -0
- package/dist/lib/paged-window/use-page-visibility.js +36 -0
- package/dist/lib/paged-window/use-page-visibility.js.map +1 -0
- package/dist/lib/paged-window/use-paged-window.js +43 -0
- package/dist/lib/paged-window/use-paged-window.js.map +1 -0
- package/dist/lib/paged-window/use-scroll-root.js +12 -0
- package/dist/lib/paged-window/use-scroll-root.js.map +1 -0
- package/dist/lib/persist.js +84 -0
- package/dist/lib/persist.js.map +1 -0
- package/dist/lib/preference-values.js +13 -0
- package/dist/lib/preference-values.js.map +1 -0
- package/dist/lib/preferences.js +86 -0
- package/dist/lib/preferences.js.map +1 -0
- package/dist/lib/reads/hooks.js +156 -0
- package/dist/lib/reads/hooks.js.map +1 -0
- package/dist/lib/reads/optimistic.js +169 -0
- package/dist/lib/reads/optimistic.js.map +1 -0
- package/dist/lib/reads/refetch.js +108 -0
- package/dist/lib/reads/refetch.js.map +1 -0
- package/dist/lib/reads/slots.js +215 -0
- package/dist/lib/reads/slots.js.map +1 -0
- package/dist/lib/realtime/hooks.js +40 -0
- package/dist/lib/realtime/hooks.js.map +1 -0
- package/dist/lib/realtime/provider.js +25 -0
- package/dist/lib/realtime/provider.js.map +1 -0
- package/dist/lib/realtime/registry.js +472 -0
- package/dist/lib/realtime/registry.js.map +1 -0
- package/dist/lib/records/define-record-type.js +33 -0
- package/dist/lib/records/define-record-type.js.map +1 -0
- package/dist/lib/records/hooks.js +39 -0
- package/dist/lib/records/hooks.js.map +1 -0
- package/dist/lib/records/store.js +572 -0
- package/dist/lib/records/store.js.map +1 -0
- package/dist/lib/records/wire.js +58 -0
- package/dist/lib/records/wire.js.map +1 -0
- package/dist/lib/reduced-motion-help.js +19 -0
- package/dist/lib/reduced-motion-help.js.map +1 -0
- package/dist/lib/scroll-caret.js +18 -0
- package/dist/lib/scroll-caret.js.map +1 -0
- package/dist/lib/sim/createSimStore.js +54 -0
- package/dist/lib/sim/createSimStore.js.map +1 -0
- package/dist/lib/sim/latency.js +28 -0
- package/dist/lib/sim/latency.js.map +1 -0
- package/dist/lib/sim/registry.js +13 -0
- package/dist/lib/sim/registry.js.map +1 -0
- package/dist/lib/sim/settings.js +41 -0
- package/dist/lib/sim/settings.js.map +1 -0
- package/dist/lib/submit-shortcut.js +25 -0
- package/dist/lib/submit-shortcut.js.map +1 -0
- package/dist/lib/syntax/index.js +33 -0
- package/dist/lib/syntax/index.js.map +1 -0
- package/dist/lib/syntax/languages/bash.js +77 -0
- package/dist/lib/syntax/languages/bash.js.map +1 -0
- package/dist/lib/syntax/languages/css.js +81 -0
- package/dist/lib/syntax/languages/css.js.map +1 -0
- package/dist/lib/syntax/languages/html.js +91 -0
- package/dist/lib/syntax/languages/html.js.map +1 -0
- package/dist/lib/syntax/languages/index.js +49 -0
- package/dist/lib/syntax/languages/index.js.map +1 -0
- package/dist/lib/syntax/languages/javascript.js +133 -0
- package/dist/lib/syntax/languages/javascript.js.map +1 -0
- package/dist/lib/syntax/languages/json.js +45 -0
- package/dist/lib/syntax/languages/json.js.map +1 -0
- package/dist/lib/syntax/languages/mongodb.js +24 -0
- package/dist/lib/syntax/languages/mongodb.js.map +1 -0
- package/dist/lib/syntax/languages/plain.js +10 -0
- package/dist/lib/syntax/languages/plain.js.map +1 -0
- package/dist/lib/syntax/languages/sql.js +113 -0
- package/dist/lib/syntax/languages/sql.js.map +1 -0
- package/dist/lib/syntax/languages/vue.js +31 -0
- package/dist/lib/syntax/languages/vue.js.map +1 -0
- package/dist/lib/syntax/languages/yaml.js +55 -0
- package/dist/lib/syntax/languages/yaml.js.map +1 -0
- package/dist/lib/syntax/markdown/grammar.js +52 -0
- package/dist/lib/syntax/markdown/grammar.js.map +1 -0
- package/dist/lib/syntax/markdown/inline.js +477 -0
- package/dist/lib/syntax/markdown/inline.js.map +1 -0
- package/dist/lib/syntax/markdown/parse.js +464 -0
- package/dist/lib/syntax/markdown/parse.js.map +1 -0
- package/dist/lib/syntax/markdown/refs.js +94 -0
- package/dist/lib/syntax/markdown/refs.js.map +1 -0
- package/dist/lib/syntax/markdown/render.js +230 -0
- package/dist/lib/syntax/markdown/render.js.map +1 -0
- package/dist/lib/syntax/markdown/spans.js +40 -0
- package/dist/lib/syntax/markdown/spans.js.map +1 -0
- package/dist/lib/syntax/registry.js +55 -0
- package/dist/lib/syntax/registry.js.map +1 -0
- package/dist/lib/syntax/tokenize.js +96 -0
- package/dist/lib/syntax/tokenize.js.map +1 -0
- package/dist/lib/time/instant.js +7 -0
- package/dist/lib/time/instant.js.map +1 -0
- package/dist/lib/time/plain.js +83 -0
- package/dist/lib/time/plain.js.map +1 -0
- package/dist/lib/time/relativeAge.js +20 -0
- package/dist/lib/time/relativeAge.js.map +1 -0
- package/dist/lib/time/relativeClock.js +59 -0
- package/dist/lib/time/relativeClock.js.map +1 -0
- package/dist/lib/time/types.js +23 -0
- package/dist/lib/time/types.js.map +1 -0
- package/dist/lib/time/zone.js +148 -0
- package/dist/lib/time/zone.js.map +1 -0
- package/dist/lib/use-controllable.js +16 -0
- package/dist/lib/use-controllable.js.map +1 -0
- package/dist/lib/use-fill-height.js +49 -0
- package/dist/lib/use-fill-height.js.map +1 -0
- package/dist/lib/use-hydrated.js +14 -0
- package/dist/lib/use-hydrated.js.map +1 -0
- package/dist/lib/use-media-query.js +30 -0
- package/dist/lib/use-media-query.js.map +1 -0
- package/dist/lib/use-relabel-base-ui-dismiss.js +26 -0
- package/dist/lib/use-relabel-base-ui-dismiss.js.map +1 -0
- package/dist/lib/use-release-snap-drag.js +29 -0
- package/dist/lib/use-release-snap-drag.js.map +1 -0
- package/dist/lib/use-roving-options.js +18 -0
- package/dist/lib/use-roving-options.js.map +1 -0
- package/dist/lib/values/absent.js +5 -0
- package/dist/lib/values/absent.js.map +1 -0
- package/dist/lib/values/boolean.js +13 -0
- package/dist/lib/values/boolean.js.map +1 -0
- package/dist/lib/values/currency.js +23 -0
- package/dist/lib/values/currency.js.map +1 -0
- package/dist/lib/values/date.js +35 -0
- package/dist/lib/values/date.js.map +1 -0
- package/dist/lib/values/datetime.js +54 -0
- package/dist/lib/values/datetime.js.map +1 -0
- package/dist/lib/values/locale-date.js +60 -0
- package/dist/lib/values/locale-date.js.map +1 -0
- package/dist/lib/values/number.js +16 -0
- package/dist/lib/values/number.js.map +1 -0
- package/dist/pure.js +379 -0
- package/dist/pure.js.map +1 -0
- package/dist/styles.css +190 -0
- package/dist/theme.css +360 -0
- package/dist/types/components/Accordion.d.ts +15 -0
- package/dist/types/components/AgentWorkingSpinner.d.ts +23 -0
- package/dist/types/components/AppShell.d.ts +164 -0
- package/dist/types/components/Attention.d.ts +87 -0
- package/dist/types/components/Avatar.d.ts +154 -0
- package/dist/types/components/Badge.d.ts +131 -0
- package/dist/types/components/Board.d.ts +239 -0
- package/dist/types/components/Button.d.ts +208 -0
- package/dist/types/components/Callout.d.ts +163 -0
- package/dist/types/components/Card.d.ts +219 -0
- package/dist/types/components/Choice.d.ts +127 -0
- package/dist/types/components/CodeEditor.d.ts +86 -0
- package/dist/types/components/ColorPicker.d.ts +14 -0
- package/dist/types/components/Combobox.d.ts +43 -0
- package/dist/types/components/CommandPalette.d.ts +35 -0
- package/dist/types/components/ConcentricRing.d.ts +61 -0
- package/dist/types/components/ConnectionCard.d.ts +64 -0
- package/dist/types/components/ContextItemRow.d.ts +35 -0
- package/dist/types/components/CopyValue.d.ts +14 -0
- package/dist/types/components/CountBadge.d.ts +14 -0
- package/dist/types/components/DateCalendar.d.ts +30 -0
- package/dist/types/components/DateField.d.ts +29 -0
- package/dist/types/components/DatePicker.d.ts +20 -0
- package/dist/types/components/DateTimeText.d.ts +9 -0
- package/dist/types/components/DescriptionList.d.ts +40 -0
- package/dist/types/components/Dialog.d.ts +269 -0
- package/dist/types/components/DragDrop.d.ts +196 -0
- package/dist/types/components/Drawer.d.ts +163 -0
- package/dist/types/components/EditGutter.d.ts +44 -0
- package/dist/types/components/EmojiPicker.d.ts +30 -0
- package/dist/types/components/ErrorBoundary.d.ts +43 -0
- package/dist/types/components/Field.d.ts +37 -0
- package/dist/types/components/FileUpload.d.ts +22 -0
- package/dist/types/components/FilterMenu.d.ts +120 -0
- package/dist/types/components/GatesSection.d.ts +79 -0
- package/dist/types/components/Icon.d.ts +40 -0
- package/dist/types/components/IconButton.d.ts +69 -0
- package/dist/types/components/IconStack.d.ts +28 -0
- package/dist/types/components/ImageUploadField.d.ts +38 -0
- package/dist/types/components/InlineEdit.d.ts +183 -0
- package/dist/types/components/InlineMarkdownEdit.d.ts +100 -0
- package/dist/types/components/Input.d.ts +128 -0
- package/dist/types/components/LegalDocument.d.ts +23 -0
- package/dist/types/components/LineDiff.d.ts +53 -0
- package/dist/types/components/ListHeader.d.ts +45 -0
- package/dist/types/components/Loading.d.ts +131 -0
- package/dist/types/components/Markdown.d.ts +35 -0
- package/dist/types/components/MarkdownEditor.d.ts +129 -0
- package/dist/types/components/Menu.d.ts +157 -0
- package/dist/types/components/Navigation.d.ts +67 -0
- package/dist/types/components/NumberInput.d.ts +177 -0
- package/dist/types/components/OTPInput.d.ts +13 -0
- package/dist/types/components/OrderedEntityManager.d.ts +64 -0
- package/dist/types/components/PagedWindowList.d.ts +23 -0
- package/dist/types/components/PaginationBar.d.ts +31 -0
- package/dist/types/components/Panel.d.ts +94 -0
- package/dist/types/components/PasswordInput.d.ts +7 -0
- package/dist/types/components/PasswordRequirements.d.ts +11 -0
- package/dist/types/components/PatchDiff.d.ts +38 -0
- package/dist/types/components/PendingVeil.d.ts +8 -0
- package/dist/types/components/Popover.d.ts +231 -0
- package/dist/types/components/Progress.d.ts +580 -0
- package/dist/types/components/RatingScale.d.ts +30 -0
- package/dist/types/components/ReadMore.d.ts +26 -0
- package/dist/types/components/RecordCard.d.ts +413 -0
- package/dist/types/components/RelativeTime.d.ts +17 -0
- package/dist/types/components/SandboxedFrame.d.ts +37 -0
- package/dist/types/components/SearchInput.d.ts +6 -0
- package/dist/types/components/SecretField.d.ts +90 -0
- package/dist/types/components/SectionNav.d.ts +15 -0
- package/dist/types/components/Select.d.ts +53 -0
- package/dist/types/components/SequenceDiagram.d.ts +15 -0
- package/dist/types/components/SettingRow.d.ts +144 -0
- package/dist/types/components/SignOffRings.d.ts +29 -0
- package/dist/types/components/Slider.d.ts +255 -0
- package/dist/types/components/SolutionChoice.d.ts +49 -0
- package/dist/types/components/SortMenu.d.ts +45 -0
- package/dist/types/components/Spinner.d.ts +29 -0
- package/dist/types/components/Stat.d.ts +136 -0
- package/dist/types/components/StatusSelect.d.ts +93 -0
- package/dist/types/components/Surface.d.ts +145 -0
- package/dist/types/components/Table.d.ts +164 -0
- package/dist/types/components/Tabs.d.ts +142 -0
- package/dist/types/components/ThemeMenu.d.ts +56 -0
- package/dist/types/components/Toast.d.ts +63 -0
- package/dist/types/components/Toggle.d.ts +168 -0
- package/dist/types/components/ToggleMatrix.d.ts +51 -0
- package/dist/types/components/Tree.d.ts +20 -0
- package/dist/types/components/TriStateSwitch.d.ts +63 -0
- package/dist/types/components/VideoPlayer.d.ts +26 -0
- package/dist/types/components/auth/AcceptInvitationCard.d.ts +54 -0
- package/dist/types/components/auth/AuthLayout.d.ts +12 -0
- package/dist/types/components/auth/ForgotPasswordForm.d.ts +6 -0
- package/dist/types/components/auth/LoginForm.d.ts +13 -0
- package/dist/types/components/auth/ResetPasswordForm.d.ts +9 -0
- package/dist/types/components/auth/SignInProviders.d.ts +56 -0
- package/dist/types/components/auth/SignupCard.d.ts +62 -0
- package/dist/types/components/auth/TermsAcceptance.d.ts +14 -0
- package/dist/types/components/auth/index.d.ts +8 -0
- package/dist/types/components/board/context.d.ts +65 -0
- package/dist/types/components/board/recipe.d.ts +97 -0
- package/dist/types/components/calendar/CalendarMonth.d.ts +32 -0
- package/dist/types/components/calendar/CalendarTimeGrid.d.ts +74 -0
- package/dist/types/components/calendar/EventActions.d.ts +16 -0
- package/dist/types/components/calendar/format.d.ts +42 -0
- package/dist/types/components/calendar/palette.d.ts +17 -0
- package/dist/types/components/calendar/use-calendar-drag.d.ts +53 -0
- package/dist/types/components/calendar/use-event-keyboard.d.ts +23 -0
- package/dist/types/components/calendar/use-grid-navigation.d.ts +47 -0
- package/dist/types/components/calendar/use-now.d.ts +20 -0
- package/dist/types/components/card-face/AcRingGlyph.d.ts +20 -0
- package/dist/types/components/card-face/BoardCardAgentSlot.d.ts +19 -0
- package/dist/types/components/card-face/CardFace.d.ts +106 -0
- package/dist/types/components/card-face/CardTypeBadge.d.ts +21 -0
- package/dist/types/components/card-face/EffortBadge.d.ts +9 -0
- package/dist/types/components/card-face/GateRingGlyph.d.ts +22 -0
- package/dist/types/components/card-face/OverflowRow.d.ts +40 -0
- package/dist/types/components/card-face/TapTip.d.ts +15 -0
- package/dist/types/components/card-face/hit-area.d.ts +20 -0
- package/dist/types/components/card-face/vocabulary.d.ts +83 -0
- package/dist/types/components/chart/BarList.d.ts +27 -0
- package/dist/types/components/chart/LineChart.d.ts +64 -0
- package/dist/types/components/chart/ShareBar.d.ts +26 -0
- package/dist/types/components/chart/TimeSeriesChart.d.ts +60 -0
- package/dist/types/components/chart/label-metrics.d.ts +9 -0
- package/dist/types/components/chart/line-chart-axis.d.ts +14 -0
- package/dist/types/components/chart/line-chart-scale.d.ts +55 -0
- package/dist/types/components/chart/line-series-style.d.ts +14 -0
- package/dist/types/components/chart/share-bar-labels.d.ts +17 -0
- package/dist/types/components/chart/shared.d.ts +122 -0
- package/dist/types/components/chart/time-series-scale.d.ts +29 -0
- package/dist/types/components/chat/Attachment.d.ts +125 -0
- package/dist/types/components/chat/Chat.d.ts +60 -0
- package/dist/types/components/chat/Composer.d.ts +62 -0
- package/dist/types/components/chat/ContextMeter.d.ts +45 -0
- package/dist/types/components/chat/EffortControl.d.ts +23 -0
- package/dist/types/components/chat/FileCover.d.ts +14 -0
- package/dist/types/components/chat/Message.d.ts +66 -0
- package/dist/types/components/chat/MessageScroller.d.ts +18 -0
- package/dist/types/components/chat/ModelSelector.d.ts +44 -0
- package/dist/types/components/chat/StreamingMarkdown.d.ts +11 -0
- package/dist/types/components/chat/download-file.d.ts +7 -0
- package/dist/types/components/chat/file-icon.d.ts +29 -0
- package/dist/types/components/chat/types.d.ts +165 -0
- package/dist/types/components/checklist/StatusChecklist.d.ts +37 -0
- package/dist/types/components/checklist/index.d.ts +3 -0
- package/dist/types/components/checklist/tally.d.ts +19 -0
- package/dist/types/components/checklist/types.d.ts +28 -0
- package/dist/types/components/code-editor/context.d.ts +32 -0
- package/dist/types/components/code-editor/editing.d.ts +39 -0
- package/dist/types/components/code-editor/highlight.d.ts +20 -0
- package/dist/types/components/code-editor/recipe.d.ts +109 -0
- package/dist/types/components/date-timeline/DateTimeline.d.ts +99 -0
- package/dist/types/components/date-timeline/TimelineRow.d.ts +22 -0
- package/dist/types/components/date-timeline/useBarDrag.d.ts +15 -0
- package/dist/types/components/date-timeline/useMarkerDrag.d.ts +14 -0
- package/dist/types/components/date-timeline/useTimelineZoom.d.ts +23 -0
- package/dist/types/components/drag-drop/context.d.ts +85 -0
- package/dist/types/components/drag-drop/recipe.d.ts +163 -0
- package/dist/types/components/drag-drop/shift.d.ts +153 -0
- package/dist/types/components/edit/activation.d.ts +21 -0
- package/dist/types/components/edit/outcome.d.ts +29 -0
- package/dist/types/components/edit/use-edit-session.d.ts +77 -0
- package/dist/types/components/file-viewer/FileViewer.d.ts +2 -0
- package/dist/types/components/file-viewer/PageNumberJumpField.d.ts +9 -0
- package/dist/types/components/file-viewer/ViewerControls.d.ts +20 -0
- package/dist/types/components/file-viewer/ViewerRail.d.ts +10 -0
- package/dist/types/components/file-viewer/ViewerStage.d.ts +22 -0
- package/dist/types/components/file-viewer/frames.d.ts +28 -0
- package/dist/types/components/file-viewer/index.d.ts +3 -0
- package/dist/types/components/file-viewer/types.d.ts +70 -0
- package/dist/types/components/file-viewer/use-frame-cursor.d.ts +13 -0
- package/dist/types/components/file-viewer/use-viewer-keys.d.ts +24 -0
- package/dist/types/components/file-viewer/use-viewer-zoom.d.ts +29 -0
- package/dist/types/components/focus-web/FocusWeb.d.ts +3 -0
- package/dist/types/components/focus-web/index.d.ts +4 -0
- package/dist/types/components/focus-web/layout.d.ts +55 -0
- package/dist/types/components/focus-web/types.d.ts +131 -0
- package/dist/types/components/graph-explorer/GraphExplorer.d.ts +42 -0
- package/dist/types/components/graph-explorer/camera-math.d.ts +119 -0
- package/dist/types/components/graph-explorer/index.d.ts +5 -0
- package/dist/types/components/graph-explorer/tree-layout.d.ts +67 -0
- package/dist/types/components/graph-explorer/types.d.ts +62 -0
- package/dist/types/components/graph-explorer/use-camera.d.ts +81 -0
- package/dist/types/components/graph-explorer/viewport-gesture.d.ts +32 -0
- package/dist/types/components/kanban/KanbanBoard.d.ts +72 -0
- package/dist/types/components/kanban/recipe.d.ts +73 -0
- package/dist/types/components/kanban/types.d.ts +55 -0
- package/dist/types/components/markdown/Affordances.d.ts +105 -0
- package/dist/types/components/markdown/AttachmentStrip.d.ts +25 -0
- package/dist/types/components/markdown/ImageUpload.d.ts +56 -0
- package/dist/types/components/media-error.d.ts +11 -0
- package/dist/types/components/nav-sections.d.ts +10 -0
- package/dist/types/components/node-canvas/NodeCanvas.d.ts +66 -0
- package/dist/types/components/node-canvas/index.d.ts +3 -0
- package/dist/types/components/node-canvas/layout.d.ts +29 -0
- package/dist/types/components/node-canvas/types.d.ts +207 -0
- package/dist/types/components/node-canvas/use-canvas-gestures.d.ts +39 -0
- package/dist/types/components/openapi/OpenApiViewer.d.ts +14 -0
- package/dist/types/components/openapi/OperationCard.d.ts +33 -0
- package/dist/types/components/openapi/SchemaView.d.ts +14 -0
- package/dist/types/components/openapi/index.d.ts +6 -0
- package/dist/types/components/openapi/resolve.d.ts +72 -0
- package/dist/types/components/openapi/types.d.ts +128 -0
- package/dist/types/components/overlay-shell.d.ts +48 -0
- package/dist/types/components/overlay-stack.d.ts +18 -0
- package/dist/types/components/paged-window/PageBlock.d.ts +31 -0
- package/dist/types/components/provenance/ConfidenceBar.d.ts +118 -0
- package/dist/types/components/provenance/ConfidenceMeter.d.ts +21 -0
- package/dist/types/components/provenance/ConfidenceReadout.d.ts +17 -0
- package/dist/types/components/provenance/ProvenanceBadge.d.ts +23 -0
- package/dist/types/components/provenance/ProvenanceDetail.d.ts +109 -0
- package/dist/types/components/provenance/ProvenanceDisclosure.d.ts +107 -0
- package/dist/types/components/provenance/absence.d.ts +37 -0
- package/dist/types/components/provenance/index.d.ts +7 -0
- package/dist/types/components/provenance/types.d.ts +137 -0
- package/dist/types/components/rbac/AccessRequestPanel.d.ts +92 -0
- package/dist/types/components/rbac/AccountMenu.d.ts +46 -0
- package/dist/types/components/rbac/AgentKeysList.d.ts +22 -0
- package/dist/types/components/rbac/ApiKeysPanel.d.ts +26 -0
- package/dist/types/components/rbac/ApiKeysTable.d.ts +65 -0
- package/dist/types/components/rbac/Brand.d.ts +8 -0
- package/dist/types/components/rbac/Can.d.ts +19 -0
- package/dist/types/components/rbac/ChangePasswordForm.d.ts +18 -0
- package/dist/types/components/rbac/DangerZone.d.ts +8 -0
- package/dist/types/components/rbac/DevToolsPopover.d.ts +36 -0
- package/dist/types/components/rbac/EndedLine.d.ts +21 -0
- package/dist/types/components/rbac/InvitationsList.d.ts +39 -0
- package/dist/types/components/rbac/InviteMembersDialog.d.ts +21 -0
- package/dist/types/components/rbac/MembersPanel.d.ts +31 -0
- package/dist/types/components/rbac/PermissionRequestPanel.d.ts +36 -0
- package/dist/types/components/rbac/ProfileForm.d.ts +27 -0
- package/dist/types/components/rbac/ProfilePage.d.ts +16 -0
- package/dist/types/components/rbac/RBACProvider.d.ts +69 -0
- package/dist/types/components/rbac/RoleEditorDialog.d.ts +28 -0
- package/dist/types/components/rbac/RoleKeyPicker.d.ts +24 -0
- package/dist/types/components/rbac/RolePermissionMatrix.d.ts +21 -0
- package/dist/types/components/rbac/RolesPermissionsPage.d.ts +24 -0
- package/dist/types/components/rbac/SessionsList.d.ts +35 -0
- package/dist/types/components/rbac/TeamSettingsForm.d.ts +22 -0
- package/dist/types/components/rbac/TeamSwitcher.d.ts +5 -0
- package/dist/types/components/rbac/approvalPanelParts.d.ts +69 -0
- package/dist/types/components/rbac/index.d.ts +25 -0
- package/dist/types/components/rbac/permissionSections.d.ts +8 -0
- package/dist/types/components/rbac/stagedForm.d.ts +25 -0
- package/dist/types/components/rbac/types.d.ts +65 -0
- package/dist/types/components/rbac/useStagedImage.d.ts +15 -0
- package/dist/types/components/roadmap/PhaseManager.d.ts +19 -0
- package/dist/types/components/roadmap/RoadmapItemCard.d.ts +51 -0
- package/dist/types/components/roadmap/RoadmapPage.d.ts +12 -0
- package/dist/types/components/roadmap/RoadmapSwimlaneBoard.d.ts +15 -0
- package/dist/types/components/roadmap/TrackManager.d.ts +19 -0
- package/dist/types/components/roadmap/UseCaseCard.d.ts +30 -0
- package/dist/types/components/roadmap/UseCaseLedgerPage.d.ts +29 -0
- package/dist/types/components/roadmap/chip-tones.d.ts +2 -0
- package/dist/types/components/roadmap/derive.d.ts +39 -0
- package/dist/types/components/roadmap/index.d.ts +10 -0
- package/dist/types/components/roadmap/types.d.ts +86 -0
- package/dist/types/components/stepper/Stepper.d.ts +79 -0
- package/dist/types/components/stepper/derive.d.ts +49 -0
- package/dist/types/components/stepper/index.d.ts +3 -0
- package/dist/types/components/stepper/types.d.ts +118 -0
- package/dist/types/icons/data.d.ts +2054 -0
- package/dist/types/index.d.ts +209 -0
- package/dist/types/lib/attention.d.ts +62 -0
- package/dist/types/lib/board/anchor.d.ts +69 -0
- package/dist/types/lib/board/index.d.ts +17 -0
- package/dist/types/lib/board/model.d.ts +43 -0
- package/dist/types/lib/board/move.d.ts +181 -0
- package/dist/types/lib/board/position.d.ts +22 -0
- package/dist/types/lib/board/rejection.d.ts +8 -0
- package/dist/types/lib/board/types.d.ts +294 -0
- package/dist/types/lib/board/use-board.d.ts +47 -0
- package/dist/types/lib/calendar/band-packer.d.ts +53 -0
- package/dist/types/lib/calendar/drag.d.ts +125 -0
- package/dist/types/lib/calendar/index.d.ts +4 -0
- package/dist/types/lib/calendar/lane-packer.d.ts +88 -0
- package/dist/types/lib/calendar/segments.d.ts +91 -0
- package/dist/types/lib/calendar/types.d.ts +166 -0
- package/dist/types/lib/chart-palette.d.ts +14 -0
- package/dist/types/lib/clipboard.d.ts +12 -0
- package/dist/types/lib/cn.d.ts +7 -0
- package/dist/types/lib/color.d.ts +14 -0
- package/dist/types/lib/component-guidance.d.ts +15 -0
- package/dist/types/lib/confidence.d.ts +28 -0
- package/dist/types/lib/date-timeline/scale.d.ts +143 -0
- package/dist/types/lib/design-frame/document.d.ts +39 -0
- package/dist/types/lib/design-frame/mini-app-script.d.ts +29 -0
- package/dist/types/lib/design-frame/mini-app.d.ts +17 -0
- package/dist/types/lib/design-frame/protocol.d.ts +78 -0
- package/dist/types/lib/dev-warn.d.ts +10 -0
- package/dist/types/lib/dnd/announce.d.ts +124 -0
- package/dist/types/lib/dnd/autoscroll.d.ts +88 -0
- package/dist/types/lib/dnd/cross-drop.d.ts +18 -0
- package/dist/types/lib/dnd/geometry.d.ts +126 -0
- package/dist/types/lib/dnd/index.d.ts +17 -0
- package/dist/types/lib/dnd/sensors/gesture.d.ts +37 -0
- package/dist/types/lib/dnd/sensors/keyboard.d.ts +54 -0
- package/dist/types/lib/dnd/sensors/pointer.d.ts +59 -0
- package/dist/types/lib/dnd/session.d.ts +124 -0
- package/dist/types/lib/dnd/types.d.ts +226 -0
- package/dist/types/lib/dnd/use-drag.d.ts +82 -0
- package/dist/types/lib/dom/scroll-ancestor.d.ts +15 -0
- package/dist/types/lib/format.d.ts +33 -0
- package/dist/types/lib/group-in-order.d.ts +13 -0
- package/dist/types/lib/header-fold.d.ts +10 -0
- package/dist/types/lib/i18n/areas/auth-provenance-flows.d.ts +287 -0
- package/dist/types/lib/i18n/areas/board.d.ts +51 -0
- package/dist/types/lib/i18n/areas/card-face.d.ts +8 -0
- package/dist/types/lib/i18n/areas/chat-chart.d.ts +202 -0
- package/dist/types/lib/i18n/areas/code-editor.d.ts +40 -0
- package/dist/types/lib/i18n/areas/date-timeline.d.ts +36 -0
- package/dist/types/lib/i18n/areas/dates.d.ts +103 -0
- package/dist/types/lib/i18n/areas/docs-views.d.ts +297 -0
- package/dist/types/lib/i18n/areas/feedback.d.ts +132 -0
- package/dist/types/lib/i18n/areas/formats.d.ts +30 -0
- package/dist/types/lib/i18n/areas/forms.d.ts +182 -0
- package/dist/types/lib/i18n/areas/keys.d.ts +15 -0
- package/dist/types/lib/i18n/areas/markdown.d.ts +150 -0
- package/dist/types/lib/i18n/areas/move-rejected.d.ts +16 -0
- package/dist/types/lib/i18n/areas/navigation.d.ts +185 -0
- package/dist/types/lib/i18n/areas/rbac.d.ts +635 -0
- package/dist/types/lib/i18n/emphasis.d.ts +3 -0
- package/dist/types/lib/i18n/index.d.ts +10 -0
- package/dist/types/lib/i18n/number-format.d.ts +5 -0
- package/dist/types/lib/i18n/plural.d.ts +7 -0
- package/dist/types/lib/i18n/provider.d.ts +16 -0
- package/dist/types/lib/i18n/strings.d.ts +18 -0
- package/dist/types/lib/icons.d.ts +22 -0
- package/dist/types/lib/interactive-target.d.ts +3 -0
- package/dist/types/lib/intl-cache.d.ts +31 -0
- package/dist/types/lib/legal-document.d.ts +82 -0
- package/dist/types/lib/line-diff-model.d.ts +39 -0
- package/dist/types/lib/markdown/attachments.d.ts +50 -0
- package/dist/types/lib/markdown/caret-map.d.ts +69 -0
- package/dist/types/lib/markdown/caret.d.ts +6 -0
- package/dist/types/lib/markdown/commands.d.ts +186 -0
- package/dist/types/lib/markdown/convert.d.ts +99 -0
- package/dist/types/lib/markdown/dom.d.ts +30 -0
- package/dist/types/lib/markdown/edit.d.ts +16 -0
- package/dist/types/lib/markdown/history.d.ts +59 -0
- package/dist/types/lib/markdown/hotkeys.d.ts +63 -0
- package/dist/types/lib/markdown/image-pipeline.d.ts +173 -0
- package/dist/types/lib/markdown/images.d.ts +138 -0
- package/dist/types/lib/markdown/input.d.ts +38 -0
- package/dist/types/lib/markdown/keys.d.ts +34 -0
- package/dist/types/lib/markdown/paste.d.ts +9 -0
- package/dist/types/lib/markdown/position.d.ts +43 -0
- package/dist/types/lib/markdown/project.d.ts +88 -0
- package/dist/types/lib/markdown/reconcile.d.ts +63 -0
- package/dist/types/lib/markdown/surface.d.ts +236 -0
- package/dist/types/lib/motion.d.ts +30 -0
- package/dist/types/lib/pad.d.ts +6 -0
- package/dist/types/lib/paged-window/index.d.ts +2 -0
- package/dist/types/lib/paged-window/layout.d.ts +21 -0
- package/dist/types/lib/paged-window/list-owner.d.ts +12 -0
- package/dist/types/lib/paged-window/records-binding.d.ts +102 -0
- package/dist/types/lib/paged-window/store.d.ts +307 -0
- package/dist/types/lib/paged-window/use-measured-pitch.d.ts +34 -0
- package/dist/types/lib/paged-window/use-page-visibility.d.ts +20 -0
- package/dist/types/lib/paged-window/use-paged-window.d.ts +61 -0
- package/dist/types/lib/paged-window/use-scroll-root.d.ts +18 -0
- package/dist/types/lib/persist.d.ts +57 -0
- package/dist/types/lib/preference-values.d.ts +72 -0
- package/dist/types/lib/preferences.d.ts +26 -0
- package/dist/types/lib/reads/hooks.d.ts +49 -0
- package/dist/types/lib/reads/index.d.ts +5 -0
- package/dist/types/lib/reads/optimistic.d.ts +119 -0
- package/dist/types/lib/reads/refetch.d.ts +83 -0
- package/dist/types/lib/reads/slots.d.ts +137 -0
- package/dist/types/lib/reads/types.d.ts +155 -0
- package/dist/types/lib/realtime/hooks.d.ts +38 -0
- package/dist/types/lib/realtime/index.d.ts +4 -0
- package/dist/types/lib/realtime/provider.d.ts +38 -0
- package/dist/types/lib/realtime/registry.d.ts +225 -0
- package/dist/types/lib/realtime/types.d.ts +242 -0
- package/dist/types/lib/records/define-record-type.d.ts +29 -0
- package/dist/types/lib/records/hooks.d.ts +46 -0
- package/dist/types/lib/records/index.d.ts +5 -0
- package/dist/types/lib/records/store.d.ts +289 -0
- package/dist/types/lib/records/types.d.ts +195 -0
- package/dist/types/lib/records/wire.d.ts +96 -0
- package/dist/types/lib/reduced-motion-help.d.ts +23 -0
- package/dist/types/lib/scroll-caret.d.ts +6 -0
- package/dist/types/lib/sim/createSimStore.d.ts +18 -0
- package/dist/types/lib/sim/index.d.ts +5 -0
- package/dist/types/lib/sim/latency.d.ts +10 -0
- package/dist/types/lib/sim/registry.d.ts +14 -0
- package/dist/types/lib/sim/settings.d.ts +11 -0
- package/dist/types/lib/sim/types.d.ts +3 -0
- package/dist/types/lib/submit-shortcut.d.ts +24 -0
- package/dist/types/lib/syntax/index.d.ts +16 -0
- package/dist/types/lib/syntax/languages/bash.d.ts +1 -0
- package/dist/types/lib/syntax/languages/css.d.ts +1 -0
- package/dist/types/lib/syntax/languages/html.d.ts +17 -0
- package/dist/types/lib/syntax/languages/index.d.ts +33 -0
- package/dist/types/lib/syntax/languages/javascript.d.ts +22 -0
- package/dist/types/lib/syntax/languages/json.d.ts +1 -0
- package/dist/types/lib/syntax/languages/mongodb.d.ts +1 -0
- package/dist/types/lib/syntax/languages/plain.d.ts +9 -0
- package/dist/types/lib/syntax/languages/sql.d.ts +4 -0
- package/dist/types/lib/syntax/languages/vue.d.ts +1 -0
- package/dist/types/lib/syntax/languages/yaml.d.ts +1 -0
- package/dist/types/lib/syntax/markdown/frames.d.ts +145 -0
- package/dist/types/lib/syntax/markdown/grammar.d.ts +1 -0
- package/dist/types/lib/syntax/markdown/index.d.ts +5 -0
- package/dist/types/lib/syntax/markdown/inline.d.ts +21 -0
- package/dist/types/lib/syntax/markdown/parse.d.ts +15 -0
- package/dist/types/lib/syntax/markdown/refs.d.ts +47 -0
- package/dist/types/lib/syntax/markdown/render.d.ts +25 -0
- package/dist/types/lib/syntax/markdown/spans.d.ts +84 -0
- package/dist/types/lib/syntax/markdown/types.d.ts +108 -0
- package/dist/types/lib/syntax/registry.d.ts +37 -0
- package/dist/types/lib/syntax/tokenize.d.ts +17 -0
- package/dist/types/lib/syntax/types.d.ts +119 -0
- package/dist/types/lib/time/index.d.ts +4 -0
- package/dist/types/lib/time/instant.d.ts +2 -0
- package/dist/types/lib/time/plain.d.ts +61 -0
- package/dist/types/lib/time/relativeAge.d.ts +18 -0
- package/dist/types/lib/time/relativeClock.d.ts +8 -0
- package/dist/types/lib/time/types.d.ts +87 -0
- package/dist/types/lib/time/zone.d.ts +106 -0
- package/dist/types/lib/use-controllable.d.ts +14 -0
- package/dist/types/lib/use-fill-height.d.ts +26 -0
- package/dist/types/lib/use-hydrated.d.ts +8 -0
- package/dist/types/lib/use-media-query.d.ts +29 -0
- package/dist/types/lib/use-relabel-base-ui-dismiss.d.ts +6 -0
- package/dist/types/lib/use-release-snap-drag.d.ts +25 -0
- package/dist/types/lib/use-roving-options.d.ts +10 -0
- package/dist/types/lib/values/absent.d.ts +7 -0
- package/dist/types/lib/values/boolean.d.ts +29 -0
- package/dist/types/lib/values/currency.d.ts +22 -0
- package/dist/types/lib/values/date.d.ts +30 -0
- package/dist/types/lib/values/datetime.d.ts +48 -0
- package/dist/types/lib/values/index.d.ts +5 -0
- package/dist/types/lib/values/locale-date.d.ts +34 -0
- package/dist/types/lib/values/number.d.ts +27 -0
- package/dist/types/pure.d.ts +48 -0
- package/package.json +136 -4
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { jsx as r, jsxs as d } from "react/jsx-runtime";
|
|
2
|
+
import { useState as m } from "react";
|
|
3
|
+
import { Button as Y } from "./Button.js";
|
|
4
|
+
import { Card as Z, CardHeader as _ } from "./Card.js";
|
|
5
|
+
import { ColorPicker as $ } from "./ColorPicker.js";
|
|
6
|
+
import { AlertDialog as ee } from "./Dialog.js";
|
|
7
|
+
import { DragDrop as re, DragDropContainer as ne, DragDropItem as oe, DragDropHandle as te } from "./DragDrop.js";
|
|
8
|
+
import { EmojiPicker as ae } from "./EmojiPicker.js";
|
|
9
|
+
import { Field as ie } from "./Field.js";
|
|
10
|
+
import { Icon as p } from "./Icon.js";
|
|
11
|
+
import { IconButton as le } from "./IconButton.js";
|
|
12
|
+
import { Input as R } from "./Input.js";
|
|
13
|
+
import { cn as C } from "../lib/cn.js";
|
|
14
|
+
import { useUiStrings as se } from "../lib/i18n/provider.js";
|
|
15
|
+
import { applyMove as de } from "../lib/dnd/geometry.js";
|
|
16
|
+
function Ee(S) {
|
|
17
|
+
const {
|
|
18
|
+
items: H,
|
|
19
|
+
title: y,
|
|
20
|
+
description: N,
|
|
21
|
+
emptyMessage: K,
|
|
22
|
+
containerId: O,
|
|
23
|
+
containerLabel: A,
|
|
24
|
+
onCreate: f,
|
|
25
|
+
addFieldLabel: T,
|
|
26
|
+
addPlaceholder: U,
|
|
27
|
+
onReorder: q,
|
|
28
|
+
onRename: c,
|
|
29
|
+
onDelete: u,
|
|
30
|
+
onChangeColor: k,
|
|
31
|
+
onChangeEmoji: D,
|
|
32
|
+
colorPicker: G,
|
|
33
|
+
emojiPicker: J,
|
|
34
|
+
highlightedId: Q,
|
|
35
|
+
rowStatus: v,
|
|
36
|
+
className: E
|
|
37
|
+
} = S, o = se().orderedEntityManager, [g, w] = m(""), [h, x] = m(null), [z, I] = m(""), [l, b] = m(null), i = H.slice().sort((e, n) => e.order - n.order);
|
|
38
|
+
function j() {
|
|
39
|
+
const e = g.trim();
|
|
40
|
+
if (!e || !f) return;
|
|
41
|
+
const n = i.length === 0 ? 0 : Math.max(...i.map((t) => t.order)) + 1;
|
|
42
|
+
f({ name: e, order: n }), w("");
|
|
43
|
+
}
|
|
44
|
+
function V(e) {
|
|
45
|
+
x(e.id), I(e.name);
|
|
46
|
+
}
|
|
47
|
+
function M() {
|
|
48
|
+
const e = z.trim();
|
|
49
|
+
h && e && c && c(h, e), x(null);
|
|
50
|
+
}
|
|
51
|
+
function W(e) {
|
|
52
|
+
if (!e.moved) return;
|
|
53
|
+
const n = de(i, e.from.index, e.to.index);
|
|
54
|
+
n.some((t, s) => v?.(t).locked && i[s] !== t) || q(n.map((t, s) => ({ ...t, order: s })));
|
|
55
|
+
}
|
|
56
|
+
const P = i.length === 0 ? /* @__PURE__ */ r("p", { className: "text-sm text-tertiary", children: K }) : /* @__PURE__ */ r(re, { onDragEnd: W, children: /* @__PURE__ */ r(ne, { id: O, label: A, children: i.map((e, n) => {
|
|
57
|
+
const { badge: t, disabledReason: s, locked: X } = v?.(e) ?? {}, L = e.id === Q;
|
|
58
|
+
return /* @__PURE__ */ r(oe, { id: e.id, index: n, label: e.name, children: /* @__PURE__ */ d(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
"aria-current": L ? "true" : void 0,
|
|
62
|
+
className: C(
|
|
63
|
+
"flex items-center gap-2 rounded-lg border bg-surface p-2",
|
|
64
|
+
L ? "border-accent-border bg-accent-subtle" : "border-border-subtle"
|
|
65
|
+
),
|
|
66
|
+
children: [
|
|
67
|
+
X ? /* @__PURE__ */ r("span", { role: "img", "aria-label": o.locked(e.name), className: "dx-tap flex size-7 shrink-0 items-center justify-center text-tertiary", children: /* @__PURE__ */ r(p, { name: "lock", size: "xs" }) }) : /* @__PURE__ */ r(te, {}),
|
|
68
|
+
k && /* @__PURE__ */ r(
|
|
69
|
+
$,
|
|
70
|
+
{
|
|
71
|
+
value: e.color,
|
|
72
|
+
onChange: (a) => k(e.id, a),
|
|
73
|
+
label: o.color(e.name),
|
|
74
|
+
size: "sm",
|
|
75
|
+
...G
|
|
76
|
+
}
|
|
77
|
+
),
|
|
78
|
+
D && /* @__PURE__ */ r(
|
|
79
|
+
ae,
|
|
80
|
+
{
|
|
81
|
+
value: e.emoji,
|
|
82
|
+
onChange: (a) => D(e.id, a),
|
|
83
|
+
label: o.emoji(e.name),
|
|
84
|
+
...J
|
|
85
|
+
}
|
|
86
|
+
),
|
|
87
|
+
c && h === e.id ? /* @__PURE__ */ r(
|
|
88
|
+
R,
|
|
89
|
+
{
|
|
90
|
+
autoFocus: !0,
|
|
91
|
+
size: "sm",
|
|
92
|
+
value: z,
|
|
93
|
+
onChange: (a) => I(a.target.value),
|
|
94
|
+
onBlur: M,
|
|
95
|
+
onKeyDown: (a) => {
|
|
96
|
+
a.key === "Enter" && M(), a.key === "Escape" && x(null);
|
|
97
|
+
},
|
|
98
|
+
className: "min-w-0 flex-1"
|
|
99
|
+
}
|
|
100
|
+
) : c ? /* @__PURE__ */ d(
|
|
101
|
+
"button",
|
|
102
|
+
{
|
|
103
|
+
type: "button",
|
|
104
|
+
onClick: () => V(e),
|
|
105
|
+
className: "dx-tap flex min-w-0 flex-1 items-center gap-1.5 rounded-md px-2 py-1 text-left text-sm text-primary transition-colors duration-(--dur-fast) hover:bg-surface-hover",
|
|
106
|
+
children: [
|
|
107
|
+
/* @__PURE__ */ r("span", { className: "min-w-0 truncate", children: e.name }),
|
|
108
|
+
/* @__PURE__ */ r(p, { name: "pencil", size: "xs", className: "shrink-0 text-tertiary" })
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
) : /* @__PURE__ */ r("span", { className: "min-w-0 flex-1 truncate px-2 py-1 text-sm text-primary", children: e.name }),
|
|
112
|
+
t,
|
|
113
|
+
u && /* @__PURE__ */ r(
|
|
114
|
+
le,
|
|
115
|
+
{
|
|
116
|
+
icon: /* @__PURE__ */ r(p, { name: "trash-2", size: "sm" }),
|
|
117
|
+
label: o.delete(e.name),
|
|
118
|
+
tone: "danger",
|
|
119
|
+
disabledReason: s,
|
|
120
|
+
onClick: () => b({ item: e, open: !0 })
|
|
121
|
+
}
|
|
122
|
+
)
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
) }, e.id);
|
|
126
|
+
}) }) }), B = f && /* @__PURE__ */ d("div", { className: "flex flex-wrap items-end gap-2 border-t border-border-subtle pt-4", children: [
|
|
127
|
+
/* @__PURE__ */ r(ie, { label: T, className: "w-56", children: /* @__PURE__ */ r(
|
|
128
|
+
R,
|
|
129
|
+
{
|
|
130
|
+
size: "sm",
|
|
131
|
+
value: g,
|
|
132
|
+
onChange: (e) => w(e.target.value),
|
|
133
|
+
onKeyDown: (e) => {
|
|
134
|
+
e.key === "Enter" && (e.preventDefault(), j());
|
|
135
|
+
},
|
|
136
|
+
placeholder: U
|
|
137
|
+
}
|
|
138
|
+
) }),
|
|
139
|
+
/* @__PURE__ */ r(Y, { size: "sm", onClick: j, disabled: !g.trim(), leadingIcon: /* @__PURE__ */ r(p, { name: "plus", size: "xs" }), children: o.add })
|
|
140
|
+
] }), F = u && /* @__PURE__ */ r(
|
|
141
|
+
ee,
|
|
142
|
+
{
|
|
143
|
+
open: l?.open ?? !1,
|
|
144
|
+
onOpenChange: (e) => {
|
|
145
|
+
e || b((n) => n && { ...n, open: !1 });
|
|
146
|
+
},
|
|
147
|
+
title: l ? o.deleteTitle(l.item.name) : null,
|
|
148
|
+
description: o.deleteDescription,
|
|
149
|
+
confirmLabel: o.deleteConfirm,
|
|
150
|
+
destructive: !0,
|
|
151
|
+
onConfirm: () => {
|
|
152
|
+
l && u(l.item.id), b((e) => e && { ...e, open: !1 });
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
return !y && !N ? /* @__PURE__ */ d("div", { className: C("flex flex-col gap-4", E), children: [
|
|
157
|
+
P,
|
|
158
|
+
B,
|
|
159
|
+
F
|
|
160
|
+
] }) : /* @__PURE__ */ d(Z, { variant: "sunken", padding: "md", className: C("gap-4", E), children: [
|
|
161
|
+
/* @__PURE__ */ r(_, { title: y, description: N }),
|
|
162
|
+
P,
|
|
163
|
+
B,
|
|
164
|
+
F
|
|
165
|
+
] });
|
|
166
|
+
}
|
|
167
|
+
export {
|
|
168
|
+
Ee as OrderedEntityManager
|
|
169
|
+
};
|
|
170
|
+
//# sourceMappingURL=OrderedEntityManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrderedEntityManager.js","sources":["../../src/components/OrderedEntityManager.tsx"],"sourcesContent":["import { useState, type ReactNode } from \"react\";\nimport { Button } from \"./Button\";\nimport { Card, CardHeader } from \"./Card\";\nimport { ColorPicker, type ColorPickerProps } from \"./ColorPicker\";\nimport { AlertDialog } from \"./Dialog\";\nimport { DragDrop, DragDropContainer, DragDropHandle, DragDropItem } from \"./DragDrop\";\nimport { EmojiPicker, type EmojiPickerProps } from \"./EmojiPicker\";\nimport { Field } from \"./Field\";\nimport { Icon } from \"./Icon\";\nimport { IconButton } from \"./IconButton\";\nimport { Input } from \"./Input\";\nimport { applyMove, type DragEndEvent } from \"../lib/dnd\";\nimport { cn } from \"../lib/cn\";\nimport { useUiStrings } from \"../lib/i18n\";\n\n/* ============================================================================\n ORDERED ENTITY MANAGER - the library's ordered list manager (DXUI-27).\n\n A small, named, person-orderable list: entries are added, renamed in place,\n deleted behind a confirm and reordered by drag or keyboard, and each may\n carry an optional colour and emoji edited in place. It began as the shape\n `PhaseManager` and `TrackManager` shared (DX-3254) and is now the package's\n one component for the job, so danxbot's dispatch queue and board lists use\n it rather than a second implementation.\n\n CONTROLLED, WITH NO SERVER LOGIC. The caller passes `items` and receives a\n change event per edit; it persists and re-renders. The component keeps only\n transient UI state (the rename draft, the add field, an open picker, a\n pending delete), never the entries themselves, so what is on screen is\n always what the caller passed.\n\n EVERY CAPABILITY IS OPT-IN BY ITS HANDLER. Reorder is the one thing the\n component is for and is always on. `onCreate`, `onRename`, `onDelete`,\n `onChangeColor` and `onChangeEmoji` each switch on their own control when\n given and draw nothing when absent: a queue that only reorders passes\n `onReorder`; board lists pass all of them.\n\n COLOUR AND EMOJI ARE THE LIBRARY'S OWN PICKERS (`ColorPicker`, the one\n colour control, and `EmojiPicker`), composed here. Colour is a required\n `#rrggbb` on every entry whenever `onChangeColor` is passed (an entry\n without one throws, as `ColorPicker` does); `colorPicker.presets` hands the\n caller's palette to it. Emoji is configured through `emojiPicker`: the\n caller's own options, its validator for a typed value, search and whether\n the value may be removed.\n\n A LOCKED ROW STAYS WHERE IT IS. `rowStatus` may mark a row `locked` (a\n queue item already running): it shows a lock instead of the drag handle and\n no reorder, by drag or keyboard, may change its position - a move that\n would shift it is refused and `onReorder` does not fire.\n\n WHAT STAYS PER-CALLER. A delete guard is a DECISION (a phase is blocked by\n any reference, a track only by built work), so `rowStatus` keeps it in the\n caller: it returns a read-only `badge` and, when delete must refuse, the\n `disabledReason` shown on the control itself.\n ========================================================================= */\n\nexport interface OrderedEntity {\n id: string;\n name: string;\n order: number;\n /** The entry's colour, `#rrggbb`. Required on every entry when `onChangeColor` is passed. */\n color?: string;\n /** Optional emoji, stored as the caller's value (the Unicode character by default). `null`/absent = none. */\n emoji?: string | null;\n}\n\n/** What a row shows beyond its name: an optional READ-ONLY status badge, and\n * - when non-empty - the reason the delete control refuses (see\n * `IconButton`'s `disabledReason`, the only way to turn it off, so a caller\n * cannot forget to explain a blocked delete). */\nexport interface OrderedEntityRowStatus {\n badge?: ReactNode;\n /** The row cannot be moved, and no move may shift it (a running queue item). */\n locked?: boolean;\n disabledReason?: string;\n}\n\ntype AddProps =\n | { onCreate: (entity: { name: string; order: number }) => void; addFieldLabel: string; addPlaceholder: string }\n | { onCreate?: undefined; addFieldLabel?: undefined; addPlaceholder?: undefined };\n\nexport type OrderedEntityManagerProps<T extends OrderedEntity> = AddProps & {\n items: T[];\n /** With `title` or `description` the list sits in a `Card` with that header; with neither it is the bare list (inside a `Dialog`, say). */\n title?: string;\n description?: string;\n emptyMessage: ReactNode;\n containerId: string;\n containerLabel: string;\n /** The full list, reordered and renumbered (`order` === new index) - the\n caller persists each row's new `order`, e.g. one `update` per id. */\n onReorder: (items: T[]) => void;\n /** Present: a name is renamed in place (click, Enter commits, Escape cancels). */\n onRename?: (id: string, name: string) => void;\n /** Present: each row has a delete that asks for confirmation first. */\n onDelete?: (id: string) => void;\n /** Present: each row has a colour picker. Told the committed lowercase `#rrggbb`; a colour is never removed. */\n onChangeColor?: (id: string, color: string) => void;\n /** Present: each row has an emoji picker. `null` removes the emoji. */\n onChangeEmoji?: (id: string, emoji: string | null) => void;\n /** The colour picker's own options: `presets`, the caller's palette. */\n colorPicker?: Pick<ColorPickerProps, \"presets\">;\n /** The emoji picker's own options: `options`, `allowCustom`, `validateCustom`, `renderValue`, `clearable`, `searchable`. */\n emojiPicker?: Pick<EmojiPickerProps, \"options\" | \"allowCustom\" | \"validateCustom\" | \"renderValue\" | \"clearable\" | \"searchable\">;\n /** The one entry to draw attention to (the item just added). */\n highlightedId?: string | null;\n rowStatus?: (item: T) => OrderedEntityRowStatus;\n className?: string;\n};\n\nexport function OrderedEntityManager<T extends OrderedEntity>(props: OrderedEntityManagerProps<T>) {\n const {\n items,\n title,\n description,\n emptyMessage,\n containerId,\n containerLabel,\n onCreate,\n addFieldLabel,\n addPlaceholder,\n onReorder,\n onRename,\n onDelete,\n onChangeColor,\n onChangeEmoji,\n colorPicker,\n emojiPicker,\n highlightedId,\n rowStatus,\n className,\n } = props;\n const strings = useUiStrings().orderedEntityManager;\n const [newName, setNewName] = useState(\"\");\n const [editingId, setEditingId] = useState<string | null>(null);\n const [editingName, setEditingName] = useState(\"\");\n /* The entry being confirmed stays set while the dialog plays its exit, so the title does not lose the name mid-fade. */\n const [deleting, setDeleting] = useState<{ item: T; open: boolean } | null>(null);\n\n const sorted = items.slice().sort((a, b) => a.order - b.order);\n\n function handleCreate() {\n const name = newName.trim();\n if (!name || !onCreate) return;\n const order = sorted.length === 0 ? 0 : Math.max(...sorted.map((item) => item.order)) + 1;\n onCreate({ name, order });\n setNewName(\"\");\n }\n\n function startEditing(item: T) {\n setEditingId(item.id);\n setEditingName(item.name);\n }\n\n function commitEditing() {\n const name = editingName.trim();\n if (editingId && name && onRename) onRename(editingId, name);\n setEditingId(null);\n }\n\n function handleDragEnd(event: DragEndEvent) {\n if (!event.moved) return;\n const moved = applyMove(sorted, event.from.index, event.to.index);\n // DXUI-27: a locked row keeps its position - a move that would shift it is refused.\n if (moved.some((item, index) => rowStatus?.(item).locked && sorted[index] !== item)) return;\n onReorder(moved.map((item, index) => ({ ...item, order: index })));\n }\n\n const list =\n sorted.length === 0 ? (\n <p className=\"text-sm text-tertiary\">{emptyMessage}</p>\n ) : (\n <DragDrop onDragEnd={handleDragEnd}>\n {/* No `gap-*` here - `DragDropContainer`'s own axis=\"y\" recipe\n already spaces items via a margin on each `DragDropItem` (see\n `drag-drop/recipe.ts`'s banner on why a flex `gap` would break\n the zero-height insertion marker). */}\n <DragDropContainer id={containerId} label={containerLabel}>\n {sorted.map((item, index) => {\n const { badge, disabledReason, locked } = rowStatus?.(item) ?? {};\n const highlighted = item.id === highlightedId;\n\n return (\n <DragDropItem key={item.id} id={item.id} index={index} label={item.name}>\n <div\n aria-current={highlighted ? \"true\" : undefined}\n className={cn(\n \"flex items-center gap-2 rounded-lg border bg-surface p-2\",\n highlighted ? \"border-accent-border bg-accent-subtle\" : \"border-border-subtle\",\n )}\n >\n {locked ? (\n <span role=\"img\" aria-label={strings.locked(item.name)} className=\"dx-tap flex size-7 shrink-0 items-center justify-center text-tertiary\">\n <Icon name=\"lock\" size=\"xs\" />\n </span>\n ) : (\n <DragDropHandle />\n )}\n\n {onChangeColor && (\n <ColorPicker\n value={item.color as string}\n onChange={(color) => onChangeColor(item.id, color)}\n label={strings.color(item.name)}\n size=\"sm\"\n {...colorPicker}\n />\n )}\n\n {onChangeEmoji && (\n <EmojiPicker\n value={item.emoji}\n onChange={(emoji) => onChangeEmoji(item.id, emoji)}\n label={strings.emoji(item.name)}\n {...emojiPicker}\n />\n )}\n\n {onRename && editingId === item.id ? (\n <Input\n autoFocus\n size=\"sm\"\n value={editingName}\n onChange={(event) => setEditingName(event.target.value)}\n onBlur={commitEditing}\n onKeyDown={(event) => {\n if (event.key === \"Enter\") commitEditing();\n if (event.key === \"Escape\") setEditingId(null);\n }}\n className=\"min-w-0 flex-1\"\n />\n ) : onRename ? (\n <button\n type=\"button\"\n onClick={() => startEditing(item)}\n className=\"dx-tap flex min-w-0 flex-1 items-center gap-1.5 rounded-md px-2 py-1 text-left text-sm text-primary transition-colors duration-(--dur-fast) hover:bg-surface-hover\"\n >\n <span className=\"min-w-0 truncate\">{item.name}</span>\n <Icon name=\"pencil\" size=\"xs\" className=\"shrink-0 text-tertiary\" />\n </button>\n ) : (\n <span className=\"min-w-0 flex-1 truncate px-2 py-1 text-sm text-primary\">{item.name}</span>\n )}\n\n {/* The VISIBLE reason a delete guard applies, or a queue\n item's state, when the caller's `rowStatus` supplies\n one - rendered whenever present, not just on hover.\n Read-only: a badge is never a control. */}\n {badge}\n\n {/* The guard states itself ON the control, not only in the\n badge beside it. `disabledReason` is the only way to\n turn an `IconButton` off, so the explanation cannot be\n omitted. */}\n {onDelete && (\n <IconButton\n icon={<Icon name=\"trash-2\" size=\"sm\" />}\n label={strings.delete(item.name)}\n tone=\"danger\"\n disabledReason={disabledReason}\n onClick={() => setDeleting({ item, open: true })}\n />\n )}\n </div>\n </DragDropItem>\n );\n })}\n </DragDropContainer>\n </DragDrop>\n );\n\n const add = onCreate && (\n <div className=\"flex flex-wrap items-end gap-2 border-t border-border-subtle pt-4\">\n <Field label={addFieldLabel} className=\"w-56\">\n <Input\n size=\"sm\"\n value={newName}\n onChange={(event) => setNewName(event.target.value)}\n onKeyDown={(event) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n handleCreate();\n }\n }}\n placeholder={addPlaceholder}\n />\n </Field>\n <Button size=\"sm\" onClick={handleCreate} disabled={!newName.trim()} leadingIcon={<Icon name=\"plus\" size=\"xs\" />}>\n {strings.add}\n </Button>\n </div>\n );\n\n const confirm = onDelete && (\n <AlertDialog\n open={deleting?.open ?? false}\n onOpenChange={(open) => {\n if (!open) setDeleting((current) => current && { ...current, open: false });\n }}\n title={deleting ? strings.deleteTitle(deleting.item.name) : null}\n description={strings.deleteDescription}\n confirmLabel={strings.deleteConfirm}\n destructive\n onConfirm={() => {\n if (deleting) onDelete(deleting.item.id);\n setDeleting((current) => current && { ...current, open: false });\n }}\n />\n );\n\n if (!title && !description) {\n return (\n <div className={cn(\"flex flex-col gap-4\", className)}>\n {list}\n {add}\n {confirm}\n </div>\n );\n }\n\n return (\n <Card variant=\"sunken\" padding=\"md\" className={cn(\"gap-4\", className)}>\n <CardHeader title={title} description={description} />\n {list}\n {add}\n {confirm}\n </Card>\n );\n}\n"],"names":["OrderedEntityManager","props","items","title","description","emptyMessage","containerId","containerLabel","onCreate","addFieldLabel","addPlaceholder","onReorder","onRename","onDelete","onChangeColor","onChangeEmoji","colorPicker","emojiPicker","highlightedId","rowStatus","className","strings","useUiStrings","newName","setNewName","useState","editingId","setEditingId","editingName","setEditingName","deleting","setDeleting","sorted","a","b","handleCreate","name","order","item","startEditing","commitEditing","handleDragEnd","event","moved","applyMove","index","list","jsx","DragDrop","DragDropContainer","badge","disabledReason","locked","highlighted","DragDropItem","jsxs","cn","Icon","DragDropHandle","ColorPicker","color","EmojiPicker","emoji","Input","IconButton","add","Field","Button","confirm","AlertDialog","open","current","Card","CardHeader"],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect as x, useCallback as A, useRef as D, Fragment as H } from "react";
|
|
3
|
+
import { cn as N } from "../lib/cn.js";
|
|
4
|
+
import { blockCountFor as U, blockStatus as q, placeholderHeight as G } from "../lib/paged-window/layout.js";
|
|
5
|
+
import { useMeasuredPitch as I } from "../lib/paged-window/use-measured-pitch.js";
|
|
6
|
+
import { usePageVisibility as J } from "../lib/paged-window/use-page-visibility.js";
|
|
7
|
+
import { useScrollRoot as K } from "../lib/paged-window/use-scroll-root.js";
|
|
8
|
+
import { useListOwner as Q, useReportBusy as X } from "../lib/paged-window/list-owner.js";
|
|
9
|
+
import { PageBlock as Y } from "./paged-window/PageBlock.js";
|
|
10
|
+
import { useUiStrings as Z } from "../lib/i18n/provider.js";
|
|
11
|
+
import { useDragLive as _ } from "../lib/dnd/use-drag.js";
|
|
12
|
+
function ut({
|
|
13
|
+
source: e,
|
|
14
|
+
getKey: L,
|
|
15
|
+
renderItem: C,
|
|
16
|
+
estimatedItemHeight: M,
|
|
17
|
+
className: S
|
|
18
|
+
}) {
|
|
19
|
+
const l = Z().pagedWindowList, u = Q(), p = e.pages.some((t) => t.status === "loading");
|
|
20
|
+
X(u, p);
|
|
21
|
+
const { setAnchorPage: z, setFrozen: i, invalidatePage: F, pageSize: m, pageCount: T, epoch: o, offset: V } = e, f = _();
|
|
22
|
+
x(() => (i(f), () => i(!1)), [f, i]);
|
|
23
|
+
const { ref: B, scroller: r } = K(), { observe: d } = J(r, z), { pitch: E, observe: g } = I(M), O = A(
|
|
24
|
+
(t) => {
|
|
25
|
+
if (!t) return;
|
|
26
|
+
const s = d(t), n = g(t);
|
|
27
|
+
return () => {
|
|
28
|
+
s(), n();
|
|
29
|
+
};
|
|
30
|
+
},
|
|
31
|
+
[d, g]
|
|
32
|
+
), h = D(o);
|
|
33
|
+
x(() => {
|
|
34
|
+
!r?.el || h.current === o || (h.current = o, r.el.scrollTop = 0);
|
|
35
|
+
}, [o, r]);
|
|
36
|
+
const b = new Map(e.pages.map((t) => [t.page, t])), W = e.total ?? m, v = Math.max(1, Math.round(E)), w = [];
|
|
37
|
+
let y = 0;
|
|
38
|
+
const j = U(T, b.size);
|
|
39
|
+
for (let t = 0; t < j; t++) {
|
|
40
|
+
const s = b.get(t), n = q(s), P = y, c = n === "ready" ? s.items : [];
|
|
41
|
+
y += c.length, w.push(
|
|
42
|
+
/* @__PURE__ */ a(
|
|
43
|
+
Y,
|
|
44
|
+
{
|
|
45
|
+
page: t,
|
|
46
|
+
status: n,
|
|
47
|
+
count: c.length,
|
|
48
|
+
height: G(t, m, W, v),
|
|
49
|
+
pitch: v,
|
|
50
|
+
blockRef: O,
|
|
51
|
+
errorText: l.failed,
|
|
52
|
+
retryText: l.retry,
|
|
53
|
+
onRetry: () => F(t),
|
|
54
|
+
children: c.map((k, R) => /* @__PURE__ */ a(H, { children: C(k, { local: P + R, global: V + P + R }) }, L(k)))
|
|
55
|
+
},
|
|
56
|
+
t
|
|
57
|
+
)
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
return /* @__PURE__ */ a(
|
|
61
|
+
"div",
|
|
62
|
+
{
|
|
63
|
+
ref: B,
|
|
64
|
+
"data-paged-window": "",
|
|
65
|
+
"aria-busy": p && !u ? !0 : void 0,
|
|
66
|
+
className: N("min-w-0 shrink-0", S),
|
|
67
|
+
children: w
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
ut as PagedWindowList
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=PagedWindowList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PagedWindowList.js","sources":["../../src/components/PagedWindowList.tsx"],"sourcesContent":["import { Fragment, useCallback, useEffect, useRef, type ReactNode } from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { useUiStrings } from \"../lib/i18n\";\nimport { useDragLive } from \"../lib/dnd\";\nimport type { PagedWindow } from \"../lib/paged-window\";\nimport { blockCountFor, blockStatus, placeholderHeight } from \"../lib/paged-window/layout\";\nimport { useMeasuredPitch } from \"../lib/paged-window/use-measured-pitch\";\nimport { usePageVisibility } from \"../lib/paged-window/use-page-visibility\";\nimport { useScrollRoot } from \"../lib/paged-window/use-scroll-root\";\nimport { useListOwner, useReportBusy } from \"../lib/paged-window/list-owner\";\nimport { PageBlock } from \"./paged-window/PageBlock\";\n\n/* ============================================================================\n PAGED WINDOW LIST — renders a `usePagedWindow` as one long scrollable list\n that holds only a few pages of cards in the DOM and in memory. DX-4540.\n\n THE SCROLLBAR TELLS THE TRUTH. A page that is not resident is a PLACEHOLDER\n BLOCK of `items on that page x measured item height`, so the scroll extent\n spans the whole `total` and the viewer can drag the scrollbar anywhere. The\n page under the viewport loads on arrival, its neighbours are already\n prefetched (they are the other pages of the window) and everything farther is\n replaced in the DOM by a placeholder of the same height. The rows of a page\n that was loaded stay in memory (DX-5521), so scrolling back to it draws its\n cards at once with no loading rows and no request; only a page never loaded\n shows loading rows.\n\n ONE BLOCK PER PAGE, ALWAYS. A page's block is the same element whether it is\n a placeholder or holds its cards — one component (`PageBlock`) at one key, so\n React keeps the DOM node through a load, a drop and a failure — which is what\n makes three things work:\n - the viewer's position is read from `IntersectionObserver` on the blocks,\n rooted at the scroll container (`usePageVisibility`): no scroll listener,\n no polling. A page is \"in view\" while its block intersects the root, and\n the window follows the middle of the pages in view;\n - the element under the viewport survives a load, so the browser's own\n scroll anchoring keeps the viewer's place when a page above arrives or\n is dropped and its real height differs from the estimate;\n - a non-resident page costs one empty div, so a 20,000-item list is 1,000 of\n them, not 20,000 cards.\n ALL THREE NEED EACH BLOCK TO HOLD ITS OWN PAGE'S ITEMS, AND ONLY THEM (DX-5521).\n A consumer that draws an item of one page inside another page's block (a box\n gathering a parent's cards from two pages into the first) breaks both: the\n viewer reading the moved cards is told they are on the block's page, and when a\n page above is drawn and the cards move to it, the browser holds its place on\n the emptied block, whose top just moved, and scrolls the viewer away by the\n height of the moved cards (a board lane trapped its reader this way). A\n `renderItem` draws its item where it is called; a box spanning two pages is a\n piece in each page's block (`DragDropGroup`'s `continuesBefore` /\n `continuesAfter`).\n\n THIS FILE IS THE RENDER LOOP AND THE DRAG FREEZE. The other jobs are their\n own hooks: finding the scroller (`useScrollRoot`), reading what is in view\n (`usePageVisibility`), measuring what an item costs (`useMeasuredPitch`),\n and the block every page is drawn as (`PageBlock`).\n\n THE SCROLLER IS NOT THIS COMPONENT'S. It is the nearest ancestor that\n scrolls — a board lane's `DragDropContainer`, or this component's own\n `className` when that sets `overflow-y-auto` — found once on mount. So the\n list drops into a lane as plain children and the lane keeps its own scrolling,\n auto-scroll during a drag included.\n\n ONLY RENDERED CARDS ARE DROP TARGETS. The drag engine measures the items that\n are registered (`lib/dnd/session.ts#remeasure`), and a page that is not resident\n registers none: a card dropped over a placeholder lands against the nearest\n card that is there. And the window FREEZES for the length of a drag\n (`useDragLive`): the carried card lives in its page, and dropping that page\n because autoscroll moved the viewer would unmount the card and cancel the\n drag. The memory bound still holds — a frozen window is the window that was\n there at pickup.\n\n WHAT A CONSUMER OWNS. This renders `renderItem(item, {local, global})` for\n each shown item and nothing about what an item is. `local` counts the shown\n items only (what the drag engine's `index` wants: a position among the\n registered cards), `global` is the item's position in the whole list\n (`source.offset + local`, what a server wants).\n ========================================================================= */\n\nexport interface PagedWindowItemPosition {\n /** Position among the items currently shown, across every shown page. */\n local: number;\n /** Position in the whole list: `source.offset + local`. */\n global: number;\n}\n\nexport interface PagedWindowListProps<T> {\n /** The window to render — what `usePagedWindow` returned. */\n source: PagedWindow<T>;\n /** Stable across renders and pages. Never an array index. */\n getKey: (item: T) => string | number;\n renderItem: (item: T, position: PagedWindowItemPosition) => ReactNode;\n /**\n * One item's height INCLUDING its spacing, in px, used for placeholders until\n * real pages have been measured. Replaced by the measured mean as pages\n * arrive, so it only has to be close.\n */\n estimatedItemHeight: number;\n className?: string;\n}\n\nexport function PagedWindowList<T>({\n source,\n getKey,\n renderItem,\n estimatedItemHeight,\n className,\n}: PagedWindowListProps<T>) {\n const words = useUiStrings().pagedWindowList;\n const listOwner = useListOwner();\n const busy = source.pages.some((p) => p.status === \"loading\");\n useReportBusy(listOwner, busy);\n const { setAnchorPage, setFrozen, invalidatePage, pageSize, pageCount, epoch, offset } = source;\n\n /* THE DRAG FREEZE. Cleanup thaws, so a list that unmounts mid-drag cannot\n leave a window that never moves again. */\n const dragLive = useDragLive();\n useEffect(() => {\n setFrozen(dragLive);\n return () => setFrozen(false);\n }, [dragLive, setFrozen]);\n\n const { ref: rootRef, scroller } = useScrollRoot();\n const { observe: observeVisibility } = usePageVisibility(scroller, setAnchorPage);\n const { pitch, observe: observePitch } = useMeasuredPitch(estimatedItemHeight);\n\n /* One stable ref for every block. Its returned cleanup knows its own element,\n which a null-called ref callback would not. */\n const blockRef = useCallback(\n (el: HTMLDivElement | null) => {\n if (!el) return;\n const unobserveVisibility = observeVisibility(el);\n const unobservePitch = observePitch(el);\n return () => {\n unobserveVisibility();\n unobservePitch();\n };\n },\n [observeVisibility, observePitch],\n );\n\n /* A new query starts at the top, whatever the old one's scroll position. */\n const seenEpoch = useRef(epoch);\n useEffect(() => {\n if (!scroller?.el || seenEpoch.current === epoch) return;\n seenEpoch.current = epoch;\n scroller.el.scrollTop = 0;\n }, [epoch, scroller]);\n\n const drawn = new Map(source.pages.map((p) => [p.page, p]));\n const total = source.total ?? pageSize;\n const roundedPitch = Math.max(1, Math.round(pitch));\n\n const nodes: ReactNode[] = [];\n let local = 0;\n const blockCount = blockCountFor(pageCount, drawn.size);\n for (let page = 0; page < blockCount; page++) {\n const current = drawn.get(page);\n const status = blockStatus(current);\n const first = local;\n const shown = status === \"ready\" ? current!.items : [];\n local += shown.length;\n nodes.push(\n <PageBlock\n key={page}\n page={page}\n status={status}\n count={shown.length}\n height={placeholderHeight(page, pageSize, total, roundedPitch)}\n pitch={roundedPitch}\n blockRef={blockRef}\n errorText={words.failed}\n retryText={words.retry}\n onRetry={() => invalidatePage(page)}\n >\n {shown.map((item, i) => (\n <Fragment key={getKey(item)}>\n {renderItem(item, { local: first + i, global: offset + first + i })}\n </Fragment>\n ))}\n </PageBlock>,\n );\n }\n\n return (\n <div\n ref={rootRef}\n data-paged-window=\"\"\n /* DX-5084: inside a lane's `role=\"list\"` the lane carries `aria-busy` (see\n `list-owner.tsx`); a role-less box with a global ARIA attribute there would be a\n non-listitem child of the list. Anywhere else this root is the busy element. */\n aria-busy={busy && !listOwner ? true : undefined}\n className={cn(\"min-w-0 shrink-0\", className)}\n >\n {nodes}\n </div>\n );\n}\n"],"names":["PagedWindowList","source","getKey","renderItem","estimatedItemHeight","className","words","useUiStrings","listOwner","useListOwner","busy","p","useReportBusy","setAnchorPage","setFrozen","invalidatePage","pageSize","pageCount","epoch","offset","dragLive","useDragLive","useEffect","rootRef","scroller","useScrollRoot","observeVisibility","usePageVisibility","pitch","observePitch","useMeasuredPitch","blockRef","useCallback","el","unobserveVisibility","unobservePitch","seenEpoch","useRef","drawn","total","roundedPitch","nodes","local","blockCount","blockCountFor","page","current","status","blockStatus","first","shown","jsx","PageBlock","placeholderHeight","item","i","Fragment","cn"],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { jsxs as c, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { cn as N } from "../lib/cn.js";
|
|
3
|
+
import { Button as M } from "./Button.js";
|
|
4
|
+
import { Icon as l } from "./Icon.js";
|
|
5
|
+
import { IconButton as p } from "./IconButton.js";
|
|
6
|
+
import { Menu as P, MenuRadioGroup as B, MenuRadioItem as k } from "./Menu.js";
|
|
7
|
+
import { Pagination as y } from "./Navigation.js";
|
|
8
|
+
import { useBelow as I } from "../lib/use-media-query.js";
|
|
9
|
+
import { useUiStrings as R } from "../lib/i18n/provider.js";
|
|
10
|
+
import { useNumberFormat as j } from "../lib/i18n/number-format.js";
|
|
11
|
+
function A({
|
|
12
|
+
page: d,
|
|
13
|
+
pageSize: i,
|
|
14
|
+
pageSizeOptions: u,
|
|
15
|
+
total: t,
|
|
16
|
+
onPageChange: m,
|
|
17
|
+
onPageSizeChange: h,
|
|
18
|
+
mode: g = "simple",
|
|
19
|
+
label: f,
|
|
20
|
+
className: x
|
|
21
|
+
}) {
|
|
22
|
+
const s = Math.max(1, Math.ceil(t / i)), r = Math.min(d, s), v = t === 0 ? 0 : (r - 1) * i + 1, b = t === 0 ? 0 : Math.min(t, r * i), w = I("sm"), n = R().paginationBar, a = j();
|
|
23
|
+
return /* @__PURE__ */ c(
|
|
24
|
+
"nav",
|
|
25
|
+
{
|
|
26
|
+
"aria-label": n.navLabel(f),
|
|
27
|
+
className: N("flex flex-nowrap items-center justify-between gap-2", x),
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ e(
|
|
30
|
+
"span",
|
|
31
|
+
{
|
|
32
|
+
className: "min-w-0 shrink truncate text-xs text-secondary tabular",
|
|
33
|
+
"aria-live": "polite",
|
|
34
|
+
children: n.range(a(v), a(b), a(t))
|
|
35
|
+
}
|
|
36
|
+
),
|
|
37
|
+
/* @__PURE__ */ c("div", { className: "flex shrink-0 items-center gap-2", children: [
|
|
38
|
+
/* @__PURE__ */ e(
|
|
39
|
+
P,
|
|
40
|
+
{
|
|
41
|
+
align: "end",
|
|
42
|
+
trigger: /* @__PURE__ */ e(
|
|
43
|
+
M,
|
|
44
|
+
{
|
|
45
|
+
size: "sm",
|
|
46
|
+
variant: "outline",
|
|
47
|
+
"aria-label": n.rowsPerPage(a(i)),
|
|
48
|
+
trailingIcon: /* @__PURE__ */ e(l, { name: "chevron-down", size: "xs", className: "text-tertiary" }),
|
|
49
|
+
children: w ? a(i) : /* @__PURE__ */ e("span", { className: "whitespace-nowrap", children: n.pageSizeTrigger(a(i)) })
|
|
50
|
+
}
|
|
51
|
+
),
|
|
52
|
+
children: /* @__PURE__ */ e(
|
|
53
|
+
B,
|
|
54
|
+
{
|
|
55
|
+
value: String(i),
|
|
56
|
+
onValueChange: (o) => h(Number(o)),
|
|
57
|
+
children: u.map((o) => /* @__PURE__ */ e(k, { value: String(o), children: n.pageSizeOption(a(o)) }, o))
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
),
|
|
62
|
+
g === "numbered" ? s > 1 && /* @__PURE__ */ e(y, { page: r, pageCount: s, onPageChange: m }) : /* @__PURE__ */ c("div", { className: "flex items-center gap-1", children: [
|
|
63
|
+
/* @__PURE__ */ e(
|
|
64
|
+
p,
|
|
65
|
+
{
|
|
66
|
+
icon: /* @__PURE__ */ e(l, { name: "chevron-left", size: "sm" }),
|
|
67
|
+
label: n.previousPage,
|
|
68
|
+
variant: "ghost",
|
|
69
|
+
size: "sm",
|
|
70
|
+
disabledReason: r <= 1 ? n.onFirstPage : void 0,
|
|
71
|
+
onClick: () => m(r - 1)
|
|
72
|
+
}
|
|
73
|
+
),
|
|
74
|
+
/* @__PURE__ */ e("span", { className: "text-xs whitespace-nowrap text-secondary tabular", children: n.pageOf(a(r), a(s)) }),
|
|
75
|
+
/* @__PURE__ */ e(
|
|
76
|
+
p,
|
|
77
|
+
{
|
|
78
|
+
icon: /* @__PURE__ */ e(l, { name: "chevron-right", size: "sm" }),
|
|
79
|
+
label: n.nextPage,
|
|
80
|
+
variant: "ghost",
|
|
81
|
+
size: "sm",
|
|
82
|
+
disabledReason: r >= s ? n.onLastPage : void 0,
|
|
83
|
+
onClick: () => m(r + 1)
|
|
84
|
+
}
|
|
85
|
+
)
|
|
86
|
+
] })
|
|
87
|
+
] })
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
export {
|
|
93
|
+
A as PaginationBar
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=PaginationBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaginationBar.js","sources":["../../src/components/PaginationBar.tsx"],"sourcesContent":["import { cn } from \"../lib/cn\";\nimport { useNumberFormat, useUiStrings } from \"../lib/i18n\";\nimport { Button } from \"./Button\";\nimport { Icon } from \"./Icon\";\nimport { IconButton } from \"./IconButton\";\nimport { Menu, MenuRadioGroup, MenuRadioItem } from \"./Menu\";\nimport { Pagination } from \"./Navigation\";\nimport { useBelow } from \"../lib/use-media-query\";\n\n/* ============================================================================\n PAGINATIONBAR — the one footer every paged list in this system uses.\n\n Before this component there were two, hand-rolled independently:\n `CardList.tsx`'s (range text + a plain native `Select` for per-page +\n prev/\"Page N of M\"/next) and `DataTable`'s (range text + the numbered\n `Pagination` control, no per-page control at all). Neither wrapped\n gracefully — `CardList`'s used `flex-wrap`, so at ordinary widths the range\n text sat alone on its own line and the per-page select and page controls\n wrapped to a second. `flex-nowrap` here is not a style preference, it is\n the actual fix: the bar simply has nowhere to put a second row.\n\n THE PER-PAGE CONTROL IS A POPOVER, NOT A SELECT. A native `<select>` opens\n its OS's own list — different chrome, no keyboard-radio affordance, and\n visually unrelated to every other menu in the app. `CardList`'s own Sort\n button (a `Menu` trigger showing an icon, opening `MenuRadioGroup` /\n `MenuRadioItem` radio options) already solved exactly this shape one\n control to the left, so the per-page picker is built the identical way —\n same trigger silhouette, same popup, same keyboard model — rather than\n inventing a second pattern for what is the same kind of choice.\n\n PAGE NAVIGATION IS A MODE, NOT A FORK. The two existing footers disagreed\n about this because their lists have different shapes: `CardList` pages a\n short, usually-single-page list, where \"Page 1 of 1\" is the common case and\n jumping past adjacent pages is never needed. `DataTable` backs lists long\n enough that the numbered window earns its width. Rather than picking one\n and quietly regressing the other's UX, `mode` says which: `\"simple\"`\n (prev / \"Page N of M\" / next — fixed width regardless of how many pages\n exist, and the shape this bar defaults to because it is the one guaranteed\n to fit a narrow bar with no help from anything else) or `\"numbered\"` (the\n existing windowed `Pagination` control, which already collapses its own\n siblings below the `sm` breakpoint via `useBelow(\"sm\")`).\n\n NEVER WRAPS, AT ANY WIDTH THE DASHBOARD RENDERS AT (375/768/1024/1280).\n What degrades first, in order, as the bar runs out of room:\n 1. The per-page trigger's \" / page\" suffix drops below `sm` — the bare\n number plus the chevron is still an unambiguous control.\n 2. The range text is `min-w-0 truncate` and sits in a `shrink` slot, so a\n very long total (\"1,204,391 of 1,204,391\") clips with an ellipsis\n rather than pushing the controls (which never shrink) off the row.\n 3. In `\"numbered\"` mode, `Pagination` itself drops its sibling page\n numbers below `sm`, exactly as it already does inside `DataTable`.\n Nothing here ever calls `flex-wrap`, so there is no second row to fall\n into regardless of how far degradation goes.\n ========================================================================= */\n\nexport type PaginationBarMode = \"numbered\" | \"simple\";\n\nexport interface PaginationBarProps {\n /** 1-based current page. */\n page: number;\n /** Rows per page. Should be one of `pageSizeOptions`. */\n pageSize: number;\n /** The sizes offered in the per-page popover, in the order shown. */\n pageSizeOptions: readonly number[];\n /** Total matching items across every page — drives the range text and page count. */\n total: number;\n onPageChange: (page: number) => void;\n onPageSizeChange: (size: number) => void;\n /**\n * `\"simple\"`: ‹ Page N of M › — fixed width regardless of how many pages\n * exist, and the shape guaranteed to fit a narrow bar unaided.\n * `\"numbered\"`: the numbered-window `Pagination` control, for a list long\n * enough that jumping past adjacent pages is worth the room it costs.\n * @default \"simple\"\n */\n mode?: PaginationBarMode;\n /** Names the bar for assistive tech, e.g. \"Cards\" or \"Dispatches\". */\n label: string;\n className?: string;\n}\n\n/**\n * Range text + a popover-based per-page picker + page navigation, always on\n * one row. See the file banner above for the reasoning behind the popover\n * and the `mode` split — this replaces both of gpt-manager's pre-existing,\n * differently-shaped hand-rolled footers.\n */\nexport function PaginationBar({\n page,\n pageSize,\n pageSizeOptions,\n total,\n onPageChange,\n onPageSizeChange,\n mode = \"simple\",\n label,\n className,\n}: PaginationBarProps) {\n const pageCount = Math.max(1, Math.ceil(total / pageSize));\n const clampedPage = Math.min(page, pageCount);\n const first = total === 0 ? 0 : (clampedPage - 1) * pageSize + 1;\n const last = total === 0 ? 0 : Math.min(total, clampedPage * pageSize);\n /* Drives ONLY the per-page trigger's label — see degradation step 1 above.\n `Pagination`'s own sibling collapse is internal to that component and\n applies independently in `\"numbered\"` mode. */\n const narrow = useBelow(\"sm\");\n const strings = useUiStrings().paginationBar;\n const fmt = useNumberFormat();\n\n return (\n <nav\n aria-label={strings.navLabel(label)}\n className={cn(\"flex flex-nowrap items-center justify-between gap-2\", className)}\n >\n <span\n className=\"min-w-0 shrink truncate text-xs text-secondary tabular\"\n aria-live=\"polite\"\n >\n {strings.range(fmt(first), fmt(last), fmt(total))}\n </span>\n\n <div className=\"flex shrink-0 items-center gap-2\">\n <Menu\n align=\"end\"\n trigger={\n <Button\n size=\"sm\"\n variant=\"outline\"\n aria-label={strings.rowsPerPage(fmt(pageSize))}\n trailingIcon={<Icon name=\"chevron-down\" size=\"xs\" className=\"text-tertiary\" />}\n >\n {narrow ? fmt(pageSize) : <span className=\"whitespace-nowrap\">{strings.pageSizeTrigger(fmt(pageSize))}</span>}\n </Button>\n }\n >\n <MenuRadioGroup\n value={String(pageSize)}\n onValueChange={(value) => onPageSizeChange(Number(value))}\n >\n {pageSizeOptions.map((size) => (\n <MenuRadioItem key={size} value={String(size)}>\n {strings.pageSizeOption(fmt(size))}\n </MenuRadioItem>\n ))}\n </MenuRadioGroup>\n </Menu>\n\n {mode === \"numbered\" ? (\n pageCount > 1 && (\n <Pagination page={clampedPage} pageCount={pageCount} onPageChange={onPageChange} />\n )\n ) : (\n <div className=\"flex items-center gap-1\">\n <IconButton\n icon={<Icon name=\"chevron-left\" size=\"sm\" />}\n label={strings.previousPage}\n variant=\"ghost\"\n size=\"sm\"\n disabledReason={clampedPage <= 1 ? strings.onFirstPage : undefined}\n onClick={() => onPageChange(clampedPage - 1)}\n />\n <span className=\"text-xs whitespace-nowrap text-secondary tabular\">\n {strings.pageOf(fmt(clampedPage), fmt(pageCount))}\n </span>\n <IconButton\n icon={<Icon name=\"chevron-right\" size=\"sm\" />}\n label={strings.nextPage}\n variant=\"ghost\"\n size=\"sm\"\n disabledReason={clampedPage >= pageCount ? strings.onLastPage : undefined}\n onClick={() => onPageChange(clampedPage + 1)}\n />\n </div>\n )}\n </div>\n </nav>\n );\n}\n"],"names":["PaginationBar","page","pageSize","pageSizeOptions","total","onPageChange","onPageSizeChange","mode","label","className","pageCount","clampedPage","first","last","narrow","useBelow","strings","useUiStrings","fmt","useNumberFormat","jsxs","cn","jsx","Menu","Button","Icon","MenuRadioGroup","value","size","MenuRadioItem","Pagination","IconButton"],"mappings":";;;;;;;;;;AAuFO,SAASA,EAAc;AAAA,EAC5B,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,WAAAC;AACF,GAAuB;AACrB,QAAMC,IAAY,KAAK,IAAI,GAAG,KAAK,KAAKN,IAAQF,CAAQ,CAAC,GACnDS,IAAc,KAAK,IAAIV,GAAMS,CAAS,GACtCE,IAAQR,MAAU,IAAI,KAAKO,IAAc,KAAKT,IAAW,GACzDW,IAAOT,MAAU,IAAI,IAAI,KAAK,IAAIA,GAAOO,IAAcT,CAAQ,GAI/DY,IAASC,EAAS,IAAI,GACtBC,IAAUC,IAAe,eACzBC,IAAMC,EAAA;AAEZ,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,cAAYJ,EAAQ,SAASR,CAAK;AAAA,MAClC,WAAWa,EAAG,uDAAuDZ,CAAS;AAAA,MAE9E,UAAA;AAAA,QAAA,gBAAAa;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,aAAU;AAAA,YAET,UAAAN,EAAQ,MAAME,EAAIN,CAAK,GAAGM,EAAIL,CAAI,GAAGK,EAAId,CAAK,CAAC;AAAA,UAAA;AAAA,QAAA;AAAA,QAGlD,gBAAAgB,EAAC,OAAA,EAAI,WAAU,oCACb,UAAA;AAAA,UAAA,gBAAAE;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,OAAM;AAAA,cACN,SACE,gBAAAD;AAAA,gBAACE;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,cAAYR,EAAQ,YAAYE,EAAIhB,CAAQ,CAAC;AAAA,kBAC7C,gCAAeuB,GAAA,EAAK,MAAK,gBAAe,MAAK,MAAK,WAAU,iBAAgB;AAAA,kBAE3E,UAAAX,IAASI,EAAIhB,CAAQ,IAAI,gBAAAoB,EAAC,QAAA,EAAK,WAAU,qBAAqB,UAAAN,EAAQ,gBAAgBE,EAAIhB,CAAQ,CAAC,EAAA,CAAE;AAAA,gBAAA;AAAA,cAAA;AAAA,cAI1G,UAAA,gBAAAoB;AAAA,gBAACI;AAAA,gBAAA;AAAA,kBACC,OAAO,OAAOxB,CAAQ;AAAA,kBACtB,eAAe,CAACyB,MAAUrB,EAAiB,OAAOqB,CAAK,CAAC;AAAA,kBAEvD,YAAgB,IAAI,CAACC,MACpB,gBAAAN,EAACO,KAAyB,OAAO,OAAOD,CAAI,GACzC,YAAQ,eAAeV,EAAIU,CAAI,CAAC,EAAA,GADfA,CAEpB,CACD;AAAA,gBAAA;AAAA,cAAA;AAAA,YACH;AAAA,UAAA;AAAA,UAGDrB,MAAS,aACRG,IAAY,uBACToB,GAAA,EAAW,MAAMnB,GAAa,WAAAD,GAAsB,cAAAL,EAAA,CAA4B,IAGnF,gBAAAe,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,YAAA,gBAAAE;AAAA,cAACS;AAAA,cAAA;AAAA,gBACC,MAAM,gBAAAT,EAACG,GAAA,EAAK,MAAK,gBAAe,MAAK,MAAK;AAAA,gBAC1C,OAAOT,EAAQ;AAAA,gBACf,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,gBAAgBL,KAAe,IAAIK,EAAQ,cAAc;AAAA,gBACzD,SAAS,MAAMX,EAAaM,IAAc,CAAC;AAAA,cAAA;AAAA,YAAA;AAAA,YAE7C,gBAAAW,EAAC,QAAA,EAAK,WAAU,oDACb,UAAAN,EAAQ,OAAOE,EAAIP,CAAW,GAAGO,EAAIR,CAAS,CAAC,EAAA,CAClD;AAAA,YACA,gBAAAY;AAAA,cAACS;AAAA,cAAA;AAAA,gBACC,MAAM,gBAAAT,EAACG,GAAA,EAAK,MAAK,iBAAgB,MAAK,MAAK;AAAA,gBAC3C,OAAOT,EAAQ;AAAA,gBACf,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,gBAAgBL,KAAeD,IAAYM,EAAQ,aAAa;AAAA,gBAChE,SAAS,MAAMX,EAAaM,IAAc,CAAC;AAAA,cAAA;AAAA,YAAA;AAAA,UAC7C,EAAA,CACF;AAAA,QAAA,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|