diff --git a/frontend/.gitignore b/frontend/.gitignore index c0c467073d..9ab1c65091 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -49,3 +49,4 @@ test-results /scripts/dev-update-test/screenshots/ /editor/src-tauri/tauri.conf.dev-update.json .a11y-scan/ +.a11y-acc/ diff --git a/frontend/.storybook/a11y-baseline.dark.json b/frontend/.storybook/a11y-baseline.dark.json index fb461fe6d2..0967ef424b 100644 --- a/frontend/.storybook/a11y-baseline.dark.json +++ b/frontend/.storybook/a11y-baseline.dark.json @@ -1,2482 +1 @@ -{ - "editor/src/core/assets/Brand.stories.tsx :: Logos": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/components/StorageStatsCard.stories.tsx :: Default": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/core/components/StorageStatsCard.stories.tsx :: Nearing Quota": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/core/components/StorageStatsCard.stories.tsx :: No Quota": [ - "color-contrast" - ], - "editor/src/core/components/annotation/shared/ColorPicker.stories.tsx :: Default": [ - "aria-input-field-name", - "button-name", - "color-contrast" - ], - "editor/src/core/components/annotation/shared/ColorPicker.stories.tsx :: With Opacity": [ - "aria-input-field-name", - "button-name", - "color-contrast" - ], - "editor/src/core/components/annotation/shared/DrawingControls.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/annotation/shared/ImageUploader.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/annotation/shared/ImageUploader.stories.tsx :: With Background Removal": [ - "color-contrast" - ], - "editor/src/core/components/annotation/shared/ImageUploader.stories.tsx :: With Label And Hint": [ - "color-contrast" - ], - "editor/src/core/components/annotation/tools/ImageTool.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/fileManager/FileDetails.stories.tsx :: Default": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/components/fileManager/FileDetails.stories.tsx :: Empty": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/components/filesPage/DeleteFilesDialog.stories.tsx :: Cloud Only": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/DeleteFilesDialog.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/DeleteFilesDialog.stories.tsx :: Local And Cloud Choice": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/DeleteFolderDialog.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/DeleteFolderDialog.stories.tsx :: With Files": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/FileDetailsPanel.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FileDetailsPanel.stories.tsx :: In Folder": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FileDetailsPanel.stories.tsx :: Local Only With Save To Server": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FileDetailsPanel.stories.tsx :: Multi Select": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FileGrid.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FileGrid.stories.tsx :: List Mode": [ - "aria-required-children" - ], - "editor/src/core/components/filesPage/FileOriginBadge.stories.tsx :: Cloud": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FolderAppearancePicker.stories.tsx :: Default": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/components/filesPage/FolderAppearancePicker.stories.tsx :: Disabled": [ - "scrollable-region-focusable" - ], - "editor/src/core/components/filesPage/FolderAppearancePicker.stories.tsx :: No Appearance Set": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/components/filesPage/FolderNameDialog.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/FolderNameDialog.stories.tsx :: Rename": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/FolderThumbnail.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/MoveToFolderDialog.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/MoveToFolderDialog.stories.tsx :: Empty": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/MoveToFolderDialog.stories.tsx :: With Create Folder": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/MoveToFolderDialog.stories.tsx :: With Disabled Descendant": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/VersionHistoryModal.stories.tsx :: Default": [ - "button-name" - ], - "editor/src/core/components/filesPage/VersionHistoryModal.stories.tsx :: No File Selected": [ - "button-name" - ], - "editor/src/core/components/filesPage/VersionTimeline.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/VersionTimeline.stories.tsx :: Long Chain Collapsed": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/VersionTimeline.stories.tsx :: No Header": [ - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Admin Overview Login Disabled": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Admin Overview Login Enabled": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Analytics Choice": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Analytics Choice Error": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Desktop Install": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: First Login": [ - "aria-dialog-name" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: First Login Default Credentials": [ - "aria-dialog-name" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Mfa Setup": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Security Check": [ - "aria-dialog-name" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Server License": [ - "aria-dialog-name" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Server License Over Limit": [ - "aria-dialog-name" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Stepped Flow Example": [ - "aria-dialog-name", - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Tour Overview": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Welcome": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingSlideShell.stories.tsx :: Default": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingSlideShell.stories.tsx :: Not Dismissible": [ - "aria-dialog-name", - "aria-progressbar-name" - ], - "editor/src/core/components/onboarding/OnboardingSlideShell.stories.tsx :: Stepped With Back": [ - "aria-dialog-name", - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/slides/WelcomeSlide.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/pageEditor/bulkSelectionPanel/AdvancedSelectionPanel.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/pageEditor/bulkSelectionPanel/AdvancedSelectionPanel.stories.tsx :: With Expression": [ - "color-contrast" - ], - "editor/src/core/components/pageEditor/bulkSelectionPanel/OperatorsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/pageEditor/bulkSelectionPanel/OperatorsSection.stories.tsx :: Empty Input": [ - "color-contrast" - ], - "editor/src/core/components/pageEditor/bulkSelectionPanel/SelectedPagesDisplay.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/pageEditor/bulkSelectionPanel/SelectedPagesDisplay.stories.tsx :: Syntax Error": [ - "color-contrast" - ], - "editor/src/core/components/shared/BulkShareModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/BulkShareModal.stories.tsx :: Links Enabled": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/BulkUploadToServerModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/BulkUploadToServerModal.stories.tsx :: Single File": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/DropdownListWithFooter.stories.tsx :: Default": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/DropdownListWithFooter.stories.tsx :: Empty": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/DropdownListWithFooter.stories.tsx :: Multi Select With Footer": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/EditableSecretField.stories.tsx :: Masked": [ - "label" - ], - "editor/src/core/components/shared/EditableSecretField.stories.tsx :: Masked Disabled": [ - "label" - ], - "editor/src/core/components/shared/EditableSecretField.stories.tsx :: With Error": [ - "label-title-only" - ], - "editor/src/core/components/shared/EncryptedPdfUnlockModal.stories.tsx :: Default": [ - "button-name" - ], - "editor/src/core/components/shared/EncryptedPdfUnlockModal.stories.tsx :: Incorrect Password": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/EncryptedPdfUnlockModal.stories.tsx :: Multiple Files Remaining": [ - "button-name" - ], - "editor/src/core/components/shared/EncryptedPdfUnlockModal.stories.tsx :: Processing": [ - "button-name" - ], - "editor/src/core/components/shared/ErrorBoundary.stories.tsx :: Caught Error": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileCard.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileCard.stories.tsx :: Selected": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileCard.stories.tsx :: Unsupported": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileDropdownMenu.stories.tsx :: Default": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/FileDropdownMenu.stories.tsx :: No Remove": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/FileDropdownMenu.stories.tsx :: Switching": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/FileGrid.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileGrid.stories.tsx :: Search And Sort": [ - "color-contrast", - "label" - ], - "editor/src/core/components/shared/FilePickerModal.stories.tsx :: Default": [ - "button-name", - "color-contrast", - "label" - ], - "editor/src/core/components/shared/FilePickerModal.stories.tsx :: Empty": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/FileSelectorPicker.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileUploadButton.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileUploadButton.stories.tsx :: With File Selected": [ - "color-contrast" - ], - "editor/src/core/components/shared/Footer.stories.tsx :: All Links And Cookie Banner": [ - "color-contrast" - ], - "editor/src/core/components/shared/InfoBanner.stories.tsx :: Warning": [ - "color-contrast" - ], - "editor/src/core/components/shared/MobileUploadModal.stories.tsx :: Default": [ - "button-name", - "color-contrast", - "svg-img-alt" - ], - "editor/src/core/components/shared/MultiSelectControls.stories.tsx :: All Actions": [ - "color-contrast" - ], - "editor/src/core/components/shared/MultiSelectControls.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/NavigationWarningModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/NavigationWarningModal.stories.tsx :: With Apply And Continue": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/NavigationWarningModal.stories.tsx :: With Export And Continue": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/ObscuredOverlay.stories.tsx :: Unobscured": [ - "color-contrast" - ], - "editor/src/core/components/shared/PageSelectionSyntaxHint.stories.tsx :: Compact Syntax Error": [ - "color-contrast" - ], - "editor/src/core/components/shared/PageSelectionSyntaxHint.stories.tsx :: Syntax Error": [ - "color-contrast" - ], - "editor/src/core/components/shared/PolicyBadges.stories.tsx :: Default": [ - "scrollable-region-focusable" - ], - "editor/src/core/components/shared/PolicyBadges.stories.tsx :: Empty": [ - "scrollable-region-focusable" - ], - "editor/src/core/components/shared/PolicyBadges.stories.tsx :: Enforcing": [ - "scrollable-region-focusable" - ], - "editor/src/core/components/shared/ShareFileModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/ShareFileModal.stories.tsx :: Links Enabled": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/ShareManagementModal.stories.tsx :: Default": [ - "button-name" - ], - "editor/src/core/components/shared/ShareManagementModal.stories.tsx :: Links Enabled": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/UpdateModal.stories.tsx :: Default": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/shared/UpdateModal.stories.tsx :: Desktop Install Blocked": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/shared/UpdateModal.stories.tsx :: Desktop Install Ready To Restart": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/shared/UploadToServerModal.stories.tsx :: Already Uploaded": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/UploadToServerModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/UserSelector.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/ZipWarningModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/ZipWarningModal.stories.tsx :: Single File": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/config/RestartConfirmationModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/config/SettingsStickyFooter.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/SettingsStickyFooter.stories.tsx :: Saving": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/GeneralSection.stories.tsx :: Admin Banner": [ - "color-contrast", - "label" - ], - "editor/src/core/components/shared/config/configSections/GeneralSection.stories.tsx :: Default": [ - "color-contrast", - "label" - ], - "editor/src/core/components/shared/config/configSections/GeneralSection.stories.tsx :: With Backend Version": [ - "color-contrast", - "label" - ], - "editor/src/core/components/shared/config/configSections/HelpSection.stories.tsx :: Admin": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/HelpSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/HotkeysSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/LegalSection.stories.tsx :: With Analytics Enabled": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/Overview.stories.tsx :: Loaded": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/Overview.stories.tsx :: With Warning": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/ProviderCard.stories.tsx :: Configured": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/ProviderCard.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/ProviderCard.stories.tsx :: Read Only": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/ThirdPartyLicensesSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/filePreview/HoverOverlay.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/CreateSessionFlow.stories.tsx :: Creating": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/CreateSessionFlow.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/CreateSessionFlow.stories.tsx :: No File Selected": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/SharedSigningLauncher.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/SharedSigningLauncher.stories.tsx :: Pending Requests": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ConfigureSignatureDefaultsStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ConfigureSignatureDefaultsStep.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ConfigureSignatureDefaultsStep.stories.tsx :: Invisible Signature": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ReviewSessionStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ReviewSessionStep.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ReviewSessionStep.stories.tsx :: Invisible Signature": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/SelectDocumentStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/SelectParticipantsStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/SelectParticipantsStep.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/SelectParticipantsStep.stories.tsx :: With Selection": [ - "color-contrast" - ], - "editor/src/core/components/shared/sliderWithInput/SliderWithInput.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/shared/sliderWithInput/SliderWithInput.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/shared/wetSignature/DrawSignatureCanvas.stories.tsx :: Default": [ - "aria-input-field-name" - ], - "editor/src/core/components/shared/wetSignature/DrawSignatureCanvas.stories.tsx :: Disabled": [ - "aria-input-field-name" - ], - "editor/src/core/components/shared/wetSignature/TypeSignatureText.stories.tsx :: Default": [ - "aria-input-field-name" - ], - "editor/src/core/components/shared/wetSignature/TypeSignatureText.stories.tsx :: Disabled": [ - "aria-input-field-name" - ], - "editor/src/core/components/shared/wetSignature/TypeSignatureText.stories.tsx :: Empty": [ - "aria-input-field-name" - ], - "editor/src/core/components/shared/wetSignature/UploadSignatureImage.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/toast/ToastRenderer.stories.tsx :: With Action Button": [ - "color-contrast" - ], - "editor/src/core/components/tools/ToolPanelModePrompt.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/addPageNumbers/PageNumberPreview.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/addPageNumbers/PageNumberPreview.stories.tsx :: With Quick Grid": [ - "color-contrast" - ], - "editor/src/core/components/tools/addStamp/StampPreview.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/addStamp/StampPreview.stories.tsx :: With Quick Grid": [ - "color-contrast" - ], - "editor/src/core/components/tools/addStamp/StampPreview.stories.tsx :: With Text": [ - "color-contrast" - ], - "editor/src/core/components/tools/addStamp/StampSetupSettings.stories.tsx :: Image Stamp": [ - "color-contrast" - ], - "editor/src/core/components/tools/addWatermark/AddWatermarkSingleStepSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/addWatermark/AddWatermarkSingleStepSettings.stories.tsx :: Text Only": [ - "button-name", - "label" - ], - "editor/src/core/components/tools/addWatermark/AddWatermarkSingleStepSettings.stories.tsx :: Text Watermark": [ - "button-name", - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkFormatting.stories.tsx :: Default": [ - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkFormatting.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkFormatting.stories.tsx :: Without Flatten Option": [ - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkImageFile.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/addWatermark/WatermarkImageFile.stories.tsx :: With Selected Image": [ - "color-contrast" - ], - "editor/src/core/components/tools/addWatermark/WatermarkStyleSettings.stories.tsx :: Default": [ - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkStyleSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkTextStyle.stories.tsx :: Default": [ - "button-name", - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkTextStyle.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastBasicSettings.stories.tsx :: Adjusted": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastBasicSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastBasicSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastColorSettings.stories.tsx :: Adjusted": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastColorSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastColorSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastSingleStepSettings.stories.tsx :: Adjusted": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastSingleStepSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastSingleStepSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/automate/AutomationCreation.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/automate/AutomationCreation.stories.tsx :: Edit Existing": [ - "color-contrast" - ], - "editor/src/core/components/tools/automate/AutomationCreation.stories.tsx :: Embedded Hide Metadata": [ - "color-contrast" - ], - "editor/src/core/components/tools/automate/AutomationImportModal.stories.tsx :: Default": [ - "button-name", - "color-contrast", - "label" - ], - "editor/src/core/components/tools/automate/ToolConfigurationModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/automate/ToolConfigurationModal.stories.tsx :: With Settings": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/automate/ToolList.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/automate/ToolSelector.stories.tsx :: Custom Placeholder": [ - "color-contrast" - ], - "editor/src/core/components/tools/automate/ToolSelector.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/bookletImposition/BookletImpositionSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/bookletImposition/BookletImpositionSettings.stories.tsx :: Manual Duplex": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertSignAutomationSettings.stories.tsx :: Auto Sign Mode": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertSignAutomationSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertSignAutomationSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateFilesSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateFilesSettings.stories.tsx :: Jks": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateFilesSettings.stories.tsx :: Pkcs 12": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateFormatSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateFormatSettings.stories.tsx :: Selected": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateSelector.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateSelector.stories.tsx :: Pem Format": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateTypeSettings.stories.tsx :: All Sources Available": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateTypeSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateTypeSettings.stories.tsx :: Server Selected": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureAppearanceSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureAppearanceSettings.stories.tsx :: Visible Signature": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureSettingsDisplay.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureSettingsDisplay.stories.tsx :: Minimal Details": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureSettingsInput.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureSettingsInput.stories.tsx :: Visible Signature": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/WetSignatureInput.stories.tsx :: Upload Certificate": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/modals/AddParticipantsFlow.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/modals/CertificateConfigModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/modals/CertificateConfigModal.stories.tsx :: Disabled": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/modals/CertificateConfigModal.stories.tsx :: Multiple Signatures": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/modals/SelectSignatureModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/ParticipantListPanel.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/ParticipantListPanel.stories.tsx :: Finalized": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SessionActionsPanel.stories.tsx :: All Signed": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SessionActionsPanel.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SessionDetailPanel.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SessionDetailPanel.stories.tsx :: Finalized": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SignControlsPanel.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SignControlsPanel.stories.tsx :: No Signature Chosen": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/AddSignaturesStep.stories.tsx :: Default": [ - "aria-input-field-name" - ], - "editor/src/core/components/tools/certSign/steps/AddSignaturesStep.stories.tsx :: Disabled": [ - "aria-input-field-name" - ], - "editor/src/core/components/tools/certSign/steps/AddSignaturesStep.stories.tsx :: Placement Mode": [ - "aria-input-field-name" - ], - "editor/src/core/components/tools/certSign/steps/CertificateSelectionStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/CertificateSelectionStep.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/CertificateSelectionStep.stories.tsx :: Upload Ready": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/CertificateSelectionStep.stories.tsx :: User Certificate": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/ReviewSignatureStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/ReviewSignatureStep.stories.tsx :: Multiple Signatures": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/ReviewSignatureStep.stories.tsx :: Uploaded Certificate Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignatureCreationStep.stories.tsx :: Default": [ - "aria-input-field-name" - ], - "editor/src/core/components/tools/certSign/steps/SignatureCreationStep.stories.tsx :: Disabled": [ - "aria-input-field-name" - ], - "editor/src/core/components/tools/certSign/steps/SignatureCreationStep.stories.tsx :: Type Mode": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignatureCreationStep.stories.tsx :: With Signature": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignaturePlacementStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignaturePlacementStep.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignaturePlacementStep.stories.tsx :: Placed": [ - "color-contrast" - ], - "editor/src/core/components/tools/changeMetadata/steps/AdvancedOptionsStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/changeMetadata/steps/AdvancedOptionsStep.stories.tsx :: With Custom Metadata": [ - "color-contrast" - ], - "editor/src/core/components/tools/changeMetadata/steps/CustomMetadataStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/changeMetadata/steps/CustomMetadataStep.stories.tsx :: With Entries": [ - "color-contrast" - ], - "editor/src/core/components/tools/changeMetadata/steps/DocumentDatesStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/changeMetadata/steps/DocumentDatesStep.stories.tsx :: Filled": [ - "button-name" - ], - "editor/src/core/components/tools/compare/ComparePixelWorkbenchView.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/compare/ComparePixelWorkbenchView.stories.tsx :: No Differences": [ - "color-contrast" - ], - "editor/src/core/components/tools/compare/ComparePixelWorkbenchView.stories.tsx :: With Warnings": [ - "color-contrast" - ], - "editor/src/core/components/tools/compress/CompressSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/compress/CompressSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/compress/CompressSettings.stories.tsx :: File Size Method": [ - "label" - ], - "editor/src/core/components/tools/compress/CompressSettings.stories.tsx :: Line Art Enabled": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/convert/ConvertFromEmailSettings.stories.tsx :: Default": [ - "label" - ], - "editor/src/core/components/tools/convert/ConvertFromEmailSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/convert/ConvertFromWebSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/convert/ConvertFromWebSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/convert/ConvertToPdfaSettings.stories.tsx :: Default": [ - "label" - ], - "editor/src/core/components/tools/convert/ConvertToPdfaSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/convert/ConvertToPdfaSettings.stories.tsx :: Strict Mode": [ - "label" - ], - "editor/src/core/components/tools/editTableOfContents/BookmarkEditor.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/BookmarkEditor.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsSettings.stories.tsx :: Loading With Error": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsSettings.stories.tsx :: No File Selected": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsWorkbenchView.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsWorkbenchView.stories.tsx :: With Error": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsWorkbenchView.stories.tsx :: With Results": [ - "color-contrast" - ], - "editor/src/core/components/tools/fullscreen/DetailedToolItem.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/fullscreen/DetailedToolItem.stories.tsx :: Selected": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/GetPdfInfoReportView.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/GetPdfInfoResults.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/GetPdfInfoResults.stories.tsx :: Partial Error": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/ComplianceSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/merge/MergeFileSorter.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/ocr/LanguagePicker.stories.tsx :: Default": [ - "aria-allowed-attr" - ], - "editor/src/core/components/tools/ocr/OCRSettings.stories.tsx :: Default": [ - "aria-allowed-attr" - ], - "editor/src/core/components/tools/redact/RedactAdvancedSettings.stories.tsx :: Default": [ - "button-name" - ], - "editor/src/core/components/tools/redact/RedactSingleStepSettings.stories.tsx :: Automatic With Words": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/redact/RedactSingleStepSettings.stories.tsx :: Default": [ - "button-name" - ], - "editor/src/core/components/tools/redact/RedactSingleStepSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/redact/WordsToRedactInput.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/redact/WordsToRedactInput.stories.tsx :: With Words": [ - "color-contrast" - ], - "editor/src/core/components/tools/removeBlanks/RemoveBlanksSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/removeBlanks/RemoveBlanksSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/removeBlanks/RemoveBlanksSettings.stories.tsx :: Include Blank Pages": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/replaceColor/ReplaceColorSettings.stories.tsx :: Custom Color": [ - "button-name", - "label" - ], - "editor/src/core/components/tools/replaceColor/ReplaceColorSettings.stories.tsx :: Default": [ - "label" - ], - "editor/src/core/components/tools/replaceColor/ReplaceColorSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/shared/ErrorNotification.stories.tsx :: Custom Title": [ - "button-name" - ], - "editor/src/core/components/tools/shared/ErrorNotification.stories.tsx :: Default": [ - "button-name" - ], - "editor/src/core/components/tools/shared/NumberInputWithUnit.stories.tsx :: Default": [ - "label" - ], - "editor/src/core/components/tools/shared/NumberInputWithUnit.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/shared/NumberInputWithUnit.stories.tsx :: With Min Max": [ - "label" - ], - "editor/src/core/components/tools/shared/ResultsPreview.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/ResultsPreview.stories.tsx :: Single File": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/ToolStep.stories.tsx :: Collapsed": [ - "color-contrast" - ], - "editor/src/core/components/tools/showJS/ShowJSView.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/showJS/ShowJSView.stories.tsx :: With Download": [ - "color-contrast" - ], - "editor/src/core/components/tools/toolPicker/FavoriteStar.stories.tsx :: Default": [ - "aria-prohibited-attr" - ], - "editor/src/core/components/tools/toolPicker/FavoriteStar.stories.tsx :: Favorited": [ - "aria-prohibited-attr" - ], - "editor/src/core/components/tools/toolPicker/FavoriteStar.stories.tsx :: Sizes": [ - "aria-prohibited-attr" - ], - "editor/src/core/components/tools/toolPicker/ToolSearch.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/toolPicker/ToolSearch.stories.tsx :: Dropdown Mode": [ - "color-contrast" - ], - "editor/src/core/components/tools/toolPicker/ToolSearch.stories.tsx :: Unstyled": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureReportView.stories.tsx :: Default": [ - "aria-allowed-attr", - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureReportView.stories.tsx :: Error": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureReportView.stories.tsx :: Multiple Signatures": [ - "aria-allowed-attr", - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureReportView.stories.tsx :: No Signatures": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureSettings.stories.tsx :: With Cert File": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureSection.stories.tsx :: Default": [ - "aria-allowed-attr" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureSection.stories.tsx :: Invalid With Error": [ - "aria-allowed-attr" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureSection.stories.tsx :: Self Signed Minimal Data": [ - "aria-allowed-attr" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureStatusBadge.stories.tsx :: Default": [ - "aria-allowed-attr" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureStatusBadge.stories.tsx :: Invalid": [ - "aria-allowed-attr" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureStatusBadge.stories.tsx :: Untrusted Signer": [ - "aria-allowed-attr" - ], - "editor/src/core/components/viewer/nonpdf/TextViewer.stories.tsx :: Markdown": [ - "color-contrast" - ], - "editor/src/core/tokens/Tokens.stories.tsx :: Colours": ["color-contrast"], - "editor/src/core/tokens/Tokens.stories.tsx :: Typography": ["color-contrast"], - "editor/src/core/ui/Banner.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/Banner.stories.tsx :: Success": ["color-contrast"], - "editor/src/core/ui/Banner.stories.tsx :: Tone Matrix": ["color-contrast"], - "editor/src/core/ui/Banner.stories.tsx :: With Action": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Accents": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Disabled Dark": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Justify": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Loading": ["button-name"], - "editor/src/core/ui/Button.stories.tsx :: Padding": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Shape": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Sizes": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Variants": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: With Icons": ["color-contrast"], - "editor/src/core/ui/Card.stories.tsx :: Accent Matrix": ["color-contrast"], - "editor/src/core/ui/Card.stories.tsx :: In Context Metrics Inside Card": [ - "color-contrast" - ], - "editor/src/core/ui/Card.stories.tsx :: In Context Product Grid": [ - "color-contrast" - ], - "editor/src/core/ui/Card.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/ChatFABButton.stories.tsx :: Default": ["button-name"], - "editor/src/core/ui/ChatFABButton.stories.tsx :: Loading": ["button-name"], - "editor/src/core/ui/ChatFABButton.stories.tsx :: Tick": ["button-name"], - "editor/src/core/ui/ChatFABButton.stories.tsx :: Tick While Loading": [ - "button-name" - ], - "editor/src/core/ui/ChatFABWindow.stories.tsx :: Closed": [ - "scrollable-region-focusable" - ], - "editor/src/core/ui/ChatFABWindow.stories.tsx :: Open": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/ui/ChatFABWindow.stories.tsx :: Toggle": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/ui/Chip.stories.tsx :: Accents": ["color-contrast"], - "editor/src/core/ui/Chip.stories.tsx :: Dashed Add": ["nested-interactive"], - "editor/src/core/ui/Chip.stories.tsx :: In Context Op Chain": [ - "color-contrast" - ], - "editor/src/core/ui/Chip.stories.tsx :: Playground": [ - "color-contrast", - "nested-interactive" - ], - "editor/src/core/ui/CodeBlock.stories.tsx :: In Context Quickstart": [ - "color-contrast" - ], - "editor/src/core/ui/CodeBlock.stories.tsx :: In Context Two Up Comparison": [ - "color-contrast" - ], - "editor/src/core/ui/CodeBlock.stories.tsx :: Long Scrolling": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/ui/CodeBlock.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/Collapsible.stories.tsx :: Accordion": [ - "scrollable-region-focusable" - ], - "editor/src/core/ui/Collapsible.stories.tsx :: Default": [ - "scrollable-region-focusable" - ], - "editor/src/core/ui/DataRow.stories.tsx :: Single": ["color-contrast"], - "editor/src/core/ui/DataRow.stories.tsx :: Summary": ["color-contrast"], - "editor/src/core/ui/Drawer.stories.tsx :: Playground": [ - "aria-allowed-role", - "color-contrast" - ], - "editor/src/core/ui/Drawer.stories.tsx :: With Footer": [ - "aria-allowed-role", - "color-contrast" - ], - "editor/src/core/ui/Dropdown.stories.tsx :: Align Start": ["color-contrast"], - "editor/src/core/ui/Dropdown.stories.tsx :: Basic": ["color-contrast"], - "editor/src/core/ui/Dropdown.stories.tsx :: With Divider": ["color-contrast"], - "editor/src/core/ui/Dropdown.stories.tsx :: With Trailing Hints": [ - "color-contrast" - ], - "editor/src/core/ui/EmptyState.stories.tsx :: In Card": ["color-contrast"], - "editor/src/core/ui/EmptyState.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/EmptyState.stories.tsx :: With CT As": ["color-contrast"], - "editor/src/core/ui/FilePicker.stories.tsx :: Accept Pdf": ["color-contrast"], - "editor/src/core/ui/FilePicker.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/FilePicker.stories.tsx :: Multiple": ["color-contrast"], - "editor/src/core/ui/Forms.stories.tsx :: Checkbox Grid Of Categories": [ - "color-contrast" - ], - "editor/src/core/ui/Forms.stories.tsx :: Checkbox Single": ["color-contrast"], - "editor/src/core/ui/Forms.stories.tsx :: Full Form": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/Forms.stories.tsx :: Input Default": ["color-contrast"], - "editor/src/core/ui/Forms.stories.tsx :: Input Error": ["color-contrast"], - "editor/src/core/ui/Forms.stories.tsx :: Input With Icon": ["color-contrast"], - "editor/src/core/ui/Forms.stories.tsx :: Radio Group": ["color-contrast"], - "editor/src/core/ui/Forms.stories.tsx :: Radio Horizontal": [ - "color-contrast" - ], - "editor/src/core/ui/Forms.stories.tsx :: Slider Confidence": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/Forms.stories.tsx :: Slider Retention": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/Inline.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/Inline.stories.tsx :: Wrap": ["color-contrast"], - "editor/src/core/ui/ListRow.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/ListRow.stories.tsx :: In Card": ["color-contrast"], - "editor/src/core/ui/ListRow.stories.tsx :: Interactive": ["color-contrast"], - "editor/src/core/ui/MantineForms.stories.tsx :: Color Input Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Color Input Error": [ - "button-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Color Input Preselected": [ - "button-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Color Input Sm Size": [ - "button-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Multi Select Default": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Multi Select Error": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Multi Select Sm Size": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Multi Select With Values": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Number Input Decimal": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Number Input Default": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Number Input Error": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Number Input Sm Size": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Number Input With Unit": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Select Default": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Select Error": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Select Searchable": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Select Sm Size": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Slider Default": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Slider Disabled": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Slider No Label": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Slider With Marks": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Watermark Form": [ - "button-name", - "color-contrast" - ], - "editor/src/core/ui/MethodBadge.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/MethodBadge.stories.tsx :: In Row": ["color-contrast"], - "editor/src/core/ui/MethodBadge.stories.tsx :: Matrix": ["color-contrast"], - "editor/src/core/ui/MetricCard.stories.tsx :: Free Tier Strip": [ - "color-contrast" - ], - "editor/src/core/ui/MetricCard.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/MetricCard.stories.tsx :: Pro Tier Strip": [ - "color-contrast" - ], - "editor/src/core/ui/MetricStrip.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/NavItem.stories.tsx :: In Context Sidebar Group": [ - "color-contrast" - ], - "editor/src/core/ui/NavItem.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/NavItem.stories.tsx :: With Trailing Badge": [ - "color-contrast" - ], - "editor/src/core/ui/PanelHeader.stories.tsx :: With Actions": [ - "color-contrast" - ], - "editor/src/core/ui/ProgressBar.stories.tsx :: In Context Usage Meter": [ - "color-contrast" - ], - "editor/src/core/ui/ProgressBar.stories.tsx :: Playground": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/ProgressBar.stories.tsx :: Threshold Ladder": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/SectionDivider.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/ui/SectionHeader.stories.tsx :: Collapsible": [ - "color-contrast" - ], - "editor/src/core/ui/SectionHeader.stories.tsx :: Static": ["color-contrast"], - "editor/src/core/ui/SegmentedControl.stories.tsx :: Variants": [ - "color-contrast" - ], - "editor/src/core/ui/SegmentedControl.stories.tsx :: With Icons": [ - "color-contrast" - ], - "editor/src/core/ui/SettingsRow.stories.tsx :: List": ["label"], - "editor/src/core/ui/SettingsRow.stories.tsx :: Select Control": ["label"], - "editor/src/core/ui/SettingsRow.stories.tsx :: Toggle": ["label"], - "editor/src/core/ui/SettingsRow.stories.tsx :: With Description": [ - "color-contrast", - "label" - ], - "editor/src/core/ui/SettingsShell.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/Stack.stories.tsx :: Gap Sizes": ["color-contrast"], - "editor/src/core/ui/Stack.stories.tsx :: In Card": ["color-contrast"], - "editor/src/core/ui/StatTile.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/StatTile.stories.tsx :: Tone Row": ["color-contrast"], - "editor/src/core/ui/StatusBadge.stories.tsx :: All Tones": ["color-contrast"], - "editor/src/core/ui/StatusBadge.stories.tsx :: Sizes": ["color-contrast"], - "editor/src/core/ui/StepIndicator.stories.tsx :: Small": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/StepIndicator.stories.tsx :: Step 1": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/StepIndicator.stories.tsx :: Step 2": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/StepIndicator.stories.tsx :: Step 3": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/Table.stories.tsx :: Basic": ["color-contrast"], - "editor/src/core/ui/Table.stories.tsx :: Empty": ["color-contrast"], - "editor/src/core/ui/Table.stories.tsx :: Interactive": ["color-contrast"], - "editor/src/core/ui/Tabs.stories.tsx :: In Context Document Verticals": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/ui/Tabs.stories.tsx :: Playground": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/ui/Tabs.stories.tsx :: With Disabled Tab": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/ui/Toast.stories.tsx :: Triggers": ["color-contrast"], - "editor/src/core/ui/ToggleSwitch.stories.tsx :: In Context Settings Rows": [ - "color-contrast" - ], - "editor/src/core/ui/ToggleSwitch.stories.tsx :: With Description": [ - "color-contrast" - ], - "editor/src/portal/components/AppShell.stories.tsx :: Mobile": [ - "color-contrast" - ], - "editor/src/portal/components/AppShell.stories.tsx :: With Home View": [ - "color-contrast" - ], - "editor/src/portal/components/AssistantPanel.stories.tsx :: Reply Fails": [ - "aria-allowed-role" - ], - "editor/src/portal/components/AssistantPanel.stories.tsx :: Slow Reply": [ - "aria-allowed-role" - ], - "editor/src/portal/components/AssistantPanel.stories.tsx :: Suggestions Only": [ - "aria-allowed-role", - "color-contrast" - ], - "editor/src/portal/components/ChatFABWidget.stories.tsx :: Closed": [ - "aria-hidden-focus" - ], - "editor/src/portal/components/ChatFABWidget.stories.tsx :: Full Flow": [ - "aria-hidden-focus", - "color-contrast" - ], - "editor/src/portal/components/ChatFABWidget.stories.tsx :: Loading While Closed": [ - "aria-hidden-focus" - ], - "editor/src/portal/components/ChatFABWidget.stories.tsx :: Unread Result": [ - "aria-hidden-focus" - ], - "editor/src/portal/components/DownloadEditorModal.stories.tsx :: Open": [ - "color-contrast" - ], - "editor/src/portal/components/EditorStatusCard.stories.tsx :: Deployment Unavailable": [ - "color-contrast" - ], - "editor/src/portal/components/EditorStatusCard.stories.tsx :: With Setup Checklist": [ - "color-contrast" - ], - "editor/src/portal/components/ErrorBoundary.stories.tsx :: Caught Error": [ - "color-contrast" - ], - "editor/src/portal/components/HomeHero.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/HomeHero.stories.tsx :: Free Tier": [ - "color-contrast" - ], - "editor/src/portal/components/LinkAccountFooterItem.stories.tsx :: Unlinked": [ - "color-contrast" - ], - "editor/src/portal/components/PortalChrome.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/ProcessorFlow.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/ProcessorFlow.stories.tsx :: Idle Empty": [ - "color-contrast" - ], - "editor/src/portal/components/ProcessorFlow.stories.tsx :: Playground": [ - "color-contrast" - ], - "editor/src/portal/components/SearchModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/SearchModal.stories.tsx :: Empty Catalogue": [ - "color-contrast" - ], - "editor/src/portal/components/SetupChecklist.stories.tsx :: Almost Done": [ - "color-contrast" - ], - "editor/src/portal/components/SetupChecklist.stories.tsx :: In Progress": [ - "color-contrast" - ], - "editor/src/portal/components/SetupChecklist.stories.tsx :: Not Started": [ - "color-contrast" - ], - "editor/src/portal/components/Sidebar.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/Sidebar.stories.tsx :: Enterprise Tier": [ - "color-contrast" - ], - "editor/src/portal/components/Sidebar.stories.tsx :: Free Tier": [ - "color-contrast" - ], - "editor/src/portal/components/WelcomeBanner.stories.tsx :: With Setup Checklist": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/AccountLinkPanel.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/components/account-link/AccountLinkPanel.stories.tsx :: Load Forbidden": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/AccountLinkPanel.stories.tsx :: Not Linked": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountCard.stories.tsx :: Error": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountCard.stories.tsx :: Linked": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountCard.stories.tsx :: Linking": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountCard.stories.tsx :: Not Linked": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountCard.stories.tsx :: Unconfigured": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountModal.stories.tsx :: Reauth": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkedInstancesTable.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/components/account-link/LinkedInstancesTable.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/billing/ActivationChoiceModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/billing/BundleCheckoutModal.stories.tsx :: First Purchase": [ - "color-contrast" - ], - "editor/src/portal/components/billing/BundleCheckoutModal.stories.tsx :: Top Up": [ - "color-contrast" - ], - "editor/src/portal/components/billing/CardPlaceholder.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/billing/EnterpriseUpsell.stories.tsx :: Bare": [ - "color-contrast" - ], - "editor/src/portal/components/billing/EnterpriseUpsell.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/billing/FreePdfEditorsCard.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/billing/FreePlanView.stories.tsx :: Leader": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/FreePlanView.stories.tsx :: Member": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/InvoicesList.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/billing/LinkAccountPrompt.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/billing/PaymentMethodCard.stories.tsx :: Managed In Stripe": [ - "color-contrast" - ], - "editor/src/portal/components/billing/PaymentMethodCard.stories.tsx :: With Card": [ - "color-contrast" - ], - "editor/src/portal/components/billing/PdfsProcessedCard.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/billing/PdfsProcessedCard.stories.tsx :: Unsynced Only": [ - "color-contrast" - ], - "editor/src/portal/components/billing/PdfsProcessedCard.stories.tsx :: With Breakdown": [ - "color-contrast" - ], - "editor/src/portal/components/billing/PdfsProcessedCard.stories.tsx :: With Unsynced": [ - "color-contrast" - ], - "editor/src/portal/components/billing/PrepaidCapacityCard.stories.tsx :: Bundle Healthy": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/PrepaidCapacityCard.stories.tsx :: Bundle Low": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/PrepaidCapacityCard.stories.tsx :: Offer Nudge": [ - "color-contrast" - ], - "editor/src/portal/components/billing/PrepayModalHeader.stories.tsx :: Step Of Three": [ - "color-contrast" - ], - "editor/src/portal/components/billing/PrepayModalHeader.stories.tsx :: Step Of Two": [ - "color-contrast" - ], - "editor/src/portal/components/billing/SpendLimitCard.stories.tsx :: Approaching Cap": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/SpendLimitCard.stories.tsx :: Editing": [ - "color-contrast" - ], - "editor/src/portal/components/billing/SpendLimitCard.stories.tsx :: No Cap": [ - "color-contrast" - ], - "editor/src/portal/components/billing/SpendLimitCard.stories.tsx :: Within Cap": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/SpendThisMonthCard.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/billing/SpendThisMonthCard.stories.tsx :: With Free Remaining": [ - "color-contrast" - ], - "editor/src/portal/components/billing/StripeCheckoutModal.stories.tsx :: Set Cap": [ - "color-contrast" - ], - "editor/src/portal/components/billing/StripeCheckoutModal.stories.tsx :: Uncapped": [ - "color-contrast" - ], - "editor/src/portal/components/billing/SubscribedPlanView.stories.tsx :: Approaching Cap": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/SubscribedPlanView.stories.tsx :: Leader": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/SubscribedPlanView.stories.tsx :: With Prepaid": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/WalletMeter.stories.tsx :: Free Approaching Limit": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/WalletMeter.stories.tsx :: Free Limit Reached": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/WalletMeter.stories.tsx :: Free Plenty Left": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/docs/AuthenticationSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/ComponentsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/DocsNav.stories.tsx :: Badged Leaf Active": [ - "color-contrast" - ], - "editor/src/portal/components/docs/DocsNav.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/DocsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/EndpointReferenceSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/ErrorsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/GettingStartedSection.stories.tsx :: Default": [ - "color-contrast", - "heading-order" - ], - "editor/src/portal/components/docs/LangSnippet.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/LangSnippet.stories.tsx :: Single Language": [ - "color-contrast" - ], - "editor/src/portal/components/docs/PlaybooksSection.stories.tsx :: Default": [ - "color-contrast", - "heading-order" - ], - "editor/src/portal/components/docs/RateLimitsSection.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/docs/RateLimitsSection.stories.tsx :: Free": [ - "color-contrast" - ], - "editor/src/portal/components/docs/RateLimitsSection.stories.tsx :: Pro": [ - "color-contrast" - ], - "editor/src/portal/components/docs/SdksSection.stories.tsx :: Default": [ - "color-contrast", - "heading-order" - ], - "editor/src/portal/components/docs/SdksSection.stories.tsx :: Ga Only": [ - "color-contrast", - "heading-order" - ], - "editor/src/portal/components/docs/SkillsSection.stories.tsx :: Default": [ - "color-contrast", - "heading-order" - ], - "editor/src/portal/components/docs/WebhooksSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentAudit.stories.tsx :: Approved": [ - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentAudit.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentDrawer.stories.tsx :: Default": [ - "aria-allowed-role", - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentDrawer.stories.tsx :: Sensitive": [ - "aria-allowed-role", - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentExtractions.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentExtractions.stories.tsx :: Masked": [ - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentExtractions.stories.tsx :: Unlocked": [ - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentOverview.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ElevationBanner.stories.tsx :: Granted": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ElevationBanner.stories.tsx :: Granted Four Eyes": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ElevationBanner.stories.tsx :: Locked": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ElevationBanner.stories.tsx :: Locked Four Eyes": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ReviewQueue.stories.tsx :: Default": [ - "aria-prohibited-attr", - "color-contrast", - "empty-table-header", - "nested-interactive" - ], - "editor/src/portal/components/documents/ReviewQueue.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ReviewQueueTable.stories.tsx :: Default": [ - "aria-prohibited-attr", - "color-contrast", - "empty-table-header", - "nested-interactive" - ], - "editor/src/portal/components/documents/ReviewQueueTable.stories.tsx :: Empty": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/components/documents/ReviewQueueTable.stories.tsx :: Needs Review": [ - "color-contrast", - "empty-table-header", - "nested-interactive" - ], - "editor/src/portal/components/editor-admin/CredentialRotationCard.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/CredentialRotationCard.stories.tsx :: Recently Rotated": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/DeploymentSummaryStrip.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/DeploymentSummaryStrip.stories.tsx :: Pro": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/DeploymentTargets.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/DeploymentTargets.stories.tsx :: Free": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/DeploymentTargets.stories.tsx :: Pro": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/InstanceHealthTable.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/InstanceHealthTable.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/InstanceHealthTable.stories.tsx :: Pro": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/OfflineActivationCard.stories.tsx :: Available": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/OfflineActivationCard.stories.tsx :: Locked": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/PairingPanel.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/PairingPanel.stories.tsx :: Pro": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ApiKeyCard.stories.tsx :: Personal": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ApiKeyCard.stories.tsx :: Revoked": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ApiKeysTab.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ApiKeysTab.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ApiKeysTab.stories.tsx :: Loading": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditExportModal.stories.tsx :: Export Fails": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditExportModal.stories.tsx :: Open": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditTab.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditTab.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditTab.stories.tsx :: Loading": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditTab.stories.tsx :: Non Lead Forbidden": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditTab.stories.tsx :: Team Lead Scoped": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/CreateKeyModal.stories.tsx :: Form": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/DeploymentsTab.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/DeploymentsTab.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/DeploymentsTab.stories.tsx :: Loading": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ModelsTab.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ModelsTab.stories.tsx :: Free": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ModelsTab.stories.tsx :: Pro": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/SectionHeader.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/SectionHeader.stories.tsx :: Short Sub": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineDefinitionModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineInspector.stories.tsx :: Failed Step": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineInspector.stories.tsx :: Multiple Selected": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineInspector.stories.tsx :: Nothing Selected": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineInspector.stories.tsx :: Settings": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineStepSettings.stories.tsx :: No Settings": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineStepSettings.stories.tsx :: Unsupported": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelinesTable.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/components/pipelines/PipelinesTable.stories.tsx :: Empty": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/components/pipelines/ToolPicker.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/ToolPicker.stories.tsx :: Incompatible Preceding Output": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/ToolPicker.stories.tsx :: No Matches": [ - "color-contrast" - ], - "editor/src/portal/components/policies/CatalogueSummary.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/policies/CatalogueSummary.stories.tsx :: Loading": [ - "color-contrast" - ], - "editor/src/portal/components/policies/ClassificationLabelsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyCategoryCard.stories.tsx :: Coming Soon": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyCategoryCard.stories.tsx :: Configured": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyCategoryCard.stories.tsx :: Not Set Up": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyDetailPanel.stories.tsx :: Active": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyDetailPanel.stories.tsx :: Custom No Activity": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyDetailPanel.stories.tsx :: Paused": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyDetailPanel.stories.tsx :: With Flagged Items": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyExternalApiConfig.stories.tsx :: Custom Api Escape Hatch": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyExternalApiConfig.stories.tsx :: Notify Configured": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyFieldRow.stories.tsx :: Chips": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyFieldRow.stories.tsx :: Select": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyFieldRow.stories.tsx :: Text": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyPurviewConfig.stories.tsx :: Configured": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyPurviewConfig.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyPurviewReadConfig.stories.tsx :: Connection Selected": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyPurviewReadConfig.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicySetupWizard.stories.tsx :: Classification": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicySetupWizard.stories.tsx :: Create": [ - "color-contrast", - "label" - ], - "editor/src/portal/components/policies/PolicySetupWizard.stories.tsx :: Edit": [ - "color-contrast", - "label" - ], - "editor/src/portal/components/procurement/ActionModal.stories.tsx :: Pay": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ActionModal.stories.tsx :: Request Paid": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ActionModal.stories.tsx :: Sign": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ActionModal.stories.tsx :: Upload PO": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealJourney.stories.tsx :: At Trial": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealJourney.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealJourney.stories.tsx :: Live": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealStatusHero.stories.tsx :: Agreement": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealStatusHero.stories.tsx :: Live": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealStatusHero.stories.tsx :: Payment": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealStatusHero.stories.tsx :: Quote": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealStatusHero.stories.tsx :: Trial": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocRow.stories.tsx :: Complete": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocRow.stories.tsx :: Download": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocRow.stories.tsx :: Locked": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocRow.stories.tsx :: Paid Addon": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocRow.stories.tsx :: Sign Action": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocumentLedger.stories.tsx :: At Trial": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocumentLedger.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/LockedState.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementAgreement.stories.tsx :: Agreeing": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/portal/components/procurement/ProcurementAgreement.stories.tsx :: Default": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/portal/components/procurement/ProcurementAgreement.stories.tsx :: Downloading": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/portal/components/procurement/ProcurementBanner.stories.tsx :: Deal Underway": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementBanner.stories.tsx :: Upsell": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementExtras.stories.tsx :: License": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementExtras.stories.tsx :: License Trial": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementExtras.stories.tsx :: Schedule Call": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementExtras.stories.tsx :: Trial Manage": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementExtras.stories.tsx :: Trial Manage Maxed": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementExtras.stories.tsx :: Trial Setup": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementFlow.stories.tsx :: Default": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/portal/components/procurement/ProcurementFlow.stories.tsx :: Loading": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementFlow.stories.tsx :: Unlinked": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementHome.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementModal.stories.tsx :: Open": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementStages.stories.tsx :: License": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementStages.stories.tsx :: License Downloading": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementStages.stories.tsx :: License Online Only": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementStages.stories.tsx :: Live": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementStages.stories.tsx :: Payment": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementStages.stories.tsx :: Payment Pending": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/QuoteBuilder.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/StageStepper.stories.tsx :: At Agreement": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/StageStepper.stories.tsx :: At Trial": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/StageStepper.stories.tsx :: Locked": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionForm.stories.tsx :: Conditional Fields Revealed": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionForm.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionForm.stories.tsx :: Filled": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionModal.stories.tsx :: Edit": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionModal.stories.tsx :: Fixed Type": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionPicker.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionPicker.stories.tsx :: Delegated Create": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionPicker.stories.tsx :: Load Error": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionPicker.stories.tsx :: Preset Scoped": [ - "color-contrast" - ], - "editor/src/portal/components/sources/KpiStrip.stories.tsx :: Loading": [ - "color-contrast" - ], - "editor/src/portal/components/sources/KpiStrip.stories.tsx :: Ready": [ - "color-contrast" - ], - "editor/src/portal/components/sources/S3ConnectionPicker.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/sources/S3ConnectionPicker.stories.tsx :: Selected": [ - "color-contrast" - ], - "editor/src/portal/components/sources/SourceModal.stories.tsx :: Choose Type": [ - "color-contrast" - ], - "editor/src/portal/components/sources/SourceModal.stories.tsx :: Edit Folder": [ - "color-contrast" - ], - "editor/src/portal/components/sources/SourceModal.stories.tsx :: Edit Webhook": [ - "color-contrast" - ], - "editor/src/portal/components/sources/SourcesTable.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/components/users/ConfirmModal.stories.tsx :: Danger": [ - "color-contrast" - ], - "editor/src/portal/components/users/ConfirmModal.stories.tsx :: Neutral": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: Create Account Form": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: No Admin Role": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: Open": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: Scoped To Team": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: Self Hosted Direct Create": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: Self Hosted No Mail": [ - "color-contrast" - ], - "editor/src/portal/components/users/MoveToTeamModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/users/NewTeamModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/users/PendingInvitations.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/users/PendingInvitations.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/users/PendingInvitations.stories.tsx :: Expires Today": [ - "color-contrast" - ], - "editor/src/portal/components/users/RenameTeamModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/users/ResetPasswordModal.stories.tsx :: Default": [ - "color-contrast", - "label" - ], - "editor/src/portal/components/users/ResetPasswordModal.stories.tsx :: With Email": [ - "color-contrast", - "label" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Large Team": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Member States": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Org Only": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Saas Team Leader": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Single Team": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Team Wide Processor": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: With Guests": [ - "color-contrast" - ], - "editor/src/portal/data/Endpoints.stories.tsx :: By Vertical": [ - "color-contrast" - ], - "editor/src/portal/data/Ops.stories.tsx :: Agents": ["color-contrast"], - "editor/src/portal/data/Ops.stories.tsx :: Library By Category": [ - "color-contrast" - ], - "editor/src/portal/data/Ops.stories.tsx :: Pipeline Ops": ["color-contrast"], - "editor/src/portal/data/Ops.stories.tsx :: Sources And Destinations": [ - "color-contrast" - ], - "editor/src/portal/theme/MantineIntegration.stories.tsx :: Side By Side": [ - "color-contrast" - ], - "editor/src/portal/views/DeveloperDocs.stories.tsx :: Default": [ - "color-contrast", - "landmark-unique" - ], - "editor/src/portal/views/Documents.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/views/Documents.stories.tsx :: Empty": ["color-contrast"], - "editor/src/portal/views/Home.stories.tsx :: Enterprise Tier": [ - "color-contrast", - "landmark-no-duplicate-banner", - "landmark-unique" - ], - "editor/src/portal/views/Home.stories.tsx :: Free Tier": ["color-contrast"], - "editor/src/portal/views/Home.stories.tsx :: Pro Tier": [ - "color-contrast", - "landmark-no-duplicate-banner", - "landmark-unique" - ], - "editor/src/portal/views/Home.stories.tsx :: Subscribed In Procurement": [ - "color-contrast", - "landmark-no-duplicate-banner", - "landmark-unique" - ], - "editor/src/portal/views/Integrations.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/views/Integrations.stories.tsx :: No Connections": [ - "color-contrast" - ], - "editor/src/portal/views/PipelineBuilder.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/views/Pipelines.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/views/Pipelines.stories.tsx :: Empty": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/views/Policies.stories.tsx :: Default": ["color-contrast"], - "editor/src/portal/views/Policies.stories.tsx :: Empty": ["color-contrast"], - "editor/src/portal/views/Sources.stories.tsx :: Default": ["color-contrast"], - "editor/src/portal/views/Sources.stories.tsx :: Empty": ["color-contrast"], - "editor/src/proprietary/auth/ui/AuthScreens.stories.tsx :: First Time Setup": [ - "color-contrast" - ], - "editor/src/proprietary/auth/ui/AuthScreens.stories.tsx :: Signup": [ - "aria-hidden-focus" - ], - "editor/src/proprietary/components/policies/ClassificationCategoryManager.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/policies/PolicyPiiField.stories.tsx :: With Selection": [ - "color-contrast" - ], - "editor/src/proprietary/components/policies/PolicyRedactConfig.stories.tsx :: With Selection": [ - "color-contrast" - ], - "editor/src/proprietary/components/policies/PolicyWatermarkConfig.stories.tsx :: Default": [ - "button-name", - "label" - ], - "editor/src/proprietary/components/policies/PolicyWatermarkConfig.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/proprietary/components/shared/ChangeUserPasswordModal.stories.tsx :: Default": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/ChangeUserPasswordModal.stories.tsx :: Mail Disabled": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/ChangeUserPasswordModal.stories.tsx :: Non Email Username": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/DividerWithText.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/DividerWithText.stories.tsx :: Subcategory": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/ManageBillingButton.stories.tsx :: Custom Return Url": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/ManageBillingButton.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/UpdateSeatsModal.stories.tsx :: At Minimum": [ - "button-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/UpdateSeatsModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/GeneralWithLoginLanding.stories.tsx :: Admin Banner": [ - "color-contrast", - "label" - ], - "editor/src/proprietary/components/shared/config/GeneralWithLoginLanding.stories.tsx :: Default": [ - "color-contrast", - "label" - ], - "editor/src/proprietary/components/shared/config/GeneralWithLoginLanding.stories.tsx :: With Backend Version": [ - "color-contrast", - "label" - ], - "editor/src/proprietary/components/shared/config/OverviewHeader.stories.tsx :: Signed In": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AccountSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AccountSection.stories.tsx :: Mfa Enabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAiGeneralSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAuditSection.stories.tsx :: Audit Logging Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAuditSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAuditSection.stories.tsx :: Enabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAuditSection.stories.tsx :: Login Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/TeamDetailsSection.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/proprietary/components/shared/config/configSections/TeamDetailsSection.stories.tsx :: Empty": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/proprietary/components/shared/config/configSections/TeamsSection.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/proprietary/components/shared/config/configSections/TeamsSection.stories.tsx :: Empty": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/proprietary/components/shared/config/configSections/TeamsSection.stories.tsx :: Login Disabled": [ - "empty-table-header" - ], - "editor/src/proprietary/components/shared/config/configSections/apiKeys/RefreshModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditClearDataSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditClearDataSection.stories.tsx :: Login Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditExportSection.stories.tsx :: All Fields Enabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditExportSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditFiltersForm.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditFiltersForm.stories.tsx :: Interactive": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditFiltersForm.stories.tsx :: With Filters Applied": [ - "button-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditStatsCards.stories.tsx :: Day": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditStatsCards.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditStatsCards.stories.tsx :: Month": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditSystemStatus.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditSystemStatus.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/plan/AvailablePlansSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/plan/AvailablePlansSection.stories.tsx :: Login Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/plan/AvailablePlansSection.stories.tsx :: With Currency Selector": [ - "color-contrast", - "label" - ], - "editor/src/proprietary/components/shared/config/configSections/plan/PlanCard.stories.tsx :: Current Tier": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/StripeCheckout.stories.tsx :: Default": [ - "button-name" - ], - "editor/src/proprietary/components/shared/stripeCheckout/StripeCheckout.stories.tsx :: Hosted Checkout Success": [ - "button-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/components/PricingBadge.stories.tsx :: Savings": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/EmailStage.stories.tsx :: Filled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/EmailStage.stories.tsx :: With Error": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/ErrorStage.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/ErrorStage.stories.tsx :: Network Error": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/PlanSelectionStage.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/PlanSelectionStage.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/PlanSelectionStage.stories.tsx :: With Savings": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/SuccessStage.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/SuccessStage.stories.tsx :: Polling": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/SuccessStage.stories.tsx :: Timeout": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/SuccessStage.stories.tsx :: Upgrade Complete": [ - "color-contrast" - ], - "editor/src/proprietary/components/workflow/ParticipantView.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/routes/login/OAuthButtons.stories.tsx :: Vertical": [ - "image-redundant-alt" - ] -} +{} diff --git a/frontend/.storybook/a11y-baseline.json b/frontend/.storybook/a11y-baseline.json index 0245e3101a..0967ef424b 100644 --- a/frontend/.storybook/a11y-baseline.json +++ b/frontend/.storybook/a11y-baseline.json @@ -1,2640 +1 @@ -{ - "editor/src/core/assets/Brand.stories.tsx :: Logos": [ - "scrollable-region-focusable" - ], - "editor/src/core/components/StorageStatsCard.stories.tsx :: Default": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/core/components/StorageStatsCard.stories.tsx :: Nearing Quota": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/core/components/StorageStatsCard.stories.tsx :: No Quota": [ - "color-contrast" - ], - "editor/src/core/components/annotation/shared/ColorPicker.stories.tsx :: Default": [ - "aria-input-field-name", - "button-name", - "color-contrast" - ], - "editor/src/core/components/annotation/shared/ColorPicker.stories.tsx :: With Opacity": [ - "aria-input-field-name", - "button-name", - "color-contrast" - ], - "editor/src/core/components/annotation/shared/DrawingCanvas.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/annotation/shared/DrawingCanvas.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/annotation/shared/DrawingControls.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/annotation/shared/ImageUploader.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/annotation/shared/ImageUploader.stories.tsx :: With Background Removal": [ - "color-contrast" - ], - "editor/src/core/components/annotation/shared/ImageUploader.stories.tsx :: With Label And Hint": [ - "color-contrast" - ], - "editor/src/core/components/annotation/tools/DrawingTool.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/annotation/tools/DrawingTool.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/annotation/tools/ImageTool.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/annotation/tools/ImageTool.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/fileManager/CompactFileDetails.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/fileManager/CompactFileDetails.stories.tsx :: Multiple Files": [ - "color-contrast" - ], - "editor/src/core/components/fileManager/FileDetails.stories.tsx :: Compact": [ - "color-contrast" - ], - "editor/src/core/components/fileManager/FileDetails.stories.tsx :: Default": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/components/fileManager/FileDetails.stories.tsx :: Empty": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/components/filesPage/DeleteFilesDialog.stories.tsx :: Cloud Only": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/DeleteFilesDialog.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/DeleteFilesDialog.stories.tsx :: Local And Cloud Choice": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/DeleteFolderDialog.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/DeleteFolderDialog.stories.tsx :: With Files": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/FileDetailsPanel.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FileDetailsPanel.stories.tsx :: In Folder": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FileDetailsPanel.stories.tsx :: Local Only With Save To Server": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FileDetailsPanel.stories.tsx :: Multi Select": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FileGrid.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FileGrid.stories.tsx :: List Mode": [ - "aria-required-children" - ], - "editor/src/core/components/filesPage/FileOriginBadge.stories.tsx :: Cloud": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FileOriginBadge.stories.tsx :: Shared With Me": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/FolderNameDialog.stories.tsx :: Default": [ - "button-name" - ], - "editor/src/core/components/filesPage/FolderNameDialog.stories.tsx :: Rename": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/FolderThumbnail.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/MoveToFolderDialog.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/MoveToFolderDialog.stories.tsx :: Empty": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/MoveToFolderDialog.stories.tsx :: With Create Folder": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/MoveToFolderDialog.stories.tsx :: With Disabled Descendant": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/VersionHistoryModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/VersionHistoryModal.stories.tsx :: No File Selected": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/filesPage/VersionTimeline.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/VersionTimeline.stories.tsx :: Long Chain Collapsed": [ - "color-contrast" - ], - "editor/src/core/components/filesPage/VersionTimeline.stories.tsx :: No Header": [ - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Admin Overview Login Disabled": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Admin Overview Login Enabled": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Analytics Choice": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Analytics Choice Error": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Desktop Install": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: First Login": [ - "aria-dialog-name" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: First Login Default Credentials": [ - "aria-dialog-name" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Mfa Setup": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Security Check": [ - "aria-dialog-name" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Server License": [ - "aria-dialog-name" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Server License Over Limit": [ - "aria-dialog-name" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Stepped Flow Example": [ - "aria-dialog-name", - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Tour Overview": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx :: Welcome": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingSlideShell.stories.tsx :: Default": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/OnboardingSlideShell.stories.tsx :: Not Dismissible": [ - "aria-dialog-name", - "aria-progressbar-name" - ], - "editor/src/core/components/onboarding/OnboardingSlideShell.stories.tsx :: Stepped With Back": [ - "aria-dialog-name", - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/core/components/onboarding/slides/WelcomeSlide.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/pageEditor/bulkSelectionPanel/SelectedPagesDisplay.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/BulkShareModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/BulkShareModal.stories.tsx :: Links Enabled": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/BulkUploadToServerModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/BulkUploadToServerModal.stories.tsx :: Single File": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/ButtonToggle.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/ButtonToggle.stories.tsx :: Small": [ - "color-contrast" - ], - "editor/src/core/components/shared/DropdownListWithFooter.stories.tsx :: Default": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/DropdownListWithFooter.stories.tsx :: Empty": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/DropdownListWithFooter.stories.tsx :: Multi Select With Footer": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/EditableSecretField.stories.tsx :: Masked": [ - "label" - ], - "editor/src/core/components/shared/EditableSecretField.stories.tsx :: Masked Disabled": [ - "label" - ], - "editor/src/core/components/shared/EditableSecretField.stories.tsx :: With Error": [ - "color-contrast", - "label-title-only" - ], - "editor/src/core/components/shared/EncryptedPdfUnlockModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/EncryptedPdfUnlockModal.stories.tsx :: Incorrect Password": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/EncryptedPdfUnlockModal.stories.tsx :: Multiple Files Remaining": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/EncryptedPdfUnlockModal.stories.tsx :: Processing": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/ErrorBoundary.stories.tsx :: Caught Error": [ - "color-contrast" - ], - "editor/src/core/components/shared/ErrorBoundary.stories.tsx :: Custom Fallback": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileCard.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileCard.stories.tsx :: Selected": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileCard.stories.tsx :: Unsupported": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileDropdownMenu.stories.tsx :: Default": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/FileDropdownMenu.stories.tsx :: No Remove": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/FileDropdownMenu.stories.tsx :: Switching": [ - "aria-allowed-attr" - ], - "editor/src/core/components/shared/FileGrid.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileGrid.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileGrid.stories.tsx :: Search And Sort": [ - "color-contrast", - "label" - ], - "editor/src/core/components/shared/FilePickerModal.stories.tsx :: Default": [ - "button-name", - "color-contrast", - "label" - ], - "editor/src/core/components/shared/FilePickerModal.stories.tsx :: Empty": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/FileSelectorPicker.stories.tsx :: Custom Placeholder": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileSelectorPicker.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/FileSelectorPicker.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/shared/Footer.stories.tsx :: All Links And Cookie Banner": [ - "color-contrast" - ], - "editor/src/core/components/shared/Footer.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/InfoBanner.stories.tsx :: Warning": [ - "color-contrast" - ], - "editor/src/core/components/shared/MobileUploadModal.stories.tsx :: Default": [ - "button-name", - "color-contrast", - "svg-img-alt" - ], - "editor/src/core/components/shared/MultiSelectControls.stories.tsx :: All Actions": [ - "color-contrast" - ], - "editor/src/core/components/shared/NavigationWarningModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/NavigationWarningModal.stories.tsx :: With Apply And Continue": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/NavigationWarningModal.stories.tsx :: With Export And Continue": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/ShareFileModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/ShareFileModal.stories.tsx :: Links Enabled": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/ShareManagementModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/ShareManagementModal.stories.tsx :: Links Enabled": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/UpdateModal.stories.tsx :: Default": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/shared/UpdateModal.stories.tsx :: Desktop Install Blocked": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/shared/UpdateModal.stories.tsx :: Desktop Install Ready To Restart": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/core/components/shared/UploadToServerModal.stories.tsx :: Already Uploaded": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/UploadToServerModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/UserSelector.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/ZipWarningModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/ZipWarningModal.stories.tsx :: Single File": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/config/LoginRequiredBanner.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/OverviewHeader.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/PendingBadge.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/PendingBadge.stories.tsx :: Large Size": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/RestartConfirmationModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/shared/config/SettingsStickyFooter.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/SettingsStickyFooter.stories.tsx :: Saving": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/GeneralSection.stories.tsx :: Admin Banner": [ - "label" - ], - "editor/src/core/components/shared/config/configSections/GeneralSection.stories.tsx :: Default": [ - "label" - ], - "editor/src/core/components/shared/config/configSections/GeneralSection.stories.tsx :: With Backend Version": [ - "label" - ], - "editor/src/core/components/shared/config/configSections/HelpSection.stories.tsx :: Admin": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/HelpSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/HotkeysSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/LegalSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/LegalSection.stories.tsx :: Minimal Links": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/LegalSection.stories.tsx :: With Analytics Enabled": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/Overview.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/Overview.stories.tsx :: Loaded": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/Overview.stories.tsx :: With Warning": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/ProviderCard.stories.tsx :: Configured": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/ProviderCard.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/ProviderCard.stories.tsx :: Read Only": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/ThirdPartyLicensesSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/config/configSections/ThirdPartyLicensesSection.stories.tsx :: Frontend": [ - "color-contrast" - ], - "editor/src/core/components/shared/filePreview/DocumentThumbnail.stories.tsx :: Encrypted": [ - "color-contrast" - ], - "editor/src/core/components/shared/filePreview/DocumentThumbnail.stories.tsx :: Loading": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/CreateSessionFlow.stories.tsx :: Creating": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/CreateSessionFlow.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/CreateSessionFlow.stories.tsx :: No File Selected": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/SharedSigningLauncher.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/SharedSigningLauncher.stories.tsx :: Pending Requests": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ConfigureSignatureDefaultsStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ConfigureSignatureDefaultsStep.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ConfigureSignatureDefaultsStep.stories.tsx :: Invisible Signature": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ReviewSessionStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ReviewSessionStep.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/ReviewSessionStep.stories.tsx :: Invisible Signature": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/SelectDocumentStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/SelectDocumentStep.stories.tsx :: Multiple Files Selected": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/SelectDocumentStep.stories.tsx :: No File Selected": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/SelectParticipantsStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/SelectParticipantsStep.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/shared/signing/steps/SelectParticipantsStep.stories.tsx :: With Selection": [ - "color-contrast" - ], - "editor/src/core/components/shared/sliderWithInput/SliderWithInput.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/shared/sliderWithInput/SliderWithInput.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/shared/wetSignature/DrawSignatureCanvas.stories.tsx :: Default": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/shared/wetSignature/DrawSignatureCanvas.stories.tsx :: Disabled": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/shared/wetSignature/TypeSignatureText.stories.tsx :: Default": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/shared/wetSignature/TypeSignatureText.stories.tsx :: Disabled": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/shared/wetSignature/TypeSignatureText.stories.tsx :: Empty": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/shared/wetSignature/UploadSignatureImage.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/shared/wetSignature/UploadSignatureImage.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/shared/wetSignature/UploadSignatureImage.stories.tsx :: With Signature": [ - "color-contrast" - ], - "editor/src/core/components/tools/ToolLoadingFallback.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/ToolLoadingFallback.stories.tsx :: With Tool Name": [ - "color-contrast" - ], - "editor/src/core/components/tools/ToolPanelModePrompt.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/ToolRenderer.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/addPageNumbers/PageNumberPreview.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/addPageNumbers/PageNumberPreview.stories.tsx :: With Quick Grid": [ - "color-contrast" - ], - "editor/src/core/components/tools/addStamp/StampPreview.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/addStamp/StampPreview.stories.tsx :: With Quick Grid": [ - "color-contrast" - ], - "editor/src/core/components/tools/addStamp/StampPreview.stories.tsx :: With Text": [ - "color-contrast" - ], - "editor/src/core/components/tools/addStamp/StampSetupSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/addStamp/StampSetupSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/addStamp/StampSetupSettings.stories.tsx :: Image Stamp": [ - "color-contrast" - ], - "editor/src/core/components/tools/addStamp/StampSetupSettings.stories.tsx :: Text Stamp With Preview": [ - "color-contrast" - ], - "editor/src/core/components/tools/addWatermark/AddWatermarkSingleStepSettings.stories.tsx :: Disabled": [ - "color-contrast", - "label" - ], - "editor/src/core/components/tools/addWatermark/AddWatermarkSingleStepSettings.stories.tsx :: Text Only": [ - "button-name", - "color-contrast", - "label" - ], - "editor/src/core/components/tools/addWatermark/AddWatermarkSingleStepSettings.stories.tsx :: Text Watermark": [ - "button-name", - "color-contrast", - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkFormatting.stories.tsx :: Default": [ - "color-contrast", - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkFormatting.stories.tsx :: Disabled": [ - "color-contrast", - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkFormatting.stories.tsx :: Without Flatten Option": [ - "color-contrast", - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkStyleSettings.stories.tsx :: Default": [ - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkStyleSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkTextStyle.stories.tsx :: Default": [ - "button-name", - "label" - ], - "editor/src/core/components/tools/addWatermark/WatermarkTextStyle.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastBasicSettings.stories.tsx :: Adjusted": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastBasicSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastBasicSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastColorSettings.stories.tsx :: Adjusted": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastColorSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastColorSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastSingleStepSettings.stories.tsx :: Adjusted": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastSingleStepSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/adjustContrast/AdjustContrastSingleStepSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/automate/AutomationCreation.stories.tsx :: Edit Existing": [ - "color-contrast" - ], - "editor/src/core/components/tools/automate/AutomationImportModal.stories.tsx :: Default": [ - "button-name", - "color-contrast", - "label" - ], - "editor/src/core/components/tools/automate/ToolConfigurationModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/automate/ToolConfigurationModal.stories.tsx :: With Settings": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/bookletImposition/BookletImpositionSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/bookletImposition/BookletImpositionSettings.stories.tsx :: Manual Duplex": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertSignAutomationSettings.stories.tsx :: Auto Sign Mode": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertSignAutomationSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateFilesSettings.stories.tsx :: Auto Sign Mode": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateFormatSettings.stories.tsx :: Selected": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateSelector.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateSelector.stories.tsx :: Pem Format": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateTypeSettings.stories.tsx :: All Sources Available": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/CertificateTypeSettings.stories.tsx :: Server Selected": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/HardwareCertificateSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureAppearanceSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureAppearanceSettings.stories.tsx :: Visible Signature": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureSettingsDisplay.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureSettingsDisplay.stories.tsx :: Invisible": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureSettingsDisplay.stories.tsx :: Minimal Details": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureSettingsInput.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureSettingsInput.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/SignatureSettingsInput.stories.tsx :: Visible Signature": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/WetSignatureInput.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/WetSignatureInput.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/WetSignatureInput.stories.tsx :: Upload Certificate": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/modals/AddParticipantsFlow.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/modals/CertificateConfigModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/modals/CertificateConfigModal.stories.tsx :: Disabled": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/modals/CertificateConfigModal.stories.tsx :: Multiple Signatures": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/modals/SelectSignatureModal.stories.tsx :: Default": [ - "button-name" - ], - "editor/src/core/components/tools/certSign/panels/ParticipantListPanel.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/ParticipantListPanel.stories.tsx :: Finalized": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SessionActionsPanel.stories.tsx :: All Signed": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SessionActionsPanel.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SessionActionsPanel.stories.tsx :: Finalized": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SessionDetailPanel.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SessionDetailPanel.stories.tsx :: Finalized": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SignControlsPanel.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/panels/SignControlsPanel.stories.tsx :: No Signature Chosen": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/AddSignaturesStep.stories.tsx :: Default": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/AddSignaturesStep.stories.tsx :: Disabled": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/AddSignaturesStep.stories.tsx :: Placement Mode": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/CertificateSelectionStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/CertificateSelectionStep.stories.tsx :: Upload Ready": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/CertificateSelectionStep.stories.tsx :: User Certificate": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/ReviewSignatureStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/ReviewSignatureStep.stories.tsx :: Multiple Signatures": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/ReviewSignatureStep.stories.tsx :: Uploaded Certificate Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignatureCreationStep.stories.tsx :: Default": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignatureCreationStep.stories.tsx :: Disabled": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignatureCreationStep.stories.tsx :: Type Mode": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignatureCreationStep.stories.tsx :: With Signature": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignaturePlacementStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignaturePlacementStep.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/certSign/steps/SignaturePlacementStep.stories.tsx :: Placed": [ - "color-contrast" - ], - "editor/src/core/components/tools/changeMetadata/steps/AdvancedOptionsStep.stories.tsx :: With Custom Metadata": [ - "color-contrast" - ], - "editor/src/core/components/tools/changeMetadata/steps/CustomMetadataStep.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/changeMetadata/steps/CustomMetadataStep.stories.tsx :: With Entries": [ - "color-contrast" - ], - "editor/src/core/components/tools/changeMetadata/steps/DocumentDatesStep.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/changeMetadata/steps/DocumentDatesStep.stories.tsx :: Filled": [ - "button-name" - ], - "editor/src/core/components/tools/compare/ComparePixelWorkbenchView.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/compare/ComparePixelWorkbenchView.stories.tsx :: No Differences": [ - "color-contrast" - ], - "editor/src/core/components/tools/compare/ComparePixelWorkbenchView.stories.tsx :: With Warnings": [ - "color-contrast" - ], - "editor/src/core/components/tools/compress/CompressSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "color-contrast", - "label" - ], - "editor/src/core/components/tools/compress/CompressSettings.stories.tsx :: Disabled": [ - "color-contrast", - "label" - ], - "editor/src/core/components/tools/compress/CompressSettings.stories.tsx :: File Size Method": [ - "color-contrast", - "label" - ], - "editor/src/core/components/tools/compress/CompressSettings.stories.tsx :: Line Art Enabled": [ - "aria-input-field-name", - "color-contrast", - "label" - ], - "editor/src/core/components/tools/convert/ConvertFromEbookSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/convert/ConvertFromEbookSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/convert/ConvertFromEmailSettings.stories.tsx :: Default": [ - "label" - ], - "editor/src/core/components/tools/convert/ConvertFromEmailSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/convert/ConvertFromImageSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/convert/ConvertFromSvgSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/convert/ConvertFromSvgSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/convert/ConvertFromWebSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/convert/ConvertFromWebSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/convert/ConvertToEpubSettings.stories.tsx :: Azw 3 Output": [ - "color-contrast" - ], - "editor/src/core/components/tools/convert/ConvertToEpubSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/convert/ConvertToEpubSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/convert/ConvertToPdfaSettings.stories.tsx :: Default": [ - "color-contrast", - "label" - ], - "editor/src/core/components/tools/convert/ConvertToPdfaSettings.stories.tsx :: Disabled": [ - "color-contrast", - "label" - ], - "editor/src/core/components/tools/convert/ConvertToPdfaSettings.stories.tsx :: Strict Mode": [ - "color-contrast", - "label" - ], - "editor/src/core/components/tools/convert/GroupedFormatDropdown.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/crop/CropAutomationSettings.stories.tsx :: Custom Area": [ - "color-contrast" - ], - "editor/src/core/components/tools/crop/CropAutomationSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/crop/CropAutomationSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/crop/CropCoordinateInputs.stories.tsx :: Automation Info": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/BookmarkEditor.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/BookmarkEditor.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/BookmarkEditor.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsSettings.stories.tsx :: Loading With Error": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsSettings.stories.tsx :: No File Selected": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsWorkbenchView.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsWorkbenchView.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsWorkbenchView.stories.tsx :: With Error": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/editTableOfContents/EditTableOfContentsWorkbenchView.stories.tsx :: With Results": [ - "color-contrast" - ], - "editor/src/core/components/tools/flatten/FlattenSettings.stories.tsx :: Custom Render Dpi": [ - "color-contrast" - ], - "editor/src/core/components/tools/flatten/FlattenSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/flatten/FlattenSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/flatten/FlattenSettings.stories.tsx :: Flatten Only Forms": [ - "color-contrast" - ], - "editor/src/core/components/tools/fullscreen/DetailedToolItem.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/fullscreen/DetailedToolItem.stories.tsx :: Selected": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/GetPdfInfoReportView.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/GetPdfInfoReportView.stories.tsx :: No Data": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/GetPdfInfoResults.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/GetPdfInfoResults.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/GetPdfInfoResults.stories.tsx :: Partial Error": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/ComplianceSection.stories.tsx :: All Passed": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/ComplianceSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/ComplianceSection.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/KeyValueSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/KeyValueSection.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/OtherSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/OtherSection.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/PerPageSection.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/SummarySection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/SummarySection.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/SummarySection.stories.tsx :: Hidden Title": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/TableOfContentsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/sections/TableOfContentsSection.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/shared/KeyValueList.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/shared/KeyValueList.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/shared/ScrollableCodeBlock.stories.tsx :: Custom Empty Message": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/shared/ScrollableCodeBlock.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/getPdfInfo/shared/SectionBlock.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/ocr/LanguagePicker.stories.tsx :: Default": [ - "aria-allowed-attr" - ], - "editor/src/core/components/tools/ocr/OCRSettings.stories.tsx :: Default": [ - "aria-allowed-attr" - ], - "editor/src/core/components/tools/redact/RedactAdvancedSettings.stories.tsx :: Default": [ - "button-name" - ], - "editor/src/core/components/tools/redact/RedactSingleStepSettings.stories.tsx :: Automatic With Words": [ - "button-name" - ], - "editor/src/core/components/tools/redact/RedactSingleStepSettings.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/redact/WordsToRedactInput.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/removeBlanks/RemoveBlanksSettings.stories.tsx :: Default": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/removeBlanks/RemoveBlanksSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/removeBlanks/RemoveBlanksSettings.stories.tsx :: Include Blank Pages": [ - "aria-input-field-name", - "label" - ], - "editor/src/core/components/tools/removePages/RemovePagesSettings.stories.tsx :: Invalid Input": [ - "color-contrast" - ], - "editor/src/core/components/tools/replaceColor/ReplaceColorSettings.stories.tsx :: Custom Color": [ - "button-name", - "label" - ], - "editor/src/core/components/tools/replaceColor/ReplaceColorSettings.stories.tsx :: Default": [ - "label" - ], - "editor/src/core/components/tools/replaceColor/ReplaceColorSettings.stories.tsx :: Disabled": [ - "label" - ], - "editor/src/core/components/tools/sanitize/SanitizeSettings.stories.tsx :: All Selected": [ - "color-contrast" - ], - "editor/src/core/components/tools/sanitize/SanitizeSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/sanitize/SanitizeSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/scannerImageSplit/ScannerImageSplitSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/scannerImageSplit/ScannerImageSplitSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/ErrorNotification.stories.tsx :: Custom Title": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/shared/ErrorNotification.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/components/tools/shared/FileMetadata.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/FileMetadata.stories.tsx :: Unknown Type": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/NavigationControls.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/NavigationControls.stories.tsx :: Last File": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/NoToolsFound.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/NumberInputWithUnit.stories.tsx :: Default": [ - "color-contrast", - "label" - ], - "editor/src/core/components/tools/shared/NumberInputWithUnit.stories.tsx :: Disabled": [ - "color-contrast", - "label" - ], - "editor/src/core/components/tools/shared/NumberInputWithUnit.stories.tsx :: With Min Max": [ - "label" - ], - "editor/src/core/components/tools/shared/ResultsPreview.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/ResultsPreview.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/ResultsPreview.stories.tsx :: Loading": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/ResultsPreview.stories.tsx :: Single File": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/ToolStep.stories.tsx :: Collapsed": [ - "color-contrast" - ], - "editor/src/core/components/tools/shared/ToolStep.stories.tsx :: With Help Text And Number": [ - "color-contrast" - ], - "editor/src/core/components/tools/showJS/ShowJSView.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/showJS/ShowJSView.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/showJS/ShowJSView.stories.tsx :: With Download": [ - "color-contrast" - ], - "editor/src/core/components/tools/sign/SavedSignaturesSection.stories.tsx :: Admin With Shared Delete": [ - "color-contrast" - ], - "editor/src/core/components/tools/sign/SavedSignaturesSection.stories.tsx :: At Capacity": [ - "color-contrast" - ], - "editor/src/core/components/tools/sign/SavedSignaturesSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/sign/SavedSignaturesSection.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/tools/split/SplitSettings.stories.tsx :: By Poster": [ - "color-contrast" - ], - "editor/src/core/components/tools/split/SplitSettings.stories.tsx :: By Sections": [ - "color-contrast" - ], - "editor/src/core/components/tools/split/SplitSettings.stories.tsx :: No Method Selected": [ - "color-contrast" - ], - "editor/src/core/components/tools/timestampPdf/TimestampPdfSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/timestampPdf/TimestampPdfSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/toolPicker/FavoriteStar.stories.tsx :: Default": [ - "aria-prohibited-attr" - ], - "editor/src/core/components/tools/toolPicker/FavoriteStar.stories.tsx :: Favorited": [ - "aria-prohibited-attr" - ], - "editor/src/core/components/tools/toolPicker/FavoriteStar.stories.tsx :: Sizes": [ - "aria-prohibited-attr" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureReportView.stories.tsx :: Default": [ - "aria-allowed-attr", - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureReportView.stories.tsx :: Error": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureReportView.stories.tsx :: Multiple Signatures": [ - "aria-allowed-attr", - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureReportView.stories.tsx :: No Signatures": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureSettings.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureSettings.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/ValidateSignatureSettings.stories.tsx :: With Cert File": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/reportView/FieldBlock.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/reportView/FieldBlock.stories.tsx :: Empty Value": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/reportView/FileSummaryHeader.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/reportView/FileSummaryHeader.stories.tsx :: Missing Metadata": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/reportView/FileSummaryHeader.stories.tsx :: No Signatures": [ - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureSection.stories.tsx :: Default": [ - "aria-allowed-attr", - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureSection.stories.tsx :: Invalid With Error": [ - "aria-allowed-attr", - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureSection.stories.tsx :: Self Signed Minimal Data": [ - "aria-allowed-attr", - "color-contrast" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureStatusBadge.stories.tsx :: Default": [ - "aria-allowed-attr" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureStatusBadge.stories.tsx :: Invalid": [ - "aria-allowed-attr" - ], - "editor/src/core/components/tools/validateSignature/reportView/SignatureStatusBadge.stories.tsx :: Untrusted Signer": [ - "aria-allowed-attr" - ], - "editor/src/core/components/viewer/DocumentReadyWrapper.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/viewer/LocalEmbedPDF.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/viewer/LocalEmbedPDF.stories.tsx :: Unsupported File": [ - "color-contrast" - ], - "editor/src/core/components/viewer/NonPdfViewer.stories.tsx :: Csv": [ - "color-contrast" - ], - "editor/src/core/components/viewer/NonPdfViewer.stories.tsx :: Unsupported": [ - "color-contrast" - ], - "editor/src/core/components/viewer/SearchInterface.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/viewer/SearchInterface.stories.tsx :: Hidden": [ - "color-contrast" - ], - "editor/src/core/components/viewer/nonpdf/CsvViewer.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/viewer/nonpdf/CsvViewer.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/core/components/viewer/nonpdf/CsvViewer.stories.tsx :: Tsv": [ - "color-contrast" - ], - "editor/src/core/components/viewer/nonpdf/HtmlViewer.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/viewer/nonpdf/JsonViewer.stories.tsx :: Invalid Json": [ - "color-contrast" - ], - "editor/src/core/components/viewer/nonpdf/NonPdfBanner.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/viewer/nonpdf/TextViewer.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/core/components/viewer/nonpdf/TextViewer.stories.tsx :: Markdown": [ - "color-contrast" - ], - "editor/src/core/tokens/Tokens.stories.tsx :: Colours": ["color-contrast"], - "editor/src/core/ui/Banner.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/Banner.stories.tsx :: Success": ["color-contrast"], - "editor/src/core/ui/Banner.stories.tsx :: Tone Matrix": ["color-contrast"], - "editor/src/core/ui/Banner.stories.tsx :: With Action": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Accents": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Disabled Dark": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Loading": ["button-name"], - "editor/src/core/ui/Button.stories.tsx :: Padding": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Shape": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Sizes": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: Variants": ["color-contrast"], - "editor/src/core/ui/Button.stories.tsx :: With Icons": ["color-contrast"], - "editor/src/core/ui/ChatFABButton.stories.tsx :: Default": ["button-name"], - "editor/src/core/ui/ChatFABButton.stories.tsx :: Loading": ["button-name"], - "editor/src/core/ui/ChatFABButton.stories.tsx :: Tick": ["button-name"], - "editor/src/core/ui/ChatFABButton.stories.tsx :: Tick While Loading": [ - "button-name" - ], - "editor/src/core/ui/ChatFABWindow.stories.tsx :: Closed": [ - "scrollable-region-focusable" - ], - "editor/src/core/ui/ChatFABWindow.stories.tsx :: Open": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/ui/ChatFABWindow.stories.tsx :: Toggle": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/ui/Chip.stories.tsx :: Accents": ["color-contrast"], - "editor/src/core/ui/Chip.stories.tsx :: Dashed Add": ["nested-interactive"], - "editor/src/core/ui/Chip.stories.tsx :: In Context Op Chain": [ - "color-contrast" - ], - "editor/src/core/ui/Chip.stories.tsx :: Playground": [ - "color-contrast", - "nested-interactive" - ], - "editor/src/core/ui/CodeBlock.stories.tsx :: In Context Quickstart": [ - "color-contrast" - ], - "editor/src/core/ui/CodeBlock.stories.tsx :: In Context Two Up Comparison": [ - "color-contrast" - ], - "editor/src/core/ui/CodeBlock.stories.tsx :: Long Scrolling": [ - "color-contrast" - ], - "editor/src/core/ui/CodeBlock.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/Collapsible.stories.tsx :: Accordion": [ - "scrollable-region-focusable" - ], - "editor/src/core/ui/Collapsible.stories.tsx :: Default": [ - "scrollable-region-focusable" - ], - "editor/src/core/ui/Drawer.stories.tsx :: Playground": [ - "aria-allowed-role", - "color-contrast" - ], - "editor/src/core/ui/Drawer.stories.tsx :: With Footer": [ - "aria-allowed-role", - "color-contrast" - ], - "editor/src/core/ui/EmptyState.stories.tsx :: With CT As": ["color-contrast"], - "editor/src/core/ui/FilePicker.stories.tsx :: Accept Pdf": ["color-contrast"], - "editor/src/core/ui/FilePicker.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/FilePicker.stories.tsx :: Multiple": ["color-contrast"], - "editor/src/core/ui/Forms.stories.tsx :: Checkbox Grid Of Categories": [ - "color-contrast" - ], - "editor/src/core/ui/Forms.stories.tsx :: Full Form": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/Forms.stories.tsx :: Input Default": ["color-contrast"], - "editor/src/core/ui/Forms.stories.tsx :: Input Error": ["color-contrast"], - "editor/src/core/ui/Forms.stories.tsx :: Input With Icon": ["color-contrast"], - "editor/src/core/ui/Forms.stories.tsx :: Radio Group": ["color-contrast"], - "editor/src/core/ui/Forms.stories.tsx :: Radio Horizontal": [ - "color-contrast" - ], - "editor/src/core/ui/Forms.stories.tsx :: Slider Confidence": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/Forms.stories.tsx :: Slider Retention": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/Inline.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/Inline.stories.tsx :: Space Between": ["color-contrast"], - "editor/src/core/ui/Inline.stories.tsx :: Wrap": ["color-contrast"], - "editor/src/core/ui/ListRow.stories.tsx :: In Card": ["color-contrast"], - "editor/src/core/ui/MantineForms.stories.tsx :: Color Input Default": [ - "button-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Color Input Error": [ - "button-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Color Input Preselected": [ - "button-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Color Input Sm Size": [ - "button-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Multi Select Default": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Multi Select Error": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Multi Select Sm Size": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Multi Select With Values": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Number Input Decimal": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Number Input Default": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Number Input Error": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Number Input Sm Size": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Number Input With Unit": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Select Default": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Select Error": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Select Searchable": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Select Sm Size": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Slider Default": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Slider Disabled": [ - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Slider No Label": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Slider With Marks": [ - "aria-input-field-name", - "color-contrast" - ], - "editor/src/core/ui/MantineForms.stories.tsx :: Watermark Form": [ - "button-name", - "color-contrast" - ], - "editor/src/core/ui/MethodBadge.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/MethodBadge.stories.tsx :: In Row": ["color-contrast"], - "editor/src/core/ui/MethodBadge.stories.tsx :: Matrix": ["color-contrast"], - "editor/src/core/ui/MetricCard.stories.tsx :: Playground": ["color-contrast"], - "editor/src/core/ui/MetricCard.stories.tsx :: Pro Tier Strip": [ - "color-contrast" - ], - "editor/src/core/ui/MetricStrip.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/NavItem.stories.tsx :: In Context Sidebar Group": [ - "color-contrast" - ], - "editor/src/core/ui/PanelHeader.stories.tsx :: With Actions": [ - "color-contrast" - ], - "editor/src/core/ui/ProgressBar.stories.tsx :: In Context Usage Meter": [ - "color-contrast" - ], - "editor/src/core/ui/ProgressBar.stories.tsx :: Playground": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/ProgressBar.stories.tsx :: Threshold Ladder": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/SegmentedControl.stories.tsx :: Variants": [ - "color-contrast" - ], - "editor/src/core/ui/SegmentedControl.stories.tsx :: With Icons": [ - "color-contrast" - ], - "editor/src/core/ui/SettingsRow.stories.tsx :: List": ["label"], - "editor/src/core/ui/SettingsRow.stories.tsx :: Select Control": ["label"], - "editor/src/core/ui/SettingsRow.stories.tsx :: Toggle": ["label"], - "editor/src/core/ui/SettingsRow.stories.tsx :: With Description": ["label"], - "editor/src/core/ui/SettingsShell.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/StatTile.stories.tsx :: Tone Row": ["color-contrast"], - "editor/src/core/ui/StatusBadge.stories.tsx :: All Tones": ["color-contrast"], - "editor/src/core/ui/StatusBadge.stories.tsx :: Default": ["color-contrast"], - "editor/src/core/ui/StatusBadge.stories.tsx :: Live": ["color-contrast"], - "editor/src/core/ui/StatusBadge.stories.tsx :: Sizes": ["color-contrast"], - "editor/src/core/ui/StepIndicator.stories.tsx :: Small": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/StepIndicator.stories.tsx :: Step 1": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/StepIndicator.stories.tsx :: Step 2": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/StepIndicator.stories.tsx :: Step 3": [ - "aria-progressbar-name" - ], - "editor/src/core/ui/Table.stories.tsx :: Basic": ["color-contrast"], - "editor/src/core/ui/Table.stories.tsx :: Interactive": ["color-contrast"], - "editor/src/core/ui/Tabs.stories.tsx :: In Context Document Verticals": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/ui/Tabs.stories.tsx :: Playground": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/ui/Tabs.stories.tsx :: With Disabled Tab": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/core/ui/Toast.stories.tsx :: Triggers": ["color-contrast"], - "editor/src/portal/components/AppShell.stories.tsx :: Mobile": [ - "color-contrast" - ], - "editor/src/portal/components/AppShell.stories.tsx :: With Home View": [ - "color-contrast" - ], - "editor/src/portal/components/AssistantPanel.stories.tsx :: Reply Fails": [ - "aria-allowed-role" - ], - "editor/src/portal/components/AssistantPanel.stories.tsx :: Slow Reply": [ - "aria-allowed-role" - ], - "editor/src/portal/components/AssistantPanel.stories.tsx :: Suggestions Only": [ - "aria-allowed-role", - "color-contrast" - ], - "editor/src/portal/components/ChatFABWidget.stories.tsx :: Closed": [ - "aria-hidden-focus" - ], - "editor/src/portal/components/ChatFABWidget.stories.tsx :: Full Flow": [ - "aria-hidden-focus", - "color-contrast" - ], - "editor/src/portal/components/ChatFABWidget.stories.tsx :: Loading While Closed": [ - "aria-hidden-focus" - ], - "editor/src/portal/components/ChatFABWidget.stories.tsx :: Unread Result": [ - "aria-hidden-focus" - ], - "editor/src/portal/components/EditorStatusCard.stories.tsx :: Deployment Unavailable": [ - "color-contrast" - ], - "editor/src/portal/components/EditorStatusCard.stories.tsx :: With Setup Checklist": [ - "color-contrast" - ], - "editor/src/portal/components/ErrorBoundary.stories.tsx :: Caught Error": [ - "color-contrast" - ], - "editor/src/portal/components/HomeHero.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/HomeHero.stories.tsx :: Free Tier": [ - "color-contrast" - ], - "editor/src/portal/components/PortalChrome.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/ProcessorFlow.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/ProcessorFlow.stories.tsx :: Idle Empty": [ - "color-contrast" - ], - "editor/src/portal/components/ProcessorFlow.stories.tsx :: Playground": [ - "color-contrast" - ], - "editor/src/portal/components/SearchModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/SearchModal.stories.tsx :: Empty Catalogue": [ - "color-contrast" - ], - "editor/src/portal/components/SetupChecklist.stories.tsx :: Almost Done": [ - "color-contrast" - ], - "editor/src/portal/components/SetupChecklist.stories.tsx :: In Progress": [ - "color-contrast" - ], - "editor/src/portal/components/SetupChecklist.stories.tsx :: Not Started": [ - "color-contrast" - ], - "editor/src/portal/components/Sidebar.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/Sidebar.stories.tsx :: Enterprise Tier": [ - "color-contrast" - ], - "editor/src/portal/components/Sidebar.stories.tsx :: Free Tier": [ - "color-contrast" - ], - "editor/src/portal/components/WelcomeBanner.stories.tsx :: With Setup Checklist": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/AccountLinkPanel.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/components/account-link/AccountLinkPanel.stories.tsx :: Load Forbidden": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/AccountLinkPanel.stories.tsx :: Not Linked": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountCard.stories.tsx :: Error": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountCard.stories.tsx :: Linked": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountCard.stories.tsx :: Linking": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountCard.stories.tsx :: Not Linked": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkAccountCard.stories.tsx :: Unconfigured": [ - "color-contrast" - ], - "editor/src/portal/components/account-link/LinkedInstancesTable.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/components/billing/ActivationChoiceModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/billing/BundleCheckoutModal.stories.tsx :: First Purchase": [ - "color-contrast" - ], - "editor/src/portal/components/billing/BundleCheckoutModal.stories.tsx :: Top Up": [ - "color-contrast" - ], - "editor/src/portal/components/billing/CardPlaceholder.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/billing/FreePlanView.stories.tsx :: Leader": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/FreePlanView.stories.tsx :: Member": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/InvoicesList.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/billing/LinkAccountPrompt.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/billing/PrepaidCapacityCard.stories.tsx :: Bundle Healthy": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/PrepaidCapacityCard.stories.tsx :: Bundle Low": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/SpendLimitCard.stories.tsx :: Approaching Cap": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/SpendLimitCard.stories.tsx :: Editing": [ - "color-contrast" - ], - "editor/src/portal/components/billing/SpendLimitCard.stories.tsx :: Within Cap": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/SpendThisMonthCard.stories.tsx :: With Free Remaining": [ - "color-contrast" - ], - "editor/src/portal/components/billing/StripeCheckoutModal.stories.tsx :: Set Cap": [ - "color-contrast" - ], - "editor/src/portal/components/billing/StripeCheckoutModal.stories.tsx :: Uncapped": [ - "color-contrast" - ], - "editor/src/portal/components/billing/SubscribedPlanView.stories.tsx :: Approaching Cap": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/SubscribedPlanView.stories.tsx :: Leader": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/SubscribedPlanView.stories.tsx :: With Prepaid": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/WalletMeter.stories.tsx :: Free Approaching Limit": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/WalletMeter.stories.tsx :: Free Limit Reached": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/billing/WalletMeter.stories.tsx :: Free Plenty Left": [ - "aria-progressbar-name", - "color-contrast" - ], - "editor/src/portal/components/docs/AuthenticationSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/ComponentsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/DocsNav.stories.tsx :: Badged Leaf Active": [ - "color-contrast" - ], - "editor/src/portal/components/docs/DocsNav.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/DocsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/DocsSection.stories.tsx :: Without Lead": [ - "color-contrast" - ], - "editor/src/portal/components/docs/EndpointReferenceSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/ErrorsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/GettingStartedSection.stories.tsx :: Default": [ - "color-contrast", - "heading-order" - ], - "editor/src/portal/components/docs/LangSnippet.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/docs/LangSnippet.stories.tsx :: Single Language": [ - "color-contrast" - ], - "editor/src/portal/components/docs/PlaybooksSection.stories.tsx :: Default": [ - "color-contrast", - "heading-order" - ], - "editor/src/portal/components/docs/RateLimitsSection.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/docs/RateLimitsSection.stories.tsx :: Free": [ - "color-contrast" - ], - "editor/src/portal/components/docs/RateLimitsSection.stories.tsx :: Pro": [ - "color-contrast" - ], - "editor/src/portal/components/docs/SdksSection.stories.tsx :: Default": [ - "color-contrast", - "heading-order" - ], - "editor/src/portal/components/docs/SdksSection.stories.tsx :: Ga Only": [ - "color-contrast", - "heading-order" - ], - "editor/src/portal/components/docs/SkillsSection.stories.tsx :: Default": [ - "color-contrast", - "heading-order" - ], - "editor/src/portal/components/docs/WebhooksSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentAudit.stories.tsx :: Approved": [ - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentAudit.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentDrawer.stories.tsx :: Default": [ - "aria-allowed-role", - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentDrawer.stories.tsx :: Sensitive": [ - "aria-allowed-role", - "color-contrast" - ], - "editor/src/portal/components/documents/DocumentExtractions.stories.tsx :: Masked": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ElevationBanner.stories.tsx :: Granted": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ElevationBanner.stories.tsx :: Granted Four Eyes": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ElevationBanner.stories.tsx :: Locked": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ElevationBanner.stories.tsx :: Locked Four Eyes": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ReviewQueue.stories.tsx :: Default": [ - "aria-prohibited-attr", - "color-contrast", - "empty-table-header", - "nested-interactive" - ], - "editor/src/portal/components/documents/ReviewQueue.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/documents/ReviewQueueTable.stories.tsx :: Default": [ - "aria-prohibited-attr", - "color-contrast", - "empty-table-header", - "nested-interactive" - ], - "editor/src/portal/components/documents/ReviewQueueTable.stories.tsx :: Empty": [ - "empty-table-header" - ], - "editor/src/portal/components/documents/ReviewQueueTable.stories.tsx :: Needs Review": [ - "color-contrast", - "empty-table-header", - "nested-interactive" - ], - "editor/src/portal/components/editor-admin/CredentialRotationCard.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/CredentialRotationCard.stories.tsx :: Recently Rotated": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/DeploymentSummaryStrip.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/DeploymentSummaryStrip.stories.tsx :: Pro": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/DeploymentTargets.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/DeploymentTargets.stories.tsx :: Free": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/DeploymentTargets.stories.tsx :: Pro": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/InstanceHealthTable.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/InstanceHealthTable.stories.tsx :: Pro": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/OfflineActivationCard.stories.tsx :: Locked": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/PairingPanel.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/editor-admin/PairingPanel.stories.tsx :: Pro": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ApiKeyCard.stories.tsx :: Personal": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ApiKeyCard.stories.tsx :: Revoked": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ApiKeysTab.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ApiKeysTab.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ApiKeysTab.stories.tsx :: Loading": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditExportModal.stories.tsx :: Export Fails": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditExportModal.stories.tsx :: Open": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditTab.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditTab.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditTab.stories.tsx :: Loading": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditTab.stories.tsx :: Non Lead Forbidden": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/AuditTab.stories.tsx :: Team Lead Scoped": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/CreateKeyModal.stories.tsx :: Form": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ModelsTab.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/portal/components/infrastructure/ModelsTab.stories.tsx :: Free": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineDefinitionModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineHeader.stories.tsx :: Editing": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineHeader.stories.tsx :: Paused": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineHeader.stories.tsx :: Testing": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineHeader.stories.tsx :: With Failed Run": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineHeader.stories.tsx :: With Run Result": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineInspector.stories.tsx :: Failed Step": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineInspector.stories.tsx :: Settings": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineStepSettings.stories.tsx :: No Settings": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelineStepSettings.stories.tsx :: Unsupported": [ - "color-contrast" - ], - "editor/src/portal/components/pipelines/PipelinesTable.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/components/pipelines/PipelinesTable.stories.tsx :: Empty": [ - "empty-table-header" - ], - "editor/src/portal/components/pipelines/ToolPicker.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyCategoryCard.stories.tsx :: Coming Soon": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyCategoryCard.stories.tsx :: Configured": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyCategoryCard.stories.tsx :: Not Set Up": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyDetailPanel.stories.tsx :: Active": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyDetailPanel.stories.tsx :: Custom No Activity": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyDetailPanel.stories.tsx :: Paused": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyDetailPanel.stories.tsx :: With Flagged Items": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyExternalApiConfig.stories.tsx :: Custom Api Escape Hatch": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyExternalApiConfig.stories.tsx :: Notify Configured": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyFieldRow.stories.tsx :: Chips": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyFieldRow.stories.tsx :: Select": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyFieldRow.stories.tsx :: Text": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyPurviewConfig.stories.tsx :: Configured": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyPurviewConfig.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyPurviewReadConfig.stories.tsx :: Connection Selected": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicyPurviewReadConfig.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicySetupWizard.stories.tsx :: Classification": [ - "color-contrast" - ], - "editor/src/portal/components/policies/PolicySetupWizard.stories.tsx :: Create": [ - "color-contrast", - "label" - ], - "editor/src/portal/components/policies/PolicySetupWizard.stories.tsx :: Edit": [ - "color-contrast", - "label" - ], - "editor/src/portal/components/procurement/DealJourney.stories.tsx :: At Trial": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealJourney.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealJourney.stories.tsx :: Live": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealStatusHero.stories.tsx :: Agreement": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealStatusHero.stories.tsx :: Live": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealStatusHero.stories.tsx :: Payment": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealStatusHero.stories.tsx :: Quote": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DealStatusHero.stories.tsx :: Trial": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocRow.stories.tsx :: Complete": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocRow.stories.tsx :: Download": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocRow.stories.tsx :: Locked": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocRow.stories.tsx :: Paid Addon": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocRow.stories.tsx :: Sign Action": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocumentLedger.stories.tsx :: At Trial": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/DocumentLedger.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/LockedState.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementAgreement.stories.tsx :: Agreeing": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/portal/components/procurement/ProcurementAgreement.stories.tsx :: Default": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/portal/components/procurement/ProcurementAgreement.stories.tsx :: Downloading": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/portal/components/procurement/ProcurementBanner.stories.tsx :: Deal Underway": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementBanner.stories.tsx :: Upsell": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementExtras.stories.tsx :: License": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementExtras.stories.tsx :: License Trial": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementExtras.stories.tsx :: Trial Manage": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementExtras.stories.tsx :: Trial Setup": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementFlow.stories.tsx :: Default": [ - "color-contrast", - "scrollable-region-focusable" - ], - "editor/src/portal/components/procurement/ProcurementFlow.stories.tsx :: Unlinked": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementHome.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementModal.stories.tsx :: Open": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementStages.stories.tsx :: License": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementStages.stories.tsx :: License Downloading": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementStages.stories.tsx :: License Online Only": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/ProcurementStages.stories.tsx :: Payment": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/QuoteBuilder.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/procurement/StageStepper.stories.tsx :: Locked": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionForm.stories.tsx :: Conditional Fields Revealed": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionForm.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionForm.stories.tsx :: Filled": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionModal.stories.tsx :: Edit": [ - "color-contrast" - ], - "editor/src/portal/components/sources/ConnectionModal.stories.tsx :: Fixed Type": [ - "color-contrast" - ], - "editor/src/portal/components/sources/SourceModal.stories.tsx :: Edit Folder": [ - "color-contrast" - ], - "editor/src/portal/components/sources/SourceModal.stories.tsx :: Edit Webhook": [ - "color-contrast" - ], - "editor/src/portal/components/sources/SourcesTable.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/components/users/ConfirmModal.stories.tsx :: Danger": [ - "color-contrast" - ], - "editor/src/portal/components/users/ConfirmModal.stories.tsx :: Neutral": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: Create Account Form": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: No Admin Role": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: Open": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: Scoped To Team": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: Self Hosted Direct Create": [ - "color-contrast" - ], - "editor/src/portal/components/users/InviteMemberModal.stories.tsx :: Self Hosted No Mail": [ - "color-contrast" - ], - "editor/src/portal/components/users/MoveToTeamModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/users/NewTeamModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/users/PendingInvitations.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/users/PendingInvitations.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/portal/components/users/PendingInvitations.stories.tsx :: Expires Today": [ - "color-contrast" - ], - "editor/src/portal/components/users/RenameTeamModal.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/users/ResetPasswordModal.stories.tsx :: Default": [ - "color-contrast", - "label" - ], - "editor/src/portal/components/users/ResetPasswordModal.stories.tsx :: With Email": [ - "color-contrast", - "label" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Large Team": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Member States": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Org Only": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Saas Team Leader": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Single Team": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: Team Wide Processor": [ - "color-contrast" - ], - "editor/src/portal/components/users/UsersDirectory.stories.tsx :: With Guests": [ - "color-contrast" - ], - "editor/src/portal/data/Endpoints.stories.tsx :: By Vertical": [ - "color-contrast" - ], - "editor/src/portal/data/Ops.stories.tsx :: Agents": ["color-contrast"], - "editor/src/portal/data/Ops.stories.tsx :: Library By Category": [ - "color-contrast" - ], - "editor/src/portal/data/Ops.stories.tsx :: Pipeline Ops": ["color-contrast"], - "editor/src/portal/theme/MantineIntegration.stories.tsx :: Side By Side": [ - "color-contrast" - ], - "editor/src/portal/views/DeveloperDocs.stories.tsx :: Default": [ - "color-contrast", - "landmark-unique" - ], - "editor/src/portal/views/Documents.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/views/Documents.stories.tsx :: Empty": ["color-contrast"], - "editor/src/portal/views/Home.stories.tsx :: Enterprise Tier": [ - "color-contrast", - "landmark-no-duplicate-banner", - "landmark-unique" - ], - "editor/src/portal/views/Home.stories.tsx :: Free Tier": ["color-contrast"], - "editor/src/portal/views/Home.stories.tsx :: Pro Tier": [ - "color-contrast", - "landmark-no-duplicate-banner", - "landmark-unique" - ], - "editor/src/portal/views/Home.stories.tsx :: Subscribed In Procurement": [ - "color-contrast", - "landmark-no-duplicate-banner", - "landmark-unique" - ], - "editor/src/portal/views/Integrations.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/portal/views/Integrations.stories.tsx :: No Connections": [ - "color-contrast" - ], - "editor/src/portal/views/Pipelines.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/views/Pipelines.stories.tsx :: Empty": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/portal/views/Sources.stories.tsx :: Default": ["color-contrast"], - "editor/src/portal/views/Sources.stories.tsx :: Empty": ["color-contrast"], - "editor/src/proprietary/auth/ui/AuthScreens.stories.tsx :: Signup": [ - "aria-hidden-focus" - ], - "editor/src/proprietary/auth/ui/EmailPasswordForm.stories.tsx :: With Errors": [ - "color-contrast" - ], - "editor/src/proprietary/components/policies/PolicyPiiField.stories.tsx :: With Selection": [ - "color-contrast" - ], - "editor/src/proprietary/components/policies/PolicyRedactConfig.stories.tsx :: With Selection": [ - "color-contrast" - ], - "editor/src/proprietary/components/policies/PolicyWatermarkConfig.stories.tsx :: Default": [ - "button-name", - "color-contrast", - "label" - ], - "editor/src/proprietary/components/policies/PolicyWatermarkConfig.stories.tsx :: Disabled": [ - "color-contrast", - "label" - ], - "editor/src/proprietary/components/shared/ChangeUserPasswordModal.stories.tsx :: Default": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/ChangeUserPasswordModal.stories.tsx :: Mail Disabled": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/ChangeUserPasswordModal.stories.tsx :: Non Email Username": [ - "aria-dialog-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/DividerWithText.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/UpdateSeatsModal.stories.tsx :: At Minimum": [ - "button-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/UpdateSeatsModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/EnterpriseRequiredBanner.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/GeneralWithLoginLanding.stories.tsx :: Admin Banner": [ - "label" - ], - "editor/src/proprietary/components/shared/config/GeneralWithLoginLanding.stories.tsx :: Default": [ - "label" - ], - "editor/src/proprietary/components/shared/config/GeneralWithLoginLanding.stories.tsx :: With Backend Version": [ - "label" - ], - "editor/src/proprietary/components/shared/config/OverviewHeader.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/OverviewHeader.stories.tsx :: Signed In": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AccountSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AccountSection.stories.tsx :: Mfa Enabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AccountSection.stories.tsx :: Sso User": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAiDocumentsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAiGeneralSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAiLimitsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAiModelsSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAuditSection.stories.tsx :: Audit Logging Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAuditSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAuditSection.stories.tsx :: Enabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminAuditSection.stories.tsx :: Login Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminFolderAccessSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/AdminFolderAccessSection.stories.tsx :: Login Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/ApiKeys.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/ApiKeys.stories.tsx :: Load Error": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/ApiKeys.stories.tsx :: Loading": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/LoginAgreementEditor.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/LoginAgreementEditor.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/TeamDetailsSection.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/proprietary/components/shared/config/configSections/TeamDetailsSection.stories.tsx :: Empty": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/proprietary/components/shared/config/configSections/TeamsSection.stories.tsx :: Default": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/proprietary/components/shared/config/configSections/TeamsSection.stories.tsx :: Empty": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/proprietary/components/shared/config/configSections/TeamsSection.stories.tsx :: Login Disabled": [ - "color-contrast", - "empty-table-header" - ], - "editor/src/proprietary/components/shared/config/configSections/apiKeys/RefreshModal.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditClearDataSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditClearDataSection.stories.tsx :: Login Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditEventsTable.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditEventsTable.stories.tsx :: With File Metadata Columns": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditExportSection.stories.tsx :: All Fields Enabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditExportSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditExportSection.stories.tsx :: Login Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditFiltersForm.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditFiltersForm.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditFiltersForm.stories.tsx :: Interactive": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditFiltersForm.stories.tsx :: With Filters Applied": [ - "button-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditStatsCards.stories.tsx :: Day": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditStatsCards.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditStatsCards.stories.tsx :: Month": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditSystemStatus.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/audit/AuditSystemStatus.stories.tsx :: Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/plan/AvailablePlansSection.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/plan/AvailablePlansSection.stories.tsx :: Login Disabled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/plan/AvailablePlansSection.stories.tsx :: With Currency Selector": [ - "color-contrast", - "label" - ], - "editor/src/proprietary/components/shared/config/configSections/plan/PlanCard.stories.tsx :: Current Tier": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/plan/PlanCard.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/plan/PlanCard.stories.tsx :: Enterprise Plan": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/plan/PlanCard.stories.tsx :: Free Plan": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/usage/UsageAnalyticsChart.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/usage/UsageAnalyticsChart.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/usage/UsageAnalyticsTable.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/config/configSections/usage/UsageAnalyticsTable.stories.tsx :: Empty": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/StripeCheckout.stories.tsx :: Default": [ - "button-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/StripeCheckout.stories.tsx :: Hosted Checkout Success": [ - "button-name", - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/components/PriceDisplay.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/components/PriceDisplay.stories.tsx :: Enterprise With Total": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/components/PriceDisplay.stories.tsx :: Simple": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/components/PricingBadge.stories.tsx :: Current": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/components/PricingBadge.stories.tsx :: Popular": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/components/PricingBadge.stories.tsx :: Savings": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/EmailStage.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/EmailStage.stories.tsx :: Filled": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/EmailStage.stories.tsx :: With Error": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/ErrorStage.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/ErrorStage.stories.tsx :: Network Error": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/PaymentStage.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/PaymentStage.stories.tsx :: Redirecting": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/PlanSelectionStage.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/PlanSelectionStage.stories.tsx :: Enterprise": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/PlanSelectionStage.stories.tsx :: With Savings": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/SuccessStage.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/SuccessStage.stories.tsx :: Polling": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/SuccessStage.stories.tsx :: Timeout": [ - "color-contrast" - ], - "editor/src/proprietary/components/shared/stripeCheckout/stages/SuccessStage.stories.tsx :: Upgrade Complete": [ - "color-contrast" - ], - "editor/src/proprietary/components/workflow/ParticipantView.stories.tsx :: Completed": [ - "color-contrast" - ], - "editor/src/proprietary/components/workflow/ParticipantView.stories.tsx :: Default": [ - "color-contrast" - ], - "editor/src/proprietary/components/workflow/ParticipantView.stories.tsx :: Expired": [ - "color-contrast" - ], - "editor/src/proprietary/routes/login/OAuthButtons.stories.tsx :: Vertical": [ - "image-redundant-alt" - ] -} +{} diff --git a/frontend/.storybook/a11y-changed.mjs b/frontend/.storybook/a11y-changed.mjs index 5ff7a9e633..f6daef5dbb 100644 --- a/frontend/.storybook/a11y-changed.mjs +++ b/frontend/.storybook/a11y-changed.mjs @@ -10,7 +10,8 @@ // embedded interpreter runs on Windows, but sed/grep/sort do not exist for // developers calling tasks from PowerShell. import { execFileSync } from "node:child_process"; -import { existsSync } from "node:fs"; +import { readdirSync } from "node:fs"; +import { basename, dirname, join } from "node:path"; const base = process.argv[2] || "origin/main"; @@ -40,9 +41,25 @@ for (const f of changed) { continue; } if (TEST.test(f) || !SOURCE.test(f)) continue; - const sibling = f.replace(SOURCE, ""); - for (const s of [`${sibling}.stories.tsx`, `${sibling}.stories.ts`]) - if (existsSync(s)) stories.add(s); + // A story file does not have to match its source's case — tokens.css sits + // beside Tokens.stories.tsx. Deriving the name from the source and trusting + // existsSync silently skips those on a case-sensitive filesystem, and on a + // case-insensitive one feeds the scan a path no result will ever match. Read + // the directory instead and compare case-insensitively, then use the name as + // it is actually spelled on disk. + const dir = dirname(f) || "."; + const stem = basename(f).replace(SOURCE, "").toLowerCase(); + let entries; + try { + entries = readdirSync(dir); + } catch { + continue; + } + for (const entry of entries) { + if (!STORY.test(entry)) continue; + if (entry.replace(STORY, "").toLowerCase() !== stem) continue; + stories.add(join(dir, entry).split("\\").join("/")); + } } // One line, each path quoted: the output is interpolated into a task command, diff --git a/frontend/.storybook/preview.tsx b/frontend/.storybook/preview.tsx index e9d7e7f3d9..f568b34347 100644 --- a/frontend/.storybook/preview.tsx +++ b/frontend/.storybook/preview.tsx @@ -19,6 +19,11 @@ import { LinkProvider, type LinkState } from "@portal/contexts/LinkContext"; import { ThemeProvider, useTheme } from "@portal/contexts/ThemeContext"; import { UIProvider } from "@portal/contexts/UIContext"; import { SuiProvider } from "@portal/theme/SuiProvider"; +import { MantineProvider } from "@mantine/core"; +import { + mantineTheme as editorMantineTheme, + editorCssVariablesResolver, +} from "@core/theme/mantineTheme"; import { handlers } from "@portal/mocks/handlers"; import { configureSupabase } from "@proprietary/auth/supabase/supabaseClient"; import i18next from "i18next"; @@ -199,6 +204,37 @@ const withLocale: Decorator = (Story, context) => { return ; }; +/** + * Applies the Mantine theme the story's component actually runs under in the + * app: PortalApp wraps the Processor in SuiProvider, while the editor wraps + * everything else in its own ThemeProvider. Getting this wrong is not just + * cosmetic — the two themes carry different neutral ramps, so rendering an + * editor component under the Processor's theme drops it onto Mantine's stock + * greys and reports contrast failures the app doesn't have. + */ +function StoryTheme({ + isPortalStory, + colorScheme, + children, +}: { + isPortalStory: boolean; + colorScheme: "light" | "dark"; + children: React.ReactNode; +}) { + if (isPortalStory) { + return {children}; + } + return ( + + {children} + + ); +} + const withProviders: Decorator = (Story, context) => { const tier = (context.globals.tier as Tier) ?? "pro"; const linkState = @@ -214,16 +250,21 @@ const withProviders: Decorator = (Story, context) => { // the portal's base.css keys its reset/typography on. Give portal stories // the same wrapper (and only them — the scoping exists precisely so portal // styles never apply to editor components). - const isPortalStory = (context.parameters.fileName ?? "").includes( - "/portal/", - ); + // `fileName` is only injected by the dev/build pipeline — under the Vitest + // runner it is absent, so path alone would silently drop every portal story + // onto the editor theme (where portal-only palette entries like `amber` + // resolve to nothing and render unstyled). The title prefix is the fallback + // that survives both environments. + const isPortalStory = + (context.parameters.fileName ?? "").includes("/portal/") || + context.title.startsWith("Portal/"); return ( - + {/* LinkProvider must wrap TierProvider: TierContext derives its tier from useLink() (matches App.tsx's nesting). */} @@ -241,7 +282,7 @@ const withProviders: Decorator = (Story, context) => { - + @@ -274,6 +315,14 @@ const preview: Preview = { // any violation. Context is left at the addon default (the document root) // so it resolves under both the Storybook UI and the Vitest browser mount. test: "error", + context: { + // Nodes carrying this attribute render a facsimile of the user's own + // document — their stamp text, their watermark, in the colour and + // opacity they chose. WCAG contrast governs the interface, not the + // content authored through it, and the controls that set those values + // are checked normally. + exclude: ["[data-user-content-preview]"], + }, }, }, globalTypes: { diff --git a/frontend/editor/public/locales/en-GB/translation.toml b/frontend/editor/public/locales/en-GB/translation.toml index ae494e9582..a91d52cca0 100644 --- a/frontend/editor/public/locales/en-GB/translation.toml +++ b/frontend/editor/public/locales/en-GB/translation.toml @@ -3001,12 +3001,15 @@ tooltip = "Runs in the cloud (included, no extra charge)" tooltip = "Pick colour from screen" [colorPicker] +hue = "Hue" +saturation = "Saturation and brightness" title = "Choose colour" [common] back = "Back" cancel = "Cancel" close = "Close" +codeSample = "Code sample" collapse = "Collapse" confirm = "Confirm" continue = "Continue" @@ -3023,6 +3026,7 @@ refresh = "Refresh" remaining = "Remaining" retry = "Retry" save = "Save" +stepOf = "Step {{current}} of {{total}}" [compare] clearSelected = "Clear selected" @@ -3185,6 +3189,7 @@ title = "Compression Method" [compress.settings] desiredSize = "Desired File Size" desiredSizePlaceholder = "Enter size" +desiredSizeUnit = "Size unit" [compress.tooltip.description] text = "Compression is an easy way to reduce your file size. Pick File Size to enter a target size and have us adjust quality for you. Pick Quality to set compression strength manually." @@ -3824,11 +3829,13 @@ shareSelected = "Share Files" sharing = "Sharing" showAll = "Show All" showHistory = "Show History" +sortBy = "Sort files" sortByDate = "Sort by Date" sortByName = "Sort by Name" sortBySize = "Sort by Size" storage = "Storage" storageState = "Storage" +storageUsed = "Storage used" synced = "Synced" title = "Upload PDF Files" toolChain = "Tools Applied" @@ -4168,6 +4175,7 @@ noFilesInStorageOpen = "No files available in storage. Open some files first." open = "Open" openFile = "Open File" openFiles = "Open Files" +selectFile = "Select {{name}}" selectFromStorage = "Select from Storage" upload = "Upload" uploadFile = "Upload File" @@ -5127,6 +5135,7 @@ activeFiles = "The Active Files view shows all of the PDFs you allTools = "This is the Tools panel, where you can browse and select from all available PDF tools." close = "Close" cropSettings = "Now that we've selected the file we want crop, we can configure the Crop tool to choose the area that we want to crop the PDF to." +dialogLabel = "Onboarding" fileCheckbox = "Clicking one of the files selects it for processing. You can select multiple files for batch operations." fileReplacement = "The modified file will replace the original file in the Workbench automatically, allowing you to easily run it through more tools." filesButton = "The Files button on the Quick Access bar allows you to upload PDFs to use the tools on." @@ -5563,6 +5572,7 @@ freeBody = "View, edit, merge, split, sign, watermark, compress, convert and man freeTitle = "Unlimited PDF editing" [payg.free.hero] +barAria = "Free PDFs used" capSuffix = "/ {{limit}} free PDFs" metaCategories = "Automation · AI · API requests" @@ -5642,6 +5652,7 @@ automation = "automations" default = "this feature" [payg.spendCapMeter] +barAria = "Spend against cap" capSuffix = "/ {{amount}} cap" metaCategories = "Automation · AI · API spend" resets = "Resets each billing period" @@ -6045,6 +6056,7 @@ small = "500 Credits" xsmall = "100 Credits" [plan.availablePlans] +currency = "Billing currency" subtitle = "Choose the plan that fits your needs" title = "Available Plans" @@ -6280,6 +6292,7 @@ revoked = "Revoked" unnamed = "Unnamed instance" [portal.accountLink.instances.columns] +actions = "Actions" instance = "Instance" lastSeen = "Last seen" linked = "Linked" @@ -6624,6 +6637,7 @@ reachedTitle = "Monthly spend limit reached" title = "Couldn't open Stripe portal" [portal.billing.walletMeter] +barAria = "Free PDFs used" capSuffix_one = "of {{allowance}} free PDFs used" capSuffix_other = "of {{allowance}} free PDFs used" eyebrow = "Processor trial" @@ -7184,6 +7198,7 @@ sensitiveTitle = "Sensitive — access required" [portal.documents.table.columns] action = "Pipeline / Action" +actions = "Actions" document = "Document" product = "Product" status = "Status" @@ -7481,6 +7496,7 @@ rolledBack = "Rolled back" rolling = "Rolling out" [portal.infrastructure.deployments] +loadAria = "Load for {{name}}" msValue = "{{value}} ms" throughputValue = "{{value}}/min" @@ -7526,6 +7542,7 @@ disabled = "Disabled" [portal.infrastructure.models] heading = "Models" +loadAria = "Load for {{name}}" msValue = "{{value}} ms" subheading = "The model catalogue and routing that powers document processing across your workspace." @@ -7892,6 +7909,7 @@ paused = "Paused" [portal.pipelines.table] name = "Pipeline" +open = "Open" sources = "Sources" status = "Status" steps = "Steps" @@ -8783,6 +8801,7 @@ unused = "Unused" [portal.sources.table] documents = "Documents" +open = "Open" source = "Source" status = "Status" usedBy = "Policies" diff --git a/frontend/editor/public/locales/en-US/translation.toml b/frontend/editor/public/locales/en-US/translation.toml index 8ce96c2552..69211b6360 100644 --- a/frontend/editor/public/locales/en-US/translation.toml +++ b/frontend/editor/public/locales/en-US/translation.toml @@ -3005,12 +3005,15 @@ tooltip = "This operation will use your cloud credits" tooltip = "Pick color from screen" [colorPicker] +hue = "Hue" +saturation = "Saturation and brightness" title = "Choose color" [common] back = "Back" cancel = "Cancel" close = "Close" +codeSample = "Code sample" collapse = "Collapse" confirm = "Confirm" continue = "Continue" @@ -3028,6 +3031,7 @@ refresh = "Refresh" remaining = "Remaining" retry = "Retry" save = "Save" +stepOf = "Step {{current}} of {{total}}" [compare] clearSelected = "Clear selected" @@ -3190,6 +3194,7 @@ title = "Compression Method" [compress.settings] desiredSize = "Desired File Size" desiredSizePlaceholder = "Enter size" +desiredSizeUnit = "Size unit" [compress.tooltip.description] text = "Compression is an easy way to reduce your file size. Pick File Size to enter a target size and have us adjust quality for you. Pick Quality to set compression strength manually." @@ -3833,11 +3838,13 @@ shareSelected = "Share Files" sharing = "Sharing" showAll = "Show All" showHistory = "Show History" +sortBy = "Sort files" sortByDate = "Sort by Date" sortByName = "Sort by Name" sortBySize = "Sort by Size" storage = "Storage" storageState = "Storage" +storageUsed = "Storage used" synced = "Synced" title = "Upload PDF Files" toolChain = "Tools Applied" @@ -4177,6 +4184,7 @@ noFilesInStorageOpen = "No files available in storage. Open some files first." open = "Open" openFile = "Open File" openFiles = "Open Files" +selectFile = "Select {{name}}" selectFromStorage = "Select from Storage" upload = "Upload" uploadFile = "Upload File" @@ -5169,6 +5177,7 @@ activeFiles = "The Active Files view shows all of the PDFs you allTools = "This is the Tools panel, where you can browse and select from all available PDF tools." close = "Close" cropSettings = "Now that we've selected the file we want crop, we can configure the Crop tool to choose the area that we want to crop the PDF to." +dialogLabel = "Onboarding" fileCheckbox = "Files on the workbench are selected for processing. You can select multiple files for batch operations using the left files sidebar." fileReplacement = "The modified file will replace the original file in the Workbench automatically, allowing you to easily run it through more tools." filesButton = "The Files button on the Quick Access bar allows you to upload PDFs to use the tools on." @@ -5605,6 +5614,7 @@ freeBody = "View, edit, merge, split, sign, watermark, compress, convert and man freeTitle = "Unlimited PDF editing" [payg.free.hero] +barAria = "Free PDFs used" capSuffix = "/ {{limit}} free PDFs" metaCategories = "Automation · AI · API requests" @@ -5684,6 +5694,7 @@ automation = "automations" default = "this feature" [payg.spendCapMeter] +barAria = "Spend against cap" capSuffix = "/ {{amount}} cap" metaCategories = "Automation · AI · API spend" resets = "Resets each billing period" @@ -6087,6 +6098,7 @@ small = "500 Credits" xsmall = "100 Credits" [plan.availablePlans] +currency = "Billing currency" subtitle = "Choose the plan that fits your needs" title = "Available Plans" @@ -6322,6 +6334,7 @@ revoked = "Revoked" unnamed = "Unnamed instance" [portal.accountLink.instances.columns] +actions = "Actions" instance = "Instance" lastSeen = "Last seen" linked = "Linked" @@ -6666,6 +6679,7 @@ reachedTitle = "Monthly spend limit reached" title = "Couldn't open Stripe portal" [portal.billing.walletMeter] +barAria = "Free PDFs used" capSuffix_one = "of {{allowance}} free PDFs used" capSuffix_other = "of {{allowance}} free PDFs used" eyebrow = "Processor trial" @@ -7559,6 +7573,7 @@ rolledBack = "Rolled back" rolling = "Rolling out" [portal.infrastructure.deployments] +loadAria = "Load for {{name}}" msValue = "{{value}} ms" throughputValue = "{{value}}/min" @@ -7604,6 +7619,7 @@ disabled = "Disabled" [portal.infrastructure.models] heading = "Models" +loadAria = "Load for {{name}}" msValue = "{{value}} ms" subheading = "The model catalogue and routing that powers document processing across your workspace." diff --git a/frontend/editor/src/cloud/components/shared/config/configSections/Payg.css b/frontend/editor/src/cloud/components/shared/config/configSections/Payg.css index 581f3af671..9cbda9b6ca 100644 --- a/frontend/editor/src/cloud/components/shared/config/configSections/Payg.css +++ b/frontend/editor/src/cloud/components/shared/config/configSections/Payg.css @@ -95,7 +95,7 @@ margin-bottom: 8px; } .payg-planhead__lbl--free { - color: var(--c-success); + color: var(--color-green-dark); } .payg-planhead__lbl--meter { color: var(--payg-accent); @@ -242,7 +242,7 @@ background: color-mix(in srgb, var(--c-success) 14%, transparent); } [data-mantine-color-scheme="dark"] .payg-hero__credit { - color: var(--c-success); + color: var(--color-green-dark); background: color-mix(in srgb, var(--c-success) 18%, transparent); } @@ -459,11 +459,11 @@ } .payg-gate[data-enabled="true"] .payg-gate__chip { background: color-mix(in srgb, var(--c-success) 16%, transparent); - color: var(--c-success); + color: var(--color-green-dark); } .payg-gate[data-enabled="false"] .payg-gate__chip { background: color-mix(in srgb, var(--c-danger) 16%, transparent); - color: var(--c-danger); + color: var(--color-red-dark); } .payg-gate__label { font-size: 0.8125rem; @@ -486,11 +486,11 @@ background: var(--c-surface-sunken); } .payg-gate__tag[data-variant="pause"] { - color: var(--c-danger); + color: var(--color-red-dark); background: color-mix(in srgb, var(--c-danger) 12%, transparent); } [data-mantine-color-scheme="dark"] .payg-gate__tag[data-variant="pause"] { - color: var(--c-danger); + color: var(--color-red-dark); background: color-mix(in srgb, var(--c-danger) 18%, transparent); } diff --git a/frontend/editor/src/cloud/components/shared/config/configSections/PaygFree.css b/frontend/editor/src/cloud/components/shared/config/configSections/PaygFree.css index 9e89fa38eb..af391f0aeb 100644 --- a/frontend/editor/src/cloud/components/shared/config/configSections/PaygFree.css +++ b/frontend/editor/src/cloud/components/shared/config/configSections/PaygFree.css @@ -298,7 +298,7 @@ font-size: 1rem !important; } .paygf-explainer__icon--free { - color: var(--c-success); + color: var(--color-green-dark); } .paygf-explainer__icon--paid { color: var(--payg-accent); diff --git a/frontend/editor/src/cloud/components/shared/config/configSections/SpendCapControl.css b/frontend/editor/src/cloud/components/shared/config/configSections/SpendCapControl.css index d0ed711434..b6b72f504a 100644 --- a/frontend/editor/src/cloud/components/shared/config/configSections/SpendCapControl.css +++ b/frontend/editor/src/cloud/components/shared/config/configSections/SpendCapControl.css @@ -10,7 +10,7 @@ .scc { --scc-accent: var(--c-primary); - --scc-accent-text: var(--c-primary); + --scc-accent-text: var(--c-accent-text); --scc-accent-soft: color-mix(in srgb, var(--c-primary) 12%, transparent); --scc-accent-border: color-mix(in srgb, var(--c-primary) 25%, transparent); --scc-chip-bg: var(--c-surface-sunken); @@ -24,7 +24,7 @@ [data-mantine-color-scheme="dark"] .scc { /* Chip surface/border track the neutral --c-* tokens (base rule); only the brand-azure accent is tuned brighter for dark. */ - --scc-accent-text: var(--c-primary); + --scc-accent-text: var(--c-accent-text); --scc-accent-soft: color-mix(in srgb, var(--c-primary) 16%, transparent); } diff --git a/frontend/editor/src/cloud/components/shared/config/configSections/usageMeters.tsx b/frontend/editor/src/cloud/components/shared/config/configSections/usageMeters.tsx index abfb0110ca..8811e537b2 100644 --- a/frontend/editor/src/cloud/components/shared/config/configSections/usageMeters.tsx +++ b/frontend/editor/src/cloud/components/shared/config/configSections/usageMeters.tsx @@ -60,6 +60,7 @@ export function FreeMeterPanel({ snap }: { snap: FreeSnapshot }) { = ({ {storageStats.quota && ( 80 diff --git a/frontend/editor/src/core/components/annotation/shared/ColorPicker.tsx b/frontend/editor/src/core/components/annotation/shared/ColorPicker.tsx index ec854426e6..bfc53d5252 100644 --- a/frontend/editor/src/core/components/annotation/shared/ColorPicker.tsx +++ b/frontend/editor/src/core/components/annotation/shared/ColorPicker.tsx @@ -51,6 +51,13 @@ export const ColorPicker: React.FC = ({ format="hex" value={selectedColor} onChange={onColorChange} + // The saturation area and hue bar are role="slider" divs; these are + // their only accessible names. + saturationLabel={t( + "colorPicker.saturation", + "Saturation and brightness", + )} + hueLabel={t("colorPicker.hue", "Hue")} swatches={[ "#000000", "#0066cc", @@ -73,6 +80,7 @@ export const ColorPicker: React.FC = ({ max={100} value={opacity} onChange={onOpacityChange} + thumbLabel={resolvedOpacityLabel} marks={[ { value: 25, label: "25%" }, { value: 50, label: "50%" }, diff --git a/frontend/editor/src/core/components/fileEditor/AddFileCard.tsx b/frontend/editor/src/core/components/fileEditor/AddFileCard.tsx index 94d2e35e47..5bce53410e 100644 --- a/frontend/editor/src/core/components/fileEditor/AddFileCard.tsx +++ b/frontend/editor/src/core/components/fileEditor/AddFileCard.tsx @@ -161,7 +161,7 @@ const AddFileCard = ({ icon={icons.uploadIconName} width="1.25rem" height="1.25rem" - style={{ color: "var(--c-primary)", flexShrink: 0 }} + style={{ color: "var(--c-accent-text)", flexShrink: 0 }} /> {isUploadHover && ( = ({ {currentFile && ` • v${currentFile.versionNumber || 1}`} {hasMultipleFiles && ( - + {currentFileIndex + 1} of {selectedFiles.length} )} diff --git a/frontend/editor/src/core/components/fileManager/DragOverlay.tsx b/frontend/editor/src/core/components/fileManager/DragOverlay.tsx index 023bb59d14..04af539346 100644 --- a/frontend/editor/src/core/components/fileManager/DragOverlay.tsx +++ b/frontend/editor/src/core/components/fileManager/DragOverlay.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { Stack, Text, useMantineTheme, alpha } from "@mantine/core"; +import { Stack, Text } from "@mantine/core"; import UploadFileIcon from "@mui/icons-material/UploadFile"; import { useTranslation } from "react-i18next"; @@ -9,7 +9,6 @@ interface DragOverlayProps { const DragOverlay: React.FC = ({ isVisible }) => { const { t } = useTranslation(); - const theme = useMantineTheme(); if (!isVisible) return null; @@ -21,8 +20,9 @@ const DragOverlay: React.FC = ({ isVisible }) => { left: 0, right: 0, bottom: 0, - backgroundColor: alpha(theme.colors.blue[6], 0.1), - border: `0.125rem dashed ${theme.colors.blue[6]}`, + // The prompt below is the drop affordance on its own. Tinting the whole + // region and ringing it in dashed accent reads as a second, competing + // surface, so the overlay stays transparent. borderRadius: "1.875rem", display: "flex", alignItems: "center", @@ -32,10 +32,12 @@ const DragOverlay: React.FC = ({ isVisible }) => { }} > + {/* Muted ink rather than the accent shade: it has to read on whatever + the overlay happens to sit on, in either scheme. */} - + {t("fileManager.dropFilesHere", "Drop files here to upload")} diff --git a/frontend/editor/src/core/components/fileManager/EmptyFilesState.tsx b/frontend/editor/src/core/components/fileManager/EmptyFilesState.tsx index 59b42ef954..890906abda 100644 --- a/frontend/editor/src/core/components/fileManager/EmptyFilesState.tsx +++ b/frontend/editor/src/core/components/fileManager/EmptyFilesState.tsx @@ -103,7 +103,7 @@ const EmptyFilesState: React.FC = () => { icon={icons.uploadIconName} width="1.25rem" height="1.25rem" - style={{ color: "var(--c-primary)" }} + style={{ color: "var(--c-accent-text)" }} /> {isUploadHover && ( diff --git a/frontend/editor/src/core/components/fileManager/FileInfoCard.tsx b/frontend/editor/src/core/components/fileManager/FileInfoCard.tsx index f43df3d86c..4f94155d4e 100644 --- a/frontend/editor/src/core/components/fileManager/FileInfoCard.tsx +++ b/frontend/editor/src/core/components/fileManager/FileInfoCard.tsx @@ -86,19 +86,29 @@ const FileInfoCard: React.FC = ({ }} > - + {t("fileManager.details", "File Details")} - + {/* The viewport is focusable and named so keyboard users can scroll the + detail list once it overflows. */} + diff --git a/frontend/editor/src/core/components/filesPage/FileGrid.tsx b/frontend/editor/src/core/components/filesPage/FileGrid.tsx index ce9be12ad2..7bed49bd0b 100644 --- a/frontend/editor/src/core/components/filesPage/FileGrid.tsx +++ b/frontend/editor/src/core/components/filesPage/FileGrid.tsx @@ -906,35 +906,47 @@ function ListView({ return (
+ {/* Each direct child is a columnheader: a role="row" may only own cells, so + the sort controls and the select-all box have to sit inside one. */}
{onSetSelection && visibleFileIds.length > 0 ? ( - { - onSetSelection(allSelected ? new Set() : new Set(visibleFileIds)); - }} - aria-label={ - allSelected - ? t("filesPage.deselectAll", "Clear selection") - : t("filesPage.selectAll", "Select all") - } - /> + + { + onSetSelection( + allSelected ? new Set() : new Set(visibleFileIds), + ); + }} + aria-label={ + allSelected + ? t("filesPage.deselectAll", "Clear selection") + : t("filesPage.selectAll", "Select all") + } + /> + ) : (
@@ -1091,7 +1103,12 @@ function FolderRow({ className={`files-page-list-row${isDropTarget ? " is-drop-target" : ""}`} >
); } @@ -1254,35 +1275,40 @@ function FileRow({ isInWorkspace ? " is-in-workspace" : "" }`} > - {/* Checkbox only shows in multi-select mode (see FileCard). When the - checkbox is hidden the first grid column collapses, but the row's - CSS grid keeps the columns aligned via the named template, so no - empty cell shows. */} + {/* Each direct child is a gridcell: a role="row" may only own cells, so the + checkbox and the actions menu have to sit inside one. + + The checkbox only shows in multi-select mode (see FileCard). When it is + hidden the first grid column collapses, but the row's CSS grid keeps the + columns aligned via the named template, so no empty cell shows. */} {multiSelectActive ? ( - { - // Toggle this file in/out of the selection without modifier keys. - e.stopPropagation(); - onClick({ - ...e, - shiftKey: false, - ctrlKey: true, - metaKey: true, - } as unknown as React.MouseEvent); - }} - onChange={() => { - /* handled by onClick */ - }} - aria-label={t("filesPage.selectFile", "Select file {{name}}", { - name: file.name, - })} - /> + + { + // Toggle this file in/out of the selection without modifier keys. + e.stopPropagation(); + onClick({ + ...e, + shiftKey: false, + ctrlKey: true, + metaKey: true, + } as unknown as React.MouseEvent); + }} + onChange={() => { + /* handled by onClick */ + }} + aria-label={t("filesPage.selectFile", "Select file {{name}}", { + name: file.name, + })} + /> + ) : ( // Empty cell preserves grid column alignment. ); } diff --git a/frontend/editor/src/core/components/filesPage/FileOriginBadge.tsx b/frontend/editor/src/core/components/filesPage/FileOriginBadge.tsx index a4e9b6e3f9..3d94610e0b 100644 --- a/frontend/editor/src/core/components/filesPage/FileOriginBadge.tsx +++ b/frontend/editor/src/core/components/filesPage/FileOriginBadge.tsx @@ -32,12 +32,12 @@ const styles = { }, cloud: { background: "color-mix(in srgb, var(--c-primary) 16%, transparent)", - color: "var(--c-primary)", + color: "var(--c-accent-text)", }, shared: { background: "color-mix(in srgb, var(--mantine-color-orange-6) 16%, transparent)", - color: "var(--mantine-color-orange-6)", + color: "var(--color-amber-dark)", }, }; diff --git a/frontend/editor/src/core/components/filesPage/FilesPage.css b/frontend/editor/src/core/components/filesPage/FilesPage.css index 4815a1b31e..368bae2521 100644 --- a/frontend/editor/src/core/components/filesPage/FilesPage.css +++ b/frontend/editor/src/core/components/filesPage/FilesPage.css @@ -339,6 +339,9 @@ } .files-page-list-row.is-header [data-sortable="true"] { + /* Block so the hit area and hover tint fill the columnheader cell that wraps + it, rather than hugging the label text. */ + display: block; cursor: pointer; padding: 0.2rem 0.4rem; margin: -0.2rem -0.4rem; @@ -741,7 +744,7 @@ height: 5rem; border-radius: 50%; background: color-mix(in srgb, var(--c-primary) 12%, transparent); - color: var(--c-primary); + color: var(--c-accent-text); margin-bottom: 0.25rem; } @@ -980,7 +983,7 @@ .files-page-details-version-timeline-count { margin-left: auto; font-weight: 600; - color: var(--c-primary); + color: var(--c-accent-text); text-transform: none; letter-spacing: 0; } @@ -1112,7 +1115,29 @@ .files-page-details-version-timeline-expand-btn:hover span { color: var(--c-text); } - +.files-page-details-version-timeline-delta { + font-size: 0.82rem; + color: var(--c-text); + font-weight: 500; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: inline-flex; + align-items: baseline; + gap: 0.25rem; +} +.files-page-details-version-timeline-delta.is-origin { + font-weight: 400; + color: var(--c-text-subtle); + font-style: italic; +} +.files-page-details-version-timeline-delta-plus { + color: var(--c-accent-text); + font-weight: 700; +} +.files-page-details-version-timeline-spacer { + flex: 1; +} .files-page-details-version-timeline-chevron { color: var(--c-text-subtle); transition: transform 0.15s ease; @@ -1120,7 +1145,7 @@ .files-page-details-version-timeline-chevron.is-expanded { transform: rotate(180deg); - color: var(--c-primary); + color: var(--c-accent-text); } .files-page-details-version-timeline-expanded { @@ -1185,7 +1210,7 @@ justify-content: center; gap: 1rem; pointer-events: none; - color: var(--c-primary); + color: var(--c-accent-text); font-weight: 600; font-size: 1.1rem; z-index: 10; diff --git a/frontend/editor/src/core/components/filesPage/FolderThumbnail.tsx b/frontend/editor/src/core/components/filesPage/FolderThumbnail.tsx index 39554a21ee..928a75eb3c 100644 --- a/frontend/editor/src/core/components/filesPage/FolderThumbnail.tsx +++ b/frontend/editor/src/core/components/filesPage/FolderThumbnail.tsx @@ -151,7 +151,10 @@ export function FolderThumbnail({ borderRadius: "999px", background: "var(--c-surface, #fff)", border: `1px solid ${accent}`, - color: accent, + // The ring carries the folder's accent; the numeral does not. + // Folder colours are user-chosen and many are too light to read + // as text on the white pill. + color: "var(--c-text)", fontSize: "0.7rem", fontWeight: 700, display: "inline-flex", diff --git a/frontend/editor/src/core/components/onboarding/InitialOnboardingModal/InitialOnboardingModal.module.css b/frontend/editor/src/core/components/onboarding/InitialOnboardingModal/InitialOnboardingModal.module.css index f9439dcdd2..58108b55c1 100644 --- a/frontend/editor/src/core/components/onboarding/InitialOnboardingModal/InitialOnboardingModal.module.css +++ b/frontend/editor/src/core/components/onboarding/InitialOnboardingModal/InitialOnboardingModal.module.css @@ -325,7 +325,7 @@ .v2Badge { background: var(--c-primary-tint); - color: var(--c-accent-fg); + color: var(--c-accent-text); padding: 3px 9px; border-radius: 6px; font-size: 12px; diff --git a/frontend/editor/src/core/components/onboarding/OnboardingSlideShell.tsx b/frontend/editor/src/core/components/onboarding/OnboardingSlideShell.tsx index 49d94662eb..3d077301eb 100644 --- a/frontend/editor/src/core/components/onboarding/OnboardingSlideShell.tsx +++ b/frontend/editor/src/core/components/onboarding/OnboardingSlideShell.tsx @@ -101,7 +101,10 @@ export default function OnboardingSlideShell({ ); return ( - , because only Modal.Content lands + // props on the role="dialog" element — the slide draws its own title, so the + // dialog needs an aria-label to have an accessible name. + -
-
-
- - Stirling -
-
- {showProgress && ( - - {t("onboarding.stepOf", "Step {{current}} of {{total}}", { - current: stepIndex + 1, - total: stepCount, - })} - - )} - {allowDismiss && ( - - + + +
+
+
+ - - )} -
-
+ Stirling +
+
+ {showProgress && ( + + {t("onboarding.stepOf", "Step {{current}} of {{total}}", { + current: stepIndex + 1, + total: stepCount, + })} + + )} + {allowDismiss && ( + + + + )} +
+
- {showProgress && ( -
- {Array.from({ length: stepCount }, (_, index) => ( - - ))} -
- )} - -
- -
-
-
- {hero} -
-
- -
- {title} -
- -
- {body} - -
- -
- {backButtons.length === 0 ? ( -
{actions}
- ) : ( -
-
- {backButtons.map((button) => ( - onAction(button.action)} - variant="tertiary" - accent="neutral" - disabled={button.disabled} - aria-label={t("onboarding.buttons.back", "Back")} - > - - - ))} -
- {actions} + {showProgress && ( +
+ {Array.from({ length: stepCount }, (_, index) => ( + + ))}
)} + +
+ +
+
+
+ {hero} +
+
+ +
+ {title} +
+ +
+ {body} + +
+ +
+ {backButtons.length === 0 ? ( +
{actions}
+ ) : ( +
+
+ {backButtons.map((button) => ( + onAction(button.action)} + variant="tertiary" + accent="neutral" + disabled={button.disabled} + aria-label={t("onboarding.buttons.back", "Back")} + > + + + ))} +
+ {actions} +
+ )} +
+
-
-
- + + + ); } diff --git a/frontend/editor/src/core/components/onboarding/slides/AnalyticsChoiceSlide.tsx b/frontend/editor/src/core/components/onboarding/slides/AnalyticsChoiceSlide.tsx index 23566a5527..aa04911832 100644 --- a/frontend/editor/src/core/components/onboarding/slides/AnalyticsChoiceSlide.tsx +++ b/frontend/editor/src/core/components/onboarding/slides/AnalyticsChoiceSlide.tsx @@ -50,7 +50,7 @@ export default function AnalyticsChoiceSlide({
{analyticsError && ( -
+
{analyticsError}
)} diff --git a/frontend/editor/src/core/components/onboarding/slides/FirstLoginSlide.tsx b/frontend/editor/src/core/components/onboarding/slides/FirstLoginSlide.tsx index d684592a4a..0b1f5bb8f2 100644 --- a/frontend/editor/src/core/components/onboarding/slides/FirstLoginSlide.tsx +++ b/frontend/editor/src/core/components/onboarding/slides/FirstLoginSlide.tsx @@ -125,7 +125,7 @@ function FirstLoginForm({ icon="info-rounded" width={20} height={20} - style={{ color: "var(--c-primary)", flexShrink: 0 }} + style={{ color: "var(--c-accent-text)", flexShrink: 0 }} /> {t( diff --git a/frontend/editor/src/core/components/onboarding/slides/SecurityCheckSlide.tsx b/frontend/editor/src/core/components/onboarding/slides/SecurityCheckSlide.tsx index 6101605772..7f3e9f12a5 100644 --- a/frontend/editor/src/core/components/onboarding/slides/SecurityCheckSlide.tsx +++ b/frontend/editor/src/core/components/onboarding/slides/SecurityCheckSlide.tsx @@ -26,7 +26,7 @@ export default function SecurityCheckSlide({ icon="error" width={20} height={20} - style={{ color: "var(--c-danger)", flexShrink: 0 }} + style={{ color: "var(--color-red-dark)", flexShrink: 0 }} /> {i18n.t( diff --git a/frontend/editor/src/core/components/pageEditor/bulkSelectionPanel/BulkSelectionPanel.module.css b/frontend/editor/src/core/components/pageEditor/bulkSelectionPanel/BulkSelectionPanel.module.css index 1ecd05808b..59729a79e0 100644 --- a/frontend/editor/src/core/components/pageEditor/bulkSelectionPanel/BulkSelectionPanel.module.css +++ b/frontend/editor/src/core/components/pageEditor/bulkSelectionPanel/BulkSelectionPanel.module.css @@ -222,7 +222,8 @@ /* Error helper text above the input */ .errorText { margin-top: 0.25rem; - color: var(--text-brand-accent); + /* The brand red is a fill; error copy takes the theme's error ink. */ + color: var(--color-red-dark); } /* Compact error container for inline tool settings */ @@ -237,7 +238,7 @@ /* Two-line clamp for compact error text */ .errorTextClamp { - color: var(--text-brand-accent); + color: var(--color-red-dark); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; diff --git a/frontend/editor/src/core/components/shared/DropdownListWithFooter.tsx b/frontend/editor/src/core/components/shared/DropdownListWithFooter.tsx index 0816ac9a14..4def62470d 100644 --- a/frontend/editor/src/core/components/shared/DropdownListWithFooter.tsx +++ b/frontend/editor/src/core/components/shared/DropdownListWithFooter.tsx @@ -135,7 +135,11 @@ const DropdownListWithFooter: React.FC = ({ zIndex={zIndex} > + {/* A real button: Popover.Target stamps aria-haspopup/aria-expanded on + its child, and those are only permitted on an actual control. */} = ({ padding: "8px 12px", backgroundColor: "light-dark(var(--mantine-color-white), var(--mantine-color-dark-6))", + color: "inherit", + textAlign: "left", + width: "100%", opacity: disabled ? 0.6 : 1, cursor: disabled ? "not-allowed" : "pointer", minHeight: "36px", diff --git a/frontend/editor/src/core/components/shared/EditableSecretField.tsx b/frontend/editor/src/core/components/shared/EditableSecretField.tsx index a515a46cae..cce50f90a0 100644 --- a/frontend/editor/src/core/components/shared/EditableSecretField.tsx +++ b/frontend/editor/src/core/components/shared/EditableSecretField.tsx @@ -1,4 +1,4 @@ -import { useState, useRef, useEffect } from "react"; +import { useId, useState, useRef, useEffect } from "react"; import { PasswordInput, Group, Tooltip, TextInput } from "@mantine/core"; import { useTranslation } from "react-i18next"; import { ActionIcon } from "@app/ui/ActionIcon"; @@ -33,6 +33,7 @@ export default function EditableSecretField({ }: EditableSecretFieldProps) { const { t } = useTranslation(); const resolvedPlaceholder = placeholder ?? t("common.enterValue"); + const fieldId = useId(); const [isEditing, setIsEditing] = useState(false); const [tempValue, setTempValue] = useState(""); const inputRef = useRef(null); @@ -67,6 +68,7 @@ export default function EditableSecretField({
{label && (
, document.body, diff --git a/frontend/editor/src/core/ui/Dropdown.css b/frontend/editor/src/core/ui/Dropdown.css index 38b20ee1d8..8b84af29f1 100644 --- a/frontend/editor/src/core/ui/Dropdown.css +++ b/frontend/editor/src/core/ui/Dropdown.css @@ -54,7 +54,7 @@ .sui-dd__item.is-active { background: var(--c-primary-subtle); - color: var(--c-accent-fg); + color: var(--c-accent-text); font-weight: 500; } diff --git a/frontend/editor/src/core/ui/EmptyState.css b/frontend/editor/src/core/ui/EmptyState.css index bf8250bc82..bd3d7cf03e 100644 --- a/frontend/editor/src/core/ui/EmptyState.css +++ b/frontend/editor/src/core/ui/EmptyState.css @@ -22,7 +22,7 @@ font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; - color: var(--c-primary); + color: var(--c-accent-text); } .sui-empty__title { diff --git a/frontend/editor/src/core/ui/FormField.css b/frontend/editor/src/core/ui/FormField.css index f5cbe2d5fc..792845c255 100644 --- a/frontend/editor/src/core/ui/FormField.css +++ b/frontend/editor/src/core/ui/FormField.css @@ -14,7 +14,9 @@ } .sui-field__required { - color: var(--color-red); + /* The base red is a fill colour; as text on the form background it only + reaches 3.4:1. */ + color: var(--color-red-dark); } .sui-field__control { @@ -29,5 +31,5 @@ } .sui-field--error .sui-field__help { - color: var(--color-red); + color: var(--color-red-dark); } diff --git a/frontend/editor/src/core/ui/Forms.stories.tsx b/frontend/editor/src/core/ui/Forms.stories.tsx index 0d14cf3392..dff72b6da7 100644 --- a/frontend/editor/src/core/ui/Forms.stories.tsx +++ b/frontend/editor/src/core/ui/Forms.stories.tsx @@ -182,6 +182,7 @@ export const Slider_Confidence: Story = { step={0.01} onChange={setV} formatValue={(x) => x.toFixed(2)} + aria-label="Minimum confidence" /> ); @@ -203,6 +204,7 @@ export const Slider_Retention: Story = { step={1} onChange={setDays} formatValue={(d) => `${d} days`} + aria-label="Retain artifacts for" /> ); @@ -262,6 +264,7 @@ export const FullForm: Story = { step={0.01} onChange={setConf} formatValue={(v) => v.toFixed(2)} + aria-label="Confidence gate" /> diff --git a/frontend/editor/src/core/ui/ListRow.css b/frontend/editor/src/core/ui/ListRow.css index 836dba4d8f..019b679f5c 100644 --- a/frontend/editor/src/core/ui/ListRow.css +++ b/frontend/editor/src/core/ui/ListRow.css @@ -36,23 +36,23 @@ background: var(--c-surface-sunken); } .sui-listrow__leading[data-tone="success"] { - color: var(--color-green); + color: var(--color-green-dark); background: color-mix(in srgb, var(--color-green) 14%, transparent); } .sui-listrow__leading[data-tone="warning"] { - color: var(--color-amber); + color: var(--color-amber-dark); background: color-mix(in srgb, var(--color-amber) 14%, transparent); } .sui-listrow__leading[data-tone="danger"] { - color: var(--color-red); + color: var(--color-red-dark); background: color-mix(in srgb, var(--color-red) 14%, transparent); } .sui-listrow__leading[data-tone="info"] { - color: var(--c-primary); + color: var(--c-accent-text); background: color-mix(in srgb, var(--c-primary) 14%, transparent); } .sui-listrow__leading[data-tone="purple"] { - color: var(--color-purple); + color: var(--color-purple-dark); background: color-mix(in srgb, var(--color-purple) 14%, transparent); } diff --git a/frontend/editor/src/core/ui/MantineForms.css b/frontend/editor/src/core/ui/MantineForms.css index ebedf547f7..29cd64413d 100644 --- a/frontend/editor/src/core/ui/MantineForms.css +++ b/frontend/editor/src/core/ui/MantineForms.css @@ -55,7 +55,7 @@ /* Pills match SUI's Chip component: small rounded tags. */ .sui-mantine-pill { background: var(--c-primary-tint) !important; - color: var(--c-primary-hover) !important; + color: var(--c-accent-text) !important; border: 1px solid var(--c-primary-border) !important; border-radius: var(--radius-sm) !important; font-size: 0.75rem !important; diff --git a/frontend/editor/src/core/ui/MantineForms.stories.tsx b/frontend/editor/src/core/ui/MantineForms.stories.tsx index 08e2b2e179..e8860c1f30 100644 --- a/frontend/editor/src/core/ui/MantineForms.stories.tsx +++ b/frontend/editor/src/core/ui/MantineForms.stories.tsx @@ -446,6 +446,7 @@ export const Slider_Default: Story = { max={1} step={0.01} formatValue={(x) => x.toFixed(2)} + aria-label="Confidence threshold" /> ); @@ -467,6 +468,7 @@ export const Slider_WithMarks: Story = { max={365} step={1} formatValue={(d) => `${d}d`} + aria-label="Retain artifacts for" marks={[ { value: 30, label: "30d" }, { value: 90, label: "90d" }, @@ -494,6 +496,7 @@ export const Slider_NoLabel: Story = { max={100} step={1} showValue={false} + aria-label="Opacity" /> ); diff --git a/frontend/editor/src/core/ui/MethodBadge.css b/frontend/editor/src/core/ui/MethodBadge.css index 9b138ed389..1cc89c02a4 100644 --- a/frontend/editor/src/core/ui/MethodBadge.css +++ b/frontend/editor/src/core/ui/MethodBadge.css @@ -15,7 +15,7 @@ border-color: var(--color-green-border); } .sui-method--post { - color: var(--c-primary); + color: var(--c-accent-text); background: var(--c-primary-tint); border-color: var(--c-primary-border); } diff --git a/frontend/editor/src/core/ui/MetricCard.css b/frontend/editor/src/core/ui/MetricCard.css index 8c7adfeb00..520342c65a 100644 --- a/frontend/editor/src/core/ui/MetricCard.css +++ b/frontend/editor/src/core/ui/MetricCard.css @@ -83,10 +83,10 @@ font-size: 0.6875rem; } .sui-metric__delta--up { - color: var(--color-green); + color: var(--color-green-dark); } .sui-metric__delta--down { - color: var(--color-red); + color: var(--color-red-dark); } .sui-metric__delta--flat, .sui-metric__desc { diff --git a/frontend/editor/src/core/ui/NavItem.css b/frontend/editor/src/core/ui/NavItem.css index 8b9949eab5..9fd39f3eff 100644 --- a/frontend/editor/src/core/ui/NavItem.css +++ b/frontend/editor/src/core/ui/NavItem.css @@ -20,7 +20,7 @@ } .sui-navitem.is-active { background: var(--c-primary-subtle); - color: var(--c-accent-fg); + color: var(--c-accent-text); font-weight: 500; } .sui-navitem.is-active:hover { @@ -76,17 +76,17 @@ background: var(--color-red); } .sui-navitem[data-accent="blue"] .sui-navitem__icon { - color: var(--c-primary); + color: var(--c-accent-text); } .sui-navitem[data-accent="purple"] .sui-navitem__icon { - color: var(--color-purple); + color: var(--color-purple-dark); } .sui-navitem[data-accent="green"] .sui-navitem__icon { - color: var(--color-green); + color: var(--color-green-dark); } .sui-navitem[data-accent="amber"] .sui-navitem__icon { - color: var(--color-amber); + color: var(--color-amber-dark); } .sui-navitem[data-accent="red"] .sui-navitem__icon { - color: var(--color-red); + color: var(--color-red-dark); } diff --git a/frontend/editor/src/core/ui/PanelHeader.css b/frontend/editor/src/core/ui/PanelHeader.css index 02f32c3707..f8dafd2303 100644 --- a/frontend/editor/src/core/ui/PanelHeader.css +++ b/frontend/editor/src/core/ui/PanelHeader.css @@ -46,7 +46,7 @@ button.sui-panelhdr__bar:hover { height: 1.75rem; border-radius: 9999px; background: var(--mantine-color-blue-light); - color: var(--mantine-color-blue-filled); + color: var(--c-accent-text); flex-shrink: 0; } @@ -154,15 +154,15 @@ button.sui-panelhdr__bar:hover { var(--mantine-color-blue-filled) 18%, transparent ); - color: var(--mantine-color-blue-3, var(--mantine-color-blue-filled)); + color: var(--c-accent-text); } /* Dark mode: the subtle gray close button is too dim against the dark rail — brighten it to a clearly-visible light grey (near-white on hover). */ [data-mantine-color-scheme="dark"] .sui-panelhdr__close { - color: var(--mantine-color-gray-4); + color: var(--c-text-subtle); } [data-mantine-color-scheme="dark"] .sui-panelhdr__close:hover { - color: var(--mantine-color-gray-2); + color: var(--c-text-subtle); } diff --git a/frontend/editor/src/core/ui/ProgressBar.stories.tsx b/frontend/editor/src/core/ui/ProgressBar.stories.tsx index 7c8b386dda..8c88bc039a 100644 --- a/frontend/editor/src/core/ui/ProgressBar.stories.tsx +++ b/frontend/editor/src/core/ui/ProgressBar.stories.tsx @@ -6,7 +6,12 @@ const meta: Meta = { component: ProgressBar, tags: ["autodocs"], parameters: { layout: "padded" }, - args: { value: 0.5, height: 6, thresholded: false }, + args: { + value: 0.5, + height: 6, + thresholded: false, + label: "Docs processed", + }, argTypes: { value: { control: { type: "range", min: 0, max: 1, step: 0.01 } }, height: { control: { type: "number" } }, @@ -42,7 +47,7 @@ export const ThresholdLadder: Story = { {Math.round(v * 100)}% - +
))}
diff --git a/frontend/editor/src/core/ui/ProgressBar.tsx b/frontend/editor/src/core/ui/ProgressBar.tsx index e6ca30c0e1..cb11a2982a 100644 --- a/frontend/editor/src/core/ui/ProgressBar.tsx +++ b/frontend/editor/src/core/ui/ProgressBar.tsx @@ -10,8 +10,9 @@ export interface ProgressBarProps { /** Optional override colour (CSS gradient or solid). Disables threshold behaviour. */ color?: string; className?: string; - /** Accessible label for screen readers. */ - label?: string; + /** Accessible name — describe what is being measured ("Storage used"), since + * the bar carries no visible text of its own. */ + label: string; } function clamp01(n: number) { diff --git a/frontend/editor/src/core/ui/Select.tsx b/frontend/editor/src/core/ui/Select.tsx index 242ddf9740..c4861a7752 100644 --- a/frontend/editor/src/core/ui/Select.tsx +++ b/frontend/editor/src/core/ui/Select.tsx @@ -46,6 +46,7 @@ export interface SelectProps { id?: string; name?: string; "aria-label"?: string; + "aria-labelledby"?: string; "aria-invalid"?: boolean; "aria-describedby"?: string; required?: boolean; @@ -74,6 +75,7 @@ type PassthroughProps = Omit< | "id" | "name" | "aria-label" + | "aria-labelledby" | "aria-describedby" | "required" | "disabled" @@ -106,6 +108,7 @@ export function Select({ id, name, "aria-label": ariaLabel, + "aria-labelledby": ariaLabelledBy, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, required, @@ -128,6 +131,7 @@ export function Select({ id, name, "aria-label": ariaLabel, + "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, required, disabled, diff --git a/frontend/editor/src/core/ui/SettingsRow.tsx b/frontend/editor/src/core/ui/SettingsRow.tsx index 65f48cddc8..8dbf9600ab 100644 --- a/frontend/editor/src/core/ui/SettingsRow.tsx +++ b/frontend/editor/src/core/ui/SettingsRow.tsx @@ -1,4 +1,4 @@ -import type { ReactNode } from "react"; +import { cloneElement, isValidElement, useId, type ReactNode } from "react"; import "@app/ui/SettingsRow.css"; export interface SettingsRowProps { @@ -23,17 +23,31 @@ export function SettingsRow({ control, className, }: SettingsRowProps) { + const labelId = useId(); + // The row's label is plain text beside the control, not a
{isLoading ? (
diff --git a/frontend/editor/src/portal/components/account-link/LinkedInstancesTable.tsx b/frontend/editor/src/portal/components/account-link/LinkedInstancesTable.tsx index daa066bd70..921de50853 100644 --- a/frontend/editor/src/portal/components/account-link/LinkedInstancesTable.tsx +++ b/frontend/editor/src/portal/components/account-link/LinkedInstancesTable.tsx @@ -93,7 +93,11 @@ export function LinkedInstancesTable({ }, { key: "actions", - header: "", + header: ( + + {t("portal.accountLink.instances.columns.actions", "Actions")} + + ), align: "right", render: (i) => i.revoked ? null : ( diff --git a/frontend/editor/src/portal/components/billing/PrepaidCapacityCard.tsx b/frontend/editor/src/portal/components/billing/PrepaidCapacityCard.tsx index b70fbb5a26..c7ab0e8704 100644 --- a/frontend/editor/src/portal/components/billing/PrepaidCapacityCard.tsx +++ b/frontend/editor/src/portal/components/billing/PrepaidCapacityCard.tsx @@ -72,6 +72,7 @@ export function PrepaidCapacityCard({ 1
-

{t("portal.docs.quickstart.step1.title")}

+

{t("portal.docs.quickstart.step1.title")}

{t("portal.docs.quickstart.step1.body")}

2
-

{t("portal.docs.quickstart.step2.title")}

+

{t("portal.docs.quickstart.step2.title")}

{t("portal.docs.quickstart.step2.body")}

3
-

{t("portal.docs.quickstart.step3.title")}

+

{t("portal.docs.quickstart.step3.title")}

{t("portal.docs.quickstart.step3.body")}

{playbooks.map((p) => ( -

{p.title}

+

{p.title}

{p.blurb}

{p.steps.map((step, i) => ( diff --git a/frontend/editor/src/portal/components/docs/SdksSection.tsx b/frontend/editor/src/portal/components/docs/SdksSection.tsx index 1a0e72933e..331117af68 100644 --- a/frontend/editor/src/portal/components/docs/SdksSection.tsx +++ b/frontend/editor/src/portal/components/docs/SdksSection.tsx @@ -32,7 +32,7 @@ export function SdksSection({ sdks }: { sdks: Sdk[] }) { {sdk.icon} -

{sdk.name}

+

{sdk.name}

{badge && ( {t(badge.labelKey)} diff --git a/frontend/editor/src/portal/components/docs/SkillsSection.tsx b/frontend/editor/src/portal/components/docs/SkillsSection.tsx index ef34705c43..e373fc25c3 100644 --- a/frontend/editor/src/portal/components/docs/SkillsSection.tsx +++ b/frontend/editor/src/portal/components/docs/SkillsSection.tsx @@ -19,7 +19,7 @@ export function SkillsSection({ skills }: { skills: AgentSkill[] }) { -

{s.name}

+

{s.name}

{s.blurb}

{s.ops} diff --git a/frontend/editor/src/portal/components/infrastructure/DeploymentsTab.tsx b/frontend/editor/src/portal/components/infrastructure/DeploymentsTab.tsx index 8e96e4d997..41a9b5c561 100644 --- a/frontend/editor/src/portal/components/infrastructure/DeploymentsTab.tsx +++ b/frontend/editor/src/portal/components/infrastructure/DeploymentsTab.tsx @@ -65,7 +65,14 @@ export function DeploymentsTab() { width: "9rem", render: (r) => (
- + {pct(r.load)}
), diff --git a/frontend/editor/src/portal/components/infrastructure/ModelsTab.tsx b/frontend/editor/src/portal/components/infrastructure/ModelsTab.tsx index 6d097b33af..505f41ac24 100644 --- a/frontend/editor/src/portal/components/infrastructure/ModelsTab.tsx +++ b/frontend/editor/src/portal/components/infrastructure/ModelsTab.tsx @@ -77,7 +77,12 @@ export function ModelsTab() { width: "9rem", render: (m) => (
- + {pct(m.load)}
), diff --git a/frontend/editor/src/portal/components/procurement/ProcurementAgreement.tsx b/frontend/editor/src/portal/components/procurement/ProcurementAgreement.tsx index 318f23aca5..7aee96c822 100644 --- a/frontend/editor/src/portal/components/procurement/ProcurementAgreement.tsx +++ b/frontend/editor/src/portal/components/procurement/ProcurementAgreement.tsx @@ -144,10 +144,15 @@ export function ProcurementAgreement({ {/* The tray scrolls, not the paper. The paper is its natural height inside it, so mid-document it runs flush to the footer with no grey beneath, and the tray's bottom padding only comes into view once the buyer reaches the end — the page ending is what shows they got there. */} + {/* Focusable and named: signing is gated on scrolling to the end, so the + tray has to be scrollable by keyboard as well as pointer. */}
{loading &&

{t("portal.procurement.agreement.loading")}

} diff --git a/frontend/editor/src/portal/components/users/ResetPasswordModal.tsx b/frontend/editor/src/portal/components/users/ResetPasswordModal.tsx index d1cfe9e739..48b32d4398 100644 --- a/frontend/editor/src/portal/components/users/ResetPasswordModal.tsx +++ b/frontend/editor/src/portal/components/users/ResetPasswordModal.tsx @@ -140,7 +140,13 @@ export function ResetPasswordModal({ } >
- + {/* FormField's label wires up to the row wrapper, not this + input, so name the input directly. */} + - +
@@ -131,9 +134,9 @@ export function DeveloperDocs() {
{hasToc && ( - +
)}
); diff --git a/frontend/editor/src/portal/views/EditorAdmin.css b/frontend/editor/src/portal/views/EditorAdmin.css index 1ccd0d63b1..34aa81d69f 100644 --- a/frontend/editor/src/portal/views/EditorAdmin.css +++ b/frontend/editor/src/portal/views/EditorAdmin.css @@ -96,11 +96,11 @@ } .portal-editor__target-icon--blue { background: var(--c-primary-tint); - color: var(--c-primary); + color: var(--c-accent-text); } .portal-editor__target-icon--purple { background: var(--color-purple-light); - color: var(--color-purple); + color: var(--color-purple-dark); } .portal-editor__target-titles { @@ -192,15 +192,15 @@ .portal-editor__pairing-icon--blue { background: color-mix(in srgb, var(--c-primary) 12%, var(--c-surface)); - color: var(--c-primary); + color: var(--c-accent-text); } .portal-editor__pairing-icon--purple { background: var(--color-purple-light); - color: var(--color-purple); + color: var(--color-purple-dark); } .portal-editor__pairing-icon--green { background: var(--color-green-light); - color: var(--color-green); + color: var(--color-green-dark); } .portal-editor__pairing-titles { @@ -331,7 +331,7 @@ padding: 0.125rem 0.4375rem; border-radius: var(--radius-sm); background: var(--color-purple-light); - color: var(--color-purple); + color: var(--color-purple-dark); } .portal-editor__token-row { diff --git a/frontend/editor/src/portal/views/Home.css b/frontend/editor/src/portal/views/Home.css index 732bd617a5..236966c2fc 100644 --- a/frontend/editor/src/portal/views/Home.css +++ b/frontend/editor/src/portal/views/Home.css @@ -129,5 +129,5 @@ } .portal-home__quick-row:hover .portal-home__quick-arrow { - color: var(--c-primary); + color: var(--c-accent-text); } diff --git a/frontend/editor/src/portal/views/Infrastructure.css b/frontend/editor/src/portal/views/Infrastructure.css index cd532daeeb..660bd4a69f 100644 --- a/frontend/editor/src/portal/views/Infrastructure.css +++ b/frontend/editor/src/portal/views/Infrastructure.css @@ -113,7 +113,7 @@ .portal-infra__export-error { margin: 0; font-size: 0.8125rem; - color: var(--c-danger); + color: var(--color-red-dark); } .portal-infra__export-actions { @@ -373,7 +373,7 @@ .portal-infra__attestation-link { font-size: 0.75rem; font-weight: 600; - color: var(--c-primary); + color: var(--c-accent-text); text-decoration: none; } @@ -429,7 +429,7 @@ height: 1.75rem; border-radius: var(--radius-md); background: var(--c-primary-tint); - color: var(--c-primary); + color: var(--c-accent-text); font-size: 0.875rem; } diff --git a/frontend/editor/src/portal/views/Integrations.css b/frontend/editor/src/portal/views/Integrations.css index 9d90d70b13..d006fcbb84 100644 --- a/frontend/editor/src/portal/views/Integrations.css +++ b/frontend/editor/src/portal/views/Integrations.css @@ -66,7 +66,7 @@ .portal-integrations__filter.is-active { background: var(--c-primary-tint); - color: var(--c-primary); + color: var(--c-accent-text); } .portal-integrations__filter-count { @@ -243,7 +243,7 @@ button.portal-integrations__row[aria-expanded="true"] { gap: 0.375rem; font-size: 0.8125rem; font-weight: 500; - color: var(--c-success); + color: var(--color-green-dark); } .portal-integrations__status-dot { diff --git a/frontend/editor/src/portal/views/Pipelines.css b/frontend/editor/src/portal/views/Pipelines.css index 6fac70672e..f4bc729b4d 100644 --- a/frontend/editor/src/portal/views/Pipelines.css +++ b/frontend/editor/src/portal/views/Pipelines.css @@ -62,7 +62,7 @@ border-radius: var(--radius-md); font-size: 0.875rem; background: var(--c-primary-tint); - color: var(--c-primary); + color: var(--c-accent-text); } .portal-pipelines__muted { @@ -79,7 +79,7 @@ .portal-pipelines__caret.is-open { transform: rotate(90deg); - color: var(--c-primary); + color: var(--c-accent-text); } /* Table skeleton */ diff --git a/frontend/editor/src/portal/views/Policies.css b/frontend/editor/src/portal/views/Policies.css index e1a821ee27..fedcbbf835 100644 --- a/frontend/editor/src/portal/views/Policies.css +++ b/frontend/editor/src/portal/views/Policies.css @@ -56,7 +56,7 @@ .portal-policies__setup-link { font-size: 0.8125rem; font-weight: 600; - color: var(--c-primary); + color: var(--c-accent-text); text-decoration: underline; text-underline-offset: 2px; } @@ -70,7 +70,10 @@ } .portal-policies__card--locked { - opacity: 0.7; + /* Recede via surface and ink rather than opacity, which would fade the + card's own text below the contrast floor. */ + background: var(--c-surface-sunken); + color: var(--c-text-muted); } .portal-policies__card-identity { @@ -165,7 +168,7 @@ .portal-policies__card-cta { font-size: 0.75rem; font-weight: 600; - color: var(--c-primary); + color: var(--c-accent-text); } .portal-policies__chevron-right { @@ -297,7 +300,7 @@ padding: 0; font-size: 0.75rem; font-weight: 600; - color: var(--c-primary); + color: var(--c-accent-text); cursor: pointer; } @@ -378,13 +381,13 @@ } .portal-policies__activity-icon--success { - color: var(--color-green); + color: var(--color-green-dark); } .portal-policies__activity-icon--warning { - color: var(--color-amber); + color: var(--color-amber-dark); } .portal-policies__activity-icon--info { - color: var(--c-primary); + color: var(--c-accent-text); } @keyframes portal-policies-spin { diff --git a/frontend/editor/src/portal/views/Procurement.css b/frontend/editor/src/portal/views/Procurement.css index b721768952..556fff726a 100644 --- a/frontend/editor/src/portal/views/Procurement.css +++ b/frontend/editor/src/portal/views/Procurement.css @@ -89,7 +89,7 @@ color: var(--c-text); } .portal-qb__req { - color: var(--c-danger); + color: var(--color-red-dark); } .portal-qb__field[data-invalid] input, .portal-qb__field[data-invalid] select { @@ -98,7 +98,7 @@ .portal-qb__error { margin: 10px 0 0; font-size: 12px; - color: var(--c-danger); + color: var(--color-red-dark); } .portal-qb__row { display: flex; @@ -138,7 +138,7 @@ .portal-qb__discount { margin: 6px 0 0; font-size: 11.5px; - color: var(--c-success); + color: var(--color-green-dark); } .portal-qb__opts { display: flex; @@ -179,7 +179,7 @@ color: var(--c-text); } .portal-qb__opt[data-on] .portal-qb__opt-title { - color: var(--c-primary); + color: var(--c-accent-text); } .portal-qb__opt-sub { font-size: 11.5px; @@ -342,7 +342,7 @@ color: var(--c-text); } .portal-qb__lines li[data-kind="DISCOUNT"] { - color: var(--c-success); + color: var(--color-green-dark); } .portal-qb__lines li[data-kind="INCLUDED"] span:last-child { color: var(--c-text-subtle); @@ -516,7 +516,7 @@ align-items: center; justify-content: center; /* Holds a CheckIcon, which takes its stroke from `color` and its size from its own prop. */ - color: var(--c-success); + color: var(--color-green-dark); background: var(--c-success-subtle); } .portal-hero__live-text { @@ -897,7 +897,7 @@ margin-top: 0.75rem; } .portal-proc__error { - color: var(--c-danger); + color: var(--color-red-dark); font-size: 0.8125rem; margin: 0.5rem 0 0; } diff --git a/frontend/editor/src/portal/views/Sources.css b/frontend/editor/src/portal/views/Sources.css index 132c137c89..bb39eae86c 100644 --- a/frontend/editor/src/portal/views/Sources.css +++ b/frontend/editor/src/portal/views/Sources.css @@ -86,7 +86,7 @@ .portal-sources__caret.is-open { transform: rotate(90deg); - color: var(--c-primary); + color: var(--c-accent-text); } /* Expanded detail panel */ @@ -226,7 +226,7 @@ display: block; width: 100%; margin-top: 0.5rem; - color: var(--c-primary); + color: var(--c-accent-text); } .portal-sources__chips { @@ -414,7 +414,7 @@ } .portal-sources__type-card.is-selected .portal-sources__type-icon { - color: var(--c-primary); + color: var(--c-accent-text); } .portal-sources__type-icon .portal-sources__type-svg { diff --git a/frontend/editor/src/portal/views/Users.css b/frontend/editor/src/portal/views/Users.css index 75591cc8d8..ae11d3b88d 100644 --- a/frontend/editor/src/portal/views/Users.css +++ b/frontend/editor/src/portal/views/Users.css @@ -265,7 +265,7 @@ padding: 0.5rem 0.75rem; border-radius: 8px; background: color-mix(in srgb, var(--c-danger) 12%, transparent); - color: var(--c-danger); + color: var(--color-red-dark); font-size: 0.85rem; } @@ -279,7 +279,7 @@ } .portal-users__link { - color: var(--c-primary); + color: var(--c-accent-text); text-decoration: none; } .portal-users__link:hover { @@ -337,7 +337,7 @@ background: none; border: none; cursor: pointer; - color: var(--c-primary); + color: var(--c-accent-text); font-size: 0.8rem; font-weight: 500; white-space: nowrap; @@ -492,7 +492,7 @@ background: none; border: none; border-top: 1px solid var(--c-border-subtle); - color: var(--c-primary); + color: var(--c-accent-text); font-size: 0.8rem; font-weight: 500; cursor: pointer; diff --git a/frontend/editor/src/proprietary/auth/ui/OAuthButtons.tsx b/frontend/editor/src/proprietary/auth/ui/OAuthButtons.tsx index 3644ed91bc..6ffb202cd3 100644 --- a/frontend/editor/src/proprietary/auth/ui/OAuthButtons.tsx +++ b/frontend/editor/src/proprietary/auth/ui/OAuthButtons.tsx @@ -24,6 +24,8 @@ export const oauthProviderConfig: Record< }; // Icon URLs + GENERIC_PROVIDER_ICON come from the shared oauthIcons resolver. +// Every provider icon is decorative (alt=""): the button it sits in already +// names the provider, so alt text would only repeat that name. interface OAuthButtonsProps { onProviderClick: (provider: OAuthProvider) => void; @@ -116,7 +118,7 @@ export default function OAuthButtons({ > {p.label} @@ -142,7 +144,7 @@ export default function OAuthButtons({ > {p.label} @@ -169,7 +171,7 @@ export default function OAuthButtons({ {p.label} @@ -210,7 +212,7 @@ export default function OAuthButtons({ {p.label} diff --git a/frontend/editor/src/proprietary/billing/MeterBar.tsx b/frontend/editor/src/proprietary/billing/MeterBar.tsx index ee03d62885..5049b91294 100644 --- a/frontend/editor/src/proprietary/billing/MeterBar.tsx +++ b/frontend/editor/src/proprietary/billing/MeterBar.tsx @@ -23,6 +23,8 @@ interface MeterBarProps { meta?: ReactNode; /** Hide the fill bar (e.g. uncapped). Shown by default. */ showBar?: boolean; + /** Accessible name for the fill bar — what the meter measures ("Spend limit"). */ + barLabel: string; } /** @@ -40,6 +42,7 @@ export function MeterBar({ statusLabel, meta, showBar = true, + barLabel, }: MeterBarProps) { return (
@@ -61,6 +64,7 @@ export function MeterBar({ aria-valuenow={Math.round(pct)} aria-valuemin={0} aria-valuemax={100} + aria-label={barLabel} >
, because only Modal.Content lands + // props on the role="dialog" element — the modal draws its own heading, so + // the dialog needs an aria-label to have an accessible name. + -
- - - - - - - - {t("workspace.people.changePassword.title", "Change password")} - - - {t( - "workspace.people.changePassword.subtitle", - "Update the password for", - )}{" "} - {user?.username} - - + + + +
+ + + + + + + + {t( + "workspace.people.changePassword.title", + "Change password", + )} + + + {t( + "workspace.people.changePassword.subtitle", + "Update the password for", + )}{" "} + {user?.username} + + - - - setForm({ - ...form, - newPassword: event.currentTarget.value, - generateRandom: false, - }) - } - disabled={processing || disabled || form.generateRandom} - data-autofocus - /> - - setForm({ - ...form, - confirmPassword: event.currentTarget.value, - generateRandom: false, - }) - } - disabled={processing || disabled || form.generateRandom} - error={ - !form.generateRandom && - form.confirmPassword && - form.newPassword !== form.confirmPassword - ? t( - "workspace.people.changePassword.passwordMismatch", - "Passwords do not match", - ) - : undefined - } - /> - - { - const checked = event.currentTarget.checked; - setForm((prev) => ({ ...prev, generateRandom: checked })); - if (event.currentTarget.checked) { - handleGeneratePassword(); + + + setForm({ + ...form, + newPassword: event.currentTarget.value, + generateRandom: false, + }) } - }} - /> - {passwordPreview && ( - + disabled={processing || disabled || form.generateRandom} + data-autofocus + /> + + setForm({ + ...form, + confirmPassword: event.currentTarget.value, + generateRandom: false, + }) + } + disabled={processing || disabled || form.generateRandom} + error={ + !form.generateRandom && + form.confirmPassword && + form.newPassword !== form.confirmPassword + ? t( + "workspace.people.changePassword.passwordMismatch", + "Passwords do not match", + ) + : undefined + } + /> + + { + const checked = event.currentTarget.checked; + setForm((prev) => ({ ...prev, generateRandom: checked })); + if (event.currentTarget.checked) { + handleGeneratePassword(); + } + }} + /> + {passwordPreview && ( + + + {t( + "workspace.people.changePassword.generatedPreview", + "Generated password:", + )}{" "} + {passwordPreview} + + + + + + + + )} + + + + + + setForm({ ...form, sendEmail: event.currentTarget.checked }) + } + disabled={!canEmail || processing} + /> + + setForm({ + ...form, + includePassword: event.currentTarget.checked, + }) + } + disabled={!canEmail || !form.sendEmail || processing} + /> + + setForm({ + ...form, + forcePasswordChange: event.currentTarget.checked, + }) + } + disabled={processing || disabled} + /> + {!canEmail && ( + + {mailEnabled + ? t( + "workspace.people.changePassword.emailUnavailable", + "This user's email is not a valid email address. Notifications are disabled.", + ) + : t( + "workspace.people.changePassword.smtpDisabled", + "Email notifications require SMTP to be enabled in settings.", + )} + + )} + {canEmail && !form.includePassword && form.sendEmail && ( {t( - "workspace.people.changePassword.generatedPreview", - "Generated password:", - )}{" "} - {passwordPreview} + "workspace.people.changePassword.notifyOnly", + "An email will be sent without the password, letting the user know an admin changed it.", + )} - - - - - - - )} - - - - - - setForm({ ...form, sendEmail: event.currentTarget.checked }) - } - disabled={!canEmail || processing} - /> - - setForm({ - ...form, - includePassword: event.currentTarget.checked, - }) - } - disabled={!canEmail || !form.sendEmail || processing} - /> - - setForm({ - ...form, - forcePasswordChange: event.currentTarget.checked, - }) - } - disabled={processing || disabled} - /> - {!canEmail && ( - - {mailEnabled - ? t( - "workspace.people.changePassword.emailUnavailable", - "This user's email is not a valid email address. Notifications are disabled.", - ) - : t( - "workspace.people.changePassword.smtpDisabled", - "Email notifications require SMTP to be enabled in settings.", - )} - - )} - {canEmail && !form.includePassword && form.sendEmail && ( - - {t( - "workspace.people.changePassword.notifyOnly", - "An email will be sent without the password, letting the user know an admin changed it.", )} - - )} - + - - -
- + +
+
+ + +
); } diff --git a/frontend/editor/src/proprietary/components/shared/config/configSections/AccountSection.tsx b/frontend/editor/src/proprietary/components/shared/config/configSections/AccountSection.tsx index 7212169e6e..4f132eb399 100644 --- a/frontend/editor/src/proprietary/components/shared/config/configSections/AccountSection.tsx +++ b/frontend/editor/src/proprietary/components/shared/config/configSections/AccountSection.tsx @@ -604,7 +604,7 @@ const AccountSection: React.FC = () => { {t("account.mfa.manualKey", "Manual setup key")}:{" "} {mfaSetupData.secret} - + {t( "account.mfa.secretWarning", "Keep this key private. Anyone with access can generate valid authentication codes.", diff --git a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx index 2ad95525a1..f788551551 100644 --- a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx +++ b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx @@ -658,7 +658,7 @@ export default function AdminConnectionsSection() { href="https://docs.stirlingpdf.com/Functionality/Mobile-Scanner" target="_blank" size="xs" - c="blue" + c="var(--c-accent-text)" > {t( "admin.settings.connections.documentation", @@ -687,7 +687,7 @@ export default function AdminConnectionsSection() { "Allow users to upload files from mobile devices by scanning a QR code", )} - + {t( "admin.settings.connections.mobileScanner.note", "Note: Requires Frontend URL to be configured. ", @@ -698,7 +698,7 @@ export default function AdminConnectionsSection() { e.preventDefault(); navigate("/settings/adminGeneral#frontendUrl"); }} - c="orange" + c="var(--color-amber-dark)" td="underline" > {t( diff --git a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminMailSection.tsx b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminMailSection.tsx index c8df9eaea3..c62125be3f 100644 --- a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminMailSection.tsx +++ b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminMailSection.tsx @@ -168,7 +168,7 @@ export default function AdminMailSection() { "Allow admins to invite users via email with auto-generated passwords", )} - + {t( "admin.settings.mail.frontendUrlNote.note", "Note: Requires Frontend URL to be configured. ", @@ -179,7 +179,7 @@ export default function AdminMailSection() { e.preventDefault(); navigate("/settings/adminGeneral#frontendUrl"); }} - c="orange" + c="var(--color-amber-dark)" td="underline" > {t( diff --git a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminStorageSharingSection.tsx b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminStorageSharingSection.tsx index 6ab2a0fef8..dfaecac1fb 100644 --- a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminStorageSharingSection.tsx +++ b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminStorageSharingSection.tsx @@ -254,7 +254,7 @@ export default function AdminStorageSharingSection() { )} {!frontendUrlConfigured && ( - + {t( "admin.settings.storage.sharing.links.frontendUrlNote", "Requires a Frontend URL. ", @@ -265,7 +265,7 @@ export default function AdminStorageSharingSection() { e.preventDefault(); navigate("/settings/adminGeneral#frontendUrl"); }} - c="orange" + c="var(--color-amber-dark)" td="underline" > {t( @@ -317,7 +317,7 @@ export default function AdminStorageSharingSection() { )} {!mailEnabled && ( - + {t( "admin.settings.storage.sharing.email.mailNote", "Requires mail configuration. ", @@ -328,7 +328,7 @@ export default function AdminStorageSharingSection() { e.preventDefault(); navigate("/settings/adminConnections"); }} - c="orange" + c="var(--color-amber-dark)" td="underline" > {t( diff --git a/frontend/editor/src/proprietary/components/shared/config/configSections/LoginAgreementEditor.tsx b/frontend/editor/src/proprietary/components/shared/config/configSections/LoginAgreementEditor.tsx index 9af89dedad..23b879f974 100644 --- a/frontend/editor/src/proprietary/components/shared/config/configSections/LoginAgreementEditor.tsx +++ b/frontend/editor/src/proprietary/components/shared/config/configSections/LoginAgreementEditor.tsx @@ -269,7 +269,7 @@ export default function LoginAgreementEditor({ {loading && } {loadFailed && !loading && ( - + {t( "admin.settings.legal.loginAgreement.loadError", "Failed to load the agreement for {{locale}}. Switch language and back to retry.", diff --git a/frontend/editor/src/proprietary/components/shared/config/configSections/TeamDetailsSection.tsx b/frontend/editor/src/proprietary/components/shared/config/configSections/TeamDetailsSection.tsx index d3702e7f80..76ee65abe0 100644 --- a/frontend/editor/src/proprietary/components/shared/config/configSections/TeamDetailsSection.tsx +++ b/frontend/editor/src/proprietary/components/shared/config/configSections/TeamDetailsSection.tsx @@ -350,7 +350,7 @@ export default function TeamDetailsSection({ if (!team) { return ( - + {t("workspace.teams.teamNotFound", "Team not found")}
{currency && onCurrencyChange && currencyOptions && (