zidane-ui 9.1.1 → 9.1.3
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/README.md +2 -0
- package/dist/adapters/index.js +1 -1
- package/dist/adapters/server-transcript-members.d.ts +1 -1
- package/dist/adapters/server-transcript-members.js +19 -1
- package/dist/app/ModalProvider.d.ts +3 -1
- package/dist/app/ModalProvider.js +15 -9
- package/dist/approvals/headless/index.js +1 -1
- package/dist/chat/HostTranscript.d.ts +3 -1
- package/dist/chat/HostTranscript.js +5 -3
- package/dist/chat/Transcript.js +1 -1
- package/dist/chat/composer/ComposerEditor.js +1 -1
- package/dist/chat/composer/index.js +1 -1
- package/dist/chat/composer/use-composer-stores.js +1 -1
- package/dist/chat/headless/block-runs.d.ts +57 -0
- package/dist/chat/headless/block-runs.js +123 -0
- package/dist/chat/headless/composer/index.js +2 -2
- package/dist/chat/headless/fixture-transcript.d.ts +6 -1
- package/dist/chat/headless/fixture-transcript.js +49 -0
- package/dist/chat/headless/host.d.ts +3 -0
- package/dist/chat/headless/index.d.ts +2 -1
- package/dist/chat/headless/index.js +12 -11
- package/dist/chat/headless/labels.d.ts +42 -0
- package/dist/chat/headless/labels.js +42 -0
- package/dist/chat/headless/session-list.d.ts +27 -0
- package/dist/chat/headless/sidebar/index.js +1 -1
- package/dist/chat/headless/sidebar/labels.d.ts +27 -0
- package/dist/chat/headless/streams/index.js +1 -1
- package/dist/chat/headless/streams/live-events.js +2 -1
- package/dist/chat/headless/streams/session-streams.js +2 -2
- package/dist/chat/headless/streams/store.js +2 -2
- package/dist/chat/headless/transcript/batch.d.ts +21 -1
- package/dist/chat/headless/transcript/batch.js +55 -10
- package/dist/chat/headless/transcript/collapse.js +18 -3
- package/dist/chat/headless/transcript/fold.js +26 -10
- package/dist/chat/headless/transcript/index.js +1 -1
- package/dist/chat/headless/transcript/rows.d.ts +7 -1
- package/dist/chat/index.d.ts +6 -1
- package/dist/chat/index.js +7 -2
- package/dist/chat/testing/contract.d.ts +6 -1
- package/dist/chat/testing/contract.js +30 -3
- package/dist/chat/transcript/AnsiText.d.ts +27 -0
- package/dist/chat/transcript/AnsiText.js +73 -0
- package/dist/chat/transcript/CodemodeScript.d.ts +33 -0
- package/dist/chat/transcript/CodemodeScript.js +212 -0
- package/dist/chat/transcript/LiveOutput.d.ts +21 -0
- package/dist/chat/transcript/LiveOutput.js +42 -0
- package/dist/chat/transcript/TranscriptRow.js +19 -2
- package/dist/chat/transcript/actions.d.ts +6 -0
- package/dist/chat/transcript/index.d.ts +6 -1
- package/dist/chat/transcript/index.js +6 -1
- package/dist/chat/transcript/markdown.js +9 -0
- package/dist/chat/transcript/renderers.d.ts +7 -0
- package/dist/chat/transcript/script-input.d.ts +17 -0
- package/dist/chat/transcript/script-input.js +16 -0
- package/dist/chat/transcript/shell-block-scope.d.ts +29 -0
- package/dist/chat/transcript/shell-block-scope.js +18 -0
- package/dist/chat/transcript/shell-block.d.ts +27 -0
- package/dist/chat/transcript/shell-block.js +306 -0
- package/dist/chat/transcript/tool-parts.d.ts +18 -6
- package/dist/chat/transcript/tool-parts.js +15 -5
- package/dist/chat/transcript/tool-payload.js +6 -3
- package/dist/chat/transcript/tool-row.js +155 -96
- package/dist/chat/transcript/user-bash.js +3 -2
- package/dist/code/HighlightedCode.js +3 -69
- package/dist/code/highlight-lines.d.ts +24 -0
- package/dist/code/highlight-lines.js +41 -0
- package/dist/code/use-highlighted-html.d.ts +5 -0
- package/dist/code/use-highlighted-html.js +75 -0
- package/dist/core.css +6 -2
- package/dist/dist/{index-CGbOWa7y.d.ts → index-WlE93Q6d.d.ts} +101 -3
- package/dist/extensions/ExtensionSettingsSidebar.js +19 -3
- package/dist/extensions/kit.d.ts +1 -1
- package/dist/git/BranchMenu.d.ts +1 -7
- package/dist/git/BranchMenu.js +17 -40
- package/dist/git/headless/labels.d.ts +0 -2
- package/dist/git/headless/labels.js +0 -2
- package/dist/index.d.ts +4 -3
- package/dist/index.js +2 -1
- package/dist/onboarding/index.js +1 -1
- package/dist/onboarding/steps/ConnectStep.js +1 -1
- package/dist/onboarding/steps/ExtensionsStep.js +1 -1
- package/dist/onboarding/steps/ReadyStep.js +1 -1
- package/dist/onboarding/steps/connect/ProviderPanel.js +1 -1
- package/dist/session/headless/index.js +2 -2
- package/dist/settings/SettingsShell.d.ts +3 -1
- package/dist/settings/SettingsShell.js +15 -8
- package/dist/settings/headless/catalog.js +5 -0
- package/dist/settings/headless/layout.js +2 -1
- package/dist/settings/headless/registry.d.ts +2 -0
- package/dist/settings/headless/search.d.ts +1 -1
- package/dist/settings/sections/environments/EnvironmentsSection.js +1 -1
- package/dist/settings/sections/extensions/ExtensionsSection.js +2 -2
- package/dist/settings/sections/models/ModelRows.js +1 -1
- package/dist/settings/sections/models/model-test.js +1 -1
- package/dist/styles.css +291 -2
- package/dist/terminal/TerminalProvider.d.ts +3 -1
- package/dist/terminal/TerminalProvider.js +5 -1
- package/dist/terminal/headless/store.d.ts +10 -0
- package/dist/terminal/headless/store.js +16 -0
- package/dist/terminal/index.d.ts +2 -2
- package/dist/terminal/index.js +2 -2
- package/dist/theme/runtime-icons.d.ts +50 -0
- package/dist/theme/runtime-icons.js +95 -0
- package/package.json +3 -6
- package/src/styles/primitives.css +5 -2
- package/src/styles/transcript.css +281 -0
- package/src/adapters/browser-appearance-host.ts +0 -51
- package/src/adapters/browser-keybindings-host.ts +0 -48
- package/src/adapters/browser-workspace-host.ts +0 -92
- package/src/adapters/closable-client.ts +0 -34
- package/src/adapters/extension-modules.ts +0 -360
- package/src/adapters/index.ts +0 -35
- package/src/adapters/live-events.ts +0 -6
- package/src/adapters/live.ts +0 -270
- package/src/adapters/run-host.ts +0 -238
- package/src/adapters/server-approvals-host.ts +0 -102
- package/src/adapters/server-client.ts +0 -15
- package/src/adapters/server-composer-host.ts +0 -459
- package/src/adapters/server-extensions-host.ts +0 -979
- package/src/adapters/server-files-host.ts +0 -287
- package/src/adapters/server-git-host.ts +0 -289
- package/src/adapters/server-host.ts +0 -489
- package/src/adapters/server-machines-host.ts +0 -283
- package/src/adapters/server-oauth-flow.ts +0 -133
- package/src/adapters/server-onboarding-host.ts +0 -363
- package/src/adapters/server-palette-host.ts +0 -134
- package/src/adapters/server-session-host.ts +0 -241
- package/src/adapters/server-settings-accounts.ts +0 -212
- package/src/adapters/server-settings-host.ts +0 -120
- package/src/adapters/server-settings-models.ts +0 -46
- package/src/adapters/server-settings-performance.ts +0 -58
- package/src/adapters/server-settings-sections.ts +0 -222
- package/src/adapters/server-sidebar-host.ts +0 -59
- package/src/adapters/server-terminal-host.ts +0 -124
- package/src/adapters/server-transcript-members.ts +0 -131
- package/src/adapters/sse-host.ts +0 -264
- package/src/adapters/sse-parser.ts +0 -82
- package/src/adapters/sse-protocol.ts +0 -118
- package/src/adapters/stream-pacer.ts +0 -122
- package/src/adapters/worker-host.ts +0 -192
- package/src/adapters/worker-protocol.ts +0 -97
- package/src/app/AppHostProvider.tsx +0 -135
- package/src/app/ModalProvider.tsx +0 -731
- package/src/app/headless/app-host.ts +0 -61
- package/src/app/headless/index.ts +0 -6
- package/src/app/headless/resource.ts +0 -444
- package/src/app/index.ts +0 -9
- package/src/app/testing/index.ts +0 -90
- package/src/app/useConfirm.tsx +0 -65
- package/src/app/useResource.ts +0 -30
- package/src/appearance/AppearanceProvider.tsx +0 -383
- package/src/appearance/apply.ts +0 -69
- package/src/appearance/headless/fixture-host.ts +0 -111
- package/src/appearance/headless/fonts.ts +0 -224
- package/src/appearance/headless/host.ts +0 -65
- package/src/appearance/headless/index.ts +0 -12
- package/src/appearance/headless/prefs.ts +0 -252
- package/src/appearance/headless/storage.ts +0 -127
- package/src/appearance/headless/zoom-commands.ts +0 -21
- package/src/appearance/index.ts +0 -11
- package/src/appearance/testing/contract.ts +0 -210
- package/src/appearance/testing/index.ts +0 -6
- package/src/approvals/ApprovalBar.tsx +0 -234
- package/src/approvals/ApprovalConcern.tsx +0 -33
- package/src/approvals/ApprovalShell.tsx +0 -69
- package/src/approvals/ApprovalsProvider.tsx +0 -110
- package/src/approvals/FileEditApproval.tsx +0 -310
- package/src/approvals/HunkPreviews.tsx +0 -225
- package/src/approvals/SafelistPanel.tsx +0 -149
- package/src/approvals/headless/fixture-host.ts +0 -73
- package/src/approvals/headless/fixtures.ts +0 -86
- package/src/approvals/headless/heads.ts +0 -81
- package/src/approvals/headless/host.ts +0 -80
- package/src/approvals/headless/index.ts +0 -12
- package/src/approvals/headless/labels.ts +0 -67
- package/src/approvals/headless/pending.ts +0 -91
- package/src/approvals/headless/preview.ts +0 -94
- package/src/approvals/headless/safelist.ts +0 -63
- package/src/approvals/index.ts +0 -13
- package/src/approvals/key-scope.ts +0 -33
- package/src/approvals/testing/contract.ts +0 -230
- package/src/approvals/testing/index.ts +0 -7
- package/src/brands/marks.ts +0 -298
- package/src/chat/ChatProvider.tsx +0 -60
- package/src/chat/DaemonOrb.tsx +0 -107
- package/src/chat/HostBadge.tsx +0 -71
- package/src/chat/HostStatusDot.tsx +0 -53
- package/src/chat/HostTranscript.tsx +0 -101
- package/src/chat/PdfPreview.tsx +0 -65
- package/src/chat/RunEstimateChip.tsx +0 -168
- package/src/chat/SessionFilterMenu.tsx +0 -397
- package/src/chat/SessionGroupHeader.tsx +0 -177
- package/src/chat/SessionHostHeader.tsx +0 -66
- package/src/chat/SessionList.tsx +0 -413
- package/src/chat/SessionListRow.tsx +0 -296
- package/src/chat/SessionStreamsProvider.tsx +0 -253
- package/src/chat/StatusDot.tsx +0 -128
- package/src/chat/TextPreview.tsx +0 -121
- package/src/chat/Throbber.tsx +0 -270
- package/src/chat/Transcript.tsx +0 -523
- package/src/chat/composer/AgentPicker.tsx +0 -155
- package/src/chat/composer/AgentPickerDialog.tsx +0 -99
- package/src/chat/composer/ApprovalDock.tsx +0 -64
- package/src/chat/composer/ArchivedBanner.tsx +0 -44
- package/src/chat/composer/AttachmentTiles.tsx +0 -211
- package/src/chat/composer/Composer.tsx +0 -500
- package/src/chat/composer/ComposerBadges.tsx +0 -339
- package/src/chat/composer/ComposerControls.tsx +0 -243
- package/src/chat/composer/ComposerEditor.tsx +0 -101
- package/src/chat/composer/ComposerHostProvider.tsx +0 -46
- package/src/chat/composer/ComposerShell.tsx +0 -129
- package/src/chat/composer/ContextBreakdown.tsx +0 -382
- package/src/chat/composer/ContextOrb.tsx +0 -176
- package/src/chat/composer/ConversationBadges.tsx +0 -168
- package/src/chat/composer/DockCard.tsx +0 -126
- package/src/chat/composer/EffortPickerDialog.tsx +0 -184
- package/src/chat/composer/HostComposer.tsx +0 -135
- package/src/chat/composer/HostContextOrb.tsx +0 -94
- package/src/chat/composer/HostModelChainList.tsx +0 -102
- package/src/chat/composer/HostPicker.tsx +0 -97
- package/src/chat/composer/HostPickers.tsx +0 -320
- package/src/chat/composer/ImageModelList.tsx +0 -151
- package/src/chat/composer/ModelChainList.tsx +0 -442
- package/src/chat/composer/ModelChainParts.tsx +0 -247
- package/src/chat/composer/ModelChainRow.tsx +0 -191
- package/src/chat/composer/ModelChainRows.tsx +0 -223
- package/src/chat/composer/ModelChainTooltip.tsx +0 -121
- package/src/chat/composer/ModelFacts.tsx +0 -204
- package/src/chat/composer/ModelOptionsPicker.tsx +0 -257
- package/src/chat/composer/ModelPicker.tsx +0 -513
- package/src/chat/composer/ModelPickerDialog.tsx +0 -99
- package/src/chat/composer/ModelProviderPills.tsx +0 -141
- package/src/chat/composer/PickerPill.tsx +0 -41
- package/src/chat/composer/ProjectMenu.tsx +0 -187
- package/src/chat/composer/PromptHistoryProvider.tsx +0 -214
- package/src/chat/composer/RetryPill.tsx +0 -47
- package/src/chat/composer/RunStatusChip.tsx +0 -150
- package/src/chat/composer/ScopeToggle.tsx +0 -94
- package/src/chat/composer/SelectTurnHint.tsx +0 -40
- package/src/chat/composer/SendButton.tsx +0 -89
- package/src/chat/composer/ServerScopeToggle.tsx +0 -188
- package/src/chat/composer/attachment-ingest.ts +0 -413
- package/src/chat/composer/attachments.tsx +0 -176
- package/src/chat/composer/badge-order.ts +0 -65
- package/src/chat/composer/composer-bus.ts +0 -317
- package/src/chat/composer/index.ts +0 -63
- package/src/chat/composer/load-composer-editor.ts +0 -25
- package/src/chat/composer/model-catalog.ts +0 -424
- package/src/chat/composer/model-list-layout.ts +0 -118
- package/src/chat/composer/prompt-history-nav.ts +0 -60
- package/src/chat/composer/scope-side.ts +0 -7
- package/src/chat/composer/suggestion-extension.ts +0 -113
- package/src/chat/composer/suggestions.tsx +0 -115
- package/src/chat/composer/use-agent-profiles.ts +0 -97
- package/src/chat/composer/use-cache-hints.ts +0 -93
- package/src/chat/composer/use-composer-stores.ts +0 -140
- package/src/chat/composer/use-draft-target.ts +0 -317
- package/src/chat/composer/use-new-session-defaults.ts +0 -201
- package/src/chat/composer/use-provider-ready-poll.ts +0 -35
- package/src/chat/composer/use-run-meter.ts +0 -140
- package/src/chat/composer/use-send-prompt.ts +0 -188
- package/src/chat/composer/use-session-meters.ts +0 -109
- package/src/chat/composer/use-sustained-work.ts +0 -74
- package/src/chat/composer/useAttachmentIngest.ts +0 -116
- package/src/chat/composer/useModelListSpy.ts +0 -19
- package/src/chat/headless/badge-refs.ts +0 -76
- package/src/chat/headless/chip-labels.ts +0 -40
- package/src/chat/headless/chip-settle.ts +0 -53
- package/src/chat/headless/chip-views.ts +0 -215
- package/src/chat/headless/composer/attachment-dedupe.ts +0 -50
- package/src/chat/headless/composer/commands.ts +0 -16
- package/src/chat/headless/composer/composer-sources.ts +0 -150
- package/src/chat/headless/composer/conversation-badges.ts +0 -227
- package/src/chat/headless/composer/draft-sync.ts +0 -199
- package/src/chat/headless/composer/editor-markdown.ts +0 -137
- package/src/chat/headless/composer/ghost-autocomplete.ts +0 -381
- package/src/chat/headless/composer/host-chrome.ts +0 -197
- package/src/chat/headless/composer/host.ts +0 -250
- package/src/chat/headless/composer/index.ts +0 -17
- package/src/chat/headless/composer/labels-chrome.ts +0 -83
- package/src/chat/headless/composer/labels-editor.ts +0 -44
- package/src/chat/headless/composer/labels.ts +0 -18
- package/src/chat/headless/composer/live-cost.ts +0 -67
- package/src/chat/headless/composer/model-knobs.ts +0 -179
- package/src/chat/headless/composer/model-names.ts +0 -145
- package/src/chat/headless/composer/model-picker-prefs.ts +0 -90
- package/src/chat/headless/composer/models.ts +0 -86
- package/src/chat/headless/composer/new-session-defaults.ts +0 -68
- package/src/chat/headless/composer/prompt-suggestions.ts +0 -72
- package/src/chat/headless/composer/remember-model-pick.ts +0 -132
- package/src/chat/headless/composer/run-meter.ts +0 -228
- package/src/chat/headless/composer-modes.ts +0 -170
- package/src/chat/headless/draft-scope.ts +0 -136
- package/src/chat/headless/draft-target.ts +0 -87
- package/src/chat/headless/extension-sources.ts +0 -64
- package/src/chat/headless/file-chip.ts +0 -175
- package/src/chat/headless/fixture-host.ts +0 -294
- package/src/chat/headless/fixture-transcript.ts +0 -125
- package/src/chat/headless/fixtures/demo-transcript-all-kinds.ts +0 -233
- package/src/chat/headless/fixtures/demo-transcript.ts +0 -244
- package/src/chat/headless/host.ts +0 -264
- package/src/chat/headless/hosts.ts +0 -55
- package/src/chat/headless/index.ts +0 -31
- package/src/chat/headless/labels.ts +0 -373
- package/src/chat/headless/markdown-chunks.ts +0 -134
- package/src/chat/headless/path-resolver.ts +0 -178
- package/src/chat/headless/prompt-origin.ts +0 -90
- package/src/chat/headless/reference-store.ts +0 -285
- package/src/chat/headless/send-flow.ts +0 -347
- package/src/chat/headless/session-list.ts +0 -400
- package/src/chat/headless/sidebar/activity.ts +0 -179
- package/src/chat/headless/sidebar/badges.ts +0 -190
- package/src/chat/headless/sidebar/compaction.ts +0 -98
- package/src/chat/headless/sidebar/directory.ts +0 -1046
- package/src/chat/headless/sidebar/dot-state.ts +0 -36
- package/src/chat/headless/sidebar/environment.ts +0 -70
- package/src/chat/headless/sidebar/estimates.ts +0 -146
- package/src/chat/headless/sidebar/host.ts +0 -41
- package/src/chat/headless/sidebar/index.ts +0 -18
- package/src/chat/headless/sidebar/labels.ts +0 -161
- package/src/chat/headless/sidebar/notifications.ts +0 -61
- package/src/chat/headless/sidebar/pinned-projects.ts +0 -51
- package/src/chat/headless/sidebar/pinned-sessions.ts +0 -27
- package/src/chat/headless/sidebar/project-icons.ts +0 -116
- package/src/chat/headless/sidebar/query.ts +0 -621
- package/src/chat/headless/sidebar/rows.ts +0 -427
- package/src/chat/headless/sidebar/types.ts +0 -96
- package/src/chat/headless/sidebar/view.ts +0 -367
- package/src/chat/headless/site-icons.ts +0 -51
- package/src/chat/headless/smooth-stream.ts +0 -76
- package/src/chat/headless/store.ts +0 -62
- package/src/chat/headless/streams/actions.ts +0 -85
- package/src/chat/headless/streams/index.ts +0 -25
- package/src/chat/headless/streams/live-events.ts +0 -124
- package/src/chat/headless/streams/merge.ts +0 -60
- package/src/chat/headless/streams/pacer.ts +0 -189
- package/src/chat/headless/streams/prompt-previews.ts +0 -64
- package/src/chat/headless/streams/scheduler.ts +0 -36
- package/src/chat/headless/streams/selectors.ts +0 -76
- package/src/chat/headless/streams/session-streams.ts +0 -407
- package/src/chat/headless/streams/store.ts +0 -1107
- package/src/chat/headless/streams/transcript.ts +0 -41
- package/src/chat/headless/streams/types.ts +0 -84
- package/src/chat/headless/transcript/batch.ts +0 -429
- package/src/chat/headless/transcript/collapse.ts +0 -789
- package/src/chat/headless/transcript/fold-actions.ts +0 -269
- package/src/chat/headless/transcript/fold-attachments.ts +0 -78
- package/src/chat/headless/transcript/fold.ts +0 -382
- package/src/chat/headless/transcript/index.ts +0 -41
- package/src/chat/headless/transcript/nesting.ts +0 -73
- package/src/chat/headless/transcript/pairing.ts +0 -124
- package/src/chat/headless/transcript/rows.ts +0 -377
- package/src/chat/headless/transcript/run-failures.ts +0 -72
- package/src/chat/headless/transcript/select-stops.ts +0 -151
- package/src/chat/headless/transcript/tool-media.ts +0 -42
- package/src/chat/headless/transcript-host.ts +0 -180
- package/src/chat/headless/transcript-labels.ts +0 -12
- package/src/chat/headless/turn-labels.ts +0 -28
- package/src/chat/headless/turn-prompt.ts +0 -32
- package/src/chat/index.ts +0 -31
- package/src/chat/interactions/HostInteractions.tsx +0 -76
- package/src/chat/interactions/InboxPanel.tsx +0 -226
- package/src/chat/interactions/InteractionCard.tsx +0 -111
- package/src/chat/interactions/PlanCard.tsx +0 -186
- package/src/chat/interactions/QuestionField.tsx +0 -336
- package/src/chat/interactions/QuestionForm.tsx +0 -283
- package/src/chat/interactions/card-ui.tsx +0 -86
- package/src/chat/interactions/hooks.ts +0 -49
- package/src/chat/interactions/index.ts +0 -8
- package/src/chat/provider-color.ts +0 -71
- package/src/chat/rich-composer/MentionList.tsx +0 -238
- package/src/chat/rich-composer/RichComposer.tsx +0 -1071
- package/src/chat/rich-composer/badge-decorations.ts +0 -157
- package/src/chat/rich-composer/composer-controls.tsx +0 -102
- package/src/chat/rich-composer/composer-extensions.ts +0 -388
- package/src/chat/rich-composer/composer-keys.ts +0 -416
- package/src/chat/rich-composer/ghost-plugin.ts +0 -89
- package/src/chat/rich-composer/index.ts +0 -3
- package/src/chat/rich-composer/mention-popover.ts +0 -336
- package/src/chat/rich-composer/slash-completion.ts +0 -143
- package/src/chat/rich-composer/use-composer-bus.ts +0 -57
- package/src/chat/rich-composer/use-composer-editor.ts +0 -216
- package/src/chat/rich-composer/use-composer-sources.ts +0 -90
- package/src/chat/rich-composer/use-draft-mirror.ts +0 -398
- package/src/chat/rich-composer/use-editor-handover.ts +0 -45
- package/src/chat/rich-composer/use-extension-composer.ts +0 -80
- package/src/chat/rich-composer/use-ghost-lifecycle.ts +0 -265
- package/src/chat/rich-composer/use-prompt-ghost.ts +0 -90
- package/src/chat/rich-composer/use-staged-attachments.ts +0 -65
- package/src/chat/sidebar/MainSessionRow.tsx +0 -102
- package/src/chat/sidebar/ProjectIcon.tsx +0 -399
- package/src/chat/sidebar/RowChips.tsx +0 -98
- package/src/chat/sidebar/SessionSidebar.tsx +0 -1039
- package/src/chat/sidebar/SidebarDecoration.tsx +0 -93
- package/src/chat/sidebar/SidebarFilterMenu.tsx +0 -270
- package/src/chat/sidebar/SidebarFooter.tsx +0 -244
- package/src/chat/sidebar/SidebarFrame.tsx +0 -154
- package/src/chat/sidebar/SidebarGroupHeader.tsx +0 -263
- package/src/chat/sidebar/SidebarHostProvider.tsx +0 -51
- package/src/chat/sidebar/SidebarRowView.tsx +0 -151
- package/src/chat/sidebar/SidebarSearchRow.tsx +0 -66
- package/src/chat/sidebar/SidebarSessionRow.tsx +0 -317
- package/src/chat/sidebar/SidebarToggleButton.tsx +0 -48
- package/src/chat/sidebar/SpaceSwitcher.tsx +0 -341
- package/src/chat/sidebar/SpacesSection.tsx +0 -259
- package/src/chat/sidebar/collapsed.ts +0 -61
- package/src/chat/sidebar/index.ts +0 -109
- package/src/chat/sidebar/session-menu.ts +0 -441
- package/src/chat/sidebar/sidebar-focus-hold.ts +0 -56
- package/src/chat/sidebar/sidebar-live.tsx +0 -666
- package/src/chat/sidebar/use-main-session.ts +0 -32
- package/src/chat/sidebar/useAgentNames.ts +0 -12
- package/src/chat/sidebar/useCompactionProgress.ts +0 -24
- package/src/chat/sidebar/usePinnedProjects.ts +0 -36
- package/src/chat/sidebar/useSaveViewAsSpace.ts +0 -42
- package/src/chat/sidebar/useSessionActivity.ts +0 -24
- package/src/chat/sidebar/useSessionBadges.ts +0 -26
- package/src/chat/sidebar/useSessionDirectoryView.ts +0 -128
- package/src/chat/sidebar/useSessionSearch.ts +0 -94
- package/src/chat/sidebar/useSidebarKeyboardNav.ts +0 -167
- package/src/chat/sidebar/useSidebarLabels.ts +0 -10
- package/src/chat/testing/composer.contract.ts +0 -508
- package/src/chat/testing/contract.ts +0 -634
- package/src/chat/testing/fixture-composer-chrome.ts +0 -159
- package/src/chat/testing/fixture-composer-host.ts +0 -147
- package/src/chat/testing/fixture-sidebar-host.ts +0 -99
- package/src/chat/testing/index.ts +0 -12
- package/src/chat/testing/sidebar.contract.ts +0 -196
- package/src/chat/transcript/BadgeMenu.tsx +0 -241
- package/src/chat/transcript/CardMarkdown.tsx +0 -102
- package/src/chat/transcript/ChipCard.tsx +0 -187
- package/src/chat/transcript/ChipCards.tsx +0 -100
- package/src/chat/transcript/DiffLines.tsx +0 -122
- package/src/chat/transcript/EarlierHistory.tsx +0 -136
- package/src/chat/transcript/EditDiffBlock.tsx +0 -176
- package/src/chat/transcript/FileChip.tsx +0 -361
- package/src/chat/transcript/ImageGenerationBlock.tsx +0 -239
- package/src/chat/transcript/InlineChipText.tsx +0 -57
- package/src/chat/transcript/InteractionToolBody.tsx +0 -211
- package/src/chat/transcript/LazyRow.tsx +0 -311
- package/src/chat/transcript/MermaidDiagram.tsx +0 -484
- package/src/chat/transcript/PromptEcho.tsx +0 -171
- package/src/chat/transcript/PromptOriginLabel.tsx +0 -44
- package/src/chat/transcript/ProseMarkdown.tsx +0 -168
- package/src/chat/transcript/ReferenceText.tsx +0 -198
- package/src/chat/transcript/SelectCursor.tsx +0 -118
- package/src/chat/transcript/SelectTurnHint.tsx +0 -81
- package/src/chat/transcript/SelectTurnProvider.tsx +0 -150
- package/src/chat/transcript/SubagentBlock.tsx +0 -224
- package/src/chat/transcript/TranscriptRow.tsx +0 -362
- package/src/chat/transcript/TranscriptSearch.tsx +0 -171
- package/src/chat/transcript/TurnMenu.tsx +0 -217
- package/src/chat/transcript/actions.tsx +0 -77
- package/src/chat/transcript/badges.tsx +0 -155
- package/src/chat/transcript/chip-details.ts +0 -169
- package/src/chat/transcript/chip-resolve.ts +0 -56
- package/src/chat/transcript/extension-renderers.tsx +0 -148
- package/src/chat/transcript/fold-attachments.tsx +0 -221
- package/src/chat/transcript/fold-status.tsx +0 -112
- package/src/chat/transcript/fold-worker.tsx +0 -160
- package/src/chat/transcript/fold.tsx +0 -522
- package/src/chat/transcript/frame.tsx +0 -326
- package/src/chat/transcript/index.ts +0 -66
- package/src/chat/transcript/markdown-cache.ts +0 -84
- package/src/chat/transcript/markdown-context.ts +0 -52
- package/src/chat/transcript/markdown.tsx +0 -351
- package/src/chat/transcript/messages.tsx +0 -169
- package/src/chat/transcript/notices.tsx +0 -508
- package/src/chat/transcript/prompt-lines.tsx +0 -55
- package/src/chat/transcript/prompt.tsx +0 -258
- package/src/chat/transcript/prose.tsx +0 -171
- package/src/chat/transcript/recent-map.ts +0 -32
- package/src/chat/transcript/references.ts +0 -108
- package/src/chat/transcript/remark-references.ts +0 -157
- package/src/chat/transcript/remark-refs.ts +0 -176
- package/src/chat/transcript/renderer-slots.tsx +0 -35
- package/src/chat/transcript/renderers.tsx +0 -251
- package/src/chat/transcript/row-estimate.ts +0 -158
- package/src/chat/transcript/run-rows.tsx +0 -291
- package/src/chat/transcript/site-icons.ts +0 -27
- package/src/chat/transcript/thumbnails.ts +0 -146
- package/src/chat/transcript/tool-batch.tsx +0 -102
- package/src/chat/transcript/tool-details.tsx +0 -31
- package/src/chat/transcript/tool-media.tsx +0 -132
- package/src/chat/transcript/tool-parts.tsx +0 -358
- package/src/chat/transcript/tool-payload.tsx +0 -76
- package/src/chat/transcript/tool-row.tsx +0 -496
- package/src/chat/transcript/turn-commands.ts +0 -101
- package/src/chat/transcript/use-transcript-rows.ts +0 -195
- package/src/chat/transcript/useComposerSearch.ts +0 -106
- package/src/chat/transcript/useSelectTurnKeys.ts +0 -204
- package/src/chat/transcript/useSettledReveal.ts +0 -57
- package/src/chat/transcript/useStickToBottom.ts +0 -600
- package/src/chat/transcript/useTranscriptFind.ts +0 -70
- package/src/chat/transcript/useTranscriptFindKey.ts +0 -52
- package/src/chat/transcript/useTranscriptScroll.ts +0 -163
- package/src/chat/transcript/useTranscriptSearch.tsx +0 -382
- package/src/chat/transcript/useTranscriptSelectionCopy.ts +0 -63
- package/src/chat/transcript/useWheelHoverPause.ts +0 -79
- package/src/chat/transcript/user-bash.tsx +0 -134
- package/src/chat/transcript-options.ts +0 -51
- package/src/chat/useChatLabels.ts +0 -14
- package/src/code/CodeHighlightProvider.tsx +0 -87
- package/src/code/HighlightedCode.tsx +0 -156
- package/src/code/code-themes.ts +0 -187
- package/src/code/editor/CodeCompletion.tsx +0 -719
- package/src/code/editor/CodeEditor.tsx +0 -480
- package/src/code/editor/CodeHover.tsx +0 -429
- package/src/code/editor/DiagnosticAnnotation.tsx +0 -73
- package/src/code/editor/DiagnosticsChip.tsx +0 -85
- package/src/code/editor/DiffView.tsx +0 -197
- package/src/code/editor/EditorColumn.tsx +0 -256
- package/src/code/editor/FileIcon.tsx +0 -89
- package/src/code/editor/FileTabPill.tsx +0 -101
- package/src/code/editor/FileTree.tsx +0 -414
- package/src/code/editor/FileView.tsx +0 -462
- package/src/code/editor/HighlightWorkers.tsx +0 -84
- package/src/code/editor/LanguageEditor.tsx +0 -210
- package/src/code/editor/_vendor/tree-icon-colors.ts +0 -72
- package/src/code/editor/diagnostics.ts +0 -140
- package/src/code/editor/edit-session.ts +0 -32
- package/src/code/editor/environment.tsx +0 -88
- package/src/code/editor/find/FindBar.tsx +0 -126
- package/src/code/editor/find/find-highlight.ts +0 -138
- package/src/code/editor/find/find-model.ts +0 -123
- package/src/code/editor/find/settle-scroll.ts +0 -77
- package/src/code/editor/find/useFind.ts +0 -203
- package/src/code/editor/fs-adapter.ts +0 -37
- package/src/code/editor/index.ts +0 -36
- package/src/code/editor/language.ts +0 -31
- package/src/code/editor/patch-parse.ts +0 -176
- package/src/code/editor/patch-parse.worker.ts +0 -12
- package/src/code/editor/pierre-theme.ts +0 -155
- package/src/code/editor/prime-diff.ts +0 -37
- package/src/code/editor/reveal.ts +0 -58
- package/src/code/editor/scroll-reach.ts +0 -28
- package/src/code/editor/useCodeDocument.ts +0 -226
- package/src/code/editor/useDefinition.ts +0 -159
- package/src/code/editor/useDetachCleanup.ts +0 -36
- package/src/code/editor/useFileDocument.ts +0 -87
- package/src/code/editor/useRevealLine.ts +0 -92
- package/src/code/editor/word-at.ts +0 -145
- package/src/code/highlight.worker.ts +0 -16
- package/src/code/highlighter.ts +0 -181
- package/src/code/highlights.ts +0 -51
- package/src/code/mermaid-lexer.ts +0 -331
- package/src/code/shiki-theme.ts +0 -46
- package/src/components/BrandMark.tsx +0 -118
- package/src/components/Breadcrumb.tsx +0 -105
- package/src/components/BrowserChrome.tsx +0 -189
- package/src/components/BrowserSignIn.tsx +0 -210
- package/src/components/ChoiceCards.tsx +0 -170
- package/src/components/CodeFrame.tsx +0 -225
- package/src/components/ConfirmDialog.tsx +0 -119
- package/src/components/CopyButton.tsx +0 -85
- package/src/components/EditableTitle.tsx +0 -199
- package/src/components/ErrorBoundary.tsx +0 -208
- package/src/components/Form.tsx +0 -593
- package/src/components/Highlighted.tsx +0 -68
- package/src/components/HowItWorks.tsx +0 -123
- package/src/components/IconButton.tsx +0 -101
- package/src/components/IconToggle.tsx +0 -71
- package/src/components/Keycap.tsx +0 -334
- package/src/components/Lightbox.tsx +0 -257
- package/src/components/LoadError.tsx +0 -45
- package/src/components/MediaNav.tsx +0 -85
- package/src/components/Menu.tsx +0 -435
- package/src/components/Overlay.tsx +0 -327
- package/src/components/PanelEmpty.tsx +0 -80
- package/src/components/PanelRows.tsx +0 -107
- package/src/components/PreviewWindow.tsx +0 -53
- package/src/components/ReorderTabs.tsx +0 -103
- package/src/components/RowActionsMenu.tsx +0 -383
- package/src/components/SegmentSpinner.tsx +0 -88
- package/src/components/Segmented.tsx +0 -126
- package/src/components/StepFrame.tsx +0 -151
- package/src/components/Stepper.tsx +0 -157
- package/src/components/Surface.tsx +0 -191
- package/src/components/SwatchPicker.tsx +0 -147
- package/src/components/SwitchGlyph.tsx +0 -56
- package/src/components/TabPill.tsx +0 -188
- package/src/components/ThemeThumb.tsx +0 -52
- package/src/components/ToggleCard.tsx +0 -120
- package/src/components/Tooltip.tsx +0 -288
- package/src/components/ZoomableImage.tsx +0 -322
- package/src/components/button.ts +0 -120
- package/src/components/floating/FloatingSurface.tsx +0 -158
- package/src/components/floating/HoverCard.tsx +0 -143
- package/src/components/floating/Popover.tsx +0 -166
- package/src/components/floating/useAnchoredPosition.ts +0 -186
- package/src/components/floating/usePopover.ts +0 -158
- package/src/components/image-clipboard.ts +0 -70
- package/src/components/keyboard-layout.ts +0 -115
- package/src/components/palette/PaletteList.tsx +0 -432
- package/src/components/palette/PalettePanel.tsx +0 -338
- package/src/components/palette/palette-layout.ts +0 -86
- package/src/components/report-error.ts +0 -142
- package/src/components/zoom.ts +0 -133
- package/src/extensions/ExtensionComponent.tsx +0 -167
- package/src/extensions/ExtensionDialogHost.tsx +0 -445
- package/src/extensions/ExtensionRenderer.tsx +0 -100
- package/src/extensions/ExtensionScreen.tsx +0 -122
- package/src/extensions/ExtensionSettingsPage.tsx +0 -112
- package/src/extensions/ExtensionSettingsPages.tsx +0 -44
- package/src/extensions/ExtensionSettingsSidebar.tsx +0 -373
- package/src/extensions/ExtensionSlot.tsx +0 -213
- package/src/extensions/ExtensionWebview.tsx +0 -104
- package/src/extensions/ExtensionsProvider.tsx +0 -124
- package/src/extensions/SettingsWireForm.tsx +0 -182
- package/src/extensions/headless/dialog-queue.ts +0 -92
- package/src/extensions/headless/effect-channel.ts +0 -50
- package/src/extensions/headless/effect-router.ts +0 -107
- package/src/extensions/headless/fixture-host.ts +0 -381
- package/src/extensions/headless/host.ts +0 -398
- package/src/extensions/headless/index.ts +0 -17
- package/src/extensions/headless/labels.ts +0 -64
- package/src/extensions/headless/links.ts +0 -56
- package/src/extensions/headless/select.ts +0 -249
- package/src/extensions/headless/webview-bridge.ts +0 -127
- package/src/extensions/headless/wire.ts +0 -175
- package/src/extensions/hooks.ts +0 -209
- package/src/extensions/index.ts +0 -25
- package/src/extensions/kit.ts +0 -79
- package/src/extensions/links.tsx +0 -165
- package/src/extensions/testing/contract.ts +0 -382
- package/src/extensions/testing/index.ts +0 -6
- package/src/extensions/useExtensionsLabels.ts +0 -14
- package/src/files/CodeViewer.tsx +0 -289
- package/src/files/DiffFileViewer.tsx +0 -143
- package/src/files/DiffsTab.tsx +0 -581
- package/src/files/EditorColumn.tsx +0 -453
- package/src/files/EditorEnvironmentRoot.tsx +0 -63
- package/src/files/FilesDiagnosticsChip.tsx +0 -32
- package/src/files/FilesProvider.tsx +0 -58
- package/src/files/FilesTab.tsx +0 -441
- package/src/files/MediaDiff.tsx +0 -61
- package/src/files/MediaView.tsx +0 -170
- package/src/files/ReviewDraft.tsx +0 -88
- package/src/files/ReviewableDiff.tsx +0 -72
- package/src/files/SearchPanel.tsx +0 -325
- package/src/files/TreeColumn.tsx +0 -229
- package/src/files/code-excerpt.ts +0 -265
- package/src/files/code-menu.ts +0 -53
- package/src/files/drafts-store.ts +0 -192
- package/src/files/file-actions.ts +0 -152
- package/src/files/headless/editor-prefs.ts +0 -230
- package/src/files/headless/entries.ts +0 -172
- package/src/files/headless/fixture-host.ts +0 -260
- package/src/files/headless/host.ts +0 -387
- package/src/files/headless/index.ts +0 -14
- package/src/files/headless/labels.ts +0 -123
- package/src/files/headless/lsp-edits.ts +0 -58
- package/src/files/headless/media.ts +0 -57
- package/src/files/headless/name-match.ts +0 -38
- package/src/files/headless/search.ts +0 -23
- package/src/files/headless/view.ts +0 -114
- package/src/files/headless/workspace-diff.ts +0 -82
- package/src/files/index.ts +0 -25
- package/src/files/lazy-tabs.tsx +0 -41
- package/src/files/session-patch.ts +0 -45
- package/src/files/tab-hooks.ts +0 -37
- package/src/files/testing/contract.ts +0 -279
- package/src/files/testing/demo.ts +0 -36
- package/src/files/testing/index.ts +0 -7
- package/src/files/useCodeReview.tsx +0 -177
- package/src/files/useDiagnostics.ts +0 -59
- package/src/files/useDiagnosticsRun.ts +0 -86
- package/src/files/useEntryActions.ts +0 -280
- package/src/files/useFilesDiagnostics.ts +0 -51
- package/src/files/useFilesLabels.ts +0 -14
- package/src/files/useFolderChanges.ts +0 -38
- package/src/files/useLsp.ts +0 -181
- package/src/files/useOpenFiles.ts +0 -402
- package/src/files/useWorkspace.ts +0 -148
- package/src/files/working-tree-diff.ts +0 -142
- package/src/git/BranchMenu.tsx +0 -988
- package/src/git/GitBar.tsx +0 -297
- package/src/git/GitProvider.tsx +0 -50
- package/src/git/ImportRepoDialog.tsx +0 -390
- package/src/git/MoveSessionDialog.tsx +0 -396
- package/src/git/RemoteFolderPicker.tsx +0 -475
- package/src/git/SyncChip.tsx +0 -275
- package/src/git/WherePicker.tsx +0 -358
- package/src/git/headless/environment.ts +0 -132
- package/src/git/headless/host.ts +0 -353
- package/src/git/headless/index.ts +0 -14
- package/src/git/headless/labels.ts +0 -230
- package/src/git/headless/move.ts +0 -101
- package/src/git/headless/remote-clone.ts +0 -44
- package/src/git/headless/status-reads.ts +0 -77
- package/src/git/headless/switcher.ts +0 -215
- package/src/git/headless/sync.ts +0 -71
- package/src/git/index.ts +0 -17
- package/src/git/testing/contract.ts +0 -551
- package/src/git/testing/index.ts +0 -537
- package/src/git/useEnvironmentChoices.ts +0 -50
- package/src/git/useGitBar.ts +0 -180
- package/src/hooks/keyed-store.ts +0 -65
- package/src/hooks/useDisplayPath.tsx +0 -93
- package/src/hooks/useHydrated.ts +0 -16
- package/src/hooks/useMinuteTick.ts +0 -49
- package/src/hooks/useNearViewport.ts +0 -111
- package/src/hooks/usePersistedState.ts +0 -98
- package/src/hooks/useResizeDrag.ts +0 -240
- package/src/hooks/useTabDrag.ts +0 -88
- package/src/index.ts +0 -119
- package/src/keybindings/KeyCommands.tsx +0 -123
- package/src/keybindings/KeyHint.tsx +0 -78
- package/src/keybindings/KeybindingsProvider.tsx +0 -231
- package/src/keybindings/headless/catalog.ts +0 -360
- package/src/keybindings/headless/commands.ts +0 -77
- package/src/keybindings/headless/fixture-host.ts +0 -51
- package/src/keybindings/headless/host.ts +0 -29
- package/src/keybindings/headless/index.ts +0 -13
- package/src/keybindings/headless/key-scope.ts +0 -91
- package/src/keybindings/headless/labels.ts +0 -14
- package/src/keybindings/headless/overrides.ts +0 -64
- package/src/keybindings/index.ts +0 -15
- package/src/keybindings/load-once.ts +0 -11
- package/src/keybindings/match.ts +0 -48
- package/src/keybindings/press.ts +0 -80
- package/src/keybindings/testing/contract.ts +0 -139
- package/src/keybindings/testing/index.ts +0 -6
- package/src/keybindings/useHelpKey.ts +0 -35
- package/src/keybindings/useKeybindingsLabels.ts +0 -14
- package/src/labels.tsx +0 -175
- package/src/machines/AddServerForm.tsx +0 -151
- package/src/machines/Banners.tsx +0 -172
- package/src/machines/DaemonMenu.tsx +0 -413
- package/src/machines/HostCapabilities.tsx +0 -245
- package/src/machines/HostSignIn.tsx +0 -63
- package/src/machines/HostSyncPanel.tsx +0 -275
- package/src/machines/HostsSection.tsx +0 -312
- package/src/machines/MachinesProvider.tsx +0 -164
- package/src/machines/ServerCard.tsx +0 -347
- package/src/machines/ServerMachinesPanel.tsx +0 -547
- package/src/machines/ServerUpdatePanel.tsx +0 -160
- package/src/machines/SyncAccounts.tsx +0 -148
- package/src/machines/SyncMarker.tsx +0 -87
- package/src/machines/SyncOutcomeBadge.tsx +0 -84
- package/src/machines/TokensPanel.tsx +0 -249
- package/src/machines/headless/fixture-host.ts +0 -519
- package/src/machines/headless/fixtures.ts +0 -164
- package/src/machines/headless/host.ts +0 -381
- package/src/machines/headless/index.ts +0 -13
- package/src/machines/headless/labels.ts +0 -364
- package/src/machines/headless/messages.ts +0 -209
- package/src/machines/headless/presence.ts +0 -110
- package/src/machines/headless/settings-focus.ts +0 -25
- package/src/machines/headless/stores.ts +0 -137
- package/src/machines/headless/sync.ts +0 -207
- package/src/machines/index.ts +0 -29
- package/src/machines/settings-section.tsx +0 -37
- package/src/machines/testing/contract.ts +0 -617
- package/src/machines/testing/index.ts +0 -7
- package/src/machines/testing/sync.contract.ts +0 -260
- package/src/motion/SwapIcon.tsx +0 -29
- package/src/motion/collapse.ts +0 -21
- package/src/motion/grow.tsx +0 -86
- package/src/motion/layout-animating.ts +0 -50
- package/src/motion/presence.ts +0 -191
- package/src/motion/provider.tsx +0 -63
- package/src/motion/reduced.ts +0 -36
- package/src/motion/roll.tsx +0 -131
- package/src/motion/shimmer.ts +0 -15
- package/src/motion/size.tsx +0 -192
- package/src/motion/springs.ts +0 -413
- package/src/motion/swap.tsx +0 -216
- package/src/motion/title-text.tsx +0 -74
- package/src/onboarding/ConnectProviderCard.tsx +0 -49
- package/src/onboarding/OnboardingFlow.tsx +0 -176
- package/src/onboarding/OnboardingProvider.tsx +0 -209
- package/src/onboarding/OnboardingStepFrame.tsx +0 -80
- package/src/onboarding/conversation.tsx +0 -196
- package/src/onboarding/demos/autonomy.tsx +0 -154
- package/src/onboarding/demos/extensions.tsx +0 -183
- package/src/onboarding/demos/features.tsx +0 -488
- package/src/onboarding/demos/how-it-works.tsx +0 -698
- package/src/onboarding/demos/index.ts +0 -11
- package/src/onboarding/demos/parts.tsx +0 -133
- package/src/onboarding/demos/tour.tsx +0 -217
- package/src/onboarding/headless/controller.ts +0 -110
- package/src/onboarding/headless/fixture-host.ts +0 -269
- package/src/onboarding/headless/fixtures.ts +0 -486
- package/src/onboarding/headless/host.ts +0 -176
- package/src/onboarding/headless/index.ts +0 -8
- package/src/onboarding/headless/labels.ts +0 -282
- package/src/onboarding/index.ts +0 -21
- package/src/onboarding/marks.tsx +0 -107
- package/src/onboarding/preview-attachments.ts +0 -39
- package/src/onboarding/skills/SkillSourceBrowser.tsx +0 -128
- package/src/onboarding/skills/parts.tsx +0 -464
- package/src/onboarding/sources/SourceBrowser.tsx +0 -400
- package/src/onboarding/steps/AutonomyStep.tsx +0 -128
- package/src/onboarding/steps/ConnectStep.tsx +0 -104
- package/src/onboarding/steps/ConnectorsStep.tsx +0 -222
- package/src/onboarding/steps/ConversationStep.tsx +0 -132
- package/src/onboarding/steps/ExtensionsStep.tsx +0 -113
- package/src/onboarding/steps/FeatureExample.tsx +0 -46
- package/src/onboarding/steps/FeaturesStep.tsx +0 -88
- package/src/onboarding/steps/ImportStep.tsx +0 -156
- package/src/onboarding/steps/LookStep.tsx +0 -276
- package/src/onboarding/steps/ReadyStep.tsx +0 -278
- package/src/onboarding/steps/SkillsStep.tsx +0 -45
- package/src/onboarding/steps/StepSection.tsx +0 -63
- package/src/onboarding/steps/Tradeoff.tsx +0 -45
- package/src/onboarding/steps/WelcomeStep.tsx +0 -147
- package/src/onboarding/steps/connect/KeyForm.tsx +0 -112
- package/src/onboarding/steps/connect/ProviderPanel.tsx +0 -149
- package/src/onboarding/steps/connect/ProviderReady.tsx +0 -171
- package/src/onboarding/steps/connect/ready-text.ts +0 -17
- package/src/onboarding/steps/index.ts +0 -12
- package/src/onboarding/steps/tasks.tsx +0 -84
- package/src/onboarding/testing/contract.ts +0 -472
- package/src/onboarding/testing/index.ts +0 -7
- package/src/onboarding/tutorials.tsx +0 -45
- package/src/onboarding/useSignIn.ts +0 -58
- package/src/palette/CommandPalette.tsx +0 -59
- package/src/palette/PaletteDialog.tsx +0 -186
- package/src/palette/PaletteProvider.tsx +0 -149
- package/src/palette/PaletteRows.tsx +0 -208
- package/src/palette/app-sources.ts +0 -62
- package/src/palette/headless/app-sources.ts +0 -515
- package/src/palette/headless/gather.ts +0 -50
- package/src/palette/headless/host.ts +0 -129
- package/src/palette/headless/index.ts +0 -15
- package/src/palette/headless/labels.ts +0 -124
- package/src/palette/headless/rank-protocol.ts +0 -23
- package/src/palette/headless/recents.ts +0 -35
- package/src/palette/headless/session-sources.ts +0 -218
- package/src/palette/headless/sources.ts +0 -313
- package/src/palette/headless/store.ts +0 -105
- package/src/palette/index.ts +0 -17
- package/src/palette/rank.worker.ts +0 -30
- package/src/palette/setup.ts +0 -19
- package/src/palette/testing/contract.ts +0 -250
- package/src/palette/testing/index.ts +0 -152
- package/src/palette/useConversationSearch.ts +0 -115
- package/src/palette/usePaletteController.ts +0 -229
- package/src/palette/useRankedItems.ts +0 -122
- package/src/path.ts +0 -199
- package/src/server/demo-tools.ts +0 -34
- package/src/server/environment.ts +0 -118
- package/src/server/index.ts +0 -7
- package/src/server/scripted-provider.ts +0 -174
- package/src/server/sse-handler.ts +0 -457
- package/src/server/testing/index.ts +0 -7
- package/src/session/ArtifactRowChips.tsx +0 -260
- package/src/session/ArtifactsPanel.tsx +0 -426
- package/src/session/DiffFileTree.tsx +0 -173
- package/src/session/PanelAttention.tsx +0 -131
- package/src/session/ProjectHome.tsx +0 -733
- package/src/session/ProviderUsageProvider.tsx +0 -113
- package/src/session/QueueTab.tsx +0 -669
- package/src/session/RunningWorkDialog.tsx +0 -178
- package/src/session/SessionCacheFacts.tsx +0 -190
- package/src/session/SessionDetailsDialog.tsx +0 -627
- package/src/session/SessionHeader.tsx +0 -242
- package/src/session/SessionProvider.tsx +0 -98
- package/src/session/SessionShell.tsx +0 -77
- package/src/session/SideChat.tsx +0 -320
- package/src/session/TodoList.tsx +0 -123
- package/src/session/TodosPanel.tsx +0 -279
- package/src/session/TurnDetailsDialog.tsx +0 -299
- package/src/session/UsagePanel.tsx +0 -358
- package/src/session/WelcomeScreen.tsx +0 -88
- package/src/session/headless/artifacts.ts +0 -101
- package/src/session/headless/diff-tree.ts +0 -167
- package/src/session/headless/fixture-host.ts +0 -362
- package/src/session/headless/home-layout.ts +0 -276
- package/src/session/headless/host.ts +0 -263
- package/src/session/headless/index.ts +0 -23
- package/src/session/headless/keyed.ts +0 -72
- package/src/session/headless/labels.ts +0 -337
- package/src/session/headless/queue-attachments.ts +0 -73
- package/src/session/headless/queue.ts +0 -122
- package/src/session/headless/running-work.ts +0 -85
- package/src/session/headless/session-actions.ts +0 -198
- package/src/session/headless/session-diffs.ts +0 -136
- package/src/session/headless/side.ts +0 -63
- package/src/session/headless/todos.ts +0 -62
- package/src/session/headless/usage-format.ts +0 -19
- package/src/session/headless/usage.ts +0 -407
- package/src/session/index.ts +0 -31
- package/src/session/modal-shell.tsx +0 -24
- package/src/session/testing/contract.ts +0 -588
- package/src/session/testing/demo.ts +0 -224
- package/src/session/testing/index.ts +0 -7
- package/src/session/useSessionLabels.ts +0 -14
- package/src/session/useUsageSummary.ts +0 -82
- package/src/settings/SettingsHeadingText.tsx +0 -54
- package/src/settings/SettingsHostSwitcher.tsx +0 -93
- package/src/settings/SettingsNav.tsx +0 -198
- package/src/settings/SettingsProvider.tsx +0 -127
- package/src/settings/SettingsRowsPage.tsx +0 -218
- package/src/settings/SettingsShell.tsx +0 -337
- package/src/settings/SettingsTutorial.tsx +0 -55
- package/src/settings/headless/catalog.ts +0 -570
- package/src/settings/headless/claude-import.ts +0 -61
- package/src/settings/headless/enabled.ts +0 -44
- package/src/settings/headless/fixture-accounts.ts +0 -260
- package/src/settings/headless/fixture-host.ts +0 -162
- package/src/settings/headless/fixture-models.ts +0 -51
- package/src/settings/headless/fixture-performance.ts +0 -350
- package/src/settings/headless/fixture-sections.ts +0 -391
- package/src/settings/headless/host.ts +0 -127
- package/src/settings/headless/index.ts +0 -22
- package/src/settings/headless/labels.ts +0 -63
- package/src/settings/headless/layout-sections.ts +0 -41
- package/src/settings/headless/layout.ts +0 -732
- package/src/settings/headless/mcp.ts +0 -319
- package/src/settings/headless/models.ts +0 -51
- package/src/settings/headless/page-counts.ts +0 -40
- package/src/settings/headless/performance.ts +0 -524
- package/src/settings/headless/providers.ts +0 -117
- package/src/settings/headless/registry.ts +0 -62
- package/src/settings/headless/resource.ts +0 -75
- package/src/settings/headless/search.ts +0 -142
- package/src/settings/headless/sections-host.ts +0 -340
- package/src/settings/index.ts +0 -32
- package/src/settings/rows.tsx +0 -152
- package/src/settings/section.tsx +0 -165
- package/src/settings/sections/appearance/AppearanceSection.tsx +0 -667
- package/src/settings/sections/appearance/labels.ts +0 -77
- package/src/settings/sections/claude-import/ClaudeImportDialog.tsx +0 -258
- package/src/settings/sections/claude-import/labels.ts +0 -42
- package/src/settings/sections/claude-import/use-claude-import-available.ts +0 -35
- package/src/settings/sections/descriptors.tsx +0 -261
- package/src/settings/sections/editor/EditorSection.tsx +0 -521
- package/src/settings/sections/editor/labels.ts +0 -84
- package/src/settings/sections/enabled-list/EnabledListSection.tsx +0 -112
- package/src/settings/sections/enabled-list/labels.ts +0 -37
- package/src/settings/sections/environments/EnvironmentsSection.tsx +0 -549
- package/src/settings/sections/environments/labels.ts +0 -31
- package/src/settings/sections/extensions/ChangeOriginDialog.tsx +0 -218
- package/src/settings/sections/extensions/CreateExtensionDialog.tsx +0 -210
- package/src/settings/sections/extensions/ExtensionConfigRows.tsx +0 -508
- package/src/settings/sections/extensions/ExtensionOptionsSection.tsx +0 -356
- package/src/settings/sections/extensions/ExtensionPicksBar.tsx +0 -112
- package/src/settings/sections/extensions/ExtensionSourceBrowser.tsx +0 -244
- package/src/settings/sections/extensions/ExtensionsSection.tsx +0 -665
- package/src/settings/sections/extensions/create-labels.ts +0 -31
- package/src/settings/sections/extensions/labels.ts +0 -64
- package/src/settings/sections/extensions/options-labels.ts +0 -34
- package/src/settings/sections/host-catalog/HostCatalogSection.tsx +0 -457
- package/src/settings/sections/host-catalog/labels.ts +0 -44
- package/src/settings/sections/index.ts +0 -60
- package/src/settings/sections/instructions/InstructionsSection.tsx +0 -385
- package/src/settings/sections/instructions/labels.ts +0 -33
- package/src/settings/sections/keybindings/KeybindingsSection.tsx +0 -124
- package/src/settings/sections/keybindings/labels.ts +0 -72
- package/src/settings/sections/keybindings/rows.ts +0 -103
- package/src/settings/sections/logs/LogsSection.tsx +0 -153
- package/src/settings/sections/logs/labels.ts +0 -20
- package/src/settings/sections/mcp/McpAddForm.tsx +0 -245
- package/src/settings/sections/mcp/McpSection.tsx +0 -358
- package/src/settings/sections/mcp/McpServerRow.tsx +0 -404
- package/src/settings/sections/mcp/labels.ts +0 -193
- package/src/settings/sections/models/AgentDefaults.tsx +0 -365
- package/src/settings/sections/models/ModelListPicker.tsx +0 -265
- package/src/settings/sections/models/ModelPickField.tsx +0 -220
- package/src/settings/sections/models/ModelRows.tsx +0 -381
- package/src/settings/sections/models/SpacesDefaultsSection.tsx +0 -102
- package/src/settings/sections/models/labels.ts +0 -119
- package/src/settings/sections/models/model-test.tsx +0 -125
- package/src/settings/sections/performance/PerfSparkline.tsx +0 -64
- package/src/settings/sections/performance/PerformanceHud.tsx +0 -110
- package/src/settings/sections/performance/PerformanceSection.tsx +0 -770
- package/src/settings/sections/performance/labels.ts +0 -114
- package/src/settings/sections/performance/use-perf-monitor.ts +0 -26
- package/src/settings/sections/plugins/PluginsSection.tsx +0 -151
- package/src/settings/sections/plugins/labels.ts +0 -23
- package/src/settings/sections/providers/CredentialSources.tsx +0 -237
- package/src/settings/sections/providers/ProvidersSection.tsx +0 -389
- package/src/settings/sections/providers/ServerProvidersSection.tsx +0 -244
- package/src/settings/sections/providers/ServerSignIn.tsx +0 -137
- package/src/settings/sections/providers/labels.ts +0 -160
- package/src/settings/sections/shared/catalog.tsx +0 -265
- package/src/settings/sections/shared/labels.ts +0 -31
- package/src/settings/sections/skills/SkillList.tsx +0 -494
- package/src/settings/sections/skills/SkillsSection.tsx +0 -249
- package/src/settings/sections/skills/labels.ts +0 -54
- package/src/settings/sections/use-section-labels.ts +0 -10
- package/src/settings/testing/accounts-demo.ts +0 -110
- package/src/settings/testing/accounts.contract.ts +0 -319
- package/src/settings/testing/claude-import.contract.ts +0 -93
- package/src/settings/testing/contract.ts +0 -192
- package/src/settings/testing/extension-options.contract.ts +0 -163
- package/src/settings/testing/index.ts +0 -11
- package/src/settings/testing/models.contract.ts +0 -135
- package/src/settings/testing/performance.contract.ts +0 -219
- package/src/settings/testing/sections.contract.ts +0 -306
- package/src/terminal/HostTerminalSurface.tsx +0 -917
- package/src/terminal/TerminalDrawer.tsx +0 -228
- package/src/terminal/TerminalPanel.tsx +0 -740
- package/src/terminal/TerminalProvider.tsx +0 -201
- package/src/terminal/TerminalSurface.tsx +0 -262
- package/src/terminal/box-glyphs.ts +0 -333
- package/src/terminal/ghostty.ts +0 -116
- package/src/terminal/grid-size.ts +0 -46
- package/src/terminal/headless/fixture-host.ts +0 -250
- package/src/terminal/headless/host.ts +0 -99
- package/src/terminal/headless/index.ts +0 -11
- package/src/terminal/headless/labels.ts +0 -69
- package/src/terminal/headless/layout.ts +0 -57
- package/src/terminal/headless/links.ts +0 -227
- package/src/terminal/headless/order.ts +0 -28
- package/src/terminal/headless/output-cursor.ts +0 -66
- package/src/terminal/headless/recent.ts +0 -20
- package/src/terminal/headless/replay.ts +0 -45
- package/src/terminal/headless/scope.ts +0 -60
- package/src/terminal/headless/store.ts +0 -637
- package/src/terminal/index.ts +0 -40
- package/src/terminal/keys.ts +0 -34
- package/src/terminal/testing/contract.ts +0 -274
- package/src/terminal/testing/demo.ts +0 -40
- package/src/terminal/testing/index.ts +0 -7
- package/src/terminal/theme.ts +0 -110
- package/src/terminal/useTerminalLabels.ts +0 -14
- package/src/theme/accents.ts +0 -46
- package/src/theme/color.ts +0 -450
- package/src/theme/css-vars.ts +0 -187
- package/src/theme/derive.ts +0 -700
- package/src/theme/from-theme.ts +0 -52
- package/src/theme/stylesheet.ts +0 -55
- package/src/theme/themes.ts +0 -767
- package/src/theme/without-transitions.ts +0 -18
- package/src/uno.ts +0 -167
- package/src/workspace/LayoutBudget.tsx +0 -143
- package/src/workspace/PanelContentView.tsx +0 -523
- package/src/workspace/PanelCorner.tsx +0 -111
- package/src/workspace/PanelGroups.tsx +0 -264
- package/src/workspace/PanelHome.tsx +0 -71
- package/src/workspace/PanelItems.tsx +0 -368
- package/src/workspace/PanelStrip.tsx +0 -316
- package/src/workspace/SidePanel.tsx +0 -240
- package/src/workspace/TabParking.tsx +0 -120
- package/src/workspace/WorkspaceProvider.tsx +0 -558
- package/src/workspace/dnd/engine.ts +0 -371
- package/src/workspace/dnd/hooks.ts +0 -72
- package/src/workspace/dnd/index.ts +0 -57
- package/src/workspace/dnd/parking.tsx +0 -181
- package/src/workspace/extension-tabs.tsx +0 -174
- package/src/workspace/frame-motion.ts +0 -160
- package/src/workspace/headless/contents.ts +0 -125
- package/src/workspace/headless/host.ts +0 -129
- package/src/workspace/headless/index.ts +0 -33
- package/src/workspace/headless/labels.ts +0 -44
- package/src/workspace/headless/layout-memory.ts +0 -649
- package/src/workspace/headless/layouts.ts +0 -224
- package/src/workspace/headless/open-target.ts +0 -125
- package/src/workspace/headless/ops.ts +0 -163
- package/src/workspace/headless/panel-focus.ts +0 -58
- package/src/workspace/headless/panel-tree.ts +0 -259
- package/src/workspace/headless/resolve.ts +0 -146
- package/src/workspace/headless/reveal-at.ts +0 -27
- package/src/workspace/headless/strip-drop.ts +0 -81
- package/src/workspace/headless/tree.ts +0 -480
- package/src/workspace/headless/view.ts +0 -164
- package/src/workspace/index.ts +0 -23
- package/src/workspace/panel-group-keys.ts +0 -36
- package/src/workspace/panel-visibility.ts +0 -28
- package/src/workspace/tab-scopes.ts +0 -245
- package/src/workspace/testing/contract.ts +0 -282
- package/src/workspace/testing/index.ts +0 -140
- package/src/workspace/use-split-drag.ts +0 -73
- package/src/workspace/useScopeLayout.ts +0 -26
- package/src/workspace/useViewport.ts +0 -22
- package/src/workspace/useWorkspaceLabels.ts +0 -14
- package/src/workspace/workspace-key-commands.ts +0 -108
- /package/dist/dist/{types-bDQagoiL.d.ts → types-2HrgolQz.d.ts} +0 -0
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The page of a wizard step. It has an eyebrow, the title and one sentence
|
|
3
|
-
* under it, the body, an optional side pane, and a footer. The side
|
|
4
|
-
* pane (a live preview) sits beside the body on wide windows and under it on
|
|
5
|
-
* narrow ones. The page is a group named by its title, not a landmark, so one
|
|
6
|
-
* page can show several. `StepActions` is the footer that most steps want:
|
|
7
|
-
* Back on the left, Skip and Continue on the right. Neither listens to the
|
|
8
|
-
* keyboard. The flow owns Enter and Escape, and it finds the buttons by their
|
|
9
|
-
* `data-step-back` and `data-step-continue` attributes.
|
|
10
|
-
*/
|
|
11
|
-
import { useId, type CSSProperties, type ReactNode } from 'react';
|
|
12
|
-
|
|
13
|
-
import { useLabels } from '../labels';
|
|
14
|
-
import { buttonClass } from './button';
|
|
15
|
-
|
|
16
|
-
/** Props for {@link StepFrame}. */
|
|
17
|
-
export interface StepFrameProps {
|
|
18
|
-
/** Small uppercase label above the title, such as the step's name. */
|
|
19
|
-
eyebrow?: ReactNode;
|
|
20
|
-
/** The step's question or heading. */
|
|
21
|
-
title: ReactNode;
|
|
22
|
-
/** One sentence under the title. */
|
|
23
|
-
lede?: ReactNode;
|
|
24
|
-
/** A side pane, such as a live preview: beside the body from 1024px wide, pinned 48px below the top of the scroller as the body scrolls, and under the body below that width. */
|
|
25
|
-
aside?: ReactNode;
|
|
26
|
-
/** The footer, usually {@link StepActions}. */
|
|
27
|
-
footer?: ReactNode;
|
|
28
|
-
/** Extra classes on the page. */
|
|
29
|
-
className?: string;
|
|
30
|
-
/** The step's body. */
|
|
31
|
-
children?: ReactNode;
|
|
32
|
-
/** Inline styles on the root element, merged after the component's own. */
|
|
33
|
-
style?: CSSProperties;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Renders a wizard step's page: its heading, its body, an optional side pane, and a footer.
|
|
38
|
-
*
|
|
39
|
-
* @param props - Component props.
|
|
40
|
-
*/
|
|
41
|
-
export function StepFrame({ eyebrow, title, lede, aside, footer, className = '', children, style }: StepFrameProps) {
|
|
42
|
-
const titleId = useId();
|
|
43
|
-
return (
|
|
44
|
-
<div role="group" aria-labelledby={titleId} className={`flex flex-col gap-10 min-w-0 ${className}`} style={style}>
|
|
45
|
-
<header className="flex flex-col gap-2 max-w-[640px]">
|
|
46
|
-
{eyebrow && <span className="zg-section-label">{eyebrow}</span>}
|
|
47
|
-
<h2
|
|
48
|
-
id={titleId}
|
|
49
|
-
className="m-0 text-zg-title leading-7 font-medium tracking-[-0.01em] text-[var(--zg-text)] text-balance"
|
|
50
|
-
>
|
|
51
|
-
{title}
|
|
52
|
-
</h2>
|
|
53
|
-
{lede && <p className="m-0 text-zg-ui text-[var(--zg-text-muted)] text-pretty">{lede}</p>}
|
|
54
|
-
</header>
|
|
55
|
-
{aside ? (
|
|
56
|
-
<div className="grid gap-10 lg:gap-12 lg:grid-cols-[minmax(0,1fr)_minmax(0,1fr)] items-start">
|
|
57
|
-
<div className="min-w-0">{children}</div>
|
|
58
|
-
{/* Pinned with the same gap the page starts with (the flow's pt-12), never against the scroller's edge. */}
|
|
59
|
-
<aside className="min-w-0 lg:sticky lg:top-12">{aside}</aside>
|
|
60
|
-
</div>
|
|
61
|
-
) : (
|
|
62
|
-
children && <div className="min-w-0">{children}</div>
|
|
63
|
-
)}
|
|
64
|
-
{footer && <footer className="pt-2">{footer}</footer>}
|
|
65
|
-
</div>
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/** Props for {@link StepActions}. */
|
|
70
|
-
export interface StepActionsProps {
|
|
71
|
-
/** Goes to the previous step. Absent: no Back button. */
|
|
72
|
-
onBack?: () => void;
|
|
73
|
-
/** Leaves this step's choices as they were and moves on. Absent: no Skip button. */
|
|
74
|
-
onSkip?: () => void;
|
|
75
|
-
/** Text of the Skip button. Defaults to the `skip` label. */
|
|
76
|
-
skipLabel?: ReactNode;
|
|
77
|
-
/** Moves on. Absent: no Continue button. */
|
|
78
|
-
onContinue?: () => void;
|
|
79
|
-
/** Text of the Continue button. Defaults to the `continue` label. */
|
|
80
|
-
continueLabel?: ReactNode;
|
|
81
|
-
/** The user cannot press Continue yet, such as before a provider is ready. */
|
|
82
|
-
continueDisabled?: boolean;
|
|
83
|
-
/** Continue is working. It shows as pressed, and the user cannot press it again. */
|
|
84
|
-
busy?: boolean;
|
|
85
|
-
/** Muted text before the buttons on the right, such as why Continue is off. */
|
|
86
|
-
note?: ReactNode;
|
|
87
|
-
/** Extra classes on the root element. */
|
|
88
|
-
className?: string;
|
|
89
|
-
/** Inline styles on the root element, merged after the component's own. */
|
|
90
|
-
style?: CSSProperties;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* The usual step footer: Back on the left, and Skip and Continue on the right. Continue has its
|
|
95
|
-
* `↵` keycap. A missing handler hides its button.
|
|
96
|
-
*
|
|
97
|
-
* @param props - Component props.
|
|
98
|
-
*/
|
|
99
|
-
export function StepActions({
|
|
100
|
-
onBack,
|
|
101
|
-
onSkip,
|
|
102
|
-
skipLabel,
|
|
103
|
-
onContinue,
|
|
104
|
-
continueLabel,
|
|
105
|
-
continueDisabled = false,
|
|
106
|
-
busy = false,
|
|
107
|
-
note,
|
|
108
|
-
className,
|
|
109
|
-
style,
|
|
110
|
-
}: StepActionsProps) {
|
|
111
|
-
const labels = useLabels();
|
|
112
|
-
return (
|
|
113
|
-
<div className={['flex items-center gap-2', className].filter(Boolean).join(' ')} style={style}>
|
|
114
|
-
{onBack && (
|
|
115
|
-
<button
|
|
116
|
-
type="button"
|
|
117
|
-
data-step-back
|
|
118
|
-
onClick={onBack}
|
|
119
|
-
className={buttonClass({ variant: 'ghost', flush: 'start' })}
|
|
120
|
-
>
|
|
121
|
-
{labels.back}
|
|
122
|
-
</button>
|
|
123
|
-
)}
|
|
124
|
-
<div className="ml-auto flex items-center gap-2 min-w-0">
|
|
125
|
-
{note && (
|
|
126
|
-
<span className="min-w-0 text-right text-zg-label text-[var(--zg-text-muted)] text-pretty">{note}</span>
|
|
127
|
-
)}
|
|
128
|
-
{onSkip && (
|
|
129
|
-
<button type="button" onClick={onSkip} className={buttonClass({ variant: 'ghost' })}>
|
|
130
|
-
{skipLabel ?? labels.skip}
|
|
131
|
-
</button>
|
|
132
|
-
)}
|
|
133
|
-
{onContinue && (
|
|
134
|
-
<button
|
|
135
|
-
type="button"
|
|
136
|
-
data-step-continue
|
|
137
|
-
onClick={onContinue}
|
|
138
|
-
disabled={continueDisabled || busy}
|
|
139
|
-
aria-busy={busy || undefined}
|
|
140
|
-
className={buttonClass({ variant: 'solid' })}
|
|
141
|
-
>
|
|
142
|
-
{continueLabel ?? labels.continue}
|
|
143
|
-
<span aria-hidden className="text-zg-label opacity-60">
|
|
144
|
-
↵
|
|
145
|
-
</span>
|
|
146
|
-
</button>
|
|
147
|
-
)}
|
|
148
|
-
</div>
|
|
149
|
-
</div>
|
|
150
|
-
);
|
|
151
|
-
}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The progress of a wizard. `dots` draws one dot for each step, and the
|
|
3
|
-
* current one as a longer pill. `rail` lists the step names in a column. The
|
|
4
|
-
* steps before the current one are done. With `onSelect`, they are buttons
|
|
5
|
-
* that go back.
|
|
6
|
-
*/
|
|
7
|
-
import type { CSSProperties } from 'react';
|
|
8
|
-
|
|
9
|
-
import { useLabels } from '../labels';
|
|
10
|
-
|
|
11
|
-
/** One step of a {@link Stepper}. */
|
|
12
|
-
export interface StepperStep {
|
|
13
|
-
/** Stable id, passed to `onSelect`. */
|
|
14
|
-
id: string;
|
|
15
|
-
/** Step name: the rail's text, the dot's tooltip and accessible name. */
|
|
16
|
-
label: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const DOT_BASE = 'zg-stepper-dot block h-1.5 rounded-full';
|
|
20
|
-
|
|
21
|
-
/** Props for {@link Stepper}. */
|
|
22
|
-
export interface StepperProps {
|
|
23
|
-
/** The steps, in order. */
|
|
24
|
-
steps: readonly StepperStep[];
|
|
25
|
-
/** Id of the current step. */
|
|
26
|
-
current: string;
|
|
27
|
-
/** Called with a done step's id when it is clicked. Absent: done steps are not buttons. */
|
|
28
|
-
onSelect?: (id: string) => void;
|
|
29
|
-
/**
|
|
30
|
-
* `dots` for a top bar, `rail` for a column of names.
|
|
31
|
-
* @default 'dots'
|
|
32
|
-
*/
|
|
33
|
-
variant?: 'dots' | 'rail';
|
|
34
|
-
/** Accessible name of the navigation. Defaults to the `steps` label. */
|
|
35
|
-
label?: string;
|
|
36
|
-
/** Extra classes on the navigation. */
|
|
37
|
-
className?: string;
|
|
38
|
-
/** Inline styles on the root element, merged after the component's own. */
|
|
39
|
-
style?: CSSProperties;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Renders the progress of a wizard as dots or as a rail of step names. The current step carries
|
|
44
|
-
* `aria-current="step"`. When `onSelect` is set, done steps go back through it.
|
|
45
|
-
*
|
|
46
|
-
* @param props - Component props.
|
|
47
|
-
*/
|
|
48
|
-
export function Stepper({ steps, current, onSelect, variant = 'dots', label, className = '', style }: StepperProps) {
|
|
49
|
-
const labels = useLabels();
|
|
50
|
-
const index = Math.max(
|
|
51
|
-
0,
|
|
52
|
-
steps.findIndex((step) => step.id === current),
|
|
53
|
-
);
|
|
54
|
-
return (
|
|
55
|
-
<nav aria-label={label ?? labels.steps} className={className} style={style}>
|
|
56
|
-
<ol className={`m-0 p-0 list-none ${variant === 'dots' ? 'flex items-center' : 'flex flex-col gap-0.5'}`}>
|
|
57
|
-
{steps.map((step, i) => {
|
|
58
|
-
const state = i < index ? 'done' : i === index ? 'current' : 'todo';
|
|
59
|
-
const back = onSelect && state === 'done' ? () => onSelect(step.id) : undefined;
|
|
60
|
-
return (
|
|
61
|
-
<li key={step.id} aria-current={state === 'current' ? 'step' : undefined} className="flex">
|
|
62
|
-
{variant === 'dots' ? (
|
|
63
|
-
<DotStep label={step.label} state={state} onBack={back} goTo={labels.goToStep(step.label)} />
|
|
64
|
-
) : (
|
|
65
|
-
<RailStep label={step.label} state={state} onBack={back} goTo={labels.goToStep(step.label)} />
|
|
66
|
-
)}
|
|
67
|
-
</li>
|
|
68
|
-
);
|
|
69
|
-
})}
|
|
70
|
-
</ol>
|
|
71
|
-
{variant === 'dots' && <span className="sr-only">{labels.stepOf(index + 1, steps.length)}</span>}
|
|
72
|
-
</nav>
|
|
73
|
-
);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
type StepState = 'done' | 'current' | 'todo';
|
|
77
|
-
|
|
78
|
-
function DotStep({
|
|
79
|
-
label,
|
|
80
|
-
state,
|
|
81
|
-
onBack,
|
|
82
|
-
goTo,
|
|
83
|
-
}: {
|
|
84
|
-
label: string;
|
|
85
|
-
state: StepState;
|
|
86
|
-
onBack?: () => void;
|
|
87
|
-
goTo: string;
|
|
88
|
-
}) {
|
|
89
|
-
const dot = (
|
|
90
|
-
<span
|
|
91
|
-
aria-hidden
|
|
92
|
-
className={`${DOT_BASE} ${
|
|
93
|
-
state === 'current'
|
|
94
|
-
? 'w-4 bg-[var(--zg-accent)]'
|
|
95
|
-
: state === 'done'
|
|
96
|
-
? 'w-1.5 bg-[color-mix(in_srgb,var(--zg-accent)_55%,var(--zg-track))]'
|
|
97
|
-
: 'w-1.5 bg-[var(--zg-track)]'
|
|
98
|
-
}`}
|
|
99
|
-
/>
|
|
100
|
-
);
|
|
101
|
-
// The padding is the gap between dots, so a done dot's button is a target bigger than the dot.
|
|
102
|
-
if (!onBack)
|
|
103
|
-
return (
|
|
104
|
-
<span title={label} className="flex items-center px-[3px] py-[5px]">
|
|
105
|
-
{dot}
|
|
106
|
-
</span>
|
|
107
|
-
);
|
|
108
|
-
return (
|
|
109
|
-
<button
|
|
110
|
-
type="button"
|
|
111
|
-
onClick={onBack}
|
|
112
|
-
aria-label={goTo}
|
|
113
|
-
title={label}
|
|
114
|
-
className="flex items-center px-[3px] py-[5px] border-0 bg-transparent cursor-pointer rounded-full zg-focus-ring"
|
|
115
|
-
>
|
|
116
|
-
{dot}
|
|
117
|
-
</button>
|
|
118
|
-
);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
function RailStep({
|
|
122
|
-
label,
|
|
123
|
-
state,
|
|
124
|
-
onBack,
|
|
125
|
-
goTo,
|
|
126
|
-
}: {
|
|
127
|
-
label: string;
|
|
128
|
-
state: StepState;
|
|
129
|
-
onBack?: () => void;
|
|
130
|
-
goTo: string;
|
|
131
|
-
}) {
|
|
132
|
-
const glyph =
|
|
133
|
-
state === 'done'
|
|
134
|
-
? 'i-ph-check-bold text-[var(--zg-accent)]'
|
|
135
|
-
: state === 'current'
|
|
136
|
-
? 'i-ph-circle-fill text-[var(--zg-accent)]'
|
|
137
|
-
: 'i-ph-circle text-[var(--zg-text-subtle)]';
|
|
138
|
-
const text = state === 'current' ? 'text-[var(--zg-text)] font-medium' : 'text-[var(--zg-text-muted)]';
|
|
139
|
-
const content = (
|
|
140
|
-
<>
|
|
141
|
-
<span aria-hidden key={state} data-state={state} className={`${glyph} zg-stepper-glyph text-zg-meta shrink-0`} />
|
|
142
|
-
<span className="truncate">{label}</span>
|
|
143
|
-
</>
|
|
144
|
-
);
|
|
145
|
-
const row = `flex items-center gap-2 w-full h-7 px-2 rounded-zg-md text-zg-ui ${text}`;
|
|
146
|
-
if (!onBack) return <span className={row}>{content}</span>;
|
|
147
|
-
return (
|
|
148
|
-
<button
|
|
149
|
-
type="button"
|
|
150
|
-
onClick={onBack}
|
|
151
|
-
aria-label={goTo}
|
|
152
|
-
className={`${row} zg-press-subtle border-0 bg-transparent cursor-pointer text-left hover:before:bg-[var(--zg-row-hover)] zg-focus-ring`}
|
|
153
|
-
>
|
|
154
|
-
{content}
|
|
155
|
-
</button>
|
|
156
|
-
);
|
|
157
|
-
}
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Containers from the surface ladder. Use these instead of hand-built
|
|
3
|
-
* `bg-[var(--zg-bg-elevated)] border` stacks:
|
|
4
|
-
* Tray the bed: sections, wells for grouped rows, code, quiet cards
|
|
5
|
-
* Raised a card or control lifted off its tray
|
|
6
|
-
* CodePanel monospace output / input, set into its surface
|
|
7
|
-
* EmptyState the one empty / placeholder block
|
|
8
|
-
*/
|
|
9
|
-
import type { CSSProperties, HTMLAttributes, ReactNode } from 'react';
|
|
10
|
-
|
|
11
|
-
type Radius = 'sm' | 'md' | 'lg' | 'xl';
|
|
12
|
-
const RADIUS: Record<Radius, string> = {
|
|
13
|
-
sm: 'rounded-zg-sm',
|
|
14
|
-
md: 'rounded-zg-md',
|
|
15
|
-
lg: 'rounded-zg-lg',
|
|
16
|
-
xl: 'rounded-zg-xl',
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
/** Props for {@link Tray}: a `radius` and the attributes of a `div`. */
|
|
20
|
-
export interface TrayProps extends HTMLAttributes<HTMLDivElement> {
|
|
21
|
-
/**
|
|
22
|
-
* Corner radius: `sm`, `md`, `lg` or `xl`.
|
|
23
|
-
* @default 'lg'
|
|
24
|
-
*/
|
|
25
|
-
radius?: Radius;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Renders the bed of the surface ladder: sections, wells for grouped rows, code and quiet
|
|
30
|
-
* cards. Accepts the attributes of a `div`.
|
|
31
|
-
*
|
|
32
|
-
* @param props - A `radius` and the attributes of a `div`.
|
|
33
|
-
*/
|
|
34
|
-
export function Tray({ radius = 'lg', className = '', ...rest }: TrayProps) {
|
|
35
|
-
return <div className={`zg-tray ${RADIUS[radius]} ${className}`} {...rest} />;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/** Props for {@link Raised}: {@link TrayProps} plus `live`. */
|
|
39
|
-
export interface RaisedProps extends TrayProps {
|
|
40
|
-
/** Lift the card one step with the live shadow, for something that is active right now. */
|
|
41
|
-
live?: boolean;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Renders a card or control lifted off its tray, with a border and the raised shadow. Accepts
|
|
46
|
-
* the attributes of a `div`.
|
|
47
|
-
*
|
|
48
|
-
* @param props - A `radius`, `live` and the attributes of a `div`.
|
|
49
|
-
*/
|
|
50
|
-
export function Raised({ radius = 'lg', live = false, className = '', ...rest }: RaisedProps) {
|
|
51
|
-
return (
|
|
52
|
-
<div data-live={live ? '' : undefined} className={`zg-raised border ${RADIUS[radius]} ${className}`} {...rest} />
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/** Props for {@link CodePanel}. */
|
|
57
|
-
export interface CodePanelProps {
|
|
58
|
-
/** The text to show. */
|
|
59
|
-
children: ReactNode;
|
|
60
|
-
/** Extra classes on the `pre`. */
|
|
61
|
-
className?: string;
|
|
62
|
-
/**
|
|
63
|
-
* Wrap long lines. When off, the panel scrolls horizontally instead.
|
|
64
|
-
* @default true
|
|
65
|
-
*/
|
|
66
|
-
wrap?: boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Maximum height of the panel, as a CSS length or a number of pixels. The panel scrolls past it.
|
|
69
|
-
*/
|
|
70
|
-
maxHeight?: number | string;
|
|
71
|
-
/** Inline styles on the root element, merged after the component's own. */
|
|
72
|
-
style?: CSSProperties;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Renders monospace output or input in a `pre`, set into its surface.
|
|
77
|
-
*
|
|
78
|
-
* @param props - Component props.
|
|
79
|
-
*/
|
|
80
|
-
export function CodePanel({ children, className = '', wrap = true, maxHeight, style }: CodePanelProps) {
|
|
81
|
-
return (
|
|
82
|
-
<pre
|
|
83
|
-
className={`zg-code-panel m-0 px-3 py-2 font-mono text-zg-label leading-[1.55] overflow-auto ${
|
|
84
|
-
wrap ? 'whitespace-pre-wrap break-words' : 'whitespace-pre'
|
|
85
|
-
} ${className}`}
|
|
86
|
-
style={maxHeight !== undefined ? { maxHeight, ...style } : style}
|
|
87
|
-
>
|
|
88
|
-
{children}
|
|
89
|
-
</pre>
|
|
90
|
-
);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/** Props for {@link EmptyState}. */
|
|
94
|
-
export interface EmptyStateProps {
|
|
95
|
-
/** Icon class shown above the title. */
|
|
96
|
-
icon?: string;
|
|
97
|
-
/** Main message. */
|
|
98
|
-
title: ReactNode;
|
|
99
|
-
/** Secondary text under the title. */
|
|
100
|
-
hint?: ReactNode;
|
|
101
|
-
/** Control under the hint, such as a button. */
|
|
102
|
-
action?: ReactNode;
|
|
103
|
-
/** Set in a tray. Off inside a surface that is already tray-toned (the side panel): no tray on a tray. */
|
|
104
|
-
framed?: boolean;
|
|
105
|
-
/** Less vertical room, for a panel tab. */
|
|
106
|
-
compact?: boolean;
|
|
107
|
-
/** The title's element: a heading where the empty state is the page (a 404). */
|
|
108
|
-
titleAs?: 'div' | 'h1' | 'h2' | 'h3';
|
|
109
|
-
/** Extra classes on the wrapping element. */
|
|
110
|
-
className?: string;
|
|
111
|
-
/** Inline styles on the root element, merged after the component's own. */
|
|
112
|
-
style?: CSSProperties;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Renders the one empty or placeholder block: an optional icon, a title, a hint and an action,
|
|
117
|
-
* centred, usually in a tray.
|
|
118
|
-
*
|
|
119
|
-
* @param props - Component props.
|
|
120
|
-
*/
|
|
121
|
-
export function EmptyState({
|
|
122
|
-
icon,
|
|
123
|
-
title,
|
|
124
|
-
hint,
|
|
125
|
-
action,
|
|
126
|
-
framed = true,
|
|
127
|
-
compact = false,
|
|
128
|
-
titleAs: Title = 'div',
|
|
129
|
-
className = '',
|
|
130
|
-
style,
|
|
131
|
-
}: EmptyStateProps) {
|
|
132
|
-
return (
|
|
133
|
-
<div
|
|
134
|
-
className={`${framed ? 'zg-tray rounded-zg-lg' : ''} flex flex-col items-center text-center gap-2 px-6 ${compact ? 'py-6' : 'py-8'} ${className}`}
|
|
135
|
-
style={style}
|
|
136
|
-
>
|
|
137
|
-
{icon && <span className={`${icon} text-xl text-[var(--zg-text-subtle)]`} aria-hidden />}
|
|
138
|
-
<Title className="m-0 text-zg-ui font-normal text-[var(--zg-text)]">{title}</Title>
|
|
139
|
-
{hint && <div className="text-zg-label text-[var(--zg-text-muted)] max-w-[28rem]">{hint}</div>}
|
|
140
|
-
{action && <div className="mt-1">{action}</div>}
|
|
141
|
-
</div>
|
|
142
|
-
);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/** Props for {@link SectionLabel}. */
|
|
146
|
-
export interface SectionLabelProps {
|
|
147
|
-
/** The label text. */
|
|
148
|
-
children: ReactNode;
|
|
149
|
-
/** Extra classes on the label. */
|
|
150
|
-
className?: string;
|
|
151
|
-
/** Inline styles on the root element, merged after the component's own. */
|
|
152
|
-
style?: CSSProperties;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Uppercase label for a section of a panel, menu or form.
|
|
157
|
-
*
|
|
158
|
-
* @param props - Component props.
|
|
159
|
-
*/
|
|
160
|
-
export function SectionLabel({ children, className = '', style }: SectionLabelProps) {
|
|
161
|
-
return (
|
|
162
|
-
<div className={`zg-section-label ${className}`} style={style}>
|
|
163
|
-
{children}
|
|
164
|
-
</div>
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/** Props for {@link Meta}. */
|
|
169
|
-
export interface MetaProps {
|
|
170
|
-
/** The value to show. */
|
|
171
|
-
children: ReactNode;
|
|
172
|
-
/** Extra classes on the text. */
|
|
173
|
-
className?: string;
|
|
174
|
-
/** Native tooltip. */
|
|
175
|
-
title?: string;
|
|
176
|
-
/** Inline styles on the root element, merged after the component's own. */
|
|
177
|
-
style?: CSSProperties;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* The technical voice: mono, tabular, small, muted.
|
|
182
|
-
*
|
|
183
|
-
* @param props - Component props.
|
|
184
|
-
*/
|
|
185
|
-
export function Meta({ children, className = '', title, style }: MetaProps) {
|
|
186
|
-
return (
|
|
187
|
-
<span className={`zg-meta ${className}`} style={style} title={title}>
|
|
188
|
-
{children}
|
|
189
|
-
</span>
|
|
190
|
-
);
|
|
191
|
-
}
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A pick among small swatches: colors as a row of dots, or images (app
|
|
3
|
-
* icons) as a grid of tiles. A line under them names the swatch under the
|
|
4
|
-
* pointer or the keyboard, else the pick, so a swatch needs no text of its
|
|
5
|
-
* own. Radio semantics (APG radio group): one tab stop on the picked swatch,
|
|
6
|
-
* and the arrows, Home and End move the pick.
|
|
7
|
-
*/
|
|
8
|
-
import { useRef, useState, type CSSProperties, type KeyboardEvent, type ReactNode } from 'react';
|
|
9
|
-
|
|
10
|
-
/** One swatch of a {@link SwatchPicker}. */
|
|
11
|
-
export interface Swatch<T extends string> {
|
|
12
|
-
/** The value reported to `onChange` when the swatch is picked. Unique among the swatches. */
|
|
13
|
-
value: T;
|
|
14
|
-
/** Name of the swatch: the caption and the accessible name. */
|
|
15
|
-
label: string;
|
|
16
|
-
/** What the swatch shows: a color that fills the dot, or an image for a tile. */
|
|
17
|
-
swatch: ReactNode;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const COLUMNS = { 4: 'grid-cols-4', 5: 'grid-cols-5', 6: 'grid-cols-6' } as const;
|
|
21
|
-
|
|
22
|
-
const DOT =
|
|
23
|
-
'zg-press-subtle relative grid place-items-center w-7 h-7 shrink-0 p-0 rounded-full border-0 bg-transparent overflow-hidden cursor-pointer outline-offset-2 zg-focus-ring';
|
|
24
|
-
const TILE =
|
|
25
|
-
'zg-press-subtle relative grid place-items-center aspect-square min-w-0 rounded-zg-md cursor-pointer transition-[background-color,box-shadow] zg-focus-ring';
|
|
26
|
-
|
|
27
|
-
/** Props for {@link SwatchPicker}. */
|
|
28
|
-
export interface SwatchPickerProps<T extends string> {
|
|
29
|
-
/** The value of the picked swatch. `undefined`: none is picked. */
|
|
30
|
-
value: T | undefined;
|
|
31
|
-
/** Called with the value of the swatch picked by click or keyboard. */
|
|
32
|
-
onChange: (value: T) => void;
|
|
33
|
-
/** The swatches, in order. */
|
|
34
|
-
options: readonly Swatch<T>[];
|
|
35
|
-
/** Accessible name of the radio group. */
|
|
36
|
-
ariaLabel: string;
|
|
37
|
-
/**
|
|
38
|
-
* `dot`: 28px circles in a row, for colors. `tile`: square tiles in a grid, for images.
|
|
39
|
-
* @default 'dot'
|
|
40
|
-
*/
|
|
41
|
-
shape?: 'dot' | 'tile';
|
|
42
|
-
/**
|
|
43
|
-
* Tiles per row, for `tile`.
|
|
44
|
-
* @default 5
|
|
45
|
-
*/
|
|
46
|
-
columns?: keyof typeof COLUMNS;
|
|
47
|
-
/** Formats the caption of a swatch. Defaults to its label. */
|
|
48
|
-
caption?: (option: Swatch<T>) => ReactNode;
|
|
49
|
-
/** A muted line under the caption, such as where the pick shows. */
|
|
50
|
-
note?: ReactNode;
|
|
51
|
-
/** Extra classes on the picker. */
|
|
52
|
-
className?: string;
|
|
53
|
-
/** Inline styles on the root element, merged after the component's own. */
|
|
54
|
-
style?: CSSProperties;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Renders swatches as a radio group, with a caption that names the swatch in view.
|
|
59
|
-
*
|
|
60
|
-
* @param props - Component props.
|
|
61
|
-
*/
|
|
62
|
-
export function SwatchPicker<T extends string>({
|
|
63
|
-
value,
|
|
64
|
-
onChange,
|
|
65
|
-
options,
|
|
66
|
-
ariaLabel,
|
|
67
|
-
shape = 'dot',
|
|
68
|
-
columns = 5,
|
|
69
|
-
caption,
|
|
70
|
-
note,
|
|
71
|
-
className = '',
|
|
72
|
-
style,
|
|
73
|
-
}: SwatchPickerProps<T>) {
|
|
74
|
-
const items = useRef<(HTMLButtonElement | null)[]>([]);
|
|
75
|
-
const [pointed, setPointed] = useState<T | null>(null);
|
|
76
|
-
const checked = options.findIndex((o) => o.value === value);
|
|
77
|
-
const stop = checked >= 0 ? checked : 0;
|
|
78
|
-
const named = options.find((o) => o.value === (pointed ?? value));
|
|
79
|
-
|
|
80
|
-
const pick = (index: number) => {
|
|
81
|
-
const option = options[index];
|
|
82
|
-
if (!option) return;
|
|
83
|
-
items.current[index]?.focus();
|
|
84
|
-
if (option.value !== value) onChange(option.value);
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
const onKeyDown = (e: KeyboardEvent, from: number) => {
|
|
88
|
-
let next: number | undefined;
|
|
89
|
-
if (e.key === 'ArrowRight' || e.key === 'ArrowDown') next = (from + 1) % options.length;
|
|
90
|
-
else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') next = (from - 1 + options.length) % options.length;
|
|
91
|
-
else if (e.key === 'Home') next = 0;
|
|
92
|
-
else if (e.key === 'End') next = options.length - 1;
|
|
93
|
-
if (next === undefined) return;
|
|
94
|
-
e.preventDefault();
|
|
95
|
-
pick(next);
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
return (
|
|
99
|
-
<div className={`flex flex-col gap-2 min-w-0 ${className}`} style={style}>
|
|
100
|
-
<div
|
|
101
|
-
role="radiogroup"
|
|
102
|
-
aria-label={ariaLabel}
|
|
103
|
-
className={shape === 'tile' ? `grid gap-1.5 ${COLUMNS[columns]}` : 'flex flex-wrap items-center gap-2.5 p-1'}
|
|
104
|
-
>
|
|
105
|
-
{options.map((o, i) => {
|
|
106
|
-
const on = i === checked;
|
|
107
|
-
const look =
|
|
108
|
-
shape === 'tile'
|
|
109
|
-
? `${TILE} ${
|
|
110
|
-
on
|
|
111
|
-
? 'zg-raised border ring-1 ring-[color-mix(in_srgb,var(--zg-accent)_55%,transparent)]'
|
|
112
|
-
: 'border border-transparent bg-transparent hover:before:bg-[var(--zg-row-hover)]'
|
|
113
|
-
}`
|
|
114
|
-
: `${DOT} ${on ? 'outline outline-2 outline-[var(--zg-text-muted)]' : ''}`;
|
|
115
|
-
return (
|
|
116
|
-
<button
|
|
117
|
-
key={o.value}
|
|
118
|
-
ref={(el) => {
|
|
119
|
-
items.current[i] = el;
|
|
120
|
-
}}
|
|
121
|
-
type="button"
|
|
122
|
-
role="radio"
|
|
123
|
-
aria-checked={on}
|
|
124
|
-
aria-label={o.label}
|
|
125
|
-
tabIndex={i === stop ? 0 : -1}
|
|
126
|
-
onClick={() => pick(i)}
|
|
127
|
-
onKeyDown={(e) => onKeyDown(e, i)}
|
|
128
|
-
onMouseEnter={() => setPointed(o.value)}
|
|
129
|
-
onMouseLeave={() => setPointed(null)}
|
|
130
|
-
onFocus={() => setPointed(o.value)}
|
|
131
|
-
onBlur={() => setPointed(null)}
|
|
132
|
-
className={look}
|
|
133
|
-
>
|
|
134
|
-
{o.swatch}
|
|
135
|
-
</button>
|
|
136
|
-
);
|
|
137
|
-
})}
|
|
138
|
-
</div>
|
|
139
|
-
{named && (
|
|
140
|
-
<p aria-live="polite" className="m-0 px-1 text-zg-label text-[var(--zg-text)]">
|
|
141
|
-
{caption ? caption(named) : named.label}
|
|
142
|
-
</p>
|
|
143
|
-
)}
|
|
144
|
-
{note && <p className="m-0 -mt-1.5 px-1 text-zg-label text-[var(--zg-text-muted)] text-pretty">{note}</p>}
|
|
145
|
-
</div>
|
|
146
|
-
);
|
|
147
|
-
}
|