@danxbot/ui 20.23.3 → 21.0.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.
Files changed (105) hide show
  1. package/dist/index.js +23583 -22525
  2. package/dist/index.js.map +1 -1
  3. package/dist/pure.js +290 -210
  4. package/dist/pure.js.map +1 -1
  5. package/dist/types/components/AppShell.d.ts +1 -1
  6. package/dist/types/components/Board.d.ts +4 -6
  7. package/dist/types/components/Combobox.d.ts +2 -1
  8. package/dist/types/components/CommandPalette.d.ts +2 -0
  9. package/dist/types/components/DateField.d.ts +2 -2
  10. package/dist/types/components/DragDrop.d.ts +2 -4
  11. package/dist/types/components/InlineEdit.d.ts +4 -4
  12. package/dist/types/components/InlineMarkdownEdit.d.ts +2 -2
  13. package/dist/types/components/PagedWindowList.d.ts +1 -9
  14. package/dist/types/components/Progress.d.ts +4 -4
  15. package/dist/types/components/ReadMore.d.ts +2 -2
  16. package/dist/types/components/SecretField.d.ts +1 -1
  17. package/dist/types/components/Slider.d.ts +1 -1
  18. package/dist/types/components/SortMenu.d.ts +1 -1
  19. package/dist/types/components/Stat.d.ts +1 -1
  20. package/dist/types/components/StatusSelect.d.ts +1 -1
  21. package/dist/types/components/TriStateSwitch.d.ts +1 -7
  22. package/dist/types/components/board/context.d.ts +2 -4
  23. package/dist/types/components/calendar/CalendarMonth.d.ts +2 -3
  24. package/dist/types/components/calendar/CalendarTimeGrid.d.ts +1 -2
  25. package/dist/types/components/calendar/EventActions.d.ts +1 -2
  26. package/dist/types/components/calendar/format.d.ts +10 -9
  27. package/dist/types/components/calendar/use-calendar-drag.d.ts +0 -1
  28. package/dist/types/components/calendar/use-event-keyboard.d.ts +0 -1
  29. package/dist/types/components/chart/BarList.d.ts +1 -1
  30. package/dist/types/components/chart/ShareBar.d.ts +1 -1
  31. package/dist/types/components/chart/TimeSeriesChart.d.ts +2 -4
  32. package/dist/types/components/chart/shared.d.ts +2 -2
  33. package/dist/types/components/chart/time-series-scale.d.ts +1 -1
  34. package/dist/types/components/chat/EffortControl.d.ts +2 -2
  35. package/dist/types/components/chat/MessageScroller.d.ts +1 -1
  36. package/dist/types/components/checklist/StatusChecklist.d.ts +1 -1
  37. package/dist/types/components/edit/outcome.d.ts +0 -12
  38. package/dist/types/components/file-viewer/frames.d.ts +2 -1
  39. package/dist/types/components/kanban/KanbanBoard.d.ts +2 -21
  40. package/dist/types/components/kanban/types.d.ts +1 -1
  41. package/dist/types/components/markdown/Affordances.d.ts +3 -1
  42. package/dist/types/components/openapi/resolve.d.ts +7 -3
  43. package/dist/types/components/openapi/types.d.ts +2 -1
  44. package/dist/types/components/provenance/ConfidenceBar.d.ts +1 -1
  45. package/dist/types/components/provenance/ConfidenceReadout.d.ts +2 -2
  46. package/dist/types/components/provenance/ProvenanceBadge.d.ts +4 -3
  47. package/dist/types/components/provenance/ProvenanceDetail.d.ts +4 -6
  48. package/dist/types/components/provenance/ProvenanceDisclosure.d.ts +1 -1
  49. package/dist/types/components/provenance/absence.d.ts +4 -3
  50. package/dist/types/components/rbac/RoleKeyPicker.d.ts +1 -1
  51. package/dist/types/components/rbac/permissionSections.d.ts +1 -1
  52. package/dist/types/components/rbac/stagedForm.d.ts +4 -4
  53. package/dist/types/components/roadmap/RoadmapItemCard.d.ts +0 -1
  54. package/dist/types/index.d.ts +9 -7
  55. package/dist/types/lib/board/index.d.ts +2 -1
  56. package/dist/types/lib/board/move.d.ts +2 -2
  57. package/dist/types/lib/board/rejection.d.ts +8 -0
  58. package/dist/types/lib/board/types.d.ts +46 -0
  59. package/dist/types/lib/board/use-board.d.ts +2 -2
  60. package/dist/types/lib/calendar/drag.d.ts +1 -1
  61. package/dist/types/lib/calendar/index.d.ts +1 -1
  62. package/dist/types/lib/calendar/types.d.ts +3 -3
  63. package/dist/types/lib/confidence.d.ts +5 -0
  64. package/dist/types/lib/dnd/announce.d.ts +5 -23
  65. package/dist/types/lib/dnd/index.d.ts +1 -1
  66. package/dist/types/lib/format.d.ts +19 -18
  67. package/dist/types/lib/i18n/areas/auth-provenance-flows.d.ts +258 -0
  68. package/dist/types/lib/i18n/areas/board.d.ts +51 -0
  69. package/dist/types/lib/i18n/areas/chat-chart.d.ts +164 -0
  70. package/dist/types/lib/i18n/areas/code-editor.d.ts +40 -0
  71. package/dist/types/lib/i18n/areas/dates.d.ts +103 -0
  72. package/dist/types/lib/i18n/areas/docs-views.d.ts +268 -0
  73. package/dist/types/lib/i18n/areas/feedback.d.ts +104 -0
  74. package/dist/types/lib/i18n/areas/formats.d.ts +30 -0
  75. package/dist/types/lib/i18n/areas/forms.d.ts +130 -0
  76. package/dist/types/lib/i18n/areas/markdown.d.ts +139 -0
  77. package/dist/types/lib/i18n/areas/move-rejected.d.ts +16 -0
  78. package/dist/types/lib/i18n/areas/navigation.d.ts +144 -0
  79. package/dist/types/lib/i18n/areas/rbac.d.ts +584 -0
  80. package/dist/types/lib/i18n/emphasis.d.ts +3 -0
  81. package/dist/types/lib/i18n/index.d.ts +8 -0
  82. package/dist/types/lib/i18n/number-format.d.ts +5 -0
  83. package/dist/types/lib/i18n/plural.d.ts +7 -0
  84. package/dist/types/lib/i18n/provider.d.ts +16 -0
  85. package/dist/types/lib/i18n/strings.d.ts +15 -0
  86. package/dist/types/lib/intl-cache.d.ts +31 -0
  87. package/dist/types/lib/markdown/commands.d.ts +4 -2
  88. package/dist/types/lib/markdown/dom.d.ts +27 -21
  89. package/dist/types/lib/markdown/hotkeys.d.ts +12 -5
  90. package/dist/types/lib/markdown/image-decoration.d.ts +22 -1
  91. package/dist/types/lib/markdown/image-pipeline.d.ts +2 -0
  92. package/dist/types/lib/markdown/images.d.ts +1 -1
  93. package/dist/types/lib/markdown/reconcile.d.ts +4 -2
  94. package/dist/types/lib/markdown/surface.d.ts +4 -2
  95. package/dist/types/lib/reduced-motion-help.d.ts +2 -1
  96. package/dist/types/lib/time/relativeAge.d.ts +3 -2
  97. package/dist/types/lib/time/zone.d.ts +9 -0
  98. package/dist/types/lib/values/boolean.d.ts +11 -10
  99. package/dist/types/lib/values/currency.d.ts +5 -5
  100. package/dist/types/lib/values/date.d.ts +4 -4
  101. package/dist/types/lib/values/datetime.d.ts +3 -3
  102. package/dist/types/lib/values/locale-date.d.ts +34 -0
  103. package/dist/types/lib/values/number.d.ts +5 -5
  104. package/dist/types/pure.d.ts +1 -0
  105. package/package.json +1 -1
@@ -9,8 +9,6 @@ export interface SaveFlow {
9
9
  save: (run: () => Promise<void>) => Promise<void>;
10
10
  }
11
11
  export declare function useSaveFlow(failureMessage: string): SaveFlow;
12
- /** The line under a staged image, naming what Save will do with it. */
13
- export declare function stagedImageNote(noun: string, saveLabel: string, removed: boolean): string;
14
12
  export interface StagedFormActionsProps {
15
13
  onSave: () => void;
16
14
  onDiscard: () => void;
@@ -19,7 +17,9 @@ export interface StagedFormActionsProps {
19
17
  /** The draft differs from what is saved in ANY way, including whitespace Save would trim away. */
20
18
  canDiscard: boolean;
21
19
  saving: boolean;
22
- saveLabel: string;
23
- discardLabel: string;
20
+ /** The Save button's text; omit for the built-in one. */
21
+ saveLabel?: string;
22
+ /** The Discard button's text; omit for the built-in one. */
23
+ discardLabel?: string;
24
24
  }
25
25
  export declare function StagedFormActions({ onSave, onDiscard, canSave, canDiscard, saving, saveLabel, discardLabel, }: StagedFormActionsProps): import("react").JSX.Element;
@@ -2,7 +2,6 @@ import { type BadgeProps } from "../Badge";
2
2
  import type { Domain, Phase, RoadmapItem, RoadmapItemStatus, Track, UseCase, UseCaseStatus } from "./types";
3
3
  export declare const ROADMAP_ITEM_STATUS_BADGE: Record<RoadmapItemStatus, {
4
4
  tone: BadgeProps["tone"];
5
- label: string;
6
5
  live?: boolean;
7
6
  }>;
8
7
  export interface RoadmapItemCardProps {
@@ -93,7 +93,7 @@ export { MarkdownSurface, type SurfaceOptions, type Splice } from "./lib/markdow
93
93
  export { project, projectedText, ProjectionError } from "./lib/markdown/project";
94
94
  export type { Projection, PNode, PText, PElement } from "./lib/markdown/project";
95
95
  export { attachInput, type InputOptions } from "./lib/markdown/input";
96
- export { HOTKEYS, hotkeyFor, chordsOf, type Hotkey, type HotkeyGroup, type EditorRequest } from "./lib/markdown/hotkeys";
96
+ export { HOTKEYS, hotkeyFor, chordsOf, type Hotkey, type HotkeyGroup, type EditorRequest, type HotkeyId } from "./lib/markdown/hotkeys";
97
97
  export { MarkdownImageUploadProvider, type MarkdownImageUploadProviderProps, } from "./components/markdown/ImageUpload";
98
98
  export type { ImageUploader, ImageUploadState } from "./lib/markdown/image-pipeline";
99
99
  export { findUnstoredImages, isUnstoredImageSrc, type UnstoredImage } from "./lib/markdown/images";
@@ -111,11 +111,11 @@ export { tokenize, listLanguages, resolveLanguage, defineGrammar, registerGramma
111
111
  export { parseMarkdown, MarkdownNodes, sanitizeHref, type MdNode, type MdInline, type MdCodeRenderer, } from "./lib/syntax/markdown";
112
112
  export { DragDrop, DragDropContainer, DragDropItem, DragDropHandle, DragDropSurface, type DragDropProps, type DragDropContainerProps, type DragDropItemProps, type DragDropHandleProps, type DragDropSurfaceProps, } from "./components/DragDrop";
113
113
  export { KanbanBoard, type KanbanBoardProps, type KanbanLane, type KanbanMove, type KanbanRefusal, } from "./components/kanban/KanbanBoard";
114
- export { DEFAULT_DRAG_STRINGS, DRAG_INSTRUCTIONS_ID, DragInstructions, DragLiveRegion, DragSession, DragSessionProvider, applyMove, attachAutoScroll, attachKeyboardSensor, attachPointerSensor, attachSessionWindowListeners, isNoOp, resolveTarget, sameTarget, scrollVelocity, useCreateDragSession, useDragAnnouncements, useDragSession, useDragState, useDragLive, useDraggable, useDropContainer, type ContainerId, type CrossDrop, type DragAxis, type DragCancelEvent, type DragEndEvent, type DragId, type DragMode, type DragPhase, type DragSessionCallbacks, type DragStartEvent, type DragState, type AutoScrollOptions, type DragAnnouncementContext, type DragAnnouncementOptions, type DragAnnouncements, type DragInstructionsProps, type DragLiveRegionProps, type DragStrings, type DropTarget, type KeyboardSensorOptions, type PointerActivation, } from "./lib/dnd";
114
+ export { DRAG_INSTRUCTIONS_ID, DragInstructions, DragLiveRegion, DragSession, DragSessionProvider, applyMove, attachAutoScroll, attachKeyboardSensor, attachPointerSensor, attachSessionWindowListeners, isNoOp, resolveTarget, sameTarget, scrollVelocity, useCreateDragSession, useDragAnnouncements, useDragSession, useDragState, useDragLive, useDraggable, useDropContainer, type ContainerId, type CrossDrop, type DragAxis, type DragCancelEvent, type DragEndEvent, type DragId, type DragMode, type DragPhase, type DragSessionCallbacks, type DragStartEvent, type DragState, type AutoScrollOptions, type DragAnnouncementContext, type DragAnnouncementOptions, type DragAnnouncements, type DragInstructionsProps, type DragLiveRegionProps, type DropTarget, type KeyboardSensorOptions, type PointerActivation, } from "./lib/dnd";
115
115
  export { Board, BoardColumn, BoardCard, BoardCardSurface, type BoardProps, type BoardColumnProps, type BoardCardProps, type BoardCardSurfaceProps, } from "./components/Board";
116
- export { buildBoardModel, resolveMove, applyBoardMoves, useBoard, moveAnchor, columnLength, positionInColumn, type BoardModel, type MoveAnchor, type UseBoardResult, } from "./lib/board";
117
- export type { BoardAccessors, BoardColumnDef, BoardEdge, BoardColumnId, BoardColumnModel, BoardItemId, BoardMove, BoardMoveTarget, BoardMoveRequest, BoardMoveSource, BoardMoveVerdict, BoardReorderLabels, UseBoardOptions, } from "./lib/board";
118
- export { PagedWindowList, type PagedWindowItemPosition, type PagedWindowListProps, type PagedWindowStrings, } from "./components/PagedWindowList";
116
+ export { buildBoardModel, resolveMove, applyBoardMoves, describeMoveRejection, useBoard, moveAnchor, columnLength, positionInColumn, type BoardModel, type MoveAnchor, type UseBoardResult, } from "./lib/board";
117
+ export type { BoardAccessors, BoardColumnDef, BoardEdge, BoardColumnId, BoardColumnModel, BoardItemId, BoardMove, BoardMoveTarget, BoardMoveRequest, BoardMoveSource, BoardMoveOutcome, BoardMoveRejection, BoardMoveVerdict, BoardReorderLabels, UseBoardOptions, } from "./lib/board";
118
+ export { PagedWindowList, type PagedWindowItemPosition, type PagedWindowListProps, } from "./components/PagedWindowList";
119
119
  export { PAGED_WINDOW_SETTLE_MS, PagedWindowStore, usePagedWindow, windowPageNumbers, type LoadCount, type LoadPage, type LoadPageContext, type PageResponse, type PageSnapshot, type PageStatus, type PagedWindow, type PagedWindowMode, type PagedWindowOptions, type PagedWindowSnapshot, type UsePagedWindowOptions, } from "./lib/paged-window";
120
120
  export type { MessageRole, MessagePart, TextPart, CodePart, ReasoningPart, ToolPart, ToolStatus, FilePart, ComponentPart, ChatFile, ChatMessage, RenderContext, PartRenderer, PartRenderers, ChatComponentRenderer, ChatComponents, } from "./components/chat/types";
121
121
  export { Chat, ChatPopover, type ChatProps, type ChatPopoverProps, type ChatSurface, } from "./components/chat/Chat";
@@ -129,7 +129,7 @@ export { FileViewer, PageNumberJumpField, type FileViewerProps, type PageNumberJ
129
129
  export { fileIconFor, type FileIdentity } from "./components/chat/file-icon";
130
130
  export { VideoPlayer, type VideoPlayerProps, type VideoTrack } from "./components/VideoPlayer";
131
131
  export { ModelSelector, type ModelSelectorProps, type ChatModel, } from "./components/chat/ModelSelector";
132
- export { EffortControl, DEFAULT_EFFORT_LEVELS, type EffortControlProps, type EffortLevel, } from "./components/chat/EffortControl";
132
+ export { EffortControl, type EffortControlProps, type EffortLevel, } from "./components/chat/EffortControl";
133
133
  export { ContextMeter, ChatStatus, type ContextMeterProps, type ContextSegment, type UsageLimit, type ChatStatusProps, } from "./components/chat/ContextMeter";
134
134
  export { cn } from "./lib/cn";
135
135
  export { formatBytes, formatTokens, formatCompactNumber } from "./lib/format";
@@ -153,7 +153,7 @@ export { EVENT_PALETTE, DEFAULT_PALETTE_KEY, isPaletteKey, paletteFor, } from ".
153
153
  export { cellLabel, eventLabel, formatDateRange, longDate, monthTitle, timeOfDay, weekdayName, zoneLabel, } from "./components/calendar/format";
154
154
  export { initialFocusDay, isInMonth, nextDayForKey, useGridNavigation, type GridNavigation, type GridNavigationOptions, } from "./components/calendar/use-grid-navigation";
155
155
  export { AmbiguousTimeError, addDays, addDuration, addMonths, atMidnight, atTime, comparePlainDate, dayFraction, dayLengthMs, dayOfWeek, daysBetween, daysInMonth, endOfMonth, hoursInDay, instantAtFraction, instantToPlainDate, instantToPlainDateTime, isSameDate, isoDateString, isoDateTimeString, monthGridDays, nextDay, offsetAt, parsePlainDate, plainDateTimeToInstant, relativeAge, startOfDay, startOfMonth, startOfWeek, weekDays, type CalendarDuration, type Disambiguation, type Instant, type PlainDate, type PlainDateTime, type TimeZone, } from "./lib/time";
156
- export { allDayBandSegment, dayKey, daySlots, isAllDay, packBand, packLanes, snapFractionToInstant, timeSegments, timedBandSegment, type AllDayEvent, type BandInput, type BandOptions, type BandPlacement, type BandResult, type BandSegment, type CalendarEvent, type CalendarEventId, type CalendarView, type DaySlot, type DragKind, type EventDraft, type EventPalette, type LaneInput, type LaneOptions, type LanePlacement, type PaletteEntry, type TimeSegment, type TimedEvent, type VisibleRange, } from "./lib/calendar";
156
+ export { allDayBandSegment, dayKey, daySlots, isAllDay, packBand, packLanes, snapFractionToInstant, timeSegments, timedBandSegment, type AllDayEvent, type BandInput, type BandOptions, type BandPlacement, type BandResult, type BandSegment, type CalendarEvent, type CalendarEventId, type CalendarView, type DaySlot, type DragKind, type EventDraft, type EventPalette, type LaneInput, type LaneOptions, type LanePlacement, type PaletteEntry, type PaletteKey, type TimeSegment, type TimedEvent, type VisibleRange, } from "./lib/calendar";
157
157
  export { RBACProvider, useRBAC, Can, useHasPermission, AccountMenu, AccountMenuSection, TeamSwitcher, DevToolsPopover, RolePermissionMatrix, RoleEditorDialog, ProfileForm, ProfilePage, RolesPermissionsPage, MembersPanel, ChangePasswordForm, SessionsList, ApiKeysPanel, AgentKeysList, AccessRequestPanel, PermissionRequestPanel, RoleKeyPicker, isRoleSelectable, leastPrivilegeRoleId, InvitationsList, InviteMembersDialog, Brand, TeamSettingsForm, DangerZone, type RBACProviderProps, type RBACHookResult, type CanProps, type AccountMenuProps, type TeamSwitcherProps, type DevToolsPopoverProps, type RolePermissionMatrixProps, type RoleEditorDialogProps, type RoleEditorDialogSubmitInput, type ProfileFormProps, type ProfileFormAccount, type ProfileFormSaveInput, type ProfilePageProps, type RolesPermissionsPageProps, type MembersPanelProps, type MembersPanelMember, type ChangePasswordFormProps, type SessionsListProps, type Session, type ApiKeysPanelProps, type AgentKeysListProps, type ApiKey, type KeyGrant, type KeyRoleEditor, type AccessRequestPanelProps, type AccessRequest, type AccessRequestKind, type AccessRequestState, type ExpiredNote, type PermissionRequestPanelProps, type PermissionRequest, type RoleKeyPickerProps, type InvitationsListProps, type InvitationsListItem, type InvitationStatus, type InviteMembersDialogProps, type Permission, type Role, type User, type Team, type TeamMembership, type BrandProps, type TeamSettingsFormProps, type TeamSettingsFormTeam, type TeamSettingsFormSaveInput, type DangerZoneProps, } from "./components/rbac";
158
158
  export { AuthLayout, AcceptInvitationCard, SignupCard, TermsAcceptance, LoginForm, ForgotPasswordForm, ResetPasswordForm, type AuthLayoutProps, type AcceptInvitationCardProps, type SignupCardProps, type TermsAcceptanceProps, type LoginFormProps, type ForgotPasswordFormProps, type ResetPasswordFormProps, } from "./components/auth";
159
159
  export { UseCaseCard, RoadmapItemCard, RoadmapSwimlaneBoard, UseCaseLedgerPage, RoadmapPage, PhaseManager, TrackManager, deriveRoadmapItemStatus, isFullyBuilt, isUnbuilt, trackIds, trackProgress, toneForIndex, CATEGORY_TONES, type Domain, type Phase, type Track, type RoadmapItem, type RoadmapItemStatus, type UseCase, type UseCaseStatus, type UseCaseDecision, type UseCaseCardProps, type RoadmapItemCardProps, type RoadmapSwimlaneBoardProps, type UseCaseLedgerPageProps, type RoadmapPageProps, type PhaseManagerProps, type TrackManagerProps, } from "./components/roadmap";
@@ -168,3 +168,5 @@ export { OpenApiViewer, type OpenApiViewerProps, OperationCard, type OperationCa
168
168
  export { defineRecordType, resetRecordTypes, useRecord, useRecords, useStaleness, write, writeAll, peekRecord, readState, readStaleness, subscribeToKey, subscribeToStaleness, retainKeys, sweepRecords, setRecordStoreTenant, getRecordStoreTenant, flushRecordNotifications, resetRecordStore, recordStoreStats, UNKNOWN_STATE, normalizeTypeName, normalizeTimestamp, recordKey, isRecordRef, type RecordRef, type ReadOptions, type RecordPayload, type RecordState, type RecordTypeOptions, type RecordTypeToken, type StalenessEntry, type WriteAllResult, type WriteOptions, type WriteResult, type WriteSource, type WriteVerdict, } from "./lib/records";
169
169
  export { RealtimeProvider, useRealtime, useRealtimeEpoch, useRealtimeHealth, useRealtimeRegistry, SubscriptionRegistry, normalizeScope, scopeKey, subscriptionKey, readRealtimeEpoch, subscribeToRealtimeEpoch, subscribeToRealtimeEvents, resetRealtimeSignals, type RealtimeChannel, type RealtimeConnectionState, type RealtimeDiagnostic, type RealtimeEvent, type RealtimeHealth, type RealtimeProviderProps, type RealtimeScope, type RealtimeScopeInput, type RealtimeStatus, type RealtimeTransport, type RegistryOptions, type SubscriptionHealth, type SubscriptionLease, type SubscriptionRequest, } from "./lib/realtime";
170
170
  export { useRecordRead, useRecordListRead, useRecordStoreSweep, applyMutationResult, optimisticWrite, beginOptimisticWrite, resetOptimisticWrites, type OptimisticHandle, type OptimisticWriteOptions, type OptimisticWriteSpec, type SlotDescriptor, acquireSlot, appendCreated, emptySlotSnapshot, readSlot, resetSlots, slotKeys, subscribeToSlot, writeSlot, RefetchRunner, registerActiveRead, resetActiveReads, type ActiveRead, type ListFetch, type ListFetchResult, type ListReadOptions, type ListReadResult, type ReadError, type RecordFetch, type RecordReadOptions, type RecordReadResult, type RunnerOptions, type SlotSnapshot, } from "./lib/reads";
171
+ export { ENGLISH_UI_STRINGS, UiLocaleProvider, useUiLocale, useUiStrings, type UiLocaleProviderProps, type UiLocaleValue, type UiStrings, } from "./lib/i18n";
172
+ export type { BooleanStrings, FormatsStrings, ReadErrorStrings, RelativeAgeStrings } from "./lib/i18n/areas/formats";
@@ -8,8 +8,9 @@
8
8
  * NOT wired into the package's top-level `src/index.ts` — that barrel is
9
9
  * owned by the contract's author, not this agent (see this round's brief).
10
10
  */
11
- export type { BoardAccessors, BoardColumnDef, BoardEdge, BoardColumnId, BoardColumnModel, BoardItemId, BoardMove, BoardMoveTarget, BoardMoveRequest, BoardMoveSource, BoardMoveVerdict, BoardReorderLabels, UseBoardOptions, } from "./types";
11
+ export type { BoardAccessors, BoardColumnDef, BoardEdge, BoardColumnId, BoardColumnModel, BoardItemId, BoardMove, BoardMoveTarget, BoardMoveRequest, BoardMoveSource, BoardMoveOutcome, BoardMoveRejection, BoardMoveVerdict, BoardReorderLabels, UseBoardOptions, } from "./types";
12
12
  export { buildBoardModel, type BoardModel } from "./model";
13
+ export { describeMoveRejection } from "./rejection";
13
14
  export { moveAnchor, type MoveAnchor } from "./anchor";
14
15
  export { columnLength, positionInColumn } from "./position";
15
16
  export { applyBoardMoves, resolveMove, type ResolveMoveContext, type ResolvedMove, } from "./move";
@@ -113,7 +113,7 @@
113
113
  * other shape — cross-column, or any bulk request — has no single shared
114
114
  * array to splice, so it goes through the residual-and-insert pass above.
115
115
  */
116
- import type { BoardAccessors, BoardColumnDef, BoardMove, BoardMoveRequest, BoardMoveVerdict } from "./types";
116
+ import type { BoardAccessors, BoardColumnDef, BoardMove, BoardMoveRequest, BoardMoveOutcome, BoardMoveVerdict } from "./types";
117
117
  /** Everything `resolveMove` reads to prove a request is structurally real. */
118
118
  export interface ResolveMoveContext<T> {
119
119
  items: readonly T[];
@@ -123,7 +123,7 @@ export interface ResolveMoveContext<T> {
123
123
  validateMove?: (request: BoardMoveRequest) => BoardMoveVerdict;
124
124
  }
125
125
  export interface ResolvedMove {
126
- verdict: BoardMoveVerdict;
126
+ verdict: BoardMoveOutcome;
127
127
  /**
128
128
  * The subset of the request's moves worth committing, in original order.
129
129
  * Empty whenever there is nothing to write — either every move was a
@@ -0,0 +1,8 @@
1
+ import type { UiStrings } from "../i18n";
2
+ import type { BoardMoveRejection } from "./types";
3
+ /**
4
+ * DX-4740: the sentence a person reads for a refused move. The core answers with values
5
+ * (`BoardMoveRejection`); the provider's `moveRejected` strings word them. A consumer's own
6
+ * sentence passes through untouched.
7
+ */
8
+ export declare function describeMoveRejection(strings: UiStrings["moveRejected"], locale: string, reason: BoardMoveRejection): string;
@@ -196,6 +196,52 @@ export type BoardMoveVerdict = {
196
196
  ok: false;
197
197
  reason: string;
198
198
  };
199
+ /**
200
+ * DX-4740: WHY THE CORE REFUSED A MOVE, AS VALUES, NEVER AS A SENTENCE. The core
201
+ * (`resolveMove`) has no language; the component that shows the refusal words it
202
+ * through the provider's `moveRejected` strings. Only the refusals a person can
203
+ * reach are listed: a stale request (the card was moved or removed under them) and
204
+ * a consumer's own sentence. A column that is no longer declared is the same kind of
205
+ * stale request (a live update removed it during the drag). A malformed request (a negative
206
+ * index, a duplicate item, a multi-move request that is not `"bulk"`) is the
207
+ * caller's bug and throws an English `Error` from `resolveMove` instead.
208
+ */
209
+ export type BoardMoveRejection = {
210
+ code: "unknownItem";
211
+ itemId: BoardItemId;
212
+ } | {
213
+ code: "unknownColumn";
214
+ columnId: BoardColumnId;
215
+ } | {
216
+ code: "wrongColumn";
217
+ itemId: BoardItemId;
218
+ actualColumnId: BoardColumnId;
219
+ claimedColumnId: BoardColumnId;
220
+ } | {
221
+ code: "fromIndexPastEnd";
222
+ itemId: BoardItemId;
223
+ index: number;
224
+ columnId: BoardColumnId;
225
+ count: number;
226
+ } | {
227
+ code: "toIndexPastEnd";
228
+ itemId: BoardItemId;
229
+ index: number;
230
+ columnId: BoardColumnId;
231
+ max: number;
232
+ }
233
+ /** The consumer's own sentence (`reorderLocked`, `validateMove`), already in their language: shown as is. */
234
+ | {
235
+ code: "consumer";
236
+ message: string;
237
+ };
238
+ /** What `resolveMove` and `useBoard().requestMove` answer: `BoardMoveVerdict`, with a structured reason. */
239
+ export type BoardMoveOutcome = {
240
+ ok: true;
241
+ } | {
242
+ ok: false;
243
+ reason: BoardMoveRejection;
244
+ };
199
245
  /** A column as the core computes it, ready to render. */
200
246
  export interface BoardColumnModel<T> {
201
247
  id: BoardColumnId;
@@ -29,7 +29,7 @@
29
29
  * the same way, mirroring why `requestMove` exists as a single funnel for
30
30
  * moves rather than one per source.
31
31
  */
32
- import type { BoardColumnModel, BoardItemId, BoardMoveRequest, BoardMoveVerdict, UseBoardOptions } from "./types";
32
+ import type { BoardColumnModel, BoardItemId, BoardMoveRequest, BoardMoveOutcome, UseBoardOptions } from "./types";
33
33
  export interface UseBoardResult<T> {
34
34
  /** One entry per declared column, in `columns` order, ready to render. */
35
35
  columns: readonly BoardColumnModel<T>[];
@@ -42,6 +42,6 @@ export interface UseBoardResult<T> {
42
42
  setSelected: (ids: readonly BoardItemId[]) => void;
43
43
  clearSelection: () => void;
44
44
  /** The single funnel every input source calls. See the file header. */
45
- requestMove: (request: BoardMoveRequest) => BoardMoveVerdict;
45
+ requestMove: (request: BoardMoveRequest) => BoardMoveOutcome;
46
46
  }
47
47
  export declare function useBoard<T>(options: UseBoardOptions<T>): UseBoardResult<T>;
@@ -120,6 +120,6 @@ export declare function createdEvent(anchor: CalendarTarget, target: CalendarTar
120
120
  * "Moved to 2:30 PM, Wednesday" — the SLOT, not the fact that something moved.
121
121
  * "Moved" alone tells a screen-reader user nothing they can act on.
122
122
  */
123
- export declare function describeTarget(target: CalendarTarget, zone: TimeZone, locale?: string): string;
123
+ export declare function describeTarget(target: CalendarTarget, zone: TimeZone, locale: string): string;
124
124
  /** Where in the grid a fraction sits, for the preview. Inverse of the resolve. */
125
125
  export declare function fractionOf(zone: TimeZone, day: PlainDate, instant: Instant): number;
@@ -1,4 +1,4 @@
1
- export { isAllDay, type AllDayEvent, type CalendarEvent, type CalendarEventId, type CalendarView, type DragKind, type EventDraft, type EventPalette, type PaletteEntry, type TimedEvent, type VisibleRange, } from "./types";
1
+ export { isAllDay, type AllDayEvent, type CalendarEvent, type CalendarEventId, type CalendarView, type DragKind, type EventDraft, type EventPalette, type PaletteEntry, type PaletteKey, type TimedEvent, type VisibleRange, } from "./types";
2
2
  export { packLanes, type LaneInput, type LaneOptions, type LanePlacement } from "./lane-packer";
3
3
  export { packBand, type BandInput, type BandOptions, type BandPlacement, type BandResult } from "./band-packer";
4
4
  export { allDayBandSegment, dayKey, daySlots, snapFractionToInstant, timeSegments, timedBandSegment, type BandSegment, type DaySlot, type TimeSegment, } from "./segments";
@@ -138,10 +138,10 @@ export interface EventDraft {
138
138
  * So the palette is curated, each pair is measured, and a consumer supplying
139
139
  * arbitrary hex gets a documented refusal rather than an unreadable chip.
140
140
  */
141
+ /** The eight swatch keys. Each one's spoken name is a built-in string (`calendar.colors`), so colour is never the only cue. */
142
+ export type PaletteKey = "iris" | "aqua" | "mint" | "amber" | "rose" | "azure" | "orchid" | "slate";
141
143
  export interface PaletteEntry {
142
- readonly key: string;
143
- /** Human name, used in the accessible label so colour is never the only cue. */
144
- readonly label: string;
144
+ readonly key: PaletteKey;
145
145
  readonly fill: string;
146
146
  readonly text: string;
147
147
  /** Border and left-edge accent; darker than `fill`, still AA against it. */
@@ -19,5 +19,10 @@ export declare function confidenceLevel(rating: number, scale: number): Confiden
19
19
  * Each level's own word, the operator's scale (SG-843): 4 is "Confident" and 5
20
20
  * is "Highly confident", so the two readings of "fine" stay distinguishable in
21
21
  * words exactly as they are in colour and length.
22
+ *
23
+ * These are the ENGLISH words for a non-React consumer that cannot read the
24
+ * provider (the demand letter's Vue overlay bundles them, SG-901). Components
25
+ * read `confidenceBar.levels` from the provider, whose English set is this very
26
+ * object, so there is one place the English lives.
22
27
  */
23
28
  export declare const CONFIDENCE_LEVEL_LABELS: Readonly<Record<ConfidenceLevel, string>>;
@@ -15,6 +15,8 @@ export interface DragAnnouncementContext {
15
15
  containerLabel: string;
16
16
  /** 1-based, as spoken, in the WHOLE container — a windowed container reports its real offset and length (DX-4540). */
17
17
  position: number;
18
+ /** `position` written the way the active locale writes numbers (DX-4740): what a message prints. */
19
+ positionText: string;
18
20
  /**
19
21
  * The list length WITH the carried item counted in it, so `position` is never
20
22
  * "4 of 3". The session's own indices exclude the carried item — see the
@@ -22,33 +24,14 @@ export interface DragAnnouncementContext {
22
24
  * user a list is one shorter than the one they are looking at.
23
25
  */
24
26
  total: number;
27
+ /** `total` written the way the active locale writes numbers (DX-4740): what a message prints. */
28
+ totalText: string;
25
29
  }
26
- export interface DragStrings {
27
- /** Rendered by `<DragInstructions>`; referenced by each handle's `aria-describedby`. */
28
- instructions: string;
29
- picked: (c: DragAnnouncementContext) => string;
30
- moved: (c: DragAnnouncementContext) => string;
31
- dropped: (c: DragAnnouncementContext) => string;
32
- /** `moved`, for a card held over another container that takes it as a whole (`crossDrop: "lane"`): no position is spoken. */
33
- movedToLane: (c: DragAnnouncementContext) => string;
34
- /** `dropped`, for a card released over such a container. */
35
- droppedInLane: (c: DragAnnouncementContext) => string;
36
- /** Describes the item's ORIGINAL position — cancel is a restore, not a move. */
37
- cancelled: (c: DragAnnouncementContext) => string;
38
- }
39
- /**
40
- * Exported as data so a consumer can read one message, override one message, or
41
- * assert on the set — a grammar hidden inside the component that renders it can
42
- * only be checked by rendering it.
43
- */
44
- export declare const DEFAULT_DRAG_STRINGS: DragStrings;
45
30
  export interface DragAnnouncementOptions {
46
31
  /** Human name for an item. Falls back to the id. */
47
32
  labelOf?: (id: DragId) => string;
48
33
  /** Human name for a container. Falls back to the id. */
49
34
  containerLabelOf?: (id: ContainerId) => string;
50
- /** Override any subset of the grammar — localisation, or a domain noun. */
51
- strings?: Partial<DragStrings>;
52
35
  }
53
36
  /**
54
37
  * One id for the whole page, deliberately not `useId()`.
@@ -117,7 +100,6 @@ export type DragLiveRegionProps = {
117
100
  */
118
101
  export declare function DragLiveRegion({ session, ...options }: DragLiveRegionProps): import("react").JSX.Element;
119
102
  export interface DragInstructionsProps {
120
- strings?: Partial<DragStrings>;
121
103
  /**
122
104
  * The element id each handle's `aria-describedby` points at.
123
105
  *
@@ -139,4 +121,4 @@ export interface DragInstructionsProps {
139
121
  * of the rest of this file. Visually hidden because the same information is
140
122
  * carried for sighted users by the cursor and the moving card.
141
123
  */
142
- export declare function DragInstructions({ strings, id }?: DragInstructionsProps): import("react").JSX.Element;
124
+ export declare function DragInstructions({ id }?: DragInstructionsProps): import("react").JSX.Element;
@@ -14,4 +14,4 @@ export { attachPointerSensor, attachSessionWindowListeners, type PointerActivati
14
14
  export { attachKeyboardSensor, type KeyboardSensorOptions, } from "./sensors/keyboard";
15
15
  export { attachAutoScroll, scrollVelocity, type AutoScrollOptions, } from "./autoscroll";
16
16
  export { DragSessionProvider, useCreateDragSession, useDragSession, useDragState, useDragLive, useDraggable, useDropContainer, type UseDraggableOptions, type UseDraggableResult, type UseDropContainerOptions, type UseDropContainerResult, } from "./use-drag";
17
- export { DEFAULT_DRAG_STRINGS, DRAG_INSTRUCTIONS_ID, DragInstructions, DragLiveRegion, useDragAnnouncements, type DragAnnouncementContext, type DragAnnouncementOptions, type DragAnnouncements, type DragInstructionsProps, type DragLiveRegionProps, type DragStrings, } from "./announce";
17
+ export { DRAG_INSTRUCTIONS_ID, DragInstructions, DragLiveRegion, useDragAnnouncements, type DragAnnouncementContext, type DragAnnouncementOptions, type DragAnnouncements, type DragInstructionsProps, type DragLiveRegionProps, } from "./announce";
@@ -1,32 +1,33 @@
1
1
  /** Binary units, because these are file sizes and every OS reports them this way. */
2
- export declare function formatBytes(bytes: number): string;
2
+ export declare function formatBytes(bytes: number, locale: string): string;
3
3
  /**
4
- * 241_600 → "241.6k". A thin, token-domain-named wrapper — see
4
+ * 241_600 → "241.6K". A thin, token-domain-named wrapper — see
5
5
  * `formatCompactNumber` below for the shared algorithm and its own reasoning.
6
6
  * Kept as its own function (rather than every call site switching to the
7
7
  * generic one directly) because "tokens" is a real vocabulary word in this
8
8
  * package's chat components, and renaming every call site to the generic name
9
9
  * would cost real diff for zero behavioral gain.
10
10
  */
11
- export declare function formatTokens(tokens: number): string;
11
+ export declare function formatTokens(tokens: number, locale: string): string;
12
12
  /**
13
- * A GENERIC large count, abbreviated the way a person reads it aloud:
14
- * `850` → `"850"`, `1_100` → `"1.1k"`, `3_400_000` → `"3.4M"`,
13
+ * A GENERIC large count, abbreviated the way the locale writes it: in en-US
14
+ * `850` → `"850"`, `1_100` → `"1.1K"`, `3_400_000` → `"3.4M"`,
15
15
  * `4_400_000_000` → `"4.4B"`. `null` / `undefined` / non-finite → `"—"`.
16
16
  *
17
- * One decimal per tier (k/M/B/T), trimmed of a trailing ".0" (`1_000_000` →
18
- * `"1M"`, not `"1.0M"`), and exact below 1,000 — a count small enough to read
19
- * digit-by-digit gets no abbreviation at all, since "850" is not improved by
20
- * becoming "0.9k". This is the same one-decimal-per-tier shape `formatTokens`
21
- * already used for a token budget; the difference that justified a SEPARATE,
22
- * generic export rather than just widening that one is scope: `formatTokens`
23
- * is a token-budget's own vocabulary (a live context meter), while this
24
- * function is for any large count a screen needs to abbreviate — a field
25
- * tally, a donut's fraction, a record count — with no token-specific meaning
26
- * attached to its name.
17
+ * DX-4740: THE SUFFIXES COME FROM `Intl` (`notation: "compact"`), NOT FROM A
18
+ * TABLE HERE. A hand-written T/B/M/k ladder is English: "B" for 10^9 reads as
19
+ * "billón" (10^12) to an es-AR reader, and every other language has its own
20
+ * words for thousand and million. en-US now writes an uppercase "K".
27
21
  *
28
- * NEGATIVE VALUES keep their sign (`-1_100` → `"-1.1k"`) rather than being
22
+ * One decimal at most, trimmed of a trailing ".0" (`1_000_000` → `"1M"`, not
23
+ * `"1.0M"`), and exact below 1,000 — a count small enough to read digit-by-digit
24
+ * gets no abbreviation at all, since "850" is not improved by becoming "0.9K".
25
+ * `formatTokens` is the token-budget's name for the same thing; this one is for
26
+ * any large count a screen needs to abbreviate — a field tally, a donut's
27
+ * fraction, a record count.
28
+ *
29
+ * NEGATIVE VALUES keep their sign (`-1_100` → `"-1.1K"`) rather than being
29
30
  * treated as absent — a generic count utility cannot assume its caller's
30
- * domain never has one, the way `formatTokens`'s own callers do.
31
+ * domain never has one.
31
32
  */
32
- export declare function formatCompactNumber(value: number | null | undefined): string;
33
+ export declare function formatCompactNumber(value: number | null | undefined, locale: string): string;
@@ -0,0 +1,258 @@
1
+ import { type ReactNode } from "react";
2
+ import { type ConfidenceLevel } from "../../confidence";
3
+ import type { Emphasis } from "../emphasis";
4
+ export interface AuthProvenanceFlowsStrings {
5
+ acceptInvitationCard: {
6
+ /** The sentence under the team logo: who invited which address to which team in which role. */
7
+ intro: (inviter: string, email: string, team: string, role: string, emphasis: Emphasis) => ReactNode;
8
+ /** Line shown when the viewer already has a matching session. */
9
+ signedInAs: (name: string, emphasis: Emphasis) => ReactNode;
10
+ /** One-click join button for a signed-in viewer. */
11
+ acceptAndJoin: (team: string) => string;
12
+ /** Line shown when the invited email already has an account but the viewer is not signed in as it. */
13
+ accountExists: (email: string) => string;
14
+ /** Button pointing an existing-account viewer at sign-in. */
15
+ signInToAccept: string;
16
+ /** Label of the new-account name field. */
17
+ name: string;
18
+ /** Label of the new-account username field. */
19
+ username: string;
20
+ /** Label of the new-account password field. */
21
+ password: string;
22
+ /** Submit button of the new-account form. */
23
+ createAndJoin: (team: string) => string;
24
+ };
25
+ forgotPasswordForm: {
26
+ /** Submit button text (a caller's `submitLabel` replaces it). */
27
+ submit: string;
28
+ /** Error shown when the request fails with something that is not an Error carrying a message. */
29
+ failedMessage: string;
30
+ /** Title of the error callout above the form. */
31
+ failedTitle: string;
32
+ /** Title of the confirmation callout shown after the request succeeded. */
33
+ sentTitle: string;
34
+ /** Body of that confirmation callout. */
35
+ sentBody: (email: string) => string;
36
+ /** Label of the email field. */
37
+ email: string;
38
+ /** Helper text under the email field. */
39
+ emailDescription: string;
40
+ };
41
+ loginForm: {
42
+ /** Submit button text (a caller's `submitLabel` replaces it). */
43
+ submit: string;
44
+ /** Error shown when sign-in fails with something that is not an Error carrying a message. */
45
+ failedMessage: string;
46
+ /** Title of the error callout above the form. */
47
+ failedTitle: string;
48
+ /** Label of the email-or-username field. */
49
+ identifier: string;
50
+ /** Label of the password field. */
51
+ password: string;
52
+ };
53
+ resetPasswordForm: {
54
+ /** Submit button text (a caller's `submitLabel` replaces it). */
55
+ submit: string;
56
+ /** Error shown when the reset fails with something that is not an Error carrying a message. */
57
+ failedMessage: string;
58
+ /** Title of the error callout above the form. */
59
+ failedTitle: string;
60
+ /** Label of the new-password field. */
61
+ newPassword: string;
62
+ /** Label of the confirmation field. */
63
+ confirmPassword: string;
64
+ /** Error under the confirmation field when it differs from the new password. */
65
+ mismatch: string;
66
+ };
67
+ signupCard: {
68
+ /** Error under the code field when validation rejected with something that is not an Error carrying a message. */
69
+ invalidCode: string;
70
+ /** Label of the sign-up code field. */
71
+ betaCode: string;
72
+ /** Helper text when the code came from the sign-up link and is locked. */
73
+ codeFromLink: string;
74
+ /** Button that checks the code. */
75
+ continue: string;
76
+ /** Label of the name field. */
77
+ name: string;
78
+ /** Label of the username field. */
79
+ username: string;
80
+ /** Label of the email field. */
81
+ email: string;
82
+ /** Helper text when the code reserves the email address. */
83
+ emailReserved: string;
84
+ /** Label of the team-name field. */
85
+ teamName: string;
86
+ /** Helper text under the team-name field. */
87
+ teamNameDescription: string;
88
+ /** Label of the password field. */
89
+ password: string;
90
+ /** Submit button of the account form. */
91
+ createAccount: string;
92
+ /** Prompt beside the sign-in link beneath the card. */
93
+ haveAccount: string;
94
+ /** The sign-in link beneath the card. */
95
+ signIn: string;
96
+ };
97
+ termsAcceptance: {
98
+ /** The agreement row is `before` + the link text + `after`, so a translation controls the order around the link. */
99
+ agreement: {
100
+ /** Text before the Terms link. */
101
+ before: string;
102
+ /** The link text. */
103
+ link: string;
104
+ /** Text after the Terms link. */
105
+ after: string;
106
+ };
107
+ };
108
+ confidenceBar: {
109
+ /** What the rating is of, when the caller gives no `label`. */
110
+ label: string;
111
+ /** Accessible name and tooltip of an unrated bar. */
112
+ notRated: (label: string) => string;
113
+ /** Accessible name and tooltip of a rated bar ("Confidence 3 of 5"); `ratingText` and `scaleText` are already formatted for the locale. */
114
+ rated: (label: string, ratingText: string, scaleText: string) => string;
115
+ /** Each level's own word on the five-step scale (4 "Confident" and 5 "Highly confident" stay distinguishable); read by an application that prints a level in words. */
116
+ levels: Record<ConfidenceLevel, string>;
117
+ };
118
+ confidenceMeter: {
119
+ /** Shown in place of the meter when nothing scored it. */
120
+ notScored: string;
121
+ /** The band names printed over the meter. */
122
+ bands: {
123
+ /** Score of 0.9 and above. */
124
+ high: string;
125
+ /** Score from 0.7 up to 0.9. */
126
+ moderate: string;
127
+ /** Score under 0.7. */
128
+ low: string;
129
+ };
130
+ };
131
+ provenanceBadge: {
132
+ /** The word on each verification-state chip, and its screen-reader text. */
133
+ states: {
134
+ /** Value checked and good. */
135
+ verified: string;
136
+ /** Signed off by a person. */
137
+ human: string;
138
+ /** Never checked. */
139
+ unverified: string;
140
+ /** The record's check disproved it. */
141
+ failed: string;
142
+ };
143
+ };
144
+ provenanceAbsence: {
145
+ /** Shown in place of a value that was extracted as null. */
146
+ noValue: string;
147
+ /** Shown in place of a value withheld from the viewer. */
148
+ redacted: string;
149
+ /** Shown in place of a value that failed its check. */
150
+ heldNull: string;
151
+ };
152
+ provenanceDetail: {
153
+ /** Row heading for the record's check verdict. */
154
+ check: string;
155
+ /** Row heading for the source and its quote. */
156
+ source: string;
157
+ /** Row heading for the model's reasoning. */
158
+ reasoning: string;
159
+ /** Row heading for the sign-off. */
160
+ signed: string;
161
+ /** Prefix before the struck-through original value of a correction. */
162
+ correctedFrom: string;
163
+ /** Row heading for the model-call cost. */
164
+ modelCall: string;
165
+ /** Badge for the input token count (`count` is already formatted for the locale). */
166
+ tokensIn: (countText: string) => string;
167
+ /** Badge for the output token count (`count` is already formatted for the locale). */
168
+ tokensOut: (countText: string) => string;
169
+ /** Badge for the call latency (`ms` is already formatted for the locale). */
170
+ latencyMs: (msText: string) => string;
171
+ /** Shown when the record carries no source, reasoning, call or check. */
172
+ empty: string;
173
+ };
174
+ provenanceDisclosure: {
175
+ /** Screen-reader text at the end of the trigger's name. */
176
+ showWhereFrom: string;
177
+ };
178
+ statusChecklist: {
179
+ /** Title of the empty state when the list has no items (a caller's `emptyTitle` replaces it). */
180
+ empty: string;
181
+ /** One chip of the summary row: the count and the consumer's state label. */
182
+ tally: (countText: string, stateLabel: string) => string;
183
+ };
184
+ stepper: {
185
+ /** Header above the rail. */
186
+ stepOf: (positionText: string, totalText: string) => string;
187
+ /** Chip counting steps behind the cursor that are not complete. */
188
+ skipped: (n: number, nText: string) => string;
189
+ /** Back button (a caller's `backLabel` replaces it). */
190
+ back: string;
191
+ /** Next button (a caller's `nextLabel` replaces it). */
192
+ next: string;
193
+ /** Forward button on the last step (a caller's `finishLabel` replaces it). */
194
+ finish: string;
195
+ /** The state word appended to each step's accessible name. */
196
+ status: {
197
+ /** Finished step. */
198
+ complete: string;
199
+ /** Step with a reason it cannot proceed. */
200
+ blocked: string;
201
+ /** The step the cursor is on. */
202
+ current: string;
203
+ /** Behind the cursor and not finished. */
204
+ incomplete: string;
205
+ /** Ahead of the cursor. */
206
+ upcoming: string;
207
+ };
208
+ /** Screen-reader text joining a step's label to its state word. */
209
+ statusSuffix: (word: string) => string;
210
+ };
211
+ focusWeb: {
212
+ /** Accessible name of the parent node's button. */
213
+ upTo: (label: string) => string;
214
+ /** Accessible name of a node's button when it carries a badge label. */
215
+ withBadge: (name: string, badge: string) => string;
216
+ };
217
+ nodeCanvas: {
218
+ /** Label of a collapsed cycle box. */
219
+ cyclicCluster: (sizeText: string) => string;
220
+ /** Member count under a collapsed group. */
221
+ itemCount: (count: number, countText: string) => string;
222
+ /** Tooltip of the disabled go-up button on a read-only canvas. */
223
+ readOnly: string;
224
+ /** Tooltip of the disabled go-up button at the top level. */
225
+ atTop: string;
226
+ /** Name of the go-up button. */
227
+ goUp: string;
228
+ /** Name of the chart/list toggle group. */
229
+ view: string;
230
+ /** Name of the chart-view toggle. */
231
+ chartView: string;
232
+ /** Name of the list-view toggle. */
233
+ listView: string;
234
+ /** Line under a list row naming the nodes it points at. */
235
+ connectsTo: (names: readonly string[]) => string;
236
+ /** Live-region announcement of the current scope. */
237
+ showing: (n: number, nText: string, scope: string) => string;
238
+ /** Live-region announcement while inside a cycle box. */
239
+ showingCycle: (n: number, nText: string, sizeText: string) => string;
240
+ };
241
+ graphExplorer: {
242
+ /** Live-region announcement of the whole explorer. */
243
+ showing: (n: number, nText: string, label: string) => string;
244
+ /** Name of the zoom-out button. */
245
+ zoomOut: string;
246
+ /** Name of the zoom-in button. */
247
+ zoomIn: string;
248
+ /** Name of the fit-everything button. */
249
+ fitAll: string;
250
+ /** Name of the button that flies back to the focused node. */
251
+ resetToFocus: string;
252
+ /** Name of the minimap's expand button. */
253
+ expand: string;
254
+ /** Accessible name of the minimap surface. */
255
+ minimap: (label: string) => string;
256
+ };
257
+ }
258
+ export declare const authProvenanceFlowsStrings: AuthProvenanceFlowsStrings;