Commit Graph
395 Commits
Author SHA1 Message Date
Aleksei Khoroshilov b6295cd1c1 Add Containers enable toggle. (#36447)
* Add Containers enable toggle.

* Replace cr-toggle with settings-toggle-button.
2026-05-15 20:18:11 +07:00
Aleksei Khoroshilov 690260adff Make GN format sort leo icons files automatically. (#36445) 2026-05-15 16:16:22 +07:00
Pete Miller 593f937bfa [AI Chat] Progress indicator with text and expansion button (#35757)
* [AI Chat] Progress indicator with text and expansion button

Introduce ProgressBubble UI component.

Replaces spinner during generation and tool use, adding text description of the operation currently in progress.
Replaces AssistantTask tabs ("Steps"/"Progress") with a button to control expansion and collapse of details.
Replaces SearchSummary special handling with status inside the ProgressBubble and a regular search Tool Use event rendering when detail is expanded.
2026-05-14 20:03:03 +01:00
Douglas Daniel ab255afed3 [Wallet]: Portfolio Asset Distribution (#35340)
Introduces a Portfolio Distribution to the Wallet Portfolio
2026-04-13 15:15:45 -05:00
Kevin Smith abeef22091 [Shields Panel] Apply various UI polish tweaks (#35039) 2026-03-27 12:30:07 -04:00
Artem Samoilenko 4f35182547 [cr147][Android] Fix for upstream resources visibility
Othewise we get this error:
../../chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java:9: error: cannot find symbol
import static org.chromium.ui.R.drawable.gshield_colorful;

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/19b12eb71387041c442d1bf1dc9c98366f255ab7

commit 19b12eb71387041c442d1bf1dc9c98366f255ab7
Author: Liz Prucka <lizprucka@google.com>
Date:   Wed Feb 11 08:16:24 2026 -0800

    Upstreaming Clank OsAdditionalSecurityPermissionProviderImpl

    Upstreaming Advanced Protection provider class in Chrome components to
    allow for implementation across Chrome components and use in public apk.

    Separating browser messenger components in
    OsAdditionalSecurityPermissionProviderImpl.java to allow for inclusion
    of only core features in WebView.

    Updated AdvancedProtectionMediatorTest to use application context to
    fix resource loading errors in mock.

    Removed IDS_ADVANCED_PROTECTION_MESSAGE_DISABLE_TITLE as it is no longer
    used.

    Created placeholder translation templates for new safe_browsing [grd
    file](https://chromium.googlesource.com/website/+/HEAD/site/developers/design-documents/ui-localization/index.md#add-a-new-grd_p_file).

    Bug: 477677919
    Change-Id: I4944734152979ee99e2a577b0d36af12b968fc2e
    Bypass-Check-License: Moved OsAdditionalSecurityProvider files
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7486643
    Reviewed-by: Ravjit Uppal <ravjit@chromium.org>
    Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
    Commit-Queue: Liz Prucka <lizprucka@google.com>
    Cr-Commit-Position: refs/heads/main@{#1583249}
2026-03-26 19:25:11 -04:00
Douglas Daniel b6f067d967 [Wallet]: Add Unshield Funds Button to Asset Menu (#34774)
Adds a Unshield funds button to the Asset Menu for Shielded ZEC assets
2026-03-18 12:19:14 -05:00
Kevin Smith 6d7d3509dc [Shields UI] Wire up new panel UI to flag (#34639) 2026-03-16 14:50:14 -04:00
Agustín Ruiz c8e21776e6 Add antialiasing to all webUIs (#34753)
* Add antialiasing

* add ; at the end of css declarations
2026-03-16 13:48:51 -03:00
Anthony Tseng 73c1f6462f Move WASM crates next to their consumer components (#34574)
* Move opaque_ke WASM crate next to its consumer component

Move opaque_ke from third_party/wasm/ to
components/brave_account/resources/opaque_ke/ so it lives
next to the component that consumes it.

- Move crate directory with index.js as-is
- Add workspace key to Cargo.toml for workspace discovery
- Update .cargo/config.toml vendor path
- Add transpile_web_ui target in resources/opaque_ke/BUILD.gn
- Update workspace Cargo.toml member path
- Update update.py to use make_config_toml for relative vendor paths

* Move candle_embedding_gemma WASM crate next to its consumer component

Move candle_embedding_gemma from third_party/wasm/ to
components/local_ai/resources/candle_embedding_gemma/ so it lives
next to the component that consumes it.

- Move crate directory
- Add workspace key to Cargo.toml for workspace discovery
- Update .cargo/config.toml vendor path
- Update workspace Cargo.toml member path
- Update update.py PRESERVE_PATTERNS for new config location
2026-03-10 11:06:21 +00:00
Anthony Tseng fef2a76f4c Move WASM workspace to third_party/wasm/ (#34497)
Relocate the WASM workspace from ui/webui/resources/wasm/ to
third_party/wasm/, following the convention of third_party/rust/.

This is a plain move with path updates — no structural changes to
the workspace, crate locations within it, or build targets.
2026-03-09 22:50:50 +00:00
Stephen O'Farrellandjameshawrych c333ff87e7 [Leo] 2026 Feb Model Upgrade (#33973)
* [Leo] update models

* add near GLM 5

* address netzen comments

* formatting

* add removed models to clearprefs migration

* correct model key name to chat-near-deepseek

* clean up strings

---------

Co-authored-by: jameshawrych <69646550+jameshawrych@users.noreply.github.com>
2026-03-02 17:18:22 +00:00
Kevin Smith 14332c8693 [Shields UI] Add advanced view to new panel UI (#34192) 2026-02-27 18:38:29 -05:00
Jay Harris bda4949d93 [AI Chat]: Include inline search widget in AssistantResponse (#34073) 2026-02-25 08:33:25 +13:00
Szilard Szaloki 3e2422d2e4 Account: implements Caps Lock indicator (#33841) 2026-02-10 20:18:44 +00:00
Agustín Ruiz e3238393d9 Settings move searchbar (#33235)
* Remove Brave navigation bar and search field components

Deleted the Brave-specific navigation bar data provider and toolbar search field components, including related TypeScript, HTML, and CSS files. Updated build files and removed all references and initialization code for these components across the codebase. This simplifies the UI code and removes unused or redundant toolbar logic.

* Add Brave-specific toolbar CSS overrides

Introduces a new stylesheet for cr_toolbar with layout overrides and customizations for Brave, including flex adjustments and alignment for toolbar content.

* Center content in toolbar when right content growth is disabled

Updated the CSS for cr_toolbar to center #centeredContent when the toolbar is not narrow and right content growth is disabled. This improves alignment and visual consistency.

* Update cr_toolbar.css

* Remove Brave-specific WebUI customizations and resources

Deleted Brave-specific history and downloads UI overrides, related patch files, and resource build files. Updated downloads UI to remove custom macro usage and simplified cr_elements BUILD.gn patch to exclude Brave resource imports. This streamlines the codebase by removing unnecessary Brave customizations and build steps.

* Update font-family to system defaults in search field

Replaces 'Inter Variable' and 'Inter' fonts with system-ui and sans-serif for input and #prompt elements in cr_toolbar_search_field.css to ensure consistent appearance across platforms.

* Add hover background for search field toolbar

Introduces a subtle background color on hover for the search field toolbar when it is not focused and not in narrow mode, improving visual feedback for users.

* Remove fallback values from CSS custom properties

Eliminated fallback values for several CSS custom properties in cr_toolbar_search_field.css to ensure design consistency and rely solely on the defined variables.
2026-01-25 19:54:17 -03:00
Szilard Szaloki d1917db4a9 Account: resend verification email notifications (desktop) (#33317) 2026-01-23 08:17:54 -07:00
Brian Johnson bff8ee509f Reland - Move replacement files for chromium resources to their own directory (#33204)
This moves files that are directly copied over chromium resources to a separate directory where they are checked to make sure that there is a corresponding upstream file. This is the first step in a series of changes to clean up branding.js https://github.com/brave/brave-browser/issues/51969
2026-01-14 19:44:13 +00:00
Brian Johnson 54166dfe58 Revert "Move files that overwrite chromium resources to their own directory" (#33203)
Revert "Move files that are copied to chromium to their own directory (#33159)"

This reverts commit 9324eec2d3.
2026-01-14 13:56:06 +00:00
Brian Johnson 9324eec2d3 Move files that are copied to chromium to their own directory (#33159)
Separate files that overwrite chromium resources from brave specific resources and validate that there is a corresponding file in upstream.
2026-01-14 05:18:58 -07:00
Anthony Tseng 52941f6568 Exclude .vscode in gitignore for ui/webui/resources/wasm/vendor (#32905) 2025-12-19 06:49:20 -05:00
Anthony TsengandVandana Malayil 8484035772 Add candle embedding gemma into wasm (#32318)
* Create candle_embedding_gemma skeleton

* adding embedding gemma core code

* npm run update_wasm_resources and manually revert *README.chromium
deletion and config.toml, .clang-format reset

* Add README.chromium for direct deps

* Backup and restore candle_embedding_gemma/.cargo/config.toml

* Remove object files and DLLs in wasm vendor if found

* Exclude sonarcloud from running on wasm vendor codes

* modified so that embeddings and cosine similarity results match exactly with Python sentence transformer implementation

* adding core functionalities for quantized model instead of FP

* Fix rust format

---------

Co-authored-by: Vandana Malayil <vandurajan91@gmail.com>
2025-12-18 12:01:41 -08:00
Andrea 2d97608128 [ollama] ui (#31570)
* Add Ollama integration to Leo Assistant settings

- Add OllamaService mojo interface bindings in settings UI
- Include ollama.mojom in settings build configuration
- Add Ollama model discovery UI in model list section
- Update content security policy for Ollama endpoints
- Add localized strings for Ollama integration
- Wire up Ollama service through settings browser proxy
2025-12-01 22:21:46 +01:00
Brian R. Bondy a4d9248fcb Add enable_brave_wallet gn var and build flag (#32484)
* Add enable_brave_wallet GN variable and build flag

This adds a new GN build flag 'enable_brave_wallet' that can be set to
false to exclude Brave Wallet from the build. The flag is true by default
to maintain current behavior.

Changes include:
- Add enable_brave_wallet declare_args in build/config/BUILDCONFIG.gn
- Create brave_wallet/common/buildflags with ENABLE_BRAVE_WALLET flag
- Update all BUILD.gn and sources.gni files to use the new flag
- Add wallet buildflags dependencies via minimal one-line imports

* Add patches for wallet buildflags in Chromium BUILD files

Adds minimal one-line patches to import wallet buildflags dependencies
in Chromium source files. This allows Chromium code to conditionally
depend on wallet headers.

Patches:
- chrome/browser/ui/hid/BUILD.gn
- net/BUILD.gn
- third_party/blink/common/BUILD.gn
- third_party/blink/public/common/BUILD.gn
- third_party/blink/renderer/modules/permissions/BUILD.gn

* Guard wallet code in Chromium source overrides

Updates chromium_src overrides to conditionally compile wallet-related
code based on enable_brave_wallet flag. This includes:

- Adding DEPS files to allow buildflags dependencies
- Guarding wallet permission handling with #if BUILDFLAG(ENABLE_BRAVE_WALLET)
- Keeping wallet permission enum values unconditionally to maintain profile
  interchangeability between wallet-enabled and wallet-disabled builds
- Updating component registration and preference handling

Key changes:
- Permission enums remain stable across build configs for UMA and persistence
- Wallet permission handling code only compiled when wallet enabled
- DEPS files updated to allow buildflags includes

* Guard wallet UI code in front-end TypeScript and Mojom

Conditionally compiles wallet-related UI code in TypeScript and Mojom
interfaces based on enable_brave_wallet preprocessor flag.

Changes:
- Settings menu: Use lastInserted pattern for menu item ordering
- Page visibility: Guard wallet page visibility checks
- Browser commands: Guard wallet command handling
- Routes: Conditionally include wallet routes
- Add non-null assertions for DOM insertions in TypeScript
- Update Mojom interfaces to conditionally include wallet enums

Front-end code uses <if expr="enable_brave_wallet"> preprocessor
directives to exclude wallet UI when the feature is disabled.

* Guard wallet usage in non-wallet Brave code

Conditionally compiles wallet-related code in non-wallet Brave files
based on enable_brave_wallet build flag.

Changes include:
- browser/: Guard wallet service factories, preferences, and helpers
- components/: Guard wallet dependencies in rewards, sidebar, and DNS
- renderer/: Conditionally register wallet content settings
- utility/: Guard wallet component registration
- ios/: Add optional chaining for wallet feature flags
- test/: Guard wallet-related test code

Key files:
- brave_stats_updater.cc: Guard wallet pref registration with #if
- brave_profile_prefs.cc: Conditionally register wallet preferences
- sidebar_service.cc: Guard wallet panel items
- iOS WalletConstants.swift: Use optional chaining for feature checks

This allows building Brave without wallet while maintaining profile
compatibility between wallet-enabled and wallet-disabled builds.

* Add static_assert for ENABLE_BRAVE_WALLET in wallet headers

Adds compile-time assertions to wallet headers to ensure they are only
included when wallet is enabled. This prevents accidental usage of wallet
APIs when enable_brave_wallet=false.

Added static_assert(BUILDFLAG(ENABLE_BRAVE_WALLET)) to:

browser/brave_wallet/ (11 files):
- asset_ratio_service_factory.h
- brave_wallet_context_utils.h
- brave_wallet_ipfs_service_factory.h
- brave_wallet_provider_delegate_impl.h
- brave_wallet_service_factory.h
- brave_wallet_tab_helper.h
- meld_integration_service_factory.h
- wallet_notification_service_factory.h
- simulation_service_factory.h
- swap_service_factory.h
- wallet_data_files_installer_delegate_impl.h

components/brave_wallet/browser/ (15 files):
- brave_wallet_p3a_private.h
- brave_wallet_prefs.h
- brave_wallet_service.h
- brave_wallet_utils.h
- ens_resolver_task.h
- json_rpc_service_test_utils.h
- json_rpc_service.h
- keyring_service_observer_base.h
- keyring_service.h
- network_manager.h
- permission_utils.h
- pref_names.h
- test_utils.h
- tx_service.h
- wallet_data_files_installer.h

components/brave_wallet/common/ (6 files):
- brave_wallet_types.h
- common_utils.h
- eth_abi_utils.h
- features.h
- hex_utils.h
- pref_names.h

Also includes minor wallet code updates to use buildflags and
guard zcash-specific test code.

* Follow up fixes after Parts 1-7
2025-11-28 15:54:27 -05:00
Pete Miller b7f4a5afa0 [AI Chat] [Content Agent] Pause / Resume / Stop buttons for tasks (#32523)
* [AI Chat] [Content Agent] Pause / Resume / Stop buttons for tasks
2025-11-27 09:49:38 +01:00
Szilard Szaloki ec9e617ff9 Refactor WASM ui/webui/resources/wasm/update.py to use backup/restore. (#32515) 2025-11-25 10:14:25 +01:00
Stephen O'Farrell ce84f0d360 [Leo] Add new models (#31590)
* add new models to leo

* set tools to false

* remove tools string

* add is_near_model to new bedrock models
2025-11-14 15:21:22 +00:00
Anthony Tseng ccf25aa608 Skip git cl format for both rust-wasm vendor (#32292)
Prevent `git cl format --presubmit` which is used by `npm run presubmit`
from checking rust wasm vendor for formatting
2025-11-13 19:55:18 +01:00
Brian R. Bondy 72cadbd0c6 AIChat build flag and gn var (#31988)
* Add AI Chat build flag to components/ai_chat

* Add AI Chat build flag to browser/ui

* Add AI Chat build flag to browser/resources

* Add AI Chat build flag to chromium overrides

* Add AI Chat build flag to other components

* Add AI Chat build flag to core browser files

* Add AI Chat build flag to app and renderer

* Add AI Chat build flag to remaining files

* Set enable_ai_chat to !is_brave_origin_branded

* Review comments

Including gn_check errors in chromium_src

* Exclude ai_chat Jest tests when not enabled
2025-11-11 11:20:34 -05:00
Douglas Daniel e8deaf99af [AI Chat] [Content Agent]: First use Warning (#32077)
Will now display a Warning before every new Content Agent conversation
2025-10-29 10:02:23 -05:00
Gaetano Checinski ade2e98361 detect what affected tests for webpacked projects - adds ts folders as data (#31254)
extends the transpile_web_ui.py to assert that the source roots provided via imports_from are complete.
The purpose of this is to improve the gn analyze functionality to be able to infer which tests need to run based on filechanges alone.
2025-10-28 07:34:11 +00:00
Aleksei Khoroshilov 67b86db746 Enable rustfmt. (#31974) 2025-10-24 16:34:57 +07:00
Emerick Rogul a64e2b6c27 Upgrade from Chromium 141 to Chromium 142 (#31024)
Resolves https://github.com/brave/brave-browser/issues/48939

<!-- CI-related labels that can be applied to this PR:
* CI/run-audit-deps (1) - check for known npm/cargo vulnerabilities
(audit_deps)
* CI/run-network-audit (1) - run network-audit
* CI/run-upstream-tests - run Chromium unit and browser tests on Linux
and Windows (otherwise only on Linux)
* CI/run-linux-arm64, CI/run-macos-x64, CI/run-windows-arm64,
CI/run-windows-x86 - run builds that would otherwise be skipped
* CI/skip - do not run CI builds (except noplatform)
* CI/skip-linux-x64, CI/skip-android, CI/skip-macos-arm64, CI/skip-ios,
CI/skip-windows-x64 - skip CI builds for specific platforms
* CI/skip-upstream-tests - do not run Chromium unit, or browser tests
(otherwise only on Linux)
* CI/skip-all-linters - do not run presubmit and lint checks
* CI/storybook-url (1) - deploy storybook and provide a unique URL for
each build

(1) applied automatically when some files are changed (see:
https://github.com/brave/brave-core/blob/master/.github/labeler.yml)
-->

## Submitter Checklist:

- [ ] I confirm that no [security/privacy review is
needed](https://github.com/brave/brave-browser/wiki/Security-reviews)
and no other type of reviews are needed, or that I have
[requested](https://github.com/brave/reviews/issues/new/choose) them
- [ ] There is a [ticket](https://github.com/brave/brave-browser/issues)
for my issue
- [ ] Used Github [auto-closing
keywords](https://docs.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue)
in the PR description above
- [ ] Wrote a good [PR/commit
description](https://google.github.io/eng-practices/review/developer/cl-descriptions.html)
- [ ] Squashed any review feedback or "fixup" commits before merge, so
that history is a record of what happened in the repo, not your PR
- [ ] Added appropriate labels (`QA/Yes` or `QA/No`;
`release-notes/include` or `release-notes/exclude`; `OS/...`) to the
associated issue
- [ ] Checked the PR locally:
* `npm run test -- brave_browser_tests`, `npm run test --
brave_unit_tests`
[wiki](https://github.com/brave/brave-browser/wiki/Tests)
* `npm run presubmit`
[wiki](https://github.com/brave/brave-browser/wiki/Presubmit-checks),
`npm run gn_check`, `npm run tslint`
- [ ] Ran `git rebase master` (if needed)

## Reviewer Checklist:

- [ ] A security review [is not
needed](https://github.com/brave/brave-browser/wiki/Security-reviews),
or a link to one is included in the PR description
- [ ] New files have MPL-2.0 license header
- [ ] Adequate test coverage exists to prevent regressions
- [ ] Major classes, functions and non-trivial code blocks are
well-commented
- [ ] Changes in component dependencies are properly reflected in `gn`
- [ ] Code follows the [style
guide](https://chromium.googlesource.com/chromium/src/+/HEAD/styleguide/c++/c++.md)
- [ ] Test plan is specified in PR before merging

## After-merge Checklist:

- [ ] The associated issue milestone is set to the smallest version that
the
  changes has landed on
- [ ] All relevant documentation has been updated, for instance:
- [ ]
https://github.com/brave/brave-browser/wiki/Deviations-from-Chromium-(features-we-disable-or-remove)
- [ ] https://github.com/brave/brave-browser/wiki/Proxy-redirected-URLs
- [ ]
https://github.com/brave/brave-browser/wiki/Fingerprinting-Protections
- [ ]
https://github.com/brave/brave-browser/wiki/Brave%E2%80%99s-Use-of-Referral-Codes
- [ ]
https://github.com/brave/brave-browser/wiki/Web-Compatibility-Exceptions-in-Brave
  - [ ] https://github.com/brave/brave-browser/wiki/QA-Guide
  - [ ] https://github.com/brave/brave-browser/wiki/P3A

## Test Plan:
2025-10-16 08:53:50 -04:00
Simon Hong 8d9a5f01cc [cr142] Fixed MdTextButtonTest.ButtonColorsTest
Fixed by fetching color provider after changing color scheme.
Otherwise, cached one refers previous mode's color provider.

TEST=MdTextButtonTest.ButtonColorsTest
2025-10-15 20:31:32 -04:00
Szilard Szaloki d4083acd77 Fix Account WebUI missing color change listener. (#31832) 2025-10-15 17:59:39 -05:00
Jay Harris bf90c9eecb [Nala]: Rename web_components.ts to initialize_bundle.ts (#31751) 2025-10-13 10:04:09 +01:00
Brian R. BondyandBrian Clifton 868687478d Add Brave Origin Settings UI (#31677)
* Add Settings UI for Brave Origin

Adds the user interface components for Brave Origin settings,
including toggles, strings, and icons for managing various Brave features.

* Use Brave Origin handler API in settings UI

* Review comments

---------

Co-authored-by: Brian Clifton <brian@clifton.me>
2025-10-10 13:49:33 -04:00
Jay Harris 40dcee8e6f [webpack]: Default output_module=true for new WebUIs (#31700) 2025-10-10 05:36:22 +01:00
Jay Harris 9747f4ff4b [AI Chat]: Add UI for attaching bookmarks to conversations (#31610) 2025-10-10 08:55:48 +13:00
Jay Harris ef1053df03 [Nala]: Support dynamically updating the theme on upstream WebUI pages (#31540)
* [Nala]: Allow themes to update dynamically

* [AI Chat]: Don't load the ColorChangeUpdater on Android

* Use runtime detection instead of compile time
2025-10-09 00:54:24 +01:00
Jay Harris 99783f144e [webpack]: output_module=true implies no_iife=true (#31695) 2025-10-09 10:18:13 +13:00
Jay Harris f54055794c [Nala]: Fix scheme relative loading of variables (#31221) 2025-09-17 09:29:07 +12:00
Jay Harris 3dcc8f26dd [WebUI]: Remove unneeded overrides (#31140) 2025-09-15 07:46:03 +09:00
AlexeyBarabash bc9b801796 [cr140] Fixed icon color at tab switcher menu (#31092)
* Updated btn_close.png/incognito_simple.png icons from Leo

Resolves https://github.com/brave/brave-browser/issues/49080
2025-09-09 00:10:51 +03:00
Szilard Szaloki 5d21436331 [iOS] Replace dynamic nala.css with default theme (#31081) 2025-09-08 15:21:46 +09:00
Agustín Ruiz 3303f7bee6 [Settings]: Reduce spacing between menu items (#31020)
* tighten menu

* fix about styles
2025-09-03 20:39:01 -03:00
AlexeyBarabash 6ba7b53384 Set secure clipboard flag when copying Sync code (#30280)
* Set clipboard flag when copying Sync code / wallet recovery

Resolves https://github.com/brave/brave-browser/issues/47843
2025-09-02 19:58:06 +03:00
Jay Harris f4b2fa6f19 [Nala]: Dynamic theming of WebUIs (#30567) 2025-08-28 09:02:34 +12:00
Sangwoo Ko 4b0521b56b [Brave Midnight] Add Brave Midnight (Darker) theme feature and pref (#30520)
* Add Brave Midnight (Darker) theme feature

This commit introduces the Brave Midnight theme, a darker variant of the
existing dark theme, providing users with enhanced customization options
for their browsing experience.

Key changes:
* Add feature flag `kBraveMidnightTheme` to control theme availability
* Create new preference `kBraveDarkerMode` to store user's theme choice
* Implement UI toggle in Customize Chrome side panel for theme switching
* Add Mojo interface methods for theme state management

Technical implementation:
- Created `browser/ui/color/features.{cc,h}` for feature flag definition
- Added feature flag to `about_flags.cc` for experimental access
- Registered preference in `brave_profile_prefs.cc` when feature is enabled
- Extended Customize Chrome UI with `DarkerThemeToggle` component
- Added Mojo interface methods `GetUseDarkerTheme`/`SetUseDarkerTheme`

The feature is disabled by default and can be enabled via the
`brave-midnight-theme` flag in brave://flags. When enabled, users can
toggle the darker theme through the Customize Chrome side panel.
2025-08-26 08:58:43 +09:00
Brian R. Bondy e735d32c78 Leo image attachment support via drag and drop (#30426)
* Leo image attachment support via drag and drop

The main interface handles file processing while the untrusted iframe only detects drag events

* Address review comments

* Implement review comments (Jay)

* DragOverlay props to use useConversationContext
2025-08-07 12:53:21 -04:00