chrome-devtools-frontend 1.0.1579812 → 1.0.1581708
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agents/prompts/creating-a-model.md +51 -0
- package/agents/prompts/merging-devtools-module.md +144 -0
- package/agents/prompts/ui-widgets.md +351 -0
- package/agents/prompts/verification.md +2 -1
- package/docs/contributing/README.md +5 -6
- package/docs/contributing/changes.md +1 -2
- package/docs/feature-specs/elements-tree-edit-html.md +14 -0
- package/docs/feature-specs/elements-tree-node-title.md +46 -0
- package/docs/styleguide/ux/README.md +1 -1
- package/front_end/core/host/UserMetrics.ts +3 -7
- package/front_end/core/root/Runtime.ts +0 -1
- package/front_end/core/sdk/NetworkManager.ts +0 -35
- package/front_end/core/sdk/OverlayModel.ts +12 -0
- package/front_end/core/sdk/StorageKeyManager.ts +6 -1
- package/front_end/core/sdk/Target.ts +4 -2
- package/front_end/devtools_compatibility.js +4 -0
- package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -0
- package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +536 -0
- package/front_end/entrypoints/greendev_floaty/floaty.css +298 -0
- package/front_end/entrypoints/greendev_floaty/floaty.html +38 -0
- package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +422 -0
- package/front_end/entrypoints/inspector_main/InspectorMain.ts +0 -38
- package/front_end/entrypoints/node_app/app/NodeMain.ts +19 -1
- package/front_end/entrypoints/node_app/node_app.ts +34 -0
- package/front_end/generated/InspectorBackendCommands.ts +9 -3
- package/front_end/generated/SupportedCSSProperties.js +39 -31
- package/front_end/generated/protocol-mapping.d.ts +12 -0
- package/front_end/generated/protocol-proxy-api.d.ts +12 -0
- package/front_end/generated/protocol.ts +56 -2
- package/front_end/models/ai_assistance/AiConversation.ts +10 -0
- package/front_end/models/ai_assistance/agents/AiAgent.ts +2 -0
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.snapshot.txt +24 -2
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +104 -9
- package/front_end/{panels/elements → models/computed_style}/ComputedStyleModel.ts +26 -0
- package/front_end/models/computed_style/computed_style.ts +9 -0
- package/front_end/models/issues_manager/CookieIssue.ts +0 -28
- package/front_end/models/issues_manager/CorsIssue.ts +11 -14
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +3 -5
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +102 -6
- package/front_end/panels/ai_assistance/components/ChatInput.ts +15 -2
- package/front_end/panels/ai_assistance/components/ChatView.ts +2 -0
- package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
- package/front_end/panels/application/ApplicationPanelSidebar.ts +13 -11
- package/front_end/panels/application/DOMStorageModel.ts +1 -1
- package/front_end/panels/application/ResourcesPanel.ts +10 -5
- package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +0 -1
- package/front_end/panels/application/components/BackForwardCacheView.ts +2 -4
- package/front_end/panels/autofill/AutofillView.ts +1 -1
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +0 -1
- package/front_end/panels/changes/changesSidebar.css +5 -0
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +13 -3
- package/front_end/panels/common/ExtensionPanel.ts +4 -0
- package/front_end/panels/common/FreDialog.ts +4 -0
- package/front_end/panels/common/aiCodeCompletionTeaser.css +6 -0
- package/front_end/panels/console/ConsoleViewMessage.ts +0 -1
- package/front_end/panels/console_counters/WarningErrorCounter.ts +16 -10
- package/front_end/panels/coverage/CoverageListView.ts +18 -3
- package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +11 -0
- package/front_end/panels/elements/ComputedStyleWidget.ts +67 -45
- package/front_end/panels/elements/ElementsPanel.ts +4 -3
- package/front_end/panels/elements/ElementsSidebarPane.ts +11 -8
- package/front_end/panels/elements/ElementsTreeElement.ts +0 -1
- package/front_end/panels/elements/ElementsTreeOutline.ts +25 -15
- package/front_end/panels/elements/LayoutPane.ts +7 -8
- package/front_end/panels/elements/MetricsSidebarPane.ts +2 -2
- package/front_end/panels/elements/PlatformFontsWidget.ts +24 -9
- package/front_end/panels/elements/PropertiesWidget.ts +3 -6
- package/front_end/panels/elements/StylesSidebarPane.ts +4 -3
- package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +1 -1
- package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -2
- package/front_end/panels/elements/elements.ts +1 -3
- package/front_end/panels/greendev/GreenDevPanel.css +282 -0
- package/front_end/panels/greendev/GreenDevPanel.ts +337 -0
- package/front_end/panels/greendev/GreenDevShared.ts +13 -0
- package/front_end/panels/greendev/greendev-meta.ts +52 -0
- package/front_end/panels/greendev/greendev.ts +9 -0
- package/front_end/panels/issues/CorsIssueDetailsView.ts +4 -4
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +1 -1
- package/front_end/panels/media/PlayerListView.ts +1 -1
- package/front_end/panels/network/NetworkLogViewColumns.ts +1 -2
- package/front_end/panels/network/RequestInitiatorView.ts +8 -11
- package/front_end/panels/network/RequestTimingView.ts +1 -1
- package/front_end/panels/network/components/RequestHeaderSection.ts +1 -1
- package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
- package/front_end/panels/recorder/components/RecordingListView.ts +1 -1
- package/front_end/panels/recorder/components/StepEditor.ts +3 -3
- package/front_end/panels/security/SecurityPanel.ts +0 -4
- package/front_end/panels/security/SecurityPanelSidebar.ts +2 -42
- package/front_end/panels/security/security-meta.ts +2 -14
- package/front_end/panels/security/security.ts +0 -4
- package/front_end/panels/settings/KeybindsSettingsTab.ts +5 -5
- package/front_end/panels/sources/OutlineQuickOpen.ts +19 -0
- package/front_end/panels/sources/SourcesSearchScope.ts +2 -1
- package/front_end/panels/sources/components/HeadersView.ts +2 -2
- package/front_end/panels/timeline/TimelinePanel.ts +25 -0
- package/front_end/panels/timeline/components/BreadcrumbsUI.ts +1 -1
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +1 -1
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/lighthouse/README.chromium +2 -2
- package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +145 -144
- package/front_end/third_party/lighthouse/report/bundle.js +12 -5
- package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +2 -2
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +35 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js +19 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts +16 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +21 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js +6 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts +13 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js +56 -36
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +32 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +32 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +20 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +25 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js +23 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +10 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts +29 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +46 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +18 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +13 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +7 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +43 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts +10 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js +34 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/XPathQuerySelector.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/XPathQuerySelector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +129 -3
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +233 -65
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +35 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js +19 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts +16 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +21 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js +6 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts +13 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js +56 -36
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +30 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +32 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +20 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +25 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js +23 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +10 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts +29 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +46 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +19 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +14 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/JSHandle.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +7 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +43 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts +10 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js +31 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/XPathQuerySelector.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/XPathQuerySelector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +129 -3
- package/front_end/third_party/puppeteer/package/package.json +4 -4
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +46 -0
- package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +21 -0
- package/front_end/third_party/puppeteer/package/src/api/Frame.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +23 -0
- package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +88 -56
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +33 -8
- package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +61 -3
- package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +23 -2
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +29 -8
- package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +30 -0
- package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +13 -2
- package/front_end/third_party/puppeteer/package/src/bidi/core/UserContext.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +85 -8
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +36 -1
- package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +23 -2
- package/front_end/third_party/puppeteer/package/src/cdp/JSHandle.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +60 -8
- package/front_end/third_party/puppeteer/package/src/cdp/utils.ts +36 -3
- package/front_end/third_party/puppeteer/package/src/common/Cookie.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/injected/XPathQuerySelector.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +4 -0
- package/front_end/third_party/puppeteer/package/src/node/PuppeteerNode.ts +8 -6
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/ui/components/suggestion_input/SuggestionInput.ts +12 -7
- package/front_end/ui/components/text_editor/AutocompleteHistory.ts +2 -1
- package/front_end/ui/components/text_editor/TextEditorHistory.ts +1 -1
- package/front_end/ui/components/tree_outline/TreeOutline.ts +1 -1
- package/front_end/ui/legacy/ListControl.ts +27 -1
- package/front_end/ui/legacy/ListWidget.ts +1 -1
- package/front_end/ui/legacy/SearchableView.ts +5 -2
- package/front_end/ui/legacy/SoftContextMenu.ts +1 -2
- package/front_end/ui/legacy/Treeoutline.ts +1 -2
- package/front_end/ui/legacy/UIUtils.ts +17 -7
- package/front_end/ui/legacy/Widget.ts +15 -0
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +8 -4
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +50 -1
- package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +2 -1
- package/front_end/ui/legacy/components/data_grid/data_grid.ts +1 -0
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -1
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +4 -2
- package/front_end/ui/visual_logging/KnownContextValues.ts +15 -0
- package/inspector_overlay/main.ts +18 -3
- package/inspector_overlay/tool_green_dev_anchors.css +54 -0
- package/inspector_overlay/tool_green_dev_anchors.ts +164 -0
- package/inspector_overlay/tool_persistent.ts +14 -0
- package/mcp/mcp.ts +1 -0
- package/package.json +1 -1
- package/docs/contributing/design.md +0 -166
- package/docs/design_guidelines.md +0 -1
- package/front_end/panels/security/CookieControlsTreeElement.ts +0 -21
- package/front_end/panels/security/CookieControlsView.ts +0 -447
- package/front_end/panels/security/CookieReportTreeElement.ts +0 -21
- package/front_end/panels/security/CookieReportView.ts +0 -549
- package/front_end/panels/security/cookieControlsView.css +0 -139
- package/front_end/panels/security/cookieReportView.css +0 -90
|
@@ -47,7 +47,7 @@ import * as UI from '../../ui/legacy/legacy.js';
|
|
|
47
47
|
import {html, nothing, render} from '../../ui/lit/lit.js';
|
|
48
48
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
49
49
|
|
|
50
|
-
import {AdoptedStyleSheetTreeElement} from './AdoptedStyleSheetTreeElement.js';
|
|
50
|
+
import {AdoptedStyleSheetSetTreeElement, AdoptedStyleSheetTreeElement} from './AdoptedStyleSheetTreeElement.js';
|
|
51
51
|
import {getElementIssueDetails} from './ElementIssueUtils.js';
|
|
52
52
|
import {ElementsPanel} from './ElementsPanel.js';
|
|
53
53
|
import {ElementsTreeElement, InitialChildrenLimit, isOpeningTag} from './ElementsTreeElement.js';
|
|
@@ -917,15 +917,21 @@ export class ElementsTreeOutline extends
|
|
|
917
917
|
}
|
|
918
918
|
|
|
919
919
|
highlightAdoptedStyleSheet(adoptedStyleSheet: SDK.DOMModel.AdoptedStyleSheet): void {
|
|
920
|
-
const
|
|
920
|
+
const parentDOMNode =
|
|
921
|
+
!this.includeRootDOMNode && adoptedStyleSheet.parent === this.rootDOMNode && this.rootDOMNode ?
|
|
921
922
|
this.rootElement() :
|
|
922
923
|
this.createTreeElementFor(adoptedStyleSheet.parent);
|
|
923
|
-
if (!
|
|
924
|
+
if (!parentDOMNode) {
|
|
925
|
+
return;
|
|
926
|
+
}
|
|
927
|
+
const parentNode = parentDOMNode.firstChild();
|
|
928
|
+
if (!(parentNode && parentNode instanceof AdoptedStyleSheetSetTreeElement)) {
|
|
924
929
|
return;
|
|
925
930
|
}
|
|
926
931
|
|
|
927
932
|
for (const child of parentNode.children()) {
|
|
928
933
|
if (child instanceof AdoptedStyleSheetTreeElement && child.adoptedStyleSheet === adoptedStyleSheet) {
|
|
934
|
+
parentNode.expand();
|
|
929
935
|
child.highlight();
|
|
930
936
|
return;
|
|
931
937
|
}
|
|
@@ -980,8 +986,8 @@ export class ElementsTreeOutline extends
|
|
|
980
986
|
this.dispatchEventToListeners(ElementsTreeOutline.Events.ElementsTreeUpdated, nodes);
|
|
981
987
|
}
|
|
982
988
|
|
|
983
|
-
findTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet): ElementsTreeElement|null {
|
|
984
|
-
if (node instanceof
|
|
989
|
+
findTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]): ElementsTreeElement|null {
|
|
990
|
+
if (node instanceof Array) {
|
|
985
991
|
return null;
|
|
986
992
|
}
|
|
987
993
|
let treeElement = this.lookUpTreeElement(node);
|
|
@@ -1768,10 +1774,10 @@ export class ElementsTreeOutline extends
|
|
|
1768
1774
|
}
|
|
1769
1775
|
}
|
|
1770
1776
|
|
|
1771
|
-
private createElementTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet, isClosingTag?: boolean):
|
|
1777
|
+
private createElementTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[], isClosingTag?: boolean):
|
|
1772
1778
|
UI.TreeOutline.TreeElement {
|
|
1773
|
-
if (node instanceof
|
|
1774
|
-
return new
|
|
1779
|
+
if (node instanceof Array) {
|
|
1780
|
+
return new AdoptedStyleSheetSetTreeElement(node);
|
|
1775
1781
|
}
|
|
1776
1782
|
const treeElement = new ElementsTreeElement(node, isClosingTag);
|
|
1777
1783
|
treeElement.setExpandable(!isClosingTag && this.hasVisibleChildren(node));
|
|
@@ -1800,8 +1806,12 @@ export class ElementsTreeOutline extends
|
|
|
1800
1806
|
return treeElement.childAt(index) as ElementsTreeElement;
|
|
1801
1807
|
}
|
|
1802
1808
|
|
|
1803
|
-
private visibleChildren(node: SDK.DOMModel.DOMNode): Array<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet> {
|
|
1804
|
-
|
|
1809
|
+
private visibleChildren(node: SDK.DOMModel.DOMNode): Array<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]> {
|
|
1810
|
+
const visibleChildren: Array<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]> = [];
|
|
1811
|
+
if (node.adoptedStyleSheetsForNode.length) {
|
|
1812
|
+
visibleChildren.push(node.adoptedStyleSheetsForNode);
|
|
1813
|
+
}
|
|
1814
|
+
visibleChildren.push(...ElementsTreeElement.visibleShadowRoots(node));
|
|
1805
1815
|
|
|
1806
1816
|
const contentDocument = node.contentDocument();
|
|
1807
1817
|
if (contentDocument) {
|
|
@@ -1838,7 +1848,7 @@ export class ElementsTreeOutline extends
|
|
|
1838
1848
|
if (!this.showHTMLCommentsSetting.get()) {
|
|
1839
1849
|
children = children.filter(n => n.nodeType() !== Node.COMMENT_NODE);
|
|
1840
1850
|
}
|
|
1841
|
-
visibleChildren
|
|
1851
|
+
visibleChildren.push(...children);
|
|
1842
1852
|
}
|
|
1843
1853
|
|
|
1844
1854
|
const afterPseudoElement = node.afterPseudoElement();
|
|
@@ -1927,7 +1937,7 @@ export class ElementsTreeOutline extends
|
|
|
1927
1937
|
}
|
|
1928
1938
|
|
|
1929
1939
|
insertChildElement(
|
|
1930
|
-
treeElement: ElementsTreeElement|TopLayerContainer, child: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet,
|
|
1940
|
+
treeElement: ElementsTreeElement|TopLayerContainer, child: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[],
|
|
1931
1941
|
index: number, isClosingTag?: boolean): UI.TreeOutline.TreeElement {
|
|
1932
1942
|
const newElement = this.createElementTreeElement(child, isClosingTag);
|
|
1933
1943
|
treeElement.insertChild(newElement, index);
|
|
@@ -1957,12 +1967,12 @@ export class ElementsTreeOutline extends
|
|
|
1957
1967
|
|
|
1958
1968
|
const node = treeElement.node();
|
|
1959
1969
|
const visibleChildren = this.visibleChildren(node);
|
|
1960
|
-
const visibleChildrenSet = new Set<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet>(visibleChildren);
|
|
1970
|
+
const visibleChildrenSet = new Set<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]>(visibleChildren);
|
|
1961
1971
|
|
|
1962
1972
|
// Remove any tree elements that no longer have this node as their parent and save
|
|
1963
1973
|
// all existing elements that could be reused. This also removes closing tag element.
|
|
1964
|
-
const existingTreeElements =
|
|
1965
|
-
|
|
1974
|
+
const existingTreeElements = new Map<
|
|
1975
|
+
SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[], UI.TreeOutline.TreeElement&ElementsTreeElement>();
|
|
1966
1976
|
for (let i = treeElement.childCount() - 1; i >= 0; --i) {
|
|
1967
1977
|
const existingTreeElement = treeElement.childAt(i);
|
|
1968
1978
|
if (!(existingTreeElement instanceof ElementsTreeElement)) {
|
|
@@ -228,27 +228,26 @@ const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
228
228
|
event.preventDefault();
|
|
229
229
|
}
|
|
230
230
|
};
|
|
231
|
-
// clang-format off
|
|
232
231
|
const renderElement = (element: LayoutElement): Lit.LitTemplate => html`<div
|
|
233
232
|
class="element"
|
|
234
|
-
jslog=${VisualLogging.item()
|
|
233
|
+
jslog=${VisualLogging.item()}>
|
|
235
234
|
<devtools-checkbox
|
|
236
235
|
data-element="true"
|
|
237
236
|
class="checkbox-label"
|
|
238
237
|
.checked=${element.enabled}
|
|
239
238
|
@change=${(e: Event) => input.onElementToggle(element, e)}
|
|
240
|
-
jslog=${VisualLogging.toggle().track({
|
|
239
|
+
jslog=${VisualLogging.toggle().track({
|
|
240
|
+
click: true
|
|
241
|
+
})}>
|
|
241
242
|
<span
|
|
242
243
|
class="node-text-container"
|
|
243
244
|
data-label="true"
|
|
244
245
|
@mouseenter=${(e: MouseEvent) => input.onMouseEnter(element, e)}
|
|
245
246
|
@mouseleave=${(e: MouseEvent) => input.onMouseLeave(element, e)}>
|
|
246
247
|
<devtools-node-text .data=${{
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
}}>
|
|
251
|
-
</devtools-node-text>
|
|
248
|
+
nodeId: element.domId, nodeTitle: element.name, nodeClasses: element.domClasses,
|
|
249
|
+
}
|
|
250
|
+
}></devtools-node-text>
|
|
252
251
|
</span>
|
|
253
252
|
</devtools-checkbox>
|
|
254
253
|
<label
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
import * as Common from '../../core/common/common.js';
|
|
34
34
|
import * as Platform from '../../core/platform/platform.js';
|
|
35
35
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
36
|
+
import type * as ComputedStyle from '../../models/computed_style/computed_style.js';
|
|
36
37
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
37
38
|
import {Directives, html, type LitTemplate, nothing, render} from '../../ui/lit/lit.js';
|
|
38
39
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
39
40
|
|
|
40
|
-
import type {ComputedStyleModel} from './ComputedStyleModel.js';
|
|
41
41
|
import {ElementsSidebarPane} from './ElementsSidebarPane.js';
|
|
42
42
|
import metricsSidebarPaneStyles from './metricsSidebarPane.css.js';
|
|
43
43
|
|
|
@@ -190,7 +190,7 @@ export class MetricsSidebarPane extends ElementsSidebarPane {
|
|
|
190
190
|
private isEditingMetrics?: boolean;
|
|
191
191
|
private view: View;
|
|
192
192
|
|
|
193
|
-
constructor(computedStyleModel: ComputedStyleModel, view = DEFAULT_VIEW) {
|
|
193
|
+
constructor(computedStyleModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel, view = DEFAULT_VIEW) {
|
|
194
194
|
super(computedStyleModel, {jslog: `${VisualLogging.pane('styles-metrics')}`});
|
|
195
195
|
this.registerRequiredCSS(metricsSidebarPaneStyles);
|
|
196
196
|
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
6
|
import type * as Protocol from '../../generated/protocol.js';
|
|
7
|
+
import * as ComputedStyle from '../../models/computed_style/computed_style.js';
|
|
7
8
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
8
9
|
import {html, render} from '../../ui/lit/lit.js';
|
|
9
10
|
|
|
10
|
-
import {type ComputedStyleModel, Events as ComputedStyleModelEvents} from './ComputedStyleModel.js';
|
|
11
11
|
import platformFontsWidgetStyles from './platformFontsWidget.css.js';
|
|
12
12
|
|
|
13
13
|
const UIStrings = {
|
|
@@ -78,22 +78,37 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
|
78
78
|
};
|
|
79
79
|
|
|
80
80
|
export class PlatformFontsWidget extends UI.Widget.VBox {
|
|
81
|
-
private readonly sharedModel: ComputedStyleModel;
|
|
82
81
|
readonly #view: View;
|
|
82
|
+
#sharedModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel|null = null;
|
|
83
83
|
|
|
84
|
-
constructor(
|
|
85
|
-
super({useShadowDom: true});
|
|
84
|
+
constructor(element?: HTMLElement, view: View = DEFAULT_VIEW) {
|
|
85
|
+
super(element, {useShadowDom: true});
|
|
86
86
|
this.#view = view;
|
|
87
87
|
this.registerRequiredCSS(platformFontsWidgetStyles);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
get sharedModel(): ComputedStyle.ComputedStyleModel.ComputedStyleModel|null {
|
|
91
|
+
return this.#sharedModel;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
set sharedModel(model: ComputedStyle.ComputedStyleModel.ComputedStyleModel) {
|
|
95
|
+
if (model !== this.sharedModel) {
|
|
96
|
+
this.sharedModel?.removeEventListener(
|
|
97
|
+
ComputedStyle.ComputedStyleModel.Events.CSS_MODEL_CHANGED, this.requestUpdate, this);
|
|
98
|
+
this.sharedModel?.removeEventListener(
|
|
99
|
+
ComputedStyle.ComputedStyleModel.Events.COMPUTED_STYLE_CHANGED, this.requestUpdate, this);
|
|
100
|
+
|
|
101
|
+
model.addEventListener(ComputedStyle.ComputedStyleModel.Events.CSS_MODEL_CHANGED, this.requestUpdate, this);
|
|
102
|
+
model.addEventListener(ComputedStyle.ComputedStyleModel.Events.COMPUTED_STYLE_CHANGED, this.requestUpdate, this);
|
|
103
|
+
}
|
|
88
104
|
|
|
89
|
-
this
|
|
90
|
-
|
|
91
|
-
this.sharedModel.addEventListener(ComputedStyleModelEvents.COMPUTED_STYLE_CHANGED, this.requestUpdate, this);
|
|
105
|
+
this.#sharedModel = model;
|
|
106
|
+
void this.requestUpdate();
|
|
92
107
|
}
|
|
93
108
|
|
|
94
109
|
override async performUpdate(): Promise<void> {
|
|
95
|
-
const cssModel = this
|
|
96
|
-
const node = this
|
|
110
|
+
const cssModel = this.#sharedModel?.cssModel();
|
|
111
|
+
const node = this.#sharedModel?.node;
|
|
97
112
|
if (!node || !cssModel) {
|
|
98
113
|
this.#view({platformFonts: null}, {}, this.contentElement);
|
|
99
114
|
return;
|
|
@@ -189,14 +189,11 @@ export class PropertiesWidget extends UI.Widget.VBox {
|
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
const treeElement = this.treeOutline.rootElement();
|
|
192
|
-
let {properties} = await SDK.RemoteObject.RemoteObject.loadFromObjectPerProto(object, true /* generatePreview */);
|
|
193
192
|
treeElement.removeChildren();
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
}
|
|
193
|
+
const root = new ObjectUI.ObjectPropertiesSection.ObjectTree(
|
|
194
|
+
object, ObjectUI.ObjectPropertiesSection.ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED);
|
|
197
195
|
ObjectUI.ObjectPropertiesSection.ObjectPropertyTreeElement.populateWithProperties(
|
|
198
|
-
treeElement,
|
|
199
|
-
true /* skipProto */, true /* skipGettersAndSetters */);
|
|
196
|
+
treeElement, await root.populateChildrenIfNeeded(), true /* skipProto */, true /* skipGettersAndSetters */);
|
|
200
197
|
this.internalFilterProperties();
|
|
201
198
|
}
|
|
202
199
|
this.#view(
|
|
@@ -43,6 +43,7 @@ import * as Root from '../../core/root/root.js';
|
|
|
43
43
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
44
44
|
import * as Protocol from '../../generated/protocol.js';
|
|
45
45
|
import * as Bindings from '../../models/bindings/bindings.js';
|
|
46
|
+
import type * as ComputedStyle from '../../models/computed_style/computed_style.js';
|
|
46
47
|
import * as TextUtils from '../../models/text_utils/text_utils.js';
|
|
47
48
|
import {createIcon, Icon} from '../../ui/kit/kit.js';
|
|
48
49
|
import * as InlineEditor from '../../ui/legacy/components/inline_editor/inline_editor.js';
|
|
@@ -52,7 +53,6 @@ import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
|
52
53
|
import * as PanelsCommon from '../common/common.js';
|
|
53
54
|
|
|
54
55
|
import * as ElementsComponents from './components/components.js';
|
|
55
|
-
import type {ComputedStyleModel, CSSModelChangedEvent} from './ComputedStyleModel.js';
|
|
56
56
|
import {ElementsPanel} from './ElementsPanel.js';
|
|
57
57
|
import {ElementsSidebarPane} from './ElementsSidebarPane.js';
|
|
58
58
|
import {ImagePreviewPopover} from './ImagePreviewPopover.js';
|
|
@@ -204,7 +204,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
|
204
204
|
#updateAbortController?: AbortController;
|
|
205
205
|
#updateComputedStylesAbortController?: AbortController;
|
|
206
206
|
|
|
207
|
-
constructor(computedStyleModel: ComputedStyleModel) {
|
|
207
|
+
constructor(computedStyleModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel) {
|
|
208
208
|
super(computedStyleModel, {delegatesFocus: true});
|
|
209
209
|
this.setMinimumSize(96, 26);
|
|
210
210
|
this.registerRequiredCSS(stylesSidebarPaneStyles);
|
|
@@ -729,7 +729,8 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
|
729
729
|
}
|
|
730
730
|
}
|
|
731
731
|
|
|
732
|
-
override onCSSModelChanged(
|
|
732
|
+
override onCSSModelChanged(
|
|
733
|
+
event: Common.EventTarget.EventTargetEvent<ComputedStyle.ComputedStyleModel.CSSModelChangedEvent>): void {
|
|
733
734
|
const edit = event?.data && 'edit' in event.data ? event.data.edit : null;
|
|
734
735
|
if (edit) {
|
|
735
736
|
for (const section of this.allSections()) {
|
|
@@ -303,7 +303,7 @@ export class ElementsBreadcrumbs extends HTMLElement {
|
|
|
303
303
|
data-crumb="true"
|
|
304
304
|
>
|
|
305
305
|
<a href="#" draggable=false class="crumb-link"
|
|
306
|
-
jslog=${VisualLogging.item().track({click:true
|
|
306
|
+
jslog=${VisualLogging.item().track({click:true})}
|
|
307
307
|
@click=${this.#onCrumbClick(crumb.node)}
|
|
308
308
|
@mousemove=${this.#onCrumbMouseMove(crumb.node)}
|
|
309
309
|
@mouseleave=${this.#onCrumbMouseLeave(crumb.node)}
|
|
@@ -194,8 +194,7 @@ export class StylePropertyEditor extends HTMLElement {
|
|
|
194
194
|
return html`
|
|
195
195
|
<button title=${title}
|
|
196
196
|
class=${classes}
|
|
197
|
-
jslog=${
|
|
198
|
-
VisualLogging.item().track({click: true, resize: true}).context(`${propertyName}-${propertyValue}`)}
|
|
197
|
+
jslog=${VisualLogging.item().track({click: true}).context(`${propertyName}-${propertyValue}`)}
|
|
199
198
|
@click=${() => this.#onButtonClick(propertyName, propertyValue, selected)}>
|
|
200
199
|
<devtools-icon style=${transform} name=${iconInfo.iconName}>
|
|
201
200
|
</devtools-icon>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import './InspectElementModeController.js';
|
|
6
6
|
import './ColorSwatchPopoverIcon.js';
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
import './DOMPath.js';
|
|
9
9
|
import './ElementsSidebarPane.js';
|
|
10
10
|
import './ElementsTreeElement.js';
|
|
@@ -34,7 +34,6 @@ import * as AccessibilityTreeView from './AccessibilityTreeView.js';
|
|
|
34
34
|
import * as AdoptedStyleSheetTreeElement from './AdoptedStyleSheetTreeElement.js';
|
|
35
35
|
import * as ClassesPaneWidget from './ClassesPaneWidget.js';
|
|
36
36
|
import * as ColorSwatchPopoverIcon from './ColorSwatchPopoverIcon.js';
|
|
37
|
-
import * as ComputedStyleModel from './ComputedStyleModel.js';
|
|
38
37
|
import * as ComputedStyleWidget from './ComputedStyleWidget.js';
|
|
39
38
|
import * as CSSRuleValidator from './CSSRuleValidator.js';
|
|
40
39
|
import * as CSSValueTraceView from './CSSValueTraceView.js';
|
|
@@ -70,7 +69,6 @@ export {
|
|
|
70
69
|
AdoptedStyleSheetTreeElement,
|
|
71
70
|
ClassesPaneWidget,
|
|
72
71
|
ColorSwatchPopoverIcon,
|
|
73
|
-
ComputedStyleModel,
|
|
74
72
|
ComputedStyleWidget,
|
|
75
73
|
CSSRuleValidator,
|
|
76
74
|
CSSValueTraceView,
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/* eslint-disable color-named, no-duplicate-selectors */
|
|
2
|
+
/* stylelint-disable plugin/use_theme_colors */
|
|
3
|
+
/*
|
|
4
|
+
* Copyright 2026 The Chromium Authors
|
|
5
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
6
|
+
* found in the LICENSE file.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
:root {
|
|
10
|
+
--gemini-logo: url("data:image/svg+xml,%0A%3Csvg%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2065%2065%22%3E%3Cmask%20id%3D%22maskme%22%20style%3D%22mask-type%3Aalpha%22%20maskUnits%3D%22userSpaceOnUse%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2265%22%20height%3D%2265%22%3E%3Cpath%20d%3D%22M32.447%200c.68%200%201.273.465%201.439%201.125a38.904%2038.904%200%20001.999%205.905c2.152%205%205.105%209.376%208.854%2013.125%203.751%203.75%208.126%206.703%2013.125%208.855a38.98%2038.98%200%20005.906%201.999c.66.166%201.124.758%201.124%201.438%200%20.68-.464%201.273-1.125%201.439a38.902%2038.902%200%2000-5.905%201.999c-5%202.152-9.375%205.105-13.125%208.854-3.749%203.751-6.702%208.126-8.854%2013.125a38.973%2038.973%200%2000-2%205.906%201.485%201.485%200%2001-1.438%201.124c-.68%200-1.272-.464-1.438-1.125a38.913%2038.913%200%2000-2-5.905c-2.151-5-5.103-9.375-8.854-13.125-3.75-3.749-8.125-6.702-13.125-8.854a38.973%2038.973%200%2000-5.905-2A1.485%201.485%200%20010%2032.448c0-.68.465-1.272%201.125-1.438a38.903%2038.903%200%20005.905-2c5-2.151%209.376-5.104%2013.125-8.854%203.75-3.749%206.703-8.125%208.855-13.125a38.972%2038.972%200%20001.999-5.905A1.485%201.485%200%200132.447%200z%22%20fill%3D%22%23000%22/%3E%3Cpath%20d%3D%22M32.447%200c.68%200%201.273.465%201.439%201.125a38.904%2038.904%200%20001.999%205.905c2.152%205%205.105%209.376%208.854%2013.125%203.751%203.75%208.126%206.703%2013.125%208.855a38.98%2038.98%200%20005.906%201.999c.66.166%201.124.758%201.124%201.438%200%20.68-.464%201.273-1.125%201.439a38.902%2038.902%200%2000-5.905%201.999c-5%202.152-9.375%205.105-13.125%208.854-3.749%203.751-6.702%208.126-8.854%2013.125a38.973%2038.973%200%2000-2%205.906%201.485%201.485%200%2001-1.438%201.124c-.68%200-1.272-.464-1.438-1.125a38.913%2038.913%200%2000-2-5.905c-2.151-5-5.103-9.375-8.854-13.125-3.75-3.749-8.125-6.702-13.125-8.854a38.973%2038.973%200%2000-5.905-2A1.485%201.485%200%20010%2032.448c0-.68.465-1.272%201.125-1.438a38.903%2038.903%200%20005.905-2c5-2.151%209.376-5.104%2013.125-8.854%203.75-3.749%206.703-8.125%208.855-13.125a38.972%2038.972%200%20001.999-5.905A1.485%201.485%200%200132.447%200z%22%20fill%3D%22%23000%22/%3E%3Cpath%20d%3D%22M32.447%200c.68%200%201.273.465%201.439%201.125a38.904%2038.904%200%20001.999%205.905c2.152%205%205.105%209.376%208.854%2013.125%203.751%203.75%208.126%206.703%2013.125%208.855a38.98%2038.98%200%20005.906%201.999c.66.166%201.124.758%201.124%201.438%200%20.68-.464%201.273-1.125%201.439a38.902%2038.902%200%2000-5.905%201.999c-5%202.152-9.375%205.105-13.125%208.854-3.749%203.751-6.702%208.126-8.854%2013.125a38.973%2038.973%200%2000-2%205.906%201.485%201.485%200%2001-1.438%201.124c-.68%200-1.272-.464-1.438-1.125a38.913%2038.913%200%2000-2-5.905c-2.151-5-5.103-9.375-8.854-13.125-3.75-3.749-8.125-6.702-13.125-8.854a38.973%2038.973%200%2000-5.905-2A1.485%201.485%200%20010%2032.448c0-.68.465-1.272%201.125-1.438a38.903%2038.903%200%20005.905-2c5-2.151%209.376-5.104%2013.125-8.854%203.75-3.749%206.703-8.125%208.855-13.125a38.972%2038.972%200%20001.999-5.905A1.485%201.485%200%200132.447%200z%22%20fill%3D%22%23000%22/%3E%3Cpath%20d%3D%22M32.447%200c.68%200%201.273.465%201.439%201.125a38.904%2038.904%200%20001.999%205.905c2.152%205%205.105%209.376%208.854%2013.125%203.751%203.75%208.126%206.703%2013.125%208.855a38.98%2038.98%200%20005.906%201.999c.66.166%201.124.758%201.124%201.438%200%20.68-.464%201.273-1.125%201.439a38.902%2038.902%200%2000-5.905%201.999c-5%202.152-9.375%205.105-13.125%208.854-3.749%203.751-6.702%208.126-8.854%2013.125a38.973%2038.973%200%2000-2%205.906%201.485%201.485%200%2001-1.438%201.124c-.68%200-1.272-.464-1.438-1.125a38.913%2038.913%200%2000-2-5.905c-2.151-5-5.103-9.375-8.854-13.125-3.75-3.749-8.125-6.702-13.125-8.854a38.973%2038.973%200%2000-5.905-2A1.485%201.485%200%20010%2032.448c0-.68.465-1.272%201.125-1.438a38.903%2038.903%200%20005.905-2c5-2.151%209.376-5.104%2013.125-8.854%203.75-3.749%206.703-8.125%208.855-13.125a38.972%2038.972%200%20001.999-5.905A1.485%201.485%200%200132.447%200z%22%20fill%3D%22%23000%22/%3E%3C/mask%3E%3Cg%20mask%3D%22url%28%23maskme%29%22%3E%3Cpath%20d%3D%22M32.447%200c25.437%200%2046.062%2020.625%2046.062%2046.062%200%2025.438-20.625%2046.063-46.062%2046.063-25.438%200-46.062-20.625-46.062-46.063C-13.615%2020.625%207.01%200%2032.447%200z%22%20fill%3D%22%231967D2%22/%3E%3Cpath%20d%3D%22M65%200v65H0V0h65z%22%20fill%3D%22%231967D2%22/%3E%3Cpath%20d%3D%22M63.79%2033.567L33.567%2063.79%201.21%2031.433%2031.433%201.21%2063.79%2033.567z%22%20fill%3D%22%23fff%22%20style%3D%22mix-blend-mode%3Asoft-light%22/%3E%3C/g%3E%3C/svg%3E");
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.green-dev-floaty-dialog {
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 100%;
|
|
16
|
+
background-color: #fff;
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
font-family: sans-serif;
|
|
20
|
+
color: #333;
|
|
21
|
+
font-size: 16px;
|
|
22
|
+
box-sizing: border-box;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* Header extending upwards */
|
|
26
|
+
.green-dev-floaty-dialog-header {
|
|
27
|
+
position: relative;
|
|
28
|
+
height: 70px;
|
|
29
|
+
margin-top: -20px;
|
|
30
|
+
background-color: #d3e3fd;
|
|
31
|
+
border-top-left-radius: 12px;
|
|
32
|
+
border-top-right-radius: 12px;
|
|
33
|
+
display: flex;
|
|
34
|
+
justify-content: space-between;
|
|
35
|
+
align-items: center;
|
|
36
|
+
padding: 34px 10px 11px;
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.green-dev-floaty-dialog-header-text {
|
|
41
|
+
font-weight: bold;
|
|
42
|
+
font-size: 18px;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.green-dev-floaty-dialog-close-button {
|
|
46
|
+
width: 20px;
|
|
47
|
+
height: 20px;
|
|
48
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23333' d='M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z'/%3E%3C/svg%3E");
|
|
49
|
+
background-size: cover;
|
|
50
|
+
cursor: pointer;
|
|
51
|
+
border: none;
|
|
52
|
+
background-color: transparent;
|
|
53
|
+
padding: 0;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* Main content area of the white card */
|
|
57
|
+
.green-dev-floaty-dialog-content {
|
|
58
|
+
flex-grow: 1;
|
|
59
|
+
padding: 20px;
|
|
60
|
+
display: flex;
|
|
61
|
+
flex-direction: column;
|
|
62
|
+
min-height: 0; /* Important for flex-grow with overflow */
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.green-dev-floaty-dialog-chat-container {
|
|
66
|
+
flex-grow: 1;
|
|
67
|
+
margin-bottom: 10px;
|
|
68
|
+
overflow-y: auto;
|
|
69
|
+
display: flex;
|
|
70
|
+
flex-direction: column;
|
|
71
|
+
gap: 10px;
|
|
72
|
+
padding: 10px;
|
|
73
|
+
border: 1px solid #e0e0e0;
|
|
74
|
+
border-radius: 8px;
|
|
75
|
+
background-color: #f9f9f9;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.message {
|
|
79
|
+
padding: 8px 12px;
|
|
80
|
+
border-radius: 12px;
|
|
81
|
+
max-width: 85%;
|
|
82
|
+
overflow-wrap: break-word;
|
|
83
|
+
line-height: 1.4;
|
|
84
|
+
white-space: pre-wrap; /* Preserve newlines */
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.user-message {
|
|
88
|
+
align-self: flex-end;
|
|
89
|
+
background-color: #d3e3fd;
|
|
90
|
+
color: #0b57d0;
|
|
91
|
+
border-bottom-right-radius: 2px;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.ai-message {
|
|
95
|
+
align-self: flex-start;
|
|
96
|
+
background-color: #fff;
|
|
97
|
+
color: #333;
|
|
98
|
+
border: 1px solid #e0e0e0;
|
|
99
|
+
border-bottom-left-radius: 2px;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.message-details-toggle {
|
|
103
|
+
font-size: 11px;
|
|
104
|
+
color: #0b57d0;
|
|
105
|
+
cursor: pointer;
|
|
106
|
+
margin-top: 4px;
|
|
107
|
+
text-decoration: underline;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.message-details-toggle:hover {
|
|
111
|
+
color: #0842a0;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.message-details {
|
|
115
|
+
font-size: 11px;
|
|
116
|
+
color: #666;
|
|
117
|
+
margin-top: 8px;
|
|
118
|
+
padding-top: 8px;
|
|
119
|
+
border-top: 1px solid #eee;
|
|
120
|
+
font-family: monospace;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.thought, .action {
|
|
124
|
+
margin-bottom: 6px;
|
|
125
|
+
white-space: pre-wrap;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.thought {
|
|
129
|
+
font-style: italic;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.green-dev-floaty-dialog-top-row {
|
|
133
|
+
display: flex;
|
|
134
|
+
align-items: center;
|
|
135
|
+
margin-bottom: 15px; /* Space between top row and blue card */
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.green-dev-floaty-dialog-gemini-icon {
|
|
139
|
+
width: 24px;
|
|
140
|
+
height: 24px;
|
|
141
|
+
background-image: var(--gemini-logo);
|
|
142
|
+
background-size: cover;
|
|
143
|
+
margin-right: 10px;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.green-dev-floaty-dialog-checkmark-icon {
|
|
147
|
+
width: 20px;
|
|
148
|
+
height: 20px;
|
|
149
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234CAF50' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E");
|
|
150
|
+
background-size: cover;
|
|
151
|
+
margin-right: 5px;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.green-dev-floaty-dialog-context-text {
|
|
155
|
+
font-weight: bold;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* Blue card at the bottom */
|
|
159
|
+
.green-dev-floaty-dialog-blue-card {
|
|
160
|
+
position: relative;
|
|
161
|
+
background-color: #edf2fa; /* Light blue */
|
|
162
|
+
border-radius: 12px;
|
|
163
|
+
padding: 12px;
|
|
164
|
+
display: flex;
|
|
165
|
+
flex-direction: column;
|
|
166
|
+
gap: 8px;
|
|
167
|
+
border: 1px solid #d3e3fd;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.green-dev-floaty-dialog-node-description {
|
|
171
|
+
font-size: 11px;
|
|
172
|
+
font-family: monospace;
|
|
173
|
+
color: #0b57d0;
|
|
174
|
+
background-color: #d3e3fd;
|
|
175
|
+
padding: 2px 8px;
|
|
176
|
+
margin-bottom: 10px;
|
|
177
|
+
border-radius: 4px;
|
|
178
|
+
align-self: flex-start;
|
|
179
|
+
max-width: 100%;
|
|
180
|
+
overflow: hidden;
|
|
181
|
+
text-overflow: ellipsis;
|
|
182
|
+
white-space: nowrap;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.input-row {
|
|
186
|
+
display: flex;
|
|
187
|
+
align-items: center;
|
|
188
|
+
width: 100%;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.green-dev-floaty-dialog-text-field {
|
|
192
|
+
flex-grow: 1;
|
|
193
|
+
background-color: #fff;
|
|
194
|
+
border: 1px solid #a7d9f0;
|
|
195
|
+
border-radius: 20px; /* Pill shape */
|
|
196
|
+
padding: 8px 16px;
|
|
197
|
+
font-size: 14px;
|
|
198
|
+
color: #333;
|
|
199
|
+
margin-right: 8px;
|
|
200
|
+
outline: none;
|
|
201
|
+
transition: border-color 0.2s;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.green-dev-floaty-dialog-text-field:focus {
|
|
205
|
+
border-color: #0b57d0;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.green-dev-floaty-dialog-play-button {
|
|
209
|
+
width: 30px;
|
|
210
|
+
height: 30px;
|
|
211
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231976D2' d='M8 5v14l11-7z'/%3E%3C/svg%3E");
|
|
212
|
+
background-size: cover;
|
|
213
|
+
cursor: pointer;
|
|
214
|
+
border: none;
|
|
215
|
+
background-color: transparent;
|
|
216
|
+
padding: 0;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.green-dev-floaty-minimal {
|
|
220
|
+
position: absolute;
|
|
221
|
+
width: 40px;
|
|
222
|
+
height: 40px;
|
|
223
|
+
background-color: #fff;
|
|
224
|
+
background-image: var(--gemini-logo);
|
|
225
|
+
background-repeat: no-repeat;
|
|
226
|
+
background-position: center;
|
|
227
|
+
background-size: 32px;
|
|
228
|
+
cursor: pointer;
|
|
229
|
+
pointer-events: all;
|
|
230
|
+
z-index: 1001;
|
|
231
|
+
border-radius: 12px;
|
|
232
|
+
box-shadow: 0 4px 8px rgb(0 0 0 / 20%);
|
|
233
|
+
padding: 5px;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.green-dev-floaty-disclaimer {
|
|
237
|
+
font-size: 15px;
|
|
238
|
+
color: #666;
|
|
239
|
+
text-align: center;
|
|
240
|
+
margin-top: 8px;
|
|
241
|
+
position: relative; /* For tooltip positioning */
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.disclaimer-link {
|
|
245
|
+
color: #666; /* Match text color */
|
|
246
|
+
text-decoration: underline;
|
|
247
|
+
cursor: pointer;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.disclaimer-tooltip {
|
|
251
|
+
display: none;
|
|
252
|
+
position: absolute;
|
|
253
|
+
bottom: 100%; /* Position above */
|
|
254
|
+
left: 50%;
|
|
255
|
+
transform: translateX(-50%);
|
|
256
|
+
width: 300px;
|
|
257
|
+
padding: 12px;
|
|
258
|
+
background-color: #fff;
|
|
259
|
+
border: 1px solid #ccc;
|
|
260
|
+
border-radius: 8px;
|
|
261
|
+
box-shadow: 0 2px 10px rgb(0 0 0 / 20%);
|
|
262
|
+
z-index: 1000;
|
|
263
|
+
text-align: left;
|
|
264
|
+
font-size: 16px;
|
|
265
|
+
line-height: 1.4;
|
|
266
|
+
color: #333;
|
|
267
|
+
white-space: normal; /* Ensure text wraps */
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.disclaimer-link:hover + .disclaimer-tooltip,
|
|
271
|
+
.disclaimer-tooltip:hover {
|
|
272
|
+
display: block;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.learn-more-link {
|
|
276
|
+
color: #0b57d0;
|
|
277
|
+
text-decoration: none;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.learn-more-link:hover {
|
|
281
|
+
text-decoration: underline;
|
|
282
|
+
}
|