@50arms/ui 0.0.0-stage → 35.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +193 -2
- package/dist/components/Accordion.js +68 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/AgentWorkingSpinner.js +46 -0
- package/dist/components/AgentWorkingSpinner.js.map +1 -0
- package/dist/components/AppShell.js +228 -0
- package/dist/components/AppShell.js.map +1 -0
- package/dist/components/Attention.js +130 -0
- package/dist/components/Attention.js.map +1 -0
- package/dist/components/Avatar.js +99 -0
- package/dist/components/Avatar.js.map +1 -0
- package/dist/components/Badge.js +143 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Board.js +292 -0
- package/dist/components/Board.js.map +1 -0
- package/dist/components/Button.js +327 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Callout.js +106 -0
- package/dist/components/Callout.js.map +1 -0
- package/dist/components/Card.js +140 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/Choice.js +361 -0
- package/dist/components/Choice.js.map +1 -0
- package/dist/components/CodeEditor.js +384 -0
- package/dist/components/CodeEditor.js.map +1 -0
- package/dist/components/ColorPicker.js +174 -0
- package/dist/components/ColorPicker.js.map +1 -0
- package/dist/components/Combobox.js +212 -0
- package/dist/components/Combobox.js.map +1 -0
- package/dist/components/CommandPalette.js +163 -0
- package/dist/components/CommandPalette.js.map +1 -0
- package/dist/components/ConcentricRing.js +60 -0
- package/dist/components/ConcentricRing.js.map +1 -0
- package/dist/components/ConnectionCard.js +98 -0
- package/dist/components/ConnectionCard.js.map +1 -0
- package/dist/components/ContextItemRow.js +49 -0
- package/dist/components/ContextItemRow.js.map +1 -0
- package/dist/components/CopyValue.js +57 -0
- package/dist/components/CopyValue.js.map +1 -0
- package/dist/components/CountBadge.js +26 -0
- package/dist/components/CountBadge.js.map +1 -0
- package/dist/components/DateCalendar.js +156 -0
- package/dist/components/DateCalendar.js.map +1 -0
- package/dist/components/DateField.js +166 -0
- package/dist/components/DateField.js.map +1 -0
- package/dist/components/DatePicker.js +56 -0
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/components/DateTimeText.js +19 -0
- package/dist/components/DateTimeText.js.map +1 -0
- package/dist/components/DescriptionList.js +25 -0
- package/dist/components/DescriptionList.js.map +1 -0
- package/dist/components/Dialog.js +332 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/DragDrop.js +395 -0
- package/dist/components/DragDrop.js.map +1 -0
- package/dist/components/Drawer.js +100 -0
- package/dist/components/Drawer.js.map +1 -0
- package/dist/components/EditGutter.js +110 -0
- package/dist/components/EditGutter.js.map +1 -0
- package/dist/components/EmojiPicker.js +174 -0
- package/dist/components/EmojiPicker.js.map +1 -0
- package/dist/components/ErrorBoundary.js +47 -0
- package/dist/components/ErrorBoundary.js.map +1 -0
- package/dist/components/Field.js +115 -0
- package/dist/components/Field.js.map +1 -0
- package/dist/components/FileUpload.js +128 -0
- package/dist/components/FileUpload.js.map +1 -0
- package/dist/components/FilterMenu.js +256 -0
- package/dist/components/FilterMenu.js.map +1 -0
- package/dist/components/GatesSection.js +79 -0
- package/dist/components/GatesSection.js.map +1 -0
- package/dist/components/Icon.js +50 -0
- package/dist/components/Icon.js.map +1 -0
- package/dist/components/IconButton.js +59 -0
- package/dist/components/IconButton.js.map +1 -0
- package/dist/components/IconStack.js +69 -0
- package/dist/components/IconStack.js.map +1 -0
- package/dist/components/ImageUploadField.js +146 -0
- package/dist/components/ImageUploadField.js.map +1 -0
- package/dist/components/InlineEdit.js +432 -0
- package/dist/components/InlineEdit.js.map +1 -0
- package/dist/components/InlineMarkdownEdit.js +184 -0
- package/dist/components/InlineMarkdownEdit.js.map +1 -0
- package/dist/components/Input.js +156 -0
- package/dist/components/Input.js.map +1 -0
- package/dist/components/LegalDocument.js +155 -0
- package/dist/components/LegalDocument.js.map +1 -0
- package/dist/components/LineDiff.js +95 -0
- package/dist/components/LineDiff.js.map +1 -0
- package/dist/components/ListHeader.js +72 -0
- package/dist/components/ListHeader.js.map +1 -0
- package/dist/components/Loading.js +111 -0
- package/dist/components/Loading.js.map +1 -0
- package/dist/components/Markdown.js +28 -0
- package/dist/components/Markdown.js.map +1 -0
- package/dist/components/MarkdownEditor.js +467 -0
- package/dist/components/MarkdownEditor.js.map +1 -0
- package/dist/components/Menu.js +185 -0
- package/dist/components/Menu.js.map +1 -0
- package/dist/components/Navigation.js +87 -0
- package/dist/components/Navigation.js.map +1 -0
- package/dist/components/NumberInput.js +119 -0
- package/dist/components/NumberInput.js.map +1 -0
- package/dist/components/OTPInput.js +71 -0
- package/dist/components/OTPInput.js.map +1 -0
- package/dist/components/OrderedEntityManager.js +170 -0
- package/dist/components/OrderedEntityManager.js.map +1 -0
- package/dist/components/PagedWindowList.js +74 -0
- package/dist/components/PagedWindowList.js.map +1 -0
- package/dist/components/PaginationBar.js +95 -0
- package/dist/components/PaginationBar.js.map +1 -0
- package/dist/components/Panel.js +396 -0
- package/dist/components/Panel.js.map +1 -0
- package/dist/components/PasswordInput.js +32 -0
- package/dist/components/PasswordInput.js.map +1 -0
- package/dist/components/PasswordRequirements.js +25 -0
- package/dist/components/PasswordRequirements.js.map +1 -0
- package/dist/components/PatchDiff.js +96 -0
- package/dist/components/PatchDiff.js.map +1 -0
- package/dist/components/PendingVeil.js +18 -0
- package/dist/components/PendingVeil.js.map +1 -0
- package/dist/components/Popover.js +214 -0
- package/dist/components/Popover.js.map +1 -0
- package/dist/components/Progress.js +419 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/RatingScale.js +89 -0
- package/dist/components/RatingScale.js.map +1 -0
- package/dist/components/ReadMore.js +232 -0
- package/dist/components/ReadMore.js.map +1 -0
- package/dist/components/RecordCard.js +202 -0
- package/dist/components/RecordCard.js.map +1 -0
- package/dist/components/RelativeTime.js +29 -0
- package/dist/components/RelativeTime.js.map +1 -0
- package/dist/components/SandboxedFrame.js +135 -0
- package/dist/components/SandboxedFrame.js.map +1 -0
- package/dist/components/SearchInput.js +38 -0
- package/dist/components/SearchInput.js.map +1 -0
- package/dist/components/SecretField.js +228 -0
- package/dist/components/SecretField.js.map +1 -0
- package/dist/components/SectionNav.js +42 -0
- package/dist/components/SectionNav.js.map +1 -0
- package/dist/components/Select.js +172 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/SequenceDiagram.js +109 -0
- package/dist/components/SequenceDiagram.js.map +1 -0
- package/dist/components/SettingRow.js +124 -0
- package/dist/components/SettingRow.js.map +1 -0
- package/dist/components/SignOffRings.js +36 -0
- package/dist/components/SignOffRings.js.map +1 -0
- package/dist/components/Slider.js +353 -0
- package/dist/components/Slider.js.map +1 -0
- package/dist/components/SolutionChoice.js +89 -0
- package/dist/components/SolutionChoice.js.map +1 -0
- package/dist/components/SortMenu.js +75 -0
- package/dist/components/SortMenu.js.map +1 -0
- package/dist/components/Spinner.js +42 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/Stat.js +148 -0
- package/dist/components/Stat.js.map +1 -0
- package/dist/components/StatusSelect.js +119 -0
- package/dist/components/StatusSelect.js.map +1 -0
- package/dist/components/Surface.js +210 -0
- package/dist/components/Surface.js.map +1 -0
- package/dist/components/Table.js +300 -0
- package/dist/components/Table.js.map +1 -0
- package/dist/components/Tabs.js +288 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/ThemeMenu.js +198 -0
- package/dist/components/ThemeMenu.js.map +1 -0
- package/dist/components/Toast.js +217 -0
- package/dist/components/Toast.js.map +1 -0
- package/dist/components/Toggle.js +147 -0
- package/dist/components/Toggle.js.map +1 -0
- package/dist/components/ToggleMatrix.js +157 -0
- package/dist/components/ToggleMatrix.js.map +1 -0
- package/dist/components/Tree.js +125 -0
- package/dist/components/Tree.js.map +1 -0
- package/dist/components/TriStateSwitch.js +111 -0
- package/dist/components/TriStateSwitch.js.map +1 -0
- package/dist/components/VideoPlayer.js +64 -0
- package/dist/components/VideoPlayer.js.map +1 -0
- package/dist/components/auth/AcceptInvitationCard.js +110 -0
- package/dist/components/auth/AcceptInvitationCard.js.map +1 -0
- package/dist/components/auth/AuthLayout.js +18 -0
- package/dist/components/auth/AuthLayout.js.map +1 -0
- package/dist/components/auth/ForgotPasswordForm.js +44 -0
- package/dist/components/auth/ForgotPasswordForm.js.map +1 -0
- package/dist/components/auth/LoginForm.js +76 -0
- package/dist/components/auth/LoginForm.js.map +1 -0
- package/dist/components/auth/ResetPasswordForm.js +69 -0
- package/dist/components/auth/ResetPasswordForm.js.map +1 -0
- package/dist/components/auth/SignInProviders.js +45 -0
- package/dist/components/auth/SignInProviders.js.map +1 -0
- package/dist/components/auth/SignupCard.js +204 -0
- package/dist/components/auth/SignupCard.js.map +1 -0
- package/dist/components/auth/TermsAcceptance.js +43 -0
- package/dist/components/auth/TermsAcceptance.js.map +1 -0
- package/dist/components/board/context.js +32 -0
- package/dist/components/board/context.js.map +1 -0
- package/dist/components/board/recipe.js +94 -0
- package/dist/components/board/recipe.js.map +1 -0
- package/dist/components/calendar/CalendarMonth.js +299 -0
- package/dist/components/calendar/CalendarMonth.js.map +1 -0
- package/dist/components/calendar/CalendarTimeGrid.js +430 -0
- package/dist/components/calendar/CalendarTimeGrid.js.map +1 -0
- package/dist/components/calendar/EventActions.js +101 -0
- package/dist/components/calendar/EventActions.js.map +1 -0
- package/dist/components/calendar/format.js +73 -0
- package/dist/components/calendar/format.js.map +1 -0
- package/dist/components/calendar/palette.js +31 -0
- package/dist/components/calendar/palette.js.map +1 -0
- package/dist/components/calendar/use-calendar-drag.js +149 -0
- package/dist/components/calendar/use-calendar-drag.js.map +1 -0
- package/dist/components/calendar/use-event-keyboard.js +87 -0
- package/dist/components/calendar/use-event-keyboard.js.map +1 -0
- package/dist/components/calendar/use-grid-navigation.js +79 -0
- package/dist/components/calendar/use-grid-navigation.js.map +1 -0
- package/dist/components/calendar/use-now.js +27 -0
- package/dist/components/calendar/use-now.js.map +1 -0
- package/dist/components/card-face/AcRingGlyph.js +39 -0
- package/dist/components/card-face/AcRingGlyph.js.map +1 -0
- package/dist/components/card-face/BoardCardAgentSlot.js +17 -0
- package/dist/components/card-face/BoardCardAgentSlot.js.map +1 -0
- package/dist/components/card-face/CardFace.js +109 -0
- package/dist/components/card-face/CardFace.js.map +1 -0
- package/dist/components/card-face/CardTypeBadge.js +17 -0
- package/dist/components/card-face/CardTypeBadge.js.map +1 -0
- package/dist/components/card-face/EffortBadge.js +11 -0
- package/dist/components/card-face/EffortBadge.js.map +1 -0
- package/dist/components/card-face/GateRingGlyph.js +31 -0
- package/dist/components/card-face/GateRingGlyph.js.map +1 -0
- package/dist/components/card-face/OverflowRow.js +70 -0
- package/dist/components/card-face/OverflowRow.js.map +1 -0
- package/dist/components/card-face/TapTip.js +32 -0
- package/dist/components/card-face/TapTip.js.map +1 -0
- package/dist/components/card-face/hit-area.js +6 -0
- package/dist/components/card-face/hit-area.js.map +1 -0
- package/dist/components/card-face/vocabulary.js +102 -0
- package/dist/components/card-face/vocabulary.js.map +1 -0
- package/dist/components/chart/BarList.js +78 -0
- package/dist/components/chart/BarList.js.map +1 -0
- package/dist/components/chart/LineChart.js +310 -0
- package/dist/components/chart/LineChart.js.map +1 -0
- package/dist/components/chart/ShareBar.js +141 -0
- package/dist/components/chart/ShareBar.js.map +1 -0
- package/dist/components/chart/TimeSeriesChart.js +305 -0
- package/dist/components/chart/TimeSeriesChart.js.map +1 -0
- package/dist/components/chart/label-metrics.js +17 -0
- package/dist/components/chart/label-metrics.js.map +1 -0
- package/dist/components/chart/line-chart-axis.js +38 -0
- package/dist/components/chart/line-chart-axis.js.map +1 -0
- package/dist/components/chart/line-chart-scale.js +132 -0
- package/dist/components/chart/line-chart-scale.js.map +1 -0
- package/dist/components/chart/line-series-style.js +22 -0
- package/dist/components/chart/line-series-style.js.map +1 -0
- package/dist/components/chart/share-bar-labels.js +14 -0
- package/dist/components/chart/share-bar-labels.js.map +1 -0
- package/dist/components/chart/shared.js +157 -0
- package/dist/components/chart/shared.js.map +1 -0
- package/dist/components/chart/time-series-scale.js +51 -0
- package/dist/components/chart/time-series-scale.js.map +1 -0
- package/dist/components/chat/Attachment.js +316 -0
- package/dist/components/chat/Attachment.js.map +1 -0
- package/dist/components/chat/Chat.js +171 -0
- package/dist/components/chat/Chat.js.map +1 -0
- package/dist/components/chat/Composer.js +274 -0
- package/dist/components/chat/Composer.js.map +1 -0
- package/dist/components/chat/ContextMeter.js +202 -0
- package/dist/components/chat/ContextMeter.js.map +1 -0
- package/dist/components/chat/EffortControl.js +116 -0
- package/dist/components/chat/EffortControl.js.map +1 -0
- package/dist/components/chat/FileCover.js +78 -0
- package/dist/components/chat/FileCover.js.map +1 -0
- package/dist/components/chat/Message.js +356 -0
- package/dist/components/chat/Message.js.map +1 -0
- package/dist/components/chat/MessageScroller.js +104 -0
- package/dist/components/chat/MessageScroller.js.map +1 -0
- package/dist/components/chat/ModelSelector.js +156 -0
- package/dist/components/chat/ModelSelector.js.map +1 -0
- package/dist/components/chat/StreamingMarkdown.js +42 -0
- package/dist/components/chat/StreamingMarkdown.js.map +1 -0
- package/dist/components/chat/download-file.js +9 -0
- package/dist/components/chat/download-file.js.map +1 -0
- package/dist/components/chat/file-icon.js +39 -0
- package/dist/components/chat/file-icon.js.map +1 -0
- package/dist/components/checklist/StatusChecklist.js +103 -0
- package/dist/components/checklist/StatusChecklist.js.map +1 -0
- package/dist/components/checklist/tally.js +29 -0
- package/dist/components/checklist/tally.js.map +1 -0
- package/dist/components/code-editor/context.js +13 -0
- package/dist/components/code-editor/context.js.map +1 -0
- package/dist/components/code-editor/editing.js +93 -0
- package/dist/components/code-editor/editing.js.map +1 -0
- package/dist/components/code-editor/highlight.js +27 -0
- package/dist/components/code-editor/highlight.js.map +1 -0
- package/dist/components/code-editor/recipe.js +75 -0
- package/dist/components/code-editor/recipe.js.map +1 -0
- package/dist/components/date-timeline/DateTimeline.js +358 -0
- package/dist/components/date-timeline/DateTimeline.js.map +1 -0
- package/dist/components/date-timeline/TimelineRow.js +100 -0
- package/dist/components/date-timeline/TimelineRow.js.map +1 -0
- package/dist/components/date-timeline/useBarDrag.js +44 -0
- package/dist/components/date-timeline/useBarDrag.js.map +1 -0
- package/dist/components/date-timeline/useMarkerDrag.js +40 -0
- package/dist/components/date-timeline/useMarkerDrag.js.map +1 -0
- package/dist/components/date-timeline/useTimelineZoom.js +44 -0
- package/dist/components/date-timeline/useTimelineZoom.js.map +1 -0
- package/dist/components/drag-drop/context.js +37 -0
- package/dist/components/drag-drop/context.js.map +1 -0
- package/dist/components/drag-drop/recipe.js +270 -0
- package/dist/components/drag-drop/recipe.js.map +1 -0
- package/dist/components/drag-drop/shift.js +157 -0
- package/dist/components/drag-drop/shift.js.map +1 -0
- package/dist/components/edit/activation.js +10 -0
- package/dist/components/edit/activation.js.map +1 -0
- package/dist/components/edit/outcome.js +47 -0
- package/dist/components/edit/outcome.js.map +1 -0
- package/dist/components/edit/use-edit-session.js +146 -0
- package/dist/components/edit/use-edit-session.js.map +1 -0
- package/dist/components/file-viewer/FileViewer.js +97 -0
- package/dist/components/file-viewer/FileViewer.js.map +1 -0
- package/dist/components/file-viewer/PageNumberJumpField.js +47 -0
- package/dist/components/file-viewer/PageNumberJumpField.js.map +1 -0
- package/dist/components/file-viewer/ViewerControls.js +122 -0
- package/dist/components/file-viewer/ViewerControls.js.map +1 -0
- package/dist/components/file-viewer/ViewerRail.js +57 -0
- package/dist/components/file-viewer/ViewerRail.js.map +1 -0
- package/dist/components/file-viewer/ViewerStage.js +112 -0
- package/dist/components/file-viewer/ViewerStage.js.map +1 -0
- package/dist/components/file-viewer/frames.js +37 -0
- package/dist/components/file-viewer/frames.js.map +1 -0
- package/dist/components/file-viewer/use-frame-cursor.js +32 -0
- package/dist/components/file-viewer/use-frame-cursor.js.map +1 -0
- package/dist/components/file-viewer/use-viewer-keys.js +50 -0
- package/dist/components/file-viewer/use-viewer-keys.js.map +1 -0
- package/dist/components/file-viewer/use-viewer-zoom.js +68 -0
- package/dist/components/file-viewer/use-viewer-zoom.js.map +1 -0
- package/dist/components/focus-web/FocusWeb.js +322 -0
- package/dist/components/focus-web/FocusWeb.js.map +1 -0
- package/dist/components/focus-web/layout.js +34 -0
- package/dist/components/focus-web/layout.js.map +1 -0
- package/dist/components/graph-explorer/GraphExplorer.js +441 -0
- package/dist/components/graph-explorer/GraphExplorer.js.map +1 -0
- package/dist/components/graph-explorer/camera-math.js +102 -0
- package/dist/components/graph-explorer/camera-math.js.map +1 -0
- package/dist/components/graph-explorer/tree-layout.js +103 -0
- package/dist/components/graph-explorer/tree-layout.js.map +1 -0
- package/dist/components/graph-explorer/use-camera.js +82 -0
- package/dist/components/graph-explorer/use-camera.js.map +1 -0
- package/dist/components/graph-explorer/viewport-gesture.js +107 -0
- package/dist/components/graph-explorer/viewport-gesture.js.map +1 -0
- package/dist/components/kanban/KanbanBoard.js +219 -0
- package/dist/components/kanban/KanbanBoard.js.map +1 -0
- package/dist/components/kanban/recipe.js +144 -0
- package/dist/components/kanban/recipe.js.map +1 -0
- package/dist/components/markdown/Affordances.js +398 -0
- package/dist/components/markdown/Affordances.js.map +1 -0
- package/dist/components/markdown/AttachmentStrip.js +128 -0
- package/dist/components/markdown/AttachmentStrip.js.map +1 -0
- package/dist/components/markdown/ImageUpload.js +45 -0
- package/dist/components/markdown/ImageUpload.js.map +1 -0
- package/dist/components/media-error.js +7 -0
- package/dist/components/media-error.js.map +1 -0
- package/dist/components/nav-sections.js +61 -0
- package/dist/components/nav-sections.js.map +1 -0
- package/dist/components/node-canvas/NodeCanvas.js +384 -0
- package/dist/components/node-canvas/NodeCanvas.js.map +1 -0
- package/dist/components/node-canvas/layout.js +237 -0
- package/dist/components/node-canvas/layout.js.map +1 -0
- package/dist/components/node-canvas/use-canvas-gestures.js +143 -0
- package/dist/components/node-canvas/use-canvas-gestures.js.map +1 -0
- package/dist/components/openapi/OpenApiViewer.js +137 -0
- package/dist/components/openapi/OpenApiViewer.js.map +1 -0
- package/dist/components/openapi/OperationCard.js +145 -0
- package/dist/components/openapi/OperationCard.js.map +1 -0
- package/dist/components/openapi/SchemaView.js +68 -0
- package/dist/components/openapi/SchemaView.js.map +1 -0
- package/dist/components/openapi/resolve.js +102 -0
- package/dist/components/openapi/resolve.js.map +1 -0
- package/dist/components/openapi/types.js +5 -0
- package/dist/components/openapi/types.js.map +1 -0
- package/dist/components/overlay-shell.js +29 -0
- package/dist/components/overlay-shell.js.map +1 -0
- package/dist/components/overlay-stack.js +27 -0
- package/dist/components/overlay-stack.js.map +1 -0
- package/dist/components/paged-window/PageBlock.js +50 -0
- package/dist/components/paged-window/PageBlock.js.map +1 -0
- package/dist/components/provenance/ConfidenceBar.js +60 -0
- package/dist/components/provenance/ConfidenceBar.js.map +1 -0
- package/dist/components/provenance/ConfidenceMeter.js +36 -0
- package/dist/components/provenance/ConfidenceMeter.js.map +1 -0
- package/dist/components/provenance/ConfidenceReadout.js +31 -0
- package/dist/components/provenance/ConfidenceReadout.js.map +1 -0
- package/dist/components/provenance/ProvenanceBadge.js +44 -0
- package/dist/components/provenance/ProvenanceBadge.js.map +1 -0
- package/dist/components/provenance/ProvenanceDetail.js +114 -0
- package/dist/components/provenance/ProvenanceDetail.js.map +1 -0
- package/dist/components/provenance/ProvenanceDisclosure.js +111 -0
- package/dist/components/provenance/ProvenanceDisclosure.js.map +1 -0
- package/dist/components/provenance/absence.js +31 -0
- package/dist/components/provenance/absence.js.map +1 -0
- package/dist/components/provenance/types.js +30 -0
- package/dist/components/provenance/types.js.map +1 -0
- package/dist/components/rbac/AccessRequestPanel.js +153 -0
- package/dist/components/rbac/AccessRequestPanel.js.map +1 -0
- package/dist/components/rbac/AccountMenu.js +118 -0
- package/dist/components/rbac/AccountMenu.js.map +1 -0
- package/dist/components/rbac/AgentKeysList.js +20 -0
- package/dist/components/rbac/AgentKeysList.js.map +1 -0
- package/dist/components/rbac/ApiKeysPanel.js +172 -0
- package/dist/components/rbac/ApiKeysPanel.js.map +1 -0
- package/dist/components/rbac/ApiKeysTable.js +167 -0
- package/dist/components/rbac/ApiKeysTable.js.map +1 -0
- package/dist/components/rbac/Brand.js +13 -0
- package/dist/components/rbac/Brand.js.map +1 -0
- package/dist/components/rbac/Can.js +18 -0
- package/dist/components/rbac/Can.js.map +1 -0
- package/dist/components/rbac/ChangePasswordForm.js +73 -0
- package/dist/components/rbac/ChangePasswordForm.js.map +1 -0
- package/dist/components/rbac/DangerZone.js +27 -0
- package/dist/components/rbac/DangerZone.js.map +1 -0
- package/dist/components/rbac/DevToolsPopover.js +140 -0
- package/dist/components/rbac/DevToolsPopover.js.map +1 -0
- package/dist/components/rbac/EndedLine.js +24 -0
- package/dist/components/rbac/EndedLine.js.map +1 -0
- package/dist/components/rbac/InvitationsList.js +148 -0
- package/dist/components/rbac/InvitationsList.js.map +1 -0
- package/dist/components/rbac/InviteMembersDialog.js +97 -0
- package/dist/components/rbac/InviteMembersDialog.js.map +1 -0
- package/dist/components/rbac/MembersPanel.js +138 -0
- package/dist/components/rbac/MembersPanel.js.map +1 -0
- package/dist/components/rbac/PermissionRequestPanel.js +141 -0
- package/dist/components/rbac/PermissionRequestPanel.js.map +1 -0
- package/dist/components/rbac/ProfileForm.js +86 -0
- package/dist/components/rbac/ProfileForm.js.map +1 -0
- package/dist/components/rbac/ProfilePage.js +58 -0
- package/dist/components/rbac/ProfilePage.js.map +1 -0
- package/dist/components/rbac/RBACProvider.js +82 -0
- package/dist/components/rbac/RBACProvider.js.map +1 -0
- package/dist/components/rbac/RoleEditorDialog.js +90 -0
- package/dist/components/rbac/RoleEditorDialog.js.map +1 -0
- package/dist/components/rbac/RoleKeyPicker.js +77 -0
- package/dist/components/rbac/RoleKeyPicker.js.map +1 -0
- package/dist/components/rbac/RolePermissionMatrix.js +37 -0
- package/dist/components/rbac/RolePermissionMatrix.js.map +1 -0
- package/dist/components/rbac/RolesPermissionsPage.js +142 -0
- package/dist/components/rbac/RolesPermissionsPage.js.map +1 -0
- package/dist/components/rbac/SessionsList.js +146 -0
- package/dist/components/rbac/SessionsList.js.map +1 -0
- package/dist/components/rbac/TeamSettingsForm.js +69 -0
- package/dist/components/rbac/TeamSettingsForm.js.map +1 -0
- package/dist/components/rbac/TeamSwitcher.js +66 -0
- package/dist/components/rbac/TeamSwitcher.js.map +1 -0
- package/dist/components/rbac/approvalPanelParts.js +130 -0
- package/dist/components/rbac/approvalPanelParts.js.map +1 -0
- package/dist/components/rbac/permissionSections.js +8 -0
- package/dist/components/rbac/permissionSections.js.map +1 -0
- package/dist/components/rbac/stagedForm.js +42 -0
- package/dist/components/rbac/stagedForm.js.map +1 -0
- package/dist/components/rbac/useStagedImage.js +21 -0
- package/dist/components/rbac/useStagedImage.js.map +1 -0
- package/dist/components/roadmap/PhaseManager.js +48 -0
- package/dist/components/roadmap/PhaseManager.js.map +1 -0
- package/dist/components/roadmap/RoadmapItemCard.js +96 -0
- package/dist/components/roadmap/RoadmapItemCard.js.map +1 -0
- package/dist/components/roadmap/RoadmapPage.js +34 -0
- package/dist/components/roadmap/RoadmapPage.js.map +1 -0
- package/dist/components/roadmap/RoadmapSwimlaneBoard.js +91 -0
- package/dist/components/roadmap/RoadmapSwimlaneBoard.js.map +1 -0
- package/dist/components/roadmap/TrackManager.js +58 -0
- package/dist/components/roadmap/TrackManager.js.map +1 -0
- package/dist/components/roadmap/UseCaseCard.js +93 -0
- package/dist/components/roadmap/UseCaseCard.js.map +1 -0
- package/dist/components/roadmap/UseCaseLedgerPage.js +98 -0
- package/dist/components/roadmap/UseCaseLedgerPage.js.map +1 -0
- package/dist/components/roadmap/chip-tones.js +9 -0
- package/dist/components/roadmap/chip-tones.js.map +1 -0
- package/dist/components/roadmap/derive.js +28 -0
- package/dist/components/roadmap/derive.js.map +1 -0
- package/dist/components/stepper/Stepper.js +276 -0
- package/dist/components/stepper/Stepper.js.map +1 -0
- package/dist/components/stepper/derive.js +53 -0
- package/dist/components/stepper/derive.js.map +1 -0
- package/dist/confidence.css +222 -0
- package/dist/fonts/bricolage-grotesque-0.woff2 +0 -0
- package/dist/fonts/bricolage-grotesque-1.woff2 +0 -0
- package/dist/fonts/bricolage-grotesque-2.woff2 +0 -0
- package/dist/fonts/figtree-0.woff2 +0 -0
- package/dist/fonts/figtree-1.woff2 +0 -0
- package/dist/fonts/figtree-2.woff2 +0 -0
- package/dist/fonts/figtree-3.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-0.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-1.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-10.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-11.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-2.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-3.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-4.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-5.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-6.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-7.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-8.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-9.woff2 +0 -0
- package/dist/fonts.css +187 -0
- package/dist/icons/data.js +233 -0
- package/dist/icons/data.js.map +1 -0
- package/dist/index.js +942 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/attention.js +75 -0
- package/dist/lib/attention.js.map +1 -0
- package/dist/lib/board/anchor.js +14 -0
- package/dist/lib/board/anchor.js.map +1 -0
- package/dist/lib/board/model.js +41 -0
- package/dist/lib/board/model.js.map +1 -0
- package/dist/lib/board/move.js +161 -0
- package/dist/lib/board/move.js.map +1 -0
- package/dist/lib/board/position.js +11 -0
- package/dist/lib/board/position.js.map +1 -0
- package/dist/lib/board/rejection.js +22 -0
- package/dist/lib/board/rejection.js.map +1 -0
- package/dist/lib/board/use-board.js +43 -0
- package/dist/lib/board/use-board.js.map +1 -0
- package/dist/lib/calendar/band-packer.js +44 -0
- package/dist/lib/calendar/band-packer.js.map +1 -0
- package/dist/lib/calendar/drag.js +74 -0
- package/dist/lib/calendar/drag.js.map +1 -0
- package/dist/lib/calendar/lane-packer.js +67 -0
- package/dist/lib/calendar/lane-packer.js.map +1 -0
- package/dist/lib/calendar/segments.js +82 -0
- package/dist/lib/calendar/segments.js.map +1 -0
- package/dist/lib/calendar/types.js +7 -0
- package/dist/lib/calendar/types.js.map +1 -0
- package/dist/lib/chart-palette.js +27 -0
- package/dist/lib/chart-palette.js.map +1 -0
- package/dist/lib/clipboard.js +30 -0
- package/dist/lib/clipboard.js.map +1 -0
- package/dist/lib/cn.js +9 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/lib/color.js +24 -0
- package/dist/lib/color.js.map +1 -0
- package/dist/lib/component-guidance.js +297 -0
- package/dist/lib/component-guidance.js.map +1 -0
- package/dist/lib/confidence.js +22 -0
- package/dist/lib/confidence.js.map +1 -0
- package/dist/lib/date-timeline/scale.js +197 -0
- package/dist/lib/date-timeline/scale.js.map +1 -0
- package/dist/lib/design-frame/document.js +44 -0
- package/dist/lib/design-frame/document.js.map +1 -0
- package/dist/lib/design-frame/mini-app-script.js +107 -0
- package/dist/lib/design-frame/mini-app-script.js.map +1 -0
- package/dist/lib/design-frame/mini-app.js +12 -0
- package/dist/lib/design-frame/mini-app.js.map +1 -0
- package/dist/lib/design-frame/protocol.js +46 -0
- package/dist/lib/design-frame/protocol.js.map +1 -0
- package/dist/lib/dev-warn.js +17 -0
- package/dist/lib/dev-warn.js.map +1 -0
- package/dist/lib/dnd/announce.js +120 -0
- package/dist/lib/dnd/announce.js.map +1 -0
- package/dist/lib/dnd/autoscroll.js +123 -0
- package/dist/lib/dnd/autoscroll.js.map +1 -0
- package/dist/lib/dnd/cross-drop.js +11 -0
- package/dist/lib/dnd/cross-drop.js.map +1 -0
- package/dist/lib/dnd/geometry.js +99 -0
- package/dist/lib/dnd/geometry.js.map +1 -0
- package/dist/lib/dnd/sensors/gesture.js +86 -0
- package/dist/lib/dnd/sensors/gesture.js.map +1 -0
- package/dist/lib/dnd/sensors/keyboard.js +47 -0
- package/dist/lib/dnd/sensors/keyboard.js.map +1 -0
- package/dist/lib/dnd/sensors/pointer.js +32 -0
- package/dist/lib/dnd/sensors/pointer.js.map +1 -0
- package/dist/lib/dnd/session.js +256 -0
- package/dist/lib/dnd/session.js.map +1 -0
- package/dist/lib/dnd/use-drag.js +90 -0
- package/dist/lib/dnd/use-drag.js.map +1 -0
- package/dist/lib/dom/scroll-ancestor.js +18 -0
- package/dist/lib/dom/scroll-ancestor.js.map +1 -0
- package/dist/lib/format.js +23 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/group-in-order.js +13 -0
- package/dist/lib/group-in-order.js.map +1 -0
- package/dist/lib/header-fold.js +11 -0
- package/dist/lib/header-fold.js.map +1 -0
- package/dist/lib/i18n/areas/auth-provenance-flows.js +156 -0
- package/dist/lib/i18n/areas/auth-provenance-flows.js.map +1 -0
- package/dist/lib/i18n/areas/board.js +35 -0
- package/dist/lib/i18n/areas/board.js.map +1 -0
- package/dist/lib/i18n/areas/card-face.js +10 -0
- package/dist/lib/i18n/areas/card-face.js.map +1 -0
- package/dist/lib/i18n/areas/chat-chart.js +118 -0
- package/dist/lib/i18n/areas/chat-chart.js.map +1 -0
- package/dist/lib/i18n/areas/code-editor.js +24 -0
- package/dist/lib/i18n/areas/code-editor.js.map +1 -0
- package/dist/lib/i18n/areas/date-timeline.js +21 -0
- package/dist/lib/i18n/areas/date-timeline.js.map +1 -0
- package/dist/lib/i18n/areas/dates.js +71 -0
- package/dist/lib/i18n/areas/dates.js.map +1 -0
- package/dist/lib/i18n/areas/docs-views.js +183 -0
- package/dist/lib/i18n/areas/docs-views.js.map +1 -0
- package/dist/lib/i18n/areas/feedback.js +75 -0
- package/dist/lib/i18n/areas/feedback.js.map +1 -0
- package/dist/lib/i18n/areas/formats.js +24 -0
- package/dist/lib/i18n/areas/formats.js.map +1 -0
- package/dist/lib/i18n/areas/forms.js +110 -0
- package/dist/lib/i18n/areas/forms.js.map +1 -0
- package/dist/lib/i18n/areas/keys.js +25 -0
- package/dist/lib/i18n/areas/keys.js.map +1 -0
- package/dist/lib/i18n/areas/markdown.js +136 -0
- package/dist/lib/i18n/areas/markdown.js.map +1 -0
- package/dist/lib/i18n/areas/move-rejected.js +14 -0
- package/dist/lib/i18n/areas/move-rejected.js.map +1 -0
- package/dist/lib/i18n/areas/navigation.js +104 -0
- package/dist/lib/i18n/areas/navigation.js.map +1 -0
- package/dist/lib/i18n/areas/rbac.js +331 -0
- package/dist/lib/i18n/areas/rbac.js.map +1 -0
- package/dist/lib/i18n/emphasis.js +6 -0
- package/dist/lib/i18n/emphasis.js.map +1 -0
- package/dist/lib/i18n/number-format.js +9 -0
- package/dist/lib/i18n/number-format.js.map +1 -0
- package/dist/lib/i18n/plural.js +9 -0
- package/dist/lib/i18n/plural.js.map +1 -0
- package/dist/lib/i18n/provider.js +27 -0
- package/dist/lib/i18n/provider.js.map +1 -0
- package/dist/lib/i18n/strings.js +38 -0
- package/dist/lib/i18n/strings.js.map +1 -0
- package/dist/lib/icons.js +17 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/interactive-target.js +9 -0
- package/dist/lib/interactive-target.js.map +1 -0
- package/dist/lib/intl-cache.js +69 -0
- package/dist/lib/intl-cache.js.map +1 -0
- package/dist/lib/legal-document.js +37 -0
- package/dist/lib/legal-document.js.map +1 -0
- package/dist/lib/line-diff-model.js +51 -0
- package/dist/lib/line-diff-model.js.map +1 -0
- package/dist/lib/markdown/attachments.js +71 -0
- package/dist/lib/markdown/attachments.js.map +1 -0
- package/dist/lib/markdown/caret-map.js +153 -0
- package/dist/lib/markdown/caret-map.js.map +1 -0
- package/dist/lib/markdown/caret.js +35 -0
- package/dist/lib/markdown/caret.js.map +1 -0
- package/dist/lib/markdown/commands.js +443 -0
- package/dist/lib/markdown/commands.js.map +1 -0
- package/dist/lib/markdown/convert.js +153 -0
- package/dist/lib/markdown/convert.js.map +1 -0
- package/dist/lib/markdown/dom.js +89 -0
- package/dist/lib/markdown/dom.js.map +1 -0
- package/dist/lib/markdown/edit.js +92 -0
- package/dist/lib/markdown/edit.js.map +1 -0
- package/dist/lib/markdown/history.js +79 -0
- package/dist/lib/markdown/history.js.map +1 -0
- package/dist/lib/markdown/hotkeys.js +63 -0
- package/dist/lib/markdown/hotkeys.js.map +1 -0
- package/dist/lib/markdown/image-pipeline.js +236 -0
- package/dist/lib/markdown/image-pipeline.js.map +1 -0
- package/dist/lib/markdown/images.js +85 -0
- package/dist/lib/markdown/images.js.map +1 -0
- package/dist/lib/markdown/input.js +210 -0
- package/dist/lib/markdown/input.js.map +1 -0
- package/dist/lib/markdown/keys.js +37 -0
- package/dist/lib/markdown/keys.js.map +1 -0
- package/dist/lib/markdown/paste.js +180 -0
- package/dist/lib/markdown/paste.js.map +1 -0
- package/dist/lib/markdown/position.js +111 -0
- package/dist/lib/markdown/position.js.map +1 -0
- package/dist/lib/markdown/project.js +108 -0
- package/dist/lib/markdown/project.js.map +1 -0
- package/dist/lib/markdown/reconcile.js +127 -0
- package/dist/lib/markdown/reconcile.js.map +1 -0
- package/dist/lib/markdown/surface.js +373 -0
- package/dist/lib/markdown/surface.js.map +1 -0
- package/dist/lib/motion.js +22 -0
- package/dist/lib/motion.js.map +1 -0
- package/dist/lib/pad.js +7 -0
- package/dist/lib/pad.js.map +1 -0
- package/dist/lib/paged-window/layout.js +15 -0
- package/dist/lib/paged-window/layout.js.map +1 -0
- package/dist/lib/paged-window/list-owner.js +21 -0
- package/dist/lib/paged-window/list-owner.js.map +1 -0
- package/dist/lib/paged-window/records-binding.js +239 -0
- package/dist/lib/paged-window/records-binding.js.map +1 -0
- package/dist/lib/paged-window/store.js +562 -0
- package/dist/lib/paged-window/store.js.map +1 -0
- package/dist/lib/paged-window/use-measured-pitch.js +38 -0
- package/dist/lib/paged-window/use-measured-pitch.js.map +1 -0
- package/dist/lib/paged-window/use-page-visibility.js +36 -0
- package/dist/lib/paged-window/use-page-visibility.js.map +1 -0
- package/dist/lib/paged-window/use-paged-window.js +43 -0
- package/dist/lib/paged-window/use-paged-window.js.map +1 -0
- package/dist/lib/paged-window/use-scroll-root.js +12 -0
- package/dist/lib/paged-window/use-scroll-root.js.map +1 -0
- package/dist/lib/persist.js +84 -0
- package/dist/lib/persist.js.map +1 -0
- package/dist/lib/preference-values.js +13 -0
- package/dist/lib/preference-values.js.map +1 -0
- package/dist/lib/preferences.js +86 -0
- package/dist/lib/preferences.js.map +1 -0
- package/dist/lib/reads/hooks.js +156 -0
- package/dist/lib/reads/hooks.js.map +1 -0
- package/dist/lib/reads/optimistic.js +169 -0
- package/dist/lib/reads/optimistic.js.map +1 -0
- package/dist/lib/reads/refetch.js +108 -0
- package/dist/lib/reads/refetch.js.map +1 -0
- package/dist/lib/reads/slots.js +215 -0
- package/dist/lib/reads/slots.js.map +1 -0
- package/dist/lib/realtime/hooks.js +40 -0
- package/dist/lib/realtime/hooks.js.map +1 -0
- package/dist/lib/realtime/provider.js +25 -0
- package/dist/lib/realtime/provider.js.map +1 -0
- package/dist/lib/realtime/registry.js +472 -0
- package/dist/lib/realtime/registry.js.map +1 -0
- package/dist/lib/records/define-record-type.js +33 -0
- package/dist/lib/records/define-record-type.js.map +1 -0
- package/dist/lib/records/hooks.js +39 -0
- package/dist/lib/records/hooks.js.map +1 -0
- package/dist/lib/records/store.js +572 -0
- package/dist/lib/records/store.js.map +1 -0
- package/dist/lib/records/wire.js +58 -0
- package/dist/lib/records/wire.js.map +1 -0
- package/dist/lib/reduced-motion-help.js +19 -0
- package/dist/lib/reduced-motion-help.js.map +1 -0
- package/dist/lib/scroll-caret.js +18 -0
- package/dist/lib/scroll-caret.js.map +1 -0
- package/dist/lib/sim/createSimStore.js +54 -0
- package/dist/lib/sim/createSimStore.js.map +1 -0
- package/dist/lib/sim/latency.js +28 -0
- package/dist/lib/sim/latency.js.map +1 -0
- package/dist/lib/sim/registry.js +13 -0
- package/dist/lib/sim/registry.js.map +1 -0
- package/dist/lib/sim/settings.js +41 -0
- package/dist/lib/sim/settings.js.map +1 -0
- package/dist/lib/submit-shortcut.js +25 -0
- package/dist/lib/submit-shortcut.js.map +1 -0
- package/dist/lib/syntax/index.js +33 -0
- package/dist/lib/syntax/index.js.map +1 -0
- package/dist/lib/syntax/languages/bash.js +77 -0
- package/dist/lib/syntax/languages/bash.js.map +1 -0
- package/dist/lib/syntax/languages/css.js +81 -0
- package/dist/lib/syntax/languages/css.js.map +1 -0
- package/dist/lib/syntax/languages/html.js +91 -0
- package/dist/lib/syntax/languages/html.js.map +1 -0
- package/dist/lib/syntax/languages/index.js +49 -0
- package/dist/lib/syntax/languages/index.js.map +1 -0
- package/dist/lib/syntax/languages/javascript.js +133 -0
- package/dist/lib/syntax/languages/javascript.js.map +1 -0
- package/dist/lib/syntax/languages/json.js +45 -0
- package/dist/lib/syntax/languages/json.js.map +1 -0
- package/dist/lib/syntax/languages/mongodb.js +24 -0
- package/dist/lib/syntax/languages/mongodb.js.map +1 -0
- package/dist/lib/syntax/languages/plain.js +10 -0
- package/dist/lib/syntax/languages/plain.js.map +1 -0
- package/dist/lib/syntax/languages/sql.js +113 -0
- package/dist/lib/syntax/languages/sql.js.map +1 -0
- package/dist/lib/syntax/languages/vue.js +31 -0
- package/dist/lib/syntax/languages/vue.js.map +1 -0
- package/dist/lib/syntax/languages/yaml.js +55 -0
- package/dist/lib/syntax/languages/yaml.js.map +1 -0
- package/dist/lib/syntax/markdown/grammar.js +52 -0
- package/dist/lib/syntax/markdown/grammar.js.map +1 -0
- package/dist/lib/syntax/markdown/inline.js +477 -0
- package/dist/lib/syntax/markdown/inline.js.map +1 -0
- package/dist/lib/syntax/markdown/parse.js +464 -0
- package/dist/lib/syntax/markdown/parse.js.map +1 -0
- package/dist/lib/syntax/markdown/refs.js +94 -0
- package/dist/lib/syntax/markdown/refs.js.map +1 -0
- package/dist/lib/syntax/markdown/render.js +230 -0
- package/dist/lib/syntax/markdown/render.js.map +1 -0
- package/dist/lib/syntax/markdown/spans.js +40 -0
- package/dist/lib/syntax/markdown/spans.js.map +1 -0
- package/dist/lib/syntax/registry.js +55 -0
- package/dist/lib/syntax/registry.js.map +1 -0
- package/dist/lib/syntax/tokenize.js +96 -0
- package/dist/lib/syntax/tokenize.js.map +1 -0
- package/dist/lib/time/instant.js +7 -0
- package/dist/lib/time/instant.js.map +1 -0
- package/dist/lib/time/plain.js +83 -0
- package/dist/lib/time/plain.js.map +1 -0
- package/dist/lib/time/relativeAge.js +20 -0
- package/dist/lib/time/relativeAge.js.map +1 -0
- package/dist/lib/time/relativeClock.js +59 -0
- package/dist/lib/time/relativeClock.js.map +1 -0
- package/dist/lib/time/types.js +23 -0
- package/dist/lib/time/types.js.map +1 -0
- package/dist/lib/time/zone.js +148 -0
- package/dist/lib/time/zone.js.map +1 -0
- package/dist/lib/use-controllable.js +16 -0
- package/dist/lib/use-controllable.js.map +1 -0
- package/dist/lib/use-fill-height.js +49 -0
- package/dist/lib/use-fill-height.js.map +1 -0
- package/dist/lib/use-hydrated.js +14 -0
- package/dist/lib/use-hydrated.js.map +1 -0
- package/dist/lib/use-media-query.js +30 -0
- package/dist/lib/use-media-query.js.map +1 -0
- package/dist/lib/use-relabel-base-ui-dismiss.js +26 -0
- package/dist/lib/use-relabel-base-ui-dismiss.js.map +1 -0
- package/dist/lib/use-release-snap-drag.js +29 -0
- package/dist/lib/use-release-snap-drag.js.map +1 -0
- package/dist/lib/use-roving-options.js +18 -0
- package/dist/lib/use-roving-options.js.map +1 -0
- package/dist/lib/values/absent.js +5 -0
- package/dist/lib/values/absent.js.map +1 -0
- package/dist/lib/values/boolean.js +13 -0
- package/dist/lib/values/boolean.js.map +1 -0
- package/dist/lib/values/currency.js +23 -0
- package/dist/lib/values/currency.js.map +1 -0
- package/dist/lib/values/date.js +35 -0
- package/dist/lib/values/date.js.map +1 -0
- package/dist/lib/values/datetime.js +54 -0
- package/dist/lib/values/datetime.js.map +1 -0
- package/dist/lib/values/locale-date.js +60 -0
- package/dist/lib/values/locale-date.js.map +1 -0
- package/dist/lib/values/number.js +16 -0
- package/dist/lib/values/number.js.map +1 -0
- package/dist/pure.js +379 -0
- package/dist/pure.js.map +1 -0
- package/dist/styles.css +190 -0
- package/dist/theme.css +360 -0
- package/dist/types/components/Accordion.d.ts +15 -0
- package/dist/types/components/AgentWorkingSpinner.d.ts +23 -0
- package/dist/types/components/AppShell.d.ts +164 -0
- package/dist/types/components/Attention.d.ts +87 -0
- package/dist/types/components/Avatar.d.ts +154 -0
- package/dist/types/components/Badge.d.ts +131 -0
- package/dist/types/components/Board.d.ts +239 -0
- package/dist/types/components/Button.d.ts +208 -0
- package/dist/types/components/Callout.d.ts +163 -0
- package/dist/types/components/Card.d.ts +219 -0
- package/dist/types/components/Choice.d.ts +127 -0
- package/dist/types/components/CodeEditor.d.ts +86 -0
- package/dist/types/components/ColorPicker.d.ts +14 -0
- package/dist/types/components/Combobox.d.ts +43 -0
- package/dist/types/components/CommandPalette.d.ts +35 -0
- package/dist/types/components/ConcentricRing.d.ts +61 -0
- package/dist/types/components/ConnectionCard.d.ts +64 -0
- package/dist/types/components/ContextItemRow.d.ts +35 -0
- package/dist/types/components/CopyValue.d.ts +14 -0
- package/dist/types/components/CountBadge.d.ts +14 -0
- package/dist/types/components/DateCalendar.d.ts +30 -0
- package/dist/types/components/DateField.d.ts +29 -0
- package/dist/types/components/DatePicker.d.ts +20 -0
- package/dist/types/components/DateTimeText.d.ts +9 -0
- package/dist/types/components/DescriptionList.d.ts +40 -0
- package/dist/types/components/Dialog.d.ts +269 -0
- package/dist/types/components/DragDrop.d.ts +196 -0
- package/dist/types/components/Drawer.d.ts +163 -0
- package/dist/types/components/EditGutter.d.ts +44 -0
- package/dist/types/components/EmojiPicker.d.ts +30 -0
- package/dist/types/components/ErrorBoundary.d.ts +43 -0
- package/dist/types/components/Field.d.ts +37 -0
- package/dist/types/components/FileUpload.d.ts +22 -0
- package/dist/types/components/FilterMenu.d.ts +120 -0
- package/dist/types/components/GatesSection.d.ts +79 -0
- package/dist/types/components/Icon.d.ts +40 -0
- package/dist/types/components/IconButton.d.ts +69 -0
- package/dist/types/components/IconStack.d.ts +28 -0
- package/dist/types/components/ImageUploadField.d.ts +38 -0
- package/dist/types/components/InlineEdit.d.ts +183 -0
- package/dist/types/components/InlineMarkdownEdit.d.ts +100 -0
- package/dist/types/components/Input.d.ts +128 -0
- package/dist/types/components/LegalDocument.d.ts +23 -0
- package/dist/types/components/LineDiff.d.ts +53 -0
- package/dist/types/components/ListHeader.d.ts +45 -0
- package/dist/types/components/Loading.d.ts +131 -0
- package/dist/types/components/Markdown.d.ts +35 -0
- package/dist/types/components/MarkdownEditor.d.ts +129 -0
- package/dist/types/components/Menu.d.ts +157 -0
- package/dist/types/components/Navigation.d.ts +67 -0
- package/dist/types/components/NumberInput.d.ts +177 -0
- package/dist/types/components/OTPInput.d.ts +13 -0
- package/dist/types/components/OrderedEntityManager.d.ts +64 -0
- package/dist/types/components/PagedWindowList.d.ts +23 -0
- package/dist/types/components/PaginationBar.d.ts +31 -0
- package/dist/types/components/Panel.d.ts +94 -0
- package/dist/types/components/PasswordInput.d.ts +7 -0
- package/dist/types/components/PasswordRequirements.d.ts +11 -0
- package/dist/types/components/PatchDiff.d.ts +38 -0
- package/dist/types/components/PendingVeil.d.ts +8 -0
- package/dist/types/components/Popover.d.ts +231 -0
- package/dist/types/components/Progress.d.ts +580 -0
- package/dist/types/components/RatingScale.d.ts +30 -0
- package/dist/types/components/ReadMore.d.ts +26 -0
- package/dist/types/components/RecordCard.d.ts +413 -0
- package/dist/types/components/RelativeTime.d.ts +17 -0
- package/dist/types/components/SandboxedFrame.d.ts +37 -0
- package/dist/types/components/SearchInput.d.ts +6 -0
- package/dist/types/components/SecretField.d.ts +90 -0
- package/dist/types/components/SectionNav.d.ts +15 -0
- package/dist/types/components/Select.d.ts +53 -0
- package/dist/types/components/SequenceDiagram.d.ts +15 -0
- package/dist/types/components/SettingRow.d.ts +144 -0
- package/dist/types/components/SignOffRings.d.ts +29 -0
- package/dist/types/components/Slider.d.ts +255 -0
- package/dist/types/components/SolutionChoice.d.ts +49 -0
- package/dist/types/components/SortMenu.d.ts +45 -0
- package/dist/types/components/Spinner.d.ts +29 -0
- package/dist/types/components/Stat.d.ts +136 -0
- package/dist/types/components/StatusSelect.d.ts +93 -0
- package/dist/types/components/Surface.d.ts +145 -0
- package/dist/types/components/Table.d.ts +164 -0
- package/dist/types/components/Tabs.d.ts +142 -0
- package/dist/types/components/ThemeMenu.d.ts +56 -0
- package/dist/types/components/Toast.d.ts +63 -0
- package/dist/types/components/Toggle.d.ts +168 -0
- package/dist/types/components/ToggleMatrix.d.ts +51 -0
- package/dist/types/components/Tree.d.ts +20 -0
- package/dist/types/components/TriStateSwitch.d.ts +63 -0
- package/dist/types/components/VideoPlayer.d.ts +26 -0
- package/dist/types/components/auth/AcceptInvitationCard.d.ts +54 -0
- package/dist/types/components/auth/AuthLayout.d.ts +12 -0
- package/dist/types/components/auth/ForgotPasswordForm.d.ts +6 -0
- package/dist/types/components/auth/LoginForm.d.ts +13 -0
- package/dist/types/components/auth/ResetPasswordForm.d.ts +9 -0
- package/dist/types/components/auth/SignInProviders.d.ts +56 -0
- package/dist/types/components/auth/SignupCard.d.ts +62 -0
- package/dist/types/components/auth/TermsAcceptance.d.ts +14 -0
- package/dist/types/components/auth/index.d.ts +8 -0
- package/dist/types/components/board/context.d.ts +65 -0
- package/dist/types/components/board/recipe.d.ts +97 -0
- package/dist/types/components/calendar/CalendarMonth.d.ts +32 -0
- package/dist/types/components/calendar/CalendarTimeGrid.d.ts +74 -0
- package/dist/types/components/calendar/EventActions.d.ts +16 -0
- package/dist/types/components/calendar/format.d.ts +42 -0
- package/dist/types/components/calendar/palette.d.ts +17 -0
- package/dist/types/components/calendar/use-calendar-drag.d.ts +53 -0
- package/dist/types/components/calendar/use-event-keyboard.d.ts +23 -0
- package/dist/types/components/calendar/use-grid-navigation.d.ts +47 -0
- package/dist/types/components/calendar/use-now.d.ts +20 -0
- package/dist/types/components/card-face/AcRingGlyph.d.ts +20 -0
- package/dist/types/components/card-face/BoardCardAgentSlot.d.ts +19 -0
- package/dist/types/components/card-face/CardFace.d.ts +106 -0
- package/dist/types/components/card-face/CardTypeBadge.d.ts +21 -0
- package/dist/types/components/card-face/EffortBadge.d.ts +9 -0
- package/dist/types/components/card-face/GateRingGlyph.d.ts +22 -0
- package/dist/types/components/card-face/OverflowRow.d.ts +40 -0
- package/dist/types/components/card-face/TapTip.d.ts +15 -0
- package/dist/types/components/card-face/hit-area.d.ts +20 -0
- package/dist/types/components/card-face/vocabulary.d.ts +83 -0
- package/dist/types/components/chart/BarList.d.ts +27 -0
- package/dist/types/components/chart/LineChart.d.ts +64 -0
- package/dist/types/components/chart/ShareBar.d.ts +26 -0
- package/dist/types/components/chart/TimeSeriesChart.d.ts +60 -0
- package/dist/types/components/chart/label-metrics.d.ts +9 -0
- package/dist/types/components/chart/line-chart-axis.d.ts +14 -0
- package/dist/types/components/chart/line-chart-scale.d.ts +55 -0
- package/dist/types/components/chart/line-series-style.d.ts +14 -0
- package/dist/types/components/chart/share-bar-labels.d.ts +17 -0
- package/dist/types/components/chart/shared.d.ts +122 -0
- package/dist/types/components/chart/time-series-scale.d.ts +29 -0
- package/dist/types/components/chat/Attachment.d.ts +125 -0
- package/dist/types/components/chat/Chat.d.ts +60 -0
- package/dist/types/components/chat/Composer.d.ts +62 -0
- package/dist/types/components/chat/ContextMeter.d.ts +45 -0
- package/dist/types/components/chat/EffortControl.d.ts +23 -0
- package/dist/types/components/chat/FileCover.d.ts +14 -0
- package/dist/types/components/chat/Message.d.ts +66 -0
- package/dist/types/components/chat/MessageScroller.d.ts +18 -0
- package/dist/types/components/chat/ModelSelector.d.ts +44 -0
- package/dist/types/components/chat/StreamingMarkdown.d.ts +11 -0
- package/dist/types/components/chat/download-file.d.ts +7 -0
- package/dist/types/components/chat/file-icon.d.ts +29 -0
- package/dist/types/components/chat/types.d.ts +165 -0
- package/dist/types/components/checklist/StatusChecklist.d.ts +37 -0
- package/dist/types/components/checklist/index.d.ts +3 -0
- package/dist/types/components/checklist/tally.d.ts +19 -0
- package/dist/types/components/checklist/types.d.ts +28 -0
- package/dist/types/components/code-editor/context.d.ts +32 -0
- package/dist/types/components/code-editor/editing.d.ts +39 -0
- package/dist/types/components/code-editor/highlight.d.ts +20 -0
- package/dist/types/components/code-editor/recipe.d.ts +109 -0
- package/dist/types/components/date-timeline/DateTimeline.d.ts +99 -0
- package/dist/types/components/date-timeline/TimelineRow.d.ts +22 -0
- package/dist/types/components/date-timeline/useBarDrag.d.ts +15 -0
- package/dist/types/components/date-timeline/useMarkerDrag.d.ts +14 -0
- package/dist/types/components/date-timeline/useTimelineZoom.d.ts +23 -0
- package/dist/types/components/drag-drop/context.d.ts +85 -0
- package/dist/types/components/drag-drop/recipe.d.ts +163 -0
- package/dist/types/components/drag-drop/shift.d.ts +153 -0
- package/dist/types/components/edit/activation.d.ts +21 -0
- package/dist/types/components/edit/outcome.d.ts +29 -0
- package/dist/types/components/edit/use-edit-session.d.ts +77 -0
- package/dist/types/components/file-viewer/FileViewer.d.ts +2 -0
- package/dist/types/components/file-viewer/PageNumberJumpField.d.ts +9 -0
- package/dist/types/components/file-viewer/ViewerControls.d.ts +20 -0
- package/dist/types/components/file-viewer/ViewerRail.d.ts +10 -0
- package/dist/types/components/file-viewer/ViewerStage.d.ts +22 -0
- package/dist/types/components/file-viewer/frames.d.ts +28 -0
- package/dist/types/components/file-viewer/index.d.ts +3 -0
- package/dist/types/components/file-viewer/types.d.ts +70 -0
- package/dist/types/components/file-viewer/use-frame-cursor.d.ts +13 -0
- package/dist/types/components/file-viewer/use-viewer-keys.d.ts +24 -0
- package/dist/types/components/file-viewer/use-viewer-zoom.d.ts +29 -0
- package/dist/types/components/focus-web/FocusWeb.d.ts +3 -0
- package/dist/types/components/focus-web/index.d.ts +4 -0
- package/dist/types/components/focus-web/layout.d.ts +55 -0
- package/dist/types/components/focus-web/types.d.ts +131 -0
- package/dist/types/components/graph-explorer/GraphExplorer.d.ts +42 -0
- package/dist/types/components/graph-explorer/camera-math.d.ts +119 -0
- package/dist/types/components/graph-explorer/index.d.ts +5 -0
- package/dist/types/components/graph-explorer/tree-layout.d.ts +67 -0
- package/dist/types/components/graph-explorer/types.d.ts +62 -0
- package/dist/types/components/graph-explorer/use-camera.d.ts +81 -0
- package/dist/types/components/graph-explorer/viewport-gesture.d.ts +32 -0
- package/dist/types/components/kanban/KanbanBoard.d.ts +72 -0
- package/dist/types/components/kanban/recipe.d.ts +73 -0
- package/dist/types/components/kanban/types.d.ts +55 -0
- package/dist/types/components/markdown/Affordances.d.ts +105 -0
- package/dist/types/components/markdown/AttachmentStrip.d.ts +25 -0
- package/dist/types/components/markdown/ImageUpload.d.ts +56 -0
- package/dist/types/components/media-error.d.ts +11 -0
- package/dist/types/components/nav-sections.d.ts +10 -0
- package/dist/types/components/node-canvas/NodeCanvas.d.ts +66 -0
- package/dist/types/components/node-canvas/index.d.ts +3 -0
- package/dist/types/components/node-canvas/layout.d.ts +29 -0
- package/dist/types/components/node-canvas/types.d.ts +207 -0
- package/dist/types/components/node-canvas/use-canvas-gestures.d.ts +39 -0
- package/dist/types/components/openapi/OpenApiViewer.d.ts +14 -0
- package/dist/types/components/openapi/OperationCard.d.ts +33 -0
- package/dist/types/components/openapi/SchemaView.d.ts +14 -0
- package/dist/types/components/openapi/index.d.ts +6 -0
- package/dist/types/components/openapi/resolve.d.ts +72 -0
- package/dist/types/components/openapi/types.d.ts +128 -0
- package/dist/types/components/overlay-shell.d.ts +48 -0
- package/dist/types/components/overlay-stack.d.ts +18 -0
- package/dist/types/components/paged-window/PageBlock.d.ts +31 -0
- package/dist/types/components/provenance/ConfidenceBar.d.ts +118 -0
- package/dist/types/components/provenance/ConfidenceMeter.d.ts +21 -0
- package/dist/types/components/provenance/ConfidenceReadout.d.ts +17 -0
- package/dist/types/components/provenance/ProvenanceBadge.d.ts +23 -0
- package/dist/types/components/provenance/ProvenanceDetail.d.ts +109 -0
- package/dist/types/components/provenance/ProvenanceDisclosure.d.ts +107 -0
- package/dist/types/components/provenance/absence.d.ts +37 -0
- package/dist/types/components/provenance/index.d.ts +7 -0
- package/dist/types/components/provenance/types.d.ts +137 -0
- package/dist/types/components/rbac/AccessRequestPanel.d.ts +92 -0
- package/dist/types/components/rbac/AccountMenu.d.ts +46 -0
- package/dist/types/components/rbac/AgentKeysList.d.ts +20 -0
- package/dist/types/components/rbac/ApiKeysPanel.d.ts +26 -0
- package/dist/types/components/rbac/ApiKeysTable.d.ts +63 -0
- package/dist/types/components/rbac/Brand.d.ts +8 -0
- package/dist/types/components/rbac/Can.d.ts +19 -0
- package/dist/types/components/rbac/ChangePasswordForm.d.ts +18 -0
- package/dist/types/components/rbac/DangerZone.d.ts +8 -0
- package/dist/types/components/rbac/DevToolsPopover.d.ts +36 -0
- package/dist/types/components/rbac/EndedLine.d.ts +21 -0
- package/dist/types/components/rbac/InvitationsList.d.ts +39 -0
- package/dist/types/components/rbac/InviteMembersDialog.d.ts +21 -0
- package/dist/types/components/rbac/MembersPanel.d.ts +31 -0
- package/dist/types/components/rbac/PermissionRequestPanel.d.ts +36 -0
- package/dist/types/components/rbac/ProfileForm.d.ts +27 -0
- package/dist/types/components/rbac/ProfilePage.d.ts +16 -0
- package/dist/types/components/rbac/RBACProvider.d.ts +69 -0
- package/dist/types/components/rbac/RoleEditorDialog.d.ts +28 -0
- package/dist/types/components/rbac/RoleKeyPicker.d.ts +24 -0
- package/dist/types/components/rbac/RolePermissionMatrix.d.ts +21 -0
- package/dist/types/components/rbac/RolesPermissionsPage.d.ts +24 -0
- package/dist/types/components/rbac/SessionsList.d.ts +35 -0
- package/dist/types/components/rbac/TeamSettingsForm.d.ts +22 -0
- package/dist/types/components/rbac/TeamSwitcher.d.ts +5 -0
- package/dist/types/components/rbac/approvalPanelParts.d.ts +69 -0
- package/dist/types/components/rbac/index.d.ts +25 -0
- package/dist/types/components/rbac/permissionSections.d.ts +8 -0
- package/dist/types/components/rbac/stagedForm.d.ts +25 -0
- package/dist/types/components/rbac/types.d.ts +65 -0
- package/dist/types/components/rbac/useStagedImage.d.ts +15 -0
- package/dist/types/components/roadmap/PhaseManager.d.ts +19 -0
- package/dist/types/components/roadmap/RoadmapItemCard.d.ts +51 -0
- package/dist/types/components/roadmap/RoadmapPage.d.ts +12 -0
- package/dist/types/components/roadmap/RoadmapSwimlaneBoard.d.ts +15 -0
- package/dist/types/components/roadmap/TrackManager.d.ts +19 -0
- package/dist/types/components/roadmap/UseCaseCard.d.ts +30 -0
- package/dist/types/components/roadmap/UseCaseLedgerPage.d.ts +29 -0
- package/dist/types/components/roadmap/chip-tones.d.ts +2 -0
- package/dist/types/components/roadmap/derive.d.ts +39 -0
- package/dist/types/components/roadmap/index.d.ts +10 -0
- package/dist/types/components/roadmap/types.d.ts +86 -0
- package/dist/types/components/stepper/Stepper.d.ts +79 -0
- package/dist/types/components/stepper/derive.d.ts +49 -0
- package/dist/types/components/stepper/index.d.ts +3 -0
- package/dist/types/components/stepper/types.d.ts +118 -0
- package/dist/types/icons/data.d.ts +2054 -0
- package/dist/types/index.d.ts +209 -0
- package/dist/types/lib/attention.d.ts +62 -0
- package/dist/types/lib/board/anchor.d.ts +69 -0
- package/dist/types/lib/board/index.d.ts +17 -0
- package/dist/types/lib/board/model.d.ts +43 -0
- package/dist/types/lib/board/move.d.ts +181 -0
- package/dist/types/lib/board/position.d.ts +22 -0
- package/dist/types/lib/board/rejection.d.ts +8 -0
- package/dist/types/lib/board/types.d.ts +294 -0
- package/dist/types/lib/board/use-board.d.ts +47 -0
- package/dist/types/lib/calendar/band-packer.d.ts +53 -0
- package/dist/types/lib/calendar/drag.d.ts +125 -0
- package/dist/types/lib/calendar/index.d.ts +4 -0
- package/dist/types/lib/calendar/lane-packer.d.ts +88 -0
- package/dist/types/lib/calendar/segments.d.ts +91 -0
- package/dist/types/lib/calendar/types.d.ts +166 -0
- package/dist/types/lib/chart-palette.d.ts +14 -0
- package/dist/types/lib/clipboard.d.ts +12 -0
- package/dist/types/lib/cn.d.ts +7 -0
- package/dist/types/lib/color.d.ts +14 -0
- package/dist/types/lib/component-guidance.d.ts +15 -0
- package/dist/types/lib/confidence.d.ts +28 -0
- package/dist/types/lib/date-timeline/scale.d.ts +143 -0
- package/dist/types/lib/design-frame/document.d.ts +39 -0
- package/dist/types/lib/design-frame/mini-app-script.d.ts +29 -0
- package/dist/types/lib/design-frame/mini-app.d.ts +17 -0
- package/dist/types/lib/design-frame/protocol.d.ts +78 -0
- package/dist/types/lib/dev-warn.d.ts +10 -0
- package/dist/types/lib/dnd/announce.d.ts +124 -0
- package/dist/types/lib/dnd/autoscroll.d.ts +88 -0
- package/dist/types/lib/dnd/cross-drop.d.ts +18 -0
- package/dist/types/lib/dnd/geometry.d.ts +126 -0
- package/dist/types/lib/dnd/index.d.ts +17 -0
- package/dist/types/lib/dnd/sensors/gesture.d.ts +37 -0
- package/dist/types/lib/dnd/sensors/keyboard.d.ts +54 -0
- package/dist/types/lib/dnd/sensors/pointer.d.ts +59 -0
- package/dist/types/lib/dnd/session.d.ts +124 -0
- package/dist/types/lib/dnd/types.d.ts +226 -0
- package/dist/types/lib/dnd/use-drag.d.ts +82 -0
- package/dist/types/lib/dom/scroll-ancestor.d.ts +15 -0
- package/dist/types/lib/format.d.ts +33 -0
- package/dist/types/lib/group-in-order.d.ts +13 -0
- package/dist/types/lib/header-fold.d.ts +10 -0
- package/dist/types/lib/i18n/areas/auth-provenance-flows.d.ts +287 -0
- package/dist/types/lib/i18n/areas/board.d.ts +51 -0
- package/dist/types/lib/i18n/areas/card-face.d.ts +8 -0
- package/dist/types/lib/i18n/areas/chat-chart.d.ts +202 -0
- package/dist/types/lib/i18n/areas/code-editor.d.ts +40 -0
- package/dist/types/lib/i18n/areas/date-timeline.d.ts +36 -0
- package/dist/types/lib/i18n/areas/dates.d.ts +103 -0
- package/dist/types/lib/i18n/areas/docs-views.d.ts +297 -0
- package/dist/types/lib/i18n/areas/feedback.d.ts +132 -0
- package/dist/types/lib/i18n/areas/formats.d.ts +30 -0
- package/dist/types/lib/i18n/areas/forms.d.ts +182 -0
- package/dist/types/lib/i18n/areas/keys.d.ts +15 -0
- package/dist/types/lib/i18n/areas/markdown.d.ts +150 -0
- package/dist/types/lib/i18n/areas/move-rejected.d.ts +16 -0
- package/dist/types/lib/i18n/areas/navigation.d.ts +185 -0
- package/dist/types/lib/i18n/areas/rbac.d.ts +633 -0
- package/dist/types/lib/i18n/emphasis.d.ts +3 -0
- package/dist/types/lib/i18n/index.d.ts +10 -0
- package/dist/types/lib/i18n/number-format.d.ts +5 -0
- package/dist/types/lib/i18n/plural.d.ts +7 -0
- package/dist/types/lib/i18n/provider.d.ts +16 -0
- package/dist/types/lib/i18n/strings.d.ts +18 -0
- package/dist/types/lib/icons.d.ts +22 -0
- package/dist/types/lib/interactive-target.d.ts +3 -0
- package/dist/types/lib/intl-cache.d.ts +31 -0
- package/dist/types/lib/legal-document.d.ts +82 -0
- package/dist/types/lib/line-diff-model.d.ts +39 -0
- package/dist/types/lib/markdown/attachments.d.ts +50 -0
- package/dist/types/lib/markdown/caret-map.d.ts +69 -0
- package/dist/types/lib/markdown/caret.d.ts +6 -0
- package/dist/types/lib/markdown/commands.d.ts +186 -0
- package/dist/types/lib/markdown/convert.d.ts +99 -0
- package/dist/types/lib/markdown/dom.d.ts +30 -0
- package/dist/types/lib/markdown/edit.d.ts +16 -0
- package/dist/types/lib/markdown/history.d.ts +59 -0
- package/dist/types/lib/markdown/hotkeys.d.ts +63 -0
- package/dist/types/lib/markdown/image-pipeline.d.ts +173 -0
- package/dist/types/lib/markdown/images.d.ts +138 -0
- package/dist/types/lib/markdown/input.d.ts +38 -0
- package/dist/types/lib/markdown/keys.d.ts +34 -0
- package/dist/types/lib/markdown/paste.d.ts +9 -0
- package/dist/types/lib/markdown/position.d.ts +43 -0
- package/dist/types/lib/markdown/project.d.ts +88 -0
- package/dist/types/lib/markdown/reconcile.d.ts +63 -0
- package/dist/types/lib/markdown/surface.d.ts +236 -0
- package/dist/types/lib/motion.d.ts +30 -0
- package/dist/types/lib/pad.d.ts +6 -0
- package/dist/types/lib/paged-window/index.d.ts +2 -0
- package/dist/types/lib/paged-window/layout.d.ts +21 -0
- package/dist/types/lib/paged-window/list-owner.d.ts +12 -0
- package/dist/types/lib/paged-window/records-binding.d.ts +102 -0
- package/dist/types/lib/paged-window/store.d.ts +307 -0
- package/dist/types/lib/paged-window/use-measured-pitch.d.ts +34 -0
- package/dist/types/lib/paged-window/use-page-visibility.d.ts +20 -0
- package/dist/types/lib/paged-window/use-paged-window.d.ts +61 -0
- package/dist/types/lib/paged-window/use-scroll-root.d.ts +18 -0
- package/dist/types/lib/persist.d.ts +57 -0
- package/dist/types/lib/preference-values.d.ts +72 -0
- package/dist/types/lib/preferences.d.ts +26 -0
- package/dist/types/lib/reads/hooks.d.ts +49 -0
- package/dist/types/lib/reads/index.d.ts +5 -0
- package/dist/types/lib/reads/optimistic.d.ts +119 -0
- package/dist/types/lib/reads/refetch.d.ts +83 -0
- package/dist/types/lib/reads/slots.d.ts +137 -0
- package/dist/types/lib/reads/types.d.ts +155 -0
- package/dist/types/lib/realtime/hooks.d.ts +38 -0
- package/dist/types/lib/realtime/index.d.ts +4 -0
- package/dist/types/lib/realtime/provider.d.ts +38 -0
- package/dist/types/lib/realtime/registry.d.ts +225 -0
- package/dist/types/lib/realtime/types.d.ts +242 -0
- package/dist/types/lib/records/define-record-type.d.ts +29 -0
- package/dist/types/lib/records/hooks.d.ts +46 -0
- package/dist/types/lib/records/index.d.ts +5 -0
- package/dist/types/lib/records/store.d.ts +289 -0
- package/dist/types/lib/records/types.d.ts +195 -0
- package/dist/types/lib/records/wire.d.ts +96 -0
- package/dist/types/lib/reduced-motion-help.d.ts +23 -0
- package/dist/types/lib/scroll-caret.d.ts +6 -0
- package/dist/types/lib/sim/createSimStore.d.ts +18 -0
- package/dist/types/lib/sim/index.d.ts +5 -0
- package/dist/types/lib/sim/latency.d.ts +10 -0
- package/dist/types/lib/sim/registry.d.ts +14 -0
- package/dist/types/lib/sim/settings.d.ts +11 -0
- package/dist/types/lib/sim/types.d.ts +3 -0
- package/dist/types/lib/submit-shortcut.d.ts +24 -0
- package/dist/types/lib/syntax/index.d.ts +16 -0
- package/dist/types/lib/syntax/languages/bash.d.ts +1 -0
- package/dist/types/lib/syntax/languages/css.d.ts +1 -0
- package/dist/types/lib/syntax/languages/html.d.ts +17 -0
- package/dist/types/lib/syntax/languages/index.d.ts +33 -0
- package/dist/types/lib/syntax/languages/javascript.d.ts +22 -0
- package/dist/types/lib/syntax/languages/json.d.ts +1 -0
- package/dist/types/lib/syntax/languages/mongodb.d.ts +1 -0
- package/dist/types/lib/syntax/languages/plain.d.ts +9 -0
- package/dist/types/lib/syntax/languages/sql.d.ts +4 -0
- package/dist/types/lib/syntax/languages/vue.d.ts +1 -0
- package/dist/types/lib/syntax/languages/yaml.d.ts +1 -0
- package/dist/types/lib/syntax/markdown/frames.d.ts +145 -0
- package/dist/types/lib/syntax/markdown/grammar.d.ts +1 -0
- package/dist/types/lib/syntax/markdown/index.d.ts +5 -0
- package/dist/types/lib/syntax/markdown/inline.d.ts +21 -0
- package/dist/types/lib/syntax/markdown/parse.d.ts +15 -0
- package/dist/types/lib/syntax/markdown/refs.d.ts +47 -0
- package/dist/types/lib/syntax/markdown/render.d.ts +25 -0
- package/dist/types/lib/syntax/markdown/spans.d.ts +84 -0
- package/dist/types/lib/syntax/markdown/types.d.ts +108 -0
- package/dist/types/lib/syntax/registry.d.ts +37 -0
- package/dist/types/lib/syntax/tokenize.d.ts +17 -0
- package/dist/types/lib/syntax/types.d.ts +119 -0
- package/dist/types/lib/time/index.d.ts +4 -0
- package/dist/types/lib/time/instant.d.ts +2 -0
- package/dist/types/lib/time/plain.d.ts +61 -0
- package/dist/types/lib/time/relativeAge.d.ts +18 -0
- package/dist/types/lib/time/relativeClock.d.ts +8 -0
- package/dist/types/lib/time/types.d.ts +87 -0
- package/dist/types/lib/time/zone.d.ts +106 -0
- package/dist/types/lib/use-controllable.d.ts +14 -0
- package/dist/types/lib/use-fill-height.d.ts +26 -0
- package/dist/types/lib/use-hydrated.d.ts +8 -0
- package/dist/types/lib/use-media-query.d.ts +29 -0
- package/dist/types/lib/use-relabel-base-ui-dismiss.d.ts +6 -0
- package/dist/types/lib/use-release-snap-drag.d.ts +25 -0
- package/dist/types/lib/use-roving-options.d.ts +10 -0
- package/dist/types/lib/values/absent.d.ts +7 -0
- package/dist/types/lib/values/boolean.d.ts +29 -0
- package/dist/types/lib/values/currency.d.ts +22 -0
- package/dist/types/lib/values/date.d.ts +30 -0
- package/dist/types/lib/values/datetime.d.ts +48 -0
- package/dist/types/lib/values/index.d.ts +5 -0
- package/dist/types/lib/values/locale-date.d.ts +34 -0
- package/dist/types/lib/values/number.d.ts +27 -0
- package/dist/types/pure.d.ts +48 -0
- package/package.json +136 -4
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import { jsxs as i, Fragment as X, jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { useState as Y, useRef as A, useId as O } from "react";
|
|
3
|
+
import { useRender as q } from "@base-ui/react/use-render";
|
|
4
|
+
import { tv as F } from "tailwind-variants";
|
|
5
|
+
import { cn as m } from "../lib/cn.js";
|
|
6
|
+
import { Spinner as L } from "./Spinner.js";
|
|
7
|
+
import { Tooltip as Z } from "./Popover.js";
|
|
8
|
+
const G = F({
|
|
9
|
+
base: [
|
|
10
|
+
"relative inline-flex select-none items-center justify-center gap-2 overflow-hidden",
|
|
11
|
+
"font-sans font-semibold whitespace-nowrap",
|
|
12
|
+
/* THE POINTER IS PART OF THE AFFORDANCE, and it belongs HERE.
|
|
13
|
+
|
|
14
|
+
A `<button>` computes `cursor: default` — the same arrow as the dead
|
|
15
|
+
space around it — so nothing about resting on one says it can be
|
|
16
|
+
pressed. The library had been paying for that one control at a time:
|
|
17
|
+
31 hand-written `cursor-pointer`s scattered across components, and
|
|
18
|
+
every control whose author forgot read as inert. `Button` itself was
|
|
19
|
+
one of the ones that forgot, which meant EVERY consumer of it was too.
|
|
20
|
+
|
|
21
|
+
Declaring it on the base makes it unforgettable rather than
|
|
22
|
+
remembered — a caller cannot ship a Button without it. */
|
|
23
|
+
"cursor-pointer",
|
|
24
|
+
"transition-[var(--tx-colors),box-shadow,translate]",
|
|
25
|
+
"duration-(--dur-instant) ease-hover",
|
|
26
|
+
"active:translate-y-px",
|
|
27
|
+
"disabled:pointer-events-none",
|
|
28
|
+
/* A LOADING button is still `disabled` — that is what stops a second submit
|
|
29
|
+
and blocks keyboard activation — but it must NOT wear the disabled
|
|
30
|
+
LOOK. Dimming it says "unavailable" when the truth is "working", and the
|
|
31
|
+
button visibly changes colour the instant you press it, which reads as
|
|
32
|
+
breakage. So the dimming is scoped to genuinely-disabled buttons only.
|
|
33
|
+
The size never moves either: the label stays in the layout at opacity 0
|
|
34
|
+
with the spinner absolutely positioned over it. */
|
|
35
|
+
"disabled:not-data-loading:opacity-45",
|
|
36
|
+
/* THE SOFT FORM OF OFF HAS TO DIM TOO, and until now only the native one
|
|
37
|
+
did. `aria-disabled` is this library's stance for a control that must
|
|
38
|
+
stay hoverable so it can explain itself (`IconButton.disabledReason`) —
|
|
39
|
+
and it is ALSO what a control becomes when it is not asking to: Base UI
|
|
40
|
+
deletes the native `disabled` attribute off a composite item that renders
|
|
41
|
+
another button (`useButton`: "the `disabled` prop needs to pass through 2
|
|
42
|
+
`useButton`s then finally delete the `disabled` attribute from DOM").
|
|
43
|
+
|
|
44
|
+
MEASURED, because the form matters and the obvious reading of it is
|
|
45
|
+
wrong. `<ToolbarButton render={<Button disabled/>}/>` — disabled on the
|
|
46
|
+
INNER button — keeps `disabled=true` and dims as it always did. It is
|
|
47
|
+
`disabled` on the TOOLBAR ITEM that gets deleted: both
|
|
48
|
+
`<ToolbarButton disabled render={<Button/>}/>` and a plain
|
|
49
|
+
`<ToolbarButton disabled>` come out `disabled=false`,
|
|
50
|
+
`aria-disabled="true"`, `data-disabled=""` — full opacity, pointer
|
|
51
|
+
cursor, no-op click. A control that looks armed and does nothing is the
|
|
52
|
+
worst of the three states, and it was reported by a consumer who kept a
|
|
53
|
+
hand-rolled action bar rather than accept it.
|
|
54
|
+
|
|
55
|
+
So the look is keyed to BOTH forms. Not `pointer-events-none` though:
|
|
56
|
+
that is exactly what makes a natively-disabled control unhoverable and
|
|
57
|
+
its tooltip unreachable, and reaching it is the entire reason the soft
|
|
58
|
+
form exists. The click is already inert — `Button` treats `aria-disabled`
|
|
59
|
+
as disabled for the ripple, Base UI no-ops the handler — so what was
|
|
60
|
+
missing was only the two lines that SAY so. */
|
|
61
|
+
"aria-disabled:not-data-loading:opacity-45",
|
|
62
|
+
"aria-disabled:cursor-not-allowed aria-disabled:active:translate-y-0",
|
|
63
|
+
"data-loading:pointer-events-none data-loading:cursor-wait"
|
|
64
|
+
],
|
|
65
|
+
variants: {
|
|
66
|
+
variant: {
|
|
67
|
+
solid: [
|
|
68
|
+
"bg-accent text-accent-contrast shadow-sm",
|
|
69
|
+
"hover:bg-accent-hover hover:shadow-md",
|
|
70
|
+
"active:bg-accent-active active:shadow-xs"
|
|
71
|
+
],
|
|
72
|
+
brand: [
|
|
73
|
+
"bg-brand text-brand-contrast shadow-sm",
|
|
74
|
+
"hover:bg-brand-hover hover:shadow-md",
|
|
75
|
+
"active:shadow-xs"
|
|
76
|
+
],
|
|
77
|
+
subtle: ["bg-accent-subtle text-accent-text", "hover:bg-accent-subtle-hover"],
|
|
78
|
+
outline: [
|
|
79
|
+
"border border-border-strong bg-surface text-primary shadow-xs",
|
|
80
|
+
"hover:border-border-interactive hover:bg-surface-hover hover:shadow-sm",
|
|
81
|
+
"active:bg-surface-active"
|
|
82
|
+
],
|
|
83
|
+
ghost: ["text-secondary", "hover:bg-surface-hover hover:text-primary"],
|
|
84
|
+
/* DESTRUCTIVE, BUT QUIET AT REST. A row of delete controls that is red
|
|
85
|
+
before you touch it turns the whole list into an alarm, and the one
|
|
86
|
+
genuinely dangerous thing on the page stops standing out. So the
|
|
87
|
+
resting state is the same neutral as `ghost` and the danger arrives on
|
|
88
|
+
approach — hover and focus alike, because a keyboard user reaches this
|
|
89
|
+
control without ever generating a hover.
|
|
90
|
+
|
|
91
|
+
The tint is a BACKGROUND appearing, not only a hue rotation. Hue alone
|
|
92
|
+
would be the entire signal for anyone who cannot separate red from
|
|
93
|
+
grey; a filled plate behind the glyph changes luminance too, and reads
|
|
94
|
+
as "armed" without reference to colour. */
|
|
95
|
+
"ghost-danger": [
|
|
96
|
+
"text-secondary",
|
|
97
|
+
"hover:bg-danger-subtle hover:text-danger-text",
|
|
98
|
+
"focus-visible:bg-danger-subtle focus-visible:text-danger-text",
|
|
99
|
+
"active:bg-danger-subtle-hover"
|
|
100
|
+
],
|
|
101
|
+
"outline-danger": [
|
|
102
|
+
"border border-border-strong bg-surface text-primary shadow-xs",
|
|
103
|
+
"hover:border-danger-border hover:bg-danger-subtle hover:text-danger-text hover:shadow-sm",
|
|
104
|
+
"focus-visible:border-danger-border focus-visible:bg-danger-subtle focus-visible:text-danger-text",
|
|
105
|
+
"active:bg-danger-subtle-hover"
|
|
106
|
+
],
|
|
107
|
+
danger: [
|
|
108
|
+
"bg-danger text-danger-contrast shadow-sm",
|
|
109
|
+
"hover:bg-danger-hover hover:shadow-md",
|
|
110
|
+
"active:shadow-xs"
|
|
111
|
+
],
|
|
112
|
+
/* A TOKEN, not `hover:brightness-110`. A filter does not change the
|
|
113
|
+
computed background, so this variant's hover was invisible to every
|
|
114
|
+
contrast check in the repo — and a brightness step is not a colour the
|
|
115
|
+
theme can tune, which is the whole point of the token layer. */
|
|
116
|
+
"danger-subtle": ["bg-danger-subtle text-danger-text", "hover:bg-danger-subtle-hover"],
|
|
117
|
+
/* CAUTION, NOT DANGER. A toned, bordered chip rather than a solid fill —
|
|
118
|
+
the same weight `outline-danger` carries, in the hue that means "this
|
|
119
|
+
is reversible but worth a second look" rather than "this destroys
|
|
120
|
+
something". Added SG-833 slice 7: three call sites
|
|
121
|
+
(`ConfirmAction.tsx`, `AnswerKeyPanel.tsx`, `DataPointModal.tsx` in
|
|
122
|
+
gpt-manager's Demand Desk) were each hand-rolling this exact recipe —
|
|
123
|
+
`border-warning-border bg-warning-subtle text-warning-text` — because
|
|
124
|
+
this design system had no `warning` variant. `--warning-subtle-hover`
|
|
125
|
+
did not exist before this change either (see `token-parity.test.ts`,
|
|
126
|
+
which used to assert exactly that as a regression guard); it is added
|
|
127
|
+
alongside this variant so the hover step is real rather than a class
|
|
128
|
+
that compiles to nothing. */
|
|
129
|
+
warning: [
|
|
130
|
+
"border border-warning-border bg-warning-subtle text-warning-text shadow-xs",
|
|
131
|
+
"hover:bg-warning-subtle-hover hover:shadow-sm",
|
|
132
|
+
"active:bg-warning-subtle-hover"
|
|
133
|
+
],
|
|
134
|
+
link: [
|
|
135
|
+
"text-accent-text underline-offset-4 hover:underline",
|
|
136
|
+
"h-auto overflow-visible p-0 active:translate-y-0"
|
|
137
|
+
]
|
|
138
|
+
},
|
|
139
|
+
size: {
|
|
140
|
+
/* DX-4031 — the dense size: 20px tall on every pointer, no tap floor (`--control-2xs`, scale.css). `overflow-visible`
|
|
141
|
+
because the 44px coarse-pointer target is an `::after` that reaches OUT of the box, and the base's
|
|
142
|
+
`overflow-hidden` would clip it; the ripple (which needs that clip) is skipped for this size. The reach reads
|
|
143
|
+
the row-owned `--hit-t` / `--hit-b` / `--hit-x`, falling back to centring out to the target, so a row of dense
|
|
144
|
+
controls can tile its targets instead of overlapping. */
|
|
145
|
+
"2xs": [
|
|
146
|
+
"h-control-2xs overflow-visible rounded-sm px-2 text-2xs gap-1",
|
|
147
|
+
"pointer-coarse:after:absolute pointer-coarse:after:content-['']",
|
|
148
|
+
"pointer-coarse:after:top-[calc(var(--hit-t,var(--hit-reach-2xs))*-1)]",
|
|
149
|
+
"pointer-coarse:after:bottom-[calc(var(--hit-b,var(--hit-reach-2xs))*-1)]",
|
|
150
|
+
"pointer-coarse:after:left-[calc(var(--hit-x,var(--hit-reach-2xs))*-1)]",
|
|
151
|
+
"pointer-coarse:after:right-[calc(var(--hit-x,var(--hit-reach-2xs))*-1)]"
|
|
152
|
+
],
|
|
153
|
+
xs: "h-control-xs rounded-sm px-2.5 text-2xs gap-1.5",
|
|
154
|
+
sm: "h-control-sm rounded-md px-3.5 text-xs",
|
|
155
|
+
md: "h-control-md rounded-md px-5 text-sm",
|
|
156
|
+
lg: "h-control-lg rounded-lg px-6 text-md",
|
|
157
|
+
xl: "h-control-xl rounded-lg px-8 text-lg",
|
|
158
|
+
/* DX-3406 — auto-height, wrapping, left-aligned: the shape a fixed
|
|
159
|
+
single-line `h-control-*` size can never be. Every other size pins a
|
|
160
|
+
fixed height and forbids wrapping (`whitespace-nowrap` on the shared
|
|
161
|
+
`base` above) because a control-height button is a single-line
|
|
162
|
+
affordance; a rich multi-line list-item row is a genuinely different
|
|
163
|
+
shape, not a bigger version of the same one — `justify-start` and
|
|
164
|
+
`items-start` (against `base`'s `justify-center`/`items-center`)
|
|
165
|
+
top-left-align whatever's inside instead of centering it, matching
|
|
166
|
+
how a text row reads, not how an icon button does. `ListItemButton`
|
|
167
|
+
below is the intended consumer; used directly, `children` is
|
|
168
|
+
whatever multi-line content the caller composes. */
|
|
169
|
+
list: "h-auto w-full items-start justify-start gap-3 rounded-md px-3 py-2 text-left text-sm whitespace-normal"
|
|
170
|
+
},
|
|
171
|
+
/* Square icon-only sizing. Width is pinned to the control height, so the
|
|
172
|
+
hit-area stays square and can never drop below the tap minimum.
|
|
173
|
+
|
|
174
|
+
DX-5319 - `shrink-0` is load-bearing, not tidiness. `aspect-square` sizes the box off a definite height, but a flex
|
|
175
|
+
item still shrinks, and the base's `overflow-hidden` gives it an automatic minimum width of 0: in a row that ran out of
|
|
176
|
+
room (an app header on a phone) these buttons were squeezed to thin vertical lines while their siblings kept their
|
|
177
|
+
size. `IconButton` carried this class alone, so every other icon-only `Button` (ThemeMenu, DevToolsPopover) shrank. */
|
|
178
|
+
iconOnly: { true: "px-0 aspect-square shrink-0", false: "" },
|
|
179
|
+
fullWidth: { true: "w-full", false: "" }
|
|
180
|
+
},
|
|
181
|
+
compoundVariants: [
|
|
182
|
+
{ variant: "link", size: ["2xs", "xs", "sm", "md", "lg", "xl"], class: "h-auto px-0" }
|
|
183
|
+
],
|
|
184
|
+
defaultVariants: {
|
|
185
|
+
variant: "solid",
|
|
186
|
+
size: "md",
|
|
187
|
+
iconOnly: !1,
|
|
188
|
+
fullWidth: !1
|
|
189
|
+
}
|
|
190
|
+
}), H = { "2xs": "xs", xs: "xs", sm: "sm", md: "md", lg: "lg", xl: "xl", list: "md" };
|
|
191
|
+
function J({
|
|
192
|
+
className: l,
|
|
193
|
+
variant: n,
|
|
194
|
+
size: o,
|
|
195
|
+
iconOnly: d,
|
|
196
|
+
fullWidth: c,
|
|
197
|
+
render: h,
|
|
198
|
+
loading: t = !1,
|
|
199
|
+
leadingIcon: N,
|
|
200
|
+
trailingIcon: k,
|
|
201
|
+
disabled: v,
|
|
202
|
+
children: z,
|
|
203
|
+
onPointerDown: I,
|
|
204
|
+
onClick: j,
|
|
205
|
+
disabledReason: u,
|
|
206
|
+
disabledReasonTooltip: D = !0,
|
|
207
|
+
attention: f = !1,
|
|
208
|
+
ref: S,
|
|
209
|
+
"aria-disabled": _,
|
|
210
|
+
...B
|
|
211
|
+
}) {
|
|
212
|
+
const [C, p] = Y([]), E = A(0), w = O(), s = u !== void 0, x = s ? !0 : _, b = t || v || s || x === !0 || x === "true";
|
|
213
|
+
function M(e) {
|
|
214
|
+
if (s) {
|
|
215
|
+
e.preventDefault();
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
j?.(e);
|
|
219
|
+
}
|
|
220
|
+
function P(e) {
|
|
221
|
+
if (I?.(e), n === "link" || o === "2xs" || b) return;
|
|
222
|
+
const r = e.currentTarget.getBoundingClientRect(), g = Math.max(e.clientX - r.left, r.right - e.clientX), R = Math.max(e.clientY - r.top, r.bottom - e.clientY), T = 2 * Math.hypot(g, R), V = {
|
|
223
|
+
id: E.current++,
|
|
224
|
+
x: e.clientX - r.left,
|
|
225
|
+
y: e.clientY - r.top,
|
|
226
|
+
size: T
|
|
227
|
+
};
|
|
228
|
+
p((W) => [...W, V]);
|
|
229
|
+
}
|
|
230
|
+
const y = q({
|
|
231
|
+
render: h,
|
|
232
|
+
ref: S,
|
|
233
|
+
// I18N-ALLOW: DOM tag name handed to the Base UI render slot
|
|
234
|
+
defaultTagName: "button",
|
|
235
|
+
props: {
|
|
236
|
+
className: m(
|
|
237
|
+
G({ variant: n, size: o, iconOnly: d, fullWidth: c }),
|
|
238
|
+
f && !b && "dx-attention",
|
|
239
|
+
l
|
|
240
|
+
),
|
|
241
|
+
"data-attention": f && !b ? "" : void 0,
|
|
242
|
+
disabled: v ?? t,
|
|
243
|
+
"aria-disabled": x,
|
|
244
|
+
/* The tooltip below carries the VISUAL reason; Base UI's tooltip does not
|
|
245
|
+
wire `aria-describedby` back to its trigger (measured, not assumed —
|
|
246
|
+
see `IconButton`'s own header), so a screen reader would announce the
|
|
247
|
+
button, dimmed, and never say why without this. */
|
|
248
|
+
"aria-describedby": s ? w : void 0,
|
|
249
|
+
"data-loading": t || void 0,
|
|
250
|
+
"aria-busy": t || void 0,
|
|
251
|
+
onPointerDown: P,
|
|
252
|
+
onClick: M,
|
|
253
|
+
children: /* @__PURE__ */ i(X, { children: [
|
|
254
|
+
C.map((e) => /* @__PURE__ */ a(
|
|
255
|
+
"span",
|
|
256
|
+
{
|
|
257
|
+
"aria-hidden": !0,
|
|
258
|
+
onAnimationEnd: () => p((r) => r.filter((g) => g.id !== e.id)),
|
|
259
|
+
className: "pointer-events-none absolute rounded-full bg-current opacity-0 [animation:dx-ripple_var(--dur-slower)_var(--ease-standard)_forwards]",
|
|
260
|
+
style: {
|
|
261
|
+
left: e.x - e.size / 2,
|
|
262
|
+
top: e.y - e.size / 2,
|
|
263
|
+
width: e.size,
|
|
264
|
+
height: e.size
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
e.id
|
|
268
|
+
)),
|
|
269
|
+
t && /* @__PURE__ */ a("span", { className: "absolute inset-0 grid place-items-center", children: /* @__PURE__ */ a(L, { size: H[o ?? "md"] }) }),
|
|
270
|
+
/* @__PURE__ */ i(
|
|
271
|
+
"span",
|
|
272
|
+
{
|
|
273
|
+
className: m(
|
|
274
|
+
"inline-flex items-center gap-[inherit] transition-[var(--tx-colors),opacity] duration-(--dur-fast)",
|
|
275
|
+
t && "opacity-0"
|
|
276
|
+
),
|
|
277
|
+
children: [
|
|
278
|
+
N,
|
|
279
|
+
z,
|
|
280
|
+
k
|
|
281
|
+
]
|
|
282
|
+
}
|
|
283
|
+
),
|
|
284
|
+
s && /* @__PURE__ */ a("span", { id: w, className: "sr-only", children: u })
|
|
285
|
+
] }),
|
|
286
|
+
...B
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
return !s || !D ? y : /* @__PURE__ */ a(Z, { content: u, side: "top", children: y });
|
|
290
|
+
}
|
|
291
|
+
function ae({
|
|
292
|
+
leading: l,
|
|
293
|
+
detail: n,
|
|
294
|
+
subline: o,
|
|
295
|
+
selected: d = !1,
|
|
296
|
+
variant: c = "ghost",
|
|
297
|
+
className: h,
|
|
298
|
+
...t
|
|
299
|
+
}) {
|
|
300
|
+
return /* @__PURE__ */ a(
|
|
301
|
+
J,
|
|
302
|
+
{
|
|
303
|
+
variant: c,
|
|
304
|
+
size: "list",
|
|
305
|
+
fullWidth: !0,
|
|
306
|
+
"data-selected": d ? "true" : void 0,
|
|
307
|
+
className: m(d && "bg-accent-subtle hover:bg-accent-subtle-hover", h),
|
|
308
|
+
...t,
|
|
309
|
+
children: /* @__PURE__ */ i("span", { className: "flex min-w-0 flex-1 flex-col items-start gap-0.5 text-left", children: [
|
|
310
|
+
/* @__PURE__ */ i("span", { className: "block w-full text-sm text-primary", children: [
|
|
311
|
+
/* @__PURE__ */ a("span", { className: "font-semibold", children: l }),
|
|
312
|
+
n != null ? /* @__PURE__ */ i("span", { className: "font-normal text-secondary", children: [
|
|
313
|
+
" ",
|
|
314
|
+
n
|
|
315
|
+
] }) : null
|
|
316
|
+
] }),
|
|
317
|
+
o != null ? /* @__PURE__ */ a("span", { className: "block w-full font-normal text-xs text-tertiary", children: o }) : null
|
|
318
|
+
] })
|
|
319
|
+
}
|
|
320
|
+
);
|
|
321
|
+
}
|
|
322
|
+
export {
|
|
323
|
+
J as Button,
|
|
324
|
+
ae as ListItemButton,
|
|
325
|
+
G as buttonVariants
|
|
326
|
+
};
|
|
327
|
+
//# sourceMappingURL=Button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../src/components/Button.tsx"],"sourcesContent":["import type { ButtonHTMLAttributes, MouseEvent, ReactNode, Ref } from \"react\";\nimport { useId, useRef, useState } from \"react\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn\";\nimport { Spinner } from \"./Spinner\";\nimport { Tooltip } from \"./Popover\";\n\n/* ----------------------------------------------------------------------------\n THE PRESS AFFORDANCE\n\n A 1px translate-y on :active, paired with a shadow drop. That pairing is what\n makes a button read as a physical key rather than a colour swap — the shadow\n shrinking as the surface descends is the depth cue; the translate alone reads\n as a glitch, and the colour change alone reads as a link.\n\n It runs at --dur-instant (70ms). Press feedback is the highest-frequency\n motion in any UI and the only band where slower reads as broken rather than\n as considered.\n\n The ripple below is the second half: press communicates that the button\n received the input, the ripple communicates WHERE. It is a scale+opacity\n transform on a single absolutely-positioned span, so it costs no layout and\n no paint beyond its own bounds.\n\n CONSUMERS: DO NOT POSITION A BUTTON WITH A TRANSLATE UTILITY.\n\n `active:translate-y-px` writes the SAME property a positioning translate\n writes, so on mousedown :active REPLACES your offset instead of adding to\n it. A button centred with `top-1/2 -translate-y-1/2` jumps down by half its\n own height the instant it is pressed — measured in gpt-manager's Demand Desk\n as a 15px drop on a 28px icon button, which read as \"the button moves when I\n click it\" and survived many attempts to fix it in the consumer's own layout\n code, because the cause is here and the symptom is there.\n\n Centre with something that cannot collide: `inset-y-0 my-auto` for a fixed\n height, or a positioned wrapper with the button static inside it.\n -------------------------------------------------------------------------- */\n\nconst button = tv({\n base: [\n \"relative inline-flex select-none items-center justify-center gap-2 overflow-hidden\",\n \"font-sans font-semibold whitespace-nowrap\",\n /* THE POINTER IS PART OF THE AFFORDANCE, and it belongs HERE.\n\n A `<button>` computes `cursor: default` — the same arrow as the dead\n space around it — so nothing about resting on one says it can be\n pressed. The library had been paying for that one control at a time:\n 31 hand-written `cursor-pointer`s scattered across components, and\n every control whose author forgot read as inert. `Button` itself was\n one of the ones that forgot, which meant EVERY consumer of it was too.\n\n Declaring it on the base makes it unforgettable rather than\n remembered — a caller cannot ship a Button without it. */\n \"cursor-pointer\",\n \"transition-[var(--tx-colors),box-shadow,translate]\",\n \"duration-(--dur-instant) ease-hover\",\n \"active:translate-y-px\",\n \"disabled:pointer-events-none\",\n /* A LOADING button is still `disabled` — that is what stops a second submit\n and blocks keyboard activation — but it must NOT wear the disabled\n LOOK. Dimming it says \"unavailable\" when the truth is \"working\", and the\n button visibly changes colour the instant you press it, which reads as\n breakage. So the dimming is scoped to genuinely-disabled buttons only.\n The size never moves either: the label stays in the layout at opacity 0\n with the spinner absolutely positioned over it. */\n \"disabled:not-data-loading:opacity-45\",\n /* THE SOFT FORM OF OFF HAS TO DIM TOO, and until now only the native one\n did. `aria-disabled` is this library's stance for a control that must\n stay hoverable so it can explain itself (`IconButton.disabledReason`) —\n and it is ALSO what a control becomes when it is not asking to: Base UI\n deletes the native `disabled` attribute off a composite item that renders\n another button (`useButton`: \"the `disabled` prop needs to pass through 2\n `useButton`s then finally delete the `disabled` attribute from DOM\").\n\n MEASURED, because the form matters and the obvious reading of it is\n wrong. `<ToolbarButton render={<Button disabled/>}/>` — disabled on the\n INNER button — keeps `disabled=true` and dims as it always did. It is\n `disabled` on the TOOLBAR ITEM that gets deleted: both\n `<ToolbarButton disabled render={<Button/>}/>` and a plain\n `<ToolbarButton disabled>` come out `disabled=false`,\n `aria-disabled=\"true\"`, `data-disabled=\"\"` — full opacity, pointer\n cursor, no-op click. A control that looks armed and does nothing is the\n worst of the three states, and it was reported by a consumer who kept a\n hand-rolled action bar rather than accept it.\n\n So the look is keyed to BOTH forms. Not `pointer-events-none` though:\n that is exactly what makes a natively-disabled control unhoverable and\n its tooltip unreachable, and reaching it is the entire reason the soft\n form exists. The click is already inert — `Button` treats `aria-disabled`\n as disabled for the ripple, Base UI no-ops the handler — so what was\n missing was only the two lines that SAY so. */\n \"aria-disabled:not-data-loading:opacity-45\",\n \"aria-disabled:cursor-not-allowed aria-disabled:active:translate-y-0\",\n \"data-loading:pointer-events-none data-loading:cursor-wait\",\n ],\n variants: {\n variant: {\n solid: [\n \"bg-accent text-accent-contrast shadow-sm\",\n \"hover:bg-accent-hover hover:shadow-md\",\n \"active:bg-accent-active active:shadow-xs\",\n ],\n brand: [\n \"bg-brand text-brand-contrast shadow-sm\",\n \"hover:bg-brand-hover hover:shadow-md\",\n \"active:shadow-xs\",\n ],\n subtle: [\"bg-accent-subtle text-accent-text\", \"hover:bg-accent-subtle-hover\"],\n outline: [\n \"border border-border-strong bg-surface text-primary shadow-xs\",\n \"hover:border-border-interactive hover:bg-surface-hover hover:shadow-sm\",\n \"active:bg-surface-active\",\n ],\n ghost: [\"text-secondary\", \"hover:bg-surface-hover hover:text-primary\"],\n /* DESTRUCTIVE, BUT QUIET AT REST. A row of delete controls that is red\n before you touch it turns the whole list into an alarm, and the one\n genuinely dangerous thing on the page stops standing out. So the\n resting state is the same neutral as `ghost` and the danger arrives on\n approach — hover and focus alike, because a keyboard user reaches this\n control without ever generating a hover.\n\n The tint is a BACKGROUND appearing, not only a hue rotation. Hue alone\n would be the entire signal for anyone who cannot separate red from\n grey; a filled plate behind the glyph changes luminance too, and reads\n as \"armed\" without reference to colour. */\n \"ghost-danger\": [\n \"text-secondary\",\n \"hover:bg-danger-subtle hover:text-danger-text\",\n \"focus-visible:bg-danger-subtle focus-visible:text-danger-text\",\n \"active:bg-danger-subtle-hover\",\n ],\n \"outline-danger\": [\n \"border border-border-strong bg-surface text-primary shadow-xs\",\n \"hover:border-danger-border hover:bg-danger-subtle hover:text-danger-text hover:shadow-sm\",\n \"focus-visible:border-danger-border focus-visible:bg-danger-subtle focus-visible:text-danger-text\",\n \"active:bg-danger-subtle-hover\",\n ],\n danger: [\n \"bg-danger text-danger-contrast shadow-sm\",\n \"hover:bg-danger-hover hover:shadow-md\",\n \"active:shadow-xs\",\n ],\n /* A TOKEN, not `hover:brightness-110`. A filter does not change the\n computed background, so this variant's hover was invisible to every\n contrast check in the repo — and a brightness step is not a colour the\n theme can tune, which is the whole point of the token layer. */\n \"danger-subtle\": [\"bg-danger-subtle text-danger-text\", \"hover:bg-danger-subtle-hover\"],\n /* CAUTION, NOT DANGER. A toned, bordered chip rather than a solid fill —\n the same weight `outline-danger` carries, in the hue that means \"this\n is reversible but worth a second look\" rather than \"this destroys\n something\". Added SG-833 slice 7: three call sites\n (`ConfirmAction.tsx`, `AnswerKeyPanel.tsx`, `DataPointModal.tsx` in\n gpt-manager's Demand Desk) were each hand-rolling this exact recipe —\n `border-warning-border bg-warning-subtle text-warning-text` — because\n this design system had no `warning` variant. `--warning-subtle-hover`\n did not exist before this change either (see `token-parity.test.ts`,\n which used to assert exactly that as a regression guard); it is added\n alongside this variant so the hover step is real rather than a class\n that compiles to nothing. */\n warning: [\n \"border border-warning-border bg-warning-subtle text-warning-text shadow-xs\",\n \"hover:bg-warning-subtle-hover hover:shadow-sm\",\n \"active:bg-warning-subtle-hover\",\n ],\n link: [\n \"text-accent-text underline-offset-4 hover:underline\",\n \"h-auto overflow-visible p-0 active:translate-y-0\",\n ],\n },\n size: {\n /* DX-4031 — the dense size: 20px tall on every pointer, no tap floor (`--control-2xs`, scale.css). `overflow-visible`\n because the 44px coarse-pointer target is an `::after` that reaches OUT of the box, and the base's\n `overflow-hidden` would clip it; the ripple (which needs that clip) is skipped for this size. The reach reads\n the row-owned `--hit-t` / `--hit-b` / `--hit-x`, falling back to centring out to the target, so a row of dense\n controls can tile its targets instead of overlapping. */\n \"2xs\": [\n \"h-control-2xs overflow-visible rounded-sm px-2 text-2xs gap-1\",\n \"pointer-coarse:after:absolute pointer-coarse:after:content-['']\",\n \"pointer-coarse:after:top-[calc(var(--hit-t,var(--hit-reach-2xs))*-1)]\",\n \"pointer-coarse:after:bottom-[calc(var(--hit-b,var(--hit-reach-2xs))*-1)]\",\n \"pointer-coarse:after:left-[calc(var(--hit-x,var(--hit-reach-2xs))*-1)]\",\n \"pointer-coarse:after:right-[calc(var(--hit-x,var(--hit-reach-2xs))*-1)]\",\n ],\n xs: \"h-control-xs rounded-sm px-2.5 text-2xs gap-1.5\",\n sm: \"h-control-sm rounded-md px-3.5 text-xs\",\n md: \"h-control-md rounded-md px-5 text-sm\",\n lg: \"h-control-lg rounded-lg px-6 text-md\",\n xl: \"h-control-xl rounded-lg px-8 text-lg\",\n /* DX-3406 — auto-height, wrapping, left-aligned: the shape a fixed\n single-line `h-control-*` size can never be. Every other size pins a\n fixed height and forbids wrapping (`whitespace-nowrap` on the shared\n `base` above) because a control-height button is a single-line\n affordance; a rich multi-line list-item row is a genuinely different\n shape, not a bigger version of the same one — `justify-start` and\n `items-start` (against `base`'s `justify-center`/`items-center`)\n top-left-align whatever's inside instead of centering it, matching\n how a text row reads, not how an icon button does. `ListItemButton`\n below is the intended consumer; used directly, `children` is\n whatever multi-line content the caller composes. */\n list: \"h-auto w-full items-start justify-start gap-3 rounded-md px-3 py-2 text-left text-sm whitespace-normal\",\n },\n /* Square icon-only sizing. Width is pinned to the control height, so the\n hit-area stays square and can never drop below the tap minimum.\n\n DX-5319 - `shrink-0` is load-bearing, not tidiness. `aspect-square` sizes the box off a definite height, but a flex\n item still shrinks, and the base's `overflow-hidden` gives it an automatic minimum width of 0: in a row that ran out of\n room (an app header on a phone) these buttons were squeezed to thin vertical lines while their siblings kept their\n size. `IconButton` carried this class alone, so every other icon-only `Button` (ThemeMenu, DevToolsPopover) shrank. */\n iconOnly: { true: \"px-0 aspect-square shrink-0\", false: \"\" },\n fullWidth: { true: \"w-full\", false: \"\" },\n },\n compoundVariants: [\n { variant: \"link\", size: [\"2xs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"], class: \"h-auto px-0\" },\n ],\n defaultVariants: {\n variant: \"solid\",\n size: \"md\",\n iconOnly: false,\n fullWidth: false,\n },\n});\n\nexport interface ButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof button> {\n /**\n * Render as a different element, keeping every style and behaviour.\n *\n * Takes the element itself (`render={<a href=\"/x\" />}`) rather than a\n * `asChild` boolean over `children`. The difference matters: with `asChild`\n * the rendered element is buried inside children and TypeScript cannot tell\n * you that you passed two of them, which fails at runtime. Here the element\n * is a prop with a type.\n */\n render?: useRender.RenderProp;\n /** Show a spinner and block interaction. Width is preserved — no layout shift. */\n loading?: boolean;\n /** Element rendered before the label. */\n leadingIcon?: ReactNode;\n /** Element rendered after the label. */\n trailingIcon?: ReactNode;\n /**\n * Unavailable, AND WHY — the labelled twin of `IconButton.disabledReason`\n * (SG-833 slice 7), added here because a labelled `Button` refuses in\n * silence exactly as an icon-only one used to: `ConfirmAction.tsx` in\n * gpt-manager's Demand Desk was disabling its trigger with a bare\n * `disabled` boolean and a SEPARATE hand-rolled `Tooltip` wrapper to explain\n * why, because `Button` itself had no way to carry the reason.\n *\n * Setting this REPLACES `disabled`/`aria-disabled` for the purpose of this\n * render: the button becomes soft-disabled (`aria-disabled`, not the native\n * attribute), so it stays focusable and hoverable and the reason stays\n * reachable — a natively `disabled` control drops out of hit-testing and\n * the tab order, which is exactly what makes a mute refusal unrepresentable\n * disguised as a keyboard-accessible one. The reason is announced as the\n * control's accessible description (`aria-describedby`, wired to a visually\n * hidden span) and shown as a tooltip on hover and on focus — see\n * `IconButton`'s own header for why Base UI's tooltip alone is not enough\n * for the announcement.\n */\n disabledReason?: string;\n /**\n * Whether `Button` wraps ITSELF in the `disabledReason` tooltip. Defaults to\n * `true` — a plain, directly-used `Button` needs this, since nothing else\n * will show the reason.\n *\n * `false` is for a caller that already wraps the rendered control in its\n * own, wider-scoped tooltip — `IconButton` (SG-839) is the one case today:\n * it needs a tooltip in MORE states than `Button` does on its own (naming\n * itself while enabled, not only explaining itself while off), so it\n * supplies that tooltip itself and sets this to `false` to avoid nesting two\n * tooltips around one trigger. Every other piece of the `disabledReason`\n * contract — the `aria-disabled`/`aria-describedby` wiring, the `sr-only`\n * description, the click guard, the dimmed/not-allowed styling — stays\n * here regardless of this flag; only the self-wrapping tooltip is optional.\n */\n disabledReasonTooltip?: boolean;\n /**\n * A soft animated glow with a glint sweeping across the button — \"this one\n * is waiting for you\", the way a game menu lights the choice it wants made.\n * Theme tokens `--attention-*`; the effect is a `box-shadow` and a\n * pseudo-element, so it never moves the layout. Under reduced motion it is a\n * static highlight ring instead of an animation. Also on `IconButton`.\n *\n * TURN IT ON ONLY WHILE AN ACTION IS WAITING FOR THIS VIEWER. Same warning\n * as `Badge.pulse`: an effect that runs on a button nobody needs to press,\n * or that a viewer who cannot act still sees, captures attention\n * permanently and therefore stops meaning anything. The state it signals\n * must also be in the button's label or tooltip — the glow is never the only\n * signal. Ignored while the button is disabled, loading or soft-disabled.\n */\n attention?: boolean;\n ref?: Ref<HTMLButtonElement>;\n}\n\n/* DX-4031 — `Spinner` only knows the single-line `IconSize` scale: `list` has no matching size (DX-3406) and gets\n an `md` one; `2xs` gets the smallest glyph. */\nconst SPINNER_SIZE = { \"2xs\": \"xs\", xs: \"xs\", sm: \"sm\", md: \"md\", lg: \"lg\", xl: \"xl\", list: \"md\" } as const;\n\ntype Ripple = { id: number; x: number; y: number; size: number };\n\nexport function Button({\n className,\n variant,\n size,\n iconOnly,\n fullWidth,\n render,\n loading = false,\n leadingIcon,\n trailingIcon,\n disabled,\n children,\n onPointerDown,\n onClick,\n disabledReason,\n disabledReasonTooltip = true,\n attention = false,\n ref,\n \"aria-disabled\": ariaDisabled,\n ...props\n}: ButtonProps) {\n const [ripples, setRipples] = useState<Ripple[]>([]);\n const nextId = useRef(0);\n const reasonId = useId();\n\n /* `disabledReason` forces the soft-disabled form below — see the prop's own\n doc. `off` is the same name `IconButton` uses for this same condition. */\n const off = disabledReason !== undefined;\n const effectiveAriaDisabled = off ? true : ariaDisabled;\n\n /* `aria-disabled` counts as disabled FOR FEEDBACK, even though it leaves the\n element interactive. It is the softer form of off — used when a control\n has to stay hoverable and focusable so it can explain WHY it is off (see\n `disabledReason` above and `IconButton`'s own). Native `disabled` cannot\n do that: it drops the element out of the tab order and, with\n `disabled:pointer-events-none` above, out of hit-testing entirely, so\n nothing can be hovered and no tooltip can ever be reached.\n\n But \"still interactive\" must not mean \"still looks like it worked\". A\n ripple firing under the pointer says the press landed, which is the exact\n opposite of what an unavailable control should communicate. */\n const inert =\n loading || disabled || off || effectiveAriaDisabled === true || effectiveAriaDisabled === \"true\";\n\n function handleClick(event: MouseEvent<HTMLButtonElement>) {\n /* Mirrors `IconButton.handleClick` — a soft-disabled control is still\n clickable as far as the DOM is concerned, so the guard has to live here\n rather than be left to every caller to remember. */\n if (off) {\n event.preventDefault();\n return;\n }\n onClick?.(event);\n }\n\n function handlePointerDown(event: React.PointerEvent<HTMLButtonElement>) {\n onPointerDown?.(event);\n if (variant === \"link\" || size === \"2xs\" || inert) return;\n\n const rect = event.currentTarget.getBoundingClientRect();\n /* Diameter is twice the distance to the FURTHEST corner, so the circle\n always reaches every edge no matter where in the button it starts. */\n const dx = Math.max(event.clientX - rect.left, rect.right - event.clientX);\n const dy = Math.max(event.clientY - rect.top, rect.bottom - event.clientY);\n const diameter = 2 * Math.hypot(dx, dy);\n\n const ripple: Ripple = {\n id: nextId.current++,\n x: event.clientX - rect.left,\n y: event.clientY - rect.top,\n size: diameter,\n };\n setRipples((current) => [...current, ripple]);\n }\n\n const rendered = useRender({\n render,\n ref,\n // I18N-ALLOW: DOM tag name handed to the Base UI render slot\n defaultTagName: \"button\",\n props: {\n className: cn(\n button({ variant, size, iconOnly, fullWidth }),\n attention && !inert && \"dx-attention\",\n className,\n ),\n \"data-attention\": attention && !inert ? \"\" : undefined,\n disabled: disabled ?? loading,\n \"aria-disabled\": effectiveAriaDisabled,\n /* The tooltip below carries the VISUAL reason; Base UI's tooltip does not\n wire `aria-describedby` back to its trigger (measured, not assumed —\n see `IconButton`'s own header), so a screen reader would announce the\n button, dimmed, and never say why without this. */\n \"aria-describedby\": off ? reasonId : undefined,\n \"data-loading\": loading || undefined,\n \"aria-busy\": loading || undefined,\n onPointerDown: handlePointerDown,\n onClick: handleClick,\n children: (\n <>\n {ripples.map((ripple) => (\n <span\n key={ripple.id}\n aria-hidden\n /* Removing the node on animationend rather than on a timer keeps\n the two in sync when the duration is retuned or scaled down by\n the reduced-motion scalar. */\n onAnimationEnd={() =>\n setRipples((current) => current.filter((r) => r.id !== ripple.id))\n }\n className=\"pointer-events-none absolute rounded-full bg-current opacity-0 [animation:dx-ripple_var(--dur-slower)_var(--ease-standard)_forwards]\"\n style={{\n left: ripple.x - ripple.size / 2,\n top: ripple.y - ripple.size / 2,\n width: ripple.size,\n height: ripple.size,\n }}\n />\n ))}\n\n {loading && (\n <span className=\"absolute inset-0 grid place-items-center\">\n {/* DX-3406 — `size: \"list\"` has no matching `IconSize`\n (`Spinner` only knows the single-line control scale); a\n loading list-item row gets the same spinner an `md` button\n would rather than a type it doesn't understand. */}\n {/* I18N-ALLOW: button size token used as a lookup key */}\n <Spinner size={SPINNER_SIZE[size ?? \"md\"]} />\n </span>\n )}\n\n {/* opacity-0, NOT `invisible`/`hidden`: visibility:hidden removes the\n label from the accessibility tree, leaving a loading button with no\n accessible name at all — it announces as an unlabelled button.\n Opacity keeps it announced while hiding it visually, and the\n wrapper preserves the button's width so nothing shifts. */}\n <span\n className={cn(\n \"inline-flex items-center gap-[inherit] transition-[var(--tx-colors),opacity] duration-(--dur-fast)\",\n loading && \"opacity-0\",\n )}\n >\n {leadingIcon}\n {children}\n {trailingIcon}\n </span>\n\n {/* Inside the button on purpose — see `IconButton`'s identical\n placement. `aria-label`, when a caller sets one, replaces content\n outright rather than extending it, so this cannot pollute the\n name; a labelled `Button` has no `aria-label` in the common case,\n so the visible children plus this sentence both read out. */}\n {off && (\n <span id={reasonId} className=\"sr-only\">\n {disabledReason}\n </span>\n )}\n </>\n ),\n ...props,\n },\n });\n\n /* Only wrapped when soft-disabled, and only when the caller wants Button to\n do the wrapping itself — see `disabledReasonTooltip`'s own doc. An enabled\n labelled Button already has a visible name in its children — unlike\n `IconButton`, it does not also need a tooltip naming it, only one\n explaining why it currently can't be used. */\n if (!off || !disabledReasonTooltip) return rendered;\n\n return (\n <Tooltip content={disabledReason} side=\"top\">\n {rendered}\n </Tooltip>\n );\n}\n\n/* A module-internal export ONLY, not re-exported from `src/index.ts`.\n `Toggle.tsx`'s `ToolbarButton` imports this by name (`import { buttonVariants }\n from \"./Button\"`) to wear the identical recipe `Button` compiles, and\n `button.test.tsx`/`icon-button.test.tsx`/`toolbar.test.tsx` exercise it\n directly — so the recipe itself needs a name other components can import,\n even though nothing outside this package does. */\nexport { button as buttonVariants };\n\n/* ----------------------------------------------------------------------------\n LIST-ITEM BUTTON (DX-3406).\n\n The `size: \"list\"` variant above is the raw shape; this is the primitive a\n consumer actually reaches for. Three consumers outside this library\n (`packages/danxbot-docs`'s Flow/Lifecycle step diagrams, and a fourth gap\n this closes for future ones) hand-rolled a native `<button\n class=\"docs-step-list__item\" data-selected>` for exactly this content\n shape — bold leading text, wrapping secondary detail on the same line, an\n optional muted note on its own line below — because `Button`'s `xs`–`xl`\n sizes are fixed-height and `whitespace-nowrap`. Rather than let every\n consumer re-derive that markup (and its own `data-selected` styling) by\n hand again, this wraps `Button` itself (`size=\"list\"`, structured content\n props instead of a single `children`) so every affordance `Button` already\n carries — ripple, `disabled`/`aria-disabled`, `disabledReason`, `render` —\n comes along for free instead of being reimplemented a second time.\n -------------------------------------------------------------------------- */\n\nexport interface ListItemButtonProps\n extends Omit<ButtonProps, \"size\" | \"iconOnly\" | \"fullWidth\" | \"children\"> {\n /**\n * The row's bold leading identifier — an actor name, a from-state, a\n * category label. Always rendered `font-semibold`, on the same wrapping\n * line as `detail`.\n */\n leading: ReactNode;\n /**\n * Secondary text following `leading` on the SAME wrapping line — the\n * action, the target, whatever finishes the sentence `leading` starts.\n * Rendered `font-normal`; wraps together with `leading` as one line of\n * text, not as a separate flex item.\n */\n detail?: ReactNode;\n /**\n * A muted line rendered on its OWN row below `leading`/`detail` — a\n * trigger, a guard clause, any extra context. Never inlined with the line\n * above, unlike `detail`.\n */\n subline?: ReactNode;\n /**\n * Marks this row as the current selection. Stamps `data-selected=\"true\"`\n * on the rendered `<button>` (omitted entirely, not `\"false\"`, when unset —\n * the same convention the native `docs-step-list__item` buttons this\n * replaces already used, so an existing `[data-selected]` CSS selector\n * keeps working unchanged) and applies the library's own selected\n * treatment rather than leaving every consumer to invent one.\n */\n selected?: boolean;\n}\n\n/**\n * A list-item trigger for multi-line, rich-content rows that `Button`'s\n * fixed single-line sizes cannot fit — see the file header above.\n *\n * `fullWidth` is not a prop here: a list-item row always spans its `<li>`,\n * which is the entire reason this exists, so it's forced rather than left\n * for every caller to remember.\n */\nexport function ListItemButton({\n leading,\n detail,\n subline,\n selected = false,\n variant = \"ghost\",\n className,\n ...props\n}: ListItemButtonProps) {\n return (\n <Button\n variant={variant}\n size=\"list\"\n fullWidth\n data-selected={selected ? \"true\" : undefined}\n className={cn(selected && \"bg-accent-subtle hover:bg-accent-subtle-hover\", className)}\n {...props}\n >\n <span className=\"flex min-w-0 flex-1 flex-col items-start gap-0.5 text-left\">\n <span className=\"block w-full text-sm text-primary\">\n <span className=\"font-semibold\">{leading}</span>\n {detail != null ? <span className=\"font-normal text-secondary\"> {detail}</span> : null}\n </span>\n {subline != null ? (\n <span className=\"block w-full font-normal text-xs text-tertiary\">{subline}</span>\n ) : null}\n </span>\n </Button>\n );\n}\n"],"names":["button","tv","SPINNER_SIZE","Button","className","variant","size","iconOnly","fullWidth","render","loading","leadingIcon","trailingIcon","disabled","children","onPointerDown","onClick","disabledReason","disabledReasonTooltip","attention","ref","ariaDisabled","props","ripples","setRipples","useState","nextId","useRef","reasonId","useId","off","effectiveAriaDisabled","inert","handleClick","event","handlePointerDown","rect","dx","dy","diameter","ripple","current","rendered","useRender","cn","jsxs","Fragment","jsx","r","Spinner","Tooltip","ListItemButton","leading","detail","subline","selected"],"mappings":";;;;;;;AAuCA,MAAMA,IAASC,EAAG;AAAA,EAChB,MAAM;AAAA,IACJ;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA0BA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAEF,UAAU;AAAA,IACR,SAAS;AAAA,MACP,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,QAAQ,CAAC,qCAAqC,8BAA8B;AAAA,MAC5E,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,OAAO,CAAC,kBAAkB,2CAA2C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYrE,gBAAgB;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,kBAAkB;AAAA,QAChB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMF,iBAAiB,CAAC,qCAAqC,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAarF,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,IAEF,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMJ,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYJ,MAAM;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASR,UAAU,EAAE,MAAM,+BAA+B,OAAO,GAAA;AAAA,IACxD,WAAW,EAAE,MAAM,UAAU,OAAO,GAAA;AAAA,EAAG;AAAA,EAEzC,kBAAkB;AAAA,IAChB,EAAE,SAAS,QAAQ,MAAM,CAAC,OAAO,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,OAAO,cAAA;AAAA,EAAc;AAAA,EAEvF,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,WAAW;AAAA,EAAA;AAEf,CAAC,GA6EKC,IAAe,EAAE,OAAO,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,MAAM,KAAA;AAIrF,SAASC,EAAO;AAAA,EACrB,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,uBAAAC,IAAwB;AAAA,EACxB,WAAAC,IAAY;AAAA,EACZ,KAAAC;AAAA,EACA,iBAAiBC;AAAA,EACjB,GAAGC;AACL,GAAgB;AACd,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAmB,CAAA,CAAE,GAC7CC,IAASC,EAAO,CAAC,GACjBC,IAAWC,EAAA,GAIXC,IAAMb,MAAmB,QACzBc,IAAwBD,IAAM,KAAOT,GAarCW,IACJtB,KAAWG,KAAYiB,KAAOC,MAA0B,MAAQA,MAA0B;AAE5F,WAASE,EAAYC,GAAsC;AAIzD,QAAIJ,GAAK;AACP,MAAAI,EAAM,eAAA;AACN;AAAA,IACF;AACA,IAAAlB,IAAUkB,CAAK;AAAA,EACjB;AAEA,WAASC,EAAkBD,GAA8C;AAEvE,QADAnB,IAAgBmB,CAAK,GACjB7B,MAAY,UAAUC,MAAS,SAAS0B,EAAO;AAEnD,UAAMI,IAAOF,EAAM,cAAc,sBAAA,GAG3BG,IAAK,KAAK,IAAIH,EAAM,UAAUE,EAAK,MAAMA,EAAK,QAAQF,EAAM,OAAO,GACnEI,IAAK,KAAK,IAAIJ,EAAM,UAAUE,EAAK,KAAKA,EAAK,SAASF,EAAM,OAAO,GACnEK,IAAW,IAAI,KAAK,MAAMF,GAAIC,CAAE,GAEhCE,IAAiB;AAAA,MACrB,IAAId,EAAO;AAAA,MACX,GAAGQ,EAAM,UAAUE,EAAK;AAAA,MACxB,GAAGF,EAAM,UAAUE,EAAK;AAAA,MACxB,MAAMG;AAAA,IAAA;AAER,IAAAf,EAAW,CAACiB,MAAY,CAAC,GAAGA,GAASD,CAAM,CAAC;AAAA,EAC9C;AAEA,QAAME,IAAWC,EAAU;AAAA,IACzB,QAAAlC;AAAA,IACA,KAAAW;AAAA;AAAA,IAEA,gBAAgB;AAAA,IAChB,OAAO;AAAA,MACL,WAAWwB;AAAA,QACT5C,EAAO,EAAE,SAAAK,GAAS,MAAAC,GAAM,UAAAC,GAAU,WAAAC,GAAW;AAAA,QAC7CW,KAAa,CAACa,KAAS;AAAA,QACvB5B;AAAA,MAAA;AAAA,MAEF,kBAAkBe,KAAa,CAACa,IAAQ,KAAK;AAAA,MAC7C,UAAUnB,KAAYH;AAAA,MACtB,iBAAiBqB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKjB,oBAAoBD,IAAMF,IAAW;AAAA,MACrC,gBAAgBlB,KAAW;AAAA,MAC3B,aAAaA,KAAW;AAAA,MACxB,eAAeyB;AAAA,MACf,SAASF;AAAA,MACT,UACE,gBAAAY,EAAAC,GAAA,EACG,UAAA;AAAA,QAAAvB,EAAQ,IAAI,CAACiB,MACZ,gBAAAO;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,eAAW;AAAA,YAIX,gBAAgB,MACdvB,EAAW,CAACiB,MAAYA,EAAQ,OAAO,CAACO,MAAMA,EAAE,OAAOR,EAAO,EAAE,CAAC;AAAA,YAEnE,WAAU;AAAA,YACV,OAAO;AAAA,cACL,MAAMA,EAAO,IAAIA,EAAO,OAAO;AAAA,cAC/B,KAAKA,EAAO,IAAIA,EAAO,OAAO;AAAA,cAC9B,OAAOA,EAAO;AAAA,cACd,QAAQA,EAAO;AAAA,YAAA;AAAA,UACjB;AAAA,UAdKA,EAAO;AAAA,QAAA,CAgBf;AAAA,QAEA9B,KACC,gBAAAqC,EAAC,QAAA,EAAK,WAAU,4CAMd,UAAA,gBAAAA,EAACE,GAAA,EAAQ,MAAM/C,EAAaI,KAAQ,IAAI,EAAA,CAAG,GAC7C;AAAA,QAQF,gBAAAuC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACAlC,KAAW;AAAA,YAAA;AAAA,YAGZ,UAAA;AAAA,cAAAC;AAAA,cACAG;AAAA,cACAF;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAQFkB,KACC,gBAAAiB,EAAC,QAAA,EAAK,IAAInB,GAAU,WAAU,WAC3B,UAAAX,EAAA,CACH;AAAA,MAAA,GAEJ;AAAA,MAEF,GAAGK;AAAA,IAAA;AAAA,EACL,CACD;AAOD,SAAI,CAACQ,KAAO,CAACZ,IAA8BwB,sBAGxCQ,GAAA,EAAQ,SAASjC,GAAgB,MAAK,OACpC,UAAAyB,GACH;AAEJ;AAoEO,SAASS,GAAe;AAAA,EAC7B,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,SAAAlD,IAAU;AAAA,EACV,WAAAD;AAAA,EACA,GAAGkB;AACL,GAAwB;AACtB,SACE,gBAAAyB;AAAA,IAAC5C;AAAA,IAAA;AAAA,MACC,SAAAE;AAAA,MACA,MAAK;AAAA,MACL,WAAS;AAAA,MACT,iBAAekD,IAAW,SAAS;AAAA,MACnC,WAAWX,EAAGW,KAAY,iDAAiDnD,CAAS;AAAA,MACnF,GAAGkB;AAAA,MAEJ,UAAA,gBAAAuB,EAAC,QAAA,EAAK,WAAU,8DACd,UAAA;AAAA,QAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,qCACd,UAAA;AAAA,UAAA,gBAAAE,EAAC,QAAA,EAAK,WAAU,iBAAiB,UAAAK,GAAQ;AAAA,UACxCC,KAAU,OAAO,gBAAAR,EAAC,QAAA,EAAK,WAAU,8BAA6B,UAAA;AAAA,YAAA;AAAA,YAAEQ;AAAA,UAAA,EAAA,CAAO,IAAU;AAAA,QAAA,GACpF;AAAA,QACCC,KAAW,OACV,gBAAAP,EAAC,UAAK,WAAU,kDAAkD,aAAQ,IACxE;AAAA,MAAA,EAAA,CACN;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { jsxs as i, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { tv as m } from "tailwind-variants";
|
|
3
|
+
import { cn as f } from "../lib/cn.js";
|
|
4
|
+
import { Icon as p } from "./Icon.js";
|
|
5
|
+
const y = m({
|
|
6
|
+
slots: {
|
|
7
|
+
root: "flex gap-2.5 rounded-lg p-3",
|
|
8
|
+
glyph: "mt-px shrink-0",
|
|
9
|
+
content: "flex min-w-0 flex-col gap-1",
|
|
10
|
+
title: "text-sm font-semibold",
|
|
11
|
+
body: "text-xs leading-relaxed",
|
|
12
|
+
/* NO ALPHA ON THE TONED BODY, and it took building a demo page to find out
|
|
13
|
+
why. The body used to be text-<tone>-text/85 so it would sit back from the
|
|
14
|
+
title, and every toned variant FAILED the 4.5:1 contrast floor against its
|
|
15
|
+
own subtle fill — the a11y scan reported four nodes the moment this
|
|
16
|
+
component had a page to be scanned on. It had none before, so the scan had
|
|
17
|
+
never reached it: exported, shipped, and invisible to the one gate that
|
|
18
|
+
would have caught it. Hierarchy comes from the title's weight instead,
|
|
19
|
+
which costs nothing and cannot fail a ratio. */
|
|
20
|
+
actions: "mt-1 flex flex-wrap items-center gap-2"
|
|
21
|
+
},
|
|
22
|
+
variants: {
|
|
23
|
+
tone: {
|
|
24
|
+
neutral: {
|
|
25
|
+
root: "border border-border bg-surface",
|
|
26
|
+
glyph: "text-tertiary",
|
|
27
|
+
title: "text-primary",
|
|
28
|
+
body: "text-secondary"
|
|
29
|
+
},
|
|
30
|
+
info: {
|
|
31
|
+
root: "border border-info-border bg-info-subtle",
|
|
32
|
+
glyph: "text-info",
|
|
33
|
+
title: "text-info-text",
|
|
34
|
+
body: "text-info-text"
|
|
35
|
+
},
|
|
36
|
+
success: {
|
|
37
|
+
root: "border border-success-border bg-success-subtle",
|
|
38
|
+
glyph: "text-success",
|
|
39
|
+
title: "text-success-text",
|
|
40
|
+
body: "text-success-text"
|
|
41
|
+
},
|
|
42
|
+
warning: {
|
|
43
|
+
root: "border border-warning-border bg-warning-subtle",
|
|
44
|
+
glyph: "text-warning",
|
|
45
|
+
title: "text-warning-text",
|
|
46
|
+
body: "text-warning-text"
|
|
47
|
+
},
|
|
48
|
+
danger: {
|
|
49
|
+
root: "border border-danger-border bg-danger-subtle",
|
|
50
|
+
glyph: "text-danger",
|
|
51
|
+
title: "text-danger-text",
|
|
52
|
+
body: "text-danger-text"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
/* `strong` doubles the border rather than deepening the fill. A darker
|
|
56
|
+
fill would drag the body text's contrast down with it; the border is
|
|
57
|
+
the one part of the block carrying no text. */
|
|
58
|
+
emphasis: {
|
|
59
|
+
subtle: {},
|
|
60
|
+
strong: { root: "border-2" }
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
defaultVariants: { tone: "neutral", emphasis: "subtle" }
|
|
64
|
+
}), h = {
|
|
65
|
+
neutral: null,
|
|
66
|
+
info: "info",
|
|
67
|
+
success: "circle-check",
|
|
68
|
+
warning: "triangle-alert",
|
|
69
|
+
danger: "circle-alert"
|
|
70
|
+
};
|
|
71
|
+
function j({
|
|
72
|
+
tone: r = "neutral",
|
|
73
|
+
emphasis: d,
|
|
74
|
+
title: c,
|
|
75
|
+
icon: o,
|
|
76
|
+
children: n,
|
|
77
|
+
actions: s,
|
|
78
|
+
live: x,
|
|
79
|
+
className: b,
|
|
80
|
+
ref: g,
|
|
81
|
+
...u
|
|
82
|
+
}) {
|
|
83
|
+
const t = y({ tone: r, emphasis: d }), l = h[r ?? "neutral"], a = o !== void 0 ? o : l ? /* @__PURE__ */ e(p, { name: l, size: "sm" }) : null;
|
|
84
|
+
return /* @__PURE__ */ i(
|
|
85
|
+
"div",
|
|
86
|
+
{
|
|
87
|
+
ref: g,
|
|
88
|
+
"data-slot": "callout",
|
|
89
|
+
role: x ? "alert" : void 0,
|
|
90
|
+
className: f(t.root(), b),
|
|
91
|
+
...u,
|
|
92
|
+
children: [
|
|
93
|
+
a && /* @__PURE__ */ e("span", { className: t.glyph(), "aria-hidden": !0, children: a }),
|
|
94
|
+
/* @__PURE__ */ i("div", { className: t.content(), children: [
|
|
95
|
+
/* @__PURE__ */ e("div", { className: t.title(), children: c }),
|
|
96
|
+
n && /* @__PURE__ */ e("div", { className: t.body(), children: n }),
|
|
97
|
+
s && /* @__PURE__ */ e("div", { className: t.actions(), children: s })
|
|
98
|
+
] })
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
export {
|
|
104
|
+
j as Callout
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=Callout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Callout.js","sources":["../../src/components/Callout.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode, Ref } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn\";\nimport { Icon, type IconName } from \"./Icon\";\n\n/* ============================================================================\n CALLOUT — a toned block that states a condition and what to do about it.\n ----------------------------------------------------------------------------\n Extracted rather than invented: the identical shape (rounded border +\n `*-subtle` fill + leading icon + bold line + quieter body) had been\n hand-rolled four separate times in one consumer screen alone, each with its\n own padding and its own idea of which text token the body used. That is the\n signature of a missing primitive.\n\n THE ICON IS NOT DECORATION AND DEFAULTS PER TONE. Tone is carried by hue,\n and hue alone fails WCAG 1.4.1 (Use of Color) for the ~8% of men with a\n red-green deficiency, for whom `warning` and `danger` are the same swatch.\n Each severity tone therefore ships a distinct SHAPE by default — triangle\n for warning, filled circle for danger, tick for success — so the severity\n survives the colour being unreadable. `neutral` gets none: it conveys no\n severity, so there is no second channel for it to owe.\n\n `live` IS OPT-IN AND MUST STAY THAT WAY. It renders `role=\"alert\"`, which is\n an assertive live region: assistive tech interrupts whatever the user is\n doing and reads it. That is correct for a condition that ARRIVES while the\n operator is looking elsewhere, and hostile for one that was simply on the\n page at load — a screen rendering ten callouts on mount would interrupt ten\n times before the operator had read a word. Default is silent; a caller opts\n in for the genuine interruption only.\n ========================================================================= */\n\n/* THE ICON SLOT IS CALLED `glyph`, NOT `icon`, and that is not cosmetic.\n `icon-names.test.ts` sweeps the source for `icon: \"…\"` and resolves every hit\n against the icon registry, because an unregistered name renders NOTHING and\n errors nowhere — a defect this repo has shipped twice. A recipe slot named\n `icon` whose value is a class string is indistinguishable from an icon name\n to that sweep, and every other `icon: \"…\"` in this library really is one. The\n guard is right; the slot name was wrong. */\nconst callout = tv({\n slots: {\n root: \"flex gap-2.5 rounded-lg p-3\",\n glyph: \"mt-px shrink-0\",\n content: \"flex min-w-0 flex-col gap-1\",\n title: \"text-sm font-semibold\",\n body: \"text-xs leading-relaxed\",\n /* NO ALPHA ON THE TONED BODY, and it took building a demo page to find out\n why. The body used to be text-<tone>-text/85 so it would sit back from the\n title, and every toned variant FAILED the 4.5:1 contrast floor against its\n own subtle fill — the a11y scan reported four nodes the moment this\n component had a page to be scanned on. It had none before, so the scan had\n never reached it: exported, shipped, and invisible to the one gate that\n would have caught it. Hierarchy comes from the title's weight instead,\n which costs nothing and cannot fail a ratio. */\n actions: \"mt-1 flex flex-wrap items-center gap-2\",\n },\n variants: {\n tone: {\n neutral: {\n root: \"border border-border bg-surface\",\n glyph: \"text-tertiary\",\n title: \"text-primary\",\n body: \"text-secondary\",\n },\n info: {\n root: \"border border-info-border bg-info-subtle\",\n glyph: \"text-info\",\n title: \"text-info-text\",\n body: \"text-info-text\",\n },\n success: {\n root: \"border border-success-border bg-success-subtle\",\n glyph: \"text-success\",\n title: \"text-success-text\",\n body: \"text-success-text\",\n },\n warning: {\n root: \"border border-warning-border bg-warning-subtle\",\n glyph: \"text-warning\",\n title: \"text-warning-text\",\n body: \"text-warning-text\",\n },\n danger: {\n root: \"border border-danger-border bg-danger-subtle\",\n glyph: \"text-danger\",\n title: \"text-danger-text\",\n body: \"text-danger-text\",\n },\n },\n /* `strong` doubles the border rather than deepening the fill. A darker\n fill would drag the body text's contrast down with it; the border is\n the one part of the block carrying no text. */\n emphasis: {\n subtle: {},\n strong: { root: \"border-2\" },\n },\n },\n defaultVariants: { tone: \"neutral\", emphasis: \"subtle\" },\n});\n\n/** The shape each severity tone carries when the caller does not pass one. */\nconst TONE_ICON: Record<string, IconName | null> = {\n neutral: null,\n info: \"info\",\n success: \"circle-check\",\n warning: \"triangle-alert\",\n danger: \"circle-alert\",\n};\n\nexport interface CalloutProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"title\">,\n VariantProps<typeof callout> {\n /** The condition, in one line. */\n title: ReactNode;\n /**\n * Override the per-tone default shape. Pass `null` to render no icon at all\n * — for a tone that is genuinely not a severity.\n */\n icon?: ReactNode | null;\n /** What to do about it. The half that makes a callout useful rather than a complaint. */\n children?: ReactNode;\n /** Buttons or links. Rendered under the body, never beside the title. */\n actions?: ReactNode;\n /**\n * Announce assertively via `role=\"alert\"`. Opt-in — see the header. Reserve\n * for a condition that appears in response to a change, not one present at\n * load.\n */\n live?: boolean;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function Callout({\n tone = \"neutral\",\n emphasis,\n title,\n icon,\n children,\n actions,\n live,\n className,\n ref,\n ...props\n}: CalloutProps) {\n const s = callout({ tone, emphasis });\n const defaultName = TONE_ICON[tone ?? \"neutral\"];\n const resolvedIcon =\n icon !== undefined ? icon : defaultName ? <Icon name={defaultName} size=\"sm\" /> : null;\n\n return (\n <div\n ref={ref}\n /* No `role` at all when not live. An unnecessary `role=\"status\"` would\n still be a live region — polite rather than assertive, but announced\n on every re-render all the same. */\n data-slot=\"callout\"\n role={live ? \"alert\" : undefined}\n className={cn(s.root(), className)}\n {...props}\n >\n {resolvedIcon && (\n <span className={s.glyph()} aria-hidden>\n {resolvedIcon}\n </span>\n )}\n <div className={s.content()}>\n <div className={s.title()}>{title}</div>\n {/* `div`, never `p` — a body routinely carries a list or a nested\n block, and `<p><ul>` is invalid HTML the browser silently\n un-nests, breaking the layout in a way no test catches. */}\n {children && <div className={s.body()}>{children}</div>}\n {actions && <div className={s.actions()}>{actions}</div>}\n </div>\n </div>\n );\n}\n"],"names":["callout","tv","TONE_ICON","Callout","tone","emphasis","title","icon","children","actions","live","className","ref","props","s","defaultName","resolvedIcon","jsx","Icon","jsxs","cn"],"mappings":";;;;AAsCA,MAAMA,IAAUC,EAAG;AAAA,EACjB,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASN,SAAS;AAAA,EAAA;AAAA,EAEX,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,MAER,MAAM;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,MAER,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,MAER,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,MAER,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,IACR;AAAA;AAAA;AAAA;AAAA,IAKF,UAAU;AAAA,MACR,QAAQ,CAAA;AAAA,MACR,QAAQ,EAAE,MAAM,WAAA;AAAA,IAAW;AAAA,EAC7B;AAAA,EAEF,iBAAiB,EAAE,MAAM,WAAW,UAAU,SAAA;AAChD,CAAC,GAGKC,IAA6C;AAAA,EACjD,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV;AAyBO,SAASC,EAAQ;AAAA,EACtB,MAAAC,IAAO;AAAA,EACP,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,KAAAC;AAAA,EACA,GAAGC;AACL,GAAiB;AACf,QAAMC,IAAId,EAAQ,EAAE,MAAAI,GAAM,UAAAC,GAAU,GAC9BU,IAAcb,EAAUE,KAAQ,SAAS,GACzCY,IACJT,MAAS,SAAYA,IAAOQ,IAAc,gBAAAE,EAACC,GAAA,EAAK,MAAMH,GAAa,MAAK,KAAA,CAAK,IAAK;AAEpF,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAP;AAAA,MAIA,aAAU;AAAA,MACV,MAAMF,IAAO,UAAU;AAAA,MACvB,WAAWU,EAAGN,EAAE,KAAA,GAAQH,CAAS;AAAA,MAChC,GAAGE;AAAA,MAEH,UAAA;AAAA,QAAAG,KACC,gBAAAC,EAAC,UAAK,WAAWH,EAAE,SAAS,eAAW,IACpC,UAAAE,EAAA,CACH;AAAA,QAEF,gBAAAG,EAAC,OAAA,EAAI,WAAWL,EAAE,WAChB,UAAA;AAAA,UAAA,gBAAAG,EAAC,OAAA,EAAI,WAAWH,EAAE,SAAU,UAAAR,GAAM;AAAA,UAIjCE,KAAY,gBAAAS,EAAC,OAAA,EAAI,WAAWH,EAAE,KAAA,GAAS,UAAAN,GAAS;AAAA,UAChDC,KAAW,gBAAAQ,EAAC,OAAA,EAAI,WAAWH,EAAE,QAAA,GAAY,UAAAL,EAAA,CAAQ;AAAA,QAAA,EAAA,CACpD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|