@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,396 @@
|
|
|
1
|
+
import { jsx as E, jsxs as oe } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as L, useLayoutEffect as J, useState as H, useCallback as k, useMemo as q, useId as Q, useEffect as re, useContext as ie, createContext as se } from "react";
|
|
3
|
+
import { cn as _ } from "../lib/cn.js";
|
|
4
|
+
import { usePersistedState as ae } from "../lib/persist.js";
|
|
5
|
+
import { useBelow as le } from "../lib/use-media-query.js";
|
|
6
|
+
import { Tabs as ce, TabList as ue, Tab as de } from "./Tabs.js";
|
|
7
|
+
const Z = se(null);
|
|
8
|
+
function ee(m) {
|
|
9
|
+
const n = ie(Z);
|
|
10
|
+
if (!n)
|
|
11
|
+
throw new Error(`<${m}> must be rendered inside a <PanelGroup>.`);
|
|
12
|
+
return n;
|
|
13
|
+
}
|
|
14
|
+
const K = (m, n, b) => Math.min(b, Math.max(n, m)), fe = (m) => typeof m == "object" && m !== null && !Array.isArray(m) && Object.values(m).every((n) => typeof n == "number" && Number.isFinite(n));
|
|
15
|
+
function ze({
|
|
16
|
+
children: m,
|
|
17
|
+
direction: n = "horizontal",
|
|
18
|
+
narrowBelow: b = "md",
|
|
19
|
+
narrowMode: h = "tabs",
|
|
20
|
+
persistId: T,
|
|
21
|
+
onLayout: v,
|
|
22
|
+
className: i,
|
|
23
|
+
ref: d
|
|
24
|
+
}) {
|
|
25
|
+
const N = le(b === !1 ? "sm" : b), a = b !== !1 && N && h, s = L(null), C = L(/* @__PURE__ */ new Map()), [z, x] = H(0), [D, j] = H(!1), [M, y] = H(null), [t, r, w] = ae(T, {}, {
|
|
26
|
+
isValid: fe
|
|
27
|
+
}), g = k((e) => (C.current.set(e.id, e), x((o) => o + 1), () => {
|
|
28
|
+
C.current.delete(e.id), x((o) => o + 1);
|
|
29
|
+
}), []), f = k(() => [...C.current.values()].sort(
|
|
30
|
+
(e, o) => e.node.compareDocumentPosition(o.node) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1
|
|
31
|
+
), []), O = q(
|
|
32
|
+
() => f().map((e) => ({ id: e.id, label: e.label ?? e.id })),
|
|
33
|
+
// `ordered` reads a ref, so `membership` is what makes this recompute.
|
|
34
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
35
|
+
[z, f]
|
|
36
|
+
), G = O.some((e) => e.id === M) ? M : O[0]?.id ?? null, R = a === "tabs" && O.length >= 2, B = Q(), A = k((e) => `${B}-tab-${e}`, [B]), W = k((e) => `${B}-panel-${e}`, [B]);
|
|
37
|
+
J(() => {
|
|
38
|
+
const e = f();
|
|
39
|
+
if (e.length === 0) return;
|
|
40
|
+
const o = e.map((u) => u.id), l = Object.keys(t);
|
|
41
|
+
if (l.length === o.length && o.every((u) => Object.hasOwn(t, u))) return;
|
|
42
|
+
l.length > 0 && w();
|
|
43
|
+
const c = e.reduce((u, P) => u + (P.defaultSize ?? 0), 0), I = e.filter((u) => u.defaultSize === void 0), S = I.length > 0 ? Math.max(0, 100 - c) / I.length : 0;
|
|
44
|
+
r(
|
|
45
|
+
Object.fromEntries(e.map((u) => [u.id, u.defaultSize ?? S]))
|
|
46
|
+
);
|
|
47
|
+
}, [z, f, w, r]), re(() => {
|
|
48
|
+
Object.keys(t).length > 0 && v?.(t);
|
|
49
|
+
}, [t, v]);
|
|
50
|
+
const U = k(
|
|
51
|
+
(e) => {
|
|
52
|
+
const o = f(), l = [...o].reverse().find(
|
|
53
|
+
(c) => !!(c.node.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_FOLLOWING)
|
|
54
|
+
), p = o.find(
|
|
55
|
+
(c) => !!(c.node.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_PRECEDING)
|
|
56
|
+
);
|
|
57
|
+
return l && p ? [l, p] : null;
|
|
58
|
+
},
|
|
59
|
+
[f]
|
|
60
|
+
), $ = k(() => {
|
|
61
|
+
const e = s.current;
|
|
62
|
+
if (!e) return 0;
|
|
63
|
+
const o = n === "horizontal" ? e.clientWidth : e.clientHeight, l = [...e.querySelectorAll("[data-panel-resizer]")].reduce(
|
|
64
|
+
(p, c) => p + (n === "horizontal" ? c.offsetWidth : c.offsetHeight),
|
|
65
|
+
0
|
|
66
|
+
);
|
|
67
|
+
return Math.max(1, o - l);
|
|
68
|
+
}, [n]), V = k(
|
|
69
|
+
(e, o, l) => {
|
|
70
|
+
r((p) => {
|
|
71
|
+
const c = p[e.id], I = p[o.id];
|
|
72
|
+
if (c === void 0 || I === void 0) return p;
|
|
73
|
+
let S = K(l, e.min - c, e.max - c);
|
|
74
|
+
S = K(S, I - o.max, I - o.min);
|
|
75
|
+
let u = c + S, P = I - S;
|
|
76
|
+
if (e.collapsible && l < 0 && u <= e.min) {
|
|
77
|
+
const F = (e.min + e.collapsedSize) / 2;
|
|
78
|
+
c + l < F && (P += u - e.collapsedSize, u = e.collapsedSize);
|
|
79
|
+
}
|
|
80
|
+
if (o.collapsible && l > 0 && P <= o.min) {
|
|
81
|
+
const F = (o.min + o.collapsedSize) / 2;
|
|
82
|
+
I - l < F && (u += P - o.collapsedSize, P = o.collapsedSize);
|
|
83
|
+
}
|
|
84
|
+
return u === c && P === I ? p : { ...p, [e.id]: u, [o.id]: P };
|
|
85
|
+
});
|
|
86
|
+
},
|
|
87
|
+
[r]
|
|
88
|
+
), X = k(
|
|
89
|
+
(e, o) => {
|
|
90
|
+
r((l) => {
|
|
91
|
+
const p = l[e.id], c = l[o.id];
|
|
92
|
+
if (p === void 0 || c === void 0) return l;
|
|
93
|
+
const S = p <= e.collapsedSize + 0.5 ? e.defaultSize ?? e.min : e.collapsedSize;
|
|
94
|
+
return { ...l, [e.id]: S, [o.id]: c + (p - S) };
|
|
95
|
+
});
|
|
96
|
+
},
|
|
97
|
+
[r]
|
|
98
|
+
), Y = k(() => {
|
|
99
|
+
w(), x((e) => e + 1);
|
|
100
|
+
}, [w]), te = q(
|
|
101
|
+
() => ({
|
|
102
|
+
direction: n,
|
|
103
|
+
narrow: a,
|
|
104
|
+
tabbed: R,
|
|
105
|
+
selected: G,
|
|
106
|
+
tabDomId: A,
|
|
107
|
+
panelDomId: W,
|
|
108
|
+
sizes: t,
|
|
109
|
+
dragging: D,
|
|
110
|
+
register: g,
|
|
111
|
+
neighbours: U,
|
|
112
|
+
resizeBy: V,
|
|
113
|
+
toggleCollapse: X,
|
|
114
|
+
resetLayout: Y,
|
|
115
|
+
measure: $,
|
|
116
|
+
setDragging: j
|
|
117
|
+
}),
|
|
118
|
+
[
|
|
119
|
+
n,
|
|
120
|
+
a,
|
|
121
|
+
R,
|
|
122
|
+
G,
|
|
123
|
+
A,
|
|
124
|
+
W,
|
|
125
|
+
t,
|
|
126
|
+
D,
|
|
127
|
+
g,
|
|
128
|
+
U,
|
|
129
|
+
V,
|
|
130
|
+
X,
|
|
131
|
+
Y,
|
|
132
|
+
$
|
|
133
|
+
]
|
|
134
|
+
), ne = /* @__PURE__ */ E(
|
|
135
|
+
"div",
|
|
136
|
+
{
|
|
137
|
+
ref: (e) => {
|
|
138
|
+
s.current = e, typeof d == "function" ? d(e) : d && (d.current = e);
|
|
139
|
+
},
|
|
140
|
+
"data-panel-group": "",
|
|
141
|
+
"data-direction": n,
|
|
142
|
+
"data-narrow": a || void 0,
|
|
143
|
+
"data-dragging": D || void 0,
|
|
144
|
+
className: _(
|
|
145
|
+
/* Fills the box it is given, in BOTH axes. A layout primitive that
|
|
146
|
+
sizes to its content is the wrong default: panels have no
|
|
147
|
+
intrinsic height, so an auto-height group collapses to whatever
|
|
148
|
+
text happens to be inside it and the splitters end up shorter than
|
|
149
|
+
the panes they divide. */
|
|
150
|
+
"flex min-h-0 min-w-0",
|
|
151
|
+
/* Stacked, the group is as tall as its content and scrolls with the
|
|
152
|
+
page. Keeping `size-full` would hand every panel a share of a fixed
|
|
153
|
+
height, which is the same crushing in the other axis. */
|
|
154
|
+
a === "stack" && "h-auto w-full flex-col",
|
|
155
|
+
/* Tabbed, the group is one pane deep, and it is a FLEX CHILD of the
|
|
156
|
+
shell rather than the outermost box — `size-full` here would be
|
|
157
|
+
100% of the shell on top of the strip above it, so it overflows by
|
|
158
|
+
exactly the height of the strip. */
|
|
159
|
+
a === "tabs" && "w-full flex-1 flex-col",
|
|
160
|
+
!a && "size-full",
|
|
161
|
+
!a && (n === "horizontal" ? "flex-row" : "flex-col"),
|
|
162
|
+
/* While dragging, the pointer owns the screen: no text selection
|
|
163
|
+
anywhere, and the resize cursor stays put even when the pointer
|
|
164
|
+
outruns the splitter. */
|
|
165
|
+
D && "select-none",
|
|
166
|
+
D && (n === "horizontal" ? "cursor-col-resize" : "cursor-row-resize"),
|
|
167
|
+
/* The caller's classes belong on the OUTERMOST box, because that is
|
|
168
|
+
what they are sizing. Tabbed, that box is the shell below, not this
|
|
169
|
+
div: this one is a flex child, so `flex-1` would beat any height set
|
|
170
|
+
here and the group would collapse to the strip. */
|
|
171
|
+
a !== "tabs" && i
|
|
172
|
+
),
|
|
173
|
+
children: m
|
|
174
|
+
}
|
|
175
|
+
);
|
|
176
|
+
return /* @__PURE__ */ E(Z, { value: te, children: /* @__PURE__ */ oe(
|
|
177
|
+
ce,
|
|
178
|
+
{
|
|
179
|
+
value: G,
|
|
180
|
+
onValueChange: (e) => y(typeof e == "string" ? e : null),
|
|
181
|
+
"data-panel-shell": "",
|
|
182
|
+
className: _(
|
|
183
|
+
a === "tabs" ? "size-full min-h-0" : "contents",
|
|
184
|
+
a === "tabs" && i
|
|
185
|
+
),
|
|
186
|
+
children: [
|
|
187
|
+
R ? /* @__PURE__ */ E(ue, { children: O.map((e) => /* @__PURE__ */ E(
|
|
188
|
+
de,
|
|
189
|
+
{
|
|
190
|
+
value: e.id,
|
|
191
|
+
id: A(e.id),
|
|
192
|
+
"aria-controls": W(e.id),
|
|
193
|
+
children: e.label
|
|
194
|
+
},
|
|
195
|
+
e.id
|
|
196
|
+
)) }) : null,
|
|
197
|
+
ne
|
|
198
|
+
]
|
|
199
|
+
}
|
|
200
|
+
) });
|
|
201
|
+
}
|
|
202
|
+
function xe({
|
|
203
|
+
children: m,
|
|
204
|
+
id: n,
|
|
205
|
+
label: b,
|
|
206
|
+
defaultSize: h,
|
|
207
|
+
minSize: T = 10,
|
|
208
|
+
maxSize: v = 100,
|
|
209
|
+
collapsible: i = !1,
|
|
210
|
+
collapsedSize: d = 0,
|
|
211
|
+
className: N,
|
|
212
|
+
ref: a
|
|
213
|
+
}) {
|
|
214
|
+
const s = ee("Panel"), C = L(null), { register: z } = s;
|
|
215
|
+
J(() => {
|
|
216
|
+
const r = C.current;
|
|
217
|
+
if (r)
|
|
218
|
+
return z({
|
|
219
|
+
id: n,
|
|
220
|
+
node: r,
|
|
221
|
+
min: T,
|
|
222
|
+
max: v,
|
|
223
|
+
collapsible: i,
|
|
224
|
+
collapsedSize: d,
|
|
225
|
+
defaultSize: h,
|
|
226
|
+
label: b
|
|
227
|
+
});
|
|
228
|
+
}, [z, n, T, v, i, d, h, b]);
|
|
229
|
+
const x = s.sizes[n], D = x !== void 0 && x <= d + 0.5, j = {
|
|
230
|
+
flexGrow: 0,
|
|
231
|
+
flexShrink: 0,
|
|
232
|
+
flexBasis: "auto",
|
|
233
|
+
minWidth: 0,
|
|
234
|
+
minHeight: 0
|
|
235
|
+
}, M = {
|
|
236
|
+
flexGrow: s.narrow === "tabs" ? 1 : x ?? 1,
|
|
237
|
+
flexBasis: 0,
|
|
238
|
+
/* Without this, a panel containing anything unbreakable — a wide table,
|
|
239
|
+
a long unwrapped path — refuses to shrink below its content and
|
|
240
|
+
silently overrides the layout. It is the single most common reason a
|
|
241
|
+
splitter "stops working" partway along its travel. */
|
|
242
|
+
minWidth: 0,
|
|
243
|
+
minHeight: 0,
|
|
244
|
+
overflow: "hidden"
|
|
245
|
+
}, y = s.tabbed, t = y && s.selected !== n;
|
|
246
|
+
return /* @__PURE__ */ E(
|
|
247
|
+
"div",
|
|
248
|
+
{
|
|
249
|
+
ref: (r) => {
|
|
250
|
+
C.current = r, typeof a == "function" ? a(r) : a && (a.current = r);
|
|
251
|
+
},
|
|
252
|
+
"data-panel": n,
|
|
253
|
+
"data-collapsed": D || void 0,
|
|
254
|
+
id: y ? s.panelDomId(n) : void 0,
|
|
255
|
+
role: y ? "tabpanel" : void 0,
|
|
256
|
+
"aria-labelledby": y ? s.tabDomId(n) : void 0,
|
|
257
|
+
tabIndex: y && !t ? 0 : void 0,
|
|
258
|
+
hidden: t || void 0,
|
|
259
|
+
inert: t || void 0,
|
|
260
|
+
style: s.narrow === "stack" ? j : M,
|
|
261
|
+
className: _(
|
|
262
|
+
/* COLUMN, deliberately. As a row, the cross axis is vertical: content
|
|
263
|
+
stretches to the panel's height but takes its own WIDTH, so a panel
|
|
264
|
+
sized to 58% renders its content at whatever the text needed and
|
|
265
|
+
leaves the rest blank. As a column the cross axis is horizontal and
|
|
266
|
+
content fills the panel it was given, which is the only thing anyone
|
|
267
|
+
means by putting it there. */
|
|
268
|
+
"relative flex flex-col min-h-0 min-w-0",
|
|
269
|
+
/* Collapsing and keyboard steps animate; dragging must not. During a
|
|
270
|
+
drag the panel has to track the pointer exactly, and a transition
|
|
271
|
+
there reads as lag rather than polish — so the group turns it off
|
|
272
|
+
for the duration. */
|
|
273
|
+
"transition-[var(--tx-colors),flex-grow] duration-(--dur-base) ease-(--ease-standard)",
|
|
274
|
+
"[[data-panel-group][data-dragging]_&]:transition-none",
|
|
275
|
+
/* A focusable tabpanel (WAI-ARIA: so a keyboard user can reach a panel
|
|
276
|
+
with nothing focusable in it) must not grow a focus ring around the
|
|
277
|
+
whole pane on click. */
|
|
278
|
+
y && "outline-none",
|
|
279
|
+
N
|
|
280
|
+
),
|
|
281
|
+
children: m
|
|
282
|
+
}
|
|
283
|
+
);
|
|
284
|
+
}
|
|
285
|
+
function ye({
|
|
286
|
+
label: m,
|
|
287
|
+
step: n = 4,
|
|
288
|
+
withGrip: b = !0,
|
|
289
|
+
disabled: h = !1,
|
|
290
|
+
className: T,
|
|
291
|
+
ref: v
|
|
292
|
+
}) {
|
|
293
|
+
const i = ee("PanelResizer"), d = L(null), N = L(null), a = Q(), s = i.direction === "horizontal", z = (d.current ? i.neighbours(d.current) : null)?.[0], x = z ? i.sizes[z.id] : void 0, D = (t) => {
|
|
294
|
+
if (h || t.button !== 0) return;
|
|
295
|
+
const r = d.current;
|
|
296
|
+
r && (r.setPointerCapture(t.pointerId), N.current = {
|
|
297
|
+
position: s ? t.clientX : t.clientY,
|
|
298
|
+
available: i.measure()
|
|
299
|
+
}, i.setDragging(!0), t.preventDefault());
|
|
300
|
+
}, j = (t) => {
|
|
301
|
+
const r = N.current, w = d.current;
|
|
302
|
+
if (!r || !w) return;
|
|
303
|
+
const g = i.neighbours(w);
|
|
304
|
+
if (!g) return;
|
|
305
|
+
const f = s ? t.clientX : t.clientY, O = (f - r.position) / r.available * 100;
|
|
306
|
+
O !== 0 && (i.resizeBy(g[0], g[1], O), r.position = f);
|
|
307
|
+
}, M = (t) => {
|
|
308
|
+
N.current && (N.current = null, i.setDragging(!1), d.current?.releasePointerCapture(t.pointerId));
|
|
309
|
+
}, y = (t) => {
|
|
310
|
+
const r = d.current;
|
|
311
|
+
if (h || !r) return;
|
|
312
|
+
const w = i.neighbours(r);
|
|
313
|
+
if (!w) return;
|
|
314
|
+
const [g, f] = w, O = s ? "ArrowLeft" : "ArrowUp", G = s ? "ArrowRight" : "ArrowDown";
|
|
315
|
+
switch (t.key) {
|
|
316
|
+
case O:
|
|
317
|
+
i.resizeBy(g, f, -n);
|
|
318
|
+
break;
|
|
319
|
+
case G:
|
|
320
|
+
i.resizeBy(g, f, n);
|
|
321
|
+
break;
|
|
322
|
+
case "Home":
|
|
323
|
+
i.resizeBy(g, f, -100);
|
|
324
|
+
break;
|
|
325
|
+
case "End":
|
|
326
|
+
i.resizeBy(g, f, 100);
|
|
327
|
+
break;
|
|
328
|
+
case "Enter":
|
|
329
|
+
if (!g.collapsible) return;
|
|
330
|
+
i.toggleCollapse(g, f);
|
|
331
|
+
break;
|
|
332
|
+
case "F6":
|
|
333
|
+
i.resetLayout();
|
|
334
|
+
break;
|
|
335
|
+
default:
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
t.preventDefault();
|
|
339
|
+
};
|
|
340
|
+
return i.narrow ? null : /* @__PURE__ */ E(
|
|
341
|
+
"div",
|
|
342
|
+
{
|
|
343
|
+
ref: (t) => {
|
|
344
|
+
d.current = t, typeof v == "function" ? v(t) : v && (v.current = t);
|
|
345
|
+
},
|
|
346
|
+
"data-panel-resizer": "",
|
|
347
|
+
id: a,
|
|
348
|
+
role: "separator",
|
|
349
|
+
"aria-label": m,
|
|
350
|
+
"aria-orientation": s ? "vertical" : "horizontal",
|
|
351
|
+
"aria-valuenow": x === void 0 ? void 0 : Math.round(x),
|
|
352
|
+
"aria-valuemin": z?.min,
|
|
353
|
+
"aria-valuemax": z?.max,
|
|
354
|
+
"aria-disabled": h || void 0,
|
|
355
|
+
tabIndex: h ? -1 : 0,
|
|
356
|
+
onPointerDown: D,
|
|
357
|
+
onPointerMove: j,
|
|
358
|
+
onPointerUp: M,
|
|
359
|
+
onPointerCancel: M,
|
|
360
|
+
onKeyDown: y,
|
|
361
|
+
onDoubleClick: () => !h && i.resetLayout(),
|
|
362
|
+
className: _(
|
|
363
|
+
"group/resizer relative flex shrink-0 items-center justify-center",
|
|
364
|
+
/* The visible line is 1px; the HIT AREA is not. A one-pixel drag
|
|
365
|
+
target is a well-known way to make a splitter feel broken, so the
|
|
366
|
+
element is a comfortable band and the line is drawn inside it. */
|
|
367
|
+
s ? "w-2 cursor-col-resize" : "h-2 cursor-row-resize",
|
|
368
|
+
h && "pointer-events-none cursor-default opacity-50",
|
|
369
|
+
"before:absolute before:bg-border before:transition-colors before:duration-(--dur-fast)",
|
|
370
|
+
s ? "before:inset-y-0 before:w-px" : "before:inset-x-0 before:h-px",
|
|
371
|
+
"hover:before:bg-accent-border focus-visible:before:bg-accent",
|
|
372
|
+
"[[data-panel-group][data-dragging]_&]:before:bg-accent",
|
|
373
|
+
"outline-none focus-visible:ring-2 focus-visible:ring-focus-ring focus-visible:ring-offset-0",
|
|
374
|
+
T
|
|
375
|
+
),
|
|
376
|
+
children: b && /* @__PURE__ */ E(
|
|
377
|
+
"span",
|
|
378
|
+
{
|
|
379
|
+
"aria-hidden": !0,
|
|
380
|
+
className: _(
|
|
381
|
+
"relative rounded-full bg-border-strong opacity-0 transition-[var(--tx-colors),opacity] duration-(--dur-fast)",
|
|
382
|
+
"group-hover/resizer:opacity-100 group-focus-visible/resizer:opacity-100",
|
|
383
|
+
"[[data-panel-group][data-dragging]_&]:opacity-100",
|
|
384
|
+
s ? "h-6 w-[3px]" : "h-[3px] w-6"
|
|
385
|
+
)
|
|
386
|
+
}
|
|
387
|
+
)
|
|
388
|
+
}
|
|
389
|
+
);
|
|
390
|
+
}
|
|
391
|
+
export {
|
|
392
|
+
xe as Panel,
|
|
393
|
+
ze as PanelGroup,
|
|
394
|
+
ye as PanelResizer
|
|
395
|
+
};
|
|
396
|
+
//# sourceMappingURL=Panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.js","sources":["../../src/components/Panel.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type PointerEvent as ReactPointerEvent,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { usePersistedState } from \"../lib/persist\";\nimport { useBelow, type Breakpoint } from \"../lib/use-media-query\";\nimport { Tab, TabList, Tabs } from \"./Tabs\";\n\n/* ============================================================================\n RESIZABLE PANELS\n A group of panes separated by draggable splitters, implementing the WAI-ARIA\n window splitter pattern.\n\n BUILT RATHER THAN BORROWED. The obvious dependency changed its persistence\n API between major versions (a prop on the group became a hook with a storage\n argument), which is the same instability that pushed us off CVA in D-11. The\n widget itself is a well-specified ARIA pattern, and building it means the\n layout persists through the same primitive as every other remembered\n setting, animates on the same curves, and adds nothing to a consumer's\n bundle.\n\n SIZES ARE FLEX-GROW, NOT WIDTHS. Growth factors are relative, so the browser\n does the arithmetic: no resize observer, no pixel bookkeeping, no recompute\n on window resize, and a group that is correct at every container width for\n free. Percentages are only how we TALK about them — the numbers are\n normalised to sum to 100 so `aria-valuenow` means what a person expects.\n ========================================================================= */\n\nexport type PanelDirection = \"horizontal\" | \"vertical\";\n\n/** What a group turns into below its narrow breakpoint. */\nexport type PanelNarrowMode = \"tabs\" | \"stack\";\n\ntype Registration = {\n id: string;\n node: HTMLElement;\n min: number;\n max: number;\n collapsible: boolean;\n collapsedSize: number;\n defaultSize?: number;\n /** Only read in `tabs` mode, but registered always: the group cannot know\n which mode it is in at the moment a panel registers. */\n label?: string;\n};\n\ntype Sizes = Record<string, number>;\n\ntype GroupContextValue = {\n direction: PanelDirection;\n /** What the group has collapsed to for a narrow viewport, or `false` while it\n is still a splitter — see `narrowBelow` / `narrowMode`. */\n narrow: false | PanelNarrowMode;\n /** True only while a tab strip is actually on screen: tabs mode AND at least\n two registered panels. A lone panel has nothing to switch to, so it gets\n no strip and no tabpanel semantics — it simply fills the group. */\n tabbed: boolean;\n /** The panel whose tab is selected. Only meaningful while `tabbed`. */\n selected: string | null;\n /** DOM ids tying each tab to its panel (`aria-controls` / `aria-labelledby`). */\n tabDomId: (panelId: string) => string;\n panelDomId: (panelId: string) => string;\n sizes: Sizes;\n dragging: boolean;\n register: (registration: Registration) => () => void;\n /** Panels flanking a splitter, resolved from DOM order rather than an index\n prop — so conditional panels and wrapper elements cannot desynchronise it. */\n neighbours: (resizer: HTMLElement) => [Registration, Registration] | null;\n resizeBy: (before: Registration, after: Registration, deltaPercent: number) => void;\n toggleCollapse: (before: Registration, after: Registration) => void;\n resetLayout: () => void;\n measure: () => number;\n setDragging: (value: boolean) => void;\n};\n\nconst GroupContext = createContext<GroupContextValue | null>(null);\n\nfunction useGroup(component: string) {\n const context = useContext(GroupContext);\n if (!context) {\n throw new Error(`<${component}> must be rendered inside a <PanelGroup>.`);\n }\n return context;\n}\n\nconst clamp = (value: number, min: number, max: number) => Math.min(max, Math.max(min, value));\n\nconst isSizes = (value: unknown): value is Sizes =>\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value) &&\n Object.values(value).every((entry) => typeof entry === \"number\" && Number.isFinite(entry));\n\nexport interface PanelGroupProps {\n children: ReactNode;\n direction?: PanelDirection;\n /**\n * Below this width the group stops being a splitter. `narrowMode` decides\n * what it becomes; either way splitters are not rendered and stored sizes are\n * ignored until the width comes back.\n *\n * A SPLITTER IS A POINTER AFFORDANCE, and phone width has neither the room\n * nor the precision for it. Left as a splitter, a two-pane chat at 375px\n * gives each pane about 170px: prose wraps one word per line and the buttons\n * inside it collide. That is not a narrower version of the layout, it is a\n * broken one.\n *\n * Defaults to `md` (768px) — a portrait tablet is the last width where two\n * panes and a splitter between them still leave each pane a readable column.\n * Pass `false` for a group that genuinely must stay split at every width.\n */\n narrowBelow?: Breakpoint | false;\n /**\n * What the group becomes below `narrowBelow`.\n *\n * TABS is the default, for panes a person moves BETWEEN — a conversation and\n * the thing it is about. Only one of those is being read at any moment, so\n * giving the active one the whole screen and charging a tap to switch costs\n * nothing and keeps both reachable at a fixed place on screen.\n *\n * STACK is for panes read TOGETHER, where scrolling out of one and into the\n * next is the point. Tabs there hide half the content behind a control the\n * reader has no reason to expect, and the two halves can no longer be\n * compared at all.\n */\n narrowMode?: PanelNarrowMode;\n /**\n * Remembers this group's layout under `danxbot-<persistId>`.\n *\n * A layout stored against a different set of panels is DISCARDED, not merged:\n * ids are compared as a set on mount, and any mismatch falls back to the\n * defaults and clears the entry. Merging would produce a broken layout that\n * survives every refresh, because it keeps getting written back — the one\n * failure a person cannot fix by dragging.\n */\n persistId?: string;\n onLayout?: (sizes: Sizes) => void;\n className?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function PanelGroup({\n children,\n direction = \"horizontal\",\n narrowBelow = \"md\",\n narrowMode = \"tabs\",\n persistId,\n onLayout,\n className,\n ref,\n}: PanelGroupProps) {\n /* Hooks cannot be conditional, so the query always runs and `false` disables\n the RESULT rather than the subscription. */\n const belowBreakpoint = useBelow(narrowBelow === false ? \"sm\" : narrowBelow);\n const narrow: false | PanelNarrowMode = narrowBelow !== false && belowBreakpoint && narrowMode;\n\n const groupRef = useRef<HTMLDivElement | null>(null);\n const registry = useRef(new Map<string, Registration>());\n const [membership, setMembership] = useState(0);\n const [dragging, setDragging] = useState(false);\n const [selectedId, setSelectedId] = useState<string | null>(null);\n\n const [sizes, setSizes, resetSizes] = usePersistedState<Sizes>(persistId, {}, {\n isValid: isSizes,\n });\n\n const register = useCallback((registration: Registration) => {\n registry.current.set(registration.id, registration);\n setMembership((n) => n + 1);\n return () => {\n registry.current.delete(registration.id);\n setMembership((n) => n + 1);\n };\n }, []);\n\n /** Registered panels in DOM order. Registration order follows mount order,\n which conditional rendering can scramble; document position cannot. */\n const ordered = useCallback(() => {\n return [...registry.current.values()].sort((a, b) =>\n a.node.compareDocumentPosition(b.node) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1,\n );\n }, []);\n\n /* The tab strip is built from the REGISTRY, never from `children`: a panel\n may be wrapped, conditional, or sit beside resizers and fragments, and only\n registration knows what is actually there. `membership` is the trigger, and\n panels register in a layout effect, so the strip is correct before paint\n rather than one frame late. */\n const tabs = useMemo(\n () => ordered().map((panel) => ({ id: panel.id, label: panel.label ?? panel.id })),\n // `ordered` reads a ref, so `membership` is what makes this recompute.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [membership, ordered],\n );\n\n /* Derived rather than stored. A panel can disappear while it is the selected\n one — conditional rendering, or a route swapping the pane out — and a\n stored id would then match nothing: no tab highlighted and an empty body,\n with no interaction left that repairs it. Resolving against the current\n registry fixes that in the same render, so the broken state is never\n painted. */\n const selected = tabs.some((tab) => tab.id === selectedId)\n ? selectedId\n : (tabs[0]?.id ?? null);\n\n /* A STRIP OF ONE TAB SWITCHES NOTHING. It costs a row of a phone screen and\n announces a tablist to a screen reader that has exactly one place to go —\n so below two panels there is no strip, and the lone panel is not marked up\n as a tabpanel either. */\n const tabbed = narrow === \"tabs\" && tabs.length >= 2;\n\n const domId = useId();\n const tabDomId = useCallback((panelId: string) => `${domId}-tab-${panelId}`, [domId]);\n const panelDomId = useCallback((panelId: string) => `${domId}-panel-${panelId}`, [domId]);\n\n /* Reconcile stored sizes against the panels that actually exist, and fill in\n defaults for any panel the caller did not size. useLayoutEffect, not\n useEffect: this runs after registration but BEFORE paint, so the first\n frame a person sees is already the final layout. In an effect it would\n paint equal shares and then snap. */\n useLayoutEffect(() => {\n const panels = ordered();\n if (panels.length === 0) return;\n\n const ids = panels.map((panel) => panel.id);\n const stored = Object.keys(sizes);\n\n const matches =\n stored.length === ids.length && ids.every((id) => Object.hasOwn(sizes, id));\n if (matches) return;\n\n if (stored.length > 0) {\n /* Stored against a different group — a panel was added, removed or\n renamed since. Nothing here is salvageable. */\n resetSizes();\n }\n\n const explicit = panels.reduce((total, panel) => total + (panel.defaultSize ?? 0), 0);\n const unsized = panels.filter((panel) => panel.defaultSize === undefined);\n const share = unsized.length > 0 ? Math.max(0, 100 - explicit) / unsized.length : 0;\n\n setSizes(\n Object.fromEntries(panels.map((panel) => [panel.id, panel.defaultSize ?? share])) as Sizes,\n );\n // `sizes` is deliberately not a dependency: this reconciles MEMBERSHIP, and\n // reacting to its own write would loop.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [membership, ordered, resetSizes, setSizes]);\n\n useEffect(() => {\n if (Object.keys(sizes).length > 0) onLayout?.(sizes);\n }, [sizes, onLayout]);\n\n const neighbours = useCallback(\n (resizer: HTMLElement): [Registration, Registration] | null => {\n const panels = ordered();\n const before = [...panels]\n .reverse()\n .find(\n (panel) =>\n !!(panel.node.compareDocumentPosition(resizer) & Node.DOCUMENT_POSITION_FOLLOWING),\n );\n const after = panels.find(\n (panel) =>\n !!(panel.node.compareDocumentPosition(resizer) & Node.DOCUMENT_POSITION_PRECEDING),\n );\n return before && after ? [before, after] : null;\n },\n [ordered],\n );\n\n /** Pixels available to panels — the group minus every splitter. Percentages\n are of THIS, which is what makes them add to 100. */\n const measure = useCallback(() => {\n const node = groupRef.current;\n if (!node) return 0;\n const total = direction === \"horizontal\" ? node.clientWidth : node.clientHeight;\n const resizers = [...node.querySelectorAll<HTMLElement>(\"[data-panel-resizer]\")].reduce(\n (sum, element) =>\n sum + (direction === \"horizontal\" ? element.offsetWidth : element.offsetHeight),\n 0,\n );\n return Math.max(1, total - resizers);\n }, [direction]);\n\n const resizeBy = useCallback(\n (before: Registration, after: Registration, deltaPercent: number) => {\n setSizes((current) => {\n const from = current[before.id];\n const to = current[after.id];\n if (from === undefined || to === undefined) return current;\n\n /* Clamped against BOTH panels: a splitter cannot push its left pane\n past its own minimum, nor squeeze its right pane past that pane's.\n Whichever bound is hit first stops the drag — the pointer keeps\n moving and the layout simply stops, which is what every native\n splitter does. */\n let delta = clamp(deltaPercent, before.min - from, before.max - from);\n delta = clamp(delta, to - after.max, to - after.min);\n\n let nextFrom = from + delta;\n let nextTo = to - delta;\n\n /* Collapse snapping. Dragging a collapsible pane below its minimum\n should close it, not stall against the minimum — otherwise the only\n way to collapse is the keyboard, and nobody finds that. */\n if (before.collapsible && deltaPercent < 0 && nextFrom <= before.min) {\n const midpoint = (before.min + before.collapsedSize) / 2;\n if (from + deltaPercent < midpoint) {\n nextTo += nextFrom - before.collapsedSize;\n nextFrom = before.collapsedSize;\n }\n }\n if (after.collapsible && deltaPercent > 0 && nextTo <= after.min) {\n const midpoint = (after.min + after.collapsedSize) / 2;\n if (to - deltaPercent < midpoint) {\n nextFrom += nextTo - after.collapsedSize;\n nextTo = after.collapsedSize;\n }\n }\n\n if (nextFrom === from && nextTo === to) return current;\n return { ...current, [before.id]: nextFrom, [after.id]: nextTo };\n });\n },\n [setSizes],\n );\n\n const toggleCollapse = useCallback(\n (before: Registration, after: Registration) => {\n setSizes((current) => {\n const from = current[before.id];\n const to = current[after.id];\n if (from === undefined || to === undefined) return current;\n const collapsed = from <= before.collapsedSize + 0.5;\n const target = collapsed ? (before.defaultSize ?? before.min) : before.collapsedSize;\n return { ...current, [before.id]: target, [after.id]: to + (from - target) };\n });\n },\n [setSizes],\n );\n\n const resetLayout = useCallback(() => {\n resetSizes();\n setMembership((n) => n + 1);\n }, [resetSizes]);\n\n const value = useMemo<GroupContextValue>(\n () => ({\n direction,\n narrow,\n tabbed,\n selected,\n tabDomId,\n panelDomId,\n sizes,\n dragging,\n register,\n neighbours,\n resizeBy,\n toggleCollapse,\n resetLayout,\n measure,\n setDragging,\n }),\n [\n direction,\n narrow,\n tabbed,\n selected,\n tabDomId,\n panelDomId,\n sizes,\n dragging,\n register,\n neighbours,\n resizeBy,\n toggleCollapse,\n resetLayout,\n measure,\n ],\n );\n\n const group = (\n <div\n ref={(node) => {\n groupRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n }}\n data-panel-group=\"\"\n data-direction={direction}\n data-narrow={narrow || undefined}\n data-dragging={dragging || undefined}\n className={cn(\n /* Fills the box it is given, in BOTH axes. A layout primitive that\n sizes to its content is the wrong default: panels have no\n intrinsic height, so an auto-height group collapses to whatever\n text happens to be inside it and the splitters end up shorter than\n the panes they divide. */\n \"flex min-h-0 min-w-0\",\n /* Stacked, the group is as tall as its content and scrolls with the\n page. Keeping `size-full` would hand every panel a share of a fixed\n height, which is the same crushing in the other axis. */\n narrow === \"stack\" && \"h-auto w-full flex-col\",\n /* Tabbed, the group is one pane deep, and it is a FLEX CHILD of the\n shell rather than the outermost box — `size-full` here would be\n 100% of the shell on top of the strip above it, so it overflows by\n exactly the height of the strip. */\n narrow === \"tabs\" && \"w-full flex-1 flex-col\",\n !narrow && \"size-full\",\n !narrow && (direction === \"horizontal\" ? \"flex-row\" : \"flex-col\"),\n /* While dragging, the pointer owns the screen: no text selection\n anywhere, and the resize cursor stays put even when the pointer\n outruns the splitter. */\n dragging && \"select-none\",\n dragging && (direction === \"horizontal\" ? \"cursor-col-resize\" : \"cursor-row-resize\"),\n /* The caller's classes belong on the OUTERMOST box, because that is\n what they are sizing. Tabbed, that box is the shell below, not this\n div: this one is a flex child, so `flex-1` would beat any height set\n here and the group would collapse to the strip. */\n narrow !== \"tabs\" && className,\n )}\n >\n {children}\n </div>\n );\n\n /* ONE TREE, EVERY WIDTH. The shell is rendered in every mode and the group is\n always its last child, so the element chain above every panel is identical\n narrow and wide. It used to be `tabs ? <Tabs>{strip}{group}</Tabs> : group`\n — the same group under two different parents — and React treats a changed\n parent chain as a different element: crossing `narrowBelow` (a tablet\n rotating, a window dragged across 768px) unmounted and remounted every\n panel, throwing away whatever was inside them. An iframe reloaded from\n scratch; a scrolled list lost its place.\n\n Only ATTRIBUTES change with the mode now. Wide or stacked, the shell is\n `display: contents` — it generates no box, so the group lays out against\n the caller's container exactly as it would with no shell at all, and the\n caller's classes stay on the group. Tabbed, the shell is the outermost box\n (a column holding the strip and the group) and takes the caller's classes\n instead. The strip is a SIBLING rendered before the group, so adding or\n removing it never moves the group. */\n return (\n <GroupContext value={value}>\n <Tabs\n value={selected}\n onValueChange={(next) => setSelectedId(typeof next === \"string\" ? next : null)}\n data-panel-shell=\"\"\n className={cn(\n narrow === \"tabs\" ? \"size-full min-h-0\" : \"contents\",\n narrow === \"tabs\" && className,\n )}\n >\n {tabbed ? (\n <TabList>\n {tabs.map((tab) => (\n <Tab\n key={tab.id}\n value={tab.id}\n id={tabDomId(tab.id)}\n aria-controls={panelDomId(tab.id)}\n >\n {tab.label}\n </Tab>\n ))}\n </TabList>\n ) : null}\n {group}\n </Tabs>\n </GroupContext>\n );\n}\n\nexport interface PanelProps {\n children: ReactNode;\n /** Stable identity — the key its size persists under. Required precisely so\n a remembered layout can be matched against the panels that exist now. */\n id: string;\n /** The panel's name on its tab, once the group is narrow enough to show one.\n Falls back to `id`, which is readable often enough to be a useful default\n and obviously wrong when it is not. */\n label?: string;\n /** Percent of the group. Omitted panels split whatever is left over. */\n defaultSize?: number;\n minSize?: number;\n maxSize?: number;\n collapsible?: boolean;\n collapsedSize?: number;\n className?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function Panel({\n children,\n id,\n label,\n defaultSize,\n minSize = 10,\n maxSize = 100,\n collapsible = false,\n collapsedSize = 0,\n className,\n ref,\n}: PanelProps) {\n // I18N-ALLOW: component name used in the hook developer error message\n const group = useGroup(\"Panel\");\n const nodeRef = useRef<HTMLDivElement | null>(null);\n const { register } = group;\n\n useLayoutEffect(() => {\n const node = nodeRef.current;\n if (!node) return;\n return register({\n id,\n node,\n min: minSize,\n max: maxSize,\n collapsible,\n collapsedSize,\n defaultSize,\n label,\n });\n }, [register, id, minSize, maxSize, collapsible, collapsedSize, defaultSize, label]);\n\n const size = group.sizes[id];\n const collapsed = size !== undefined && size <= collapsedSize + 0.5;\n\n /* Stacked: natural height, no share of anything, and content is NOT clipped\n — `overflow: hidden` on a panel whose height is now its content would cut\n off whatever did not fit the old layout. */\n const stackStyle: CSSProperties = {\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: \"auto\",\n minWidth: 0,\n minHeight: 0,\n };\n\n /* Split, or tabbed. Tabbed panels take a flat share of 1 rather than their\n stored percentage: only one is on screen, so its size is the whole group,\n and applying the stored value would give a 30% panel 30% of the width with\n nothing beside it. The stored size is untouched and comes back with the\n splitter. */\n const filledStyle: CSSProperties = {\n flexGrow: group.narrow === \"tabs\" ? 1 : (size ?? 1),\n flexBasis: 0,\n /* Without this, a panel containing anything unbreakable — a wide table,\n a long unwrapped path — refuses to shrink below its content and\n silently overrides the layout. It is the single most common reason a\n splitter \"stops working\" partway along its travel. */\n minWidth: 0,\n minHeight: 0,\n overflow: \"hidden\",\n };\n\n /* TABPANEL SEMANTICS ARE ATTRIBUTES ON THIS SAME DIV, never a wrapper. A\n wrapper that exists only in tabs mode changes the panel's parent chain on\n the frame the viewport crosses `narrowBelow`, and React remounts everything\n inside it — see the shell note in `PanelGroup`. So the div is always the\n same element and the mode only decides its attributes.\n\n A hidden panel stays MOUNTED, non-negotiable. A panel registers itself on\n mount and deregisters on unmount, and the tab strip is built from that\n registry — unmounting the unselected ones would leave one tab the moment\n one was selected, and no way back to the others. Preflight's\n `[hidden] { display: none !important }` keeps it out of the layout and\n `inert` keeps it out of focus order and the accessibility tree. */\n const tabbed = group.tabbed;\n const hidden = tabbed && group.selected !== id;\n\n return (\n <div\n ref={(node) => {\n nodeRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n }}\n data-panel={id}\n data-collapsed={collapsed || undefined}\n id={tabbed ? group.panelDomId(id) : undefined}\n role={tabbed ? \"tabpanel\" : undefined}\n aria-labelledby={tabbed ? group.tabDomId(id) : undefined}\n tabIndex={tabbed && !hidden ? 0 : undefined}\n hidden={hidden || undefined}\n inert={hidden || undefined}\n style={group.narrow === \"stack\" ? stackStyle : filledStyle}\n className={cn(\n /* COLUMN, deliberately. As a row, the cross axis is vertical: content\n stretches to the panel's height but takes its own WIDTH, so a panel\n sized to 58% renders its content at whatever the text needed and\n leaves the rest blank. As a column the cross axis is horizontal and\n content fills the panel it was given, which is the only thing anyone\n means by putting it there. */\n \"relative flex flex-col min-h-0 min-w-0\",\n /* Collapsing and keyboard steps animate; dragging must not. During a\n drag the panel has to track the pointer exactly, and a transition\n there reads as lag rather than polish — so the group turns it off\n for the duration. */\n \"transition-[var(--tx-colors),flex-grow] duration-(--dur-base) ease-(--ease-standard)\",\n \"[[data-panel-group][data-dragging]_&]:transition-none\",\n /* A focusable tabpanel (WAI-ARIA: so a keyboard user can reach a panel\n with nothing focusable in it) must not grow a focus ring around the\n whole pane on click. */\n tabbed && \"outline-none\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nexport interface PanelResizerProps {\n /** Names the splitter for screen readers — \"Sidebar width\", not \"separator\". */\n label: string;\n /** Percent moved per arrow key. */\n step?: number;\n /** Shows a grip so the splitter reads as draggable rather than decorative. */\n withGrip?: boolean;\n disabled?: boolean;\n className?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\n/**\n * The draggable divider.\n *\n * `role=\"separator\"` with `tabindex=\"0\"` is the WAI-ARIA window splitter: the\n * one case where a separator is interactive. Keyboard support is not a bonus\n * here — a pointer-only splitter is unusable for anyone who cannot drag, and\n * \"drag\" is the entire interaction.\n */\nexport function PanelResizer({\n label,\n step = 4,\n withGrip = true,\n disabled = false,\n className,\n ref,\n}: PanelResizerProps) {\n const group = useGroup(\"PanelResizer\");\n const nodeRef = useRef<HTMLDivElement | null>(null);\n const dragOrigin = useRef<{ position: number; available: number } | null>(null);\n const resizerId = useId();\n\n const horizontal = group.direction === \"horizontal\";\n\n const pair = nodeRef.current ? group.neighbours(nodeRef.current) : null;\n const before = pair?.[0];\n const current = before ? group.sizes[before.id] : undefined;\n\n const onPointerDown = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (disabled || event.button !== 0) return;\n const node = nodeRef.current;\n if (!node) return;\n node.setPointerCapture(event.pointerId);\n dragOrigin.current = {\n position: horizontal ? event.clientX : event.clientY,\n available: group.measure(),\n };\n group.setDragging(true);\n event.preventDefault();\n };\n\n const onPointerMove = (event: ReactPointerEvent<HTMLDivElement>) => {\n const origin = dragOrigin.current;\n const node = nodeRef.current;\n if (!origin || !node) return;\n const neighbours = group.neighbours(node);\n if (!neighbours) return;\n\n const position = horizontal ? event.clientX : event.clientY;\n const deltaPercent = ((position - origin.position) / origin.available) * 100;\n if (deltaPercent === 0) return;\n\n group.resizeBy(neighbours[0], neighbours[1], deltaPercent);\n /* Re-anchor every move so the applied delta is always the increment since\n the last frame. Measuring from the original press instead would double\n every movement the constraints refused to apply. */\n origin.position = position;\n };\n\n const endDrag = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!dragOrigin.current) return;\n dragOrigin.current = null;\n group.setDragging(false);\n nodeRef.current?.releasePointerCapture(event.pointerId);\n };\n\n const onKeyDown = (event: ReactKeyboardEvent<HTMLDivElement>) => {\n const node = nodeRef.current;\n if (disabled || !node) return;\n const neighbours = group.neighbours(node);\n if (!neighbours) return;\n const [first, second] = neighbours;\n\n const decrease = horizontal ? \"ArrowLeft\" : \"ArrowUp\";\n const increase = horizontal ? \"ArrowRight\" : \"ArrowDown\";\n\n switch (event.key) {\n case decrease:\n group.resizeBy(first, second, -step);\n break;\n case increase:\n group.resizeBy(first, second, step);\n break;\n case \"Home\":\n group.resizeBy(first, second, -100);\n break;\n case \"End\":\n group.resizeBy(first, second, 100);\n break;\n case \"Enter\":\n if (!first.collapsible) return;\n group.toggleCollapse(first, second);\n break;\n case \"F6\":\n group.resetLayout();\n break;\n default:\n return;\n }\n /* Only after a handled key — swallowing the rest would trap Tab and every\n shortcut the page owns. */\n event.preventDefault();\n };\n\n /* A NARROW GROUP HAS NOTHING TO DIVIDE — stacked or tabbed alike. Rendering\n the splitter anyway would leave a focusable `role=\"separator\"` with\n `aria-valuenow` describing a proportion that no longer applies — a keyboard\n user tabbing onto a control that reports a state the layout does not have.\n Hidden with CSS it would still be in the accessibility tree; returning null\n is the honest form.\n\n After every hook, deliberately: an early return above them would change the\n hook order on the frame the viewport crosses the breakpoint. */\n if (group.narrow) return null;\n\n return (\n <div\n ref={(node) => {\n nodeRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n }}\n data-panel-resizer=\"\"\n id={resizerId}\n role=\"separator\"\n aria-label={label}\n aria-orientation={horizontal ? \"vertical\" : \"horizontal\"}\n aria-valuenow={current === undefined ? undefined : Math.round(current)}\n aria-valuemin={before?.min}\n aria-valuemax={before?.max}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : 0}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={endDrag}\n onPointerCancel={endDrag}\n onKeyDown={onKeyDown}\n onDoubleClick={() => !disabled && group.resetLayout()}\n className={cn(\n \"group/resizer relative flex shrink-0 items-center justify-center\",\n /* The visible line is 1px; the HIT AREA is not. A one-pixel drag\n target is a well-known way to make a splitter feel broken, so the\n element is a comfortable band and the line is drawn inside it. */\n horizontal ? \"w-2 cursor-col-resize\" : \"h-2 cursor-row-resize\",\n disabled && \"pointer-events-none cursor-default opacity-50\",\n \"before:absolute before:bg-border before:transition-colors before:duration-(--dur-fast)\",\n horizontal ? \"before:inset-y-0 before:w-px\" : \"before:inset-x-0 before:h-px\",\n \"hover:before:bg-accent-border focus-visible:before:bg-accent\",\n \"[[data-panel-group][data-dragging]_&]:before:bg-accent\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-focus-ring focus-visible:ring-offset-0\",\n className,\n )}\n >\n {withGrip && (\n <span\n aria-hidden\n className={cn(\n \"relative rounded-full bg-border-strong opacity-0 transition-[var(--tx-colors),opacity] duration-(--dur-fast)\",\n \"group-hover/resizer:opacity-100 group-focus-visible/resizer:opacity-100\",\n \"[[data-panel-group][data-dragging]_&]:opacity-100\",\n horizontal ? \"h-6 w-[3px]\" : \"h-[3px] w-6\",\n )}\n />\n )}\n </div>\n );\n}\n"],"names":["GroupContext","createContext","useGroup","component","context","useContext","clamp","value","min","max","isSizes","entry","PanelGroup","children","direction","narrowBelow","narrowMode","persistId","onLayout","className","ref","belowBreakpoint","useBelow","narrow","groupRef","useRef","registry","membership","setMembership","useState","dragging","setDragging","selectedId","setSelectedId","sizes","setSizes","resetSizes","usePersistedState","register","useCallback","registration","n","ordered","a","b","tabs","useMemo","panel","selected","tab","tabbed","domId","useId","tabDomId","panelId","panelDomId","useLayoutEffect","panels","ids","stored","id","explicit","total","unsized","share","useEffect","neighbours","resizer","before","after","measure","node","resizers","sum","element","resizeBy","deltaPercent","current","from","to","delta","nextFrom","nextTo","midpoint","toggleCollapse","target","resetLayout","group","jsx","cn","jsxs","Tabs","next","TabList","Tab","Panel","label","defaultSize","minSize","maxSize","collapsible","collapsedSize","nodeRef","size","collapsed","stackStyle","filledStyle","hidden","PanelResizer","step","withGrip","disabled","dragOrigin","resizerId","horizontal","onPointerDown","event","onPointerMove","origin","position","endDrag","onKeyDown","first","second","decrease","increase"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { useState as m } from "react";
|
|
3
|
+
import { Icon as d } from "./Icon.js";
|
|
4
|
+
import { IconButton as p } from "./IconButton.js";
|
|
5
|
+
import { Input as u } from "./Input.js";
|
|
6
|
+
import { useUiStrings as f } from "../lib/i18n/provider.js";
|
|
7
|
+
function b({ revealable: s = !0, autoComplete: i, ...r }) {
|
|
8
|
+
const o = f().passwordInput, [t, n] = m(!1);
|
|
9
|
+
return /* @__PURE__ */ e(
|
|
10
|
+
u,
|
|
11
|
+
{
|
|
12
|
+
...r,
|
|
13
|
+
type: s && t ? "text" : "password",
|
|
14
|
+
autoComplete: i ?? "current-password",
|
|
15
|
+
trailing: s ? /* @__PURE__ */ e(
|
|
16
|
+
p,
|
|
17
|
+
{
|
|
18
|
+
icon: /* @__PURE__ */ e(d, { name: t ? "eye-off" : "eye", size: "sm" }),
|
|
19
|
+
label: t ? o.hide : o.show,
|
|
20
|
+
variant: "ghost",
|
|
21
|
+
size: "sm",
|
|
22
|
+
disabledReason: r.disabled ? o.disabled : void 0,
|
|
23
|
+
onClick: () => n((a) => !a)
|
|
24
|
+
}
|
|
25
|
+
) : void 0
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
b as PasswordInput
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=PasswordInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordInput.js","sources":["../../src/components/PasswordInput.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { useUiStrings } from \"../lib/i18n\";\nimport { Icon } from \"./Icon\";\nimport { IconButton } from \"./IconButton\";\nimport { Input, type InputProps } from \"./Input\";\n\n/* ----------------------------------------------------------------------------\n PASSWORD INPUT\n\n `Input` already renders correctly with `type=\"password\"` on its own — this\n component exists for exactly one addition: a show/hide toggle in the\n trailing slot, wired to local `revealed` state so every password field in\n an app gets the same control without hand-wiring an `IconButton` next to a\n plain `Input` each time.\n\n `type` FLIPS BETWEEN `\"password\"` AND `\"text\"`, NEVER A CSS TRICK. A\n password manager, a browser's own reveal button and assistive tech all key\n off the real `type` attribute — faking the reveal with `-webkit-text-\n security` or a monospace dot font would defeat autofill and announce the\n field wrong.\n ---------------------------------------------------------------------------- */\n\nexport interface PasswordInputProps extends Omit<InputProps, \"type\" | \"trailing\"> {\n /** Hides the show/hide toggle entirely — for a field where the operator\n * should never be able to reveal what they typed (rare; default `true`). */\n revealable?: boolean;\n}\n\nexport function PasswordInput({ revealable = true, autoComplete, ...props }: PasswordInputProps) {\n const strings = useUiStrings().passwordInput;\n const [revealed, setRevealed] = useState(false);\n\n return (\n <Input\n {...props}\n type={revealable && revealed ? \"text\" : \"password\"}\n autoComplete={autoComplete ?? \"current-password\"}\n trailing={\n revealable ? (\n <IconButton\n icon={<Icon name={revealed ? \"eye-off\" : \"eye\"} size=\"sm\" />}\n label={revealed ? strings.hide : strings.show}\n variant=\"ghost\"\n size=\"sm\"\n disabledReason={props.disabled ? strings.disabled : undefined}\n onClick={() => setRevealed((r) => !r)}\n />\n ) : undefined\n }\n />\n );\n}\n"],"names":["PasswordInput","revealable","autoComplete","props","strings","useUiStrings","revealed","setRevealed","useState","jsx","Input","IconButton","Icon","r"],"mappings":";;;;;;AA4BO,SAASA,EAAc,EAAE,YAAAC,IAAa,IAAM,cAAAC,GAAc,GAAGC,KAA6B;AAC/F,QAAMC,IAAUC,IAAe,eACzB,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK;AAE9C,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGP;AAAA,MACJ,MAAMF,KAAcK,IAAW,SAAS;AAAA,MACxC,cAAcJ,KAAgB;AAAA,MAC9B,UACED,IACE,gBAAAQ;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,wBAAOC,GAAA,EAAK,MAAMN,IAAW,YAAY,OAAO,MAAK,MAAK;AAAA,UAC1D,OAAOA,IAAWF,EAAQ,OAAOA,EAAQ;AAAA,UACzC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,gBAAgBD,EAAM,WAAWC,EAAQ,WAAW;AAAA,UACpD,SAAS,MAAMG,EAAY,CAACM,MAAM,CAACA,CAAC;AAAA,QAAA;AAAA,MAAA,IAEpC;AAAA,IAAA;AAAA,EAAA;AAIZ;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
2
|
+
import { cn as r } from "../lib/cn.js";
|
|
3
|
+
import { Icon as c } from "./Icon.js";
|
|
4
|
+
import { useUiStrings as o } from "../lib/i18n/provider.js";
|
|
5
|
+
function d({ rules: s, className: i, ref: a }) {
|
|
6
|
+
const l = o().passwordRequirements;
|
|
7
|
+
return s.length === 0 ? null : /* @__PURE__ */ t("ul", { ref: a, className: r("flex flex-col gap-1", i), "aria-label": l.label, children: s.map((e) => /* @__PURE__ */ n(
|
|
8
|
+
"li",
|
|
9
|
+
{
|
|
10
|
+
className: r(
|
|
11
|
+
"flex items-center gap-1.5 text-2xs transition-colors duration-(--dur-fast)",
|
|
12
|
+
e.met ? "text-success-text" : "text-tertiary"
|
|
13
|
+
),
|
|
14
|
+
children: [
|
|
15
|
+
/* @__PURE__ */ t(c, { name: e.met ? "circle-check" : "circle-alert", size: "xs", className: "shrink-0" }),
|
|
16
|
+
/* @__PURE__ */ t("span", { children: e.label })
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
e.label
|
|
20
|
+
)) });
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
d as PasswordRequirements
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=PasswordRequirements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordRequirements.js","sources":["../../src/components/PasswordRequirements.tsx"],"sourcesContent":["import type { Ref } from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { useUiStrings } from \"../lib/i18n\";\nimport { Icon } from \"./Icon\";\n\n/* ----------------------------------------------------------------------------\n PASSWORD REQUIREMENTS\n\n THE RULES ARE NEVER THIS LIBRARY'S TO KNOW. \"At least 12 characters,\" \"one\n number,\" whatever a consumer's own policy demands — that is domain logic\n that belongs entirely to the consuming app (danxbot's own\n `src/lib/auth-rules.ts`, for one), never hardcoded here. This component\n renders whatever `rules[]` it is handed and nothing more, the same\n relationship `DataTable` has with its rows and `RolePermissionMatrix` has\n with its permissions.\n\n LIVE, BECAUSE THE CONSUMER RECOMPUTES `met` ON EVERY KEYSTROKE. This\n component holds no state of its own — a controlled password value lives in\n whatever form composes it (see `ChangePasswordForm`), which re-derives\n `rules` from that value and passes the new array down each render. The\n checklist simply reflects whatever it was just given.\n\n THE ICON CARRIES THE STATE, THE COLOUR CONFIRMS IT — same reasoning as\n `Callout`'s own header: a met/unmet distinction that relied on colour alone\n would be unreadable for a red-green colour deficiency, so a check and a\n dash are two different SHAPES, not just two different hues.\n ---------------------------------------------------------------------------- */\n\nexport interface PasswordRequirementRule {\n label: string;\n met: boolean;\n}\n\nexport interface PasswordRequirementsProps {\n rules: PasswordRequirementRule[];\n className?: string;\n ref?: Ref<HTMLUListElement>;\n}\n\nexport function PasswordRequirements({ rules, className, ref }: PasswordRequirementsProps) {\n const strings = useUiStrings().passwordRequirements;\n if (rules.length === 0) return null;\n\n return (\n <ul ref={ref} className={cn(\"flex flex-col gap-1\", className)} aria-label={strings.label}>\n {rules.map((rule) => (\n <li\n key={rule.label}\n className={cn(\n \"flex items-center gap-1.5 text-2xs transition-colors duration-(--dur-fast)\",\n rule.met ? \"text-success-text\" : \"text-tertiary\",\n )}\n >\n <Icon name={rule.met ? \"circle-check\" : \"circle-alert\"} size=\"xs\" className=\"shrink-0\" />\n <span>{rule.label}</span>\n </li>\n ))}\n </ul>\n );\n}\n"],"names":["PasswordRequirements","rules","className","ref","strings","useUiStrings","jsx","cn","rule","jsxs","Icon"],"mappings":";;;;AAuCO,SAASA,EAAqB,EAAE,OAAAC,GAAO,WAAAC,GAAW,KAAAC,KAAkC;AACzF,QAAMC,IAAUC,IAAe;AAC/B,SAAIJ,EAAM,WAAW,IAAU,OAG7B,gBAAAK,EAAC,MAAA,EAAG,KAAAH,GAAU,WAAWI,EAAG,uBAAuBL,CAAS,GAAG,cAAYE,EAAQ,OAChF,UAAAH,EAAM,IAAI,CAACO,MACV,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAWF;AAAA,QACT;AAAA,QACAC,EAAK,MAAM,sBAAsB;AAAA,MAAA;AAAA,MAGnC,UAAA;AAAA,QAAA,gBAAAF,EAACI,GAAA,EAAK,MAAMF,EAAK,MAAM,iBAAiB,gBAAgB,MAAK,MAAK,WAAU,WAAA,CAAW;AAAA,QACvF,gBAAAF,EAAC,QAAA,EAAM,UAAAE,EAAK,MAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,IAPbA,EAAK;AAAA,EAAA,CASb,GACH;AAEJ;"}
|