[ios] Refactor search bars #7236

Merged
root merged 8 commits from ios/refactor-search-bars into master 2024-01-26 09:45:38 +00:00
15 changed files with 336 additions and 112 deletions

View file

@ -7,11 +7,11 @@ final class BookmarksListViewController: MWMViewController {
private var canEdit = false
@IBOutlet private var tableView: UITableView!
@IBOutlet private var searchBar: UISearchBar!
@IBOutlet private var toolBar: UIToolbar!
@IBOutlet private var sortToolbarItem: UIBarButtonItem!
@IBOutlet private var moreToolbarItem: UIBarButtonItem!
private let searchController = UISearchController(searchResultsController: nil)
private lazy var infoViewController: BookmarksListInfoViewController = {
let infoViewController = BookmarksListInfoViewController()
infoViewController.delegate = self
@ -30,7 +30,16 @@ final class BookmarksListViewController: MWMViewController {
sortToolbarItem.setTitleTextAttributes(toolbarItemAttributes, for: .normal)
moreToolbarItem.setTitleTextAttributes(toolbarItemAttributes, for: .normal)
sortToolbarItem.title = L("sort")
searchBar.placeholder = L("search_in_the_list")
extendedLayoutIncludesOpaqueBars = true
searchController.searchBar.placeholder = L("search_in_the_list")
searchController.obscuresBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = alternativeSizeClass(iPhone: true, iPad: false)
searchController.searchBar.delegate = self
searchController.searchBar.applyTheme()
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
cellStrategy.registerCells(tableView)
cellStrategy.cellCheckHandler = { [weak self] (viewModel, index, checked) in
self?.presenter.checkItem(in: viewModel, at: index, checked: checked)
@ -157,13 +166,11 @@ extension BookmarksListViewController: UITableViewDelegate {
extension BookmarksListViewController: UISearchBarDelegate {
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
searchBar.setShowsCancelButton(true, animated: true)
navigationController?.setNavigationBarHidden(true, animated: true)
presenter.activateSearch()
}
func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
searchBar.setShowsCancelButton(false, animated: true)
navigationController?.setNavigationBarHidden(false, animated: true)
presenter.deactivateSearch()
}

View file

@ -11,7 +11,6 @@
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="BookmarksListViewController" customModule="OMaps" customModuleProvider="target">
<connections>
<outlet property="moreToolbarItem" destination="Hhy-7w-Mz0" id="0bI-d2-WuP"/>
<outlet property="searchBar" destination="NbN-CP-W78" id="rqo-ea-6JD"/>
<outlet property="sortToolbarItem" destination="BWR-ft-be3" id="iiS-BA-nqF"/>
<outlet property="tableView" destination="fva-qQ-WqU" id="XoT-Z8-nGb"/>
<outlet property="toolBar" destination="cD8-kh-Gmp" id="1M2-EB-fbH"/>
@ -23,23 +22,6 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ue9-xA-QN5">
<rect key="frame" x="0.0" y="-52" width="375" height="108"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="108" id="Cq7-bf-LwJ"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="SearchBarView"/>
</userDefinedRuntimeAttributes>
</view>
<searchBar contentMode="redraw" translatesAutoresizingMaskIntoConstraints="NO" id="NbN-CP-W78">
<rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
<textInputTraits key="textInputTraits"/>
<connections>
<outlet property="delegate" destination="-1" id="Ub6-3s-o8d"/>
</connections>
</searchBar>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="grouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="60" sectionFooterHeight="1" translatesAutoresizingMaskIntoConstraints="NO" id="fva-qQ-WqU">
<rect key="frame" x="0.0" y="56" width="375" height="567"/>
<color key="backgroundColor" systemColor="groupTableViewBackgroundColor"/>
@ -77,19 +59,13 @@
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="NbN-CP-W78" secondAttribute="trailing" id="2y5-UT-rDQ"/>
<constraint firstItem="fva-qQ-WqU" firstAttribute="top" secondItem="NbN-CP-W78" secondAttribute="bottom" id="3cQ-al-WYm"/>
<constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="cD8-kh-Gmp" secondAttribute="bottom" id="FgV-RT-cCW"/>
<constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="cD8-kh-Gmp" secondAttribute="trailing" id="LZs-Au-R4I"/>
<constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="fva-qQ-WqU" secondAttribute="trailing" id="OsX-Pn-Js4"/>
<constraint firstItem="NbN-CP-W78" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="Ytt-hF-2JT"/>
<constraint firstItem="NbN-CP-W78" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="Zdn-7V-Z3C"/>
<constraint firstItem="fva-qQ-WqU" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="d61-I4-Ku3"/>
<constraint firstItem="cD8-kh-Gmp" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="jVJ-nY-UBF"/>
<constraint firstItem="cD8-kh-Gmp" firstAttribute="top" secondItem="fva-qQ-WqU" secondAttribute="bottom" id="lQL-J0-O69"/>
<constraint firstItem="Ue9-xA-QN5" firstAttribute="bottom" secondItem="NbN-CP-W78" secondAttribute="bottom" id="mVe-ws-GS2"/>
<constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Ue9-xA-QN5" secondAttribute="trailing" id="nqx-vt-Clg"/>
<constraint firstItem="Ue9-xA-QN5" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="qft-2l-dyg"/>
<constraint firstItem="fva-qQ-WqU" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="yZs-bO-F39"/>
</constraints>
<nil key="simulatedTopBarMetrics"/>
<userDefinedRuntimeAttributes>

View file

@ -34,6 +34,7 @@ final class BMCViewController: MWMViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.styleName = "PressBackground"
viewModel = BMCDefaultViewModel()
}

View file

@ -30,8 +30,9 @@ class GlobalStyleSheet: IStyleSheet {
theme.add(styleName: "SearchBar") { (s) -> (Void) in
s.backgroundColor = colors.white
s.barTintColor = colors.primary
s.tintColor = UIColor.white
s.fontColor = colors.blackSecondaryText
s.fontColor = colors.blackPrimaryText
s.fontColorDetailed = UIColor.white
s.tintColor = colors.blackSecondaryText
}
theme.add(styleName: "NavigationBar") { (s) -> (Void) in

View file

@ -27,7 +27,23 @@ class UISearchBarRenderer: UIViewRenderer {
var searchTextField: UITextField?
if #available(iOS 13, *) {
searchTextField = control.searchTextField
control.searchTextField.layer.cornerCurve = .continuous
}
// Default search bar implementation adds the grey transparent image for background. This code removes it and updates the corner radius. This is not working on iPad designed for mac.
biodranik commented 2024-01-26 09:43:01 +00:00 (Migrated from github.com)
Review

Good catch! Thanks for testing it on iOS and on MacOS!

Good catch! Thanks for testing it on iOS and on MacOS!
if #available(iOS 14.0, *), ProcessInfo.processInfo.isiOSAppOnMac {
} else {
control.setSearchFieldBackgroundImage(UIImage(), for: .normal)
}
searchTextField?.layer.cornerRadius = 8
searchTextField?.layer.masksToBounds = true
// Placeholder color
if let placeholder = searchTextField?.placeholder {
searchTextField?.attributedPlaceholder = NSAttributedString(string: placeholder, attributes: [.foregroundColor: UIColor.gray])
}
if let backgroundColor = style.backgroundColor {
searchTextField?.backgroundColor = backgroundColor
}
@ -37,16 +53,28 @@ class UISearchBarRenderer: UIViewRenderer {
control.setBackgroundImage(barTintColor.getImage(), for: position, barMetrics: .default)
control.backgroundColor = barTintColor
}
if let tintColor = style.tintColor {
control.tintColor = tintColor
}
if let font = style.font {
searchTextField?.font = font
}
if let fontColor = style.fontColor {
searchTextField?.textColor = fontColor
searchTextField?.leftView?.tintColor = fontColor
searchTextField?.tintColor = fontColor
}
if let fontColorDetailed = style.fontColorDetailed {
// Cancel button color
control.tintColor = fontColorDetailed
}
if let tintColor = style.tintColor {
searchTextField?.leftView?.tintColor = tintColor
// Placeholder indicator color
searchTextField?.tintColor = tintColor
// Clear button image
let clearButtonImage: UIImage?
if #available(iOS 13.0, *) {
clearButtonImage = UIImage(named: "ic_clear")?.withRenderingMode(.alwaysTemplate).withTintColor(tintColor)
} else {
clearButtonImage = UIImage(named: "ic_search_clear_14")
}
control.setImage(clearButtonImage, for: .clear, state: .normal)
}
}

View file

@ -19,6 +19,13 @@ extension UITextField {
class UITextFieldRenderer {
class func render(_ control: UITextField, style: Style) {
if let cornerRadius = style.cornerRadius {
control.layer.cornerRadius = cornerRadius
control.clipsToBounds = true
if #available(iOS 13.0, *) {
control.layer.cornerCurve = .continuous
}
}
var placeholderAttributes = [NSAttributedString.Key : Any]()
if let backgroundColor = style.backgroundColor {
control.backgroundColor = backgroundColor
@ -29,7 +36,6 @@ class UITextFieldRenderer {
}
if let fontColor = style.fontColor {
control.textColor = fontColor
}
if let tintColor = style.tintColor {
control.tintColor = tintColor

View file

@ -56,9 +56,11 @@ class SearchStyleSheet: IStyleSheet {
}
theme.add(styleName: "SearchSearchTextField") { (s) -> Void in
s.fontColor = colors.blackSecondaryText
s.fontColor = colors.blackPrimaryText
s.backgroundColor = colors.white
s.tintColor = colors.blackSecondaryText
s.cornerRadius = 8.0
s.barTintColor = colors.primary
}
theme.add(styleName: "SearchSearchTextFieldIcon") { (s) -> Void in

View file

@ -0,0 +1,12 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"symbols" : [
{
"filename" : "xmark.circle.fill.svg",
"idiom" : "universal"
}
]
}

View file

@ -0,0 +1,197 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Generator: Apple Native CoreSVG 149-->
<!DOCTYPE svg
PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="3300" height="2200">
<!--glyph: "uni100061.medium", point size: 100.0, font version: "17.0d9e1", template writer version: "59"-->
<style>.multicolor-0:systemRedColor {fill:#FF3B30;opacity:1.0}
.multicolor-1:white {fill:#FFFFFF;opacity:1.0}
.hierarchical-0:tertiary {fill:#8E8E8E}
.hierarchical-1:primary {fill:#212121}
.SFSymbolsPreviewFF3B30 {fill:#FF3B30;opacity:1.0}
.SFSymbolsPreviewFFFFFF {fill:#FFFFFF;opacity:1.0}
</style>
<g id="Notes">
<rect height="2200" id="artboard" style="fill:white;opacity:1" width="3300" x="0" y="0"/>
<line style="fill:none;stroke:black;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="292" y2="292"/>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 263 322)">Weight/Scale Variations</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 559.711 322)">Ultralight</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 856.422 322)">Thin</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1153.13 322)">Light</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1449.84 322)">Regular</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1746.56 322)">Medium</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2043.27 322)">Semibold</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2339.98 322)">Bold</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2636.69 322)">Heavy</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2933.4 322)">Black</text>
<line style="fill:none;stroke:black;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1903" y2="1903"/>
<g transform="matrix(1 0 0 1 263 1933)">
<path d="M9.24805 0.830078Q10.8691 0.830078 12.2949 0.214844Q13.7207-0.400391 14.8096-1.49414Q15.8984-2.58789 16.5186-4.01367Q17.1387-5.43945 17.1387-7.05078Q17.1387-8.66211 16.5186-10.0879Q15.8984-11.5137 14.8047-12.6074Q13.7109-13.7012 12.2852-14.3164Q10.8594-14.9316 9.23828-14.9316Q7.62695-14.9316 6.20117-14.3164Q4.77539-13.7012 3.69141-12.6074Q2.60742-11.5137 1.9873-10.0879Q1.36719-8.66211 1.36719-7.05078Q1.36719-5.43945 1.9873-4.01367Q2.60742-2.58789 3.69629-1.49414Q4.78516-0.400391 6.21094 0.214844Q7.63672 0.830078 9.24805 0.830078ZM9.24805-0.654297Q7.91992-0.654297 6.7627-1.14746Q5.60547-1.64062 4.73145-2.51953Q3.85742-3.39844 3.36426-4.56055Q2.87109-5.72266 2.87109-7.05078Q2.87109-8.37891 3.35938-9.54102Q3.84766-10.7031 4.72168-11.582Q5.5957-12.4609 6.75293-12.9541Q7.91016-13.4473 9.23828-13.4473Q10.5762-13.4473 11.7334-12.9541Q12.8906-12.4609 13.7695-11.582Q14.6484-10.7031 15.1465-9.54102Q15.6445-8.37891 15.6445-7.05078Q15.6445-5.72266 15.1514-4.56055Q14.6582-3.39844 13.7842-2.51953Q12.9102-1.64062 11.748-1.14746Q10.5859-0.654297 9.24805-0.654297ZM5.83984-7.04102Q5.83984-6.71875 6.04492-6.51855Q6.25-6.31836 6.5918-6.31836L8.50586-6.31836L8.50586-4.39453Q8.50586-4.0625 8.70605-3.85742Q8.90625-3.65234 9.22852-3.65234Q9.56055-3.65234 9.76562-3.85742Q9.9707-4.0625 9.9707-4.39453L9.9707-6.31836L11.8945-6.31836Q12.2266-6.31836 12.4316-6.51855Q12.6367-6.71875 12.6367-7.04102Q12.6367-7.37305 12.4316-7.57812Q12.2266-7.7832 11.8945-7.7832L9.9707-7.7832L9.9707-9.69727Q9.9707-10.0391 9.76562-10.2441Q9.56055-10.4492 9.22852-10.4492Q8.90625-10.4492 8.70605-10.2441Q8.50586-10.0391 8.50586-9.69727L8.50586-7.7832L6.5918-7.7832Q6.25-7.7832 6.04492-7.57812Q5.83984-7.37305 5.83984-7.04102Z"/>
</g>
<g transform="matrix(1 0 0 1 281.867 1933)">
<path d="M11.709 2.91016Q13.75 2.91016 15.5518 2.12891Q17.3535 1.34766 18.7305-0.0292969Q20.1074-1.40625 20.8887-3.20801Q21.6699-5.00977 21.6699-7.05078Q21.6699-9.0918 20.8887-10.8936Q20.1074-12.6953 18.7305-14.0723Q17.3535-15.4492 15.5469-16.2305Q13.7402-17.0117 11.6992-17.0117Q9.6582-17.0117 7.85645-16.2305Q6.05469-15.4492 4.68262-14.0723Q3.31055-12.6953 2.5293-10.8936Q1.74805-9.0918 1.74805-7.05078Q1.74805-5.00977 2.5293-3.20801Q3.31055-1.40625 4.6875-0.0292969Q6.06445 1.34766 7.86621 2.12891Q9.66797 2.91016 11.709 2.91016ZM11.709 1.25Q9.98047 1.25 8.47656 0.605469Q6.97266-0.0390625 5.83496-1.17676Q4.69727-2.31445 4.05762-3.81836Q3.41797-5.32227 3.41797-7.05078Q3.41797-8.7793 4.05762-10.2832Q4.69727-11.7871 5.83008-12.9297Q6.96289-14.0723 8.4668-14.7119Q9.9707-15.3516 11.6992-15.3516Q13.4277-15.3516 14.9316-14.7119Q16.4355-14.0723 17.5781-12.9297Q18.7207-11.7871 19.3652-10.2832Q20.0098-8.7793 20.0098-7.05078Q20.0098-5.32227 19.3701-3.81836Q18.7305-2.31445 17.5928-1.17676Q16.4551-0.0390625 14.9463 0.605469Q13.4375 1.25 11.709 1.25ZM7.39258-7.04102Q7.39258-6.68945 7.62695-6.46484Q7.86133-6.24023 8.23242-6.24023L10.8789-6.24023L10.8789-3.57422Q10.8789-3.21289 11.1035-2.9834Q11.3281-2.75391 11.6797-2.75391Q12.0508-2.75391 12.2852-2.9834Q12.5195-3.21289 12.5195-3.57422L12.5195-6.24023L15.1758-6.24023Q15.5371-6.24023 15.7715-6.46484Q16.0059-6.68945 16.0059-7.04102Q16.0059-7.41211 15.7715-7.6416Q15.5371-7.87109 15.1758-7.87109L12.5195-7.87109L12.5195-10.5176Q12.5195-10.8984 12.2852-11.1279Q12.0508-11.3574 11.6797-11.3574Q11.3281-11.3574 11.1035-11.1279Q10.8789-10.8984 10.8789-10.5176L10.8789-7.87109L8.23242-7.87109Q7.85156-7.87109 7.62207-7.6416Q7.39258-7.41211 7.39258-7.04102Z"/>
</g>
<g transform="matrix(1 0 0 1 305.646 1933)">
<path d="M14.9707 5.66406Q17.0605 5.66406 18.96 5.01465Q20.8594 4.36523 22.4512 3.19336Q24.043 2.02148 25.2197 0.429688Q26.3965-1.16211 27.0459-3.06641Q27.6953-4.9707 27.6953-7.05078Q27.6953-9.14062 27.0459-11.04Q26.3965-12.9395 25.2197-14.5312Q24.043-16.123 22.4512-17.2998Q20.8594-18.4766 18.9551-19.126Q17.0508-19.7754 14.9609-19.7754Q12.8711-19.7754 10.9717-19.126Q9.07227-18.4766 7.48535-17.2998Q5.89844-16.123 4.72168-14.5312Q3.54492-12.9395 2.90039-11.04Q2.25586-9.14062 2.25586-7.05078Q2.25586-4.9707 2.90527-3.06641Q3.55469-1.16211 4.72656 0.429688Q5.89844 2.02148 7.49023 3.19336Q9.08203 4.36523 10.9814 5.01465Q12.8809 5.66406 14.9707 5.66406ZM14.9707 3.84766Q13.1641 3.84766 11.5283 3.2959Q9.89258 2.74414 8.53516 1.74805Q7.17773 0.751953 6.17676-0.610352Q5.17578-1.97266 4.62891-3.6084Q4.08203-5.24414 4.08203-7.05078Q4.08203-8.86719 4.62891-10.5029Q5.17578-12.1387 6.17188-13.501Q7.16797-14.8633 8.52539-15.8594Q9.88281-16.8555 11.5186-17.4023Q13.1543-17.9492 14.9609-17.9492Q16.7773-17.9492 18.4131-17.4023Q20.0488-16.8555 21.4111-15.8594Q22.7734-14.8633 23.7695-13.501Q24.7656-12.1387 25.3174-10.5029Q25.8691-8.86719 25.8691-7.05078Q25.8789-5.24414 25.332-3.6084Q24.7852-1.97266 23.7842-0.610352Q22.7832 0.751953 21.4209 1.74805Q20.0586 2.74414 18.4229 3.2959Q16.7871 3.84766 14.9707 3.84766ZM9.45312-7.04102Q9.45312-6.66016 9.71191-6.41113Q9.9707-6.16211 10.3711-6.16211L14.0625-6.16211L14.0625-2.46094Q14.0625-2.06055 14.3115-1.80664Q14.5605-1.55273 14.9414-1.55273Q15.3516-1.55273 15.6055-1.80664Q15.8594-2.06055 15.8594-2.46094L15.8594-6.16211L19.5605-6.16211Q19.9609-6.16211 20.2148-6.41113Q20.4688-6.66016 20.4688-7.04102Q20.4688-7.45117 20.2148-7.70508Q19.9609-7.95898 19.5605-7.95898L15.8594-7.95898L15.8594-11.6504Q15.8594-12.0605 15.6055-12.3145Q15.3516-12.5684 14.9414-12.5684Q14.5605-12.5684 14.3115-12.3096Q14.0625-12.0508 14.0625-11.6504L14.0625-7.95898L10.3711-7.95898Q9.96094-7.95898 9.70703-7.70508Q9.45312-7.45117 9.45312-7.04102Z"/>
</g>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 263 1953)">Design Variations</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1971)">Symbols are supported in up to nine weights and three scales.</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1989)">For optimal layout with text and other symbols, vertically align</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 2007)">symbols with the adjacent text.</text>
<line style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="776" x2="776" y1="1919" y2="1933"/>
<g transform="matrix(1 0 0 1 776 1933)">
<path d="M3.31055 0.15625Q3.70117 0.15625 3.91602-0.00976562Q4.13086-0.175781 4.26758-0.585938L5.52734-4.0332L11.2891-4.0332L12.5488-0.585938Q12.6855-0.175781 12.9004-0.00976562Q13.1152 0.15625 13.4961 0.15625Q13.8867 0.15625 14.1162-0.0585938Q14.3457-0.273438 14.3457-0.644531Q14.3457-0.869141 14.2383-1.17188L9.6582-13.3691Q9.48242-13.8184 9.17969-14.043Q8.87695-14.2676 8.4082-14.2676Q7.5-14.2676 7.17773-13.3789L2.59766-1.16211Q2.49023-0.859375 2.49023-0.634766Q2.49023-0.263672 2.70996-0.0537109Q2.92969 0.15625 3.31055 0.15625ZM6.00586-5.51758L8.37891-12.0898L8.42773-12.0898L10.8008-5.51758Z"/>
</g>
<line style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="793.197" x2="793.197" y1="1919" y2="1933"/>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 776 1953)">Margins</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 1971)">Leading and trailing margins on the left and right side of each symbol</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 1989)">can be adjusted by modifying the x-location of the margin guidelines.</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 2007)">Modifications are automatically applied proportionally to all</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 2025)">scales and weights.</text>
<g transform="matrix(1 0 0 1 1289 1933)">
<path d="M2.8418 1.86523L4.54102 3.57422Q5.18555 4.22852 5.90332 4.17969Q6.62109 4.13086 7.31445 3.35938L18.0078-8.42773L17.041-9.4043L6.42578 2.27539Q6.16211 2.57812 5.89355 2.61719Q5.625 2.65625 5.27344 2.30469L4.10156 1.14258Q3.75 0.791016 3.79395 0.522461Q3.83789 0.253906 4.14062-0.0195312L15.6152-10.8203L14.6387-11.7871L3.04688-0.898438Q2.30469-0.214844 2.25098 0.498047Q2.19727 1.21094 2.8418 1.86523ZM9.25781-16.3281Q8.94531-16.0254 8.90625-15.6348Q8.86719-15.2441 9.04297-14.9512Q9.21875-14.6777 9.55566-14.541Q9.89258-14.4043 10.3809-14.5215Q11.4746-14.7754 12.5977-14.7314Q13.7207-14.6875 14.7949-13.9844L14.209-12.5293Q13.9551-11.9043 14.0674-11.4404Q14.1797-10.9766 14.5801-10.5664L16.875-8.25195Q17.2363-7.88086 17.5781-7.82227Q17.9199-7.76367 18.3398-7.8418L19.4043-8.03711L20.0684-7.36328L20.0293-6.80664Q20-6.43555 20.1221-6.12305Q20.2441-5.81055 20.6055-5.44922L21.3672-4.70703Q21.7285-4.3457 22.1533-4.33105Q22.5781-4.31641 22.9297-4.66797L25.8398-7.58789Q26.1914-7.93945 26.1816-8.35449Q26.1719-8.76953 25.8105-9.13086L25.0391-9.89258Q24.6875-10.2539 24.3799-10.3857Q24.0723-10.5176 23.7109-10.4883L23.1348-10.4395L22.4902-11.0742L22.7344-12.1973Q22.832-12.6172 22.6953-12.9834Q22.5586-13.3496 22.1191-13.7891L19.9219-15.9766Q18.6719-17.2168 17.2607-17.8369Q15.8496-18.457 14.4189-18.4814Q12.9883-18.5059 11.665-17.959Q10.3418-17.4121 9.25781-16.3281ZM10.752-15.957Q11.6602-16.6211 12.7002-16.9043Q13.7402-17.1875 14.8047-17.085Q15.8691-16.9824 16.8701-16.5137Q17.8711-16.0449 18.7012-15.2051L21.1328-12.793Q21.3086-12.6172 21.3525-12.4512Q21.3965-12.2852 21.3379-12.0312L21.0156-10.5469L22.5195-9.0625L23.5059-9.12109Q23.6914-9.13086 23.7891-9.09668Q23.8867-9.0625 24.0332-8.91602L24.6094-8.33984L22.168-5.89844L21.5918-6.47461Q21.4453-6.62109 21.4062-6.71875Q21.3672-6.81641 21.377-7.01172L21.4453-7.98828L19.9512-9.47266L18.4277-9.21875Q18.1836-9.16992 18.042-9.2041Q17.9004-9.23828 17.7148-9.41406L15.7129-11.416Q15.5176-11.5918 15.4932-11.7529Q15.4688-11.9141 15.5859-12.1875L16.4648-14.2773Q15.293-15.3711 13.8281-15.791Q12.3633-16.2109 10.8398-15.7617Q10.7227-15.7324 10.6885-15.8057Q10.6543-15.8789 10.752-15.957Z"/>
</g>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 1289 1953)">Exporting</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 1289 1971)">Symbols should be outlined when exporting to ensure the</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 1289 1989)">design is preserved when submitting to Xcode.</text>
<text id="template-version" style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1933)">Template v.3.0</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1951)">Requires Xcode 13 or greater</text>
<text id="descriptive-name" style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1969)">Generated from xmark.circle.fill</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1987)">Typeset at 100 points</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 726)">Small</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1156)">Medium</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1586)">Large</text>
</g>
<g id="Guides">
<g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 696)">
<path d="M0.993347 0L3.6377 0L29.3282-67.1326L30.0301-67.1326L30.0301-70.459L28.1227-70.459ZM11.6882-24.4797L46.9818-24.4797L46.2311-26.7288L12.4382-26.7288ZM55.1193 0L57.7637 0L30.6381-70.459L29.4327-70.459L29.4327-67.1326Z"/>
</g>
<line id="Baseline-S" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="696" y2="696"/>
<line id="Capline-S" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="625.541" y2="625.541"/>
<g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 1126)">
<path d="M0.993347 0L3.6377 0L29.3282-67.1326L30.0301-67.1326L30.0301-70.459L28.1227-70.459ZM11.6882-24.4797L46.9818-24.4797L46.2311-26.7288L12.4382-26.7288ZM55.1193 0L57.7637 0L30.6381-70.459L29.4327-70.459L29.4327-67.1326Z"/>
</g>
<line id="Baseline-M" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1126" y2="1126"/>
<line id="Capline-M" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1055.54" y2="1055.54"/>
<g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 1556)">
<path d="M0.993347 0L3.6377 0L29.3282-67.1326L30.0301-67.1326L30.0301-70.459L28.1227-70.459ZM11.6882-24.4797L46.9818-24.4797L46.2311-26.7288L12.4382-26.7288ZM55.1193 0L57.7637 0L30.6381-70.459L29.4327-70.459L29.4327-67.1326Z"/>
</g>
<line id="Baseline-L" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1556" y2="1556"/>
<line id="Capline-L" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1485.54" y2="1485.54"/>
<line id="left-margin-Regular-M" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="1391.3" x2="1391.3" y1="1030.79" y2="1150.12"/>
<line id="right-margin-Regular-M" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="1508.39" x2="1508.39" y1="1030.79" y2="1150.12"/>
</g>
<g id="Symbols">
<g id="Black-L" transform="matrix(1 0 0 1 2854.05 1556)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M79.3457 32.8613Q90.5762 32.8613 100.757 29.3945Q110.938 25.9277 119.458 19.6777Q127.979 13.4277 134.229 4.90723Q140.479-3.61328 143.945-13.7939Q147.412-23.9746 147.412-35.2051Q147.412-46.4355 143.945-56.6162Q140.479-66.7969 134.204-75.3174Q127.93-83.8379 119.434-90.1123Q110.938-96.3867 100.732-99.8291Q90.5273-103.271 79.2969-103.271Q68.1152-103.271 57.9102-99.8291Q47.7051-96.3867 39.209-90.1123Q30.7129-83.8379 24.4385-75.3174Q18.1641-66.7969 14.7217-56.6162Q11.2793-46.4355 11.2793-35.2051Q11.2793-23.9746 14.7217-13.7939Q18.1641-3.61328 24.4385 4.90723Q30.7129 13.4277 39.2334 19.6777Q47.7539 25.9277 57.9346 29.3945Q68.1152 32.8613 79.3457 32.8613Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M60.0586-7.4707Q56.4453-7.4707 53.9795-9.96094Q51.5137-12.4512 51.5137-16.1133Q51.5137-19.5312 54.1016-22.0215L67.1387-35.1074L54.1016-48.2422Q51.5137-50.7324 51.5137-54.1504Q51.5137-57.8125 53.9795-60.2783Q56.4453-62.7441 60.0586-62.7441Q63.9648-62.7441 66.4062-60.2539L79.3457-47.3633L92.3828-60.3027Q94.9219-62.793 98.7305-62.793Q102.344-62.793 104.81-60.3271Q107.275-57.8613 107.275-54.1992Q107.275-50.7812 104.688-48.291L91.6992-35.1074L104.688-22.0215Q107.275-19.5312 107.275-16.1133Q107.275-12.4512 104.785-9.96094Q102.295-7.4707 98.6816-7.4707Q94.8242-7.4707 92.2852-9.96094L79.3457-22.8027L66.5039-9.96094Q63.9648-7.4707 60.0586-7.4707Z"/>
</g>
<g id="Heavy-L" transform="matrix(1 0 0 1 2558.4 1556)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M78.2715 31.7871Q89.3555 31.7871 99.3652 28.3691Q109.375 24.9512 117.749 18.7988Q126.123 12.6465 132.3 4.24805Q138.477-4.15039 141.895-14.1602Q145.312-24.1699 145.312-35.2051Q145.312-46.2402 141.895-56.2744Q138.477-66.3086 132.3-74.6826Q126.123-83.0566 117.749-89.2578Q109.375-95.459 99.3408-98.8525Q89.3066-102.246 78.2227-102.246Q67.2363-102.246 57.2021-98.8525Q47.168-95.459 38.7939-89.2578Q30.4199-83.0566 24.2432-74.6826Q18.0664-66.3086 14.6729-56.2744Q11.2793-46.2402 11.2793-35.2051Q11.2793-24.1699 14.6729-14.1602Q18.0664-4.15039 24.2432 4.24805Q30.4199 12.6465 38.8184 18.7988Q47.2168 24.9512 57.2266 28.3691Q67.2363 31.7871 78.2715 31.7871Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M58.252-7.66602Q55.0781-7.66602 52.8809-9.8877Q50.6836-12.1094 50.6836-15.332Q50.6836-18.4082 52.9785-20.6055L67.4316-35.1074L52.9785-49.6582Q50.6836-51.9043 50.6836-54.9316Q50.6836-58.2031 52.8809-60.376Q55.0781-62.5488 58.252-62.5488Q61.7188-62.5488 63.8672-60.3516L78.2715-45.9473L92.7734-60.4004Q95.0195-62.5977 98.3887-62.5977Q101.562-62.5977 103.76-60.4248Q105.957-58.252 105.957-55.0293Q105.957-51.9531 103.662-49.7559L89.209-35.1074L103.662-20.6055Q105.957-18.4082 105.957-15.332Q105.957-12.1094 103.735-9.8877Q101.514-7.66602 98.291-7.66602Q94.9219-7.66602 92.6758-9.91211L78.2715-24.2188L63.9648-9.91211Q61.7188-7.66602 58.252-7.66602Z"/>
</g>
<g id="Bold-L" transform="matrix(1 0 0 1 2262.87 1556)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M77.0996 30.6152Q87.9395 30.6152 97.7783 27.2461Q107.617 23.877 115.869 17.8223Q124.121 11.7676 130.176 3.51562Q136.23-4.73633 139.6-14.5752Q142.969-24.4141 142.969-35.2539Q142.969-46.0938 139.6-55.9326Q136.23-65.7715 130.151-73.999Q124.072-82.2266 115.845-88.3057Q107.617-94.3848 97.7539-97.7295Q87.8906-101.074 77.0508-101.074Q66.2598-101.074 56.3965-97.7295Q46.5332-94.3848 38.3301-88.3057Q30.127-82.2266 24.0479-73.999Q17.9688-65.7715 14.624-55.9326Q11.2793-46.0938 11.2793-35.2539Q11.2793-24.4141 14.624-14.5752Q17.9688-4.73633 24.0479 3.51562Q30.127 11.7676 38.3545 17.8223Q46.582 23.877 56.4209 27.2461Q66.2598 30.6152 77.0996 30.6152Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M56.3477-7.95898Q53.5645-7.95898 51.6846-9.83887Q49.8047-11.7188 49.8047-14.502Q49.8047-17.1387 51.7578-19.043L67.8711-35.1562L51.7578-51.2695Q49.8047-53.2227 49.8047-55.8594Q49.8047-58.5938 51.6846-60.4736Q53.5645-62.3535 56.3477-62.3535Q59.2285-62.3535 61.084-60.4492L77.1484-44.4336L93.2617-60.498Q95.2148-62.4023 98.0469-62.4023Q100.781-62.4023 102.661-60.5225Q104.541-58.6426 104.541-55.9082Q104.541-53.2715 102.588-51.3672L86.4746-35.1562L102.539-19.0918Q104.541-17.1387 104.541-14.502Q104.541-11.7188 102.637-9.83887Q100.732-7.95898 97.9492-7.95898Q95.1172-7.95898 93.1152-9.86328L77.1484-25.8301L61.1816-9.86328Q59.2285-7.95898 56.3477-7.95898Z"/>
</g>
<g id="Semibold-L" transform="matrix(1 0 0 1 1966.97 1556)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M76.2695 29.7852Q86.9629 29.7852 96.6797 26.4648Q106.396 23.1445 114.551 17.1631Q122.705 11.1816 128.687 3.02734Q134.668-5.12695 137.988-14.8438Q141.309-24.5605 141.309-35.2539Q141.309-45.9473 137.988-55.6641Q134.668-65.3809 128.662-73.5107Q122.656-81.6406 114.526-87.6465Q106.396-93.6523 96.6553-96.9727Q86.9141-100.293 76.2207-100.293Q65.5273-100.293 55.8105-96.9727Q46.0938-93.6523 37.9883-87.6465Q29.8828-81.6406 23.877-73.5107Q17.8711-65.3809 14.5752-55.6641Q11.2793-45.9473 11.2793-35.2539Q11.2793-24.5605 14.5996-14.8438Q17.9199-5.12695 23.9014 3.02734Q29.8828 11.1816 38.0127 17.1631Q46.1426 23.1445 55.8594 26.4648Q65.5762 29.7852 76.2695 29.7852Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M54.9316-8.10547Q52.4902-8.10547 50.8301-9.79004Q49.1699-11.4746 49.1699-13.916Q49.1699-16.2598 50.8789-17.9688L68.1152-35.1562L50.8789-52.3926Q49.1699-54.1016 49.1699-56.4453Q49.1699-58.8867 50.8301-60.5225Q52.4902-62.1582 54.9316-62.1582Q57.4707-62.1582 59.082-60.498L76.3184-43.3105L93.5547-60.5469Q95.3125-62.2559 97.7539-62.2559Q100.146-62.2559 101.831-60.5957Q103.516-58.9355 103.516-56.543Q103.516-54.1992 101.758-52.4414L84.5703-35.1562L101.758-17.9688Q103.516-16.2109 103.516-13.916Q103.516-11.4746 101.807-9.79004Q100.098-8.10547 97.6562-8.10547Q95.2148-8.10547 93.4082-9.81445L76.3184-26.9531L59.2285-9.81445Q57.4707-8.10547 54.9316-8.10547Z"/>
</g>
<g id="Medium-L" transform="matrix(1 0 0 1 1670.87 1556)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M75.6836 29.1504Q86.2305 29.1504 95.8496 25.8545Q105.469 22.5586 113.55 16.626Q121.631 10.6934 127.563 2.63672Q133.496-5.41992 136.792-15.0635Q140.088-24.707 140.088-35.2539Q140.088-45.8496 136.792-55.4688Q133.496-65.0879 127.539-73.1445Q121.582-81.2012 113.525-87.1582Q105.469-93.1152 95.8252-96.3867Q86.1816-99.6582 75.6348-99.6582Q65.0391-99.6582 55.4199-96.3867Q45.8008-93.1152 37.7441-87.1582Q29.6875-81.2012 23.7549-73.1445Q17.8223-65.0879 14.5508-55.4688Q11.2793-45.8496 11.2793-35.2539Q11.2793-24.707 14.5508-15.0635Q17.8223-5.41992 23.7549 2.63672Q29.6875 10.6934 37.7686 16.626Q45.8496 22.5586 55.4688 25.8545Q65.0879 29.1504 75.6836 29.1504Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M53.9062-8.25195Q51.709-8.25195 50.1953-9.74121Q48.6816-11.2305 48.6816-13.4766Q48.6816-15.625 50.2441-17.1387L68.2617-35.2051L50.2441-53.2227Q48.6816-54.7852 48.6816-56.9336Q48.6816-59.082 50.1953-60.5713Q51.709-62.0605 53.9062-62.0605Q56.1523-62.0605 57.6172-60.5469L75.6836-42.5293L93.7988-60.5957Q95.3613-62.1582 97.5586-62.1582Q99.707-62.1582 101.245-60.6445Q102.783-59.1309 102.783-56.9824Q102.783-54.8828 101.172-53.3203L83.1055-35.2051L101.123-17.1875Q102.734-15.5762 102.734-13.4766Q102.734-11.2305 101.196-9.74121Q99.6582-8.25195 97.4609-8.25195Q95.2637-8.25195 93.6035-9.81445L75.6836-27.7832L57.7637-9.81445Q56.1523-8.25195 53.9062-8.25195Z"/>
</g>
<g id="Regular-L" transform="matrix(1 0 0 1 1374.97 1556)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M74.8535 28.3203Q85.3027 28.3203 94.7998 25.0732Q104.297 21.8262 112.256 15.9668Q120.215 10.1074 126.099 2.14844Q131.982-5.81055 135.229-15.332Q138.477-24.8535 138.477-35.2539Q138.477-45.7031 135.229-55.2002Q131.982-64.6973 126.099-72.6562Q120.215-80.6152 112.256-86.499Q104.297-92.3828 94.7754-95.6299Q85.2539-98.877 74.8047-98.877Q64.3555-98.877 54.8584-95.6299Q45.3613-92.3828 37.4268-86.499Q29.4922-80.6152 23.6084-72.6562Q17.7246-64.6973 14.502-55.2002Q11.2793-45.7031 11.2793-35.2539Q11.2793-24.8535 14.5264-15.332Q17.7734-5.81055 23.6328 2.14844Q29.4922 10.1074 37.4512 15.9668Q45.4102 21.8262 54.9072 25.0732Q64.4043 28.3203 74.8535 28.3203Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M52.5391-8.39844Q50.6348-8.39844 49.3408-9.69238Q48.0469-10.9863 48.0469-12.8906Q48.0469-14.7461 49.3652-16.0645L68.5059-35.2051L49.3652-54.2969Q48.0469-55.6641 48.0469-57.5195Q48.0469-59.375 49.3408-60.6445Q50.6348-61.9141 52.5391-61.9141Q54.4434-61.9141 55.6641-60.5957L74.8535-41.4551L94.0918-60.6445Q95.459-62.0117 97.2656-62.0117Q99.1211-62.0117 100.439-60.7178Q101.758-59.4238 101.758-57.6172Q101.758-55.7617 100.391-54.3945L81.2012-35.2051L100.342-16.1133Q101.709-14.6973 101.709-12.8906Q101.709-10.9863 100.391-9.69238Q99.0723-8.39844 97.168-8.39844Q95.3613-8.39844 93.8965-9.76562L74.8535-28.8574L55.8105-9.76562Q54.4434-8.39844 52.5391-8.39844Z"/>
</g>
<g id="Light-L" transform="matrix(1 0 0 1 1079.18 1556)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M73.9258 27.3926Q84.2285 27.3926 93.6035 24.1943Q102.979 20.9961 110.815 15.2344Q118.652 9.47266 124.438 1.63574Q130.225-6.20117 133.423-15.5762Q136.621-24.9512 136.621-35.2539Q136.621-45.5566 133.423-54.9316Q130.225-64.3066 124.438-72.1436Q118.652-79.9805 110.815-85.7666Q102.979-91.5527 93.6035-94.751Q84.2285-97.9492 73.877-97.9492Q63.5742-97.9492 54.2236-94.751Q44.873-91.5527 37.0361-85.7666Q29.1992-79.9805 23.4131-72.1436Q17.627-64.3066 14.4531-54.9316Q11.2793-45.5566 11.2793-35.2539Q11.2793-24.9512 14.4775-15.5762Q17.6758-6.20117 23.4375 1.63574Q29.1992 9.47266 37.0361 15.2344Q44.873 20.9961 54.248 24.1943Q63.623 27.3926 73.9258 27.3926Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M51.416-9.17969Q49.9023-9.17969 48.9014-10.1807Q47.9004-11.1816 47.9004-12.6465Q47.9004-14.1113 48.9746-15.1367L68.9941-35.2051L48.9746-55.2246Q47.9004-56.2988 47.9004-57.7637Q47.9004-59.2285 48.9014-60.2051Q49.9023-61.1816 51.416-61.1816Q52.8809-61.1816 53.9062-60.0586L73.9746-40.0879L93.9941-60.1074Q95.1172-61.2305 96.5332-61.2305Q97.998-61.2305 99.0234-60.2295Q100.049-59.2285 100.049-57.8125Q100.049-56.3477 98.9746-55.2734L78.8574-35.2051L98.9258-15.1855Q100-14.0625 100-12.6465Q100-11.1816 98.9746-10.1807Q97.9492-9.17969 96.4844-9.17969Q95.0684-9.17969 93.8477-10.3027L73.9746-30.2734L54.0527-10.3027Q52.8809-9.17969 51.416-9.17969Z"/>
</g>
<g id="Thin-L" transform="matrix(1 0 0 1 783.689 1556)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M72.7051 26.1719Q82.8613 26.1719 92.041 23.0469Q101.221 19.9219 108.911 14.2822Q116.602 8.64258 122.266 0.952148Q127.93-6.73828 131.055-15.9424Q134.18-25.1465 134.18-35.2539Q134.18-45.4102 131.055-54.5898Q127.93-63.7695 122.29-71.46Q116.65-79.1504 108.936-84.8145Q101.221-90.4785 92.0166-93.6035Q82.8125-96.7285 72.7051-96.7285Q62.5488-96.7285 53.3691-93.6035Q44.1895-90.4785 36.499-84.8145Q28.8086-79.1504 23.1689-71.46Q17.5293-63.7695 14.4043-54.5898Q11.2793-45.4102 11.2793-35.2539Q11.2793-25.1465 14.4043-15.9424Q17.5293-6.73828 23.1689 0.952148Q28.8086 8.64258 36.5234 14.2822Q44.2383 19.9219 53.418 23.0469Q62.5977 26.1719 72.7051 26.1719Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M49.8535-10.2051Q48.9258-10.2051 48.291-10.8154Q47.6562-11.4258 47.6562-12.3047Q47.6562-13.2324 48.3887-13.9648L69.6289-35.2051L48.3887-56.3965Q47.6562-57.1777 47.6562-58.1055Q47.6562-58.9844 48.291-59.5703Q48.9258-60.1562 49.8535-60.1562Q50.8301-60.1562 51.5625-59.3262L72.7051-38.2324L93.7988-59.3262Q94.6289-60.1562 95.5566-60.1562Q96.4844-60.1562 97.1191-59.5703Q97.7539-58.9844 97.7539-58.1055Q97.7539-57.1777 97.0215-56.4453L75.7324-35.2051L97.0215-13.9648Q97.7539-13.2324 97.7539-12.3047Q97.7539-11.4258 97.1191-10.8154Q96.4844-10.2051 95.5566-10.2051Q94.5801-10.2051 93.7988-11.0352L72.7051-32.1289L51.6113-11.0352Q50.7812-10.2051 49.8535-10.2051Z"/>
</g>
<g id="Ultralight-L" transform="matrix(1 0 0 1 487.603 1556)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M72.0703 25.5371Q82.1289 25.5371 91.2354 22.4609Q100.342 19.3848 107.935 13.7939Q115.527 8.20312 121.143 0.585938Q126.758-7.03125 129.858-16.1133Q132.959-25.1953 132.959-35.2539Q132.959-45.3125 129.858-54.4189Q126.758-63.5254 121.167-71.1182Q115.576-78.7109 107.959-84.3262Q100.342-89.9414 91.2354-93.0176Q82.1289-96.0938 72.0703-96.0938Q62.0605-96.0938 52.9541-93.0176Q43.8477-89.9414 36.2305-84.3262Q28.6133-78.7109 23.0225-71.1182Q17.4316-63.5254 14.3555-54.4189Q11.2793-45.3125 11.2793-35.2539Q11.2793-25.1953 14.3555-16.1133Q17.4316-7.03125 23.0225 0.585938Q28.6133 8.20312 36.2305 13.7939Q43.8477 19.3848 52.9541 22.4609Q62.0605 25.5371 72.0703 25.5371Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M49.1211-10.7422Q48.4375-10.7422 47.998-11.1328Q47.5586-11.5234 47.5586-12.1094Q47.5586-12.793 48.0957-13.3301L69.9707-35.2051L48.0957-57.0312Q47.5586-57.6172 47.5586-58.3008Q47.5586-58.8867 47.998-59.2773Q48.4375-59.668 49.1211-59.668Q49.7559-59.668 50.3906-58.9844L72.1191-37.3047L93.75-58.9844Q94.3848-59.6191 95.0684-59.6191Q95.7031-59.6191 96.1426-59.2285Q96.582-58.8379 96.582-58.252Q96.582-57.5684 96.0449-57.0312L74.1699-35.2051L96.0449-13.3301Q96.582-12.793 96.582-12.1094Q96.582-11.5234 96.1426-11.1328Q95.7031-10.7422 95.0684-10.7422Q94.3848-10.7422 93.75-11.377L72.1191-33.0566L50.4395-11.377Q49.7559-10.7422 49.1211-10.7422Z"/>
</g>
<g id="Black-M" transform="matrix(1 0 0 1 2871.32 1126)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M62.0605 18.1152Q73.0957 18.1152 82.7637 13.9648Q92.4316 9.81445 99.7559 2.46582Q107.08-4.88281 111.255-14.5264Q115.43-24.1699 115.43-35.2051Q115.43-46.2402 111.255-55.8838Q107.08-65.5273 99.7559-72.876Q92.4316-80.2246 82.7637-84.375Q73.0957-88.5254 62.0605-88.5254Q51.0742-88.5254 41.4062-84.375Q31.7383-80.2246 24.3896-72.876Q17.041-65.5273 12.8906-55.8838Q8.74023-46.2402 8.74023-35.2051Q8.74023-24.1699 12.8906-14.5264Q17.041-4.88281 24.3896 2.46582Q31.7383 9.81445 41.4062 13.9648Q51.0742 18.1152 62.0605 18.1152Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M47.7051-13.7695Q44.6777-13.7695 42.627-15.8447Q40.5762-17.9199 40.5762-20.9961Q40.5762-23.8281 42.7246-25.8789L51.9531-35.1562L42.7246-44.3848Q40.5762-46.4844 40.5762-49.3164Q40.5762-52.3926 42.627-54.4434Q44.6777-56.4941 47.7051-56.4941Q50.9766-56.4941 53.0762-54.3945L62.1094-45.3613L71.1914-54.3945Q73.3398-56.4941 76.5625-56.4941Q79.5898-56.4941 81.6406-54.4434Q83.6914-52.3926 83.6914-49.3164Q83.6914-46.4844 81.543-44.3848L72.3633-35.1562L81.4941-25.8789Q83.6914-23.7793 83.6914-20.9961Q83.6914-17.9199 81.6406-15.8447Q79.5898-13.7695 76.5625-13.7695Q73.291-13.7695 71.1914-15.918L62.1094-24.8535L53.0762-15.918Q50.9766-13.7695 47.7051-13.7695Z"/>
</g>
<g id="Heavy-M" transform="matrix(1 0 0 1 2575.44 1126)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M61.2305 17.2852Q72.0703 17.2852 81.5918 13.1836Q91.1133 9.08203 98.3154 1.85547Q105.518-5.37109 109.644-14.8682Q113.77-24.3652 113.77-35.2051Q113.77-46.0449 109.644-55.542Q105.518-65.0391 98.3154-72.29Q91.1133-79.541 81.5918-83.6182Q72.0703-87.6953 61.2305-87.6953Q50.4395-87.6953 40.918-83.6182Q31.3965-79.541 24.1699-72.29Q16.9434-65.0391 12.8418-55.542Q8.74023-46.0449 8.74023-35.2051Q8.74023-24.3652 12.8418-14.8682Q16.9434-5.37109 24.1699 1.85547Q31.3965 9.08203 40.918 13.1836Q50.4395 17.2852 61.2305 17.2852Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M46.1914-13.8184Q43.5059-13.8184 41.6504-15.6738Q39.7949-17.5293 39.7949-20.3125Q39.7949-22.8516 41.6992-24.707L52.1484-35.1562L41.6992-45.6055Q39.7949-47.4609 39.7949-50.0488Q39.7949-52.7832 41.6504-54.6143Q43.5059-56.4453 46.1914-56.4453Q49.1211-56.4453 50.9766-54.5898L61.2305-44.2871L71.6309-54.5898Q73.5352-56.4941 76.3672-56.4941Q79.0527-56.4941 80.9082-54.6387Q82.7637-52.7832 82.7637-50.0488Q82.7637-47.5098 80.8594-45.6055L70.459-35.1562L80.8105-24.707Q82.7637-22.8027 82.7637-20.3125Q82.7637-17.5293 80.9082-15.6738Q79.0527-13.8184 76.3672-13.8184Q73.4863-13.8184 71.582-15.7227L61.2305-25.9277L50.9766-15.7227Q49.1211-13.8184 46.1914-13.8184Z"/>
</g>
<g id="Bold-M" transform="matrix(1 0 0 1 2279.66 1126)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M60.3027 16.3574Q70.9473 16.3574 80.2734 12.3291Q89.5996 8.30078 96.7041 1.17188Q103.809-5.95703 107.861-15.2832Q111.914-24.6094 111.914-35.2539Q111.914-45.8496 107.861-55.1758Q103.809-64.502 96.7041-71.6309Q89.5996-78.7598 80.249-82.7881Q70.8984-86.8164 60.3027-86.8164Q49.707-86.8164 40.3564-82.7881Q31.0059-78.7598 23.9014-71.6309Q16.7969-64.502 12.7686-55.1758Q8.74023-45.8496 8.74023-35.2539Q8.74023-24.6094 12.7686-15.2832Q16.7969-5.95703 23.9258 1.17188Q31.0547 8.30078 40.3809 12.3291Q49.707 16.3574 60.3027 16.3574Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M44.5312-13.8672Q42.1875-13.8672 40.5762-15.5029Q38.9648-17.1387 38.9648-19.5312Q38.9648-21.7773 40.625-23.3887L52.3926-35.2051L40.625-46.9727Q38.9648-48.584 38.9648-50.8301Q38.9648-53.2227 40.5762-54.834Q42.1875-56.4453 44.5312-56.4453Q47.0703-56.4453 48.6328-54.7852L60.3516-43.1152L72.1191-54.834Q73.7793-56.4941 76.2207-56.4941Q78.5645-56.4941 80.1758-54.8828Q81.7871-53.2715 81.7871-50.8789Q81.7871-48.6816 80.127-46.9727L68.3594-35.2051L80.0781-23.4375Q81.7383-21.7285 81.7383-19.5312Q81.7383-17.1387 80.127-15.5029Q78.5156-13.8672 76.1719-13.8672Q73.7305-13.8672 72.0215-15.5762L60.3516-27.1973L48.7305-15.5762Q47.0703-13.8672 44.5312-13.8672Z"/>
</g>
<g id="Semibold-M" transform="matrix(1 0 0 1 1983.6 1126)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M59.668 15.6738Q70.1172 15.6738 79.3457 11.6943Q88.5742 7.71484 95.6055 0.683594Q102.637-6.34766 106.616-15.5518Q110.596-24.7559 110.596-35.2539Q110.596-45.7031 106.616-54.9072Q102.637-64.1113 95.6055-71.1426Q88.5742-78.1738 79.3457-82.1777Q70.1172-86.1816 59.6191-86.1816Q49.1699-86.1816 39.9658-82.1777Q30.7617-78.1738 23.7305-71.1426Q16.6992-64.1113 12.7197-54.9072Q8.74023-45.7031 8.74023-35.2539Q8.74023-24.7559 12.7197-15.5518Q16.6992-6.34766 23.7305 0.683594Q30.7617 7.71484 39.9902 11.6943Q49.2188 15.6738 59.668 15.6738Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M43.3594-13.916Q41.2598-13.916 39.8193-15.3809Q38.3789-16.8457 38.3789-18.9941Q38.3789-21.0449 39.8438-22.4609L52.5391-35.2051L39.8438-47.9004Q38.3789-49.3652 38.3789-51.3672Q38.3789-53.5156 39.8193-54.9561Q41.2598-56.3965 43.3594-56.3965Q45.6055-56.3965 47.0215-54.9316L59.668-42.2852L72.4609-54.9805Q73.9258-56.4453 76.0742-56.4453Q78.1738-56.4453 79.6143-55.0049Q81.0547-53.5645 81.0547-51.4648Q81.0547-49.4629 79.5898-47.9004L66.8457-35.2051L79.541-22.5098Q81.0059-20.9961 81.0059-18.9941Q81.0059-16.8457 79.5654-15.3809Q78.125-13.916 75.9766-13.916Q73.877-13.916 72.3145-15.4297L59.668-28.0273L47.1191-15.4297Q45.6055-13.916 43.3594-13.916Z"/>
</g>
<g id="Medium-M" transform="matrix(1 0 0 1 1687.37 1126)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M59.1797 15.1855Q69.5312 15.1855 78.6621 11.2305Q87.793 7.27539 94.751 0.317383Q101.709-6.64062 105.664-15.7715Q109.619-24.9023 109.619-35.2539Q109.619-45.6055 105.664-54.7363Q101.709-63.8672 94.751-70.8252Q87.793-77.7832 78.6377-81.7383Q69.4824-85.6934 59.1309-85.6934Q48.7793-85.6934 39.6484-81.7383Q30.5176-77.7832 23.584-70.8252Q16.6504-63.8672 12.6953-54.7363Q8.74023-45.6055 8.74023-35.2539Q8.74023-24.9023 12.6953-15.7715Q16.6504-6.64062 23.6084 0.317383Q30.5664 7.27539 39.6973 11.2305Q48.8281 15.1855 59.1797 15.1855Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M42.5293-13.916Q40.5762-13.916 39.2578-15.2832Q37.9395-16.6504 37.9395-18.6035Q37.9395-20.459 39.3066-21.7773L52.6855-35.2051L39.3066-48.584Q37.9395-49.9512 37.9395-51.8066Q37.9395-53.7598 39.2578-55.0781Q40.5762-56.3965 42.5293-56.3965Q44.5312-56.3965 45.8008-55.0293L59.1797-41.6992L72.7051-55.0781Q74.0723-56.4453 75.9766-56.4453Q77.8809-56.4453 79.1992-55.127Q80.5176-53.8086 80.5176-51.8555Q80.5176-50.0488 79.1992-48.6328L65.7715-35.2051L79.1504-21.8262Q80.5176-20.4102 80.5176-18.6035Q80.5176-16.6504 79.1748-15.2832Q77.832-13.916 75.8789-13.916Q73.9746-13.916 72.5586-15.332L59.1797-28.6621L45.8984-15.332Q44.5312-13.916 42.5293-13.916Z"/>
</g>
<g id="Regular-M" transform="matrix(1 0 0 1 1391.3 1126)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M58.5449 14.5508Q68.75 14.5508 77.7588 10.6445Q86.7676 6.73828 93.6523-0.146484Q100.537-7.03125 104.443-16.04Q108.35-25.0488 108.35-35.2539Q108.35-45.459 104.443-54.4678Q100.537-63.4766 93.6523-70.3613Q86.7676-77.2461 77.7344-81.1523Q68.7012-85.0586 58.4961-85.0586Q48.291-85.0586 39.2822-81.1523Q30.2734-77.2461 23.4131-70.3613Q16.5527-63.4766 12.6465-54.4678Q8.74023-45.459 8.74023-35.2539Q8.74023-25.0488 12.6465-16.04Q16.5527-7.03125 23.4375-0.146484Q30.3223 6.73828 39.3311 10.6445Q48.3398 14.5508 58.5449 14.5508Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M41.3574-13.9648Q39.6973-13.9648 38.5254-15.1611Q37.3535-16.3574 37.3535-18.0664Q37.3535-19.7266 38.5254-20.8984L52.832-35.2051L38.5254-49.5117Q37.3535-50.6836 37.3535-52.3438Q37.3535-54.0527 38.5254-55.2002Q39.6973-56.3477 41.3574-56.3477Q43.1152-56.3477 44.1895-55.1758L58.5449-40.8691L73.0469-55.2246Q74.2188-56.4453 75.8301-56.4453Q77.4902-56.4453 78.6621-55.2734Q79.834-54.1016 79.834-52.4414Q79.834-50.8301 78.6621-49.5605L64.3066-35.2051L78.6133-20.9473Q79.7852-19.6777 79.7852-18.0664Q79.7852-16.3574 78.6133-15.1611Q77.4414-13.9648 75.7324-13.9648Q74.1211-13.9648 72.8516-15.1855L58.5449-29.4922L44.3359-15.1855Q43.1152-13.9648 41.3574-13.9648Z"/>
</g>
<g id="Light-M" transform="matrix(1 0 0 1 1095.41 1126)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M57.7148 13.7207Q67.7734 13.7207 76.6357 9.8877Q85.498 6.05469 92.2607-0.708008Q99.0234-7.4707 102.856-16.333Q106.689-25.1953 106.689-35.2539Q106.689-45.3125 102.856-54.1748Q99.0234-63.0371 92.2607-69.7998Q85.498-76.5625 76.6113-80.3955Q67.7246-84.2285 57.666-84.2285Q47.6074-84.2285 38.7451-80.3955Q29.8828-76.5625 23.1445-69.7998Q16.4062-63.0371 12.5732-54.1748Q8.74023-45.3125 8.74023-35.2539Q8.74023-25.1953 12.5732-16.333Q16.4062-7.4707 23.1689-0.708008Q29.9316 6.05469 38.7939 9.8877Q47.6562 13.7207 57.7148 13.7207Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M40.332-14.6973Q39.0137-14.6973 38.1104-15.6006Q37.207-16.5039 37.207-17.8223Q37.207-19.1406 38.1348-20.0684L53.2715-35.2051L38.1348-50.3418Q37.207-51.2695 37.207-52.5879Q37.207-53.9062 38.1104-54.7852Q39.0137-55.6641 40.332-55.6641Q41.6992-55.6641 42.627-54.6875L57.7148-39.6484L72.9492-54.7363Q73.877-55.7129 75.1465-55.7129Q76.4648-55.7129 77.3682-54.8096Q78.2715-53.9062 78.2715-52.6367Q78.2715-51.3672 77.3438-50.3418L62.207-35.2051L77.2949-20.1172Q78.2715-19.0918 78.2715-17.8223Q78.2715-16.5039 77.3438-15.6006Q76.416-14.6973 75.0977-14.6973Q73.8281-14.6973 72.8027-15.6738L57.7148-30.7617L42.7246-15.6738Q41.6992-14.6973 40.332-14.6973Z"/>
</g>
<g id="Thin-M" transform="matrix(1 0 0 1 799.793 1126)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M56.5918 12.5977Q66.5039 12.5977 75.1709 8.88672Q83.8379 5.17578 90.4297-1.44043Q97.0215-8.05664 100.781-16.7236Q104.541-25.3906 104.541-35.2539Q104.541-45.1172 100.781-53.7842Q97.0215-62.4512 90.4297-69.0674Q83.8379-75.6836 75.1709-79.3945Q66.5039-83.1055 56.5918-83.1055Q46.7285-83.1055 38.0615-79.3945Q29.3945-75.6836 22.8271-69.0674Q16.2598-62.4512 12.5-53.7842Q8.74023-45.1172 8.74023-35.2539Q8.74023-25.3906 12.4756-16.7236Q16.2109-8.05664 22.8027-1.44043Q29.3945 5.17578 38.0859 8.88672Q46.7773 12.5977 56.5918 12.5977Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M38.9648-15.625Q38.1836-15.625 37.5977-16.1621Q37.0117-16.6992 37.0117-17.4805Q37.0117-18.3594 37.6465-18.9941L53.8574-35.2051L37.6465-51.416Q37.0117-52.002 37.0117-52.8809Q37.0117-53.7109 37.5977-54.248Q38.1836-54.7852 38.9648-54.7852Q39.8438-54.7852 40.5273-54.0527L56.6406-37.9883L72.7539-54.0527Q73.4375-54.7852 74.3164-54.7852Q75.0977-54.7852 75.6836-54.2236Q76.2695-53.6621 76.2695-52.8809Q76.2695-52.0508 75.6348-51.416L59.4238-35.2051L75.5859-18.9941Q76.2207-18.3594 76.2207-17.4805Q76.2207-16.6992 75.6592-16.1621Q75.0977-15.625 74.2676-15.625Q73.4375-15.625 72.7051-16.3086L56.6406-32.4219L40.5273-16.3086Q39.8438-15.625 38.9648-15.625Z"/>
</g>
<g id="Ultralight-M" transform="matrix(1 0 0 1 503.641 1126)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M56.0547 12.0605Q65.8203 12.0605 74.3896 8.37402Q82.959 4.6875 89.4775-1.83105Q95.9961-8.34961 99.707-16.9189Q103.418-25.4883 103.418-35.2539Q103.418-45.0195 99.707-53.5889Q95.9961-62.1582 89.4775-68.6768Q82.959-75.1953 74.3896-78.8818Q65.8203-82.5684 56.0547-82.5684Q46.2891-82.5684 37.7197-78.8818Q29.1504-75.1953 22.6562-68.6768Q16.1621-62.1582 12.4512-53.5889Q8.74023-45.0195 8.74023-35.2539Q8.74023-25.4883 12.4268-16.9189Q16.1133-8.34961 22.6318-1.83105Q29.1504 4.6875 37.7197 8.37402Q46.2891 12.0605 56.0547 12.0605Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M38.2812-16.1133Q37.6953-16.1133 37.3047-16.4551Q36.9141-16.7969 36.9141-17.334Q36.9141-17.9688 37.4023-18.457L54.1504-35.2051L37.4023-51.9531Q36.9141-52.3926 36.9141-53.0273Q36.9141-53.6133 37.3047-53.9551Q37.6953-54.2969 38.2812-54.2969Q38.916-54.2969 39.4531-53.7109L56.0547-37.1582L72.7051-53.7109Q73.2422-54.2969 73.8281-54.2969Q74.4141-54.2969 74.8047-53.9307Q75.1953-53.5645 75.1953-53.0273Q75.1953-52.4414 74.707-51.9531L58.0078-35.2051L74.707-18.457Q75.1953-17.9688 75.1953-17.334Q75.1953-16.7969 74.8047-16.4551Q74.4141-16.1133 73.8281-16.1133Q73.2422-16.1133 72.7051-16.6504L56.0547-33.252L39.4531-16.6504Q38.916-16.1133 38.2812-16.1133Z"/>
</g>
<g id="Black-S" transform="matrix(1 0 0 1 2884.57 696)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M48.8281 6.78711Q57.5195 6.78711 65.1123 3.51562Q72.7051 0.244141 78.4912-5.54199Q84.2773-11.3281 87.5488-18.9209Q90.8203-26.5137 90.8203-35.2051Q90.8203-43.8965 87.5488-51.4893Q84.2773-59.082 78.4912-64.8682Q72.7051-70.6543 65.1123-73.9258Q57.5195-77.1973 48.8281-77.1973Q40.1367-77.1973 32.5439-73.9258Q24.9512-70.6543 19.165-64.8682Q13.3789-59.082 10.1074-51.4893Q6.83594-43.8965 6.83594-35.2051Q6.83594-26.5137 10.1074-18.9209Q13.3789-11.3281 19.165-5.54199Q24.9512 0.244141 32.5439 3.51562Q40.1367 6.78711 48.8281 6.78711Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M37.7441-18.457Q35.3027-18.457 33.6426-20.1172Q31.9824-21.7773 31.9824-24.2676Q31.9824-26.5625 33.7402-28.2227L40.625-35.1562L33.7402-42.0898Q31.9824-43.75 31.9824-46.0449Q31.9824-48.5352 33.6426-50.1953Q35.3027-51.8555 37.7441-51.8555Q40.3809-51.8555 42.0898-50.1465L48.8281-43.4082L55.6152-50.1465Q57.3242-51.8555 59.9609-51.8555Q62.4023-51.8555 64.0625-50.1953Q65.7227-48.5352 65.7227-46.0449Q65.7227-43.75 63.9648-42.0898L57.1289-35.1562L63.9648-28.2227Q65.7227-26.5625 65.7227-24.2676Q65.7227-21.7773 64.0625-20.1172Q62.4023-18.457 59.9609-18.457Q57.3242-18.457 55.6152-20.166L48.8281-26.8555L42.0898-20.166Q40.3809-18.457 37.7441-18.457Z"/>
</g>
<g id="Heavy-S" transform="matrix(1 0 0 1 2588.47 696)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M48.1934 6.15234Q56.7871 6.15234 64.2578 2.92969Q71.7285-0.292969 77.4414-6.00586Q83.1543-11.7188 86.377-19.1895Q89.5996-26.6602 89.5996-35.2051Q89.5996-43.75 86.377-51.2451Q83.1543-58.7402 77.4414-64.4531Q71.7285-70.166 64.2334-73.3887Q56.7383-76.6113 48.1934-76.6113Q39.6484-76.6113 32.1777-73.3887Q24.707-70.166 18.9941-64.4531Q13.2812-58.7402 10.0586-51.2451Q6.83594-43.75 6.83594-35.2051Q6.83594-26.6602 10.0586-19.1895Q13.2812-11.7188 18.9941-6.00586Q24.707-0.292969 32.2021 2.92969Q39.6973 6.15234 48.1934 6.15234Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M36.5723-18.4082Q34.375-18.4082 32.8613-19.9219Q31.3477-21.4355 31.3477-23.6816Q31.3477-25.7812 32.9102-27.2949L40.7715-35.1562L32.9102-43.0176Q31.3477-44.5312 31.3477-46.6309Q31.3477-48.877 32.8613-50.3906Q34.375-51.9043 36.5723-51.9043Q38.9648-51.9043 40.4785-50.3418L48.1934-42.6758L56.0059-50.3906Q57.5195-51.9531 59.9121-51.9531Q62.1094-51.9531 63.623-50.4395Q65.1367-48.9258 65.1367-46.6797Q65.1367-44.5801 63.5254-43.0176L55.7617-35.1562L63.5254-27.3438Q65.1367-25.7812 65.1367-23.6816Q65.1367-21.4355 63.623-19.9219Q62.1094-18.4082 59.8633-18.4082Q57.5195-18.4082 55.957-19.9707L48.1934-27.6367L40.5273-19.9707Q38.9648-18.4082 36.5723-18.4082Z"/>
</g>
<g id="Bold-S" transform="matrix(1 0 0 1 2292.43 696)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M47.5586 5.46875Q55.957 5.46875 63.3057 2.29492Q70.6543-0.878906 76.2695-6.51855Q81.8848-12.1582 85.083-19.5068Q88.2812-26.8555 88.2812-35.2539Q88.2812-43.6035 85.083-50.9766Q81.8848-58.3496 76.2695-63.9648Q70.6543-69.5801 63.2812-72.7539Q55.9082-75.9277 47.5098-75.9277Q39.1602-75.9277 31.7871-72.7539Q24.4141-69.5801 18.8232-63.9648Q13.2324-58.3496 10.0342-50.9766Q6.83594-43.6035 6.83594-35.2539Q6.83594-26.8555 10.0342-19.5068Q13.2324-12.1582 18.8477-6.51855Q24.4629-0.878906 31.8115 2.29492Q39.1602 5.46875 47.5586 5.46875Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M35.3516-18.3594Q33.3984-18.3594 32.0312-19.7266Q30.6641-21.0938 30.6641-23.0957Q30.6641-24.9512 32.0801-26.3184L40.918-35.2051L32.0801-44.0918Q30.6641-45.4102 30.6641-47.3145Q30.6641-49.3164 32.0312-50.6592Q33.3984-52.002 35.3516-52.002Q37.4512-52.002 38.7207-50.6348L47.5586-41.8457L56.4453-50.6348Q57.8125-52.0508 59.8633-52.0508Q61.8164-52.0508 63.1836-50.6836Q64.5508-49.3164 64.5508-47.3633Q64.5508-45.459 63.1348-44.0918L54.2969-35.2051L63.0859-26.3184Q64.502-24.9512 64.502-23.0957Q64.502-21.0938 63.1592-19.7266Q61.8164-18.3594 59.8145-18.3594Q57.7637-18.3594 56.3477-19.7266L47.5586-28.5156L38.8184-19.7266Q37.4512-18.3594 35.3516-18.3594Z"/>
</g>
<g id="Semibold-S" transform="matrix(1 0 0 1 1996.19 696)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M47.0703 4.98047Q55.3711 4.98047 62.6465 1.85547Q69.9219-1.26953 75.4639-6.86035Q81.0059-12.4512 84.1553-19.7266Q87.3047-27.002 87.3047-35.2539Q87.3047-43.5059 84.1553-50.7812Q81.0059-58.0566 75.4395-63.623Q69.873-69.1895 62.5977-72.3389Q55.3223-75.4883 47.0215-75.4883Q38.7695-75.4883 31.4941-72.3389Q24.2188-69.1895 18.6768-63.623Q13.1348-58.0566 9.98535-50.7812Q6.83594-43.5059 6.83594-35.2539Q6.83594-27.002 9.98535-19.7266Q13.1348-12.4512 18.7012-6.86035Q24.2676-1.26953 31.543 1.85547Q38.8184 4.98047 47.0703 4.98047Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M34.4238-18.3105Q32.666-18.3105 31.4209-19.5557Q30.1758-20.8008 30.1758-22.6562Q30.1758-24.3652 31.4453-25.5859L41.0156-35.2051L31.4453-44.7754Q30.1758-45.9961 30.1758-47.7539Q30.1758-49.5605 31.4209-50.7812Q32.666-52.002 34.4238-52.002Q36.3281-52.002 37.5-50.7812L47.0703-41.2598L56.7383-50.8301Q57.959-52.0996 59.7656-52.0996Q61.5723-52.0996 62.8174-50.8545Q64.0625-49.6094 64.0625-47.8027Q64.0625-46.0938 62.793-44.8242L53.2227-35.2051L62.7441-25.6348Q64.0625-24.3652 64.0625-22.6562Q64.0625-20.8008 62.8174-19.5557Q61.5723-18.3105 59.7168-18.3105Q57.9102-18.3105 56.5918-19.5801L47.0703-29.1016L37.5977-19.5801Q36.3281-18.3105 34.4238-18.3105Z"/>
</g>
<g id="Medium-S" transform="matrix(1 0 0 1 1699.83 696)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M46.7285 4.63867Q54.9316 4.63867 62.1338 1.51367Q69.3359-1.61133 74.8535-7.12891Q80.3711-12.6465 83.4961-19.8486Q86.6211-27.0508 86.6211-35.2539Q86.6211-43.4082 83.4961-50.6348Q80.3711-57.8613 74.8291-63.3789Q69.2871-68.8965 62.085-71.9971Q54.8828-75.0977 46.6797-75.0977Q38.4766-75.0977 31.2744-71.9971Q24.0723-68.8965 18.5791-63.3789Q13.0859-57.8613 9.96094-50.6348Q6.83594-43.4082 6.83594-35.2539Q6.83594-27.0508 9.96094-19.8486Q13.0859-12.6465 18.6035-7.12891Q24.1211-1.61133 31.3232 1.51367Q38.5254 4.63867 46.7285 4.63867Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M33.7891-18.2617Q32.1289-18.2617 30.9814-19.4336Q29.834-20.6055 29.834-22.3145Q29.834-23.9258 31.0059-25.0488L41.1133-35.2051L31.0059-45.3125Q29.834-46.4844 29.834-48.0957Q29.834-49.7559 30.9814-50.9033Q32.1289-52.0508 33.7891-52.0508Q35.5469-52.0508 36.5723-50.9277L46.7773-40.8203L56.9824-50.9277Q58.1543-52.1484 59.7656-52.1484Q61.4746-52.1484 62.6221-50.9766Q63.7695-49.8047 63.7695-48.1445Q63.7695-46.5332 62.5977-45.3613L52.4414-35.2051L62.5488-25.0977Q63.7207-23.9258 63.7207-22.3145Q63.7207-20.6055 62.5732-19.4336Q61.4258-18.2617 59.7168-18.2617Q58.0566-18.2617 56.8359-19.4336L46.7773-29.541L36.7188-19.4336Q35.5469-18.2617 33.7891-18.2617Z"/>
</g>
<g id="Regular-S" transform="matrix(1 0 0 1 1403.58 696)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M46.2402 4.15039Q54.3457 4.15039 61.4746 1.07422Q68.6035-2.00195 74.0479-7.4707Q79.4922-12.9395 82.5928-20.0684Q85.6934-27.1973 85.6934-35.2539Q85.6934-43.3105 82.5928-50.4395Q79.4922-57.5684 74.0234-63.0371Q68.5547-68.5059 61.4258-71.582Q54.2969-74.6582 46.1914-74.6582Q38.1348-74.6582 31.0059-71.582Q23.877-68.5059 18.457-63.0371Q13.0371-57.5684 9.93652-50.4395Q6.83594-43.3105 6.83594-35.2539Q6.83594-27.1973 9.93652-20.0684Q13.0371-12.9395 18.4814-7.4707Q23.9258-2.00195 31.0547 1.07422Q38.1836 4.15039 46.2402 4.15039Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M32.9102-18.2129Q31.4453-18.2129 30.3955-19.2871Q29.3457-20.3613 29.3457-21.875Q29.3457-23.3398 30.3711-24.3652L41.2109-35.2051L30.3711-46.0449Q29.3457-47.0703 29.3457-48.5352Q29.3457-50.0488 30.3955-51.0742Q31.4453-52.0996 32.9102-52.0996Q34.4727-52.0996 35.3516-51.0742L46.2891-40.2344L57.2754-51.123Q58.3008-52.1973 59.7168-52.1973Q61.2305-52.1973 62.2803-51.1475Q63.3301-50.0977 63.3301-48.6328Q63.3301-47.168 62.2559-46.0938L51.416-35.2051L62.207-24.4141Q63.2812-23.3398 63.2812-21.875Q63.2812-20.3613 62.2314-19.2871Q61.1816-18.2129 59.6191-18.2129Q58.2031-18.2129 57.0801-19.2871L46.2891-30.127L35.498-19.2871Q34.4727-18.2129 32.9102-18.2129Z"/>
</g>
<g id="Light-S" transform="matrix(1 0 0 1 1107.6 696)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M45.5078 3.41797Q53.4668 3.41797 60.4736 0.415039Q67.4805-2.58789 72.8271-7.95898Q78.1738-13.3301 81.2012-20.3125Q84.2285-27.2949 84.2285-35.2539Q84.2285-43.2129 81.2012-50.1953Q78.1738-57.1777 72.8027-62.5488Q67.4316-67.9199 60.4492-70.9229Q53.4668-73.9258 45.459-73.9258Q37.5488-73.9258 30.542-70.9229Q23.5352-67.9199 18.2129-62.5488Q12.8906-57.1777 9.86328-50.1953Q6.83594-43.2129 6.83594-35.2539Q6.83594-27.2949 9.86328-20.3125Q12.8906-13.3301 18.2373-7.95898Q23.584-2.58789 30.5908 0.415039Q37.5977 3.41797 45.5078 3.41797Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M31.9824-18.8477Q30.8594-18.8477 30.0293-19.6777Q29.1992-20.5078 29.1992-21.6797Q29.1992-22.8027 30.0293-23.6328L41.6016-35.2051L30.0293-46.7773Q29.1992-47.6074 29.1992-48.7305Q29.1992-49.9023 30.0293-50.708Q30.8594-51.5137 31.9824-51.5137Q33.2031-51.5137 33.9355-50.6348L45.5566-39.1113L57.1777-50.6836Q58.0078-51.5625 59.1309-51.5625Q60.3027-51.5625 61.1328-50.7568Q61.9629-49.9512 61.9629-48.7793Q61.9629-47.6562 61.084-46.7773L49.5605-35.2051L61.084-23.6816Q61.9141-22.8027 61.9141-21.6797Q61.9141-20.5078 61.1084-19.6777Q60.3027-18.8477 59.0332-18.8477Q57.959-18.8477 57.0312-19.7266L45.5566-31.25L34.0332-19.7266Q33.2031-18.8477 31.9824-18.8477Z"/>
</g>
<g id="Thin-S" transform="matrix(1 0 0 1 811.863 696)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M44.5312 2.44141Q52.3438 2.44141 59.1553-0.488281Q65.9668-3.41797 71.1914-8.64258Q76.416-13.8672 79.3457-20.6787Q82.2754-27.4902 82.2754-35.2539Q82.2754-43.0176 79.3457-49.8291Q76.416-56.6406 71.1914-61.8652Q65.9668-67.0898 59.1553-70.0195Q52.3438-72.9492 44.5312-72.9492Q36.7676-72.9492 29.9316-70.0195Q23.0957-67.0898 17.9199-61.8652Q12.7441-56.6406 9.79004-49.8291Q6.83594-43.0176 6.83594-35.2539Q6.83594-27.4902 9.79004-20.6787Q12.7441-13.8672 17.9199-8.64258Q23.0957-3.41797 29.9316-0.488281Q36.7676 2.44141 44.5312 2.44141Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M30.8105-19.6777Q30.0781-19.6777 29.5654-20.166Q29.0527-20.6543 29.0527-21.4355Q29.0527-22.168 29.6387-22.7051L42.0898-35.2051L29.6387-47.7051Q29.0527-48.2422 29.0527-48.9746Q29.0527-49.7559 29.5654-50.2197Q30.0781-50.6836 30.8105-50.6836Q31.5918-50.6836 32.1289-50.0977L44.5801-37.6465L57.0312-50.0977Q57.666-50.7324 58.3496-50.7324Q59.1309-50.7324 59.6436-50.2441Q60.1562-49.7559 60.1562-49.0234Q60.1562-48.291 59.6191-47.7051L47.1191-35.2051L59.5703-22.7051Q60.1562-22.168 60.1562-21.4355Q60.1562-20.6543 59.6436-20.166Q59.1309-19.6777 58.3496-19.6777Q57.6172-19.6777 56.9824-20.3125L44.5801-32.7148L32.1777-20.3125Q31.5918-19.6777 30.8105-19.6777Z"/>
</g>
<g id="Ultralight-S" transform="matrix(1 0 0 1 515.649 696)">
<path class="multicolor-0:systemRedColor hierarchical-0:tertiary SFSymbolsPreviewFF3B30" d="M44.043 1.95312Q51.7578 1.95312 58.4717-0.927734Q65.1855-3.80859 70.3369-8.95996Q75.4883-14.1113 78.3936-20.8252Q81.2988-27.5391 81.2988-35.2539Q81.2988-42.9688 78.3936-49.6826Q75.4883-56.3965 70.3369-61.5479Q65.1855-66.6992 58.4717-69.5801Q51.7578-72.4609 44.043-72.4609Q36.377-72.4609 29.6387-69.5801Q22.9004-66.6992 17.7734-61.5479Q12.6465-56.3965 9.74121-49.6826Q6.83594-42.9688 6.83594-35.2539Q6.83594-27.5391 9.74121-20.8252Q12.6465-14.1113 17.7734-8.95996Q22.9004-3.80859 29.6387-0.927734Q36.377 1.95312 44.043 1.95312Z"/>
<path class="multicolor-1:white hierarchical-1:primary SFSymbolsPreviewFFFFFF" d="M30.2246-20.1172Q29.6875-20.1172 29.3213-20.4346Q28.9551-20.752 28.9551-21.2891Q28.9551-21.7773 29.3945-22.2168L42.3828-35.2051L29.3945-48.1934Q28.9551-48.6328 28.9551-49.1211Q28.9551-49.6582 29.3213-49.9756Q29.6875-50.293 30.2246-50.293Q30.7129-50.293 31.2012-49.8047L44.0918-36.9141L56.9824-49.8047Q57.4707-50.293 57.959-50.293Q58.5449-50.293 58.8867-49.9756Q59.2285-49.6582 59.2285-49.1211Q59.2285-48.6328 58.8379-48.1934L45.8496-35.2051L58.8379-22.2168Q59.2285-21.7773 59.2285-21.2891Q59.2285-20.752 58.8867-20.4346Q58.5449-20.1172 57.959-20.1172Q57.4707-20.1172 56.9824-20.6055L44.0918-33.4961L31.2012-20.6055Q30.7129-20.1172 30.2246-20.1172Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 55 KiB

View file

@ -27,7 +27,7 @@ class DownloadMapsViewController: MWMViewController {
// MARK: - Properties
private var searchBar: UISearchBar = UISearchBar()
private var searchController = UISearchController(searchResultsController: nil)
var dataSource: IDownloaderDataSource!
@objc var mode: MWMMapDownloaderMode = .downloaded
private var skipCountryEvent = false
@ -77,13 +77,15 @@ class DownloadMapsViewController: MWMViewController {
navigationItem.rightBarButtonItem = addMapsButton
}
noMapsContainer.isHidden = !dataSource.isEmpty || Storage.shared().downloadInProgress()
if dataSource.isRoot {
searchBar.placeholder = L("downloader_search_field_hint")
searchBar.delegate = self
// TODO: Fix the height and centering of the searchBar, it's very tricky.
navigationItem.titleView = searchBar
}
extendedLayoutIncludesOpaqueBars = true
searchController.searchBar.placeholder = L("downloader_search_field_hint")
searchController.searchBar.delegate = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = alternativeSizeClass(iPhone: true, iPad: false)
searchController.searchBar.applyTheme()
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
configButtons()
}
@ -279,7 +281,7 @@ extension DownloadMapsViewController: UITableViewDataSource {
cell = placeCell
}
cell.mode = dataSource.isSearching ? .available : mode
cell.config(nodeAttrs, searchQuery: searchBar.text)
cell.config(nodeAttrs, searchQuery: searchController.searchBar.text)
cell.delegate = self
return cell
}
@ -355,7 +357,7 @@ extension DownloadMapsViewController: UITableViewDelegate {
extension DownloadMapsViewController: UIScrollViewDelegate {
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
searchBar.resignFirstResponder()
searchController.searchBar.resignFirstResponder()
}
}
@ -412,7 +414,7 @@ extension DownloadMapsViewController: StorageObserver {
guard let downloaderCell = cell as? MWMMapDownloaderTableViewCell else { continue }
if downloaderCell.nodeAttrs.countryId != countryId { continue }
guard let indexPath = tableView.indexPath(for: downloaderCell) else { return }
downloaderCell.config(dataSource.item(at: indexPath), searchQuery: searchBar.text)
downloaderCell.config(dataSource.item(at: indexPath), searchQuery: searchController.searchBar.text)
}
}
@ -454,14 +456,6 @@ extension DownloadMapsViewController: UISearchBarDelegate {
}
}
// MARK: - UIBarPositioningDelegate
extension DownloadMapsViewController: UIBarPositioningDelegate {
func position(for bar: UIBarPositioning) -> UIBarPosition {
.topAttached
}
}
// MARK: - DownloadAllViewDelegate
extension DownloadMapsViewController: DownloadAllViewDelegate {

View file

@ -41,7 +41,7 @@ extension DownloadedMapsDataSource: IDownloaderDataSource {
var title: String {
guard let parentCountryId = parentCountryId else {
return "" // Root Downloader dialog displays UISearchBar instead of title.
return L("download_maps")
}
return Storage.shared().name(forCountry: parentCountryId)
}

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17703"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
@ -19,7 +19,7 @@
<outletCollection property="topViews" destination="d2A-Id-T62" id="Q0C-Eb-VyX"/>
</connections>
</placeholder>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="g9f-m8-RFv" customClass="SearchBar" customModule="OMaps" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="g9f-m8-RFv" customClass="SearchBar" customModule="Organic_Maps" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="320" height="88"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="C73-2V-To8" userLabel="StatusBarBackground">
@ -35,10 +35,10 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ghc-B6-erG">
<rect key="frame" x="0.0" y="0.0" width="320" height="88"/>
<subviews>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="fill" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" adjustsFontSizeToFit="NO" minimumFontSize="17" clearButtonMode="always" translatesAutoresizingMaskIntoConstraints="NO" id="ySb-oA-ZeW" userLabel="Search" customClass="SearchTextField" customModule="OMaps" customModuleProvider="target">
<rect key="frame" x="8" y="4" width="240" height="76"/>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="fill" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" adjustsFontSizeToFit="NO" minimumFontSize="17" clearButtonMode="always" translatesAutoresizingMaskIntoConstraints="NO" id="ySb-oA-ZeW" userLabel="Search" customClass="SearchTextField" customModule="Organic_Maps" customModuleProvider="target">
<rect key="frame" x="16" y="8" width="232" height="72"/>
<accessibility key="accessibilityConfiguration" identifier="queryField"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="search"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="SearchSearchTextField"/>
@ -51,12 +51,12 @@
</connections>
</textField>
<button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="wordWrap" translatesAutoresizingMaskIntoConstraints="NO" id="qkR-cN-NI4">
<rect key="frame" x="248" y="4" width="72" height="76"/>
<rect key="frame" x="248" y="4" width="72" height="80"/>
<accessibility key="accessibilityConfiguration" identifier="cancelButton"/>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="72" id="8mI-K9-qAu"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<inset key="contentEdgeInsets" minX="4" minY="0.0" maxX="4" maxY="0.0"/>
<state key="normal" title="Cancel">
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@ -70,7 +70,7 @@
</connections>
</button>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_search" translatesAutoresizingMaskIntoConstraints="NO" id="ebE-7b-E9f">
<rect key="frame" x="8" y="4" width="36" height="76"/>
<rect key="frame" x="16" y="8" width="36" height="72"/>
<constraints>
<constraint firstAttribute="width" constant="36" id="8Ta-mE-6dI"/>
</constraints>
@ -79,7 +79,7 @@
</userDefinedRuntimeAttributes>
</imageView>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="pnj-0S-fkE">
<rect key="frame" x="8" y="4" width="36" height="76"/>
<rect key="frame" x="16" y="8" width="36" height="72"/>
<constraints>
<constraint firstAttribute="width" constant="36" id="v0W-Aw-eSV"/>
</constraints>
@ -88,7 +88,7 @@
</userDefinedRuntimeAttributes>
</activityIndicatorView>
<button opaque="NO" contentMode="center" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CrZ-Cz-xyW">
<rect key="frame" x="8" y="4" width="36" height="76"/>
<rect key="frame" x="16" y="8" width="36" height="72"/>
<constraints>
<constraint firstAttribute="width" constant="36" id="gfO-3m-OFv"/>
</constraints>
@ -110,16 +110,16 @@
<constraint firstItem="ebE-7b-E9f" firstAttribute="leading" secondItem="ySb-oA-ZeW" secondAttribute="leading" id="THA-Pu-i5t"/>
<constraint firstItem="CrZ-Cz-xyW" firstAttribute="top" secondItem="ySb-oA-ZeW" secondAttribute="top" id="WxT-Hy-CL1"/>
<constraint firstItem="CrZ-Cz-xyW" firstAttribute="bottom" secondItem="ySb-oA-ZeW" secondAttribute="bottom" id="XIJ-EQ-sfC"/>
<constraint firstAttribute="height" constant="44" id="evQ-q0-G3V"/>
<constraint firstAttribute="height" constant="52" id="evQ-q0-G3V"/>
<constraint firstAttribute="bottom" secondItem="qkR-cN-NI4" secondAttribute="bottom" constant="8" id="exK-0S-ML2"/>
<constraint firstAttribute="bottom" secondItem="ySb-oA-ZeW" secondAttribute="bottom" constant="8" id="kc1-xj-dnr"/>
<constraint firstItem="ySb-oA-ZeW" firstAttribute="leading" secondItem="ghc-B6-erG" secondAttribute="leading" constant="8" id="kch-1z-rhZ"/>
<constraint firstItem="ySb-oA-ZeW" firstAttribute="leading" secondItem="ghc-B6-erG" secondAttribute="leading" constant="16" id="kch-1z-rhZ"/>
<constraint firstItem="CrZ-Cz-xyW" firstAttribute="leading" secondItem="ySb-oA-ZeW" secondAttribute="leading" id="m7Z-jP-Upg"/>
<constraint firstAttribute="trailing" secondItem="qkR-cN-NI4" secondAttribute="trailing" id="ngR-ML-Cnj"/>
<constraint firstItem="pnj-0S-fkE" firstAttribute="leading" secondItem="ySb-oA-ZeW" secondAttribute="leading" id="ove-r5-YFo"/>
<constraint firstItem="qkR-cN-NI4" firstAttribute="centerY" secondItem="ySb-oA-ZeW" secondAttribute="centerY" id="rPK-s8-GJi"/>
<constraint firstItem="pnj-0S-fkE" firstAttribute="bottom" secondItem="ySb-oA-ZeW" secondAttribute="bottom" id="udX-a7-hOd"/>
<constraint firstItem="ySb-oA-ZeW" firstAttribute="top" secondItem="ghc-B6-erG" secondAttribute="top" constant="4" id="yet-nD-qWN"/>
<constraint firstItem="ySb-oA-ZeW" firstAttribute="top" secondItem="ghc-B6-erG" secondAttribute="top" constant="8" id="yet-nD-qWN"/>
<constraint firstItem="ebE-7b-E9f" firstAttribute="top" secondItem="ySb-oA-ZeW" secondAttribute="top" id="zqb-O1-mO9"/>
</constraints>
</view>
@ -158,7 +158,7 @@
<point key="canvasLocation" x="225.59999999999999" y="-211.39430284857573"/>
</view>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="d2A-Id-T62" customClass="SearchActionBarView" customModule="OMaps" customModuleProvider="target" propertyAccessControl="none">
<view contentMode="scaleToFill" id="d2A-Id-T62" customClass="SearchActionBarView" customModule="Organic_Maps" customModuleProvider="target" propertyAccessControl="none">
<rect key="frame" x="0.0" y="0.0" width="361" height="36"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
@ -227,7 +227,7 @@
</userDefinedRuntimeAttributes>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QQn-4W-Y0s">
<rect key="frame" x="0.0" y="0.0" width="320" height="402"/>
<rect key="frame" x="0.0" y="0.0" width="320" height="368"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
</subviews>

View file

@ -29,12 +29,6 @@ final class SearchBar: SolidTouchView {
}
}
private lazy var dateFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.setLocalizedDateFormatFromTemplate("EEE, MMMd")
return formatter
}()
override func awakeFromNib() {
super.awakeFromNib()
updateLeftView()

View file

@ -17,7 +17,13 @@ class SearchTextField: UITextField {
for view in subviews {
if (view is UIButton) {
let button = view as? UIButton
button?.setImage(UIImage(named: "ic_search_clear_14"), for: .normal)
let clearButtonImage: UIImage?
if #available(iOS 13.0, *) {
clearButtonImage = UIImage(named: "ic_clear")?.withRenderingMode(.alwaysTemplate).withTintColor(tintColor)
} else {
clearButtonImage = UIImage(named: "ic_search_clear_14")
}
button?.setImage(clearButtonImage, for: .normal)
button?.tintColor = tintColor
}
}

View file

@ -91,6 +91,7 @@
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="aVk-ab-LFJ" firstAttribute="bottom" secondItem="rL1-9E-4b7" secondAttribute="bottom" priority="100" id="LCC-5Q-3hb"/>
<constraint firstItem="TdT-ia-GP9" firstAttribute="top" secondItem="rL1-9E-4b7" secondAttribute="top" priority="100" id="RAX-O7-Lnd"/>
<constraint firstItem="awj-9E-eBS" firstAttribute="top" secondItem="rL1-9E-4b7" secondAttribute="top" priority="100" id="sdc-wL-91M"/>
<constraint firstItem="FFY-Dy-Wou" firstAttribute="top" secondItem="rL1-9E-4b7" secondAttribute="top" priority="100" id="svT-Vi-vvC"/>
@ -186,7 +187,6 @@
<constraint firstItem="awj-9E-eBS" firstAttribute="leading" secondItem="utd-Jy-pE5" secondAttribute="leading" id="Hfm-gb-37H"/>
<constraint firstItem="rbx-Oj-jeo" firstAttribute="top" secondItem="utd-Jy-pE5" secondAttribute="top" id="J0B-xe-sNj"/>
<constraint firstItem="jio-3T-E6G" firstAttribute="leading" secondItem="utd-Jy-pE5" secondAttribute="leading" id="K9r-P1-yFI"/>
<constraint firstItem="aVk-ab-LFJ" firstAttribute="bottom" secondItem="rL1-9E-4b7" secondAttribute="bottom" priority="100" id="LCC-5Q-3hb"/>
<constraint firstItem="utd-Jy-pE5" firstAttribute="bottom" secondItem="at1-V1-pzl" secondAttribute="bottom" priority="750" constant="48" id="O8L-nd-nOa"/>
<constraint firstItem="utd-Jy-pE5" firstAttribute="bottom" secondItem="FFY-Dy-Wou" secondAttribute="bottom" priority="100" id="OE7-Qb-J0v"/>
<constraint firstItem="utd-Jy-pE5" firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="awj-9E-eBS" secondAttribute="bottom" id="PFs-sL-oVA"/>
@ -232,11 +232,11 @@
<mask key="constraints">
<exclude reference="SDX-4J-Jz5"/>
<exclude reference="TZk-MH-pMV"/>
<exclude reference="u9s-KY-yCt"/>
<exclude reference="veF-Rn-BEm"/>
<exclude reference="W0l-NG-7lt"/>
<exclude reference="u9s-KY-yCt"/>
<exclude reference="K9r-P1-yFI"/>
<exclude reference="SAj-bF-qrr"/>
<exclude reference="W0l-NG-7lt"/>
</mask>
</variation>
<variation key="heightClass=compact">
@ -274,11 +274,11 @@
<mask key="constraints">
<exclude reference="9M9-8P-Hzb"/>
<include reference="u9s-KY-yCt"/>
<exclude reference="5Sh-l6-Icd"/>
<exclude reference="t9l-Ud-h6j"/>
<include reference="SAj-bF-qrr"/>
<exclude reference="9rR-QQ-c1P"/>
<include reference="W0l-NG-7lt"/>
<include reference="SAj-bF-qrr"/>
<exclude reference="t9l-Ud-h6j"/>
<exclude reference="5Sh-l6-Icd"/>
</mask>
</variation>
</view>
@ -910,12 +910,12 @@
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<gestureRecognizers/>
<constraints>
<constraint firstItem="CwW-x8-G3j" firstAttribute="top" secondItem="dlW-OQ-WMO" secondAttribute="top" id="5wV-Dv-sjS"/>
<constraint firstItem="CwW-x8-G3j" firstAttribute="top" secondItem="XQZ-0V-SyR" secondAttribute="top" id="5wV-Dv-sjS"/>
<constraint firstAttribute="trailing" secondItem="CwW-x8-G3j" secondAttribute="trailing" id="6QL-v4-rNy"/>
<constraint firstItem="dlW-OQ-WMO" firstAttribute="bottom" secondItem="kXO-Oh-2vO" secondAttribute="bottom" id="8Tl-19-ReF"/>
<constraint firstItem="dlW-OQ-WMO" firstAttribute="trailing" secondItem="CDj-ol-HRP" secondAttribute="trailing" id="FLZ-Kr-4dV"/>
<constraint firstItem="kXO-Oh-2vO" firstAttribute="leading" secondItem="dlW-OQ-WMO" secondAttribute="leading" id="M0m-98-7Ev"/>
<constraint firstItem="dlW-OQ-WMO" firstAttribute="bottom" secondItem="CwW-x8-G3j" secondAttribute="bottom" id="QPk-e4-hZs"/>
<constraint firstAttribute="bottom" secondItem="CwW-x8-G3j" secondAttribute="bottom" id="QPk-e4-hZs"/>
<constraint firstItem="CwW-x8-G3j" firstAttribute="leading" secondItem="XQZ-0V-SyR" secondAttribute="leading" id="Wvb-0M-kQl"/>
<constraint firstItem="CwW-x8-G3j" firstAttribute="top" secondItem="kXO-Oh-2vO" secondAttribute="top" id="eFX-ON-3aD"/>
<constraint firstItem="CDj-ol-HRP" firstAttribute="leading" secondItem="dlW-OQ-WMO" secondAttribute="leading" id="mwH-aX-jCV"/>
@ -1000,32 +1000,11 @@
<constraint firstItem="87G-jh-N8H" firstAttribute="centerX" secondItem="dCZ-PN-2Ob" secondAttribute="centerX" id="fVd-53-cG8"/>
</constraints>
</view>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Moj-UK-oyl" userLabel="DownloadMaps" customClass="MWMButton">
<rect key="frame" x="87.666666666666686" y="875" width="240" height="44"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" constant="240" id="49x-bx-JJj"/>
<constraint firstAttribute="height" constant="44" id="k3P-mC-aLM"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<state key="normal" image="ic_add_button">
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="download_maps"/>
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="FlatNormalButton:MWMWhite:regular17"/>
</userDefinedRuntimeAttributes>
<connections>
<action selector="downloadMaps" destination="3el-Zi-2E4" eventType="touchUpInside" id="gb5-gj-vlt"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="dCZ-PN-2Ob" secondAttribute="trailing" constant="16" id="BYs-UF-Vjh"/>
<constraint firstAttribute="bottom" secondItem="Moj-UK-oyl" secondAttribute="bottom" constant="40" id="EVG-80-7WN"/>
<constraint firstItem="Moj-UK-oyl" firstAttribute="top" secondItem="dCZ-PN-2Ob" secondAttribute="bottom" priority="750" constant="20" id="cTp-l6-jN2"/>
<constraint firstItem="Moj-UK-oyl" firstAttribute="centerX" secondItem="Gmw-e3-n53" secondAttribute="centerX" id="fKa-wf-QRJ"/>
<constraint firstItem="dCZ-PN-2Ob" firstAttribute="centerY" secondItem="Gmw-e3-n53" secondAttribute="centerY" id="Wge-7N-3wQ"/>
<constraint firstItem="dCZ-PN-2Ob" firstAttribute="top" secondItem="Gmw-e3-n53" secondAttribute="top" priority="750" id="hUO-LH-CzU"/>
<constraint firstAttribute="height" priority="250" constant="600" id="jjc-ld-HW5"/>
<constraint firstAttribute="width" priority="250" constant="520" id="mGE-u6-ksX"/>
@ -1042,15 +1021,36 @@
<outlet property="titleTopOffset" destination="qmt-I0-80b" id="07n-1j-oIq"/>
</connections>
</view>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Moj-UK-oyl" userLabel="DownloadMaps" customClass="MWMButton">
<rect key="frame" x="287" y="304" width="240" height="44"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" constant="240" id="49x-bx-JJj"/>
<constraint firstAttribute="height" constant="44" id="k3P-mC-aLM"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<state key="normal" image="ic_add_button">
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="download_maps"/>
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="FlatNormalButton:MWMWhite:regular17"/>
</userDefinedRuntimeAttributes>
<connections>
<action selector="downloadMaps" destination="3el-Zi-2E4" eventType="touchUpInside" id="gb5-gj-vlt"/>
</connections>
</button>
</subviews>
<viewLayoutGuide key="safeArea" id="6lX-F6-61M"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="Gmw-e3-n53" firstAttribute="width" relation="lessThanOrEqual" secondItem="4WP-vj-Alg" secondAttribute="width" id="IPr-ei-Pbl"/>
<constraint firstItem="6lX-F6-61M" firstAttribute="bottom" secondItem="Moj-UK-oyl" secondAttribute="bottom" constant="40" id="N82-Wq-5WK"/>
<constraint firstItem="Gmw-e3-n53" firstAttribute="centerY" secondItem="4WP-vj-Alg" secondAttribute="centerY" priority="750" id="X4Z-4D-lqR"/>
<constraint firstItem="Gmw-e3-n53" firstAttribute="centerX" secondItem="6lX-F6-61M" secondAttribute="centerX" id="a7W-Hg-axW"/>
<constraint firstAttribute="topMargin" secondItem="Gmw-e3-n53" secondAttribute="top" id="aKd-EX-mvs"/>
<constraint firstAttribute="bottomMargin" relation="greaterThanOrEqual" secondItem="Gmw-e3-n53" secondAttribute="bottom" id="g7o-yu-JXZ"/>
<constraint firstItem="Moj-UK-oyl" firstAttribute="centerX" secondItem="6lX-F6-61M" secondAttribute="centerX" id="kg7-SY-EXf"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="Background"/>