Commit Graph

39 Commits

Author SHA1 Message Date
Doug 7587fd76ee Fix some isolation errors when compiling with Swift 6.4. (#6148)
* Fix some isolation errors when compiling with Swift 6.4.

* Update the Design Tokens dependency to include Sendable conformances.

(cherry picked from commit 4608a63e29)
2026-09-22 18:27:48 +02:00
Doug 2228da3eb9 Make sure the Tab Rail's background matches the split view's detail background. (#6003) 2026-08-11 11:07:24 +01:00
Jürgen Wischer 003c608cc5 Revert "Add a visible custom focus ring to the standard button style"
This reverts commit 3f2434c94761877b96fe5bc2e9acc9dfc2b8db2a.
2026-07-17 14:14:45 +02:00
Jürgen Wischer 5198533242 Add a visible custom focus ring to the standard button style 2026-07-17 14:14:45 +02:00
Jürgen Wischer 814cb99105 Show a resting-state border on raised text fields 2026-07-17 14:14:45 +02:00
Mauro a2c1ca06dd Content Scanning View (#5831)
* implement a MediaView to delegate at the view level the usage of the content scanner service, to determine how to render the media.

* fix for a small design mismatch

* fix for greedy error state

* updated naming

* just making some screenshot that have been affected by a string change on Localazy

* pr suggestions + updated strings
2026-07-06 16:15:27 +02:00
Stefan Ceriu b8e6421551 Fix various project warnings 2026-07-03 19:30:28 +03:00
Doug 036c9ce248 Stop reserving space for the non-existant icon background in ListRowLabel on iOS 26. (#5822)
* Stop reserving space for the non-existant icon background in ListRowLabel on iOS 26.

* Use the .avatar label style for NotificationSettingsEditScreenRoomCell.
2026-07-01 12:58:33 +01:00
Mauro Romito 3aedd0ccff swiftformat now enforces newlines for ifs 2026-06-19 15:28:27 +02:00
Mauro 6a381dcef0 Fix some issues with missing a11y labels (#5747)
* add a11y label to the bug report field

* include a11y label to the list row directly

* remove is header trait from poll form question header section

* a11y label added to the create room screen name textfield
2026-06-19 11:48:13 +02:00
Doug b38c216185 Add support for defining the text entry type on CompoundTextFieldStyle. (#5757)
* Add support for defining the text entry type on CompoundTextFieldStyle.

* Use Xcode 26.5 when running Compound tests too.
2026-06-18 19:18:44 +01:00
Mauro a520d94760 Swift 6 Migration (#5733)
* Enable Swift 6.2 with default main actor isolation for the app target

Turn on SWIFT_VERSION 6.2, SWIFT_APPROACHABLE_CONCURRENCY and SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor for the ElementX target, matching the NSE and Share Extension (which already use 6.2 without the main actor default).

# Conflicts:
#	ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

* Update the code generation templates for Swift 6

Emit nonisolated/@unchecked Sendable mocks and nonisolated string enums, and mark async mock methods @concurrent so they keep suspending like the real implementations (otherwise intermediate states are unobservable in tests). Includes the regenerated mocks and strings.

# Conflicts:
#	ElementX/Sources/Mocks/Generated/GeneratedMocks.swift

* Make the data layer and services nonisolated and Sendable

Annotate the value-type models, Rust SDK proxy wrappers, timeline item graph, settings, logging and NSE-shared types as nonisolated, and conform the service protocols to Sendable so their existentials can cross isolation boundaries. These types run off the main actor and no longer inherit the target's default main actor isolation.

* Adopt the new isolation across call sites, mocks and signatures

Update call sites, closure signatures and mock configuration helpers to match the nonisolated/Sendable data layer, including the main actor isolated mock inits and the @Sendable filter on recentlyVisitedRooms.

^ Conflicts:
^	ElementX/Sources/Services/SecureBackup/SecureBackupController.swift

* Remove redundant @MainActor annotations

With the app target defaulting to main actor isolation, the explicit @MainActor on view models, coordinators, views and their protocols is no longer required.

* Fix concurrency hotspots surfaced by the migration

Resolve the room summary main-thread deadlock by moving diff processing onto AsyncStreams, add the SDKListener.onMainActor FIFO bridge for SDK callbacks, hop KVO/timer/UIKit callbacks to the main actor via assumeIsolated, add isolated deinits, and apply the few justified nonisolated(unsafe) escapes for queue-confined Apple APIs.

* Fix the unit tests for Swift 6 concurrency

Hop the waitForConfirmation body onto the caller's actor (Swift Testing runs confirmation closures off-actor), and adjust the affected suites and async signatures.

* offload diffs on concurrent threads instead of main actor

* make room info protocols sendable

* use a task group for fetching data so that everything runs concurrently in the TextRoomTimelineView when getting the preview.

* use the generic onMainActor implementation, which already makes a stream and send the continuation on the main actor.

* small pr comments issues being addressed

* update enterprise

* Update StaticCode to 1.1.0 and specify the required Swift isolation.

* fix ElementCallServiceTests

* update enterprise

* re-generate mocks

* update enterprise

* enterprise new code conformed to swift 6

---------

Co-authored-by: Doug <douglase@element.io>
2026-06-18 17:55:31 +02:00
Doug 097d055dbe Some more tweaks to compound for User Status. (#5708)
* Add a plain list modifier to Compound.

* Move ElementTextFieldStyle into Compound and support more styles from the Figma

- More accurately reflects our Liquid Glass updates.
- Adds support for the .raised style.

* Update Element X snapshots.
2026-06-05 15:59:34 +01:00
Doug 915b1fb718 Update ListRowLabel with the correct icon spacing when using LiquidGlass. 2026-06-03 08:15:32 +03:00
Doug fa67713726 Run SwiftFormat. 2026-05-27 17:11:42 +01:00
Aaron Thornburgh 96b6d69d5a Update Send button bg color (#5170)
* Update Send button bg color

Change the gradient bg to accent/rest.

* Tidy-up ComposerToolbar to match iOS 18 Figma.

Also simplifies the tests a bit.

* Add a .glassEffect to Compound's SendButton.

* Add a border to TimelineReplyView.

Also use the same sizes in both the message bubbles and the composer.

* Change icon size and container in message bubbles

- Container size = 36x36px
- Icon size = 24x24px

* Update icon of reply contents to be 24x24

* Update the VoiceMessageButton to match the designs.

* Adopt Liquid Glass in the ComposerToolbar.

* Generate and fix snapshots.

---------

Co-authored-by: Doug <douglase@element.io>
2026-03-25 17:42:10 +00:00
renovate[bot] 08a866bf87 Update dependency element-hq/compound-design-tokens to v6.10.1 (#5123)
* Update dependency element-hq/compound-design-tokens to v6.10.0

* Further Compound updates.

The gradients have been simplified and are now opaque.

* Missed snapshots.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Doug <douglase@element.io>
2026-02-25 21:45:10 +00:00
Mauro 26bfa6ed7c Compound - Swift 6.2 and Main actor isolation (#5109)
* compound is now using 6.2 and main actor isolation + some tweaks to make it build tests and EX

* better handling of the nonisolated context for CompoundUIColors

* improving docs

* fix comment

* remove unused Sendable conformance
2026-02-16 10:19:12 +00:00
Mauro Romito 20657de097 Updated compound icons to match ios 26 designs 2026-01-30 17:33:24 +01:00
Stefan Ceriu 23062901c0 Update files following swiftformat upgrade 2026-01-27 12:50:57 +02:00
Mauro 34123a4567 Empty spaces list screen (#4936)
* Added an FF to create spaces + empty spaces list state

* removed learn more button and improved spacing

* updated toolbar for chats and spaces to match ios 26 designs
2026-01-09 15:17:43 +01:00
Doug 1a62f2cca6 Final tweaks to the existing QR code screens to match the designs. (#4874)
* Simplify QR errors even more and use the correct error state for deviceAlreadySignedIn.

* Remove the pre-defined padding on TitleAndIcon and use it in the QRCodeLoginScreen too.

* Update FullscreenDialog to allow different horizontal padding in each section.
2025-12-17 17:23:55 +00:00
Doug b9acfa5218 Update the foreground colour of BigIcon's default style. (#4871)
* Update the foreground colour of BigIcon's default style.

* Bump the design tokens and fix a bug in the inspector app.
2025-12-17 12:48:18 +00:00
Doug 85ebf4d1ce Move BigIcon into Compound and add a new TitleAndIcon component. (#4866)
* Move BigIcon into Compound.

* Replace the old server selection image asset with the \.host icon.

* Add a new TitleAndIcon component to Compound.

* Add the ability to override TitleAndIcon's padding.
2025-12-16 16:01:26 +00:00
Mauro Romito 656648fc7c drop iOS 17 and removed all #available and #unavaible checks for 17 and 18 2025-12-01 14:19:52 +01:00
Doug 444acc1157 Update Compound's List header style to match our iOS 26 components. (#4797)
* Update Compound's list header font for iOS 26.

* Update the preview snapshots.

* Update UI test snapshots.
2025-11-28 14:31:31 +00:00
Mauro Romito af561442ee use 26.1.1 for compound ios tests on CI 2025-11-28 13:27:45 +01:00
Mauro Romito 0cf5a9c618 multi selection should have the accessory on the leading side 2025-11-28 13:27:45 +01:00
Mauro Romito cb28597eb6 room members list redesign 2025-11-21 14:23:19 +01:00
Doug 022bc76c52 Add @MainActor to some of the hook points. 2025-11-18 16:25:11 +02:00
Doug 449349ce36 Add a DeveloperOptionsScreenHook. 2025-11-18 16:25:11 +02:00
Mauro f7dd9cdcf8 Update copyright holding and dates (#4640)
* Update copyright holding and dates

* compound IDE Macros updated

* update copyright

* update copyrights done

* update templates and README
2025-10-21 14:34:56 +02:00
Doug 39bfb6f0da Some random tweaks made on a train 🚆 (#4636)
* Fix the search text field's tint colour.

* Don't allow optional content IDs in the placeholder avatar.

* Use SwiftUI to resolve the hex values in the Inspector app.

This fixes incorrect values being shown in dark/high-contrast modes.

* Fix a layout bug with the colour swatch in the Inspector app on iPhone.

* Switch to the chats tab when selecting a room with the global search screen.

* Run the latest SwiftFormat.
2025-10-21 10:04:54 +01:00
Doug db6aa06ec1 Only run Compound tests when files are changed in Compound. (#4611)
* Only run Compound tests when files are changed in Compound.

* Fix warnings about missing spacing.

* Fix warnings about inner type shadowing.
2025-10-10 14:30:51 +01:00
Mauro Romito 8e2252a321 new divider color for iOS 26
# Conflicts:
#	PreviewTests/Sources/__Snapshots__/PreviewTests/leaveSpaceView.Only-Admin-Rooms-iPad-pseudo.png
#	PreviewTests/Sources/__Snapshots__/PreviewTests/leaveSpaceView.Only-Admin-Rooms-iPhone-16-pseudo.png
#	PreviewTests/Sources/__Snapshots__/PreviewTests/settingsScreen.Bug-report-disabled-iPad-en-GB.png
#	PreviewTests/Sources/__Snapshots__/PreviewTests/settingsScreen.Bug-report-disabled-iPad-pseudo.png
#	PreviewTests/Sources/__Snapshots__/PreviewTests/settingsScreen.Bug-report-disabled-iPhone-16-en-GB.png
#	PreviewTests/Sources/__Snapshots__/PreviewTests/settingsScreen.Bug-report-disabled-iPhone-16-pseudo.png
#	PreviewTests/Sources/__Snapshots__/PreviewTests/settingsScreen.Default-iPad-en-GB.png
#	PreviewTests/Sources/__Snapshots__/PreviewTests/settingsScreen.Default-iPad-pseudo.png
#	PreviewTests/Sources/__Snapshots__/PreviewTests/settingsScreen.Default-iPhone-16-en-GB.png
#	PreviewTests/Sources/__Snapshots__/PreviewTests/settingsScreen.Default-iPhone-16-pseudo.png
2025-10-07 18:49:37 +02:00
Doug 6377d9be67 A couple of small tweaks. (#4569)
* Stop ignoring the safe area with the suggestions view.

They weren't visible on iPad (hidden behind the sidebar) and I can't find any instance when they're shown where the safe area comes into play.

* Make sure the room list deselects the cell when dismissed a room.

* Use the backports pattern in more places.

* Fix the annoying header on macOS.

* Silence some warnings

* Fix compound CI branch name.
2025-10-03 12:09:17 +01:00
Doug bc13ddcd1a Update compound snapshots. 2025-09-29 10:41:01 +01:00
Doug 90eeabf9de Run SwiftFormat and fix SwiftLint. 2025-09-29 10:41:01 +01:00
Doug ed73853c9b Move compound-ios package into the project. 2025-09-29 10:41:01 +01:00