diff --git a/DesignKit/Package.swift b/DesignKit/Package.swift index 2bac0afcbe..64324944e3 100644 --- a/DesignKit/Package.swift +++ b/DesignKit/Package.swift @@ -12,7 +12,7 @@ let package = Package( .library(name: "DesignKit", targets: ["DesignKit"]) ], dependencies: [ - .package(url: "https://github.com/vector-im/compound-ios.git", revision: "d9e119fbef20857eb790dd4aafbe16ff46011eca"), + .package(url: "https://github.com/vector-im/compound-ios.git", revision: "1f3eb60c4f87249d95addf84ce1aef22c2968763"), .package(url: "https://github.com/vector-im/element-design-tokens.git", exact: "0.0.3"), .package(url: "https://github.com/siteline/SwiftUI-Introspect.git", from: "0.9.0") ], diff --git a/DesignKit/Sources/TextFields/ElementTextFieldStyle.swift b/DesignKit/Sources/TextFields/ElementTextFieldStyle.swift index f83b2be10a..08b5821753 100644 --- a/DesignKit/Sources/TextFields/ElementTextFieldStyle.swift +++ b/DesignKit/Sources/TextFields/ElementTextFieldStyle.swift @@ -80,7 +80,7 @@ public struct ElementTextFieldStyle: TextFieldStyle { } /// The color of the placeholder text inside the text field. - private var placeholderColor: Color { + private var placeholderColor: UIColor { .compound.textPlaceholder } @@ -134,7 +134,7 @@ public struct ElementTextFieldStyle: TextFieldStyle { .introspect(.textField, on: .iOS(.v16)) { textField in textField.clearButtonMode = .whileEditing textField.attributedPlaceholder = NSAttributedString(string: textField.placeholder ?? "", - attributes: [NSAttributedString.Key.foregroundColor: UIColor(placeholderColor)]) + attributes: [NSAttributedString.Key.foregroundColor: placeholderColor]) textField.accessibilityIdentifier = accessibilityIdentifier } diff --git a/ElementX.xcodeproj/project.pbxproj b/ElementX.xcodeproj/project.pbxproj index 43c4fb674a..8c911b41f8 100644 --- a/ElementX.xcodeproj/project.pbxproj +++ b/ElementX.xcodeproj/project.pbxproj @@ -3664,7 +3664,7 @@ path = Timeline; sourceTree = ""; }; - "TEMP_43147A32-A06C-4EEF-8C45-FDEA43A25C1E" /* element-x-ios */ = { + "TEMP_8B4A8977-AAD5-44D7-8CB7-F1BC31A64C84" /* element-x-ios */ = { isa = PBXGroup; children = ( 41553551C55AD59885840F0E /* secrets.xcconfig */, @@ -5399,7 +5399,7 @@ repositoryURL = "https://github.com/vector-im/compound-ios"; requirement = { kind = revision; - revision = d9e119fbef20857eb790dd4aafbe16ff46011eca; + revision = 1f3eb60c4f87249d95addf84ce1aef22c2968763; }; }; 9A472EE0218FE7DCF5283429 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = { diff --git a/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 67ff516f25..a193aba3f3 100644 --- a/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -5,7 +5,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/vector-im/compound-design-tokens.git", "state" : { - "revision" : "cc950d575f8536ff5bebbd02e28c0b8ab541aa29" + "revision" : "aa55111d94486acbfd3344cf4d08b64723bd6703" } }, { @@ -13,7 +13,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/vector-im/compound-ios.git", "state" : { - "revision" : "d9e119fbef20857eb790dd4aafbe16ff46011eca" + "revision" : "1f3eb60c4f87249d95addf84ce1aef22c2968763" } }, { diff --git a/ElementX/Sources/Application/Application.swift b/ElementX/Sources/Application/Application.swift index 74038cac4f..b300b1d628 100644 --- a/ElementX/Sources/Application/Application.swift +++ b/ElementX/Sources/Application/Application.swift @@ -37,9 +37,7 @@ struct Application: App { .statusBarHidden(shouldHideStatusBar) .introspect(.window, on: .iOS(.v16)) { window in // Workaround for SwiftUI not consistently applying the tint colour to Alerts/Confirmation Dialogs. - window.tintColor = UIColor(named: "colorGray1400", - in: Bundle(identifier: "CompoundDesignTokens-CompoundDesignTokens-resources"), - compatibleWith: nil) + window.tintColor = .compound.textActionPrimary } .task { appCoordinator.start() diff --git a/ElementX/Sources/Other/HTMLParsing/AttributedStringBuilder.swift b/ElementX/Sources/Other/HTMLParsing/AttributedStringBuilder.swift index 836de8f952..cd88f064e5 100644 --- a/ElementX/Sources/Other/HTMLParsing/AttributedStringBuilder.swift +++ b/ElementX/Sources/Other/HTMLParsing/AttributedStringBuilder.swift @@ -117,7 +117,7 @@ struct AttributedStringBuilder: AttributedStringBuilderProtocol { attributedString.enumerateAttribute(.backgroundColor, in: .init(location: 0, length: attributedString.length), options: []) { value, range, _ in if let value = value as? UIColor, value == temporaryCodeBlockMarkingColor { - attributedString.addAttribute(.backgroundColor, value: UIColor(.compound._bgCodeBlock) as Any, range: range) + attributedString.addAttribute(.backgroundColor, value: UIColor.compound._bgCodeBlock as Any, range: range) } } } diff --git a/ElementX/Sources/Screens/RoomScreen/View/MessageComposerTextField.swift b/ElementX/Sources/Screens/RoomScreen/View/MessageComposerTextField.swift index daaca893d0..7d57e5fe90 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/MessageComposerTextField.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/MessageComposerTextField.swift @@ -69,7 +69,7 @@ private struct UITextViewWrapper: UIViewRepresentable { textView.isMultiline = $isMultiline textView.delegate = context.coordinator textView.elementDelegate = context.coordinator - textView.textColor = UIColor(.compound.textPrimary) + textView.textColor = .compound.textPrimary textView.isEditable = true textView.font = font textView.isSelectable = true diff --git a/ElementX/Sources/Screens/RoomScreen/View/TimelineItemMacContextMenu.swift b/ElementX/Sources/Screens/RoomScreen/View/TimelineItemMacContextMenu.swift index 66e93d3c28..d6325b5447 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/TimelineItemMacContextMenu.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/TimelineItemMacContextMenu.swift @@ -31,13 +31,23 @@ struct TimelineItemMacContextMenu: View { TimelineItemMenuAction.react.label } } + ForEach(menuActions.actions) { action in - Button { send(action) } label: { action.label } + Button(role: action.isDestructive ? .destructive : nil) { + send(action) + } label: { + action.label + } } } + Section { ForEach(menuActions.debugActions) { action in - Button { send(action) } label: { action.label } + Button(role: action.isDestructive ? .destructive : nil) { + send(action) + } label: { + action.label + } } } } diff --git a/ElementX/Sources/Screens/RoomScreen/View/TimelineItemMenu.swift b/ElementX/Sources/Screens/RoomScreen/View/TimelineItemMenu.swift index 03392f70ba..9a9a187421 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/TimelineItemMenu.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/TimelineItemMenu.swift @@ -84,7 +84,17 @@ enum TimelineItemMenuAction: Identifiable, Hashable { } } - /// The item's label. + /// Whether or not the action is destructive. + var isDestructive: Bool { + switch self { + case .redact, .report: + return true + default: + return false + } + } + + /// The action's label. var label: some View { switch self { case .copy: return Label(L10n.actionCopy, systemImage: "doc.on.doc") @@ -232,7 +242,9 @@ public struct TimelineItemMenu: View { private func viewsForActions(_ actions: [TimelineItemMenuAction]) -> some View { ForEach(actions, id: \.self) { action in - Button { send(action) } label: { + Button(role: action.isDestructive ? .destructive : nil) { + send(action) + } label: { action.label .labelStyle(FixedIconSizeLabelStyle()) .multilineTextAlignment(.leading) diff --git a/project.yml b/project.yml index 9ff219b1d2..90e72d81a2 100644 --- a/project.yml +++ b/project.yml @@ -54,7 +54,7 @@ packages: minorVersion: 5.13.0 Compound: url: https://github.com/vector-im/compound-ios - revision: d9e119fbef20857eb790dd4aafbe16ff46011eca + revision: 1f3eb60c4f87249d95addf84ce1aef22c2968763 # path: ../compound-ios Algorithms: url: https://github.com/apple/swift-algorithms