@orbit-work/ui 0.1.2-preview.0 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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.cjs +41 -1
- package/dist/appearance.cjs.map +1 -0
- package/dist/appearance.d.cts +7 -1
- package/dist/appearance.d.ts +7 -1
- package/dist/appearance.js +41 -1
- package/dist/appearance.js.map +1 -0
- package/dist/brand-preview.cjs +14 -0
- package/dist/brand-preview.cjs.map +1 -0
- package/dist/brand-preview.d.cts +13 -0
- package/dist/brand-preview.d.ts +13 -0
- package/dist/brand-preview.js +14 -0
- package/dist/brand-preview.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-JC7BHKS4.cjs +734 -0
- package/dist/chunk-JC7BHKS4.cjs.map +1 -0
- package/dist/chunk-K7ONUTLA.cjs +240 -0
- package/dist/chunk-K7ONUTLA.cjs.map +1 -0
- package/dist/chunk-KTNWR3H5.js +399 -0
- package/dist/chunk-KTNWR3H5.js.map +1 -0
- package/dist/chunk-LSGO6AQR.js +734 -0
- package/dist/chunk-LSGO6AQR.js.map +1 -0
- package/dist/chunk-Q7B4M5GC.cjs +399 -0
- package/dist/chunk-Q7B4M5GC.cjs.map +1 -0
- package/dist/chunk-QS55W5Q5.cjs +111 -0
- package/dist/chunk-QS55W5Q5.cjs.map +1 -0
- package/dist/chunk-UT5LC6MR.js +38 -0
- package/dist/chunk-UT5LC6MR.js.map +1 -0
- package/dist/chunk-ZXMHCL6D.js +240 -0
- package/dist/chunk-ZXMHCL6D.js.map +1 -0
- package/dist/chunk-ZZTEY4YX.cjs +38 -0
- package/dist/chunk-ZZTEY4YX.cjs.map +1 -0
- package/dist/core.css +7895 -0
- package/dist/core.scoped.css +7888 -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 +38996 -26
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3797 -3027
- package/dist/index.d.ts +3797 -3027
- package/dist/index.js +38996 -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/unifiedTheme-DQ-sETKO.d.cts +201 -0
- package/dist/unifiedTheme-DQ-sETKO.d.ts +201 -0
- package/dist/workbench.css +9023 -0
- package/package.json +126 -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
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/lib/browser-annotation-popup.ts
|
|
2
|
+
var BROWSER_ANNOTATION_PROPERTY_DEFS = [
|
|
3
|
+
{ key: "textContent", label: "\u6587\u672C", cssProp: "", type: "text" },
|
|
4
|
+
{ key: "color", label: "\u6587\u672C\u989C\u8272", cssProp: "color", type: "color" },
|
|
5
|
+
{ key: "backgroundColor", label: "\u80CC\u666F", cssProp: "backgroundColor", type: "color" },
|
|
6
|
+
{ key: "opacity", label: "Opacity", cssProp: "opacity", type: "number", step: 0.1, min: 0, max: 1 },
|
|
7
|
+
{ key: "fontFamily", label: "\u5B57\u4F53", cssProp: "fontFamily", type: "select", options: [] },
|
|
8
|
+
{ key: "fontSize", label: "\u5B57\u53F7", cssProp: "fontSize", type: "number", unit: "px" },
|
|
9
|
+
{
|
|
10
|
+
key: "fontWeight",
|
|
11
|
+
label: "\u5B57\u91CD",
|
|
12
|
+
cssProp: "fontWeight",
|
|
13
|
+
type: "select",
|
|
14
|
+
options: ["100", "200", "300", "400", "500", "600", "700", "800", "900"]
|
|
15
|
+
},
|
|
16
|
+
{ key: "borderRadius", label: "\u8FB9\u6846\u5706\u89D2\u534A\u5F84", cssProp: "borderRadius", type: "number", unit: "px" },
|
|
17
|
+
{ key: "borderColor", label: "\u8FB9\u6846\u989C\u8272", cssProp: "borderColor", type: "color" },
|
|
18
|
+
{ key: "borderWidth", label: "\u8FB9\u6846\u5BBD\u5EA6", cssProp: "borderWidth", type: "number", unit: "px" },
|
|
19
|
+
{ key: "width", label: "\u5BBD\u5EA6", cssProp: "width", type: "number", unit: "px" },
|
|
20
|
+
{ key: "height", label: "\u9AD8\u5EA6", cssProp: "height", type: "number", unit: "px" },
|
|
21
|
+
{ key: "padding", label: "\u5185\u8FB9\u8DDD", cssProp: "padding", type: "spacing" },
|
|
22
|
+
{ key: "margin", label: "\u5916\u8FB9\u8DDD", cssProp: "margin", type: "spacing" }
|
|
23
|
+
];
|
|
24
|
+
var BROWSER_ANNOTATION_POPUP_STYLES = `
|
|
25
|
+
[data-slot="browser-annotation-popup"]{all:initial;box-sizing:border-box;
|
|
26
|
+
/* \u2500\u2500 DS 2.0 \u6D45\u6863\u7EC8\u503C\u955C\u50CF\u8868\uFF08\u5DE6\uFF1D\u672C\u5730\u9694\u79BB\u952E\uFF0C\u53F3\u6CE8\u91CA\uFF1D\u6240\u6284\u7684 DS 2.0 token\uFF09\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
27
|
+
--ow-annotation-primary:#0F1B3D; /* --ow-btn-primary-bg\uFF08\uFF1D--ow-accent / --ow-navy\uFF09 */
|
|
28
|
+
--ow-annotation-primary-hover:#202942; /* --ow-btn-primary-hover */
|
|
29
|
+
--ow-annotation-on-fill:#F7F6F1; /* --ow-on-fill\uFF08\uFF1D--ow-btn-primary-fg\uFF1B\u4E0A\u6E38 text \u547D\u540D\u53EA\u5728\u5BFC\u5165\u8FB9\u754C\u5F52\u4E00\uFF09 */
|
|
30
|
+
--ow-annotation-bg:#FFFFFF; /* --ow-popover-bg \u2014\u2014 \u6D6E\u5C42\u81EA\u5DF1\u7684\u9762 */
|
|
31
|
+
--ow-annotation-bg-muted:#F1F0EA; /* --ow-surface-2\uFF08\u5D4C\u5957\u4E95/\u8F93\u5165\u5E95/\u8868\u5934\u5E95\uFF09\uFF0C\u6D45\u6863\u4E0E --ow-hover-pop \u540C\u503C */
|
|
32
|
+
--ow-annotation-bg-hover:#ECEBE5; /* --ow-press-pop \u2014\u2014 \u6BD4 bg-muted \u518D\u6DF1\u4E00\u6863\uFF08\xA75 \u5F39\u5C42\u4E0A\u8D70 pop \u6863\uFF09 */
|
|
33
|
+
--ow-annotation-fg:#333B50; /* --ow-text */
|
|
34
|
+
--ow-annotation-fg-muted:#646B7A; /* --ow-text-2 */
|
|
35
|
+
--ow-annotation-fg-subtle:#646B7A; /* --ow-text-3\uFF08\u53EF\u8BFB\u526F\u6587\u672C\u6863\uFF09 */
|
|
36
|
+
--ow-annotation-fg-placeholder:#646B7A; /* --ow-placeholder\uFF08\u6D45\u6863\uFF1D--ow-text-3\uFF09 */
|
|
37
|
+
--ow-annotation-line:#DCDCD7; /* --ow-border\uFF08\uFF1D--ow-input-border\uFF09\u2014\u2014 \u63CF\u8FB9\u4E0E\u5206\u9694\u7EBF rest */
|
|
38
|
+
--ow-annotation-line-strong:#C2C3C1; /* --ow-border-strong \u2014\u2014 \u8F93\u5165 hover \u6863\uFF08\xA76 \u4E09\u6001\u8FB9\u6846\uFF09 */
|
|
39
|
+
--ow-annotation-shadow-pop:0 4px 12px rgba(15, 27, 61, 0.10); /* --ow-shadow-pop */
|
|
40
|
+
/* \u5B57\u4F53\u6808\u4E5F\u8981\u955C\u50CF\uFF1A\u6CE8\u8FDB\u7B2C\u4E09\u65B9\u9875\u65F6 --ow-font-sans \u4E0D\u5728\u573A\uFF0C\u56DE\u9000\u503C\u5FC5\u987B\u9010\u5B57\u6284 DS 2.0 \u7684\u6808
|
|
41
|
+
\uFF08\xA78 \u5DF2\u77E5\u5751\uFF1Aemoji \u65CF\u5FC5\u987B\u7F6E\u4E8E\u6808\u5C3E\uFF0CLinux \u6570\u5B57\u6E32\u67D3\u7F3A\u9677\uFF0C\u52FF\u8C03\u5E8F\uFF09\u3002 */
|
|
42
|
+
--ow-annotation-font-sans:'HarmonyOS Sans SC', 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji'; /* --ow-font-sans */
|
|
43
|
+
/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
44
|
+
position:fixed;z-index:2147483647;font-family:var(--ow-annotation-font-sans);font-size:var(--ow-fs-ui, 13px);color:var(--ow-annotation-fg);pointer-events:auto;width:320px;background:var(--ow-annotation-bg);border:var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);border-radius:var(--ow-radius-lg, 12px);box-shadow:var(--ow-annotation-shadow-pop);overflow:hidden;display:flex;flex-direction:column;}
|
|
45
|
+
[data-slot="browser-annotation-popup"][data-preview="true"]{position:relative;z-index:1;max-height:100%;}
|
|
46
|
+
[data-slot="browser-annotation-popup"] *{box-sizing:border-box;}
|
|
47
|
+
/* \u5DE6\u4FA7\u7AD6\u6761\u662F\u7EAF\u88C5\u9970\u7684\u4E00\u6761\u810A\uFF0C\u4E0D\u7F16\u7801\u4EFB\u4F55\u72B6\u6001\u2014\u2014\u6309 \xA74 R2/R1 \u5B83\u6CA1\u6709\u8D44\u683C\u62FF\u63D0\u8272\uFF0C\u8D70\u4E2D\u6027\u63CF\u8FB9\u3002 */
|
|
48
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="collapsed-view"]{display:flex;align-items:center;gap:var(--ow-space-15, 6px);padding:10px var(--ow-space-3, 12px);border-left:3px solid var(--ow-annotation-line-strong);border-radius:var(--ow-radius-lg, 12px);}
|
|
49
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="expanded-view"]{display:none;flex-direction:column;overflow:hidden;flex:1;min-height:0;}
|
|
50
|
+
[data-slot="browser-annotation-popup"][data-ow-state="expanded"] [data-ow-part="collapsed-view"]{display:none;}
|
|
51
|
+
[data-slot="browser-annotation-popup"][data-ow-state="expanded"] [data-ow-part="expanded-view"]{display:flex;}
|
|
52
|
+
[data-slot="browser-annotation-popup"][data-ow-state="expanded"][data-placement="flipped"] [data-ow-part="expanded-view"]{flex-direction:column-reverse;}
|
|
53
|
+
[data-slot="browser-annotation-popup"][data-ow-state="expanded"][data-placement="flipped"]{border-radius:var(--ow-radius-lg, 12px);}
|
|
54
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="top"]{display:flex;align-items:center;gap:var(--ow-space-2, 8px);padding:10px var(--ow-space-3, 12px);border-left:3px solid var(--ow-annotation-line-strong);border-radius:var(--ow-radius-lg, 12px) var(--ow-radius-lg, 12px) 0 0;flex-shrink:0;}
|
|
55
|
+
/* \u5DE5\u5177\u6761\u6309\u94AE\u8D70 ghost\uFF08DS 2.0 P6-7\uFF09\uFF1A\u9759\u6B62\u900F\u660E\uFF0Chover \u624D\u4E0A\u5E95\uFF0Cpress \u518D\u6DF1\u4E00\u6863\u3002
|
|
56
|
+
\u4E4B\u524D\u9759\u6B62\u5C31\u5E26 bg-muted\uFF0C\u7B49\u4E8E\u4E00\u76F4\u662F\u4E2A\u5B9E\u5FC3 chip\uFF0C\u8DDF \xA75\u300C\u8D34\u5730\u4E0D\u4E0A\u5E95\u300D\u5BF9\u4E0D\u4E0A\u3002 */
|
|
57
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="settings-btn"]{all:initial;cursor:pointer;font:inherit;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--ow-radius-sm, 8px);background:transparent;color:var(--ow-annotation-fg-muted);flex-shrink:0;transition:background var(--ow-dur-1, 120ms) var(--ow-ease-beacon, cubic-bezier(0.22, 1, 0.36, 1));font-size:0;}
|
|
58
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="settings-btn"]:hover{background:var(--ow-annotation-bg-muted);}
|
|
59
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="settings-btn"]:active{background:var(--ow-annotation-bg-hover);}
|
|
60
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="input"]{all:initial;flex:1;font:inherit;font-size:var(--ow-fs-ui, 13px);color:var(--ow-annotation-fg);padding:var(--ow-space-05, 2px) 0;border:none;outline:none;background:transparent;min-width:0;}
|
|
61
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="input"]::placeholder{color:var(--ow-annotation-fg-placeholder);}
|
|
62
|
+
/* \u63D0\u4EA4\u94AE\u4E0E\u540C\u4E00\u884C\u7684 settings-btn \u540C\u6863\uFF1A28\xD728\uFF08\xA77 \u63A7\u4EF6\u9AD8 {28,32,40}\uFF0C\u56FE\u6807\u94AE \u226528\xD728\uFF09\u3002
|
|
63
|
+
\u65E7\u503C 30\xD730 \u4E0D\u5728\u6863\u5185\uFF0C\u4E14\u4E0E\u884C\u5185\u90BB\u5C45\u5BF9\u4E0D\u9F50\u3002 */
|
|
64
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="submit-btn"]{all:initial;cursor:pointer;font:inherit;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--ow-radius-sm, 8px);background:transparent;color:var(--ow-annotation-fg-subtle);flex-shrink:0;transition:background var(--ow-dur-1, 120ms) var(--ow-ease-beacon, cubic-bezier(0.22, 1, 0.36, 1)),color var(--ow-dur-1, 120ms) var(--ow-ease-beacon, cubic-bezier(0.22, 1, 0.36, 1));}
|
|
65
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="submit-btn"]:hover{background:var(--ow-annotation-bg-muted);}
|
|
66
|
+
/* \u6709\u5B57\u624D\u662F\u300C\u80FD\u63D0\u4EA4\u4E86\u300D\u2014\u2014\u5B9E\u5E95\uFF0B\u63D0\u8272\uFF0C\u5F62\u72B6\u4E0D\u53D8\uFF0C\u989C\u8272\u662F\u7B2C\u4E8C\u7F16\u7801\uFF08R1\uFF09\u3002 */
|
|
67
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="submit-btn"][data-ow-state="has-text"]{background:var(--ow-annotation-primary);color:var(--ow-annotation-on-fill);}
|
|
68
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="submit-btn"][data-ow-state="has-text"]:hover{background:var(--ow-annotation-primary-hover);}
|
|
69
|
+
/* \xA76\uFF1A\u7126\u70B9\u73AF 2px + 2px \u7559\u767D\u7F1D\uFF0C\u4E0D\u9760 all:initial \u4E4B\u540E\u6D88\u5931\u7684\u6D4F\u89C8\u5668\u9ED8\u8BA4\u73AF\u3002
|
|
70
|
+
\u73AF\u8272\u5F15 primary\uFF1ADS 2.0 \u6D45\u6863 --ow-focus-ring \u4E0E --ow-btn-primary-bg \u540C\u4E3A #0F1B3D\uFF0C
|
|
71
|
+
\u4E0D\u53E6\u7ACB\u952E\uFF1B\u82E5\u4E0A\u6E38\u628A\u4E24\u8005\u62C6\u5F00\uFF0C\u8FD9\u91CC\u8981\u8DDF\u7740\u8865 --ow-annotation-focus-ring\u3002 */
|
|
72
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="settings-btn"]:focus-visible,[data-slot="browser-annotation-popup"] [data-ow-part="submit-btn"]:focus-visible,[data-slot="browser-annotation-popup"] [data-ow-part="cancel"]:focus-visible,[data-slot="browser-annotation-popup"] [data-ow-part="confirm"]:focus-visible{outline:var(--ow-focus-ring-w, 2px) solid var(--ow-annotation-primary);outline-offset:var(--ow-focus-ring-offset, 2px);}
|
|
73
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="tag"]{display:flex;align-items:center;justify-content:space-between;padding:var(--ow-space-15, 6px) 14px;background:var(--ow-annotation-bg-muted);font-weight:700;font-size:var(--ow-fs-ui, 13px);color:var(--ow-annotation-fg);flex-shrink:0;}
|
|
74
|
+
/* \u62D6\u62FD\u63E1\u628A\u662F\u5B57\u5F62\u4E0D\u662F\u88C5\u9970\u8272\u5757\uFF0C\xA77\u300C\u56FE\u6807\u8272\u53EA\u53D6 text/text-2/text-3\u300D\u2014\u2014\u539F fg-faint(#C2C3C1)
|
|
75
|
+
\u5728 DS 2.0 \u91CC\u662F --ow-border-strong\uFF0C\u6CA1\u6709\u5BF9\u5E94\u7684\u6587\u5B57\u6863\uFF0C\u6545\u5E76\u5165 text-3\u3002 */
|
|
76
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="tag-drag"]{color:var(--ow-annotation-fg-subtle);cursor:grab;font-size:var(--ow-fs-body, 14px);letter-spacing:1px;}
|
|
77
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="props"]{padding:var(--ow-space-05, 2px) 14px var(--ow-space-1, 4px);overflow-y:auto;flex:1;min-height:0;}
|
|
78
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="prop"]{display:flex;align-items:center;padding:var(--ow-space-15, 6px) 0;border-bottom: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);gap:10px;}
|
|
79
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="prop"]:last-child{border-bottom:none;}
|
|
80
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="prop-label"]{width:60px;flex-shrink:0;font-size:var(--ow-fs-mark-md, 11px);color:var(--ow-annotation-fg);font-weight:500;}
|
|
81
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="prop-value"]{flex:1;display:flex;align-items:center;gap:5px;position:relative;}
|
|
82
|
+
/* \u8F93\u5165\u7C7B\u5E95\u8272\u8D70 --ow-surface-2 \u7684\u955C\u50CF\uFF08\xA75\u300C\u5D4C\u5957\u4E95\uFF1D\u8F93\u5165\u5E95\u300D\uFF09\uFF0C\u5750\u5728 popover \u767D\u9762\u4E0A\u624D\u8BFB\u5F97\u51FA\u4E95\uFF1B
|
|
83
|
+
\u4E09\u6001\u8FB9\u6846 rest(line) \u2192 hover(line-strong) \u2192 focus(focus-ring\uFF0C\u6D45\u6863\u540C primary)\uFF0C\xA76\u3002 */
|
|
84
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="prop-input"]{all:initial;font:inherit;font-size:var(--ow-fs-mark-md, 11px);color:var(--ow-annotation-fg);box-sizing:border-box;height:28px;padding:0 var(--ow-space-2, 8px);border: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);border-radius:var(--ow-radius-xs, 6px);width:100%;outline:none;background:var(--ow-annotation-bg-muted);}
|
|
85
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="prop-input"]:hover{border-color:var(--ow-annotation-line-strong);}
|
|
86
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="prop-input"]:focus{border-color:var(--ow-annotation-primary);}
|
|
87
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="prop-unit"]{font-size:var(--ow-fs-mark-sm, 10px);color:var(--ow-annotation-fg-subtle);position:absolute;right:8px;pointer-events:none;}
|
|
88
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="prop-select"]{all:initial;font:inherit;font-size:var(--ow-fs-mark-md, 11px);color:var(--ow-annotation-fg);box-sizing:border-box;height:28px;padding:0 var(--ow-space-2, 8px);border: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);border-radius:var(--ow-radius-xs, 6px);width:100%;outline:none;appearance:auto;cursor:pointer;background:var(--ow-annotation-bg-muted);}
|
|
89
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="prop-select"]:hover{border-color:var(--ow-annotation-line-strong);}
|
|
90
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="prop-select"]:focus{border-color:var(--ow-annotation-primary);}
|
|
91
|
+
/* \xA77 \u5F62\u72B6\u8868\uFF1A999 \u53EA\u7559\u7ED9\u5E26\u72B6\u6001\u70B9/\u8BA1\u6570\u7684 chip \u4E0E\u771F\u5706\u4EF6\uFF08\u5934\u50CF/\u72B6\u6001\u70B9\uFF09\u3002\u8272\u677F\u662F\u4E2A\u53D6\u8272\u63A7\u4EF6\uFF0C
|
|
92
|
+
\u843D\u6309\u94AE\u6863 8px\uFF08\u539F 50% \u5706\u70B9\u662F V1 \u8272\u677F\u6BCD\u9898\uFF09\u3002 */
|
|
93
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="color-swatch"]{width:20px;height:20px;border-radius:var(--ow-radius-sm, 8px);border: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);flex-shrink:0;cursor:pointer;position:relative;overflow:hidden;}
|
|
94
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="color-swatch"]:hover{border-color:var(--ow-annotation-line-strong);}
|
|
95
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="color-swatch"] input{position:absolute;inset:-4px;width:28px;height:28px;opacity:0;cursor:pointer;}
|
|
96
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="spacing"]{display:flex;gap:3px;flex:1;}
|
|
97
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="spacing"] input{all:initial;font:inherit;font-size:var(--ow-fs-mark-sm, 10px);color:var(--ow-annotation-fg);box-sizing:border-box;height:28px;padding:0 3px;border: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);border-radius:var(--ow-radius-xs, 6px);width:100%;text-align:center;outline:none;background:var(--ow-annotation-bg-muted);}
|
|
98
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="spacing"] input:hover{border-color:var(--ow-annotation-line-strong);}
|
|
99
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="spacing"] input:focus{border-color:var(--ow-annotation-primary);}
|
|
100
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="actions"]{display:flex;align-items:center;justify-content:space-between;padding:var(--ow-space-2, 8px) var(--ow-space-3, 12px);border-top: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);flex-shrink:0;}
|
|
101
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="cancel"]{all:initial;cursor:pointer;font:inherit;font-weight:500;font-size:var(--ow-fs-ui, 13px);color:var(--ow-annotation-fg);box-sizing:border-box;height:32px;padding:0 14px;border:none;border-radius:var(--ow-radius-sm, 8px);background:var(--ow-annotation-bg-muted);transition:background var(--ow-dur-1, 120ms) var(--ow-ease-beacon, cubic-bezier(0.22, 1, 0.36, 1));display:inline-flex;align-items:center;justify-content:center;}
|
|
102
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="cancel"]:hover{background:var(--ow-annotation-bg-hover);}
|
|
103
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="confirm"]{all:initial;cursor:pointer;font:inherit;font-weight:500;font-size:var(--ow-fs-ui, 13px);box-sizing:border-box;height:32px;padding:0 14px;border:none;border-radius:var(--ow-radius-sm, 8px);background:var(--ow-annotation-primary);color:var(--ow-annotation-on-fill);transition:background var(--ow-dur-1, 120ms) var(--ow-ease-beacon, cubic-bezier(0.22, 1, 0.36, 1));display:inline-flex;align-items:center;justify-content:center;gap:var(--ow-space-1, 4px);}
|
|
104
|
+
[data-slot="browser-annotation-popup"] [data-ow-part="confirm"]:hover{background:var(--ow-annotation-primary-hover);}
|
|
105
|
+
`;
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
exports.BROWSER_ANNOTATION_PROPERTY_DEFS = BROWSER_ANNOTATION_PROPERTY_DEFS; exports.BROWSER_ANNOTATION_POPUP_STYLES = BROWSER_ANNOTATION_POPUP_STYLES;
|
|
111
|
+
//# sourceMappingURL=chunk-QS55W5Q5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/wowzin/projects/orbit/packages/ui/dist/chunk-QS55W5Q5.cjs","../src/lib/browser-annotation-popup.ts"],"names":[],"mappings":"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","file":"/Users/wowzin/projects/orbit/packages/ui/dist/chunk-QS55W5Q5.cjs","sourcesContent":[null,"export type BrowserAnnotationPropertyType = \"text\" | \"color\" | \"number\" | \"select\" | \"spacing\"\n\nexport interface BrowserAnnotationPropertyDefinition {\n key: string\n label: string\n cssProp: string\n type: BrowserAnnotationPropertyType\n unit?: string\n options?: readonly string[]\n step?: number\n min?: number\n max?: number\n}\n\n/**\n * Annotation properties shared by the WebView runtime and the React preview.\n * Keep this module free of React and DOM imports so Electron can bundle it in\n * the sandboxed guest preload without pulling in the component library.\n */\nexport const BROWSER_ANNOTATION_PROPERTY_DEFS: readonly BrowserAnnotationPropertyDefinition[] = [\n { key: \"textContent\", label: \"文本\", cssProp: \"\", type: \"text\" },\n { key: \"color\", label: \"文本颜色\", cssProp: \"color\", type: \"color\" },\n { key: \"backgroundColor\", label: \"背景\", cssProp: \"backgroundColor\", type: \"color\" },\n { key: \"opacity\", label: \"Opacity\", cssProp: \"opacity\", type: \"number\", step: 0.1, min: 0, max: 1 },\n { key: \"fontFamily\", label: \"字体\", cssProp: \"fontFamily\", type: \"select\", options: [] },\n { key: \"fontSize\", label: \"字号\", cssProp: \"fontSize\", type: \"number\", unit: \"px\" },\n {\n key: \"fontWeight\",\n label: \"字重\",\n cssProp: \"fontWeight\",\n type: \"select\",\n options: [\"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\"],\n },\n { key: \"borderRadius\", label: \"边框圆角半径\", cssProp: \"borderRadius\", type: \"number\", unit: \"px\" },\n { key: \"borderColor\", label: \"边框颜色\", cssProp: \"borderColor\", type: \"color\" },\n { key: \"borderWidth\", label: \"边框宽度\", cssProp: \"borderWidth\", type: \"number\", unit: \"px\" },\n { key: \"width\", label: \"宽度\", cssProp: \"width\", type: \"number\", unit: \"px\" },\n { key: \"height\", label: \"高度\", cssProp: \"height\", type: \"number\", unit: \"px\" },\n { key: \"padding\", label: \"内边距\", cssProp: \"padding\", type: \"spacing\" },\n { key: \"margin\", label: \"外边距\", cssProp: \"margin\", type: \"spacing\" },\n]\n\n/**\n * Isolated light-surface skin used inside arbitrary third-party pages. The\n * scoped semantic variables prevent host-page CSS variables from changing the\n * popup while keeping every visual value in this Orbitwork UI-owned source.\n *\n * DS 2.0 契约(P6-7 / W4 去痕):这段 CSS 注进的是**第三方页面**,全局 `--ow-*` token 表\n * 不在场,所以 `var(--ow-x, y)` 里真正生效的永远是回退值 y —— 这份 `--ow-annotation-*`\n * 就是 DS token 的镜像,是本文件唯一允许出现字面色值的地方。规则块里一律零裸色:\n * 新值先在这里立一个 `--ow-annotation-*`(值抄 DS 2.0 浅档终值),再去规则里引。\n *\n * 表里每行右侧注释=它抄的那个 DS 2.0 token 名;终值出自 `src/tokens/{base,metrics}.ts` +\n * `src/tokens/light.ts`(解析后与 `contracts/ds2-spec.json` 的 light 档逐值一致)。\n * 改值的顺序永远是「先改 DS token,再回来同步这张表」,两边不许各自漂。\n *\n * **单主题(恒浅档)是有意的决定**:浮层落在任意第三方页面上,宿主页的明暗与我们无关,\n * 我们也拿不到自己的 `[data-theme]`;跟着宿主猜主题只会得到一个半明半暗的壳。所以这张表\n * 恒取 DS 2.0 **浅档**终值,浮层永远是一块自带 `--ow-popover-bg` 白面 + 1px `--ow-border`\n * + `--ow-shadow-pop` 的离地卡片(§5 立面:悬浮层永远保留 1px 边框),靠自己的立面立住,\n * 不靠宿主底色。`data-preview=\"true\"`(应用内 React 预览)沿用同一张表,两处所见一致。\n *\n * 圆角走 `--ow-radius-lg`(12):浮层是 popover/卡片档(§7 形状表 12=卡片/popover/toast),\n * 不是 modal 档;旧写法 `var(--ow-radius-modal, 14px)` 既走错语义档、14 又是形状表外的\n * 自造值(表内只有 4/6/8/10/12/16/999)。\n *\n * `data-slot` / `data-ow-part` 是与 desktop preload(webviewPreload.ts createPopup)和\n * BrowserAnnotationPopupView 之间的三方约定,改动要三处同步。\n */\nexport const BROWSER_ANNOTATION_POPUP_STYLES = `\n[data-slot=\"browser-annotation-popup\"]{all:initial;box-sizing:border-box;\n/* ── DS 2.0 浅档终值镜像表(左=本地隔离键,右注释=所抄的 DS 2.0 token)───────────── */\n--ow-annotation-primary:#0F1B3D; /* --ow-btn-primary-bg(=--ow-accent / --ow-navy) */\n--ow-annotation-primary-hover:#202942; /* --ow-btn-primary-hover */\n--ow-annotation-on-fill:#F7F6F1; /* --ow-on-fill(=--ow-btn-primary-fg;上游 text 命名只在导入边界归一) */\n--ow-annotation-bg:#FFFFFF; /* --ow-popover-bg —— 浮层自己的面 */\n--ow-annotation-bg-muted:#F1F0EA; /* --ow-surface-2(嵌套井/输入底/表头底),浅档与 --ow-hover-pop 同值 */\n--ow-annotation-bg-hover:#ECEBE5; /* --ow-press-pop —— 比 bg-muted 再深一档(§5 弹层上走 pop 档) */\n--ow-annotation-fg:#333B50; /* --ow-text */\n--ow-annotation-fg-muted:#646B7A; /* --ow-text-2 */\n--ow-annotation-fg-subtle:#646B7A; /* --ow-text-3(可读副文本档) */\n--ow-annotation-fg-placeholder:#646B7A; /* --ow-placeholder(浅档=--ow-text-3) */\n--ow-annotation-line:#DCDCD7; /* --ow-border(=--ow-input-border)—— 描边与分隔线 rest */\n--ow-annotation-line-strong:#C2C3C1; /* --ow-border-strong —— 输入 hover 档(§6 三态边框) */\n--ow-annotation-shadow-pop:0 4px 12px rgba(15, 27, 61, 0.10); /* --ow-shadow-pop */\n/* 字体栈也要镜像:注进第三方页时 --ow-font-sans 不在场,回退值必须逐字抄 DS 2.0 的栈\n (§8 已知坑:emoji 族必须置于栈尾,Linux 数字渲染缺陷,勿调序)。 */\n--ow-annotation-font-sans:'HarmonyOS Sans SC', 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji'; /* --ow-font-sans */\n/* ──────────────────────────────────────────────────────────────────────────────── */\nposition:fixed;z-index:2147483647;font-family:var(--ow-annotation-font-sans);font-size:var(--ow-fs-ui, 13px);color:var(--ow-annotation-fg);pointer-events:auto;width:320px;background:var(--ow-annotation-bg);border:var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);border-radius:var(--ow-radius-lg, 12px);box-shadow:var(--ow-annotation-shadow-pop);overflow:hidden;display:flex;flex-direction:column;}\n[data-slot=\"browser-annotation-popup\"][data-preview=\"true\"]{position:relative;z-index:1;max-height:100%;}\n[data-slot=\"browser-annotation-popup\"] *{box-sizing:border-box;}\n/* 左侧竖条是纯装饰的一条脊,不编码任何状态——按 §4 R2/R1 它没有资格拿提色,走中性描边。 */\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"collapsed-view\"]{display:flex;align-items:center;gap:var(--ow-space-15, 6px);padding:10px var(--ow-space-3, 12px);border-left:3px solid var(--ow-annotation-line-strong);border-radius:var(--ow-radius-lg, 12px);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"expanded-view\"]{display:none;flex-direction:column;overflow:hidden;flex:1;min-height:0;}\n[data-slot=\"browser-annotation-popup\"][data-ow-state=\"expanded\"] [data-ow-part=\"collapsed-view\"]{display:none;}\n[data-slot=\"browser-annotation-popup\"][data-ow-state=\"expanded\"] [data-ow-part=\"expanded-view\"]{display:flex;}\n[data-slot=\"browser-annotation-popup\"][data-ow-state=\"expanded\"][data-placement=\"flipped\"] [data-ow-part=\"expanded-view\"]{flex-direction:column-reverse;}\n[data-slot=\"browser-annotation-popup\"][data-ow-state=\"expanded\"][data-placement=\"flipped\"]{border-radius:var(--ow-radius-lg, 12px);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"top\"]{display:flex;align-items:center;gap:var(--ow-space-2, 8px);padding:10px var(--ow-space-3, 12px);border-left:3px solid var(--ow-annotation-line-strong);border-radius:var(--ow-radius-lg, 12px) var(--ow-radius-lg, 12px) 0 0;flex-shrink:0;}\n/* 工具条按钮走 ghost(DS 2.0 P6-7):静止透明,hover 才上底,press 再深一档。\n 之前静止就带 bg-muted,等于一直是个实心 chip,跟 §5「贴地不上底」对不上。 */\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"settings-btn\"]{all:initial;cursor:pointer;font:inherit;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--ow-radius-sm, 8px);background:transparent;color:var(--ow-annotation-fg-muted);flex-shrink:0;transition:background var(--ow-dur-1, 120ms) var(--ow-ease-beacon, cubic-bezier(0.22, 1, 0.36, 1));font-size:0;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"settings-btn\"]:hover{background:var(--ow-annotation-bg-muted);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"settings-btn\"]:active{background:var(--ow-annotation-bg-hover);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"input\"]{all:initial;flex:1;font:inherit;font-size:var(--ow-fs-ui, 13px);color:var(--ow-annotation-fg);padding:var(--ow-space-05, 2px) 0;border:none;outline:none;background:transparent;min-width:0;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"input\"]::placeholder{color:var(--ow-annotation-fg-placeholder);}\n/* 提交钮与同一行的 settings-btn 同档:28×28(§7 控件高 {28,32,40},图标钮 ≥28×28)。\n 旧值 30×30 不在档内,且与行内邻居对不齐。 */\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"submit-btn\"]{all:initial;cursor:pointer;font:inherit;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--ow-radius-sm, 8px);background:transparent;color:var(--ow-annotation-fg-subtle);flex-shrink:0;transition:background var(--ow-dur-1, 120ms) var(--ow-ease-beacon, cubic-bezier(0.22, 1, 0.36, 1)),color var(--ow-dur-1, 120ms) var(--ow-ease-beacon, cubic-bezier(0.22, 1, 0.36, 1));}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"submit-btn\"]:hover{background:var(--ow-annotation-bg-muted);}\n/* 有字才是「能提交了」——实底+提色,形状不变,颜色是第二编码(R1)。 */\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"submit-btn\"][data-ow-state=\"has-text\"]{background:var(--ow-annotation-primary);color:var(--ow-annotation-on-fill);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"submit-btn\"][data-ow-state=\"has-text\"]:hover{background:var(--ow-annotation-primary-hover);}\n/* §6:焦点环 2px + 2px 留白缝,不靠 all:initial 之后消失的浏览器默认环。\n 环色引 primary:DS 2.0 浅档 --ow-focus-ring 与 --ow-btn-primary-bg 同为 #0F1B3D,\n 不另立键;若上游把两者拆开,这里要跟着补 --ow-annotation-focus-ring。 */\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"settings-btn\"]:focus-visible,[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"submit-btn\"]:focus-visible,[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"cancel\"]:focus-visible,[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"confirm\"]:focus-visible{outline:var(--ow-focus-ring-w, 2px) solid var(--ow-annotation-primary);outline-offset:var(--ow-focus-ring-offset, 2px);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"tag\"]{display:flex;align-items:center;justify-content:space-between;padding:var(--ow-space-15, 6px) 14px;background:var(--ow-annotation-bg-muted);font-weight:700;font-size:var(--ow-fs-ui, 13px);color:var(--ow-annotation-fg);flex-shrink:0;}\n/* 拖拽握把是字形不是装饰色块,§7「图标色只取 text/text-2/text-3」——原 fg-faint(#C2C3C1)\n 在 DS 2.0 里是 --ow-border-strong,没有对应的文字档,故并入 text-3。 */\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"tag-drag\"]{color:var(--ow-annotation-fg-subtle);cursor:grab;font-size:var(--ow-fs-body, 14px);letter-spacing:1px;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"props\"]{padding:var(--ow-space-05, 2px) 14px var(--ow-space-1, 4px);overflow-y:auto;flex:1;min-height:0;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"prop\"]{display:flex;align-items:center;padding:var(--ow-space-15, 6px) 0;border-bottom: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);gap:10px;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"prop\"]:last-child{border-bottom:none;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"prop-label\"]{width:60px;flex-shrink:0;font-size:var(--ow-fs-mark-md, 11px);color:var(--ow-annotation-fg);font-weight:500;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"prop-value\"]{flex:1;display:flex;align-items:center;gap:5px;position:relative;}\n/* 输入类底色走 --ow-surface-2 的镜像(§5「嵌套井=输入底」),坐在 popover 白面上才读得出井;\n 三态边框 rest(line) → hover(line-strong) → focus(focus-ring,浅档同 primary),§6。 */\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"prop-input\"]{all:initial;font:inherit;font-size:var(--ow-fs-mark-md, 11px);color:var(--ow-annotation-fg);box-sizing:border-box;height:28px;padding:0 var(--ow-space-2, 8px);border: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);border-radius:var(--ow-radius-xs, 6px);width:100%;outline:none;background:var(--ow-annotation-bg-muted);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"prop-input\"]:hover{border-color:var(--ow-annotation-line-strong);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"prop-input\"]:focus{border-color:var(--ow-annotation-primary);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"prop-unit\"]{font-size:var(--ow-fs-mark-sm, 10px);color:var(--ow-annotation-fg-subtle);position:absolute;right:8px;pointer-events:none;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"prop-select\"]{all:initial;font:inherit;font-size:var(--ow-fs-mark-md, 11px);color:var(--ow-annotation-fg);box-sizing:border-box;height:28px;padding:0 var(--ow-space-2, 8px);border: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);border-radius:var(--ow-radius-xs, 6px);width:100%;outline:none;appearance:auto;cursor:pointer;background:var(--ow-annotation-bg-muted);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"prop-select\"]:hover{border-color:var(--ow-annotation-line-strong);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"prop-select\"]:focus{border-color:var(--ow-annotation-primary);}\n/* §7 形状表:999 只留给带状态点/计数的 chip 与真圆件(头像/状态点)。色板是个取色控件,\n 落按钮档 8px(原 50% 圆点是 V1 色板母题)。 */\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"color-swatch\"]{width:20px;height:20px;border-radius:var(--ow-radius-sm, 8px);border: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);flex-shrink:0;cursor:pointer;position:relative;overflow:hidden;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"color-swatch\"]:hover{border-color:var(--ow-annotation-line-strong);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"color-swatch\"] input{position:absolute;inset:-4px;width:28px;height:28px;opacity:0;cursor:pointer;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"spacing\"]{display:flex;gap:3px;flex:1;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"spacing\"] input{all:initial;font:inherit;font-size:var(--ow-fs-mark-sm, 10px);color:var(--ow-annotation-fg);box-sizing:border-box;height:28px;padding:0 3px;border: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);border-radius:var(--ow-radius-xs, 6px);width:100%;text-align:center;outline:none;background:var(--ow-annotation-bg-muted);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"spacing\"] input:hover{border-color:var(--ow-annotation-line-strong);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"spacing\"] input:focus{border-color:var(--ow-annotation-primary);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"actions\"]{display:flex;align-items:center;justify-content:space-between;padding:var(--ow-space-2, 8px) var(--ow-space-3, 12px);border-top: var(--ow-border-width-default, 1px) solid var(--ow-annotation-line);flex-shrink:0;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"cancel\"]{all:initial;cursor:pointer;font:inherit;font-weight:500;font-size:var(--ow-fs-ui, 13px);color:var(--ow-annotation-fg);box-sizing:border-box;height:32px;padding:0 14px;border:none;border-radius:var(--ow-radius-sm, 8px);background:var(--ow-annotation-bg-muted);transition:background var(--ow-dur-1, 120ms) var(--ow-ease-beacon, cubic-bezier(0.22, 1, 0.36, 1));display:inline-flex;align-items:center;justify-content:center;}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"cancel\"]:hover{background:var(--ow-annotation-bg-hover);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"confirm\"]{all:initial;cursor:pointer;font:inherit;font-weight:500;font-size:var(--ow-fs-ui, 13px);box-sizing:border-box;height:32px;padding:0 14px;border:none;border-radius:var(--ow-radius-sm, 8px);background:var(--ow-annotation-primary);color:var(--ow-annotation-on-fill);transition:background var(--ow-dur-1, 120ms) var(--ow-ease-beacon, cubic-bezier(0.22, 1, 0.36, 1));display:inline-flex;align-items:center;justify-content:center;gap:var(--ow-space-1, 4px);}\n[data-slot=\"browser-annotation-popup\"] [data-ow-part=\"confirm\"]:hover{background:var(--ow-annotation-primary-hover);}\n`\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// src/locale/core.ts
|
|
2
|
+
function validateDictionary(baseline, candidate) {
|
|
3
|
+
const baselineKeys = Object.keys(baseline).sort();
|
|
4
|
+
const candidateKeys = Object.keys(candidate).sort();
|
|
5
|
+
const missing = baselineKeys.filter((key) => !Object.hasOwn(candidate, key));
|
|
6
|
+
const unknown = candidateKeys.filter((key) => !Object.hasOwn(baseline, key));
|
|
7
|
+
const invalid = candidateKeys.filter((key) => typeof candidate[key] !== "string");
|
|
8
|
+
return missing.length || unknown.length || invalid.length ? { ok: false, missing, unknown, invalid } : { ok: true };
|
|
9
|
+
}
|
|
10
|
+
function createTranslator(baseline, active = null) {
|
|
11
|
+
return (key, values) => {
|
|
12
|
+
const template = active?.[key] ?? baseline[key] ?? key;
|
|
13
|
+
if (!values) return template;
|
|
14
|
+
return template.replace(
|
|
15
|
+
/\{([A-Za-z][A-Za-z0-9_]*)\}/g,
|
|
16
|
+
(match, name) => values[name] === void 0 ? match : String(values[name])
|
|
17
|
+
);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// src/locale/config.ts
|
|
22
|
+
var UI_LOCALES = [
|
|
23
|
+
{ value: "zh-CN", label: "\u7B80\u4F53\u4E2D\u6587" },
|
|
24
|
+
{ value: "en-US", label: "English" }
|
|
25
|
+
];
|
|
26
|
+
var DEFAULT_UI_LOCALE = "zh-CN";
|
|
27
|
+
function isUiLocale(value) {
|
|
28
|
+
return UI_LOCALES.some((item) => item.value === value);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export {
|
|
32
|
+
validateDictionary,
|
|
33
|
+
createTranslator,
|
|
34
|
+
UI_LOCALES,
|
|
35
|
+
DEFAULT_UI_LOCALE,
|
|
36
|
+
isUiLocale
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=chunk-UT5LC6MR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/locale/core.ts","../src/locale/config.ts"],"sourcesContent":["export type LocaleDictionary<Key extends string = string> = Readonly<Record<Key, string>>\nexport type TranslationValues = Readonly<Record<string, string | number>>\nexport type Translator<Key extends string = string> = (key: Key, values?: TranslationValues) => string\n\nexport type DictionaryValidationResult =\n | { ok: true }\n | { ok: false; missing: string[]; unknown: string[]; invalid: string[] }\n\n/** Locale packs must have exactly the same string keyset as the en-US baseline. */\nexport function validateDictionary(\n baseline: LocaleDictionary,\n candidate: Readonly<Record<string, unknown>>,\n): DictionaryValidationResult {\n const baselineKeys = Object.keys(baseline).sort()\n const candidateKeys = Object.keys(candidate).sort()\n const missing = baselineKeys.filter((key) => !Object.hasOwn(candidate, key))\n const unknown = candidateKeys.filter((key) => !Object.hasOwn(baseline, key))\n const invalid = candidateKeys.filter((key) => typeof candidate[key] !== \"string\")\n return missing.length || unknown.length || invalid.length ? { ok: false, missing, unknown, invalid } : { ok: true }\n}\n\nexport function createTranslator<Key extends string>(\n baseline: LocaleDictionary<Key>,\n active: LocaleDictionary<Key> | null = null,\n): Translator<Key> {\n return (key, values) => {\n const template = active?.[key] ?? baseline[key] ?? key\n if (!values) return template\n return template.replace(/\\{([A-Za-z][A-Za-z0-9_]*)\\}/g, (match, name: string) =>\n values[name] === undefined ? match : String(values[name]),\n )\n }\n}\n","/** Shared by UI and process-safe hosts. Add a language here alongside its dictionary. */\nexport const UI_LOCALES = [\n { value: \"zh-CN\", label: \"简体中文\" },\n { value: \"en-US\", label: \"English\" },\n] as const\nexport type UiLocale = (typeof UI_LOCALES)[number][\"value\"]\nexport const DEFAULT_UI_LOCALE: UiLocale = \"zh-CN\"\nexport function isUiLocale(value: unknown): value is UiLocale {\n return UI_LOCALES.some((item) => item.value === value)\n}\n"],"mappings":";AASO,SAAS,mBACd,UACA,WAC4B;AAC5B,QAAM,eAAe,OAAO,KAAK,QAAQ,EAAE,KAAK;AAChD,QAAM,gBAAgB,OAAO,KAAK,SAAS,EAAE,KAAK;AAClD,QAAM,UAAU,aAAa,OAAO,CAAC,QAAQ,CAAC,OAAO,OAAO,WAAW,GAAG,CAAC;AAC3E,QAAM,UAAU,cAAc,OAAO,CAAC,QAAQ,CAAC,OAAO,OAAO,UAAU,GAAG,CAAC;AAC3E,QAAM,UAAU,cAAc,OAAO,CAAC,QAAQ,OAAO,UAAU,GAAG,MAAM,QAAQ;AAChF,SAAO,QAAQ,UAAU,QAAQ,UAAU,QAAQ,SAAS,EAAE,IAAI,OAAO,SAAS,SAAS,QAAQ,IAAI,EAAE,IAAI,KAAK;AACpH;AAEO,SAAS,iBACd,UACA,SAAuC,MACtB;AACjB,SAAO,CAAC,KAAK,WAAW;AACtB,UAAM,WAAW,SAAS,GAAG,KAAK,SAAS,GAAG,KAAK;AACnD,QAAI,CAAC,OAAQ,QAAO;AACpB,WAAO,SAAS;AAAA,MAAQ;AAAA,MAAgC,CAAC,OAAO,SAC9D,OAAO,IAAI,MAAM,SAAY,QAAQ,OAAO,OAAO,IAAI,CAAC;AAAA,IAC1D;AAAA,EACF;AACF;;;AC/BO,IAAM,aAAa;AAAA,EACxB,EAAE,OAAO,SAAS,OAAO,2BAAO;AAAA,EAChC,EAAE,OAAO,SAAS,OAAO,UAAU;AACrC;AAEO,IAAM,oBAA8B;AACpC,SAAS,WAAW,OAAmC;AAC5D,SAAO,WAAW,KAAK,CAAC,SAAS,KAAK,UAAU,KAAK;AACvD;","names":[]}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ORBITWORK_SKIN_CSS_VARIABLES,
|
|
3
|
+
fontScaleTokens,
|
|
4
|
+
normalizeOrbitworkSkinPublicPartStyles,
|
|
5
|
+
orbitworkSkinImageCssValue,
|
|
6
|
+
resolveOrbitworkFontScale,
|
|
7
|
+
resolveOrbitworkSkinChatBackgroundMask
|
|
8
|
+
} from "./chunk-LSGO6AQR.js";
|
|
9
|
+
|
|
10
|
+
// src/theme/core/unifiedTheme.ts
|
|
11
|
+
var TENANT_TOKEN_MAP = {
|
|
12
|
+
bg: "--ow-bg",
|
|
13
|
+
surface: "--ow-surface",
|
|
14
|
+
surface2: "--ow-surface-2",
|
|
15
|
+
text: "--ow-text",
|
|
16
|
+
text2: "--ow-text-2",
|
|
17
|
+
text3: "--ow-text-3",
|
|
18
|
+
border: "--ow-border",
|
|
19
|
+
borderStrong: "--ow-border-strong"
|
|
20
|
+
};
|
|
21
|
+
function tenantTokens(theme, mode) {
|
|
22
|
+
const colors = theme?.modes[mode];
|
|
23
|
+
if (!colors) return {};
|
|
24
|
+
return Object.fromEntries(
|
|
25
|
+
Object.entries(TENANT_TOKEN_MAP).map(([key, token]) => [token, colors[key]])
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
function skinTokens(skin, mode) {
|
|
29
|
+
const values = skin?.modes[mode];
|
|
30
|
+
if (!values) return {};
|
|
31
|
+
const tokens = {};
|
|
32
|
+
for (const [rawKey, value] of Object.entries(values)) {
|
|
33
|
+
const key = rawKey;
|
|
34
|
+
const property = ORBITWORK_SKIN_CSS_VARIABLES[key];
|
|
35
|
+
if (!property || !value) continue;
|
|
36
|
+
if (key === "chatBackgroundImage") {
|
|
37
|
+
const image = orbitworkSkinImageCssValue(value);
|
|
38
|
+
if (image) tokens[property] = image;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (key === "chatBackgroundMaskColor") {
|
|
42
|
+
const mask = resolveOrbitworkSkinChatBackgroundMask(value);
|
|
43
|
+
tokens[property] = mask.color;
|
|
44
|
+
tokens["--ow-chat-bg-mask-start-opacity"] = `${mask.startOpacity}%`;
|
|
45
|
+
tokens["--ow-chat-bg-mask-end-opacity"] = `${mask.endOpacity}%`;
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (key === "chatBackgroundOverlay" && values.chatBackgroundMaskColor) continue;
|
|
49
|
+
tokens[property] = value;
|
|
50
|
+
}
|
|
51
|
+
return tokens;
|
|
52
|
+
}
|
|
53
|
+
function localeCandidates(locale) {
|
|
54
|
+
let canonical = "en-US";
|
|
55
|
+
try {
|
|
56
|
+
canonical = Intl.getCanonicalLocales(locale)[0] ?? "en-US";
|
|
57
|
+
} catch {
|
|
58
|
+
}
|
|
59
|
+
const language = canonical.split("-")[0] ?? "en";
|
|
60
|
+
return [.../* @__PURE__ */ new Set([canonical, language, "en-US"])];
|
|
61
|
+
}
|
|
62
|
+
function localizedCopy(source, locale) {
|
|
63
|
+
if (!source) return void 0;
|
|
64
|
+
for (const candidate of localeCandidates(locale)) {
|
|
65
|
+
if (source[candidate]) return source[candidate];
|
|
66
|
+
}
|
|
67
|
+
return void 0;
|
|
68
|
+
}
|
|
69
|
+
function mergeUnifiedTheme(brand, tenant, userSkin, mode, locale = "en-US", appearanceOverlaySkin = null, fontScalePreference = null) {
|
|
70
|
+
const chatBackgroundImage = appearanceOverlaySkin?.modes[mode]?.chatBackgroundImage ?? userSkin?.modes[mode]?.chatBackgroundImage;
|
|
71
|
+
const tokens = {
|
|
72
|
+
...brand?.modes[mode] ?? {},
|
|
73
|
+
...tenantTokens(tenant, mode),
|
|
74
|
+
...skinTokens(userSkin, mode),
|
|
75
|
+
...skinTokens(appearanceOverlaySkin, mode),
|
|
76
|
+
...fontScaleTokens(resolveOrbitworkFontScale(fontScalePreference, userSkin?.fontScale ?? brand?.fontScale))
|
|
77
|
+
};
|
|
78
|
+
const typography = tenant?.typography ?? brand?.typography;
|
|
79
|
+
if (typography) {
|
|
80
|
+
tokens["--ow-font-sans"] = typography.fontSans;
|
|
81
|
+
tokens["--ow-font-mono"] = typography.fontMono;
|
|
82
|
+
}
|
|
83
|
+
const brandCopy = localizedCopy(brand?.branding, locale);
|
|
84
|
+
const tenantCopy = localizedCopy(tenant?.branding, locale);
|
|
85
|
+
const copy = tenantCopy ? { ...brandCopy ?? {}, ...tenantCopy } : brandCopy ?? null;
|
|
86
|
+
const logo = tenant?.logo || brand?.logo;
|
|
87
|
+
const loginKV = tenant?.loginKV || brand?.loginKV;
|
|
88
|
+
const favicon = tenant?.favicon || brand?.favicon;
|
|
89
|
+
const branding = copy ? {
|
|
90
|
+
...copy,
|
|
91
|
+
...logo ? { logo } : {},
|
|
92
|
+
...loginKV ? { loginKV } : {},
|
|
93
|
+
...favicon ? { favicon } : {}
|
|
94
|
+
} : null;
|
|
95
|
+
return {
|
|
96
|
+
mode,
|
|
97
|
+
tokens,
|
|
98
|
+
branding,
|
|
99
|
+
skin: userSkin?.modes[mode] || appearanceOverlaySkin?.modes[mode] ? {
|
|
100
|
+
id: userSkin?.id ?? appearanceOverlaySkin?.id ?? "default",
|
|
101
|
+
...userSkin?.contributes?.publicPartStyles ? { publicPartStyles: userSkin.contributes.publicPartStyles } : {},
|
|
102
|
+
...chatBackgroundImage ? { chatBackgroundImage } : {},
|
|
103
|
+
hasChatBackgroundImage: Boolean(chatBackgroundImage),
|
|
104
|
+
hasUserBubbleStyle: Boolean(
|
|
105
|
+
userSkin?.modes[mode]?.userBubbleBackground || userSkin?.modes[mode]?.userBubbleForeground || userSkin?.modes[mode]?.userBubbleBorder
|
|
106
|
+
)
|
|
107
|
+
} : null,
|
|
108
|
+
sources: {
|
|
109
|
+
brand: brand?.id ?? null,
|
|
110
|
+
tenant: tenant?.name ?? null,
|
|
111
|
+
user: userSkin?.id ?? null
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// src/theme/utils/themeApplier.ts
|
|
117
|
+
var managedProperties = /* @__PURE__ */ new WeakMap();
|
|
118
|
+
var managedPublicPartStyles = /* @__PURE__ */ new WeakMap();
|
|
119
|
+
var managedPublicPartScopes = /* @__PURE__ */ new WeakMap();
|
|
120
|
+
var managedChatBackgroundImages = /* @__PURE__ */ new WeakMap();
|
|
121
|
+
var nextPublicPartScope = 0;
|
|
122
|
+
var CHAT_BACKGROUND_IMAGE_PROPERTY = "--ow-chat-bg-image";
|
|
123
|
+
function applyUnifiedTheme(theme, target = document.documentElement) {
|
|
124
|
+
const previous = managedProperties.get(target) ?? /* @__PURE__ */ new Set();
|
|
125
|
+
const next = new Set(Object.keys(theme.tokens));
|
|
126
|
+
for (const property of previous) {
|
|
127
|
+
if (!next.has(property)) target.style.removeProperty(property);
|
|
128
|
+
}
|
|
129
|
+
for (const [property, value] of Object.entries(theme.tokens)) {
|
|
130
|
+
if (value === void 0) continue;
|
|
131
|
+
const appliedValue = property === CHAT_BACKGROUND_IMAGE_PROPERTY && theme.skin?.chatBackgroundImage ? chatBackgroundImageCssValue(target, theme.skin.chatBackgroundImage, value) : value;
|
|
132
|
+
target.style.setProperty(property, appliedValue);
|
|
133
|
+
}
|
|
134
|
+
if (!next.has(CHAT_BACKGROUND_IMAGE_PROPERTY) || !theme.skin?.chatBackgroundImage) {
|
|
135
|
+
releaseChatBackgroundImage(target);
|
|
136
|
+
}
|
|
137
|
+
managedProperties.set(target, next);
|
|
138
|
+
setOptionalAttribute(target, "data-ow-brand-theme", theme.sources.brand);
|
|
139
|
+
setOptionalAttribute(target, "data-tenant-theme", theme.sources.tenant);
|
|
140
|
+
setOptionalAttribute(target, "data-ow-skin", theme.skin?.id ?? null);
|
|
141
|
+
if (theme.skin?.hasChatBackgroundImage) target.setAttribute("data-desktop-background-image", "");
|
|
142
|
+
else target.removeAttribute("data-desktop-background-image");
|
|
143
|
+
if (theme.skin?.hasUserBubbleStyle) target.setAttribute("data-chat-user-bubble-skin", "");
|
|
144
|
+
else target.removeAttribute("data-chat-user-bubble-skin");
|
|
145
|
+
const targetDocument = target.ownerDocument ?? (typeof document === "undefined" ? null : document);
|
|
146
|
+
if (targetDocument) applyPublicPartStyles(target, targetDocument, theme.skin);
|
|
147
|
+
}
|
|
148
|
+
function removeUnifiedTheme(target = document.documentElement) {
|
|
149
|
+
for (const property of managedProperties.get(target) ?? []) target.style.removeProperty(property);
|
|
150
|
+
managedProperties.delete(target);
|
|
151
|
+
releaseChatBackgroundImage(target);
|
|
152
|
+
target.removeAttribute("data-ow-brand-theme");
|
|
153
|
+
target.removeAttribute("data-tenant-theme");
|
|
154
|
+
target.removeAttribute("data-ow-skin");
|
|
155
|
+
target.removeAttribute("data-desktop-background-image");
|
|
156
|
+
target.removeAttribute("data-chat-user-bubble-skin");
|
|
157
|
+
removePublicPartStyles(target);
|
|
158
|
+
}
|
|
159
|
+
function chatBackgroundImageCssValue(target, dataUrl, fallback) {
|
|
160
|
+
const current = managedChatBackgroundImages.get(target);
|
|
161
|
+
if (current?.dataUrl === dataUrl) return `url("${current.objectUrl}")`;
|
|
162
|
+
const separator = dataUrl.indexOf(",");
|
|
163
|
+
const header = separator >= 0 ? dataUrl.slice(0, separator) : "";
|
|
164
|
+
if (!/^data:image\/(?:png|jpeg|webp);base64$/i.test(header)) {
|
|
165
|
+
releaseChatBackgroundImage(target);
|
|
166
|
+
return fallback;
|
|
167
|
+
}
|
|
168
|
+
try {
|
|
169
|
+
const binary = globalThis.atob(dataUrl.slice(separator + 1));
|
|
170
|
+
const bytes = new Uint8Array(binary.length);
|
|
171
|
+
for (let index = 0; index < binary.length; index += 1) bytes[index] = binary.charCodeAt(index);
|
|
172
|
+
const objectUrl = globalThis.URL.createObjectURL(new Blob([bytes], { type: header.slice(5, -7) }));
|
|
173
|
+
releaseChatBackgroundImage(target);
|
|
174
|
+
managedChatBackgroundImages.set(target, { dataUrl, objectUrl });
|
|
175
|
+
return `url("${objectUrl}")`;
|
|
176
|
+
} catch {
|
|
177
|
+
releaseChatBackgroundImage(target);
|
|
178
|
+
return fallback;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
function releaseChatBackgroundImage(target) {
|
|
182
|
+
const current = managedChatBackgroundImages.get(target);
|
|
183
|
+
if (!current) return;
|
|
184
|
+
globalThis.URL.revokeObjectURL(current.objectUrl);
|
|
185
|
+
managedChatBackgroundImages.delete(target);
|
|
186
|
+
}
|
|
187
|
+
function getCurrentThemeName(target = document.documentElement) {
|
|
188
|
+
return target.getAttribute("data-tenant-theme");
|
|
189
|
+
}
|
|
190
|
+
function setOptionalAttribute(target, name, value) {
|
|
191
|
+
if (value) target.setAttribute(name, value);
|
|
192
|
+
else target.removeAttribute(name);
|
|
193
|
+
}
|
|
194
|
+
function removePublicPartStyles(target) {
|
|
195
|
+
managedPublicPartStyles.get(target)?.remove();
|
|
196
|
+
managedPublicPartStyles.delete(target);
|
|
197
|
+
target.removeAttribute("data-ow-skin-scope");
|
|
198
|
+
}
|
|
199
|
+
function applyPublicPartStyles(target, document2, skin) {
|
|
200
|
+
const previous = managedPublicPartStyles.get(target);
|
|
201
|
+
if (!skin?.publicPartStyles) {
|
|
202
|
+
removePublicPartStyles(target);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
let normalized;
|
|
206
|
+
try {
|
|
207
|
+
normalized = normalizeOrbitworkSkinPublicPartStyles(skin.publicPartStyles);
|
|
208
|
+
} catch (error) {
|
|
209
|
+
console.error("[theme] rejected invalid public-part styles at apply time:", error);
|
|
210
|
+
removePublicPartStyles(target);
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
let scopeId = managedPublicPartScopes.get(target);
|
|
214
|
+
if (!scopeId) {
|
|
215
|
+
scopeId = `ow-skin-${++nextPublicPartScope}`;
|
|
216
|
+
managedPublicPartScopes.set(target, scopeId);
|
|
217
|
+
}
|
|
218
|
+
target.setAttribute("data-ow-skin-scope", scopeId);
|
|
219
|
+
const scope = `[data-ow-skin-scope="${scopeId}"]`;
|
|
220
|
+
const scopedCss = normalized.replace(/([^{}]+)\{/g, (_match, selector) => {
|
|
221
|
+
const selectors = selector.split(",").map((item) => `${scope} ${item.trim()}`).join(", ");
|
|
222
|
+
return `${selectors} {`;
|
|
223
|
+
});
|
|
224
|
+
const style = previous ?? document2.createElement("style");
|
|
225
|
+
style.setAttribute("data-ow-skin-style", scopeId);
|
|
226
|
+
style.textContent = scopedCss;
|
|
227
|
+
if (!previous) {
|
|
228
|
+
managedPublicPartStyles.set(target, style);
|
|
229
|
+
document2.head.appendChild(style);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
export {
|
|
234
|
+
localizedCopy,
|
|
235
|
+
mergeUnifiedTheme,
|
|
236
|
+
applyUnifiedTheme,
|
|
237
|
+
removeUnifiedTheme,
|
|
238
|
+
getCurrentThemeName
|
|
239
|
+
};
|
|
240
|
+
//# sourceMappingURL=chunk-ZXMHCL6D.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/theme/core/unifiedTheme.ts","../src/theme/utils/themeApplier.ts"],"sourcesContent":["import { type OrbitworkFontScale, fontScaleTokens, resolveOrbitworkFontScale } from \"./fontScale.ts\"\nimport {\n ORBITWORK_SKIN_CSS_VARIABLES,\n type OrbitworkSkin,\n type OrbitworkSkinTokens,\n type ResolvedTheme,\n orbitworkSkinImageCssValue,\n resolveOrbitworkSkinChatBackgroundMask,\n} from \"./skin.ts\"\nimport type {\n BrandTheme,\n LocalizedBranding,\n TenantBranding,\n TenantTheme,\n TenantThemeColors,\n UnifiedThemeToken,\n} from \"./types.ts\"\n\nexport type UnifiedBranding = TenantBranding & {\n logo?: string\n loginKV?: string\n favicon?: string\n}\n\nexport type UnifiedTheme = {\n mode: ResolvedTheme\n /** Partial overrides only. DS2 CSS remains the sole source of defaults. */\n tokens: Readonly<Partial<Record<AppliedThemeToken, string>>>\n branding: UnifiedBranding | null\n skin: {\n id: string\n publicPartStyles?: string\n /** Validated embedded image retained outside CSSOM so the applier can use a short blob URL. */\n chatBackgroundImage?: string\n hasChatBackgroundImage: boolean\n hasUserBubbleStyle: boolean\n } | null\n sources: {\n brand: string | null\n tenant: string | null\n user: string | null\n }\n}\n\ntype SkinThemeToken =\n | (typeof ORBITWORK_SKIN_CSS_VARIABLES)[keyof typeof ORBITWORK_SKIN_CSS_VARIABLES]\n | \"--ow-chat-bg-mask-start-opacity\"\n | \"--ow-chat-bg-mask-end-opacity\"\n\nexport type AppliedThemeToken = UnifiedThemeToken | SkinThemeToken\n\nconst TENANT_TOKEN_MAP = {\n bg: \"--ow-bg\",\n surface: \"--ow-surface\",\n surface2: \"--ow-surface-2\",\n text: \"--ow-text\",\n text2: \"--ow-text-2\",\n text3: \"--ow-text-3\",\n border: \"--ow-border\",\n borderStrong: \"--ow-border-strong\",\n} as const satisfies Record<keyof TenantThemeColors, UnifiedThemeToken>\n\nfunction tenantTokens(theme: TenantTheme | null, mode: ResolvedTheme): Partial<Record<UnifiedThemeToken, string>> {\n const colors = theme?.modes[mode]\n if (!colors) return {}\n return Object.fromEntries(\n Object.entries(TENANT_TOKEN_MAP).map(([key, token]) => [token, colors[key as keyof TenantThemeColors]]),\n )\n}\n\nfunction skinTokens(skin: OrbitworkSkin | null, mode: ResolvedTheme): Partial<Record<AppliedThemeToken, string>> {\n const values = skin?.modes[mode]\n if (!values) return {}\n const tokens: Partial<Record<AppliedThemeToken, string>> = {}\n\n for (const [rawKey, value] of Object.entries(values)) {\n const key = rawKey as keyof OrbitworkSkinTokens\n const property = ORBITWORK_SKIN_CSS_VARIABLES[key]\n if (!property || !value) continue\n\n if (key === \"chatBackgroundImage\") {\n const image = orbitworkSkinImageCssValue(value)\n if (image) tokens[property] = image\n continue\n }\n if (key === \"chatBackgroundMaskColor\") {\n const mask = resolveOrbitworkSkinChatBackgroundMask(value)\n tokens[property] = mask.color\n tokens[\"--ow-chat-bg-mask-start-opacity\"] = `${mask.startOpacity}%`\n tokens[\"--ow-chat-bg-mask-end-opacity\"] = `${mask.endOpacity}%`\n continue\n }\n // The explicit readability mask supersedes the legacy uniform overlay so the image is not veiled twice.\n if (key === \"chatBackgroundOverlay\" && values.chatBackgroundMaskColor) continue\n tokens[property] = value\n }\n\n return tokens\n}\n\nfunction localeCandidates(locale: string): string[] {\n let canonical = \"en-US\"\n try {\n canonical = Intl.getCanonicalLocales(locale)[0] ?? \"en-US\"\n } catch {\n // Invalid runtime preference falls through to the contract baseline.\n }\n const language = canonical.split(\"-\")[0] ?? \"en\"\n return [...new Set([canonical, language, \"en-US\"])]\n}\n\n/** Pick the best localized copy for a locale: canonical, then language, then en-US. */\nexport function localizedCopy(source: LocalizedBranding | undefined, locale: string): TenantBranding | undefined {\n if (!source) return undefined\n for (const candidate of localeCandidates(locale)) {\n if (source[candidate]) return source[candidate]\n }\n return undefined\n}\n\n/**\n * Merge already-validated layers for one resolved color mode.\n * Priority: personal skin > tenant > OEM brand > DS2 CSS defaults.\n */\nexport function mergeUnifiedTheme(\n brand: BrandTheme | null,\n tenant: TenantTheme | null,\n userSkin: OrbitworkSkin | null,\n mode: ResolvedTheme,\n locale = \"en-US\",\n appearanceOverlaySkin: OrbitworkSkin | null = null,\n fontScalePreference: OrbitworkFontScale | null = null,\n): UnifiedTheme {\n const chatBackgroundImage =\n appearanceOverlaySkin?.modes[mode]?.chatBackgroundImage ?? userSkin?.modes[mode]?.chatBackgroundImage\n const tokens: Partial<Record<AppliedThemeToken, string>> = {\n ...(brand?.modes[mode] ?? {}),\n ...tenantTokens(tenant, mode),\n ...skinTokens(userSkin, mode),\n ...skinTokens(appearanceOverlaySkin, mode),\n ...fontScaleTokens(resolveOrbitworkFontScale(fontScalePreference, userSkin?.fontScale ?? brand?.fontScale)),\n }\n\n const typography = tenant?.typography ?? brand?.typography\n if (typography) {\n tokens[\"--ow-font-sans\"] = typography.fontSans\n tokens[\"--ow-font-mono\"] = typography.fontMono\n }\n\n const brandCopy = localizedCopy(brand?.branding, locale)\n const tenantCopy = localizedCopy(tenant?.branding, locale)\n const copy: TenantBranding | null = tenantCopy ? { ...(brandCopy ?? {}), ...tenantCopy } : (brandCopy ?? null)\n const logo = tenant?.logo || brand?.logo\n const loginKV = tenant?.loginKV || brand?.loginKV\n const favicon = tenant?.favicon || brand?.favicon\n const branding = copy\n ? {\n ...copy,\n ...(logo ? { logo } : {}),\n ...(loginKV ? { loginKV } : {}),\n ...(favicon ? { favicon } : {}),\n }\n : null\n\n return {\n mode,\n tokens,\n branding,\n skin:\n userSkin?.modes[mode] || appearanceOverlaySkin?.modes[mode]\n ? {\n id: userSkin?.id ?? appearanceOverlaySkin?.id ?? \"default\",\n ...(userSkin?.contributes?.publicPartStyles\n ? { publicPartStyles: userSkin.contributes.publicPartStyles }\n : {}),\n ...(chatBackgroundImage ? { chatBackgroundImage } : {}),\n hasChatBackgroundImage: Boolean(chatBackgroundImage),\n hasUserBubbleStyle: Boolean(\n userSkin?.modes[mode]?.userBubbleBackground ||\n userSkin?.modes[mode]?.userBubbleForeground ||\n userSkin?.modes[mode]?.userBubbleBorder,\n ),\n }\n : null,\n sources: {\n brand: brand?.id ?? null,\n tenant: tenant?.name ?? null,\n user: userSkin?.id ?? null,\n },\n }\n}\n","import { normalizeOrbitworkSkinPublicPartStyles } from \"../core/skin.ts\"\nimport type { UnifiedTheme } from \"../core/unifiedTheme.ts\"\n\nconst managedProperties = new WeakMap<HTMLElement, Set<string>>()\nconst managedPublicPartStyles = new WeakMap<HTMLElement, HTMLStyleElement>()\nconst managedPublicPartScopes = new WeakMap<HTMLElement, string>()\nconst managedChatBackgroundImages = new WeakMap<HTMLElement, { dataUrl: string; objectUrl: string }>()\nlet nextPublicPartScope = 0\nconst CHAT_BACKGROUND_IMAGE_PROPERTY = \"--ow-chat-bg-image\"\n\n/**\n * Atomically replace the variables owned by the unified theme pipeline.\n * Missing values are removed so DS2 CSS remains the only default source.\n */\nexport function applyUnifiedTheme(theme: UnifiedTheme, target: HTMLElement = document.documentElement): void {\n const previous = managedProperties.get(target) ?? new Set<string>()\n const next = new Set(Object.keys(theme.tokens))\n\n for (const property of previous) {\n if (!next.has(property)) target.style.removeProperty(property)\n }\n for (const [property, value] of Object.entries(theme.tokens)) {\n if (value === undefined) continue\n const appliedValue =\n property === CHAT_BACKGROUND_IMAGE_PROPERTY && theme.skin?.chatBackgroundImage\n ? chatBackgroundImageCssValue(target, theme.skin.chatBackgroundImage, value)\n : value\n target.style.setProperty(property, appliedValue)\n }\n if (!next.has(CHAT_BACKGROUND_IMAGE_PROPERTY) || !theme.skin?.chatBackgroundImage) {\n releaseChatBackgroundImage(target)\n }\n\n managedProperties.set(target, next)\n setOptionalAttribute(target, \"data-ow-brand-theme\", theme.sources.brand)\n setOptionalAttribute(target, \"data-tenant-theme\", theme.sources.tenant)\n setOptionalAttribute(target, \"data-ow-skin\", theme.skin?.id ?? null)\n if (theme.skin?.hasChatBackgroundImage) target.setAttribute(\"data-desktop-background-image\", \"\")\n else target.removeAttribute(\"data-desktop-background-image\")\n if (theme.skin?.hasUserBubbleStyle) target.setAttribute(\"data-chat-user-bubble-skin\", \"\")\n else target.removeAttribute(\"data-chat-user-bubble-skin\")\n\n const targetDocument = target.ownerDocument ?? (typeof document === \"undefined\" ? null : document)\n if (targetDocument) applyPublicPartStyles(target, targetDocument, theme.skin)\n}\n\n/** Remove only values owned by applyUnifiedTheme; unrelated inline styles survive. */\nexport function removeUnifiedTheme(target: HTMLElement = document.documentElement): void {\n for (const property of managedProperties.get(target) ?? []) target.style.removeProperty(property)\n managedProperties.delete(target)\n releaseChatBackgroundImage(target)\n target.removeAttribute(\"data-ow-brand-theme\")\n target.removeAttribute(\"data-tenant-theme\")\n target.removeAttribute(\"data-ow-skin\")\n target.removeAttribute(\"data-desktop-background-image\")\n target.removeAttribute(\"data-chat-user-bubble-skin\")\n removePublicPartStyles(target)\n}\n\nfunction chatBackgroundImageCssValue(target: HTMLElement, dataUrl: string, fallback: string): string {\n const current = managedChatBackgroundImages.get(target)\n if (current?.dataUrl === dataUrl) return `url(\"${current.objectUrl}\")`\n\n const separator = dataUrl.indexOf(\",\")\n const header = separator >= 0 ? dataUrl.slice(0, separator) : \"\"\n if (!/^data:image\\/(?:png|jpeg|webp);base64$/i.test(header)) {\n releaseChatBackgroundImage(target)\n return fallback\n }\n\n try {\n const binary = globalThis.atob(dataUrl.slice(separator + 1))\n const bytes = new Uint8Array(binary.length)\n for (let index = 0; index < binary.length; index += 1) bytes[index] = binary.charCodeAt(index)\n const objectUrl = globalThis.URL.createObjectURL(new Blob([bytes], { type: header.slice(5, -7) }))\n releaseChatBackgroundImage(target)\n managedChatBackgroundImages.set(target, { dataUrl, objectUrl })\n return `url(\"${objectUrl}\")`\n } catch {\n releaseChatBackgroundImage(target)\n return fallback\n }\n}\n\nfunction releaseChatBackgroundImage(target: HTMLElement): void {\n const current = managedChatBackgroundImages.get(target)\n if (!current) return\n globalThis.URL.revokeObjectURL(current.objectUrl)\n managedChatBackgroundImages.delete(target)\n}\n\nexport function getCurrentThemeName(target: HTMLElement = document.documentElement): string | null {\n return target.getAttribute(\"data-tenant-theme\")\n}\n\nfunction setOptionalAttribute(target: HTMLElement, name: string, value: string | null): void {\n if (value) target.setAttribute(name, value)\n else target.removeAttribute(name)\n}\n\nfunction removePublicPartStyles(target: HTMLElement): void {\n managedPublicPartStyles.get(target)?.remove()\n managedPublicPartStyles.delete(target)\n target.removeAttribute(\"data-ow-skin-scope\")\n}\n\nfunction applyPublicPartStyles(target: HTMLElement, document: Document, skin: UnifiedTheme[\"skin\"]): void {\n const previous = managedPublicPartStyles.get(target)\n if (!skin?.publicPartStyles) {\n removePublicPartStyles(target)\n return\n }\n\n let normalized: string\n try {\n normalized = normalizeOrbitworkSkinPublicPartStyles(skin.publicPartStyles)\n } catch (error) {\n console.error(\"[theme] rejected invalid public-part styles at apply time:\", error)\n removePublicPartStyles(target)\n return\n }\n let scopeId = managedPublicPartScopes.get(target)\n if (!scopeId) {\n scopeId = `ow-skin-${++nextPublicPartScope}`\n managedPublicPartScopes.set(target, scopeId)\n }\n target.setAttribute(\"data-ow-skin-scope\", scopeId)\n const scope = `[data-ow-skin-scope=\"${scopeId}\"]`\n const scopedCss = normalized.replace(/([^{}]+)\\{/g, (_match, selector: string) => {\n const selectors = selector\n .split(\",\")\n .map((item) => `${scope} ${item.trim()}`)\n .join(\", \")\n return `${selectors} {`\n })\n const style = previous ?? document.createElement(\"style\")\n style.setAttribute(\"data-ow-skin-style\", scopeId)\n style.textContent = scopedCss\n if (!previous) {\n managedPublicPartStyles.set(target, style)\n document.head.appendChild(style)\n }\n}\n"],"mappings":"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","names":["document"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/locale/core.ts
|
|
2
|
+
function validateDictionary(baseline, candidate) {
|
|
3
|
+
const baselineKeys = Object.keys(baseline).sort();
|
|
4
|
+
const candidateKeys = Object.keys(candidate).sort();
|
|
5
|
+
const missing = baselineKeys.filter((key) => !Object.hasOwn(candidate, key));
|
|
6
|
+
const unknown = candidateKeys.filter((key) => !Object.hasOwn(baseline, key));
|
|
7
|
+
const invalid = candidateKeys.filter((key) => typeof candidate[key] !== "string");
|
|
8
|
+
return missing.length || unknown.length || invalid.length ? { ok: false, missing, unknown, invalid } : { ok: true };
|
|
9
|
+
}
|
|
10
|
+
function createTranslator(baseline, active = null) {
|
|
11
|
+
return (key, values) => {
|
|
12
|
+
const template = _nullishCoalesce(_nullishCoalesce(_optionalChain([active, 'optionalAccess', _ => _[key]]), () => ( baseline[key])), () => ( key));
|
|
13
|
+
if (!values) return template;
|
|
14
|
+
return template.replace(
|
|
15
|
+
/\{([A-Za-z][A-Za-z0-9_]*)\}/g,
|
|
16
|
+
(match, name) => values[name] === void 0 ? match : String(values[name])
|
|
17
|
+
);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// src/locale/config.ts
|
|
22
|
+
var UI_LOCALES = [
|
|
23
|
+
{ value: "zh-CN", label: "\u7B80\u4F53\u4E2D\u6587" },
|
|
24
|
+
{ value: "en-US", label: "English" }
|
|
25
|
+
];
|
|
26
|
+
var DEFAULT_UI_LOCALE = "zh-CN";
|
|
27
|
+
function isUiLocale(value) {
|
|
28
|
+
return UI_LOCALES.some((item) => item.value === value);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
exports.validateDictionary = validateDictionary; exports.createTranslator = createTranslator; exports.UI_LOCALES = UI_LOCALES; exports.DEFAULT_UI_LOCALE = DEFAULT_UI_LOCALE; exports.isUiLocale = isUiLocale;
|
|
38
|
+
//# sourceMappingURL=chunk-ZZTEY4YX.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/wowzin/projects/orbit/packages/ui/dist/chunk-ZZTEY4YX.cjs","../src/locale/core.ts","../src/locale/config.ts"],"names":[],"mappings":"AAAA;ACSO,SAAS,kBAAA,CACd,QAAA,EACA,SAAA,EAC4B;AAC5B,EAAA,MAAM,aAAA,EAAe,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAA;AAChD,EAAA,MAAM,cAAA,EAAgB,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,IAAA,CAAK,CAAA;AAClD,EAAA,MAAM,QAAA,EAAU,YAAA,CAAa,MAAA,CAAO,CAAC,GAAA,EAAA,GAAQ,CAAC,MAAA,CAAO,MAAA,CAAO,SAAA,EAAW,GAAG,CAAC,CAAA;AAC3E,EAAA,MAAM,QAAA,EAAU,aAAA,CAAc,MAAA,CAAO,CAAC,GAAA,EAAA,GAAQ,CAAC,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU,GAAG,CAAC,CAAA;AAC3E,EAAA,MAAM,QAAA,EAAU,aAAA,CAAc,MAAA,CAAO,CAAC,GAAA,EAAA,GAAQ,OAAO,SAAA,CAAU,GAAG,EAAA,IAAM,QAAQ,CAAA;AAChF,EAAA,OAAO,OAAA,CAAQ,OAAA,GAAU,OAAA,CAAQ,OAAA,GAAU,OAAA,CAAQ,OAAA,EAAS,EAAE,EAAA,EAAI,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,QAAQ,EAAA,EAAI,EAAE,EAAA,EAAI,KAAK,CAAA;AACpH;AAEO,SAAS,gBAAA,CACd,QAAA,EACA,OAAA,EAAuC,IAAA,EACtB;AACjB,EAAA,OAAO,CAAC,GAAA,EAAK,MAAA,EAAA,GAAW;AACtB,IAAA,MAAM,SAAA,oDAAW,MAAA,0BAAA,CAAS,GAAG,GAAA,UAAK,QAAA,CAAS,GAAG,GAAA,UAAK,KAAA;AACnD,IAAA,GAAA,CAAI,CAAC,MAAA,EAAQ,OAAO,QAAA;AACpB,IAAA,OAAO,QAAA,CAAS,OAAA;AAAA,MAAQ,8BAAA;AAAA,MAAgC,CAAC,KAAA,EAAO,IAAA,EAAA,GAC9D,MAAA,CAAO,IAAI,EAAA,IAAM,KAAA,EAAA,EAAY,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,IAAI,CAAC;AAAA,IAC1D,CAAA;AAAA,EACF,CAAA;AACF;ADbA;AACA;AEnBO,IAAM,WAAA,EAAa;AAAA,EACxB,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,2BAAO,CAAA;AAAA,EAChC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,UAAU;AACrC,CAAA;AAEO,IAAM,kBAAA,EAA8B,OAAA;AACpC,SAAS,UAAA,CAAW,KAAA,EAAmC;AAC5D,EAAA,OAAO,UAAA,CAAW,IAAA,CAAK,CAAC,IAAA,EAAA,GAAS,IAAA,CAAK,MAAA,IAAU,KAAK,CAAA;AACvD;AFoBA;AACA;AACE;AACA;AACA;AACA;AACA;AACF,8MAAC","file":"/Users/wowzin/projects/orbit/packages/ui/dist/chunk-ZZTEY4YX.cjs","sourcesContent":[null,"export type LocaleDictionary<Key extends string = string> = Readonly<Record<Key, string>>\nexport type TranslationValues = Readonly<Record<string, string | number>>\nexport type Translator<Key extends string = string> = (key: Key, values?: TranslationValues) => string\n\nexport type DictionaryValidationResult =\n | { ok: true }\n | { ok: false; missing: string[]; unknown: string[]; invalid: string[] }\n\n/** Locale packs must have exactly the same string keyset as the en-US baseline. */\nexport function validateDictionary(\n baseline: LocaleDictionary,\n candidate: Readonly<Record<string, unknown>>,\n): DictionaryValidationResult {\n const baselineKeys = Object.keys(baseline).sort()\n const candidateKeys = Object.keys(candidate).sort()\n const missing = baselineKeys.filter((key) => !Object.hasOwn(candidate, key))\n const unknown = candidateKeys.filter((key) => !Object.hasOwn(baseline, key))\n const invalid = candidateKeys.filter((key) => typeof candidate[key] !== \"string\")\n return missing.length || unknown.length || invalid.length ? { ok: false, missing, unknown, invalid } : { ok: true }\n}\n\nexport function createTranslator<Key extends string>(\n baseline: LocaleDictionary<Key>,\n active: LocaleDictionary<Key> | null = null,\n): Translator<Key> {\n return (key, values) => {\n const template = active?.[key] ?? baseline[key] ?? key\n if (!values) return template\n return template.replace(/\\{([A-Za-z][A-Za-z0-9_]*)\\}/g, (match, name: string) =>\n values[name] === undefined ? match : String(values[name]),\n )\n }\n}\n","/** Shared by UI and process-safe hosts. Add a language here alongside its dictionary. */\nexport const UI_LOCALES = [\n { value: \"zh-CN\", label: \"简体中文\" },\n { value: \"en-US\", label: \"English\" },\n] as const\nexport type UiLocale = (typeof UI_LOCALES)[number][\"value\"]\nexport const DEFAULT_UI_LOCALE: UiLocale = \"zh-CN\"\nexport function isUiLocale(value: unknown): value is UiLocale {\n return UI_LOCALES.some((item) => item.value === value)\n}\n"]}
|