@orbit-work/ui 0.1.2-preview.0 → 0.1.2
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 +59 -57
- package/dist/about-window.cjs +271 -1
- package/dist/about-window.cjs.map +1 -0
- package/dist/about-window.d.cts +20 -2
- package/dist/about-window.d.ts +20 -2
- package/dist/about-window.js +271 -1
- package/dist/about-window.js.map +1 -0
- package/dist/appearance-D7uh_ZTy.d.cts +192 -0
- package/dist/appearance-D7uh_ZTy.d.ts +192 -0
- package/dist/appearance.cjs +39 -1
- package/dist/appearance.cjs.map +1 -0
- package/dist/appearance.d.cts +1 -1
- package/dist/appearance.d.ts +1 -1
- package/dist/appearance.js +39 -1
- package/dist/appearance.js.map +1 -0
- package/dist/browser-annotation-popup.cjs +9 -1
- package/dist/browser-annotation-popup.cjs.map +1 -0
- package/dist/browser-annotation-popup.d.cts +6 -6
- package/dist/browser-annotation-popup.d.ts +6 -6
- package/dist/browser-annotation-popup.js +9 -1
- package/dist/browser-annotation-popup.js.map +1 -0
- package/dist/chunk-66VEV7G2.js +111 -0
- package/dist/chunk-66VEV7G2.js.map +1 -0
- package/dist/chunk-KRP43SUA.cjs +1130 -0
- package/dist/chunk-KRP43SUA.cjs.map +1 -0
- package/dist/chunk-QS55W5Q5.cjs +111 -0
- package/dist/chunk-QS55W5Q5.cjs.map +1 -0
- package/dist/chunk-S3R5QFO4.js +1130 -0
- package/dist/chunk-S3R5QFO4.js.map +1 -0
- package/dist/chunk-UT5LC6MR.js +38 -0
- package/dist/chunk-UT5LC6MR.js.map +1 -0
- package/dist/chunk-ZZTEY4YX.cjs +38 -0
- package/dist/chunk-ZZTEY4YX.cjs.map +1 -0
- package/dist/core.css +7886 -0
- package/dist/file-tree.css +85 -0
- package/dist/index-nLo7jMlP.d.cts +166 -0
- package/dist/index-nLo7jMlP.d.ts +166 -0
- package/dist/index.cjs +39161 -26
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3769 -3032
- package/dist/index.d.ts +3769 -3032
- package/dist/index.js +39161 -26
- package/dist/index.js.map +1 -0
- package/dist/locale.cjs +15 -0
- package/dist/locale.cjs.map +1 -0
- package/dist/locale.d.cts +28 -0
- package/dist/locale.d.ts +28 -0
- package/dist/locale.js +15 -0
- package/dist/locale.js.map +1 -0
- package/dist/office.css +1146 -0
- package/dist/slot-core.cjs +200 -0
- package/dist/slot-core.cjs.map +1 -0
- package/dist/slot-core.d.cts +146 -0
- package/dist/slot-core.d.ts +146 -0
- package/dist/slot-core.js +200 -0
- package/dist/slot-core.js.map +1 -0
- package/dist/slot-react.cjs +153 -0
- package/dist/slot-react.cjs.map +1 -0
- package/dist/slot-react.d.cts +36 -0
- package/dist/slot-react.d.ts +36 -0
- package/dist/slot-react.js +153 -0
- package/dist/slot-react.js.map +1 -0
- package/dist/tailwind.css +137 -0
- package/dist/workbench.css +9014 -0
- package/package.json +112 -47
- package/dist/appearance-D5uQ53j3.d.cts +0 -210
- package/dist/appearance-D5uQ53j3.d.ts +0 -210
- package/dist/chunk-3KT7IU4X.js +0 -13
- package/dist/chunk-5VLBKOG7.cjs +0 -194
- package/dist/chunk-7YJY64LZ.js +0 -82
- package/dist/chunk-EF2BSN3K.cjs +0 -13
- package/dist/chunk-GMMYDILD.cjs +0 -82
- package/dist/chunk-VG7FQQ7K.js +0 -194
- package/dist/fonts/JetBrainsMono-Medium.ttf +0 -0
- package/dist/fonts/JetBrainsMono-Regular.ttf +0 -0
- package/dist/fonts/SpaceGrotesk-700-latin-ext.woff2 +0 -0
- package/dist/fonts/SpaceGrotesk-700-latin.woff2 +0 -0
- package/dist/index.css +0 -1
- package/dist/orbitwork.css +0 -22209
- package/src/components/Layout/AppLayout/AppLayout.stories.tsx +0 -246
- package/src/components/Layout/AppLayout/AppLayoutSource.test.mjs +0 -37
- package/src/components/Layout/AppLayout/index.tsx +0 -122
- package/src/components/Layout/Sidebar/index.tsx +0 -13
- package/src/components/Layout/SidebarShell/SidebarShell.stories.tsx +0 -676
- package/src/components/Layout/SidebarShell/SidebarShellSource.test.mjs +0 -161
- package/src/components/Layout/SidebarShell/index.tsx +0 -326
- package/src/components/Layout/index.ts +0 -10
- package/src/components/composite/ActionBar/ActionBar.stories.tsx +0 -26
- package/src/components/composite/ActionBar/index.tsx +0 -31
- package/src/components/composite/ActionStatus/ActionStatus.stories.tsx +0 -60
- package/src/components/composite/ActionStatus/index.tsx +0 -21
- package/src/components/composite/AskQuestionCardView/AskQuestionCardView.stories.tsx +0 -175
- package/src/components/composite/AskQuestionCardView/AskQuestionCardViewSource.test.mjs +0 -92
- package/src/components/composite/AskQuestionCardView/index.tsx +0 -119
- package/src/components/composite/AssistantChannelCard/AssistantChannelCard.stories.tsx +0 -265
- package/src/components/composite/AssistantChannelCard/AssistantChannelCardSource.test.mjs +0 -45
- package/src/components/composite/AssistantChannelCard/index.tsx +0 -102
- package/src/components/composite/AssistantToggleRow/AssistantToggleRow.stories.tsx +0 -197
- package/src/components/composite/AssistantToggleRow/index.tsx +0 -35
- package/src/components/composite/AttachmentCard/AttachmentCard.stories.tsx +0 -125
- package/src/components/composite/AttachmentCard/index.tsx +0 -80
- package/src/components/composite/BackButton/BackButton.stories.tsx +0 -93
- package/src/components/composite/BackButton/BackButtonSource.test.mjs +0 -29
- package/src/components/composite/BackButton/index.tsx +0 -48
- package/src/components/composite/Banner/Banner.stories.tsx +0 -180
- package/src/components/composite/Banner/BannerSource.test.mjs +0 -67
- package/src/components/composite/Banner/index.tsx +0 -125
- package/src/components/composite/BeaconIcons/BeaconIcons.stories.tsx +0 -153
- package/src/components/composite/BeaconIcons/index.tsx +0 -265
- package/src/components/composite/BeaconSpinner/BeaconSpinner.stories.tsx +0 -144
- package/src/components/composite/BeaconSpinner/index.tsx +0 -185
- package/src/components/composite/CatalogStates/CatalogEmptyState.stories.tsx +0 -108
- package/src/components/composite/CatalogStates/CatalogStates.stories.tsx +0 -53
- package/src/components/composite/CatalogStates/CatalogStatesSource.test.mjs +0 -149
- package/src/components/composite/CatalogStates/index.tsx +0 -113
- package/src/components/composite/Charts/Charts.stories.tsx +0 -174
- package/src/components/composite/Charts/ChartsSource.test.mjs +0 -111
- package/src/components/composite/Charts/index.tsx +0 -385
- package/src/components/composite/CodeBlock/CodeBlock.stories.tsx +0 -308
- package/src/components/composite/CodeBlock/CodeFaceSource.test.mjs +0 -89
- package/src/components/composite/CodeBlock/index.tsx +0 -300
- package/src/components/composite/CodeDiff/CodeDiff.stories.tsx +0 -169
- package/src/components/composite/CodeDiff/index.tsx +0 -373
- package/src/components/composite/CodePreview/CodePreview.stories.tsx +0 -127
- package/src/components/composite/CodePreview/CodePreviewSource.test.mjs +0 -43
- package/src/components/composite/CodePreview/index.tsx +0 -98
- package/src/components/composite/CommandPalette/CommandPalette.stories.tsx +0 -89
- package/src/components/composite/CommandPalette/CommandPaletteSource.test.mjs +0 -61
- package/src/components/composite/CommandPalette/index.tsx +0 -310
- package/src/components/composite/ContentRecommendation/ContentRecommendation.stories.tsx +0 -300
- package/src/components/composite/ContentRecommendation/ContentRecommendationSource.test.mjs +0 -48
- package/src/components/composite/ContentRecommendation/index.tsx +0 -116
- package/src/components/composite/ContextChip/ContextChip.stories.tsx +0 -123
- package/src/components/composite/ContextChip/ContextChipSource.test.mjs +0 -24
- package/src/components/composite/ContextChip/index.tsx +0 -25
- package/src/components/composite/ContextUsageIndicatorView/ContextUsageIndicatorSizeSource.test.mjs +0 -15
- package/src/components/composite/ContextUsageIndicatorView/ContextUsageIndicatorView.stories.tsx +0 -110
- package/src/components/composite/ContextUsageIndicatorView/ContextUsageLoadingSource.test.mjs +0 -23
- package/src/components/composite/ContextUsageIndicatorView/index.tsx +0 -139
- package/src/components/composite/Controls/Controls.stories.tsx +0 -227
- package/src/components/composite/Controls/index.tsx +0 -15
- package/src/components/composite/CreateProjectDialog/CreateProjectDialog.stories.tsx +0 -56
- package/src/components/composite/CreateProjectDialog/index.tsx +0 -70
- package/src/components/composite/DataManagementSectionView/DataManagementSectionView.stories.tsx +0 -123
- package/src/components/composite/DataManagementSectionView/DataManagementSectionViewSource.test.mjs +0 -45
- package/src/components/composite/DataManagementSectionView/index.tsx +0 -110
- package/src/components/composite/DataTable/DataTable.stories.tsx +0 -159
- package/src/components/composite/DataTable/DataTableSource.test.mjs +0 -96
- package/src/components/composite/DataTable/index.tsx +0 -373
- package/src/components/composite/DetailChrome/DetailChrome.stories.tsx +0 -61
- package/src/components/composite/DetailChrome/DetailChromeSource.test.mjs +0 -31
- package/src/components/composite/DetailChrome/index.tsx +0 -94
- package/src/components/composite/DetailPanel/DetailPanel.stories.tsx +0 -185
- package/src/components/composite/DetailPanel/DetailPanelSource.test.mjs +0 -49
- package/src/components/composite/DetailPanel/index.tsx +0 -120
- package/src/components/composite/DetailScaffold/DetailScaffold.stories.tsx +0 -203
- package/src/components/composite/DetailScaffold/DetailScaffoldSource.test.mjs +0 -38
- package/src/components/composite/DetailScaffold/index.tsx +0 -114
- package/src/components/composite/Dialog/Dialog.stories.tsx +0 -343
- package/src/components/composite/Dialog/DialogSource.test.mjs +0 -130
- package/src/components/composite/Dialog/index.tsx +0 -333
- package/src/components/composite/DropZone/DropZone.stories.tsx +0 -105
- package/src/components/composite/DropZone/DropZoneSource.test.mjs +0 -68
- package/src/components/composite/DropZone/index.tsx +0 -196
- package/src/components/composite/FSelect/FSelect.stories.tsx +0 -64
- package/src/components/composite/FSelect/index.tsx +0 -29
- package/src/components/composite/FeedbackContextMenuView/FeedbackContextMenuView.stories.tsx +0 -106
- package/src/components/composite/FeedbackContextMenuView/index.tsx +0 -51
- package/src/components/composite/FeedbackDialogView/FeedbackDialogView.stories.tsx +0 -291
- package/src/components/composite/FeedbackDialogView/index.tsx +0 -95
- package/src/components/composite/FileReferenceCard/FileReferenceCard.stories.tsx +0 -364
- package/src/components/composite/FileReferenceCard/FileReferenceCardSource.test.mjs +0 -48
- package/src/components/composite/FileReferenceCard/index.tsx +0 -122
- package/src/components/composite/FilterBar/FilterBar.stories.tsx +0 -167
- package/src/components/composite/FilterBar/FilterBarSource.test.mjs +0 -75
- package/src/components/composite/FilterBar/index.tsx +0 -206
- package/src/components/composite/FormField/FormField.stories.tsx +0 -158
- package/src/components/composite/FormField/FormFieldSource.test.mjs +0 -56
- package/src/components/composite/FormField/index.tsx +0 -219
- package/src/components/composite/HomeBackdrop/HomeBackdrop.stories.tsx +0 -54
- package/src/components/composite/HomeBackdrop/HomeBackdropSource.test.mjs +0 -50
- package/src/components/composite/HomeBackdrop/index.tsx +0 -53
- package/src/components/composite/Icons/Icons.stories.tsx +0 -153
- package/src/components/composite/Icons/IconsSource.test.mjs +0 -23
- package/src/components/composite/Icons/index.tsx +0 -1367
- package/src/components/composite/ImageCard/ImageCard.stories.tsx +0 -54
- package/src/components/composite/ImageCard/index.tsx +0 -33
- package/src/components/composite/ImagePreview/ImagePreview.stories.tsx +0 -172
- package/src/components/composite/ImagePreview/ImagePreviewSource.test.mjs +0 -95
- package/src/components/composite/ImagePreview/index.tsx +0 -339
- package/src/components/composite/ListRow/ListRow.stories.tsx +0 -257
- package/src/components/composite/ListRow/ListRowSource.test.mjs +0 -101
- package/src/components/composite/ListRow/index.tsx +0 -309
- package/src/components/composite/Markdown/Markdown.stories.tsx +0 -192
- package/src/components/composite/Markdown/MarkdownSource.test.mjs +0 -126
- package/src/components/composite/Markdown/MarkdownStyleSource.test.mjs +0 -167
- package/src/components/composite/Markdown/index.tsx +0 -702
- package/src/components/composite/MarkdownPreview/MarkdownPreview.stories.tsx +0 -174
- package/src/components/composite/MarkdownPreview/MarkdownPreviewTabsSource.test.mjs +0 -31
- package/src/components/composite/MarkdownPreview/MarkdownRenderedStyleSource.test.mjs +0 -84
- package/src/components/composite/MarkdownPreview/index.tsx +0 -140
- package/src/components/composite/MarkdownPreviewModalView/MarkdownPreviewModalView.stories.tsx +0 -104
- package/src/components/composite/MarkdownPreviewModalView/index.tsx +0 -85
- package/src/components/composite/MessageFeedbackDialog/MessageFeedbackDialog.stories.tsx +0 -66
- package/src/components/composite/MessageFeedbackDialog/index.tsx +0 -115
- package/src/components/composite/ModelCatalogErrorState/ModelCatalogErrorState.stories.tsx +0 -101
- package/src/components/composite/ModelCatalogErrorState/ModelCatalogRetrySource.test.mjs +0 -86
- package/src/components/composite/ModelCatalogErrorState/index.tsx +0 -59
- package/src/components/composite/ModelModalityFlow/ModelModalityFlow.stories.tsx +0 -224
- package/src/components/composite/ModelModalityFlow/ModelModalityFlowSource.test.mjs +0 -56
- package/src/components/composite/ModelModalityFlow/index.tsx +0 -113
- package/src/components/composite/ModelPickerList/ModelPickerList.stories.tsx +0 -313
- package/src/components/composite/ModelPickerList/index.tsx +0 -142
- package/src/components/composite/ModelSelect/ModelSelect.stories.tsx +0 -90
- package/src/components/composite/ModelSelect/index.tsx +0 -148
- package/src/components/composite/ModelsSettingsSectionView/ModelsSettingsSectionView.stories.tsx +0 -170
- package/src/components/composite/ModelsSettingsSectionView/index.tsx +0 -139
- package/src/components/composite/NativeControls/NativeControls.stories.tsx +0 -386
- package/src/components/composite/NativeControls/NativeControlsStyleSource.test.mjs +0 -63
- package/src/components/composite/NativeControls/index.tsx +0 -97
- package/src/components/composite/NavMenu/NavMenu.stories.tsx +0 -383
- package/src/components/composite/NavMenu/NavMenuSource.test.mjs +0 -56
- package/src/components/composite/NavMenu/index.tsx +0 -142
- package/src/components/composite/NoPlanPanelView/NoPlanPanelView.stories.tsx +0 -344
- package/src/components/composite/NoPlanPanelView/NoPlanPanelViewSource.test.mjs +0 -34
- package/src/components/composite/NoPlanPanelView/index.tsx +0 -97
- package/src/components/composite/OpenWithButton/OpenWithButton.stories.tsx +0 -78
- package/src/components/composite/OpenWithButton/index.tsx +0 -46
- package/src/components/composite/OrbitworkLogo/OrbitworkLogo.stories.tsx +0 -192
- package/src/components/composite/OrbitworkLogo/index.tsx +0 -207
- package/src/components/composite/OrbitworkModal/OrbitworkModal.stories.tsx +0 -58
- package/src/components/composite/OrbitworkModal/index.tsx +0 -31
- package/src/components/composite/PageHead/PageHead.stories.tsx +0 -235
- package/src/components/composite/PageHead/PageHeadSource.test.mjs +0 -76
- package/src/components/composite/PageHead/index.tsx +0 -128
- package/src/components/composite/PlanFeatureIcon/PlanFeatureIcon.stories.tsx +0 -205
- package/src/components/composite/PlanFeatureIcon/PlanFeatureIconSource.test.mjs +0 -38
- package/src/components/composite/PlanFeatureIcon/index.tsx +0 -48
- package/src/components/composite/PlanSettingsSectionView/PlanSettingsSectionView.stories.tsx +0 -231
- package/src/components/composite/PlanSettingsSectionView/PlanSettingsSectionViewSource.test.mjs +0 -85
- package/src/components/composite/PlanSettingsSectionView/index.tsx +0 -264
- package/src/components/composite/Popover/Popover.stories.tsx +0 -175
- package/src/components/composite/Popover/PopoverSource.test.mjs +0 -59
- package/src/components/composite/Popover/index.tsx +0 -176
- package/src/components/composite/PptxRenderer/ElementDispatcher/index.tsx +0 -70
- package/src/components/composite/PptxRenderer/PptxChromeStyleSource.test.mjs +0 -36
- package/src/components/composite/PptxRenderer/PptxRenderer.stories.tsx +0 -128
- package/src/components/composite/PptxRenderer/PptxSlide/index.tsx +0 -48
- package/src/components/composite/PptxRenderer/constants.ts +0 -2
- package/src/components/composite/PptxRenderer/elements/AudioElement/index.tsx +0 -48
- package/src/components/composite/PptxRenderer/elements/ChartElement/index.tsx +0 -172
- package/src/components/composite/PptxRenderer/elements/DiagramElement/index.tsx +0 -46
- package/src/components/composite/PptxRenderer/elements/GroupElement/index.tsx +0 -28
- package/src/components/composite/PptxRenderer/elements/ImageElement/index.tsx +0 -61
- package/src/components/composite/PptxRenderer/elements/MathElement/index.tsx +0 -57
- package/src/components/composite/PptxRenderer/elements/ShapeElement/index.tsx +0 -327
- package/src/components/composite/PptxRenderer/elements/TableElement/index.tsx +0 -90
- package/src/components/composite/PptxRenderer/elements/TextElement/index.tsx +0 -57
- package/src/components/composite/PptxRenderer/elements/VideoElement/index.tsx +0 -43
- package/src/components/composite/PptxRenderer/index.ts +0 -24
- package/src/components/composite/PptxRenderer/types.ts +0 -326
- package/src/components/composite/PptxRenderer/utils.ts +0 -129
- package/src/components/composite/ProjectSelect/ProjectSelect.stories.tsx +0 -112
- package/src/components/composite/ProjectSelect/ProjectSelectSource.test.mjs +0 -34
- package/src/components/composite/ProjectSelect/index.tsx +0 -155
- package/src/components/composite/RadioCard/RadioCard.stories.tsx +0 -130
- package/src/components/composite/RadioCard/RadioCardSource.test.mjs +0 -42
- package/src/components/composite/RadioCard/index.tsx +0 -171
- package/src/components/composite/RowOverflowMenu/RowOverflowMenu.stories.tsx +0 -113
- package/src/components/composite/RowOverflowMenu/RowOverflowMenuSource.test.mjs +0 -59
- package/src/components/composite/RowOverflowMenu/index.tsx +0 -101
- package/src/components/composite/SandboxPermissionPrompt/SandboxPermissionPrompt.stories.tsx +0 -159
- package/src/components/composite/SandboxPermissionPrompt/SandboxPermissionPromptSource.test.mjs +0 -71
- package/src/components/composite/SandboxPermissionPrompt/index.tsx +0 -157
- package/src/components/composite/SearchInput/SearchInput.stories.tsx +0 -127
- package/src/components/composite/SearchInput/index.tsx +0 -91
- package/src/components/composite/SearchResult/SearchResult.stories.tsx +0 -305
- package/src/components/composite/SearchResult/SearchResultSource.test.mjs +0 -45
- package/src/components/composite/SearchResult/index.tsx +0 -148
- package/src/components/composite/Section/Section.stories.tsx +0 -148
- package/src/components/composite/Section/SectionSource.test.mjs +0 -59
- package/src/components/composite/Section/index.tsx +0 -105
- package/src/components/composite/SelectionBulkBar/SelectionBulkBar.stories.tsx +0 -111
- package/src/components/composite/SelectionBulkBar/SelectionBulkBarSource.test.mjs +0 -44
- package/src/components/composite/SelectionBulkBar/index.tsx +0 -99
- package/src/components/composite/ShareStrip/ShareStrip.stories.tsx +0 -123
- package/src/components/composite/ShareStrip/index.tsx +0 -83
- package/src/components/composite/ShortcutSheet/ShortcutSheet.stories.tsx +0 -90
- package/src/components/composite/ShortcutSheet/ShortcutSheetSource.test.mjs +0 -49
- package/src/components/composite/ShortcutSheet/index.tsx +0 -163
- package/src/components/composite/SitesArtifactCardView/SitesArtifactCardView.stories.tsx +0 -328
- package/src/components/composite/SitesArtifactCardView/SitesArtifactCardViewSource.test.mjs +0 -45
- package/src/components/composite/SitesArtifactCardView/index.tsx +0 -100
- package/src/components/composite/Skeleton/Skeleton.stories.tsx +0 -188
- package/src/components/composite/Skeleton/SkeletonSource.test.mjs +0 -25
- package/src/components/composite/Skeleton/index.tsx +0 -152
- package/src/components/composite/Splash/Splash.stories.tsx +0 -150
- package/src/components/composite/Splash/index.tsx +0 -229
- package/src/components/composite/StatusTag/StatusTag.stories.tsx +0 -66
- package/src/components/composite/StatusTag/StatusTagSource.test.mjs +0 -64
- package/src/components/composite/StatusTag/index.tsx +0 -78
- package/src/components/composite/StepList/StepList.stories.tsx +0 -352
- package/src/components/composite/StepList/index.tsx +0 -23
- package/src/components/composite/Tag/Tag.stories.tsx +0 -279
- package/src/components/composite/Tag/TagSource.test.mjs +0 -67
- package/src/components/composite/Tag/index.tsx +0 -229
- package/src/components/composite/TimePicker/TimePicker.stories.tsx +0 -91
- package/src/components/composite/TimePicker/TimePickerSource.test.mjs +0 -98
- package/src/components/composite/TimePicker/index.tsx +0 -208
- package/src/components/composite/TitleBar/TitleBar.stories.tsx +0 -329
- package/src/components/composite/TitleBar/TitleBarSource.test.mjs +0 -140
- package/src/components/composite/TitleBar/index.tsx +0 -350
- package/src/components/composite/Toast/Toast.stories.tsx +0 -304
- package/src/components/composite/Toast/ToastSource.test.mjs +0 -63
- package/src/components/composite/Toast/index.tsx +0 -135
- package/src/components/composite/Tooltip/Tooltip.stories.tsx +0 -304
- package/src/components/composite/Tooltip/TooltipSource.test.mjs +0 -34
- package/src/components/composite/Tooltip/index.tsx +0 -204
- package/src/components/composite/TranscriptDividers/TranscriptDividers.stories.tsx +0 -160
- package/src/components/composite/TranscriptDividers/TranscriptDividersSource.test.mjs +0 -90
- package/src/components/composite/TranscriptDividers/index.tsx +0 -352
- package/src/components/composite/WCardShell/WCardShell.stories.tsx +0 -228
- package/src/components/composite/WCardShell/index.tsx +0 -101
- package/src/components/composite/index.ts +0 -81
- package/src/components/domain/artifacts/ArtifactPreviewSidebarView/ArtifactPreviewSidebarView.stories.tsx +0 -128
- package/src/components/domain/artifacts/ArtifactPreviewSidebarView/ArtifactPreviewSidebarViewSource.test.mjs +0 -69
- package/src/components/domain/artifacts/ArtifactPreviewSidebarView/index.tsx +0 -212
- package/src/components/domain/artifacts/index.ts +0 -1
- package/src/components/domain/browser/BrowserAnnotationPopupView/BrowserAnnotationPopupView.stories.tsx +0 -211
- package/src/components/domain/browser/BrowserAnnotationPopupView/BrowserAnnotationPopupViewSource.test.mjs +0 -82
- package/src/components/domain/browser/BrowserAnnotationPopupView/index.tsx +0 -235
- package/src/components/domain/browser/BrowserDeviceToolbarView/BrowserDeviceToolbarView.stories.tsx +0 -260
- package/src/components/domain/browser/BrowserDeviceToolbarView/BrowserDeviceToolbarViewSource.test.mjs +0 -12
- package/src/components/domain/browser/BrowserDeviceToolbarView/index.tsx +0 -154
- package/src/components/domain/browser/BrowserFindBarView/BrowserFindBarView.stories.tsx +0 -52
- package/src/components/domain/browser/BrowserFindBarView/index.tsx +0 -111
- package/src/components/domain/browser/BrowserImportDialogView/BrowserImportDialogView.stories.tsx +0 -89
- package/src/components/domain/browser/BrowserImportDialogView/index.tsx +0 -155
- package/src/components/domain/browser/BrowserLoadErrorView/BrowserLoadErrorView.stories.tsx +0 -197
- package/src/components/domain/browser/BrowserLoadErrorView/BrowserLoadErrorViewSource.test.mjs +0 -29
- package/src/components/domain/browser/BrowserLoadErrorView/index.tsx +0 -45
- package/src/components/domain/browser/BrowserMoreMenuView/BrowserMoreMenuView.stories.tsx +0 -66
- package/src/components/domain/browser/BrowserMoreMenuView/index.tsx +0 -268
- package/src/components/domain/browser/BrowserNavBarView/BrowserNavBarView.stories.tsx +0 -149
- package/src/components/domain/browser/BrowserNavBarView/index.tsx +0 -156
- package/src/components/domain/browser/BrowserTabBarView/index.tsx +0 -18
- package/src/components/domain/browser/SubAgentPane/SubAgentPane.stories.tsx +0 -96
- package/src/components/domain/browser/SubAgentPane/SubAgentPaneSource.test.mjs +0 -48
- package/src/components/domain/browser/SubAgentPane/index.tsx +0 -121
- package/src/components/domain/browser/TerminalPane/TerminalPane.stories.tsx +0 -95
- package/src/components/domain/browser/TerminalPane/TerminalPaneSource.test.mjs +0 -52
- package/src/components/domain/browser/TerminalPane/index.tsx +0 -75
- package/src/components/domain/browser/WebPreview/WebPreview.stories.tsx +0 -71
- package/src/components/domain/browser/WebPreview/index.tsx +0 -141
- package/src/components/domain/browser/WebPreviewConsole/WebPreviewConsole.stories.tsx +0 -61
- package/src/components/domain/browser/WebPreviewConsole/WebPreviewConsoleSource.test.mjs +0 -66
- package/src/components/domain/browser/WebPreviewConsole/index.tsx +0 -239
- package/src/components/domain/browser/WebPreviewDialog/WebPreviewDialog.stories.tsx +0 -288
- package/src/components/domain/browser/WebPreviewDialog/WebPreviewDialogSource.test.mjs +0 -62
- package/src/components/domain/browser/WebPreviewDialog/index.tsx +0 -82
- package/src/components/domain/browser/WebPreviewNav/WebPreviewNav.stories.tsx +0 -462
- package/src/components/domain/browser/WebPreviewNav/WebPreviewNavSource.test.mjs +0 -353
- package/src/components/domain/browser/WebPreviewNav/index.tsx +0 -351
- package/src/components/domain/browser/WebPreviewShell/WebPreviewShell.stories.tsx +0 -226
- package/src/components/domain/browser/WebPreviewShell/WebPreviewShellSource.test.mjs +0 -172
- package/src/components/domain/browser/WebPreviewShell/index.tsx +0 -324
- package/src/components/domain/browser/index.ts +0 -45
- package/src/components/domain/chat/AgentLoopSegment/AgentLoopSegment.stories.tsx +0 -107
- package/src/components/domain/chat/AgentLoopSegment/AgentLoopSegmentSource.test.mjs +0 -45
- package/src/components/domain/chat/AgentLoopSegment/index.tsx +0 -29
- package/src/components/domain/chat/AgentTurn/AgentTurn.stories.tsx +0 -162
- package/src/components/domain/chat/AgentTurn/AgentTurnSource.test.mjs +0 -98
- package/src/components/domain/chat/AgentTurn/beaconContext.ts +0 -37
- package/src/components/domain/chat/AgentTurn/index.tsx +0 -226
- package/src/components/domain/chat/ArtifactCard/ArtifactCard.stories.tsx +0 -127
- package/src/components/domain/chat/ArtifactCard/index.tsx +0 -249
- package/src/components/domain/chat/Attachment/Attachment.stories.tsx +0 -235
- package/src/components/domain/chat/Attachment/AttachmentSource.test.mjs +0 -160
- package/src/components/domain/chat/Attachment/index.tsx +0 -857
- package/src/components/domain/chat/AuthorizationCard/AuthorizationCard.stories.tsx +0 -53
- package/src/components/domain/chat/AuthorizationCard/AuthorizationCardSource.test.mjs +0 -80
- package/src/components/domain/chat/AuthorizationCard/index.tsx +0 -89
- package/src/components/domain/chat/ChatBubble/ChatBubble.stories.tsx +0 -32
- package/src/components/domain/chat/ChatBubble/index.tsx +0 -24
- package/src/components/domain/chat/ChatMessage/ChatMessage.stories.tsx +0 -31
- package/src/components/domain/chat/ChatMessage/index.tsx +0 -23
- package/src/components/domain/chat/ChatR2ReviewSource.test.mjs +0 -98
- package/src/components/domain/chat/ChatThinking/ChatThinking.stories.tsx +0 -125
- package/src/components/domain/chat/ChatThinking/index.tsx +0 -55
- package/src/components/domain/chat/Chatbot/Chatbot.stories.tsx +0 -49
- package/src/components/domain/chat/Chatbot/index.tsx +0 -37
- package/src/components/domain/chat/Composer/Composer.stories.tsx +0 -227
- package/src/components/domain/chat/Composer/ComposerSource.test.mjs +0 -175
- package/src/components/domain/chat/Composer/index.tsx +0 -450
- package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrum.stories.tsx +0 -203
- package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrum.tsx +0 -110
- package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrumSource.test.mjs +0 -54
- package/src/components/domain/chat/Composer/parts/ComposerAuthorization.stories.tsx +0 -155
- package/src/components/domain/chat/Composer/parts/ComposerAuthorization.tsx +0 -108
- package/src/components/domain/chat/Composer/parts/ComposerMentions.stories.tsx +0 -76
- package/src/components/domain/chat/Composer/parts/ComposerMentions.tsx +0 -83
- package/src/components/domain/chat/Composer/parts/ComposerMentionsSource.test.mjs +0 -85
- package/src/components/domain/chat/Composer/parts/ComposerMenu.stories.tsx +0 -266
- package/src/components/domain/chat/Composer/parts/ComposerMenu.tsx +0 -232
- package/src/components/domain/chat/Composer/parts/ComposerMenuPopover.stories.tsx +0 -166
- package/src/components/domain/chat/Composer/parts/ComposerMenuPopover.tsx +0 -87
- package/src/components/domain/chat/Composer/parts/ComposerMenuPopoverSource.test.mjs +0 -56
- package/src/components/domain/chat/Composer/parts/ComposerPopover.stories.tsx +0 -257
- package/src/components/domain/chat/Composer/parts/ComposerPopover.tsx +0 -221
- package/src/components/domain/chat/Composer/parts/ComposerPopoverSource.test.mjs +0 -71
- package/src/components/domain/chat/Composer/parts/ComposerProjectPicker.stories.tsx +0 -260
- package/src/components/domain/chat/Composer/parts/ComposerProjectPicker.tsx +0 -246
- package/src/components/domain/chat/Composer/parts/ComposerProjectPickerSource.test.mjs +0 -46
- package/src/components/domain/chat/Composer/parts/ComposerQueue.stories.tsx +0 -275
- package/src/components/domain/chat/Composer/parts/ComposerQueue.tsx +0 -155
- package/src/components/domain/chat/Composer/parts/ComposerQueueSource.test.mjs +0 -95
- package/src/components/domain/chat/Composer/parts/ComposerVoiceInput.stories.tsx +0 -77
- package/src/components/domain/chat/Composer/parts/ComposerVoiceInput.tsx +0 -70
- package/src/components/domain/chat/Composer/parts/mountChip.ts +0 -21
- package/src/components/domain/chat/ContextUsage/ContextUsage.stories.tsx +0 -62
- package/src/components/domain/chat/ContextUsage/index.tsx +0 -69
- package/src/components/domain/chat/ExecutionSummary/ExecutionSummary.stories.tsx +0 -238
- package/src/components/domain/chat/ExecutionSummary/ExecutionSummarySource.test.mjs +0 -210
- package/src/components/domain/chat/ExecutionSummary/index.tsx +0 -487
- package/src/components/domain/chat/Message/Message.stories.tsx +0 -264
- package/src/components/domain/chat/Message/index.tsx +0 -44
- package/src/components/domain/chat/MessageActions/MessageActions.stories.tsx +0 -132
- package/src/components/domain/chat/MessageActions/MessageActionsSource.test.mjs +0 -79
- package/src/components/domain/chat/MessageActions/index.tsx +0 -186
- package/src/components/domain/chat/PlanCard/PlanCard.stories.tsx +0 -87
- package/src/components/domain/chat/PlanCard/index.tsx +0 -170
- package/src/components/domain/chat/RichContent/RichContent.stories.tsx +0 -102
- package/src/components/domain/chat/RichContent/RichContentSource.test.mjs +0 -82
- package/src/components/domain/chat/RichContent/index.tsx +0 -465
- package/src/components/domain/chat/SubAgentThread/SubAgentThread.stories.tsx +0 -119
- package/src/components/domain/chat/SubAgentThread/index.tsx +0 -104
- package/src/components/domain/chat/Thinking/Thinking.stories.tsx +0 -196
- package/src/components/domain/chat/Thinking/ThinkingInlineSource.test.mjs +0 -154
- package/src/components/domain/chat/Thinking/index.tsx +0 -237
- package/src/components/domain/chat/ToolCallRow/ToolCallRow.stories.tsx +0 -105
- package/src/components/domain/chat/ToolCallRow/ToolCallRowSource.test.mjs +0 -83
- package/src/components/domain/chat/ToolCallRow/index.tsx +0 -113
- package/src/components/domain/chat/Transcript/Transcript.stories.tsx +0 -296
- package/src/components/domain/chat/Transcript/TranscriptSource.test.mjs +0 -189
- package/src/components/domain/chat/Transcript/index.tsx +0 -187
- package/src/components/domain/chat/TranscriptSpine/TranscriptSpine.stories.tsx +0 -124
- package/src/components/domain/chat/TranscriptSpine/index.tsx +0 -245
- package/src/components/domain/chat/UserTurn/UserTurn.stories.tsx +0 -176
- package/src/components/domain/chat/UserTurn/UserTurnSource.test.mjs +0 -150
- package/src/components/domain/chat/UserTurn/index.tsx +0 -194
- package/src/components/domain/chat/index.ts +0 -22
- package/src/components/domain/desktop/DesktopAccountMenuView/DesktopAccountMenuView.stories.tsx +0 -116
- package/src/components/domain/desktop/DesktopAccountMenuView/DesktopAccountMenuViewSource.test.mjs +0 -80
- package/src/components/domain/desktop/DesktopAccountMenuView/index.tsx +0 -355
- package/src/components/domain/desktop/DesktopAppearanceSettings/DesktopAppearanceSettings.stories.tsx +0 -96
- package/src/components/domain/desktop/DesktopAppearanceSettings/DesktopAppearanceSettingsSource.test.mjs +0 -89
- package/src/components/domain/desktop/DesktopAppearanceSettings/index.tsx +0 -155
- package/src/components/domain/desktop/DesktopAssistantConfigView/DesktopAssistantConfigView.stories.tsx +0 -275
- package/src/components/domain/desktop/DesktopAssistantConfigView/DesktopAssistantConfigViewSource.test.mjs +0 -37
- package/src/components/domain/desktop/DesktopAssistantConfigView/index.tsx +0 -221
- package/src/components/domain/desktop/DesktopCatalogView/DesktopCatalogView.stories.tsx +0 -537
- package/src/components/domain/desktop/DesktopCatalogView/DesktopCatalogViewSource.test.mjs +0 -339
- package/src/components/domain/desktop/DesktopCatalogView/index.tsx +0 -1074
- package/src/components/domain/desktop/DesktopChatBranchDivider/DesktopChatBranchDivider.stories.tsx +0 -58
- package/src/components/domain/desktop/DesktopChatBranchDivider/index.tsx +0 -33
- package/src/components/domain/desktop/DesktopChatEmptyStateView/DesktopChatEmptyStateView.stories.tsx +0 -75
- package/src/components/domain/desktop/DesktopChatEmptyStateView/DesktopChatEmptyStateViewSource.test.mjs +0 -54
- package/src/components/domain/desktop/DesktopChatEmptyStateView/index.tsx +0 -64
- package/src/components/domain/desktop/DesktopChatHeaderView/DesktopChatHeaderView.stories.tsx +0 -83
- package/src/components/domain/desktop/DesktopChatHeaderView/DesktopChatHeaderViewSource.test.mjs +0 -126
- package/src/components/domain/desktop/DesktopChatHeaderView/index.tsx +0 -169
- package/src/components/domain/desktop/DesktopChatMessageView/DesktopChatMessageView.stories.tsx +0 -170
- package/src/components/domain/desktop/DesktopChatMessageView/DesktopChatMessageViewSource.test.mjs +0 -47
- package/src/components/domain/desktop/DesktopChatMessageView/index.tsx +0 -213
- package/src/components/domain/desktop/DesktopChatTurnView/DesktopChatTurnView.stories.tsx +0 -498
- package/src/components/domain/desktop/DesktopChatTurnView/DesktopChatTurnViewSource.test.mjs +0 -187
- package/src/components/domain/desktop/DesktopChatTurnView/index.tsx +0 -490
- package/src/components/domain/desktop/DesktopComposer/DesktopComposer.stories.tsx +0 -195
- package/src/components/domain/desktop/DesktopComposer/DesktopComposerModelPickerSource.test.mjs +0 -132
- package/src/components/domain/desktop/DesktopComposer/DesktopComposerMountChipSource.test.mjs +0 -43
- package/src/components/domain/desktop/DesktopComposer/DesktopComposerResponsiveSource.test.mjs +0 -44
- package/src/components/domain/desktop/DesktopComposer/DesktopMcpFormThemeSource.test.mjs +0 -30
- package/src/components/domain/desktop/DesktopComposer/index.tsx +0 -206
- package/src/components/domain/desktop/DesktopConnectorDetailView/DesktopConnectorDetailView.stories.tsx +0 -72
- package/src/components/domain/desktop/DesktopConnectorDetailView/DesktopConnectorDetailViewSource.test.mjs +0 -81
- package/src/components/domain/desktop/DesktopConnectorDetailView/index.tsx +0 -301
- package/src/components/domain/desktop/DesktopHomeView/DesktopHomeView.stories.tsx +0 -103
- package/src/components/domain/desktop/DesktopHomeView/DesktopHomeViewSource.test.mjs +0 -51
- package/src/components/domain/desktop/DesktopHomeView/index.tsx +0 -122
- package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/DesktopLibraryAuthorizationDialog.stories.tsx +0 -55
- package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/DesktopLibraryAuthorizationDialogSource.test.mjs +0 -22
- package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/index.tsx +0 -171
- package/src/components/domain/desktop/DesktopLibraryPageView/DesktopLibraryPageView.stories.tsx +0 -49
- package/src/components/domain/desktop/DesktopLibraryPageView/index.tsx +0 -49
- package/src/components/domain/desktop/DesktopLoginView/DesktopLoginView.css +0 -75
- package/src/components/domain/desktop/DesktopLoginView/DesktopLoginView.stories.tsx +0 -230
- package/src/components/domain/desktop/DesktopLoginView/DesktopLoginViewSource.test.mjs +0 -156
- package/src/components/domain/desktop/DesktopLoginView/index.tsx +0 -432
- package/src/components/domain/desktop/DesktopOnboardingTourView/DesktopOnboardingTourView.stories.tsx +0 -103
- package/src/components/domain/desktop/DesktopOnboardingTourView/DesktopOnboardingTourViewSource.test.mjs +0 -57
- package/src/components/domain/desktop/DesktopOnboardingTourView/index.tsx +0 -189
- package/src/components/domain/desktop/DesktopPet/DesktopPet.fixture.ts +0 -243
- package/src/components/domain/desktop/DesktopPet/DesktopPet.stories.tsx +0 -337
- package/src/components/domain/desktop/DesktopPet/DesktopPetSource.test.mjs +0 -191
- package/src/components/domain/desktop/DesktopPet/index.tsx +0 -591
- package/src/components/domain/desktop/DesktopPetSettings/DesktopPetSettings.stories.tsx +0 -159
- package/src/components/domain/desktop/DesktopPetSettings/DesktopPetSettingsSource.test.mjs +0 -76
- package/src/components/domain/desktop/DesktopPetSettings/index.tsx +0 -140
- package/src/components/domain/desktop/DesktopRunStatusView/DesktopRunStatusView.stories.tsx +0 -166
- package/src/components/domain/desktop/DesktopRunStatusView/DesktopRunStatusViewSource.test.mjs +0 -51
- package/src/components/domain/desktop/DesktopRunStatusView/index.tsx +0 -34
- package/src/components/domain/desktop/DesktopSelectionCard/DesktopSelectionCard.stories.tsx +0 -122
- package/src/components/domain/desktop/DesktopSelectionCard/DesktopSelectionCardSource.test.mjs +0 -42
- package/src/components/domain/desktop/DesktopSelectionCard/index.tsx +0 -75
- package/src/components/domain/desktop/DesktopSettingsMemorySection/DesktopSettingsMemorySection.stories.tsx +0 -225
- package/src/components/domain/desktop/DesktopSettingsMemorySection/DesktopSettingsMemorySectionSource.test.mjs +0 -105
- package/src/components/domain/desktop/DesktopSettingsMemorySection/index.tsx +0 -340
- package/src/components/domain/desktop/DesktopSettingsView/DesktopSettingsView.stories.tsx +0 -177
- package/src/components/domain/desktop/DesktopSettingsView/DesktopSettingsViewSource.test.mjs +0 -195
- package/src/components/domain/desktop/DesktopSettingsView/index.tsx +0 -176
- package/src/components/domain/desktop/DesktopShareSelectionBarView/DesktopShareSelectionBarView.stories.tsx +0 -77
- package/src/components/domain/desktop/DesktopShareSelectionBarView/DesktopShareSelectionBarViewSource.test.mjs +0 -76
- package/src/components/domain/desktop/DesktopShareSelectionBarView/index.tsx +0 -55
- package/src/components/domain/desktop/DesktopSidebarView/DesktopSidebarView.stories.tsx +0 -454
- package/src/components/domain/desktop/DesktopSidebarView/DesktopSidebarViewSource.test.mjs +0 -388
- package/src/components/domain/desktop/DesktopSidebarView/index.tsx +0 -1111
- package/src/components/domain/desktop/DesktopSiteReleasesView/DesktopSiteReleasesView.stories.tsx +0 -369
- package/src/components/domain/desktop/DesktopSiteReleasesView/DesktopSiteReleasesViewSource.test.mjs +0 -123
- package/src/components/domain/desktop/DesktopSiteReleasesView/index.tsx +0 -392
- package/src/components/domain/desktop/DesktopSitesListView/DesktopSitesListView.stories.tsx +0 -244
- package/src/components/domain/desktop/DesktopSitesListView/DesktopSitesListViewSource.test.mjs +0 -198
- package/src/components/domain/desktop/DesktopSitesListView/index.tsx +0 -417
- package/src/components/domain/desktop/DesktopSkillsPageView/DesktopSkillsPageView.stories.tsx +0 -230
- package/src/components/domain/desktop/DesktopSkillsPageView/DesktopSkillsPageViewSource.test.mjs +0 -149
- package/src/components/domain/desktop/DesktopSkillsPageView/index.tsx +0 -235
- package/src/components/domain/desktop/DesktopTaskDetailView/index.tsx +0 -111
- package/src/components/domain/desktop/DesktopToolCallView/DesktopToolCallListViewSource.test.mjs +0 -302
- package/src/components/domain/desktop/DesktopToolCallView/DesktopToolCallView.stories.tsx +0 -409
- package/src/components/domain/desktop/DesktopToolCallView/index.tsx +0 -388
- package/src/components/domain/desktop/DesktopWorkbenchShell/DesktopWorkbenchShell.stories.tsx +0 -418
- package/src/components/domain/desktop/DesktopWorkbenchShell/DesktopWorkbenchShellSource.test.mjs +0 -151
- package/src/components/domain/desktop/DesktopWorkbenchShell/index.tsx +0 -167
- package/src/components/domain/desktop/DesktopWorkspacePageView/DesktopWorkspacePageView.stories.tsx +0 -135
- package/src/components/domain/desktop/DesktopWorkspacePageView/DesktopWorkspacePageViewSource.test.mjs +0 -57
- package/src/components/domain/desktop/DesktopWorkspacePageView/index.tsx +0 -114
- package/src/components/domain/desktop/DesktopWorkspaceView/DesktopWorkspaceView.stories.tsx +0 -227
- package/src/components/domain/desktop/DesktopWorkspaceView/DesktopWorkspaceViewSource.test.mjs +0 -175
- package/src/components/domain/desktop/DesktopWorkspaceView/index.tsx +0 -580
- package/src/components/domain/desktop/ResourceManagement/ResourceManagement.stories.tsx +0 -19
- package/src/components/domain/desktop/ResourceManagement/ResourceManagementSource.test.mjs +0 -54
- package/src/components/domain/desktop/ResourceManagement/SharesList.tsx +0 -323
- package/src/components/domain/desktop/ResourceManagement/SnapshotViews.tsx +0 -92
- package/src/components/domain/desktop/ResourceManagement/SnapshotViewsSource.test.mjs +0 -15
- package/src/components/domain/desktop/ResourceManagement/index.tsx +0 -246
- package/src/components/domain/desktop/ShareSettingsDialogView/index.tsx +0 -234
- package/src/components/domain/desktop/SidePanelEmpty/SidePanelEmpty.stories.tsx +0 -100
- package/src/components/domain/desktop/SidePanelEmpty/SidePanelEmptySource.test.mjs +0 -67
- package/src/components/domain/desktop/SidePanelEmpty/index.tsx +0 -113
- package/src/components/domain/desktop/StarterCapsules/StarterCapsules.stories.tsx +0 -65
- package/src/components/domain/desktop/StarterCapsules/StarterCapsulesSource.test.mjs +0 -43
- package/src/components/domain/desktop/StarterCapsules/index.tsx +0 -90
- package/src/components/domain/desktop/WorkbenchSidePanel/WorkbenchSidePanel.stories.tsx +0 -59
- package/src/components/domain/desktop/WorkbenchSidePanel/WorkbenchSidePanelSource.test.mjs +0 -51
- package/src/components/domain/desktop/WorkbenchSidePanel/index.tsx +0 -74
- package/src/components/domain/desktop/WorkspaceMigrateConfirm/WorkspaceMigrateConfirm.stories.tsx +0 -79
- package/src/components/domain/desktop/WorkspaceMigrateConfirm/WorkspaceMigrateConfirmSource.test.mjs +0 -34
- package/src/components/domain/desktop/WorkspaceMigrateConfirm/index.tsx +0 -92
- package/src/components/domain/desktop/index.ts +0 -64
- package/src/components/domain/files/FileBrowser/FileBrowser.stories.tsx +0 -397
- package/src/components/domain/files/FileBrowser/FileBrowserSource.test.mjs +0 -75
- package/src/components/domain/files/FileBrowser/index.tsx +0 -221
- package/src/components/domain/files/FileIcon/FileIcon.stories.tsx +0 -207
- package/src/components/domain/files/FileIcon/FileIconSource.test.mjs +0 -39
- package/src/components/domain/files/FileIcon/index.tsx +0 -133
- package/src/components/domain/files/FilePreviewContentView/FilePreviewContentView.stories.tsx +0 -242
- package/src/components/domain/files/FilePreviewContentView/FilePreviewContentViewSource.test.mjs +0 -44
- package/src/components/domain/files/FilePreviewContentView/index.tsx +0 -125
- package/src/components/domain/files/FileTree/FileTree.stories.tsx +0 -204
- package/src/components/domain/files/FileTree/FileTreeSource.test.mjs +0 -18
- package/src/components/domain/files/FileTree/index.tsx +0 -106
- package/src/components/domain/files/PreviewDialog/PreviewDialog.stories.tsx +0 -178
- package/src/components/domain/files/PreviewDialog/PreviewDialogSource.test.mjs +0 -92
- package/src/components/domain/files/PreviewDialog/index.tsx +0 -294
- package/src/components/domain/files/index.ts +0 -5
- package/src/components/domain/index.ts +0 -8
- package/src/components/domain/office/CsvPreview/CsvPreview.stories.tsx +0 -264
- package/src/components/domain/office/CsvPreview/CsvPreviewSource.test.mjs +0 -77
- package/src/components/domain/office/CsvPreview/index.tsx +0 -224
- package/src/components/domain/office/OfficePreview/OfficePreview.stories.tsx +0 -265
- package/src/components/domain/office/OfficePreview/OfficePreviewDialog.stories.tsx +0 -71
- package/src/components/domain/office/OfficePreview/OfficePreviewDialog.tsx +0 -43
- package/src/components/domain/office/OfficePreview/OfficePreviewSource.test.mjs +0 -126
- package/src/components/domain/office/OfficePreview/index.tsx +0 -782
- package/src/components/domain/office/PdfPreview/PdfPreview.stories.tsx +0 -280
- package/src/components/domain/office/PdfPreview/PdfPreviewDialog.stories.tsx +0 -61
- package/src/components/domain/office/PdfPreview/PdfPreviewDialog.tsx +0 -61
- package/src/components/domain/office/PdfPreview/PdfPreviewSource.test.mjs +0 -70
- package/src/components/domain/office/PdfPreview/index.tsx +0 -217
- package/src/components/domain/office/index.ts +0 -5
- package/src/components/domain/skills/McpServerListView/McpServerListView.stories.tsx +0 -510
- package/src/components/domain/skills/McpServerListView/McpServerListViewSource.test.mjs +0 -101
- package/src/components/domain/skills/McpServerListView/index.tsx +0 -250
- package/src/components/domain/skills/SkillAvatarView/SkillAvatarView.stories.tsx +0 -121
- package/src/components/domain/skills/SkillAvatarView/SkillAvatarViewSource.test.mjs +0 -67
- package/src/components/domain/skills/SkillAvatarView/index.tsx +0 -112
- package/src/components/domain/skills/SkillCardView/SkillCardView.stories.tsx +0 -374
- package/src/components/domain/skills/SkillCardView/SkillCardViewSource.test.mjs +0 -35
- package/src/components/domain/skills/SkillCardView/index.tsx +0 -88
- package/src/components/domain/skills/SkillDetailPanelView/SkillDetailPanelView.stories.tsx +0 -113
- package/src/components/domain/skills/SkillDetailPanelView/index.tsx +0 -115
- package/src/components/domain/skills/SkillDetailView/SkillDetailView.stories.tsx +0 -274
- package/src/components/domain/skills/SkillDetailView/index.tsx +0 -121
- package/src/components/domain/skills/SkillImportDialogView/SkillImportDialogView.stories.tsx +0 -128
- package/src/components/domain/skills/SkillImportDialogView/SkillImportDialogViewSource.test.mjs +0 -11
- package/src/components/domain/skills/SkillImportDialogView/index.tsx +0 -147
- package/src/components/domain/skills/ToolDetailModalView/ToolDetailModalView.stories.tsx +0 -160
- package/src/components/domain/skills/ToolDetailModalView/ToolDetailModalViewSource.test.mjs +0 -99
- package/src/components/domain/skills/ToolDetailModalView/index.tsx +0 -160
- package/src/components/domain/skills/index.ts +0 -7
- package/src/components/domain/tasks/ScheduledTaskCardView/ScheduledTaskCardView.stories.tsx +0 -120
- package/src/components/domain/tasks/ScheduledTaskCardView/ScheduledTaskCardViewSource.test.mjs +0 -40
- package/src/components/domain/tasks/ScheduledTaskCardView/index.tsx +0 -135
- package/src/components/domain/tasks/ScheduledTaskDeleteDialog/ScheduledTaskDeleteDialog.stories.tsx +0 -56
- package/src/components/domain/tasks/ScheduledTaskDeleteDialog/ScheduledTaskDeleteDialogSource.test.mjs +0 -35
- package/src/components/domain/tasks/ScheduledTaskDeleteDialog/index.tsx +0 -73
- package/src/components/domain/tasks/ScheduledTaskDetailView/ScheduledTaskDetailView.stories.tsx +0 -121
- package/src/components/domain/tasks/ScheduledTaskDetailView/ScheduledTaskDetailViewSource.test.mjs +0 -115
- package/src/components/domain/tasks/ScheduledTaskDetailView/index.tsx +0 -223
- package/src/components/domain/tasks/ScheduledTasksSpaceView/ScheduledTasksSpaceView.stories.tsx +0 -526
- package/src/components/domain/tasks/ScheduledTasksSpaceView/ScheduledTasksSpaceViewSource.test.mjs +0 -85
- package/src/components/domain/tasks/ScheduledTasksSpaceView/index.tsx +0 -118
- package/src/components/domain/tasks/index.ts +0 -4
- package/src/components/domain/theme/SkinManager.stories.tsx +0 -43
- package/src/components/domain/theme/SkinManagerUI.tsx +0 -382
- package/src/components/domain/theme/ThemeDemo.stories.tsx +0 -12
- package/src/components/domain/theme/ThemeDemo.tsx +0 -224
- package/src/components/index.ts +0 -11
- package/src/components/primitives/Avatar/Avatar.stories.tsx +0 -170
- package/src/components/primitives/Avatar/AvatarSource.test.mjs +0 -37
- package/src/components/primitives/Avatar/index.tsx +0 -180
- package/src/components/primitives/BackTop/BackTop.stories.tsx +0 -122
- package/src/components/primitives/BackTop/BackTopSource.test.mjs +0 -61
- package/src/components/primitives/BackTop/index.tsx +0 -93
- package/src/components/primitives/Badge/Badge.stories.tsx +0 -376
- package/src/components/primitives/Badge/BadgeSource.test.mjs +0 -27
- package/src/components/primitives/Badge/index.tsx +0 -65
- package/src/components/primitives/Button/Button.stories.tsx +0 -287
- package/src/components/primitives/Button/ButtonSource.test.mjs +0 -84
- package/src/components/primitives/Button/index.tsx +0 -219
- package/src/components/primitives/Card/Card.stories.tsx +0 -186
- package/src/components/primitives/Card/CardSource.test.mjs +0 -73
- package/src/components/primitives/Card/index.tsx +0 -137
- package/src/components/primitives/Checkbox/Checkbox.stories.tsx +0 -79
- package/src/components/primitives/Checkbox/CheckboxSource.test.mjs +0 -43
- package/src/components/primitives/Checkbox/index.tsx +0 -87
- package/src/components/primitives/Chip/Chip.stories.tsx +0 -149
- package/src/components/primitives/Chip/ChipSource.test.mjs +0 -73
- package/src/components/primitives/Chip/index.tsx +0 -252
- package/src/components/primitives/Divider/Divider.stories.tsx +0 -68
- package/src/components/primitives/Divider/DividerSource.test.mjs +0 -26
- package/src/components/primitives/Divider/index.tsx +0 -65
- package/src/components/primitives/Dropdown/Dropdown.stories.tsx +0 -38
- package/src/components/primitives/Dropdown/DropdownSource.test.mjs +0 -23
- package/src/components/primitives/Dropdown/index.tsx +0 -29
- package/src/components/primitives/EmptyState/EmptyState.stories.tsx +0 -159
- package/src/components/primitives/EmptyState/EmptyStateSource.test.mjs +0 -169
- package/src/components/primitives/EmptyState/index.tsx +0 -185
- package/src/components/primitives/ErrorCard/ErrorCard.stories.tsx +0 -50
- package/src/components/primitives/ErrorCard/index.tsx +0 -78
- package/src/components/primitives/Field/Field.stories.tsx +0 -208
- package/src/components/primitives/Field/FieldSource.test.mjs +0 -70
- package/src/components/primitives/Field/index.tsx +0 -297
- package/src/components/primitives/InlineMessage/InlineMessage.stories.tsx +0 -137
- package/src/components/primitives/InlineMessage/InlineMessageSource.test.mjs +0 -50
- package/src/components/primitives/InlineMessage/index.tsx +0 -141
- package/src/components/primitives/Input/Input.stories.tsx +0 -30
- package/src/components/primitives/Input/index.tsx +0 -12
- package/src/components/primitives/Keycap/Keycap.stories.tsx +0 -93
- package/src/components/primitives/Keycap/KeycapSource.test.mjs +0 -30
- package/src/components/primitives/Keycap/index.tsx +0 -67
- package/src/components/primitives/Menu/Menu.stories.tsx +0 -416
- package/src/components/primitives/Menu/MenuEmptySource.test.mjs +0 -23
- package/src/components/primitives/Menu/MenuSource.test.mjs +0 -207
- package/src/components/primitives/Menu/index.tsx +0 -923
- package/src/components/primitives/Pagination/Pagination.stories.tsx +0 -77
- package/src/components/primitives/Pagination/PaginationSource.test.mjs +0 -24
- package/src/components/primitives/Pagination/index.tsx +0 -85
- package/src/components/primitives/Pagination/pagination.ts +0 -25
- package/src/components/primitives/Pagination/paginationModel.test.mjs +0 -18
- package/src/components/primitives/ProgressBar/ProgressBar.stories.tsx +0 -103
- package/src/components/primitives/ProgressBar/ProgressBarSource.test.mjs +0 -44
- package/src/components/primitives/ProgressBar/index.tsx +0 -68
- package/src/components/primitives/Radio/Radio.stories.tsx +0 -84
- package/src/components/primitives/Radio/RadioSource.test.mjs +0 -38
- package/src/components/primitives/Radio/index.tsx +0 -161
- package/src/components/primitives/SegmentedControl/SegmentedControl.stories.tsx +0 -110
- package/src/components/primitives/SegmentedControl/SegmentedControlSource.test.mjs +0 -75
- package/src/components/primitives/SegmentedControl/index.tsx +0 -188
- package/src/components/primitives/Select/Select.stories.tsx +0 -158
- package/src/components/primitives/Select/SelectSource.test.mjs +0 -94
- package/src/components/primitives/Select/index.tsx +0 -406
- package/src/components/primitives/Spinner/index.tsx +0 -58
- package/src/components/primitives/Switch/Switch.stories.tsx +0 -64
- package/src/components/primitives/Switch/SwitchSource.test.mjs +0 -38
- package/src/components/primitives/Switch/index.tsx +0 -84
- package/src/components/primitives/Tabs/Tabs.stories.tsx +0 -230
- package/src/components/primitives/Tabs/TabsSource.test.mjs +0 -91
- package/src/components/primitives/Tabs/index.tsx +0 -183
- package/src/components/primitives/index.ts +0 -24
- package/src/examples/ResourceManagementExample.tsx +0 -119
- package/src/examples/SiteWorkbenchExample.tsx +0 -96
- package/src/hooks/index.ts +0 -7
- package/src/hooks/useClickOutside.ts +0 -20
- package/src/hooks/useDragReorder.ts +0 -29
- package/src/hooks/useImeAwareEnter.ts +0 -59
- package/src/hooks/useImeAwareEnterSource.test.mjs +0 -65
- package/src/hooks/useKeyboard.ts +0 -16
- package/src/hooks/usePopover.ts +0 -67
- package/src/hooks/useSelectedOptionLocator.ts +0 -33
- package/src/hooks/useSidebarResize.ts +0 -107
- package/src/hooks/useTenantTheme.ts +0 -53
- package/src/hooks/useUnifiedTheme.ts +0 -85
- package/src/index.ts +0 -6
- package/src/lib/InjectedStyleTokenMirrorSource.test.mjs +0 -67
- package/src/lib/about-window.test.mjs +0 -46
- package/src/lib/about-window.ts +0 -218
- package/src/lib/appearance.test.mjs +0 -283
- package/src/lib/appearance.ts +0 -46
- package/src/lib/browser-annotation-popup.ts +0 -151
- package/src/lib/focusTrap.ts +0 -51
- package/src/lib/index.ts +0 -5
- package/src/lib/shortcut.test.mjs +0 -100
- package/src/lib/shortcut.ts +0 -97
- package/src/lib/twMergeOw.ts +0 -18
- package/src/lib/utils.ts +0 -6
- package/src/screens/Browser.stories.tsx +0 -353
- package/src/screens/Chat.stories.tsx +0 -808
- package/src/screens/Home.stories.tsx +0 -253
- package/src/screens/Login.stories.tsx +0 -134
- package/src/screens/McpManager.stories.tsx +0 -159
- package/src/screens/Onboarding.stories.tsx +0 -155
- package/src/screens/ScheduledTasks.stories.tsx +0 -134
- package/src/screens/ScreenFrameSource.test.mjs +0 -77
- package/src/screens/SettingsAppearance.stories.tsx +0 -117
- package/src/screens/SettingsMemory.stories.tsx +0 -128
- package/src/screens/SettingsModels.stories.tsx +0 -228
- package/src/screens/SettingsSections.stories.tsx +0 -164
- package/src/screens/Share.stories.tsx +0 -202
- package/src/screens/SharePage.stories.tsx +0 -29
- package/src/screens/Sites.stories.tsx +0 -183
- package/src/screens/Skills.stories.tsx +0 -83
- package/src/screens/Workspace.stories.tsx +0 -191
- package/src/screens/_home.tsx +0 -46
- package/src/screens/_screen.tsx +0 -355
- package/src/screens/_settingsNav.ts +0 -27
- package/src/screens/_skillsCatalog.tsx +0 -372
- package/src/theme/SkinDenylistSyncSource.test.mjs +0 -124
- package/src/theme/__tests__/skins.test.mjs +0 -84
- package/src/theme/core/semanticAdapter.ts +0 -116
- package/src/theme/core/skin.ts +0 -605
- package/src/theme/core/skinScoped.ts +0 -289
- package/src/theme/core/tenantTheme.test.mjs +0 -127
- package/src/theme/core/tenantTheme.ts +0 -124
- package/src/theme/core/types.ts +0 -60
- package/src/theme/core/unifiedTheme.ts +0 -157
- package/src/theme/index.ts +0 -33
- package/src/theme/providers/BrandingProvider.tsx +0 -57
- package/src/theme/providers/ThemeProvider.tsx +0 -221
- package/src/theme/skinDs2PropertyGate.test.mjs +0 -109
- package/src/theme/skins/index.ts +0 -107
- package/src/theme/utils/cssSafety.ts +0 -92
- package/src/theme/utils/skinManager.ts +0 -159
- package/src/theme/utils/themeApplier.ts +0 -75
- package/src/tokens/DesktopSurfacesSweep15Source.test.mjs +0 -77
- package/src/tokens/SharedStyleSheetsSource.test.mjs +0 -90
- package/src/tokens/TailwindThemeSupplySource.test.mjs +0 -129
- package/src/tokens/base.ts +0 -199
- package/src/tokens/dark.ts +0 -288
- package/src/tokens/index.ts +0 -4
- package/src/tokens/light.ts +0 -320
- package/src/tokens/tailwind.ts +0 -216
- package/src/types/desktop-pet.ts +0 -100
- package/src/types/file-browser.ts +0 -51
- package/src/types/file-tree.ts +0 -34
- package/src/types/index.ts +0 -3
- package/src/types/xspreadsheet.d.ts +0 -4
- package/src/utils/cn.ts +0 -6
- package/src/utils/glyphColor.ts +0 -32
- package/src/utils/index.ts +0 -4
- package/src/utils/localPathInline.test.mjs +0 -45
- package/src/utils/localPathInline.ts +0 -49
- package/src/utils/markdownFileRefs.test.mjs +0 -88
- package/src/utils/markdownFileRefs.ts +0 -140
- package/src/utils/office-excel.ts +0 -452
- package/src/utils/shiki.ts +0 -156
|
@@ -1,1074 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import { Fragment, type ReactNode, cloneElement, isValidElement } from "react"
|
|
4
|
-
import { BackButton } from "../../../composite/BackButton"
|
|
5
|
-
import { CardGridSkeleton } from "../../../composite/CatalogStates"
|
|
6
|
-
import { type DetailMenuItem, DetailOverflowMenu } from "../../../composite/DetailChrome"
|
|
7
|
-
import { FilterBar, type FilterBarFilter } from "../../../composite/FilterBar"
|
|
8
|
-
import { Bolt, Globe, More, Terminal, Trash } from "../../../composite/Icons"
|
|
9
|
-
import { StatusTag, type StatusTagPreset } from "../../../composite/StatusTag"
|
|
10
|
-
import { Button } from "../../../primitives"
|
|
11
|
-
import { EmptyState } from "../../../primitives/EmptyState"
|
|
12
|
-
import { InlineMessage } from "../../../primitives/InlineMessage"
|
|
13
|
-
import type { SelectOption } from "../../../primitives/Select"
|
|
14
|
-
import { GlyphToneProvider } from "../../skills/SkillAvatarView"
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* DesktopCatalogView —— 发现域(智能体 / 技能 / 连接器)的公共壳,产品面隐性枢纽。
|
|
18
|
-
*
|
|
19
|
-
* 语法定稿(COMPONENT-RULES §5/§6/§7):
|
|
20
|
-
* - **卡网格,不用 DataTable**。发现页每条目要头像+两行描述+动作,是「卡」不是「行」;
|
|
21
|
-
* DataTable 留给同构定长字段的表(MCP/成员/日志)。网格容器=`DesktopCatalogGridView`。
|
|
22
|
-
* - 三态齐备:载=`CardGridSkeleton`(呼吸骨架,禁 shimmer)· 空=`EmptyState` 原语
|
|
23
|
-
* (信标 mono 母题+一句 text-2+可选主按钮,禁插画禁 emoji)· 错=`InlineMessage`
|
|
24
|
-
* error 档(人话一句+mono 技术详情 ≤2 行+重试钮)。
|
|
25
|
-
* - 工具条=`DesktopCatalogToolbarView`,落在 `FilterBar` 基座上:分类走直角 Tag(6,纯筛选
|
|
26
|
-
* 不带点)、搜索走 Field、排序走 Select。R3 中性件——工具条与卡网格都不加信标元素。
|
|
27
|
-
* - **卡是竖排两段,不是横排三列**(A4-B2,原型模板 1666–1684)。上段=40 字形 +
|
|
28
|
-
* 名称行(名 + 至多两枚 `StatusTag`:归属签 + 状态签)+ 两行描述(`min-height:3em`,
|
|
29
|
-
* 同排等高靠它,不靠拉伸);下段=卡脚,左边一条 mono 元信息带、右边 28 高动作钮。
|
|
30
|
-
* 动作钮在卡脚右下,不再竖直居中挂在卡右腰。
|
|
31
|
-
* - 卡内读数(版本号/计数)一律 mono+tabular-nums,但**不再是一枚枚胶囊**:卡脚是一条
|
|
32
|
-
* 「v1.4.2 · 3 技能 · 2 连接器」式的中性文字带(`·` 相连、单行省略),版本号也在这条带里,
|
|
33
|
-
* 不在名称行。名称行只留名字与两枚状态签——卡片顶行是「这是什么、现在什么状态」,
|
|
34
|
-
* 不是元信息的堆放处。
|
|
35
|
-
* - **状态签只有一件**:`composite/StatusTag`(20 · --ow-radius-xs · 11/500 · tint 底 + on-tint 字,
|
|
36
|
-
* 无边框)。A4-B3 把原来的三套写法(`.connector-update-tag` 裸 span / `Tag` / `Chip`)收成它,
|
|
37
|
-
* 卡与详情共用同一份词表(已安装 / 有更新 / 已连接 / 待授权 / 正在安装 / 我的 / 专家团)。
|
|
38
|
-
* 分类标仍走直角 `Tag`,度量读数在别处仍走 `Chip` —— 三件各司其职,不再互相串味。
|
|
39
|
-
*
|
|
40
|
-
* 立面:卡是贴地之物——`--ow-surface` 面+1px `--ow-border`+0 影;hover **只换边色**到
|
|
41
|
-
* `--ow-border-strong`(底色递进是行/条的语汇,一整张卡跟着指针变底会把网格搅成一片明暗),
|
|
42
|
-
* press 保留 `--ow-press` 作按下的瞬时反馈,不投影不位移(§5/§9)。
|
|
43
|
-
* 样式段在 styles/desktop-surfaces.css 的 `.plaza__* / .skcard*`。
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* 卡脚元信息一条:一句分类文字+可选读数,渲成 mono 带上的一段(「3 技能」「stdio」)。
|
|
48
|
-
* A4-B2 起不再逐条包 `Chip`——卡脚是一条文字带不是一排胶囊,段与段之间只有一个 `·`。
|
|
49
|
-
* `icon` 保留在类型上供别的宿主复用,卡脚这条带不渲染它(原型 1682 无图标)。
|
|
50
|
-
*/
|
|
51
|
-
export interface DesktopCatalogCardMetaItem {
|
|
52
|
-
key: string
|
|
53
|
-
/** 预留图标槽;卡脚 mono 带不渲染(原型 1682 一行纯文字)。 */
|
|
54
|
-
icon?: ReactNode
|
|
55
|
-
label: ReactNode
|
|
56
|
-
/** 读数:数字/时间/百分比,落在 label 前(「3 技能」),整条带 mono+tabular-nums */
|
|
57
|
-
count?: number | string
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export interface DesktopAgentCardViewProps {
|
|
61
|
-
avatar: ReactNode
|
|
62
|
-
name: ReactNode
|
|
63
|
-
version?: ReactNode
|
|
64
|
-
updateAvailable?: boolean
|
|
65
|
-
team?: boolean
|
|
66
|
-
/**
|
|
67
|
-
* 归属签「我的」(原型 4646:`hasBadge = !!(x.team || x.mine)`,两者都在时「专家团」优先)。
|
|
68
|
-
* 宿主一期传 false —— 目录接口还没有 owner 字段,见交接单。
|
|
69
|
-
*/
|
|
70
|
-
mine?: boolean
|
|
71
|
-
/** 状态签(StatusTag 词表档):已安装 / 有更新 / 已连接 / 待授权 / 正在安装。卡与详情同一份文案。 */
|
|
72
|
-
status?: StatusTagPreset
|
|
73
|
-
description: ReactNode
|
|
74
|
-
/** 结构化卡脚元信息(推荐):读数自动 mono,胶囊形由壳统一给。 */
|
|
75
|
-
metaItems?: DesktopCatalogCardMetaItem[]
|
|
76
|
-
/** @deprecated 自由 ReactNode 卡脚;新代码用 `metaItems`,兼容口保留给未迁移调用方。 */
|
|
77
|
-
meta?: ReactNode
|
|
78
|
-
error?: ReactNode
|
|
79
|
-
actionLabel?: ReactNode
|
|
80
|
-
actionState?: "default" | "installed" | "update"
|
|
81
|
-
actionVariant?: "secondary" | "unstyled"
|
|
82
|
-
actionDisabled?: boolean
|
|
83
|
-
onAction?: () => void
|
|
84
|
-
onOpen?: () => void
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export interface DesktopCatalogCardViewProps {
|
|
88
|
-
avatar: ReactNode
|
|
89
|
-
/**
|
|
90
|
-
* 字形章色档(R2·T2,原型 4569–4570 `glyphOf`):目录里只有两档——专家卡走墨面
|
|
91
|
-
* `agent`,技能/连接器卡一律中性 `neutral`(缺省)。卡把它钉在 `GlyphToneProvider` 上,
|
|
92
|
-
* `SkillAvatarView` 读上下文,宿主一行不改就同时拿到「技能/连接器中性、专家藏蓝」。
|
|
93
|
-
*/
|
|
94
|
-
glyphTone?: "neutral" | "agent"
|
|
95
|
-
name: ReactNode
|
|
96
|
-
version?: ReactNode
|
|
97
|
-
updateAvailable?: boolean
|
|
98
|
-
/** 状态签(StatusTag 词表档):已安装 / 有更新 / 已连接 / 待授权 / 正在安装。卡与详情同一份文案。 */
|
|
99
|
-
status?: StatusTagPreset
|
|
100
|
-
description: ReactNode
|
|
101
|
-
/** 结构化卡脚元信息(推荐):读数自动 mono,胶囊形由壳统一给。 */
|
|
102
|
-
metaItems?: DesktopCatalogCardMetaItem[]
|
|
103
|
-
/** @deprecated 自由 ReactNode 卡脚;新代码用 `metaItems`,兼容口保留给未迁移调用方。 */
|
|
104
|
-
meta?: ReactNode
|
|
105
|
-
error?: ReactNode
|
|
106
|
-
/**
|
|
107
|
-
* 归属签(我的 / 专家团):名称行里状态签左边的那一枚。A4-B2 起归属签进名称行,
|
|
108
|
-
* 不再是钉在卡右上角的绝对定位角标——竖排卡的右上角就是名称行本身,会互相压。
|
|
109
|
-
*/
|
|
110
|
-
badge?: ReactNode
|
|
111
|
-
actionLabel?: ReactNode
|
|
112
|
-
actionState?: "default" | "installed" | "update"
|
|
113
|
-
actionVariant?: "secondary" | "unstyled"
|
|
114
|
-
actionDisabled?: boolean
|
|
115
|
-
onAction?: () => void
|
|
116
|
-
onOpen?: () => void
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* 卡头像位的形状规格挂在 `.skcard .gly` 上(40×40 · r8 · sans 500 首字,见
|
|
121
|
-
* desktop-surfaces.css)。它原来完全依赖调用方自己在 avatar 元素上传 `className="gly"`——
|
|
122
|
-
* Skills 整屏就漏传过一次,于是整条规格落空,卡头渲成 36×24 的直角贴字(圆角 0 越形状表)。
|
|
123
|
-
* 这里统一补挂:调用方传不传都一样,漏传不再是一种可能。
|
|
124
|
-
*/
|
|
125
|
-
function withGlyphClass(avatar: ReactNode): ReactNode {
|
|
126
|
-
if (!isValidElement<{ className?: string }>(avatar)) return avatar
|
|
127
|
-
const existing = avatar.props.className ?? ""
|
|
128
|
-
if (existing.split(/\s+/).includes("gly")) return avatar
|
|
129
|
-
return cloneElement(avatar, { className: existing ? `${existing} gly` : "gly" })
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* 卡脚 mono 元信息带(原型 1682):版本号领头,其后按次序摊开 `metaItems`,段间只有一个 `·`。
|
|
134
|
-
* 整条单行省略——卡脚是一带不是一块,宁可截断也不换行把卡撑高(同排等高由描述的 3em 保)。
|
|
135
|
-
* 版本号从名称行搬到这里:它是读数不是状态,和「3 技能 / stdio」是同一类东西。
|
|
136
|
-
*/
|
|
137
|
-
function CatalogCardMetaLine({
|
|
138
|
-
version,
|
|
139
|
-
metaItems,
|
|
140
|
-
meta,
|
|
141
|
-
}: Pick<DesktopCatalogCardViewProps, "version" | "metaItems" | "meta">) {
|
|
142
|
-
const segments: { key: string; node: ReactNode }[] = []
|
|
143
|
-
if (version) segments.push({ key: "__version", node: <>v{version}</> })
|
|
144
|
-
for (const item of metaItems ?? []) {
|
|
145
|
-
segments.push({
|
|
146
|
-
key: item.key,
|
|
147
|
-
node: (
|
|
148
|
-
<>
|
|
149
|
-
{item.count != null && <>{item.count} </>}
|
|
150
|
-
{item.label}
|
|
151
|
-
</>
|
|
152
|
-
),
|
|
153
|
-
})
|
|
154
|
-
}
|
|
155
|
-
// 未迁移调用方的自由 meta 槽:结构化 metaItems 缺席时当作最后一段挂上,不另起一行。
|
|
156
|
-
if (meta && !(metaItems && metaItems.length > 0)) segments.push({ key: "__meta", node: meta })
|
|
157
|
-
if (segments.length === 0) return null
|
|
158
|
-
return (
|
|
159
|
-
<>
|
|
160
|
-
{segments.map((segment, index) => (
|
|
161
|
-
<Fragment key={segment.key}>
|
|
162
|
-
{index > 0 && <span aria-hidden="true"> · </span>}
|
|
163
|
-
{segment.node}
|
|
164
|
-
</Fragment>
|
|
165
|
-
))}
|
|
166
|
-
</>
|
|
167
|
-
)
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/** Desktop 发现页统一卡片;智能体、技能和连接器共享布局与键盘交互。 */
|
|
171
|
-
export function DesktopCatalogCardView({
|
|
172
|
-
avatar,
|
|
173
|
-
glyphTone = "neutral",
|
|
174
|
-
name,
|
|
175
|
-
version,
|
|
176
|
-
updateAvailable,
|
|
177
|
-
status,
|
|
178
|
-
description,
|
|
179
|
-
metaItems,
|
|
180
|
-
meta,
|
|
181
|
-
error,
|
|
182
|
-
badge,
|
|
183
|
-
actionLabel = "使用",
|
|
184
|
-
actionState = "default",
|
|
185
|
-
actionVariant = "secondary",
|
|
186
|
-
actionDisabled,
|
|
187
|
-
onAction,
|
|
188
|
-
onOpen,
|
|
189
|
-
}: DesktopCatalogCardViewProps) {
|
|
190
|
-
return (
|
|
191
|
-
<div
|
|
192
|
-
className="skcard"
|
|
193
|
-
role={onOpen ? "button" : undefined}
|
|
194
|
-
tabIndex={onOpen ? 0 : undefined}
|
|
195
|
-
onClick={onOpen}
|
|
196
|
-
onKeyDown={(event) => {
|
|
197
|
-
// L3-2-1:只认落在卡壳自己身上的键。没有这道守卫时,焦点在卡脚「使用/更新/安装」
|
|
198
|
-
// 钮上按 Enter/空格会冒泡上来被 preventDefault 吃掉——按钮的默认 click 一次都不发生,
|
|
199
|
-
// 反而打开详情(鼠标路径有下面的 stopPropagation 兜着,键盘路径完全没有)。
|
|
200
|
-
if (event.target !== event.currentTarget) return
|
|
201
|
-
if (onOpen && (event.key === "Enter" || event.key === " ")) {
|
|
202
|
-
event.preventDefault()
|
|
203
|
-
onOpen()
|
|
204
|
-
}
|
|
205
|
-
}}
|
|
206
|
-
>
|
|
207
|
-
<div className="skcard__top">
|
|
208
|
-
<GlyphToneProvider value={glyphTone}>{withGlyphClass(avatar)}</GlyphToneProvider>
|
|
209
|
-
<div className="body">
|
|
210
|
-
<div className="n">
|
|
211
|
-
<span className="nt">{name}</span>
|
|
212
|
-
{badge}
|
|
213
|
-
{/* R2·T2/Q3:撤 754d2b4 的去重条款——原型(skills--market/agents 两张渲染图)
|
|
214
|
-
「有更新」签与「更新」钮是并存的:签说的是现状,钮说的是能做什么。
|
|
215
|
-
调用方要单签就只传 `status`,不要再同时传 `updateAvailable`。 */}
|
|
216
|
-
{updateAvailable && <StatusTag status="update" />}
|
|
217
|
-
{status && <StatusTag status={status} />}
|
|
218
|
-
</div>
|
|
219
|
-
<div className="d">{description}</div>
|
|
220
|
-
{error && <div className="skcard__error">{error}</div>}
|
|
221
|
-
</div>
|
|
222
|
-
</div>
|
|
223
|
-
<div className="skcard__foot">
|
|
224
|
-
<div className="ft">
|
|
225
|
-
<CatalogCardMetaLine version={version} metaItems={metaItems} meta={meta} />
|
|
226
|
-
</div>
|
|
227
|
-
<Button
|
|
228
|
-
variant={actionVariant}
|
|
229
|
-
size="sm"
|
|
230
|
-
disabled={actionDisabled}
|
|
231
|
-
className={
|
|
232
|
-
actionVariant === "unstyled"
|
|
233
|
-
? `inst${actionState === "installed" ? " installed" : actionState === "update" ? " update" : ""}`
|
|
234
|
-
: undefined
|
|
235
|
-
}
|
|
236
|
-
onClick={(event) => {
|
|
237
|
-
event.stopPropagation()
|
|
238
|
-
onAction?.()
|
|
239
|
-
}}
|
|
240
|
-
>
|
|
241
|
-
{actionLabel}
|
|
242
|
-
</Button>
|
|
243
|
-
</div>
|
|
244
|
-
</div>
|
|
245
|
-
)
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
export interface DesktopCatalogToolbarViewProps {
|
|
249
|
-
/** 分类筛选:直角 Tag(6),纯分类不带状态点 */
|
|
250
|
-
categories?: FilterBarFilter[]
|
|
251
|
-
onCategoryToggle?: (key: string) => void
|
|
252
|
-
search?: {
|
|
253
|
-
value: string
|
|
254
|
-
onChange: (value: string) => void
|
|
255
|
-
placeholder?: string
|
|
256
|
-
disabled?: boolean
|
|
257
|
-
width?: number | string
|
|
258
|
-
}
|
|
259
|
-
sort?: {
|
|
260
|
-
value: string
|
|
261
|
-
options: SelectOption[]
|
|
262
|
-
onChange: (value: string) => void
|
|
263
|
-
disabled?: boolean
|
|
264
|
-
label?: string
|
|
265
|
-
}
|
|
266
|
-
onReset?: () => void
|
|
267
|
-
/** 右侧动作区:新建 / 导入 / 范围开关 */
|
|
268
|
-
actions?: ReactNode
|
|
269
|
-
className?: string
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
/**
|
|
273
|
-
* 发现页工具条 —— FilterBar 基座的目录配方(R3 中性件,无信标元素)。
|
|
274
|
-
* 三槽固定次序:分类 Tag → 搜索 → 排序,右侧留动作区;贴在网格顶部用 `flush` 去边框。
|
|
275
|
-
*/
|
|
276
|
-
export function DesktopCatalogToolbarView({
|
|
277
|
-
categories,
|
|
278
|
-
onCategoryToggle,
|
|
279
|
-
search,
|
|
280
|
-
sort,
|
|
281
|
-
onReset,
|
|
282
|
-
actions,
|
|
283
|
-
className,
|
|
284
|
-
}: DesktopCatalogToolbarViewProps) {
|
|
285
|
-
return (
|
|
286
|
-
<FilterBar
|
|
287
|
-
flush
|
|
288
|
-
className={className ?? "plaza__toolbar"}
|
|
289
|
-
filters={categories}
|
|
290
|
-
onFilterToggle={onCategoryToggle}
|
|
291
|
-
search={search}
|
|
292
|
-
sort={sort}
|
|
293
|
-
onReset={onReset}
|
|
294
|
-
actions={actions}
|
|
295
|
-
/>
|
|
296
|
-
)
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
export interface DesktopCatalogGridViewProps {
|
|
300
|
-
/** 加载态:呼吸骨架卡(禁 shimmer) */
|
|
301
|
-
loading?: boolean
|
|
302
|
-
loadingCount?: number
|
|
303
|
-
/** 错误态:人话一句 */
|
|
304
|
-
error?: ReactNode
|
|
305
|
-
/** 错误技术详情:mono ≤2 行 */
|
|
306
|
-
errorDetail?: string
|
|
307
|
-
onRetry?: () => void
|
|
308
|
-
retryLabel?: string
|
|
309
|
-
/**
|
|
310
|
-
* 空态一句话(children 为空且非载/错时出)。这里是**二级 inline 档**:母题 + 一句
|
|
311
|
-
* + 可选轮廓钮,**不带标题层**(原型 template.dc.html L1706–1714 的目录搜索无结果)。
|
|
312
|
-
* 整页一级空态(母题 + 标题 + 副句 + 实底钮)只出现在 `ScheduledTasksSpaceView`
|
|
313
|
-
* 那种「列表主体空」的位置,网格里的「筛掉了」不该占那个体量。
|
|
314
|
-
*/
|
|
315
|
-
emptyMessage?: ReactNode
|
|
316
|
-
emptyActionLabel?: string
|
|
317
|
-
onEmptyAction?: () => void
|
|
318
|
-
/** 空态是否成立;不传则按 children 是否为空推断 */
|
|
319
|
-
empty?: boolean
|
|
320
|
-
children?: ReactNode
|
|
321
|
-
className?: string
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* 发现页卡网格 —— 目录壳的容器语法与 §6 空/载/错三态在这里定稿。
|
|
326
|
-
* 网格自身滚动(`scrollbar-gutter: stable`,保证「全部/已安装」两个范围切换时宽度不跳)。
|
|
327
|
-
*/
|
|
328
|
-
export function DesktopCatalogGridView({
|
|
329
|
-
loading = false,
|
|
330
|
-
loadingCount = 6,
|
|
331
|
-
error,
|
|
332
|
-
errorDetail,
|
|
333
|
-
onRetry,
|
|
334
|
-
retryLabel = "重试",
|
|
335
|
-
emptyMessage = "这里还没有可用条目。",
|
|
336
|
-
emptyActionLabel,
|
|
337
|
-
onEmptyAction,
|
|
338
|
-
empty,
|
|
339
|
-
children,
|
|
340
|
-
className,
|
|
341
|
-
}: DesktopCatalogGridViewProps) {
|
|
342
|
-
const hasChildren = Array.isArray(children) ? children.flat().some(Boolean) : Boolean(children)
|
|
343
|
-
const isEmpty = empty ?? !hasChildren
|
|
344
|
-
return (
|
|
345
|
-
<div className={className ?? "plaza__grid"} data-ow-state={loading ? "loading" : error ? "error" : undefined}>
|
|
346
|
-
{loading ? (
|
|
347
|
-
<CardGridSkeleton count={loadingCount} />
|
|
348
|
-
) : error ? (
|
|
349
|
-
<div className="plaza__state">
|
|
350
|
-
<InlineMessage
|
|
351
|
-
variant="error"
|
|
352
|
-
detail={errorDetail}
|
|
353
|
-
action={
|
|
354
|
-
onRetry && (
|
|
355
|
-
<Button variant="secondary" size="sm" onClick={onRetry}>
|
|
356
|
-
{retryLabel}
|
|
357
|
-
</Button>
|
|
358
|
-
)
|
|
359
|
-
}
|
|
360
|
-
>
|
|
361
|
-
{error}
|
|
362
|
-
</InlineMessage>
|
|
363
|
-
</div>
|
|
364
|
-
) : isEmpty ? (
|
|
365
|
-
/* A5-B3:inline 档(md)——母题 + 一句 + 轮廓钮。`actionLabel` 走原语的内置钮,
|
|
366
|
-
md 档默认 secondary,「清空筛选」是退路不是主张,不占行动极。 */
|
|
367
|
-
<div className="plaza__state">
|
|
368
|
-
<EmptyState message={emptyMessage} actionLabel={emptyActionLabel} onAction={onEmptyAction} />
|
|
369
|
-
</div>
|
|
370
|
-
) : (
|
|
371
|
-
children
|
|
372
|
-
)}
|
|
373
|
-
</div>
|
|
374
|
-
)
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
export interface DesktopCatalogDetailShellProps {
|
|
378
|
-
avatar: ReactNode
|
|
379
|
-
name: ReactNode
|
|
380
|
-
/**
|
|
381
|
-
* 状态签:标题右边紧跟的那一枚 `StatusTag`(原型 2169)。与 `badges` 分开是因为它有位置
|
|
382
|
-
* 语义——只有它贴着标题;`badges` 里的类型标之类落在后面。
|
|
383
|
-
*/
|
|
384
|
-
status?: ReactNode
|
|
385
|
-
/** 标题下一句描述(原型 2172,--ow-text-2)。 */
|
|
386
|
-
summary?: ReactNode
|
|
387
|
-
/**
|
|
388
|
-
* mono 元信息行(原型 2173:「v1.4.2 · Orbitwork Labs · 3 天前」)。不传就由
|
|
389
|
-
* `version / author / updatedAt` 按同样的顺序与 `·` 拼出来,老调用方不改一行也能拿到这行。
|
|
390
|
-
*/
|
|
391
|
-
meta?: ReactNode
|
|
392
|
-
author?: ReactNode
|
|
393
|
-
version?: ReactNode
|
|
394
|
-
/** 更新时间(「3 天前」);只进 mono 元信息行。 */
|
|
395
|
-
updatedAt?: ReactNode
|
|
396
|
-
/**
|
|
397
|
-
* 类型标(智能体 / 团队 / 连接器)。A4-B4 把它从标题旁的图标标下沉到 mono 元信息行的
|
|
398
|
-
* 第一段:标题旁只留状态签一枚,「这是什么类」属于元信息,不该和「现在什么状态」抢同一行。
|
|
399
|
-
*/
|
|
400
|
-
kind?: ReactNode
|
|
401
|
-
/** 状态签之后的附加标记(类型标等)。破坏性动作不放这里。 */
|
|
402
|
-
badges?: ReactNode
|
|
403
|
-
actions?: ReactNode
|
|
404
|
-
backLabel: ReactNode
|
|
405
|
-
onBack: () => void
|
|
406
|
-
children?: ReactNode
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
/**
|
|
410
|
-
* mono 元信息行:把「v1.4.2 / 作者 / 3 天前」用 `·` 连成一行。空段自己消失,
|
|
411
|
-
* 不留下孤零零的分隔点(这是元信息带最常见的破绽)。
|
|
412
|
-
*/
|
|
413
|
-
function detailMetaLine(parts: ReactNode[]): ReactNode | null {
|
|
414
|
-
const kept = parts.filter((part) => part !== undefined && part !== null && part !== false && part !== "")
|
|
415
|
-
if (kept.length === 0) return null
|
|
416
|
-
return kept.map((part, index) => (
|
|
417
|
-
<Fragment key={index}>
|
|
418
|
-
{index > 0 ? " · " : null}
|
|
419
|
-
{part}
|
|
420
|
-
</Fragment>
|
|
421
|
-
))
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
/**
|
|
425
|
-
* Desktop 发现二级页统一外壳。A4-B4 把它从「一条略大的列表项」抬回真正的二级页:
|
|
426
|
-
* 返回条 + hero 合成一块固定页头(原型 2158),hero 里是 52 字形 →
|
|
427
|
-
* 「22px display 标题 + 状态签」/ 一句描述 / mono 元信息行 → 右侧动作组;
|
|
428
|
-
* 正文进 `.skd__body`,收到 720 列宽、节间 22(原型 2191)。
|
|
429
|
-
*/
|
|
430
|
-
export function DesktopCatalogDetailShell({
|
|
431
|
-
avatar,
|
|
432
|
-
name,
|
|
433
|
-
status,
|
|
434
|
-
summary,
|
|
435
|
-
meta,
|
|
436
|
-
author = "Orbitwork 官方",
|
|
437
|
-
version,
|
|
438
|
-
updatedAt,
|
|
439
|
-
kind,
|
|
440
|
-
badges,
|
|
441
|
-
actions,
|
|
442
|
-
backLabel,
|
|
443
|
-
onBack,
|
|
444
|
-
children,
|
|
445
|
-
}: DesktopCatalogDetailShellProps) {
|
|
446
|
-
const metaLine = meta ?? detailMetaLine([kind, version ? `v${version}` : null, author, updatedAt])
|
|
447
|
-
return (
|
|
448
|
-
<div className="page skdetail">
|
|
449
|
-
<div className="skd__head">
|
|
450
|
-
{/* 「返回」全站唯一形=composite/BackButton(ghost + chevron-left + §7 图标 16 档,形/高/状态全集由
|
|
451
|
-
Button 原语出)。原来是 variant="unstyled" 的 Button 套一枚旋转 90° 的 ArrowDown,尺寸全靠已被
|
|
452
|
-
R2 清掉的 `.fs-back svg` 撑着,塌成 78×78 的巨大箭头,键盘命中区与焦点环也一并失效。
|
|
453
|
-
`fs-back` 类名保留:桌面端 e2e(discover-extension-interactions / workspace-interactions)按它定位。 */}
|
|
454
|
-
<BackButton className="fs-back" onClick={onBack}>
|
|
455
|
-
{backLabel}
|
|
456
|
-
</BackButton>
|
|
457
|
-
{/* hero 与返回条同属页头,不进滚动区:二级页的身份牌不该跟着正文滚走(原型 2158)。 */}
|
|
458
|
-
<div className="skd__hero">
|
|
459
|
-
{avatar}
|
|
460
|
-
<div className="meta">
|
|
461
|
-
<div className="n">
|
|
462
|
-
<h1 className="skd__title">{name}</h1>
|
|
463
|
-
{status}
|
|
464
|
-
{badges}
|
|
465
|
-
</div>
|
|
466
|
-
{summary && <div className="skd__desc">{summary}</div>}
|
|
467
|
-
{metaLine && <div className="skd__meta-line">{metaLine}</div>}
|
|
468
|
-
</div>
|
|
469
|
-
{actions}
|
|
470
|
-
</div>
|
|
471
|
-
</div>
|
|
472
|
-
<div className="skd__scroll">
|
|
473
|
-
<div className="skd__body">{children}</div>
|
|
474
|
-
</div>
|
|
475
|
-
</div>
|
|
476
|
-
)
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
/**
|
|
480
|
-
* 详情正文一节:眉标 + 一种体裁(原型 2193–2247)。`count` 是读数圆章、`note` 是
|
|
481
|
-
* 中文补充说明——两者互斥由调用方决定,本件只排位置。
|
|
482
|
-
*/
|
|
483
|
-
export function DesktopDetailSection({
|
|
484
|
-
title,
|
|
485
|
-
count,
|
|
486
|
-
note,
|
|
487
|
-
className,
|
|
488
|
-
children,
|
|
489
|
-
}: {
|
|
490
|
-
title: ReactNode
|
|
491
|
-
count?: number
|
|
492
|
-
note?: ReactNode
|
|
493
|
-
className?: string
|
|
494
|
-
children?: ReactNode
|
|
495
|
-
}) {
|
|
496
|
-
return (
|
|
497
|
-
<section className={className ? `skd__section ${className}` : "skd__section"}>
|
|
498
|
-
<div className="lbl">
|
|
499
|
-
{title}
|
|
500
|
-
{count !== undefined && <span className="cnt">{count}</span>}
|
|
501
|
-
{note && <span className="skd__lbl-note">{note}</span>}
|
|
502
|
-
</div>
|
|
503
|
-
{children}
|
|
504
|
-
</section>
|
|
505
|
-
)
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
/** 体裁一 · 段落:成段的话(使用方式 / 限制 / 传输方式)。 */
|
|
509
|
-
export function DesktopDetailText({ children }: { children?: ReactNode }) {
|
|
510
|
-
return <p className="skd__text">{children}</p>
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
export interface DesktopDetailListItemView {
|
|
514
|
-
id: string
|
|
515
|
-
text: ReactNode
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
/** 体裁二 · 圆点列表:并列的短句(能力)。 */
|
|
519
|
-
export function DesktopDetailList({ items }: { items: DesktopDetailListItemView[] }) {
|
|
520
|
-
return (
|
|
521
|
-
<div className="skd__list">
|
|
522
|
-
{items.map((item) => (
|
|
523
|
-
<div className="skd__list-item" key={item.id}>
|
|
524
|
-
<span className="skd__list-text">{item.text}</span>
|
|
525
|
-
</div>
|
|
526
|
-
))}
|
|
527
|
-
</div>
|
|
528
|
-
)
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
export interface DesktopDetailChipView {
|
|
532
|
-
id: string
|
|
533
|
-
text: ReactNode
|
|
534
|
-
/** 标识符(命令 / 工具名)走 mono;中文名词走正文字体。 */
|
|
535
|
-
mono?: boolean
|
|
536
|
-
}
|
|
537
|
-
|
|
538
|
-
/** 体裁三 · 直角片:名词集合(技能 / 连接器 / 命令 / 工具)。只读,不可点。 */
|
|
539
|
-
export function DesktopDetailChips({ items }: { items: DesktopDetailChipView[] }) {
|
|
540
|
-
return (
|
|
541
|
-
<div className="skd__chips">
|
|
542
|
-
{items.map((item) => (
|
|
543
|
-
<span className={item.mono ? "skd__chip skd__chip--mono" : "skd__chip"} key={item.id}>
|
|
544
|
-
{item.text}
|
|
545
|
-
</span>
|
|
546
|
-
))}
|
|
547
|
-
</div>
|
|
548
|
-
)
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
export interface DesktopDetailRowView {
|
|
552
|
-
id: string
|
|
553
|
-
name: ReactNode
|
|
554
|
-
/** 角色小签(负责人 / 成员):与卡上同一枚 StatusTag 的中性档。 */
|
|
555
|
-
role?: ReactNode
|
|
556
|
-
description?: ReactNode
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
/** 体裁四 · 成员行表:有字段的条目(团队成员)。 */
|
|
560
|
-
export function DesktopDetailRows({ rows, nameMono }: { rows: DesktopDetailRowView[]; nameMono?: boolean }) {
|
|
561
|
-
return (
|
|
562
|
-
<div className="skd__rows">
|
|
563
|
-
{rows.map((row) => (
|
|
564
|
-
<div className="skd__row" key={row.id}>
|
|
565
|
-
<span className={nameMono ? "skd__row-name skd__row-name--mono" : "skd__row-name"}>{row.name}</span>
|
|
566
|
-
{row.role && <StatusTag tone="mute">{row.role}</StatusTag>}
|
|
567
|
-
{row.description && <span className="skd__row-desc">{row.description}</span>}
|
|
568
|
-
</div>
|
|
569
|
-
))}
|
|
570
|
-
</div>
|
|
571
|
-
)
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
/** Desktop 发现智能体卡片。 */
|
|
575
|
-
export function DesktopAgentCardView({
|
|
576
|
-
avatar,
|
|
577
|
-
name,
|
|
578
|
-
version,
|
|
579
|
-
updateAvailable,
|
|
580
|
-
team,
|
|
581
|
-
mine,
|
|
582
|
-
status,
|
|
583
|
-
description,
|
|
584
|
-
metaItems,
|
|
585
|
-
meta,
|
|
586
|
-
error,
|
|
587
|
-
actionLabel = "使用",
|
|
588
|
-
actionState = "default",
|
|
589
|
-
actionVariant = "unstyled",
|
|
590
|
-
actionDisabled,
|
|
591
|
-
onAction,
|
|
592
|
-
onOpen,
|
|
593
|
-
}: DesktopAgentCardViewProps) {
|
|
594
|
-
return (
|
|
595
|
-
<DesktopCatalogCardView
|
|
596
|
-
avatar={avatar}
|
|
597
|
-
glyphTone="agent"
|
|
598
|
-
name={name}
|
|
599
|
-
version={version}
|
|
600
|
-
updateAvailable={updateAvailable}
|
|
601
|
-
status={status}
|
|
602
|
-
description={description}
|
|
603
|
-
metaItems={metaItems}
|
|
604
|
-
meta={meta}
|
|
605
|
-
error={error}
|
|
606
|
-
badge={team ? <StatusTag status="team" /> : mine ? <StatusTag status="mine" /> : undefined}
|
|
607
|
-
actionLabel={actionLabel}
|
|
608
|
-
actionState={actionState}
|
|
609
|
-
actionVariant={actionVariant}
|
|
610
|
-
actionDisabled={actionDisabled}
|
|
611
|
-
onAction={onAction}
|
|
612
|
-
onOpen={onOpen}
|
|
613
|
-
/>
|
|
614
|
-
)
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
export interface DesktopAgentDetailItemView {
|
|
618
|
-
id: string
|
|
619
|
-
name: ReactNode
|
|
620
|
-
icon?: ReactNode
|
|
621
|
-
description?: ReactNode
|
|
622
|
-
}
|
|
623
|
-
export interface DesktopAgentMemberView {
|
|
624
|
-
id: string
|
|
625
|
-
name: ReactNode
|
|
626
|
-
description?: ReactNode
|
|
627
|
-
avatar?: ReactNode
|
|
628
|
-
role: "leader" | "member"
|
|
629
|
-
}
|
|
630
|
-
export interface DesktopAgentRosterViewProps {
|
|
631
|
-
agents: DesktopAgentMemberView[]
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
export interface DesktopAgentOverviewItemView {
|
|
635
|
-
id: string
|
|
636
|
-
label: ReactNode
|
|
637
|
-
value: ReactNode
|
|
638
|
-
}
|
|
639
|
-
export interface DesktopAgentOverviewLinkView {
|
|
640
|
-
id: string
|
|
641
|
-
label: ReactNode
|
|
642
|
-
url: string
|
|
643
|
-
kind?: "homepage" | "repository"
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
/** Desktop 智能体详情的必要元数据;隐藏内部标识和下载实现信息。 */
|
|
647
|
-
export function DesktopAgentOverviewView({
|
|
648
|
-
items,
|
|
649
|
-
links = [],
|
|
650
|
-
onOpenLink,
|
|
651
|
-
}: {
|
|
652
|
-
items: DesktopAgentOverviewItemView[]
|
|
653
|
-
links?: DesktopAgentOverviewLinkView[]
|
|
654
|
-
onOpenLink?: (link: DesktopAgentOverviewLinkView) => void
|
|
655
|
-
}) {
|
|
656
|
-
if (items.length === 0 && links.length === 0) return null
|
|
657
|
-
return (
|
|
658
|
-
<section className="skd__section">
|
|
659
|
-
<div className="lbl">基本信息</div>
|
|
660
|
-
<div className="connector-kv">
|
|
661
|
-
{items.map((item) => (
|
|
662
|
-
<Fragment key={item.id}>
|
|
663
|
-
<span>{item.label}</span>
|
|
664
|
-
<b>{item.value}</b>
|
|
665
|
-
</Fragment>
|
|
666
|
-
))}
|
|
667
|
-
{links.map((link) => (
|
|
668
|
-
<Fragment key={link.id}>
|
|
669
|
-
<span>{link.kind === "repository" ? "源码" : "主页"}</span>
|
|
670
|
-
<b>
|
|
671
|
-
<Button
|
|
672
|
-
variant="unstyled"
|
|
673
|
-
className="connector-cred-summary__action"
|
|
674
|
-
icon={link.kind === "repository" ? <Terminal /> : <Globe />}
|
|
675
|
-
disabled={!onOpenLink}
|
|
676
|
-
onClick={() => onOpenLink?.(link)}
|
|
677
|
-
>
|
|
678
|
-
{link.label}
|
|
679
|
-
</Button>
|
|
680
|
-
</b>
|
|
681
|
-
</Fragment>
|
|
682
|
-
))}
|
|
683
|
-
</div>
|
|
684
|
-
</section>
|
|
685
|
-
)
|
|
686
|
-
}
|
|
687
|
-
|
|
688
|
-
/** 团队智能体的成员名册;负责人和普通成员使用不同的语义标签。 */
|
|
689
|
-
export function DesktopAgentRosterView({ agents }: DesktopAgentRosterViewProps) {
|
|
690
|
-
if (agents.length === 0) return null
|
|
691
|
-
return (
|
|
692
|
-
<section className="skd__section agent-roster">
|
|
693
|
-
<div className="lbl">
|
|
694
|
-
团队成员 <span className="cnt">{agents.length}</span>
|
|
695
|
-
</div>
|
|
696
|
-
<div className="agent-roster__grid">
|
|
697
|
-
{agents.map((agent) => (
|
|
698
|
-
<div className={`agent-roster__item${agent.role === "leader" ? " is-leader" : ""}`} key={agent.id}>
|
|
699
|
-
<span className="agent-roster__avatar">{agent.avatar ?? String(agent.name).slice(0, 1)}</span>
|
|
700
|
-
<div className="agent-roster__body">
|
|
701
|
-
<div className="agent-roster__name">
|
|
702
|
-
{agent.name}
|
|
703
|
-
<span className={`agent-roster__role is-${agent.role}`}>
|
|
704
|
-
{agent.role === "leader" ? "负责人" : "成员"}
|
|
705
|
-
</span>
|
|
706
|
-
</div>
|
|
707
|
-
{agent.description && <div className="agent-roster__description">{agent.description}</div>}
|
|
708
|
-
</div>
|
|
709
|
-
</div>
|
|
710
|
-
))}
|
|
711
|
-
</div>
|
|
712
|
-
</section>
|
|
713
|
-
)
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
export interface DesktopAgentDetailViewProps {
|
|
717
|
-
avatar: ReactNode
|
|
718
|
-
name: ReactNode
|
|
719
|
-
author?: ReactNode
|
|
720
|
-
version?: ReactNode
|
|
721
|
-
description: ReactNode
|
|
722
|
-
team?: boolean
|
|
723
|
-
agents?: DesktopAgentMemberView[]
|
|
724
|
-
skills?: DesktopAgentDetailItemView[]
|
|
725
|
-
connectors?: DesktopAgentDetailItemView[]
|
|
726
|
-
commands?: DesktopAgentDetailItemView[]
|
|
727
|
-
starters?: ReactNode[]
|
|
728
|
-
installed?: boolean
|
|
729
|
-
outdated?: boolean
|
|
730
|
-
installing?: boolean
|
|
731
|
-
error?: ReactNode
|
|
732
|
-
backLabel?: ReactNode
|
|
733
|
-
connectorManagement?: ReactNode
|
|
734
|
-
actionLabel?: ReactNode
|
|
735
|
-
actionIcon?: ReactNode
|
|
736
|
-
actionDisabled?: boolean
|
|
737
|
-
overflowItems?: DetailMenuItem[]
|
|
738
|
-
overviewItems?: DesktopAgentOverviewItemView[]
|
|
739
|
-
overviewLinks?: DesktopAgentOverviewLinkView[]
|
|
740
|
-
onBack: () => void
|
|
741
|
-
onInstall?: () => void
|
|
742
|
-
onUpdate?: () => void
|
|
743
|
-
onUse?: () => void
|
|
744
|
-
onOverflowSelect?: (key: string) => void
|
|
745
|
-
onOpenOverviewLink?: (link: DesktopAgentOverviewLinkView) => void
|
|
746
|
-
onUninstall?: () => void
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
/**
|
|
750
|
-
* 安装态 → 状态签词表档(A4-B3)。卡与详情引同一个函数,避免两处各判一遍、
|
|
751
|
-
* 各写各的文案。连接器的「已连接 / 待授权」由调用方直接给 `status`,不走这里。
|
|
752
|
-
*/
|
|
753
|
-
export function catalogInstallStatus({
|
|
754
|
-
installed,
|
|
755
|
-
outdated,
|
|
756
|
-
installing,
|
|
757
|
-
}: { installed?: boolean; outdated?: boolean; installing?: boolean }): StatusTagPreset | undefined {
|
|
758
|
-
if (installing) return "installing"
|
|
759
|
-
if (!installed) return undefined
|
|
760
|
-
return outdated ? "update" : "installed"
|
|
761
|
-
}
|
|
762
|
-
|
|
763
|
-
export interface DesktopAgentDetailActionsProps {
|
|
764
|
-
installed: boolean
|
|
765
|
-
outdated?: boolean
|
|
766
|
-
installing?: boolean
|
|
767
|
-
disabled?: boolean
|
|
768
|
-
primaryLabel: ReactNode
|
|
769
|
-
primaryIcon?: ReactNode
|
|
770
|
-
primaryVisible?: boolean
|
|
771
|
-
primaryDisabled?: boolean
|
|
772
|
-
menuItems?: DetailMenuItem[]
|
|
773
|
-
onInstall?: () => void
|
|
774
|
-
onUpdate?: () => void
|
|
775
|
-
onPrimaryAction: () => void
|
|
776
|
-
onMenuSelect?: (key: string) => void
|
|
777
|
-
}
|
|
778
|
-
|
|
779
|
-
export interface DesktopCatalogActionView {
|
|
780
|
-
key: string
|
|
781
|
-
label: ReactNode
|
|
782
|
-
icon?: ReactNode
|
|
783
|
-
variant?: "primary" | "secondary" | "danger"
|
|
784
|
-
disabled?: boolean
|
|
785
|
-
onAction?: () => void
|
|
786
|
-
}
|
|
787
|
-
|
|
788
|
-
export interface DesktopCatalogDetailActionsProps {
|
|
789
|
-
actions: DesktopCatalogActionView[]
|
|
790
|
-
leading?: ReactNode
|
|
791
|
-
menuItems?: DetailMenuItem[]
|
|
792
|
-
disabled?: boolean
|
|
793
|
-
onMenuSelect?: (key: string) => void
|
|
794
|
-
}
|
|
795
|
-
|
|
796
|
-
/**
|
|
797
|
-
* Desktop 发现二级页统一按钮组。
|
|
798
|
-
*
|
|
799
|
-
* A4-B4 收敛(原型 2174–2187):**页头右侧至多一颗按钮 + 一颗 ⋯**。`actions` 的第一颗
|
|
800
|
-
* 上台面(默认实底主钮),其余自动折进 ⋯ 菜单,排在调用方自己的 `menuItems` 前面。
|
|
801
|
-
* 收敛点放在这里而不是各调用方:连接器详情原来把「刷新状态 / 编辑配置 / 卸载连接器」三颗
|
|
802
|
-
* 并排摆在页头,最后一颗还是实底红——破坏性动作站上行动极的位置,误触代价与召唤力度成反比。
|
|
803
|
-
* 折进去的动作照旧能点(onAction 由本件转发),danger 档在菜单里仍是红字。
|
|
804
|
-
*/
|
|
805
|
-
export function DesktopCatalogDetailActions({
|
|
806
|
-
actions,
|
|
807
|
-
leading,
|
|
808
|
-
menuItems = [],
|
|
809
|
-
disabled,
|
|
810
|
-
onMenuSelect,
|
|
811
|
-
}: DesktopCatalogDetailActionsProps) {
|
|
812
|
-
const [primary, ...folded] = actions
|
|
813
|
-
const foldedItems: DetailMenuItem[] = folded.map((action) => ({
|
|
814
|
-
key: action.key,
|
|
815
|
-
label: typeof action.label === "string" ? action.label : action.key,
|
|
816
|
-
icon: action.icon ?? <More />,
|
|
817
|
-
danger: action.variant === "danger",
|
|
818
|
-
disabled: action.disabled,
|
|
819
|
-
}))
|
|
820
|
-
const items = [...foldedItems, ...menuItems]
|
|
821
|
-
const handleSelect = (key: string) => {
|
|
822
|
-
const hit = folded.find((action) => action.key === key)
|
|
823
|
-
if (hit) {
|
|
824
|
-
hit.onAction?.()
|
|
825
|
-
return
|
|
826
|
-
}
|
|
827
|
-
onMenuSelect?.(key)
|
|
828
|
-
}
|
|
829
|
-
return (
|
|
830
|
-
<div className="acts">
|
|
831
|
-
{leading}
|
|
832
|
-
{primary && (
|
|
833
|
-
<Button
|
|
834
|
-
variant={primary.variant ?? "primary"}
|
|
835
|
-
icon={primary.icon}
|
|
836
|
-
disabled={disabled || primary.disabled}
|
|
837
|
-
onClick={primary.onAction}
|
|
838
|
-
>
|
|
839
|
-
{primary.label}
|
|
840
|
-
</Button>
|
|
841
|
-
)}
|
|
842
|
-
{items.length > 0 && <DetailOverflowMenu disabled={disabled} items={items} onSelect={handleSelect} />}
|
|
843
|
-
</div>
|
|
844
|
-
)
|
|
845
|
-
}
|
|
846
|
-
|
|
847
|
-
/** Desktop 智能体详情头部操作;主操作与“更多”菜单在真实应用和文档示例间共享。 */
|
|
848
|
-
export function DesktopAgentDetailActions({
|
|
849
|
-
installed,
|
|
850
|
-
outdated,
|
|
851
|
-
installing,
|
|
852
|
-
disabled,
|
|
853
|
-
primaryLabel,
|
|
854
|
-
primaryIcon,
|
|
855
|
-
primaryVisible = true,
|
|
856
|
-
primaryDisabled,
|
|
857
|
-
menuItems = [],
|
|
858
|
-
onInstall,
|
|
859
|
-
onUpdate,
|
|
860
|
-
onPrimaryAction,
|
|
861
|
-
onMenuSelect,
|
|
862
|
-
}: DesktopAgentDetailActionsProps) {
|
|
863
|
-
const actionsDisabled = installing || disabled
|
|
864
|
-
const actions: DesktopCatalogActionView[] = [
|
|
865
|
-
...(!installed && onInstall
|
|
866
|
-
? [{ key: "install", label: installing ? "安装中…" : "安装", onAction: onInstall }]
|
|
867
|
-
: []),
|
|
868
|
-
...(installed && outdated && onUpdate
|
|
869
|
-
? [{ key: "update", label: installing ? "更新中…" : "更新", onAction: onUpdate }]
|
|
870
|
-
: []),
|
|
871
|
-
...(installed && primaryVisible
|
|
872
|
-
? [
|
|
873
|
-
{
|
|
874
|
-
key: "primary",
|
|
875
|
-
label: primaryLabel,
|
|
876
|
-
icon: primaryIcon,
|
|
877
|
-
variant: "primary" as const,
|
|
878
|
-
disabled: primaryDisabled,
|
|
879
|
-
onAction: onPrimaryAction,
|
|
880
|
-
},
|
|
881
|
-
]
|
|
882
|
-
: []),
|
|
883
|
-
]
|
|
884
|
-
return (
|
|
885
|
-
<DesktopCatalogDetailActions
|
|
886
|
-
actions={actions}
|
|
887
|
-
menuItems={installed ? menuItems : []}
|
|
888
|
-
disabled={actionsDisabled}
|
|
889
|
-
onMenuSelect={onMenuSelect}
|
|
890
|
-
/>
|
|
891
|
-
)
|
|
892
|
-
}
|
|
893
|
-
|
|
894
|
-
/** Desktop 发现智能体详情接管页。 */
|
|
895
|
-
export function DesktopAgentDetailView({
|
|
896
|
-
avatar,
|
|
897
|
-
name,
|
|
898
|
-
author = "Orbitwork Labs",
|
|
899
|
-
version,
|
|
900
|
-
description,
|
|
901
|
-
team,
|
|
902
|
-
agents = [],
|
|
903
|
-
skills = [],
|
|
904
|
-
connectors = [],
|
|
905
|
-
commands = [],
|
|
906
|
-
starters = [],
|
|
907
|
-
installed,
|
|
908
|
-
outdated,
|
|
909
|
-
installing,
|
|
910
|
-
error,
|
|
911
|
-
backLabel = "返回插件 · 专家",
|
|
912
|
-
connectorManagement,
|
|
913
|
-
actionLabel = "使用",
|
|
914
|
-
actionIcon = <Bolt />,
|
|
915
|
-
actionDisabled,
|
|
916
|
-
overflowItems = [],
|
|
917
|
-
overviewItems = [],
|
|
918
|
-
overviewLinks = [],
|
|
919
|
-
onBack,
|
|
920
|
-
onInstall,
|
|
921
|
-
onUpdate,
|
|
922
|
-
onUse,
|
|
923
|
-
onOverflowSelect,
|
|
924
|
-
onOpenOverviewLink,
|
|
925
|
-
onUninstall,
|
|
926
|
-
}: DesktopAgentDetailViewProps) {
|
|
927
|
-
const installStatus = catalogInstallStatus({ installed, outdated, installing })
|
|
928
|
-
/**
|
|
929
|
-
* A4-B4:一节的排法由内容决定,不再一律塞进 220px 卡片格(原型 2200–2226)——
|
|
930
|
-
* 只有名字的集合走直角片(chips),带一句说明的条目走成员行表(rows)。
|
|
931
|
-
* 空是**字段位空**(「未配置」一行 text-3),不是容器空态,不上 EmptyState 母题。
|
|
932
|
-
*/
|
|
933
|
-
const renderItems = (items: DesktopAgentDetailItemView[], mono?: boolean) => {
|
|
934
|
-
if (items.length === 0) return <div className="skd__empty">未配置</div>
|
|
935
|
-
const described = items.some((item) => item.description)
|
|
936
|
-
return described ? (
|
|
937
|
-
<DesktopDetailRows
|
|
938
|
-
nameMono={mono}
|
|
939
|
-
rows={items.map((item) => ({ id: item.id, name: item.name, description: item.description }))}
|
|
940
|
-
/>
|
|
941
|
-
) : (
|
|
942
|
-
<DesktopDetailChips items={items.map((item) => ({ id: item.id, text: item.name, mono }))} />
|
|
943
|
-
)
|
|
944
|
-
}
|
|
945
|
-
return (
|
|
946
|
-
<DesktopCatalogDetailShell
|
|
947
|
-
avatar={avatar}
|
|
948
|
-
name={name}
|
|
949
|
-
author={author}
|
|
950
|
-
version={version}
|
|
951
|
-
/* 详情与卡共用同一枚状态签(同词表、同 20/xs/11 形);详情上不做卡的去重,
|
|
952
|
-
原型 2168 的 hero 是「状态签 + 主按钮」同时在位。类型标下沉进 mono 元信息行。 */
|
|
953
|
-
status={installStatus && <StatusTag status={installStatus} />}
|
|
954
|
-
kind={team ? "团队" : "专家"}
|
|
955
|
-
summary={description}
|
|
956
|
-
backLabel={backLabel}
|
|
957
|
-
onBack={onBack}
|
|
958
|
-
actions={
|
|
959
|
-
<DesktopAgentDetailActions
|
|
960
|
-
installed={!!installed}
|
|
961
|
-
outdated={outdated}
|
|
962
|
-
installing={installing}
|
|
963
|
-
primaryLabel={actionLabel}
|
|
964
|
-
primaryIcon={actionIcon}
|
|
965
|
-
primaryDisabled={actionDisabled}
|
|
966
|
-
onInstall={onInstall}
|
|
967
|
-
onUpdate={onUpdate}
|
|
968
|
-
onPrimaryAction={() => onUse?.()}
|
|
969
|
-
menuItems={[
|
|
970
|
-
...overflowItems,
|
|
971
|
-
...(onUninstall ? [{ key: "uninstall", label: "卸载", icon: <Trash />, danger: true }] : []),
|
|
972
|
-
]}
|
|
973
|
-
onMenuSelect={(key) => {
|
|
974
|
-
onOverflowSelect?.(key)
|
|
975
|
-
if (key === "uninstall") onUninstall?.()
|
|
976
|
-
}}
|
|
977
|
-
/>
|
|
978
|
-
}
|
|
979
|
-
>
|
|
980
|
-
{error && (
|
|
981
|
-
<div className="mcp-card__err">
|
|
982
|
-
<span>{error}</span>
|
|
983
|
-
</div>
|
|
984
|
-
)}
|
|
985
|
-
{/* 简介退出正文:一句描述已经在 hero 的标题下面(原型 2172),正文里再写一遍是同一句话
|
|
986
|
-
在同一屏出现两次。正文第一节直接进「成员 / 技能 / 连接器 / 命令」。 */}
|
|
987
|
-
<DesktopAgentOverviewView items={overviewItems} links={overviewLinks} onOpenLink={onOpenOverviewLink} />
|
|
988
|
-
{team && <DesktopAgentRosterView agents={agents} />}
|
|
989
|
-
<DesktopDetailSection title="技能" count={skills.length}>
|
|
990
|
-
{renderItems(skills)}
|
|
991
|
-
</DesktopDetailSection>
|
|
992
|
-
<DesktopDetailSection title="连接器" count={connectors.length}>
|
|
993
|
-
{connectorManagement ?? renderItems(connectors)}
|
|
994
|
-
</DesktopDetailSection>
|
|
995
|
-
<DesktopDetailSection title="命令" count={commands.length}>
|
|
996
|
-
{renderItems(commands, true)}
|
|
997
|
-
</DesktopDetailSection>
|
|
998
|
-
{starters.length > 0 && (
|
|
999
|
-
<DesktopDetailSection title="建议开场">
|
|
1000
|
-
<div className="skd__meta-grid">
|
|
1001
|
-
{starters.map((starter, index) => (
|
|
1002
|
-
<div className="skd__meta-item" key={index}>
|
|
1003
|
-
<span className="n">{starter}</span>
|
|
1004
|
-
</div>
|
|
1005
|
-
))}
|
|
1006
|
-
</div>
|
|
1007
|
-
</DesktopDetailSection>
|
|
1008
|
-
)}
|
|
1009
|
-
</DesktopCatalogDetailShell>
|
|
1010
|
-
)
|
|
1011
|
-
}
|
|
1012
|
-
|
|
1013
|
-
export interface DesktopConnectorCardViewProps {
|
|
1014
|
-
logo: ReactNode
|
|
1015
|
-
name: ReactNode
|
|
1016
|
-
version?: ReactNode
|
|
1017
|
-
description: ReactNode
|
|
1018
|
-
updateAvailable?: boolean
|
|
1019
|
-
/**
|
|
1020
|
-
* 状态签(StatusTag 词表档):已连接 `connected` / 待授权 `needsAuth` / 正在安装 `installing`。
|
|
1021
|
-
* 宿主已有 `plugin.installed` / `needsAuthorization` / `pendingAction` 三个信号够推,见交接单。
|
|
1022
|
-
*/
|
|
1023
|
-
status?: StatusTagPreset
|
|
1024
|
-
/** 归属签「我的」;与 `badge` 二选一,`badge` 优先。 */
|
|
1025
|
-
mine?: boolean
|
|
1026
|
-
/** 归属签自定义槽(通常是 `<StatusTag status="mine" />`)。 */
|
|
1027
|
-
badge?: ReactNode
|
|
1028
|
-
/** 卡脚 mono 带:连接器这一族是「stdio · 4 个工具」(原型 4590),**不带版本号**。 */
|
|
1029
|
-
metaItems?: DesktopCatalogCardMetaItem[]
|
|
1030
|
-
actionLabel?: ReactNode
|
|
1031
|
-
actionState?: "default" | "installed" | "update"
|
|
1032
|
-
actionVariant?: "secondary" | "unstyled"
|
|
1033
|
-
actionDisabled?: boolean
|
|
1034
|
-
onAction?: () => void
|
|
1035
|
-
onOpen?: () => void
|
|
1036
|
-
}
|
|
1037
|
-
|
|
1038
|
-
/** Desktop 发现页连接器卡片。 */
|
|
1039
|
-
export function DesktopConnectorCardView({
|
|
1040
|
-
logo,
|
|
1041
|
-
name,
|
|
1042
|
-
version,
|
|
1043
|
-
description,
|
|
1044
|
-
updateAvailable,
|
|
1045
|
-
status,
|
|
1046
|
-
mine,
|
|
1047
|
-
badge,
|
|
1048
|
-
metaItems,
|
|
1049
|
-
actionLabel = "使用",
|
|
1050
|
-
actionState = "default",
|
|
1051
|
-
actionVariant = "secondary",
|
|
1052
|
-
actionDisabled,
|
|
1053
|
-
onAction,
|
|
1054
|
-
onOpen,
|
|
1055
|
-
}: DesktopConnectorCardViewProps) {
|
|
1056
|
-
return (
|
|
1057
|
-
<DesktopCatalogCardView
|
|
1058
|
-
avatar={<span className="connector-logo">{logo}</span>}
|
|
1059
|
-
name={name}
|
|
1060
|
-
version={version}
|
|
1061
|
-
description={description}
|
|
1062
|
-
updateAvailable={updateAvailable}
|
|
1063
|
-
status={status}
|
|
1064
|
-
badge={badge ?? (mine ? <StatusTag status="mine" /> : undefined)}
|
|
1065
|
-
metaItems={metaItems}
|
|
1066
|
-
actionLabel={actionLabel}
|
|
1067
|
-
actionState={actionState}
|
|
1068
|
-
actionVariant={actionVariant}
|
|
1069
|
-
actionDisabled={actionDisabled}
|
|
1070
|
-
onAction={onAction ?? onOpen}
|
|
1071
|
-
onOpen={onOpen}
|
|
1072
|
-
/>
|
|
1073
|
-
)
|
|
1074
|
-
}
|