Merge branch 'develop' into feature/unify_checkbox

This commit is contained in:
Scott Pfeil 2022-11-03 16:06:58 -04:00
commit 8330c0ff6e
60 changed files with 2233 additions and 82 deletions

View File

@ -44,7 +44,9 @@
EA89200628B526D6006B9984 /* CheckboxGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA89200528B526D6006B9984 /* CheckboxGroup.swift */; };
EA89201328B568D8006B9984 /* RadioBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA89201228B568D8006B9984 /* RadioBox.swift */; };
EA89201528B56CF4006B9984 /* RadioBoxGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA89201428B56CF4006B9984 /* RadioBoxGroup.swift */; };
EAA5EEE228F4C62C003B3210 /* Colorable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAA5EEE128F4C62C003B3210 /* Colorable.swift */; };
EAA5EEB528ECBFB4003B3210 /* ImageLabelAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAA5EEB428ECBFB4003B3210 /* ImageLabelAttribute.swift */; };
EAA5EEB728ECC03A003B3210 /* ToolTipLabelAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAA5EEB628ECC03A003B3210 /* ToolTipLabelAttribute.swift */; };
EAA5EEB928ECD24B003B3210 /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EAA5EEB828ECD24B003B3210 /* Icons.xcassets */; };
EAA5EEE428F5B855003B3210 /* VerizonNHGDS-Light.otf in Resources */ = {isa = PBXBuildFile; fileRef = EAA5EEE328F5B855003B3210 /* VerizonNHGDS-Light.otf */; };
EAA5EEEF28F5C908003B3210 /* VDSTypographyTokens.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAA5EEEC28F5C908003B3210 /* VDSTypographyTokens.xcframework */; };
EAA5EEF128F5C909003B3210 /* VDSColorTokens.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAA5EEED28F5C908003B3210 /* VDSColorTokens.xcframework */; };
@ -54,6 +56,11 @@
EAB1D2CF28ABEF2B00DAE764 /* Typography.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D2CE28ABEF2B00DAE764 /* Typography.swift */; };
EAB1D2E628AE842000DAE764 /* Publisher+Bind.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D2E328AE842000DAE764 /* Publisher+Bind.swift */; };
EAB1D2EA28AE84AA00DAE764 /* UIControlPublisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D2E928AE84AA00DAE764 /* UIControlPublisher.swift */; };
EAC9257D29119B5400091998 /* TextLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC9257C29119B5400091998 /* TextLink.swift */; };
EAC925832911B35400091998 /* TextLinkCaret.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC925822911B35300091998 /* TextLinkCaret.swift */; };
EAC925842911C63100091998 /* Colorable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAA5EEDF28F49DB3003B3210 /* Colorable.swift */; };
EAC9258C2911C9DE00091998 /* TextEntryField.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC925872911C9DE00091998 /* TextEntryField.swift */; };
EAC9258F2911C9DE00091998 /* EntryField.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC9258B2911C9DE00091998 /* EntryField.swift */; };
EAD8D2C128BFDE8B006EB6A6 /* UIGestureRecognizer+Publisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD8D2C028BFDE8B006EB6A6 /* UIGestureRecognizer+Publisher.swift */; };
EAF7F0952899861000B287F5 /* Checkbox.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0932899861000B287F5 /* Checkbox.swift */; };
EAF7F09A2899B17200B287F5 /* CATransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0992899B17200B287F5 /* CATransaction.swift */; };
@ -62,16 +69,16 @@
EAF7F0A2289AFB3900B287F5 /* Errorable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0A1289AFB3900B287F5 /* Errorable.swift */; };
EAF7F0A4289B017C00B287F5 /* LabelAttributeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0A3289B017C00B287F5 /* LabelAttributeModel.swift */; };
EAF7F0A6289B0CE000B287F5 /* Resetable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0A5289B0CE000B287F5 /* Resetable.swift */; };
EAF7F0AB289B13FD00B287F5 /* LabelAttributeFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0AA289B13FD00B287F5 /* LabelAttributeFont.swift */; };
EAF7F0AD289B142900B287F5 /* LabelAttributeStrikeThrough.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0AC289B142900B287F5 /* LabelAttributeStrikeThrough.swift */; };
EAF7F0AF289B144C00B287F5 /* LabelAttributeUnderline.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0AE289B144C00B287F5 /* LabelAttributeUnderline.swift */; };
EAF7F0B1289B177F00B287F5 /* LabelAttributeColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0B0289B177F00B287F5 /* LabelAttributeColor.swift */; };
EAF7F0B3289B1ADC00B287F5 /* LabelAttributeAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0B2289B1ADC00B287F5 /* LabelAttributeAction.swift */; };
EAF7F0AB289B13FD00B287F5 /* FontLabelAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0AA289B13FD00B287F5 /* FontLabelAttribute.swift */; };
EAF7F0AD289B142900B287F5 /* StrikeThroughLabelAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0AC289B142900B287F5 /* StrikeThroughLabelAttribute.swift */; };
EAF7F0AF289B144C00B287F5 /* UnderlineLabelAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0AE289B144C00B287F5 /* UnderlineLabelAttribute.swift */; };
EAF7F0B1289B177F00B287F5 /* ColorLabelAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0B0289B177F00B287F5 /* ColorLabelAttribute.swift */; };
EAF7F0B3289B1ADC00B287F5 /* ActionLabelAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0B2289B1ADC00B287F5 /* ActionLabelAttribute.swift */; };
EAF7F0B5289C126F00B287F5 /* UILabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0B4289C126F00B287F5 /* UILabel.swift */; };
EAF7F0B7289C12A600B287F5 /* UITapGestureRecognizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0B6289C12A600B287F5 /* UITapGestureRecognizer.swift */; };
EAF7F0B9289C139800B287F5 /* ColorConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0B8289C139800B287F5 /* ColorConfiguration.swift */; };
EAF7F11728A1475A00B287F5 /* RadioButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F11528A1475A00B287F5 /* RadioButton.swift */; };
EAF7F13328A2A16500B287F5 /* LabelAttributeAttachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F13228A2A16500B287F5 /* LabelAttributeAttachment.swift */; };
EAF7F13328A2A16500B287F5 /* AttachmentLabelAttributeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F13228A2A16500B287F5 /* AttachmentLabelAttributeModel.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -123,7 +130,10 @@
EA89200528B526D6006B9984 /* CheckboxGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckboxGroup.swift; sourceTree = "<group>"; };
EA89201228B568D8006B9984 /* RadioBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioBox.swift; sourceTree = "<group>"; };
EA89201428B56CF4006B9984 /* RadioBoxGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioBoxGroup.swift; sourceTree = "<group>"; };
EAA5EEE128F4C62C003B3210 /* Colorable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Colorable.swift; sourceTree = "<group>"; };
EAA5EEB428ECBFB4003B3210 /* ImageLabelAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageLabelAttribute.swift; sourceTree = "<group>"; };
EAA5EEB628ECC03A003B3210 /* ToolTipLabelAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolTipLabelAttribute.swift; sourceTree = "<group>"; };
EAA5EEB828ECD24B003B3210 /* Icons.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Icons.xcassets; sourceTree = "<group>"; };
EAA5EEDF28F49DB3003B3210 /* Colorable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Colorable.swift; sourceTree = "<group>"; };
EAA5EEE328F5B855003B3210 /* VerizonNHGDS-Light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "VerizonNHGDS-Light.otf"; sourceTree = "<group>"; };
EAA5EEEC28F5C908003B3210 /* VDSTypographyTokens.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = VDSTypographyTokens.xcframework; path = ../SharedFrameworks/VDSTypographyTokens.xcframework; sourceTree = "<group>"; };
EAA5EEED28F5C908003B3210 /* VDSColorTokens.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = VDSColorTokens.xcframework; path = ../SharedFrameworks/VDSColorTokens.xcframework; sourceTree = "<group>"; };
@ -133,6 +143,10 @@
EAB1D2CE28ABEF2B00DAE764 /* Typography.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Typography.swift; sourceTree = "<group>"; };
EAB1D2E328AE842000DAE764 /* Publisher+Bind.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Publisher+Bind.swift"; sourceTree = "<group>"; };
EAB1D2E928AE84AA00DAE764 /* UIControlPublisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIControlPublisher.swift; sourceTree = "<group>"; };
EAC9257C29119B5400091998 /* TextLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextLink.swift; sourceTree = "<group>"; };
EAC925822911B35300091998 /* TextLinkCaret.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextLinkCaret.swift; sourceTree = "<group>"; };
EAC925872911C9DE00091998 /* TextEntryField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextEntryField.swift; sourceTree = "<group>"; };
EAC9258B2911C9DE00091998 /* EntryField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EntryField.swift; sourceTree = "<group>"; };
EAD8D2C028BFDE8B006EB6A6 /* UIGestureRecognizer+Publisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIGestureRecognizer+Publisher.swift"; sourceTree = "<group>"; };
EAF7F0932899861000B287F5 /* Checkbox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Checkbox.swift; sourceTree = "<group>"; };
EAF7F0992899B17200B287F5 /* CATransaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CATransaction.swift; sourceTree = "<group>"; };
@ -141,16 +155,16 @@
EAF7F0A1289AFB3900B287F5 /* Errorable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errorable.swift; sourceTree = "<group>"; };
EAF7F0A3289B017C00B287F5 /* LabelAttributeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelAttributeModel.swift; sourceTree = "<group>"; };
EAF7F0A5289B0CE000B287F5 /* Resetable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Resetable.swift; sourceTree = "<group>"; };
EAF7F0AA289B13FD00B287F5 /* LabelAttributeFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelAttributeFont.swift; sourceTree = "<group>"; };
EAF7F0AC289B142900B287F5 /* LabelAttributeStrikeThrough.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelAttributeStrikeThrough.swift; sourceTree = "<group>"; };
EAF7F0AE289B144C00B287F5 /* LabelAttributeUnderline.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelAttributeUnderline.swift; sourceTree = "<group>"; };
EAF7F0B0289B177F00B287F5 /* LabelAttributeColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelAttributeColor.swift; sourceTree = "<group>"; };
EAF7F0B2289B1ADC00B287F5 /* LabelAttributeAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelAttributeAction.swift; sourceTree = "<group>"; };
EAF7F0AA289B13FD00B287F5 /* FontLabelAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontLabelAttribute.swift; sourceTree = "<group>"; };
EAF7F0AC289B142900B287F5 /* StrikeThroughLabelAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StrikeThroughLabelAttribute.swift; sourceTree = "<group>"; };
EAF7F0AE289B144C00B287F5 /* UnderlineLabelAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnderlineLabelAttribute.swift; sourceTree = "<group>"; };
EAF7F0B0289B177F00B287F5 /* ColorLabelAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorLabelAttribute.swift; sourceTree = "<group>"; };
EAF7F0B2289B1ADC00B287F5 /* ActionLabelAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionLabelAttribute.swift; sourceTree = "<group>"; };
EAF7F0B4289C126F00B287F5 /* UILabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UILabel.swift; sourceTree = "<group>"; };
EAF7F0B6289C12A600B287F5 /* UITapGestureRecognizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UITapGestureRecognizer.swift; sourceTree = "<group>"; };
EAF7F0B8289C139800B287F5 /* ColorConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorConfiguration.swift; sourceTree = "<group>"; };
EAF7F11528A1475A00B287F5 /* RadioButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadioButton.swift; sourceTree = "<group>"; };
EAF7F13228A2A16500B287F5 /* LabelAttributeAttachment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelAttributeAttachment.swift; sourceTree = "<group>"; };
EAF7F13228A2A16500B287F5 /* AttachmentLabelAttributeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentLabelAttributeModel.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -183,6 +197,16 @@
path = Button;
sourceTree = "<group>";
};
EA0FC2BE2912D18200DF80B4 /* Buttons */ = {
isa = PBXGroup;
children = (
5FC35BE128D513EB004EBEAC /* Button */,
EAC9257E29119B5D00091998 /* TextLink */,
EAC925812911B34300091998 /* TextLinkCaret */,
);
path = Buttons;
sourceTree = "<group>";
};
EA1F265F28B945070033E859 /* RadioSwatch */ = {
isa = PBXGroup;
children = (
@ -251,12 +275,13 @@
isa = PBXGroup;
children = (
EA4DB2FE28DCBC1900103EE3 /* Badge */,
5FC35BE128D513EB004EBEAC /* Button */,
EA0FC2BE2912D18200DF80B4 /* Buttons */,
EAF7F092289985E200B287F5 /* Checkbox */,
EA3362412892EF700071C351 /* Label */,
EA89200B28B530F0006B9984 /* RadioBox */,
EAF7F11428A1470D00B287F5 /* RadioButton */,
EA1F265F28B945070033E859 /* RadioSwatch */,
EAC925852911C9DE00091998 /* TextFields */,
EA3361A0288B1E6F0071C351 /* Toggle */,
);
path = Components;
@ -288,7 +313,7 @@
children = (
EA3361C4289030FC0071C351 /* Accessable.swift */,
EA4DB2FC28D3D0CA00103EE3 /* AnyEquatable.swift */,
EAA5EEE128F4C62C003B3210 /* Colorable.swift */,
EAA5EEDF28F49DB3003B3210 /* Colorable.swift */,
EA3361AC288B26190071C351 /* DataTrackable.swift */,
EA3361A9288B25E40071C351 /* Disabling.swift */,
EAF7F0A1289AFB3900B287F5 /* Errorable.swift */,
@ -337,6 +362,7 @@
isa = PBXGroup;
children = (
EA3361FF2891E14C0071C351 /* Fonts */,
EAA5EEB828ECD24B003B3210 /* Icons.xcassets */,
);
path = SupportingFiles;
sourceTree = "<group>";
@ -399,6 +425,47 @@
path = Publishers;
sourceTree = "<group>";
};
EAC9257E29119B5D00091998 /* TextLink */ = {
isa = PBXGroup;
children = (
EAC9257C29119B5400091998 /* TextLink.swift */,
);
path = TextLink;
sourceTree = "<group>";
};
EAC925812911B34300091998 /* TextLinkCaret */ = {
isa = PBXGroup;
children = (
EAC925822911B35300091998 /* TextLinkCaret.swift */,
);
path = TextLinkCaret;
sourceTree = "<group>";
};
EAC925852911C9DE00091998 /* TextFields */ = {
isa = PBXGroup;
children = (
EAC925862911C9DE00091998 /* TextEntryField */,
EAC925892911C9DE00091998 /* EntryField */,
);
path = TextFields;
sourceTree = "<group>";
};
EAC925862911C9DE00091998 /* TextEntryField */ = {
isa = PBXGroup;
children = (
EAC925872911C9DE00091998 /* TextEntryField.swift */,
);
path = TextEntryField;
sourceTree = "<group>";
};
EAC925892911C9DE00091998 /* EntryField */ = {
isa = PBXGroup;
children = (
EAC9258B2911C9DE00091998 /* EntryField.swift */,
);
path = EntryField;
sourceTree = "<group>";
};
EAF7F092289985E200B287F5 /* Checkbox */ = {
isa = PBXGroup;
children = (
@ -412,12 +479,14 @@
isa = PBXGroup;
children = (
EAF7F0A3289B017C00B287F5 /* LabelAttributeModel.swift */,
EAF7F0B2289B1ADC00B287F5 /* LabelAttributeAction.swift */,
EAF7F13228A2A16500B287F5 /* LabelAttributeAttachment.swift */,
EAF7F0B0289B177F00B287F5 /* LabelAttributeColor.swift */,
EAF7F0AA289B13FD00B287F5 /* LabelAttributeFont.swift */,
EAF7F0AC289B142900B287F5 /* LabelAttributeStrikeThrough.swift */,
EAF7F0AE289B144C00B287F5 /* LabelAttributeUnderline.swift */,
EAF7F0B2289B1ADC00B287F5 /* ActionLabelAttribute.swift */,
EAF7F13228A2A16500B287F5 /* AttachmentLabelAttributeModel.swift */,
EAF7F0B0289B177F00B287F5 /* ColorLabelAttribute.swift */,
EAF7F0AA289B13FD00B287F5 /* FontLabelAttribute.swift */,
EAA5EEB428ECBFB4003B3210 /* ImageLabelAttribute.swift */,
EAF7F0AC289B142900B287F5 /* StrikeThroughLabelAttribute.swift */,
EAA5EEB628ECC03A003B3210 /* ToolTipLabelAttribute.swift */,
EAF7F0AE289B144C00B287F5 /* UnderlineLabelAttribute.swift */,
);
path = Attributes;
sourceTree = "<group>";
@ -527,6 +596,7 @@
EA3362072891E14D0071C351 /* VerizonNHGeDS-Regular.otf in Resources */,
EA3362062891E14D0071C351 /* VerizonNHGeTX-Regular.otf in Resources */,
EA3362052891E14D0071C351 /* VerizonNHGeDS-Bold.otf in Resources */,
EAA5EEB928ECD24B003B3210 /* Icons.xcassets in Resources */,
EAA5EEE428F5B855003B3210 /* VerizonNHGDS-Light.otf in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -551,11 +621,15 @@
EA3361C328902D960071C351 /* Toggle.swift in Sources */,
EAF7F0A0289AB7EC00B287F5 /* View.swift in Sources */,
EA89201328B568D8006B9984 /* RadioBox.swift in Sources */,
EAC9258C2911C9DE00091998 /* TextEntryField.swift in Sources */,
EA3362402892EF6C0071C351 /* Label.swift in Sources */,
EAF7F0B3289B1ADC00B287F5 /* LabelAttributeAction.swift in Sources */,
EAF7F0B3289B1ADC00B287F5 /* ActionLabelAttribute.swift in Sources */,
EAC925832911B35400091998 /* TextLinkCaret.swift in Sources */,
EA33622E2891EA3C0071C351 /* DispatchQueue+Once.swift in Sources */,
EA4DB2FD28D3D0CA00103EE3 /* AnyEquatable.swift in Sources */,
EAF7F0AF289B144C00B287F5 /* LabelAttributeUnderline.swift in Sources */,
EAA5EEB728ECC03A003B3210 /* ToolTipLabelAttribute.swift in Sources */,
EAF7F0AF289B144C00B287F5 /* UnderlineLabelAttribute.swift in Sources */,
EAC925842911C63100091998 /* Colorable.swift in Sources */,
EA3361C5289030FC0071C351 /* Accessable.swift in Sources */,
EA33622C2891E73B0071C351 /* FontProtocol.swift in Sources */,
EAF7F11728A1475A00B287F5 /* RadioButton.swift in Sources */,
@ -565,9 +639,10 @@
EA4DB30228DCBCA500103EE3 /* Badge.swift in Sources */,
EA33624728931B050071C351 /* Initable.swift in Sources */,
EAF7F0A4289B017C00B287F5 /* LabelAttributeModel.swift in Sources */,
EAF7F0B1289B177F00B287F5 /* LabelAttributeColor.swift in Sources */,
EAF7F0B1289B177F00B287F5 /* ColorLabelAttribute.swift in Sources */,
EAC9258F2911C9DE00091998 /* EntryField.swift in Sources */,
EAB1D2EA28AE84AA00DAE764 /* UIControlPublisher.swift in Sources */,
EAF7F13328A2A16500B287F5 /* LabelAttributeAttachment.swift in Sources */,
EAF7F13328A2A16500B287F5 /* AttachmentLabelAttributeModel.swift in Sources */,
EA89200628B526D6006B9984 /* CheckboxGroup.swift in Sources */,
EAD8D2C128BFDE8B006EB6A6 /* UIGestureRecognizer+Publisher.swift in Sources */,
EAF7F0B9289C139800B287F5 /* ColorConfiguration.swift in Sources */,
@ -581,22 +656,23 @@
EA1F266528B945070033E859 /* RadioSwatch.swift in Sources */,
EA4DB18528CA967F00103EE3 /* SelectorGroupHandlerBase.swift in Sources */,
EA89200228AECF2A006B9984 /* UIButton+Publisher.swift in Sources */,
EAF7F0AB289B13FD00B287F5 /* LabelAttributeFont.swift in Sources */,
EAF7F0AB289B13FD00B287F5 /* FontLabelAttribute.swift in Sources */,
EAB1D29C28A5618900DAE764 /* RadioButtonGroup.swift in Sources */,
EA336171288B19200071C351 /* VDS.docc in Sources */,
EAA5EEB528ECBFB4003B3210 /* ImageLabelAttribute.swift in Sources */,
EAB1D2E628AE842000DAE764 /* Publisher+Bind.swift in Sources */,
EA3361AA288B25E40071C351 /* Disabling.swift in Sources */,
EA3361B6288B2A410071C351 /* Control.swift in Sources */,
5F21D7BF28DCEB3D003E7CD6 /* Useable.swift in Sources */,
EAF7F0B7289C12A600B287F5 /* UITapGestureRecognizer.swift in Sources */,
EA3361AD288B26190071C351 /* DataTrackable.swift in Sources */,
EAA5EEE228F4C62C003B3210 /* Colorable.swift in Sources */,
EA33623E2892EE950071C351 /* UIDevice.swift in Sources */,
EA3362302891EB4A0071C351 /* Fonts.swift in Sources */,
EAF7F0AD289B142900B287F5 /* LabelAttributeStrikeThrough.swift in Sources */,
EAF7F0AD289B142900B287F5 /* StrikeThroughLabelAttribute.swift in Sources */,
EA3361B8288B2AAA0071C351 /* ViewProtocol.swift in Sources */,
EA3361BF288B2EA60071C351 /* Handlerable.swift in Sources */,
EA3361A8288B23300071C351 /* UIColor.swift in Sources */,
EAC9257D29119B5400091998 /* TextLink.swift in Sources */,
EA1F266628B945070033E859 /* RadioSwatchGroup.swift in Sources */,
5FC35BE328D51405004EBEAC /* Button.swift in Sources */,
);

View File

@ -66,6 +66,8 @@ open class Control: UIControl, Handlerable, ViewProtocol, Resettable {
if !initialSetupPerformed {
initialSetupPerformed = true
setup()
setupDidChangeEvent()
updateView()
}
}
@ -79,11 +81,6 @@ open class Control: UIControl, Handlerable, ViewProtocol, Resettable {
//--------------------------------------------------
// MARK: - Overrides
//--------------------------------------------------
open override func layoutSubviews() {
super.layoutSubviews()
updateView()
}
open func updateView() {}
open func reset() {

View File

@ -65,12 +65,9 @@ open class View: UIView, Handlerable, ViewProtocol, Resettable {
if !initialSetupPerformed {
initialSetupPerformed = true
setup()
}
}
open override func layoutSubviews() {
super.layoutSubviews()
updateView()
setupDidChangeEvent()
updateView()
}
}
//--------------------------------------------------

View File

@ -31,7 +31,8 @@ open class Button: UIButton, Handlerable, ViewProtocol, Resettable, Useable {
private var minWidthConstraint: NSLayoutConstraint?
private var widthConstraint: NSLayoutConstraint?
private var heightConstraint: NSLayoutConstraint?
private var initialSetupPerformed = false
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -120,11 +121,15 @@ open class Button: UIButton, Handlerable, ViewProtocol, Resettable, Useable {
// MARK: - Public Functions
//--------------------------------------------------
open func initialSetup() {
backgroundColor = .clear
translatesAutoresizingMaskIntoConstraints = false
accessibilityCustomActions = []
accessibilityTraits = .staticText
setup()
if !initialSetupPerformed {
backgroundColor = .clear
translatesAutoresizingMaskIntoConstraints = false
accessibilityCustomActions = []
accessibilityTraits = .staticText
setup()
setupDidChangeEvent()
updateView()
}
}
open func setup() {
@ -150,11 +155,6 @@ open class Button: UIButton, Handlerable, ViewProtocol, Resettable, Useable {
accessibilityCustomActions = []
accessibilityTraits = .staticText
}
open override func layoutSubviews() {
super.layoutSubviews()
updateView()
}
//--------------------------------------------------
// MARK: - Overrides

View File

@ -0,0 +1,103 @@
//
// TextLink.swift
// VDS
//
// Created by Matt Bruce on 11/1/22.
//
import Foundation
import UIKit
import VDSColorTokens
import VDSFormControlsTokens
import Combine
@objc(VDSTextLink)
open class TextLink: Control {
//--------------------------------------------------
// MARK: - Private Properties
//--------------------------------------------------
private var heightConstraint: NSLayoutConstraint?
private var label = Label()
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
open var text: String? { didSet { didChange() } }
open var size: ButtonSize = .large { didSet { didChange() }}
private var height: CGFloat {
switch size {
case .large:
return 44
case .small:
return 32
}
}
//--------------------------------------------------
// MARK: - Initializers
//--------------------------------------------------
required public init() {
super.init(frame: .zero)
initialSetup()
}
public override init(frame: CGRect) {
super.init(frame: .zero)
initialSetup()
}
public required init?(coder: NSCoder) {
super.init(coder: coder)
initialSetup()
}
//--------------------------------------------------
// MARK: - Public Functions
//--------------------------------------------------
open override func initialSetup() {
super.initialSetup()
}
open override func setup() {
super.setup()
addSubview(label)
//add tapGesture to self
publisher(for: UITapGestureRecognizer()).sink { [weak self] _ in
self?.sendActions(for: .touchUpInside)
}.store(in: &subscribers)
//pin stackview to edges
label.topAnchor.constraint(equalTo: topAnchor).isActive = true
label.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
label.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
label.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
heightConstraint = heightAnchor.constraint(equalToConstant: height)
heightConstraint?.isActive = true
}
open override func reset() {
super.reset()
size = .large
accessibilityCustomActions = []
accessibilityTraits = .staticText
}
//--------------------------------------------------
// MARK: - Overrides
//--------------------------------------------------
open override func updateView() {
label.surface = surface
label.disabled = disabled
label.typograpicalStyle = size == .large ? TypographicalStyle.BodyLarge : TypographicalStyle.BodySmall
label.text = text ?? ""
label.attributes = [UnderlineLabelAttribute(location: 0, length: label.text!.count)]
heightConstraint?.constant = height
}
}

View File

@ -0,0 +1,304 @@
//
// TextLinkCaret.swift
// VDS
//
// Created by Matt Bruce on 11/1/22.
//
import Foundation
import UIKit
import VDSColorTokens
import VDSFormControlsTokens
import Combine
public enum TextLinkCaretPosition: String, CaseIterable {
case left, right
}
@objc(VDSTextLinkCaret)
open class TextLinkCaret: Control {
//--------------------------------------------------
// MARK: - Private Properties
//--------------------------------------------------
private var heightConstraint: NSLayoutConstraint?
private var label = Label().with {
$0.typograpicalStyle = TypographicalStyle.BoldBodyLarge
}
private var caretView = CaretView().with {
$0.size = CaretView.CaretSize.small(.vertical)
$0.lineWidth = 2
}
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
open var text: String? { didSet { didChange() } }
open var iconPosition: TextLinkCaretPosition = .right { didSet { didChange() } }
private var height: CGFloat {
44
}
//--------------------------------------------------
// MARK: - Initializers
//--------------------------------------------------
required public init() {
super.init(frame: .zero)
initialSetup()
}
public override init(frame: CGRect) {
super.init(frame: .zero)
initialSetup()
}
public required init?(coder: NSCoder) {
super.init(coder: coder)
initialSetup()
}
//--------------------------------------------------
// MARK: - Public Functions
//--------------------------------------------------
open override func initialSetup() {
super.initialSetup()
}
open override func setup() {
super.setup()
//add tapGesture to self
publisher(for: UITapGestureRecognizer()).sink { [weak self] _ in
self?.sendActions(for: .touchUpInside)
}.store(in: &subscribers)
//constraints
heightAnchor.constraint(greaterThanOrEqualToConstant: height).isActive = true
let size = caretView.size!.dimensions()
caretView.frame = .init(x: 0, y: 0, width: size.width, height: size.height)
addSubview(label)
label.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
label.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
label.topAnchor.constraint(equalTo: topAnchor).isActive = true
label.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
}
//--------------------------------------------------
// MARK: - Constraints
//--------------------------------------------------
private var caretLeadingConstraint: NSLayoutConstraint?
private var caretTrailingConstraint: NSLayoutConstraint?
private var labelConstraint: NSLayoutConstraint?
open override func reset() {
super.reset()
accessibilityCustomActions = []
accessibilityTraits = .staticText
}
//--------------------------------------------------
// MARK: - Overrides
//--------------------------------------------------
open override func updateView() {
var updatedText = text ?? ""
caretView.surface = surface
caretView.disabled = disabled
caretView.direction = iconPosition == .right ? CaretView.Direction.right : CaretView.Direction.left
let image = caretView.getImage()
let location = iconPosition == .right ? updatedText.count + 1 : 0
let textColor = label.textColorConfiguration.getColor(self)
let imageAttribute = ImageLabelAttribute(location: location,
length: 1,
image: image,
frame: .init(x: 0, y: 0, width: image.size.width, height: image.size.height),
tintColor: textColor)
label.surface = surface
label.disabled = disabled
label.text = iconPosition == .right ? "\(updatedText) " : " \(updatedText)"
label.attributes = [imageAttribute]
}
}
extension UIView {
public func getImage() -> UIImage {
let renderer = UIGraphicsImageRenderer(size: self.bounds.size)
let image = renderer.image { ctx in
self.drawHierarchy(in: self.bounds, afterScreenUpdates: true)
}
return image
}
}
internal class CaretView: View {
//------------------------------------------------------
// MARK: - Properties
//------------------------------------------------------
private var caretPath: UIBezierPath = UIBezierPath()
public var lineWidth: CGFloat = 1 { didSet{ didChange() } }
public var direction: Direction = .right { didSet{ didChange() } }
public var size: CaretSize? { didSet{ didChange() } }
public var colorConfiguration: AnyColorable = DisabledSurfaceColorConfiguration().with {
$0.disabled.lightColor = VDSColor.elementsSecondaryOnlight
$0.disabled.darkColor = VDSColor.elementsSecondaryOndark
$0.enabled.lightColor = VDSColor.elementsPrimaryOnlight
$0.enabled.darkColor = VDSColor.elementsPrimaryOndark
}.eraseToAnyColorable()
//------------------------------------------------------
// MARK: - Constraints
//------------------------------------------------------
/// Sizes of CaretView are derived from InVision design specs. They are provided for convenience.
public enum CaretSize {
case small(Orientation)
case medium(Orientation)
case large(Orientation)
/// Orientation based on the longest line of the view.
public enum Orientation {
case vertical
case horizontal
}
/// Dimensions of container; provided by InVision design.
func dimensions() -> CGSize {
switch self {
case .small(let o):
return o == .vertical ? CGSize(width: 6.9, height: 10.96) : CGSize(width: 10.96, height: 6.9)
case .medium(let o):
return o == .vertical ? CGSize(width: 9.9, height: 16.96) : CGSize(width: 16.96, height: 9.9)
case .large(let o):
return o == .vertical ? CGSize(width: 14.9, height: 24.96) : CGSize(width: 24.96, height: 14.9)
}
}
}
//------------------------------------------------------
// MARK: - Initialization
//------------------------------------------------------
public override init(frame: CGRect) {
super.init(frame: frame)
}
public convenience init(lineWidth: CGFloat) {
self.init(frame: .zero)
self.lineWidth = lineWidth
}
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
fatalError("CaretView xib not supported.")
}
required public convenience init() {
self.init(frame: .zero)
}
public convenience init(size: CaretSize){
let dimensions = size.dimensions()
self.init(frame: .init(x: 0, y: 0, width: dimensions.width, height: dimensions.height))
self.size = size
}
//------------------------------------------------------
// MARK: - Setup
//------------------------------------------------------
override open func setup() {
super.setup()
defaultState()
}
//------------------------------------------------------
// MARK: - Drawing
//------------------------------------------------------
/// The direction the caret will be pointing to.
public enum Direction: Int {
case left
case right
case down
case up
}
override func draw(_ rect: CGRect) {
super.draw(rect)
caretPath.removeAllPoints()
caretPath.lineJoinStyle = .miter
caretPath.lineWidth = lineWidth
let inset = lineWidth / 2
let halfWidth = frame.size.width / 2
let halfHeight = frame.size.height / 2
switch direction {
case .up:
caretPath.move(to: CGPoint(x: inset, y: frame.size.height - inset))
caretPath.addLine(to: CGPoint(x: halfWidth, y: inset))
caretPath.addLine(to: CGPoint(x: frame.size.width, y: frame.size.height))
case .right:
caretPath.move(to: CGPoint(x: inset, y: inset))
caretPath.addLine(to: CGPoint(x: frame.size.width - inset, y: halfHeight))
caretPath.addLine(to: CGPoint(x: inset, y: frame.size.height - inset))
case .down:
caretPath.move(to: CGPoint(x: inset, y: inset))
caretPath.addLine(to: CGPoint(x: halfWidth, y: frame.size.height - inset))
caretPath.addLine(to: CGPoint(x: frame.size.width - inset, y: inset))
case .left:
caretPath.move(to: CGPoint(x: frame.size.width - inset, y: inset))
caretPath.addLine(to: CGPoint(x: inset, y: halfHeight))
caretPath.addLine(to: CGPoint(x: frame.size.width - inset, y: frame.size.height - inset))
}
let color = colorConfiguration.getColor(self)
color.setStroke()
caretPath.stroke()
}
override func updateView() {
setNeedsDisplay()
}
//------------------------------------------------------
// MARK: - Methods
//------------------------------------------------------
public func setLineColor(_ color: UIColor) {
setNeedsDisplay()
}
public func defaultState() {
isOpaque = false
isHidden = false
backgroundColor = .clear
}
/// Ensure you have defined a CaretSize with Orientation before calling.
public func setConstraints() {
guard let dimensions = size?.dimensions() else { return }
heightAnchor.constraint(equalToConstant: dimensions.height).isActive = true
widthAnchor.constraint(equalToConstant: dimensions.width).isActive = true
}
}

View File

@ -9,18 +9,18 @@ import Foundation
import UIKit
import Combine
public protocol LabelAttributeActionable: LabelAttributeModel {
public protocol ActionLabelAttributeModel: LabelAttributeModel {
var accessibleText: String? { get set }
var action: PassthroughSubject<Void, Never> { get set }
}
public struct LabelAttributeActionModel: LabelAttributeActionable {
public struct ActionLabelAttribute: ActionLabelAttributeModel {
public static func == (lhs: LabelAttributeActionModel, rhs: LabelAttributeActionModel) -> Bool {
public static func == (lhs: ActionLabelAttribute, rhs: ActionLabelAttribute) -> Bool {
lhs.isEqual(rhs)
}
public func isEqual(_ equatable: LabelAttributeActionModel) -> Bool {
public func isEqual(_ equatable: ActionLabelAttribute) -> Bool {
return id == equatable.id && range == equatable.range
}

View File

@ -8,11 +8,11 @@
import Foundation
import UIKit
public protocol LabelAttributeAttachment: LabelAttributeModel {
public protocol AttachmentLabelAttributeModel: LabelAttributeModel {
func getAttachment() throws -> NSTextAttachment
}
extension LabelAttributeAttachment {
extension AttachmentLabelAttributeModel {
public func setAttribute(on attributedString: NSMutableAttributedString) {
do {
let mutableString = NSMutableAttributedString()

View File

@ -8,8 +8,8 @@
import Foundation
import UIKit
public struct LabelAttributeColor: LabelAttributeModel {
public func isEqual(_ equatable: LabelAttributeColor) -> Bool {
public struct ColorLabelAttribute: LabelAttributeModel {
public func isEqual(_ equatable: ColorLabelAttribute) -> Bool {
return id == equatable.id && range == equatable.range && color == equatable.color
}
//--------------------------------------------------

View File

@ -8,8 +8,8 @@
import Foundation
import UIKit
public struct LabelAttributeFont: LabelAttributeModel {
public func isEqual(_ equatable: LabelAttributeFont) -> Bool {
public struct FontLabelAttribute: LabelAttributeModel {
public func isEqual(_ equatable: FontLabelAttribute) -> Bool {
return id == equatable.id
&& range == equatable.range
&& color == equatable.color

View File

@ -0,0 +1,62 @@
//
// LabelSystemImageLabelAttribute.swift
// VDS
//
// Created by Matt Bruce on 10/4/22.
//
import Foundation
import UIKit
public struct ImageLabelAttribute: AttachmentLabelAttributeModel {
public enum Error: Swift.Error {
case bundleNotFound
case imageNotFound(String)
case imageNotSet
}
public var id = UUID()
public var location: Int
public var length: Int
public var imageName: String?
public var image: UIImage?
public var frame: CGRect
public var tintColor: UIColor
public static func == (lhs: ImageLabelAttribute, rhs: ImageLabelAttribute) -> Bool {
lhs.isEqual(rhs)
}
public func isEqual(_ equatable: ImageLabelAttribute) -> Bool {
return id == equatable.id && range == equatable.range && imageName == equatable.imageName
}
private func imageAttachment(image: UIImage) -> NSTextAttachment {
let attachment = NSTextAttachment()
attachment.image = image.withTintColor(tintColor)
attachment.bounds = frame
return attachment
}
public func getAttachment() throws -> NSTextAttachment {
//get a local asset
if let imageName {
guard let bundle = Bundle(identifier: "com.vzw.vds") else {
throw Error.bundleNotFound
}
guard let image = UIImage(named: imageName, in: bundle, with: nil) else {
throw Error.imageNotFound(imageName)
}
return imageAttachment(image: image)
} //get from set image
else if let image {
return imageAttachment(image: image)
} else {
throw Error.imageNotSet
}
}
}

View File

@ -8,8 +8,8 @@
import Foundation
import UIKit
public struct LabelAttributeStrikeThrough: LabelAttributeModel {
public func isEqual(_ equatable: LabelAttributeStrikeThrough) -> Bool {
public struct StrikeThroughLabelAttribute: LabelAttributeModel {
public func isEqual(_ equatable: StrikeThroughLabelAttribute) -> Bool {
return id == equatable.id
&& range == equatable.range
}

View File

@ -0,0 +1,39 @@
//
// ToolTipLabelAttribute.swift
// VDS
//
// Created by Matt Bruce on 10/4/22.
//
import Foundation
import UIKit
import Combine
public struct ToolTipLabelAttribute: ActionLabelAttributeModel {
public var id = UUID()
public var accessibleText: String? = "Tool Tip"
public var action = PassthroughSubject<Void, Never>()
public var location: Int
public var length: Int
public var tintColor: UIColor
public func setAttribute(on attributedString: NSMutableAttributedString) {
let image = ImageLabelAttribute(location: location,
length: length,
imageName: "info",
frame: .init(x: 0, y: -2, width: 13.3, height: 13.3),
tintColor: tintColor)
image.setAttribute(on: attributedString)
}
public static func == (lhs: ToolTipLabelAttribute, rhs: ToolTipLabelAttribute) -> Bool {
lhs.isEqual(rhs)
}
public func isEqual(_ equatable: ToolTipLabelAttribute) -> Bool {
return id == equatable.id && range == equatable.range
}
}

View File

@ -8,9 +8,9 @@
import Foundation
import UIKit
public struct LabelAttributeUnderline: LabelAttributeModel {
public struct UnderlineLabelAttribute: LabelAttributeModel {
public func isEqual(_ equatable: LabelAttributeUnderline) -> Bool {
public func isEqual(_ equatable: UnderlineLabelAttribute) -> Bool {
return id == equatable.id
&& range == equatable.range
&& color == equatable.color
@ -33,7 +33,7 @@ public struct LabelAttributeUnderline: LabelAttributeModel {
}
}
public init(location: Int, length: Int, style: UnderlineStyle = .single, color: UIColor = .black, pattern: UnderlineStyle.Pattern? = nil) {
public init(location: Int, length: Int, style: UnderlineStyle = .single, color: UIColor? = nil, pattern: UnderlineStyle.Pattern? = nil) {
self.location = location
self.length = length
self.color = color

View File

@ -26,11 +26,13 @@ open class LabelBase: UILabel, Handlerable, ViewProtocol, Resettable {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
private var initialSetupPerformed = false
open var surface: Surface = .light { didSet { didChange() }}
open var disabled: Bool = false { didSet { isEnabled = !disabled } }
open var attributes: [any LabelAttributeModel]? { didSet { didChange() }}
open var attributes: [any LabelAttributeModel]? { didSet { didChange() }}
open var typograpicalStyle: TypographicalStyle = .defaultStyle { didSet { didChange() }}
@ -85,13 +87,17 @@ open class LabelBase: UILabel, Handlerable, ViewProtocol, Resettable {
// MARK: - Public Functions
//--------------------------------------------------
open func initialSetup() {
backgroundColor = .clear
numberOfLines = 0
lineBreakMode = .byWordWrapping
translatesAutoresizingMaskIntoConstraints = false
accessibilityCustomActions = []
accessibilityTraits = .staticText
setup()
if !initialSetupPerformed {
backgroundColor = .clear
numberOfLines = 0
lineBreakMode = .byWordWrapping
translatesAutoresizingMaskIntoConstraints = false
accessibilityCustomActions = []
accessibilityTraits = .staticText
setup()
setupDidChangeEvent()
updateView()
}
}
open func setup() {}
@ -111,12 +117,7 @@ open class LabelBase: UILabel, Handlerable, ViewProtocol, Resettable {
//--------------------------------------------------
// MARK: - Overrides
//--------------------------------------------------
open override func layoutSubviews() {
super.layoutSubviews()
updateView()
}
//--------------------------------------------------
open func updateView() {
textAlignment = textPosition.textAlignment
textColor = textColorConfiguration.getColor(self)
@ -142,7 +143,7 @@ open class LabelBase: UILabel, Handlerable, ViewProtocol, Resettable {
attribute.setAttribute(on: mutableText)
//see if the attribute is Actionable
if let actionable = attribute as? any LabelAttributeActionable{
if let actionable = attribute as? any ActionLabelAttributeModel{
//create a accessibleAction
let customAccessibilityAction = customAccessibilityAction(range: actionable.range, accessibleText: actionable.accessibleText)

View File

@ -0,0 +1,373 @@
//
// EntryField.swift
// VDS
//
// Created by Matt Bruce on 10/3/22.
//
import Foundation
import UIKit
import VDSColorTokens
import VDSFormControlsTokens
import Combine
public enum HelperTextPlacement: String, CaseIterable {
case bottom, right
}
open class EntryField: Control, Accessable {
//--------------------------------------------------
// MARK: - Initializers
//--------------------------------------------------
required public init() {
super.init(frame: .zero)
}
public override init(frame: CGRect) {
super.init(frame: .zero)
}
public required init?(coder: NSCoder) {
super.init(coder: coder)
}
//--------------------------------------------------
// MARK: - Private Properties
//--------------------------------------------------
internal var stackView: UIStackView = {
return UIStackView().with {
$0.translatesAutoresizingMaskIntoConstraints = false
$0.axis = .vertical
$0.distribution = .fill
}
}()
internal var titleLabel = Label().with {
$0.setContentCompressionResistancePriority(.required, for: .vertical)
$0.attributes = []
}
internal var errorLabel = Label().with {
$0.setContentCompressionResistancePriority(.required, for: .vertical)
}
internal var helperLabel = Label().with {
$0.setContentCompressionResistancePriority(.required, for: .vertical)
}
internal var containerView: UIView = {
return UIView().with {
$0.translatesAutoresizingMaskIntoConstraints = false
}
}()
internal var tooltipView: UIView?
//--------------------------------------------------
// MARK: - Configuration Properties
//--------------------------------------------------
// Sizes are from InVision design specs.
internal let containerSize = CGSize(width: 45, height: 45)
internal let primaryColorConfig = DisabledSurfaceColorConfiguration().with {
$0.disabled.lightColor = VDSColor.interactiveDisabledOnlight
$0.disabled.darkColor = VDSColor.interactiveDisabledOndark
$0.enabled.lightColor = VDSColor.elementsPrimaryOnlight
$0.enabled.darkColor = VDSColor.elementsPrimaryOndark
}
internal let secondaryColorConfig = DisabledSurfaceColorConfiguration().with {
$0.disabled.lightColor = VDSColor.interactiveDisabledOnlight
$0.disabled.darkColor = VDSColor.interactiveDisabledOndark
$0.enabled.lightColor = VDSColor.elementsSecondaryOnlight
$0.enabled.darkColor = VDSColor.elementsSecondaryOndark
}
internal lazy var backgroundColorConfiguration: AnyColorable = {
return getBackgroundConfig()
}()
internal lazy var borderColorConfiguration: AnyColorable = {
return getBorderConfig()
}()
//--------------------------------------------------
// MARK: - Public Properties
//--------------------------------------------------
open var labelText: String? { didSet { didChange() }}
open var helperText: String? { didSet { didChange() }}
open var showError: Bool = false { didSet { didChange() }}
open var errorText: String? { didSet { didChange() }}
open var tooltipTitle: String? { didSet { didChange() }}
open var tooltipContent: String? { didSet { didChange() }}
open var transparentBackground: Bool = false { didSet { didChange() }}
open var width: CGFloat? { didSet { didChange() }}
open var maxLength: Int? { didSet { didChange() }}
open var inputId: String? { didSet { didChange() }}
open var value: AnyHashable? { didSet { didChange() }}
open var defaultValue: AnyHashable? { didSet { didChange() }}
open var required: Bool = false { didSet { didChange() }}
open var readOnly: Bool = false { didSet { didChange() }}
open var accessibilityHintEnabled: String? { didSet { didChange() }}
open var accessibilityHintDisabled: String? { didSet { didChange() }}
open var accessibilityValueEnabled: String? { didSet { didChange() }}
open var accessibilityValueDisabled: String? { didSet { didChange() }}
open var accessibilityLabelEnabled: String? { didSet { didChange() }}
open var accessibilityLabelDisabled: String? { didSet { didChange() }}
//--------------------------------------------------
// MARK: - Constraints
//--------------------------------------------------
internal var heightConstraint: NSLayoutConstraint?
internal var widthConstraint: NSLayoutConstraint?
//--------------------------------------------------
// MARK: - Lifecycle
//--------------------------------------------------
open override func setup() {
super.setup()
//add tapGesture to self
publisher(for: UITapGestureRecognizer()).sink { [weak self] _ in
self?.sendActions(for: .touchUpInside)
}.store(in: &subscribers)
isAccessibilityElement = true
accessibilityTraits = .button
addSubview(stackView)
//create the wrapping view
heightConstraint = containerView.heightAnchor.constraint(greaterThanOrEqualToConstant: containerSize.height)
heightConstraint?.isActive = true
widthConstraint = containerView.widthAnchor.constraint(equalToConstant: 0)
let container = getContainer()
stackView.addArrangedSubview(titleLabel)
stackView.addArrangedSubview(container)
stackView.addArrangedSubview(errorLabel)
stackView.addArrangedSubview(helperLabel)
stackView.setCustomSpacing(4, after: titleLabel)
stackView.setCustomSpacing(8, after: container)
stackView.setCustomSpacing(8, after: errorLabel)
stackView.topAnchor.constraint(equalTo: topAnchor).isActive = true
stackView.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
stackView.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
stackView.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
titleLabel.textColorConfiguration = primaryColorConfig.eraseToAnyColorable()
errorLabel.textColorConfiguration = primaryColorConfig.eraseToAnyColorable()
helperLabel.textColorConfiguration = secondaryColorConfig.eraseToAnyColorable()
}
open func getContainer() -> UIView {
return containerView
}
open func getBackgroundConfig() -> AnyColorable {
return ErrorDisabledSurfaceColorConfiguration().with {
$0.enabled.lightColor = VDSFormControlsColor.backgroundOnlight
$0.enabled.darkColor = VDSFormControlsColor.backgroundOndark
$0.disabled.lightColor = VDSFormControlsColor.backgroundOnlight
$0.disabled.darkColor = VDSFormControlsColor.backgroundOndark
//error doesn't care enabled/disable
$0.error.lightColor = VDSColor.feedbackErrorBackgroundOnlight
$0.error.darkColor = VDSColor.feedbackErrorBackgroundOndark
}.eraseToAnyColorable()
}
open func getBorderConfig() -> AnyColorable {
return ErrorDisabledSurfaceColorConfiguration().with {
$0.enabled.lightColor = VDSFormControlsColor.borderOnlight
$0.enabled.darkColor = VDSFormControlsColor.borderOnlight
$0.disabled.lightColor = VDSColor.interactiveDisabledOnlight
$0.disabled.darkColor = VDSColor.interactiveDisabledOndark
//error doesn't care enabled/disable
$0.error.lightColor = VDSColor.feedbackErrorOnlight
$0.error.darkColor = VDSColor.feedbackErrorOndark
}.eraseToAnyColorable()
}
open func getToolTipView() -> UIView? {
guard let tooltipTitle, let tooltipContent else {
return nil
}
let stack = UIStackView().with {
$0.translatesAutoresizingMaskIntoConstraints = false
$0.axis = .vertical
$0.distribution = .fill
$0.spacing = 4
}
let title = Label().with {
$0.setContentCompressionResistancePriority(.required, for: .vertical)
$0.textPosition = .left
$0.typograpicalStyle = .BoldBodySmall
$0.text = tooltipTitle
$0.surface = surface
$0.disabled = disabled
}
let content = Label().with {
$0.setContentCompressionResistancePriority(.required, for: .vertical)
$0.textPosition = .left
$0.typograpicalStyle = .BoldBodySmall
$0.text = tooltipContent
$0.surface = surface
$0.disabled = disabled
}
stack.addArrangedSubview(title)
stack.addArrangedSubview(content)
stack.backgroundColor = backgroundColorConfiguration.getColor(self)
return stack
}
open func showToolTipView(){
print("toolTip clicked: showToolTipView() called")
}
public override func reset() {
super.reset()
setAccessibilityLabel()
}
//--------------------------------------------------
// MARK: - State
//--------------------------------------------------
open override func updateView() {
containerView.backgroundColor = backgroundColorConfiguration.getColor(self)
containerView.layer.borderColor = borderColorConfiguration.getColor(self).cgColor
containerView.layer.borderWidth = 1
containerView.layer.cornerRadius = 4
updateTitleLabel()
updateErrorLabel()
updateHelperLabel()
setAccessibilityHint()
backgroundColor = surface.color
}
open func updateTitleLabel() {
//update the local vars for the label since we no
//long have a model
var attributes: [any LabelAttributeModel] = []
var updatedLabelText = labelText
//dealing with the "Optional" addition to the text
if let oldText = updatedLabelText, !required, !oldText.hasSuffix("Optional") {
let optionColorAttr = ColorLabelAttribute(location: oldText.count + 2,
length: 8,
color: secondaryColorConfig.getColor(self))
updatedLabelText = "\(oldText) Optional"
attributes.append(optionColorAttr)
}
//add the tool tip
if let view = getToolTipView(), let oldText = updatedLabelText {
tooltipView = view
let toolTipAction = PassthroughSubject<Void, Never>()
let toolTipUpdateText = "\(oldText) " //create a little space between the final character and tooltip image
let toolTipAttribute = ToolTipLabelAttribute(action: toolTipAction,
location: toolTipUpdateText.count,
length: 1,
tintColor: primaryColorConfig.getColor(self))
updatedLabelText = toolTipUpdateText
attributes.append(toolTipAttribute)
toolTipAction.sink { [weak self] in
self?.showToolTipView()
}.store(in: &subscribers)
} else {
tooltipView = nil
}
//set the titleLabel
titleLabel.textPosition = .left
titleLabel.typograpicalStyle = .BodySmall
titleLabel.text = updatedLabelText
titleLabel.attributes = attributes
titleLabel.surface = surface
titleLabel.disabled = disabled
}
open func updateErrorLabel(){
if showError, let errorText {
errorLabel.textPosition = .left
errorLabel.typograpicalStyle = .BodySmall
errorLabel.text = errorText
errorLabel.surface = surface
errorLabel.disabled = disabled
errorLabel.isHidden = false
} else {
errorLabel.isHidden = true
}
}
open func updateHelperLabel(){
//set the helper label position
if let helperText {
helperLabel.textPosition = .left
helperLabel.typograpicalStyle = .BodySmall
helperLabel.text = helperText
helperLabel.surface = surface
helperLabel.disabled = disabled
helperLabel.isHidden = false
} else {
helperLabel.isHidden = true
}
}
}
//--------------------------------------------------
// MARK: - Color Class Configurations
//--------------------------------------------------
internal class ErrorDisabledSurfaceColorConfiguration: DisabledSurfaceColorable {
typealias ModelType = Errorable & Surfaceable & Disabling
var error = SurfaceColorConfiguration()
var disabled = SurfaceColorConfiguration()
var enabled = SurfaceColorConfiguration()
required public init(){}
func getColor(_ viewModel: any ModelType) -> UIColor {
//only show error is enabled and showError == true
let showErrorColor = !viewModel.disabled && viewModel.showError
if showErrorColor {
return error.getColor(viewModel)
} else {
return getDisabledColor(viewModel)
}
}
}

View File

@ -0,0 +1,219 @@
//
// TextEntryField.swift
// VDS
//
// Created by Matt Bruce on 10/3/22.
//
import Foundation
import UIKit
import VDSColorTokens
import VDSFormControlsTokens
import Combine
public enum TextEntryFieldType: String, CaseIterable {
case text, number, calendar, inlineAction, password, creditCard, tel, date, securityCode
}
public class TextEntryField: TextEntryFieldBase{}
open class TextEntryFieldBase: EntryField {
//--------------------------------------------------
// MARK: - Initializers
//--------------------------------------------------
required public init() {
super.init(frame: .zero)
}
public override init(frame: CGRect) {
super.init(frame: .zero)
}
public required init?(coder: NSCoder) {
super.init(coder: coder)
}
//--------------------------------------------------
// MARK: - Private Properties
//--------------------------------------------------
internal var containerStackView: UIStackView = {
return UIStackView().with {
$0.translatesAutoresizingMaskIntoConstraints = false
$0.axis = .horizontal
$0.distribution = .fill
$0.spacing = 12
}
}()
//--------------------------------------------------
// MARK: - Public Properties
//--------------------------------------------------
open var type: TextEntryFieldType = .text { didSet { didChange() }}
open var showSuccess: Bool = false { didSet { didChange() }}
open var successText: String? { didSet { didChange() }}
open var helperTextPlacement: HelperTextPlacement = .bottom { didSet { didChange() }}
private var successLabel = Label().with {
$0.setContentCompressionResistancePriority(.required, for: .vertical)
}
internal var minWidthConstraint: NSLayoutConstraint?
//--------------------------------------------------
// MARK: - Lifecycle
//--------------------------------------------------
open override func setup() {
super.setup()
minWidthConstraint = containerView.widthAnchor.constraint(greaterThanOrEqualToConstant: 0)
minWidthConstraint?.isActive = true
stackView.addArrangedSubview(successLabel)
stackView.setCustomSpacing(8, after: successLabel)
successLabel.textColorConfiguration = primaryColorConfig.eraseToAnyColorable()
}
open override func getContainer() -> UIView {
containerStackView.addArrangedSubview(containerView)
return containerStackView
}
open override func getBackgroundConfig() -> AnyColorable {
return TextEntryFieldColorConfiguration().with {
$0.enabled.lightColor = VDSFormControlsColor.backgroundOnlight
$0.enabled.darkColor = VDSFormControlsColor.backgroundOndark
$0.disabled.lightColor = VDSFormControlsColor.backgroundOnlight
$0.disabled.darkColor = VDSFormControlsColor.backgroundOndark
//error/success doesn't care enabled/disable
$0.error.lightColor = VDSColor.feedbackErrorBackgroundOnlight
$0.error.darkColor = VDSColor.feedbackErrorBackgroundOndark
$0.success.lightColor = VDSColor.feedbackSuccessBackgroundOnlight
$0.success.darkColor = VDSColor.feedbackSuccessBackgroundOndark
}.eraseToAnyColorable()
}
open override func getBorderConfig() -> AnyColorable {
return TextEntryFieldColorConfiguration().with {
$0.enabled.lightColor = VDSFormControlsColor.borderOnlight
$0.enabled.darkColor = VDSFormControlsColor.borderOnlight
$0.disabled.lightColor = VDSColor.interactiveDisabledOnlight
$0.disabled.darkColor = VDSColor.interactiveDisabledOndark
//error/success doesn't care enabled/disable
$0.error.lightColor = VDSColor.feedbackErrorOnlight
$0.error.darkColor = VDSColor.feedbackErrorOndark
$0.success.lightColor = VDSColor.feedbackSuccessOnlight
$0.success.darkColor = VDSColor.feedbackSuccessOndark
}.eraseToAnyColorable()
}
//--------------------------------------------------
// MARK: - State
//--------------------------------------------------
open override func updateView() {
super.updateView()
//show error or success
if showError, let _ = errorText {
successLabel.isHidden = true
} else if showSuccess, let successText {
successLabel.textPosition = .left
successLabel.typograpicalStyle = .BodySmall
successLabel.text = successText
successLabel.surface = surface
successLabel.disabled = disabled
successLabel.isHidden = false
errorLabel.isHidden = true
} else {
successLabel.isHidden = true
}
//set the width constraints
if let width, width > type.width {
widthConstraint?.constant = width
widthConstraint?.isActive = true
minWidthConstraint?.isActive = false
} else {
minWidthConstraint?.constant = type.width
widthConstraint?.isActive = false
minWidthConstraint?.isActive = true
}
}
open override func updateHelperLabel(){
//remove first
helperLabel.removeFromSuperview()
super.updateHelperLabel()
//set the helper label position
if helperText != nil {
if helperTextPlacement == .right {
containerStackView.spacing = 12
containerStackView.distribution = .fillEqually
containerStackView.addArrangedSubview(helperLabel)
} else {
containerStackView.spacing = 0
containerStackView.distribution = .fill
stackView.addArrangedSubview(helperLabel)
}
}
}
internal class TextEntryFieldColorConfiguration: DisabledSurfaceColorable {
var success = SurfaceColorConfiguration()
var error = SurfaceColorConfiguration()
var disabled = SurfaceColorConfiguration()
var enabled = SurfaceColorConfiguration()
required init(){}
func getColor(_ object: TextEntryField) -> UIColor {
//only show error is enabled and showError == true
let showErrorColor = !object.disabled && object.showError
let showSuccessColor = !object.disabled && object.showSuccess
if showErrorColor {
return error.getColor(object)
} else if showSuccessColor {
return success.getColor(object)
} else {
return getDisabledColor(object)
}
}
}
}
extension TextEntryFieldType {
var width: CGFloat {
switch self {
case .inlineAction:
return 102
case .password:
return 62.0
case .creditCard:
return 288.0
case .tel:
return 176.0
case .date:
return 114.0
case .securityCode:
return 88.0
default:
return 40.0
}
}
}

View File

@ -17,6 +17,12 @@ public protocol Handlerable: AnyObject, Initable, Disabling, Surfaceable {
extension Handlerable {
public func setupDidChangeEvent() {
handlerPublisher().sink { [weak self] _ in
self?.updateView()
}.store(in: &subscribers)
}
public func handlerPublisher() -> AnyPublisher<Void, Never> {
subject
.eraseToAnyPublisher()
@ -28,6 +34,5 @@ extension Handlerable {
extension Handlerable where Self: UIView {
public func didChange() {
subject.send()
setNeedsLayout()
}
}

View File

@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "amex.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 20">
<polygon fill="#FFFFFF" points="20,20 10.1,20 0,20 0,9.9 0,0 9.9,0 20,0 20,10 "/>
<path fill="#0079C1" d="M20,20v-3.2h-2.4l-1.2-1.4l-1.2,1.4h-8v-6.4H4.6l3.2-7.2h3.1L12,5.7V3.2h3.8l0.7,1.9l0.7-1.9H20V0H0v20H20z
M18,16h2l-2.7-2.8l2.7-2.8h-2l-1.6,1.8l-1.6-1.8h-2l2.6,2.8L12.8,16h1.9l1.6-1.8L18,16L18,16z M18.5,13.2l1.5,1.6v-3.3L18.5,13.2
L18.5,13.2z M9.5,14.7v-0.9h3.2v-1.3H9.5v-0.9h3.2v-1.3H8V16h4.8v-1.3H9.5z M18.5,9.6H20V4h-2.4l-1.3,3.5L15.1,4h-2.4v5.6h1.5V5.7
l1.4,3.9H17l1.4-3.9L18.5,9.6L18.5,9.6z M11,9.6h1.7L10.3,4h-2L5.8,9.6h1.7L8,8.5h2.6L11,9.6L11,9.6z M10,7.2H8.5l0.8-1.8L10,7.2
L10,7.2z"/>
</svg>

After

Width:  |  Height:  |  Size: 671 B

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "credit-card.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1 @@
<svg id="Ebene_1" data-name="Ebene 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.6 21.6"><path d="M8,14.12H4.61V13H8ZM19.79,6.88v7.94A2.22,2.22,0,0,1,17.58,17H4A2.23,2.23,0,0,1,1.8,14.82V6.88A2.25,2.25,0,0,1,4,4.57H17.68A2.11,2.11,0,0,1,19.79,6.88Zm-16.88.5H18.69v-.5a1.13,1.13,0,0,0-1.11-1.11H4a1.12,1.12,0,0,0-1.1,1.11ZM18.79,10.8H2.91v3.92A1.12,1.12,0,0,0,4,15.83H17.68a1.12,1.12,0,0,0,1.11-1.11Zm0-2.21H2.91v1.1H18.79Z"/></svg>

After

Width:  |  Height:  |  Size: 439 B

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "dinersClub-inverted.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,196 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 20">
<g>
<circle fill="#FFFFFF" cx="4.29324" cy="10.07366" r="4.11485"/>
<g>
<path fill="#FFFFFE" d="M12.06619,10.20376c1.58688,0,1.84668-1.11611,1.84668-1.56005c0-0.79398-0.63216-1.56882-1.79285-1.56882
c-0.33194,0-0.58746,0.0083-0.77567,0.0083c-0.175,0-0.35428,0-0.52886-0.0083v0.11598
c0.2015,0.00457,0.41214-0.02203,0.41214,0.38119v2.17447c-0.01319,0.30469-0.14372,0.31342-0.41214,0.34045v0.1168
c0.2015-0.00414,0.39896-0.00872,0.60077-0.00872C11.62662,10.19504,11.83798,10.20376,12.06619,10.20376z M11.66682,7.23617
c0.08106-0.005,0.16586-0.01787,0.3497-0.01787c0.86526,0,1.40305,0.60523,1.40305,1.44326
c0,0.66802-0.31779,1.39838-1.28647,1.39838c-0.21937,0-0.46628-0.03991-0.46628-0.38533V7.23617z"/>
<path fill="#FFFFFE" d="M14.55004,7.4648c0.12076,0,0.21969-0.10309,0.21969-0.22404c0-0.12141-0.10351-0.21576-0.21969-0.21576
c-0.11244,0-0.22,0.10351-0.22,0.21576C14.33003,7.35712,14.43302,7.4648,14.55004,7.4648z"/>
<path fill="#FFFFFE" d="M15.02912,10.20376v-0.1168h-0.07608c-0.1251,0-0.22404,0-0.22404-0.14841V8.21761
c0-0.03576-0.00916-0.06237-0.03119-0.06237c-0.02285,0-0.04925,0.00459-0.08085,0.02203
c-0.01807,0.01416-0.26894,0.09852-0.47989,0.16172V8.4109c0.16626,0.08896,0.23319,0.11596,0.23319,0.31343v1.21421
c0,0.14841-0.08946,0.14841-0.21512,0.14841h-0.08501v0.1168c0.16586-0.00414,0.32715-0.00872,0.48854-0.00872
C14.71983,10.19504,14.87675,10.20376,15.02912,10.20376z"/>
<path fill="#FFFFFE" d="M17.40997,10.08696h-0.08085c-0.12512,0-0.22406,0-0.22406-0.14841V8.78253
c0-0.34961-0.13427-0.62729-0.51545-0.62729c-0.30033,0-0.52004,0.15215-0.77609,0.3363V8.19932
c0-0.03535-0.01309-0.04408-0.0266-0.04408c-0.21533,0.09354-0.39906,0.15215-0.59152,0.21492v0.08562
c0.21055,0.08481,0.2598,0.12971,0.2598,0.29515v1.18761c0,0.14841-0.08937,0.14841-0.21472,0.14841h-0.08125v0.1168
c0.16129-0.00414,0.32299-0.00872,0.48385-0.00872c0.16172,0,0.31907,0.00872,0.47599,0.00872v-0.1168h-0.08064
c-0.12555,0-0.2249,0-0.2249-0.14841V8.61251c0.14862-0.09895,0.37682-0.21534,0.52043-0.21534
c0.25566,0,0.41218,0.12512,0.41218,0.3812v1.16017c0,0.14841-0.08918,0.14841-0.2147,0.14841h-0.08086v0.1168
c0.1615-0.00414,0.32278-0.00872,0.48447-0.00872c0.16088,0,0.31758,0.00872,0.47494,0.00872V10.08696z"/>
<path fill="#FFFFFE" d="M18.24862,10.2709c0.36747,0,0.6227-0.23301,0.82908-0.50652l-0.06276-0.06276
c-0.16545,0.16586-0.35873,0.30053-0.60545,0.30053c-0.35832,0-0.63226-0.34959-0.65846-0.77569
c-0.00955-0.15256-0.00955-0.21947,0-0.2598h1.25912l0.04095-0.02701c0.00396-0.02703,0.00396-0.05364,0.00396-0.08107
c-0.00396-0.47512-0.39449-0.70335-0.75781-0.70335c-0.31342,0-0.90494,0.25981-0.90494,1.13857
C17.39231,9.58065,17.5355,10.2709,18.24862,10.2709z M18.2794,8.29825c0.25105,0,0.3899,0.18373,0.3899,0.41278
c0,0.05362-0.01308,0.11181-0.12472,0.11181h-0.78043C17.81797,8.49986,18.00626,8.29825,18.2794,8.29825z"/>
<path fill="#FFFFFE" d="M20.31915,10.20376v-0.1168h-0.25087c-0.12573,0-0.21511,0-0.21511-0.14841V8.88602
c0-0.26935,0.25108-0.37246,0.32715-0.37246c0.15671,0,0.15671,0.10808,0.29597,0.10808
c0.12595,0,0.21055-0.10808,0.21055-0.22903c0-0.1617-0.14322-0.23737-0.25522-0.23737
c-0.27333,0-0.46186,0.28684-0.57346,0.46143h-0.00956V8.21345c0-0.04531-0.01351-0.05821-0.03991-0.05821
c-0.04052,0-0.22033,0.11641-0.54747,0.25566v0.06651c0.06734,0.03615,0.2328,0.06318,0.2328,0.20201v1.25912
c0,0.14841-0.08896,0.14841-0.2143,0.14841h-0.12156v0.1168c0.16168-0.00414,0.34979-0.00872,0.53373-0.00872
C19.88477,10.19504,20.07265,10.19961,20.31915,10.20376z"/>
<path fill="#FFFFFE" d="M21.44922,10.1277c-0.32735,0-0.50653-0.25149-0.56532-0.54705L20.80343,9.6031l0.04927,0.51587
c0.15692,0.08937,0.36727,0.15193,0.54727,0.15193c0.53332,0,0.77087-0.31405,0.77087-0.60961
c0-0.70376-1.03983-0.54207-1.03983-1.06709c0-0.19246,0.17002-0.29596,0.34939-0.29596c0.28702,0,0.44416,0.1617,0.48885,0.44394
h0.10308l-0.03158-0.45724c-0.1748-0.08937-0.36748-0.12971-0.51067-0.12971c-0.49301,0-0.69503,0.32217-0.69503,0.57365
c0,0.72123,0.97647,0.55162,0.97647,1.08039C21.8115,9.96598,21.71339,10.1277,21.44922,10.1277z"/>
<path fill="#FFFFFE" d="M26.1205,10.03332l0.10269-0.6547l-0.10269-0.0266C26.03073,9.823,25.66286,10.1277,25.2191,10.1277
c-0.68963,0-1.33623-0.65015-1.33623-1.55634c0-1.07539,0.74885-1.42041,1.26493-1.42041
c0.50154,0,0.87379,0.21075,0.9588,0.73494h0.11203l-0.0447-0.64099c-0.3452-0.12098-0.69441-0.23777-1.05771-0.23777
c-0.87897,0-1.6987,0.6593-1.6987,1.57837c0,1.00846,0.6628,1.68541,1.71157,1.68541
C25.42507,10.2709,25.93221,10.15014,26.1205,10.03332z"/>
<path fill="#FFFFFE" d="M27.33973,10.20376v-0.1168h-0.07608c-0.12552,0-0.22445,0-0.22445-0.14841V6.84169
c0-0.03619-0.00853-0.0632-0.03576-0.0632c-0.0133,0-0.04947,0.02286-0.09852,0.04947
c-0.09438,0.05446-0.28267,0.13468-0.46183,0.19289v0.07189c0.17044,0.04906,0.23777,0.05821,0.23777,0.35002v2.49578
c0,0.14841-0.08979,0.14841-0.21534,0.14841h-0.08562v0.1168c0.16669-0.00414,0.32798-0.00872,0.48885-0.00872
C27.03067,10.19504,27.188,10.20376,27.33973,10.20376z"/>
<path fill="#FFFFFE" d="M27.60867,8.59007v1.14812c0,0.37621,0.25067,0.53272,0.4926,0.53272
c0.31842,0,0.52542-0.15651,0.79398-0.37599v0.36269l0.02202,0.0133c0.08584-0.02681,0.4531-0.12076,0.6464-0.13863V10.0379
c-0.05821,0-0.12595,0.00417-0.17959,0.00417c-0.07646,0-0.12532-0.00417-0.12532-0.08522V8.30323
c0-0.04947,0-0.08064-0.03596-0.08064c-0.04449,0-0.29597,0.03536-0.69919,0.06237v0.08064
c0.16086,0.04531,0.37599,0.09436,0.37599,0.18373v1.20674c-0.1881,0.15587-0.38993,0.27269-0.54185,0.27269
c-0.38993,0-0.38993-0.38576-0.38993-0.52003V8.35229c0-0.09853,0-0.12971-0.04967-0.12971
c-0.05881,0-0.4163,0.0262-0.578,0.03118v0.08523C27.5906,8.36101,27.60867,8.47326,27.60867,8.59007z"/>
<path fill="#FFFFFE" d="M29.79167,7.44277V9.3699c0,0.27311-0.02267,0.53374-0.06215,0.79812l0.09374,0.04904l0.13446-0.10266
c0.11682,0.04905,0.2912,0.15651,0.6227,0.15651c0.64185,0,1.07206-0.58759,1.07206-1.17453
c0-0.48803-0.31384-0.94113-0.83386-0.94113c-0.24631,0-0.48885,0.17045-0.66822,0.32217V6.84169
c0-0.03619-0.00852-0.0632-0.03533-0.0632c-0.01393,0-0.05008,0.02286-0.09892,0.04947
c-0.09438,0.05446-0.28206,0.13468-0.46186,0.19289v0.07189C29.72474,7.14181,29.79167,7.15095,29.79167,7.44277z
M30.15041,8.60834c0.12119-0.10349,0.25979-0.21117,0.42648-0.21117c0.34939,0,0.71727,0.40323,0.71727,0.88708
c0,0.39906-0.2016,0.87005-0.68151,0.87005c-0.30097,0-0.46225-0.28681-0.46225-0.45726V8.60834z"/>
<path fill="#FFFFFE" d="M11.17172,11.18c-0.11939,0-0.26551-0.00956-0.36122-0.00956H10.7997v0.08399v0.00995h0.04488
c0.08846,0.00166,0.16921,0.00956,0.16972,0.12888v1.27783c-0.00051,0.11929-0.08125,0.12679-0.16972,0.12886H10.8105H10.7997
v0.01039v0.07315v0.01041h0.01081c0.09571,0,0.23913-0.00956,0.35862-0.00956c0.1213,0,0.2674,0.00956,0.38525,0.00956h0.01081
v-0.08355v-0.01039H11.5205c-0.08865-0.00208-0.16969-0.00957-0.17012-0.12886v-1.27783
c0.00043-0.11932,0.08148-0.12721,0.17012-0.12888h0.03388h0.01081v-0.08312v-0.01082h-0.01081
C11.43902,11.17044,11.29313,11.18,11.17172,11.18z"/>
<path fill="#FFFFFE" d="M13.31075,11.18c-0.11409,0-0.22664-0.00956-0.34157-0.00956h-0.01103v0.08314v0.01081h0.06442
c0.07141,0.00166,0.20069,0.02495,0.20193,0.21907v0.89707l-1.07175-1.20633C12.07035,11.17044,11.99968,11.18,11.92724,11.18
c-0.09207,0-0.18714-0.00956-0.28058-0.00956h-0.0106v0.08314v0.01081h0.04271c0.10465,0.00043,0.21136,0.07941,0.21179,0.20909
v1.02717c-0.00208,0.19456-0.04801,0.29806-0.2094,0.29931h-0.0345h-0.0106v0.08354v0.01041h0.0106
c0.11089,0,0.22293-0.00956,0.33172-0.00956c0.10422,0,0.2093,0.00956,0.31478,0.00956h0.011v-0.08398v-0.00996h-0.05247
c-0.18344-0.00248-0.21564-0.06278-0.21877-0.27519v-0.97728l1.23802,1.37966l0.1005,0.00375h0.01237l-0.00209-0.01247
c-0.01183-0.07441-0.01432-0.15962-0.01432-0.24442v-1.1103c0.0029-0.28724,0.10588-0.29639,0.2069-0.29931h0.03607h0.01111
v-0.08396v-0.00999h-0.01111C13.50988,11.17044,13.4097,11.18,13.31075,11.18z"/>
<path fill="#FFFFFE" d="M15.30576,11.09312l-0.00083,0.01124c-0.00417,0.0636-0.05384,0.06485-0.12159,0.06608h-1.25809
c-0.00487,0-0.00861,0-0.01277,0c-0.06235-0.00123-0.10703-0.00165-0.12386-0.06318l-0.00169-0.0079h-0.06691h-0.0103v0.01081
c0,0.06984-0.00487,0.13761-0.01474,0.20536c-0.00739,0.07107-0.02016,0.13926-0.02953,0.20743l-0.00166,0.01247h0.08533h0.00904
l0.00123-0.00831c0.04023-0.18042,0.03618-0.21035,0.21637-0.21409h0.3895v1.2928
c-0.00281,0.18913-0.05703,0.19079-0.19163,0.19413h-0.04644h-0.01018v0.08354v0.01041h0.01018
c0.09612,0,0.26644-0.00956,0.41258-0.00956c0.13103,0,0.30166,0.00956,0.39791,0.00956h0.00999v-0.08398v-0.00996H14.8911
c-0.11637-0.00248-0.18954-0.01538-0.19203-0.19953v-1.2874h0.3895c0.15401,0,0.16378,0.13302,0.17042,0.22447l0.00043,0.01456
l0.08645-0.03158l0.00709-0.00292v-0.00749c0-0.06568,0-0.13176,0.00498-0.19704c0.00707-0.06525,0.01663-0.13093,0.02618-0.19661
l0.00126-0.01039l-0.0686-0.01081L15.30576,11.09312z"/>
<path fill="#FFFFFE" d="M16.76337,12.46574l-0.00249,0.00996c-0.07336,0.27394-0.1908,0.2885-0.48471,0.29016
c-0.15919-0.00083-0.28681,0-0.28724-0.14841v-0.55826l0.28227,0.00042c0.16212,0.00207,0.16294,0.08354,0.17977,0.23238
l0.00083,0.01121l0.08504-0.01663l0.00872-0.00208v-0.00833c-0.005-0.09311-0.00789-0.1858-0.00789-0.27808
c0-0.09521,0.00288-0.18997,0.00789-0.28518v-0.01079h-0.08438H16.4518l-0.00083,0.00956
c-0.01683,0.13136-0.04135,0.20367-0.18227,0.20451h-0.27977v-0.6173h0.32884c0.25148,0.00209,0.27228,0.11722,0.28681,0.2752
l0.00042,0.0129l0.08563-0.02246l0.0079-0.00249v-0.00874c-0.00459-0.06941-0.00747-0.16169-0.00747-0.24565
c0-0.04657,0.00082-0.0898,0.00288-0.12638v-0.01082h-0.011c-0.16586,0-0.41924,0.00956-0.62396,0.00956
c-0.2043,0-0.4585-0.00956-0.6071-0.00956h-0.01081v0.08399v0.00995h0.04491c0.08811,0.00209,0.16876,0.00999,0.16957,0.12888
v1.27783c-0.00082,0.11929-0.08146,0.1272-0.16957,0.12886h-0.0341h-0.01081v0.00996v0.07358v0.01041h0.01081
c0.13926,0,0.42899-0.00998,0.64847-0.00998c0.21926,0,0.49965,0.00998,0.65639,0.00998h0.00872l0.00166-0.00873
c0.02203-0.12886,0.05091-0.25814,0.08251-0.38701l0.00229-0.00999l-0.07816-0.02037L16.76337,12.46574z"/>
<path fill="#FFFFFE" d="M18.38975,12.65779l-0.40966-0.61356c0.18789-0.07649,0.33381-0.21409,0.33381-0.43439
c-0.00083-0.35375-0.28414-0.4394-0.59112-0.4394c-0.13011,0-0.24755,0.00956-0.39283,0.00956
c-0.14882,0-0.2993-0.00956-0.37869-0.00956h-0.00999v0.08399v0.00995h0.05447c0.07565,0.00249,0.16046,0.00209,0.16212,0.17502
v1.23917c-0.00083,0.08231-0.07441,0.12055-0.16212,0.12138h-0.04448h-0.00999v0.08354v0.01041h0.00999
c0.12284,0,0.23694-0.00956,0.35356-0.00956c0.1382,0,0.27995,0.00956,0.41961,0.00956h0.01103v-0.08398v-0.00996h-0.05465
c-0.11287-0.00291-0.18666-0.00125-0.18915-0.18499v-0.51128h0.14402c0.15775,0.27891,0.31824,0.54081,0.50487,0.78648
c0.08501,0.00374,0.16337-0.00582,0.23734-0.00582c0.08045,0,0.15796,0.00956,0.23966,0.00956h0.01018v-0.08398v-0.00913
l-0.00894-0.00083C18.50013,12.78457,18.45792,12.75921,18.38975,12.65779z M17.96575,11.6252
c-0.00207,0.28351-0.12408,0.36705-0.36539,0.36956h-0.1087v-0.70667c0.03118-0.00334,0.06194-0.00914,0.12802-0.00914
C17.8319,11.28018,17.96451,11.41237,17.96575,11.6252z"/>
<path fill="#FFFFFE" d="M20.6646,11.26438v-0.08312v-0.01082h-0.0106c-0.10039,0-0.20057,0.00956-0.29992,0.00956
c-0.11391,0-0.22614-0.00956-0.34171-0.00956h-0.0106v0.08399v0.00995h0.06446c0.07086,0.00126,0.20118,0.02495,0.20138,0.21907
v0.89707l-1.07246-1.20716C19.11346,11.17044,19.04299,11.18,18.9711,11.18c-0.09188,0-0.1877-0.00956-0.2804-0.00956h-0.01142
v0.08399v0.00995h0.04301c0.10455,0.00043,0.21055,0.07898,0.21096,0.20909v1.02676
c-0.00166,0.19496-0.04802,0.29888-0.20909,0.29971h-0.03346h-0.01142v0.08354v0.01041h0.01142
c0.10954,0,0.22239-0.00998,0.33151-0.00998c0.10434,0,0.20909,0.00998,0.31468,0.00998h0.0106v-0.08398v-0.00996h-0.05177
c-0.18393-0.00248-0.21594-0.06235-0.21907-0.27519v-0.97728l1.23795,1.37966l0.10018,0.00375h0.01184l-0.00123-0.01247
c-0.01229-0.07524-0.01435-0.15962-0.01435-0.24442v-1.1103c0.00249-0.28724,0.10642-0.29681,0.207-0.29931h0.03597H20.6646z"/>
<path fill="#FFFFFE" d="M22.18061,12.70807c-0.03158-0.07191-0.06068-0.16211-0.08936-0.24733l-0.44957-1.27616
c-0.00729-0.01954-0.01476-0.04114-0.02224-0.06111c-0.00729-0.01287-0.02077-0.01495-0.0266-0.01454
c-0.00999,0-0.01642,0.00333-0.02329,0.00582c-0.04737,0.02951-0.14549,0.07855-0.22177,0.10516
c-0.02098,0.09686-0.06482,0.21824-0.09684,0.30887l-0.39094,1.11945c-0.03514,0.09892-0.11059,0.15089-0.20141,0.15089h-0.01434
h-0.01038v0.08437v0.01124l0.01078-0.00083c0.08731-0.00457,0.17522-0.00998,0.26273-0.00998
c0.09726,0,0.19704,0.0054,0.29472,0.00998l0.011,0.00083v-0.08438v-0.01122h-0.0372c-0.08105,0-0.1725-0.01455-0.17333-0.07399
c0-0.03949,0.02867-0.10393,0.05361-0.18749l0.07607-0.24607h0.53832l0.09271,0.27602
c0.02701,0.07732,0.04823,0.14424,0.0478,0.17209c0,0.04697-0.08355,0.05944-0.13966,0.05944h-0.02682h-0.01101v0.08437v0.01124
l0.01101-0.00083c0.12491-0.00457,0.2463-0.00998,0.36559-0.00998c0.11682,0,0.22634,0.0054,0.33547,0.00998l0.01164,0.00083
v-0.08438v-0.01122h-0.02516C22.25378,12.79912,22.20887,12.77335,22.18061,12.70807z M21.61215,12.13402h-0.4269l0.21472-0.65388
L21.61215,12.13402z"/>
<path fill="#FFFFFE" d="M23.78268,11.09312l-0.00042,0.01124c-0.00395,0.0636-0.05362,0.06485-0.12095,0.06608H22.4026
c-0.00437,0-0.00811,0-0.01247,0c-0.06194-0.00123-0.10682-0.00165-0.12408-0.06318l-0.00209-0.0079h-0.06608h-0.01103v0.01081
c0,0.06984-0.00457,0.13761-0.01454,0.20619c-0.00727,0.07024-0.01954,0.13842-0.02951,0.2066l-0.00166,0.01247h0.08605h0.00852
l0.00165-0.00831c0.03972-0.18042,0.03554-0.21075,0.21679-0.21409h0.38868v1.2928
c-0.00335,0.18913-0.05696,0.19079-0.19164,0.19413h-0.04656h-0.01019v0.08354v0.01041h0.01019
c0.09643,0,0.26687-0.00956,0.41278-0.00956c0.13137,0,0.302,0.00956,0.39719,0.00956h0.0106v-0.08398v-0.00996h-0.05695
c-0.11618-0.00248-0.18915-0.01538-0.19163-0.19953v-1.2874h0.3895c0.15422,0,0.1642,0.13302,0.17043,0.22447v0.01456
l0.08645-0.03158l0.0075-0.00292v-0.00749c0-0.06568,0-0.13176,0.00457-0.19704c0.00726-0.06525,0.0162-0.13093,0.02661-0.19661
l0.00206-0.01039l-0.06939-0.01081L23.78268,11.09312z"/>
<path fill="#FFFFFE" d="M24.30209,11.18c-0.11911,0-0.26561-0.00956-0.36082-0.00956h-0.0102v0.08399v0.00995h0.04427
c0.08835,0.00166,0.16899,0.00999,0.16939,0.12888v1.27783c-0.0004,0.11929-0.08105,0.1272-0.16939,0.12886h-0.03407h-0.0102
v0.00996v0.07358v0.01041h0.0102c0.09521,0,0.23923-0.00998,0.35873-0.00998c0.12159,0,0.26773,0.00998,0.38556,0.00998h0.00978
v-0.08398v-0.00996h-0.04387c-0.08915-0.00166-0.16961-0.00957-0.17044-0.12886v-1.27783
c0.00083-0.11889,0.08129-0.12721,0.17044-0.12888h0.03409h0.00978v-0.08396v-0.00999h-0.00978
C24.57,11.17044,24.42408,11.18,24.30209,11.18z"/>
<path fill="#FFFFFE" d="M25.65827,11.13346c-0.51254,0.00083-0.90954,0.3978-0.91077,0.91077
c0.00123,0.52999,0.40155,0.8854,0.92324,0.88666c0.5246-0.00126,0.93177-0.37828,0.9322-0.94528
C26.60208,11.45977,26.18204,11.13429,25.65827,11.13346z M25.65349,11.26232c0.39636,0.00041,0.58694,0.42399,0.58694,0.77775
c-0.00123,0.35541-0.08125,0.76194-0.54559,0.76237c-0.38576-0.00126-0.58403-0.40904-0.58443-0.84386
C25.11123,11.63394,25.2351,11.26273,25.65349,11.26232z"/>
<path fill="#FFFFFE" d="M28.62752,11.26438v-0.08396v-0.00999h-0.01038c-0.10141,0-0.20036,0.00956-0.30095,0.00956
c-0.11265,0-0.22573-0.00956-0.34048-0.00956h-0.01079v0.08399v0.00995h0.0636c0.07191,0.00166,0.20162,0.02495,0.20202,0.21907
v0.89707l-1.07145-1.20633C27.07618,11.17044,27.00593,11.18,26.9338,11.18c-0.09206,0-0.18724-0.00956-0.28078-0.00956h-0.00999
v0.08399v0.00995h0.04157c0.10518,0.00043,0.21139,0.07898,0.21139,0.20909v1.02717
c-0.00126,0.19456-0.0476,0.29806-0.20847,0.29848h-0.0345h-0.00999v0.08437v0.01041h0.00999
c0.11078,0,0.22281-0.00956,0.33212-0.00956c0.10435,0,0.2093,0.00956,0.31469,0.00956h0.0108v-0.08355v-0.01122h-0.053
c-0.1831-0.00208-0.21553-0.06152-0.21842-0.27435v-0.97728l1.2377,1.37966l0.10101,0.00375h0.01186l-0.00209-0.01247
c-0.01143-0.07441-0.01351-0.15962-0.01351-0.24442v-1.1103c0.00208-0.28724,0.1062-0.29639,0.20638-0.29931h0.03659H28.62752z"/>
<path fill="#FFFFFE" d="M30.14395,12.7085c-0.0318-0.07234-0.06129-0.16253-0.09041-0.24776l-0.44874-1.27616
c-0.0079-0.01954-0.01515-0.04156-0.02203-0.06068c-0.00788-0.0133-0.02077-0.01538-0.02678-0.01455
c-0.00977,0-0.01727,0.00291-0.0235,0.0054c-0.04697,0.02951-0.14506,0.07855-0.22199,0.10516
c-0.02119,0.09686-0.06525,0.21824-0.09643,0.30887l-0.39033,1.11945c-0.03533,0.09852-0.11183,0.15089-0.20286,0.15173h-0.01351
h-0.0106v0.08354v0.01124l0.0106-0.00083c0.08792-0.00417,0.17521-0.00956,0.26312-0.00956
c0.09686,0,0.19704,0.00539,0.29433,0.00956l0.011,0.00083v-0.08481v-0.00996H29.1384c-0.08064,0-0.17188-0.01538-0.17188-0.07524
c-0.00083-0.03907,0.02868-0.10309,0.05299-0.18707l0.07504-0.24607h0.53854l0.09246,0.27602
c0.02786,0.07773,0.04967,0.14424,0.04927,0.17209c-0.00042,0.04697-0.08459,0.06028-0.14133,0.06028h-0.0266H29.5965v0.08354
v0.01124l0.01081-0.00083c0.12428-0.00417,0.2467-0.00956,0.3658-0.00956c0.11596,0,0.22614,0.00539,0.33586,0.00956
l0.01082,0.00083v-0.08481v-0.00996h-0.02495C30.2165,12.79912,30.17265,12.77335,30.14395,12.7085z M29.5753,12.1336h-0.42691
l0.21428-0.65303L29.5753,12.1336z"/>
<path fill="#FFFFFE" d="M31.69386,12.45783l-0.00248,0.00833c-0.01435,0.05321-0.03576,0.12013-0.07339,0.17251
c-0.04239,0.0582-0.1276,0.11515-0.22654,0.1272c-0.06381,0.00665-0.12573,0.00955-0.1854,0.00955
c-0.04657,0-0.09228-0.00166-0.13489-0.00455c-0.07671-0.01125-0.13593-0.03536-0.13717-0.12638v-1.25829
c0.00205-0.12346,0.06129-0.11932,0.15566-0.12181h0.06152h0.00956v-0.08396v-0.00999h-0.00956
c-0.12512,0-0.24714,0.00956-0.37122,0.00956c-0.12884,0-0.25562-0.00956-0.38576-0.00956h-0.00995v0.08399v0.00995h0.04405
c0.08937,0.00166,0.1725,0.00999,0.17333,0.12845v1.25373c-0.00083,0.14507-0.08479,0.15131-0.17333,0.15339h-0.0341h-0.00995
v0.08354v0.01041h0.00995c0.21513,0,0.42985-0.00956,0.64495-0.00956c0.21387,0,0.42837,0.00956,0.64328,0.00956h0.00809
l0.00251-0.0079c0.0295-0.13926,0.06317-0.27561,0.09041-0.41487l0.00249-0.0133h-0.08355H31.69386z"/>
<path fill="#FFFFFE" d="M31.81586,11.43608l-0.042-0.05904c0.03576-0.01121,0.06071-0.03907,0.06071-0.07772
c0-0.04614-0.04178-0.06817-0.08645-0.06817h-0.13179v0.0133c0.03367-0.00166,0.03658,0.00747,0.03658,0.0345v0.18997
c0,0.01995-0.00624,0.01871-0.03741,0.02286v0.01287h0.12386v-0.01287c-0.03115-0.00416-0.03698-0.00291-0.03698-0.02037V11.3866
h0.02827c0.04739,0.06737,0.06816,0.11806,0.09206,0.11806h0.0501v-0.0083C31.85807,11.48762,31.83582,11.46227,31.81586,11.43608
z M31.7323,11.36915h-0.02992V11.2486h0.02827c0.02598,0,0.05031,0.01413,0.05031,0.05529
C31.78096,11.3442,31.76556,11.36915,31.7323,11.36915z"/>
<path fill="#FFFFFE" d="M31.74312,11.11183c-0.14654,0-0.2569,0.11308-0.2569,0.25732c0,0.14423,0.11035,0.25605,0.2569,0.25605
C31.89005,11.6252,32,11.51338,32,11.36915C32,11.22491,31.89005,11.11183,31.74312,11.11183z M31.74312,11.5774
c-0.11577,0-0.20369-0.09769-0.20369-0.20825c0-0.11057,0.08792-0.20952,0.20369-0.20952
c0.1166,0,0.20327,0.09895,0.20327,0.20952C31.94639,11.47971,31.85807,11.5774,31.74312,11.5774z"/>
</g>
<path fill="#004A98" d="M4.29896,14.26192C1.94076,14.27314,0,12.36265,0,10.03707c0-2.54152,1.94076-4.29945,4.29896-4.29905
h1.10509c2.33016-0.0004,4.45701,1.7567,4.45701,4.29905c0,2.32475-2.12685,4.22485-4.45701,4.22485H4.29896z M4.30841,6.09054
C2.15348,6.09137,0.40768,7.83766,0.40728,9.99259c0.0004,2.15474,1.74621,3.90062,3.90113,3.90103
c2.15504-0.0004,3.90143-1.74629,3.90196-3.90103C8.20984,7.83766,6.46345,6.09137,4.30841,6.09054z M3.42269,12.29989V7.6847
c-0.9272,0.35707-1.58492,1.25454-1.5873,2.30789C1.83777,11.04575,2.49548,11.94322,3.42269,12.29989z M6.78186,9.99259
C6.7801,8.93884,6.12134,8.04011,5.19341,7.68427v4.61644C6.12134,11.94446,6.7801,11.04658,6.78186,9.99259z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "dinersClub.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,196 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 20">
<g>
<circle fill="#FFFFFF" cx="4.29324" cy="10.07366" r="4.11485"/>
<g>
<path fill="#231F20" d="M12.06619,10.20376c1.58688,0,1.84668-1.11611,1.84668-1.56005c0-0.79398-0.63216-1.56882-1.79285-1.56882
c-0.33194,0-0.58746,0.0083-0.77567,0.0083c-0.175,0-0.35428,0-0.52886-0.0083v0.11598
c0.2015,0.00457,0.41214-0.02203,0.41214,0.38119v2.17447c-0.01319,0.30469-0.14372,0.31342-0.41214,0.34045v0.1168
c0.2015-0.00414,0.39896-0.00872,0.60077-0.00872C11.62662,10.19504,11.83798,10.20376,12.06619,10.20376z M11.66682,7.23617
c0.08106-0.005,0.16586-0.01787,0.3497-0.01787c0.86526,0,1.40305,0.60523,1.40305,1.44326
c0,0.66802-0.31779,1.39838-1.28647,1.39838c-0.21937,0-0.46628-0.03991-0.46628-0.38533V7.23617z"/>
<path fill="#231F20" d="M14.55004,7.4648c0.12076,0,0.21969-0.10309,0.21969-0.22404c0-0.12141-0.10351-0.21576-0.21969-0.21576
c-0.11244,0-0.22,0.10351-0.22,0.21576C14.33003,7.35712,14.43302,7.4648,14.55004,7.4648z"/>
<path fill="#231F20" d="M15.02912,10.20376v-0.1168h-0.07608c-0.1251,0-0.22404,0-0.22404-0.14841V8.21761
c0-0.03576-0.00916-0.06237-0.03119-0.06237c-0.02285,0-0.04925,0.00459-0.08085,0.02203
c-0.01807,0.01416-0.26894,0.09852-0.47989,0.16172V8.4109c0.16626,0.08896,0.23319,0.11596,0.23319,0.31343v1.21421
c0,0.14841-0.08946,0.14841-0.21512,0.14841h-0.08501v0.1168c0.16586-0.00414,0.32715-0.00872,0.48854-0.00872
C14.71983,10.19504,14.87675,10.20376,15.02912,10.20376z"/>
<path fill="#231F20" d="M17.40997,10.08696h-0.08085c-0.12512,0-0.22406,0-0.22406-0.14841V8.78253
c0-0.34961-0.13427-0.62729-0.51545-0.62729c-0.30033,0-0.52004,0.15215-0.77609,0.3363V8.19932
c0-0.03535-0.01309-0.04408-0.0266-0.04408c-0.21533,0.09354-0.39906,0.15215-0.59152,0.21492v0.08562
c0.21055,0.08481,0.2598,0.12971,0.2598,0.29515v1.18761c0,0.14841-0.08937,0.14841-0.21472,0.14841h-0.08125v0.1168
c0.16129-0.00414,0.32299-0.00872,0.48385-0.00872c0.16172,0,0.31907,0.00872,0.47599,0.00872v-0.1168h-0.08064
c-0.12555,0-0.2249,0-0.2249-0.14841V8.61251c0.14862-0.09895,0.37682-0.21534,0.52043-0.21534
c0.25566,0,0.41218,0.12512,0.41218,0.3812v1.16017c0,0.14841-0.08918,0.14841-0.2147,0.14841h-0.08086v0.1168
c0.1615-0.00414,0.32278-0.00872,0.48447-0.00872c0.16088,0,0.31758,0.00872,0.47494,0.00872V10.08696z"/>
<path fill="#231F20" d="M18.24862,10.2709c0.36747,0,0.6227-0.23301,0.82908-0.50652l-0.06276-0.06276
c-0.16545,0.16586-0.35873,0.30053-0.60545,0.30053c-0.35832,0-0.63226-0.34959-0.65846-0.77569
c-0.00955-0.15256-0.00955-0.21947,0-0.2598h1.25912l0.04095-0.02701c0.00396-0.02703,0.00396-0.05364,0.00396-0.08107
c-0.00396-0.47512-0.39449-0.70335-0.75781-0.70335c-0.31342,0-0.90494,0.25981-0.90494,1.13857
C17.39231,9.58065,17.5355,10.2709,18.24862,10.2709z M18.2794,8.29825c0.25105,0,0.3899,0.18373,0.3899,0.41278
c0,0.05362-0.01308,0.11181-0.12472,0.11181h-0.78043C17.81797,8.49986,18.00626,8.29825,18.2794,8.29825z"/>
<path fill="#231F20" d="M20.31915,10.20376v-0.1168h-0.25087c-0.12573,0-0.21511,0-0.21511-0.14841V8.88602
c0-0.26935,0.25108-0.37246,0.32715-0.37246c0.15671,0,0.15671,0.10808,0.29597,0.10808
c0.12595,0,0.21055-0.10808,0.21055-0.22903c0-0.1617-0.14322-0.23737-0.25522-0.23737
c-0.27333,0-0.46186,0.28684-0.57346,0.46143h-0.00956V8.21345c0-0.04531-0.01351-0.05821-0.03991-0.05821
c-0.04052,0-0.22033,0.11641-0.54747,0.25566v0.06651c0.06734,0.03615,0.2328,0.06318,0.2328,0.20201v1.25912
c0,0.14841-0.08896,0.14841-0.2143,0.14841h-0.12156v0.1168c0.16168-0.00414,0.34979-0.00872,0.53373-0.00872
C19.88477,10.19504,20.07265,10.19961,20.31915,10.20376z"/>
<path fill="#231F20" d="M21.44922,10.1277c-0.32735,0-0.50653-0.25149-0.56532-0.54705L20.80343,9.6031l0.04927,0.51587
c0.15692,0.08937,0.36727,0.15193,0.54727,0.15193c0.53332,0,0.77087-0.31405,0.77087-0.60961
c0-0.70376-1.03983-0.54207-1.03983-1.06709c0-0.19246,0.17002-0.29596,0.34939-0.29596c0.28702,0,0.44416,0.1617,0.48885,0.44394
h0.10308l-0.03158-0.45724c-0.1748-0.08937-0.36748-0.12971-0.51067-0.12971c-0.49301,0-0.69503,0.32217-0.69503,0.57365
c0,0.72123,0.97647,0.55162,0.97647,1.08039C21.8115,9.96598,21.71339,10.1277,21.44922,10.1277z"/>
<path fill="#231F20" d="M26.1205,10.03332l0.10269-0.6547l-0.10269-0.0266C26.03073,9.823,25.66286,10.1277,25.2191,10.1277
c-0.68963,0-1.33623-0.65015-1.33623-1.55634c0-1.07539,0.74885-1.42041,1.26493-1.42041
c0.50154,0,0.87379,0.21075,0.9588,0.73494h0.11203l-0.0447-0.64099c-0.3452-0.12098-0.69441-0.23777-1.05771-0.23777
c-0.87897,0-1.6987,0.6593-1.6987,1.57837c0,1.00846,0.6628,1.68541,1.71157,1.68541
C25.42507,10.2709,25.93221,10.15014,26.1205,10.03332z"/>
<path fill="#231F20" d="M27.33973,10.20376v-0.1168h-0.07608c-0.12552,0-0.22445,0-0.22445-0.14841V6.84169
c0-0.03619-0.00853-0.0632-0.03576-0.0632c-0.0133,0-0.04947,0.02286-0.09852,0.04947
c-0.09438,0.05446-0.28267,0.13468-0.46183,0.19289v0.07189c0.17044,0.04906,0.23777,0.05821,0.23777,0.35002v2.49578
c0,0.14841-0.08979,0.14841-0.21534,0.14841h-0.08562v0.1168c0.16669-0.00414,0.32798-0.00872,0.48885-0.00872
C27.03067,10.19504,27.188,10.20376,27.33973,10.20376z"/>
<path fill="#231F20" d="M27.60867,8.59007v1.14812c0,0.37621,0.25067,0.53272,0.4926,0.53272
c0.31842,0,0.52542-0.15651,0.79398-0.37599v0.36269l0.02202,0.0133c0.08584-0.02681,0.4531-0.12076,0.6464-0.13863V10.0379
c-0.05821,0-0.12595,0.00417-0.17959,0.00417c-0.07646,0-0.12532-0.00417-0.12532-0.08522V8.30323
c0-0.04947,0-0.08064-0.03596-0.08064c-0.04449,0-0.29597,0.03536-0.69919,0.06237v0.08064
c0.16086,0.04531,0.37599,0.09436,0.37599,0.18373v1.20674c-0.1881,0.15587-0.38993,0.27269-0.54185,0.27269
c-0.38993,0-0.38993-0.38576-0.38993-0.52003V8.35229c0-0.09853,0-0.12971-0.04967-0.12971
c-0.05881,0-0.4163,0.0262-0.578,0.03118v0.08523C27.5906,8.36101,27.60867,8.47326,27.60867,8.59007z"/>
<path fill="#231F20" d="M29.79167,7.44277V9.3699c0,0.27311-0.02267,0.53374-0.06215,0.79812l0.09374,0.04904l0.13446-0.10266
c0.11682,0.04905,0.2912,0.15651,0.6227,0.15651c0.64185,0,1.07206-0.58759,1.07206-1.17453
c0-0.48803-0.31384-0.94113-0.83386-0.94113c-0.24631,0-0.48885,0.17045-0.66822,0.32217V6.84169
c0-0.03619-0.00852-0.0632-0.03533-0.0632c-0.01393,0-0.05008,0.02286-0.09892,0.04947
c-0.09438,0.05446-0.28206,0.13468-0.46186,0.19289v0.07189C29.72474,7.14181,29.79167,7.15095,29.79167,7.44277z
M30.15041,8.60834c0.12119-0.10349,0.25979-0.21117,0.42648-0.21117c0.34939,0,0.71727,0.40323,0.71727,0.88708
c0,0.39906-0.2016,0.87005-0.68151,0.87005c-0.30097,0-0.46225-0.28681-0.46225-0.45726V8.60834z"/>
<path fill="#231F20" d="M11.17172,11.18c-0.11939,0-0.26551-0.00956-0.36122-0.00956H10.7997v0.08399v0.00995h0.04488
c0.08846,0.00166,0.16921,0.00956,0.16972,0.12888v1.27783c-0.00051,0.11929-0.08125,0.12679-0.16972,0.12886H10.8105H10.7997
v0.01039v0.07315v0.01041h0.01081c0.09571,0,0.23913-0.00956,0.35862-0.00956c0.1213,0,0.2674,0.00956,0.38525,0.00956h0.01081
v-0.08355v-0.01039H11.5205c-0.08865-0.00208-0.16969-0.00957-0.17012-0.12886v-1.27783
c0.00043-0.11932,0.08148-0.12721,0.17012-0.12888h0.03388h0.01081v-0.08312v-0.01082h-0.01081
C11.43902,11.17044,11.29313,11.18,11.17172,11.18z"/>
<path fill="#231F20" d="M13.31075,11.18c-0.11409,0-0.22664-0.00956-0.34157-0.00956h-0.01103v0.08314v0.01081h0.06442
c0.07141,0.00166,0.20069,0.02495,0.20193,0.21907v0.89707l-1.07175-1.20633C12.07035,11.17044,11.99968,11.18,11.92724,11.18
c-0.09207,0-0.18714-0.00956-0.28058-0.00956h-0.0106v0.08314v0.01081h0.04271c0.10465,0.00043,0.21136,0.07941,0.21179,0.20909
v1.02717c-0.00208,0.19456-0.04801,0.29806-0.2094,0.29931h-0.0345h-0.0106v0.08354v0.01041h0.0106
c0.11089,0,0.22293-0.00956,0.33172-0.00956c0.10422,0,0.2093,0.00956,0.31478,0.00956h0.011v-0.08398v-0.00996h-0.05247
c-0.18344-0.00248-0.21564-0.06278-0.21877-0.27519v-0.97728l1.23802,1.37966l0.1005,0.00375h0.01237l-0.00209-0.01247
c-0.01183-0.07441-0.01432-0.15962-0.01432-0.24442v-1.1103c0.0029-0.28724,0.10588-0.29639,0.2069-0.29931h0.03607h0.01111
v-0.08396v-0.00999h-0.01111C13.50988,11.17044,13.4097,11.18,13.31075,11.18z"/>
<path fill="#231F20" d="M15.30576,11.09312l-0.00083,0.01124c-0.00417,0.0636-0.05384,0.06485-0.12159,0.06608h-1.25809
c-0.00487,0-0.00861,0-0.01277,0c-0.06235-0.00123-0.10703-0.00165-0.12386-0.06318l-0.00169-0.0079h-0.06691h-0.0103v0.01081
c0,0.06984-0.00487,0.13761-0.01474,0.20536c-0.00739,0.07107-0.02016,0.13926-0.02953,0.20743l-0.00166,0.01247h0.08533h0.00904
l0.00123-0.00831c0.04023-0.18042,0.03618-0.21035,0.21637-0.21409h0.3895v1.2928
c-0.00281,0.18913-0.05703,0.19079-0.19163,0.19413h-0.04644h-0.01018v0.08354v0.01041h0.01018
c0.09612,0,0.26644-0.00956,0.41258-0.00956c0.13103,0,0.30166,0.00956,0.39791,0.00956h0.00999v-0.08398v-0.00996H14.8911
c-0.11637-0.00248-0.18954-0.01538-0.19203-0.19953v-1.2874h0.3895c0.15401,0,0.16378,0.13302,0.17042,0.22447l0.00043,0.01456
l0.08645-0.03158l0.00709-0.00292v-0.00749c0-0.06568,0-0.13176,0.00498-0.19704c0.00707-0.06525,0.01663-0.13093,0.02618-0.19661
l0.00126-0.01039l-0.0686-0.01081L15.30576,11.09312z"/>
<path fill="#231F20" d="M16.76337,12.46574l-0.00249,0.00996c-0.07336,0.27394-0.1908,0.2885-0.48471,0.29016
c-0.15919-0.00083-0.28681,0-0.28724-0.14841v-0.55826l0.28227,0.00042c0.16212,0.00207,0.16294,0.08354,0.17977,0.23238
l0.00083,0.01121l0.08504-0.01663l0.00872-0.00208v-0.00833c-0.005-0.09311-0.00789-0.1858-0.00789-0.27808
c0-0.09521,0.00288-0.18997,0.00789-0.28518v-0.01079h-0.08438H16.4518l-0.00083,0.00956
c-0.01683,0.13136-0.04135,0.20367-0.18227,0.20451h-0.27977v-0.6173h0.32884c0.25148,0.00209,0.27228,0.11722,0.28681,0.2752
l0.00042,0.0129l0.08563-0.02246l0.0079-0.00249v-0.00874c-0.00459-0.06941-0.00747-0.16169-0.00747-0.24565
c0-0.04657,0.00082-0.0898,0.00288-0.12638v-0.01082h-0.011c-0.16586,0-0.41924,0.00956-0.62396,0.00956
c-0.2043,0-0.4585-0.00956-0.6071-0.00956h-0.01081v0.08399v0.00995h0.04491c0.08811,0.00209,0.16876,0.00999,0.16957,0.12888
v1.27783c-0.00082,0.11929-0.08146,0.1272-0.16957,0.12886h-0.0341h-0.01081v0.00996v0.07358v0.01041h0.01081
c0.13926,0,0.42899-0.00998,0.64847-0.00998c0.21926,0,0.49965,0.00998,0.65639,0.00998h0.00872l0.00166-0.00873
c0.02203-0.12886,0.05091-0.25814,0.08251-0.38701l0.00229-0.00999l-0.07816-0.02037L16.76337,12.46574z"/>
<path fill="#231F20" d="M18.38975,12.65779l-0.40966-0.61356c0.18789-0.07649,0.33381-0.21409,0.33381-0.43439
c-0.00083-0.35375-0.28414-0.4394-0.59112-0.4394c-0.13011,0-0.24755,0.00956-0.39283,0.00956
c-0.14882,0-0.2993-0.00956-0.37869-0.00956h-0.00999v0.08399v0.00995h0.05447c0.07565,0.00249,0.16046,0.00209,0.16212,0.17502
v1.23917c-0.00083,0.08231-0.07441,0.12055-0.16212,0.12138h-0.04448h-0.00999v0.08354v0.01041h0.00999
c0.12284,0,0.23694-0.00956,0.35356-0.00956c0.1382,0,0.27995,0.00956,0.41961,0.00956h0.01103v-0.08398v-0.00996h-0.05465
c-0.11287-0.00291-0.18666-0.00125-0.18915-0.18499v-0.51128h0.14402c0.15775,0.27891,0.31824,0.54081,0.50487,0.78648
c0.08501,0.00374,0.16337-0.00582,0.23734-0.00582c0.08045,0,0.15796,0.00956,0.23966,0.00956h0.01018v-0.08398v-0.00913
l-0.00894-0.00083C18.50013,12.78457,18.45792,12.75921,18.38975,12.65779z M17.96575,11.6252
c-0.00207,0.28351-0.12408,0.36705-0.36539,0.36956h-0.1087v-0.70667c0.03118-0.00334,0.06194-0.00914,0.12802-0.00914
C17.8319,11.28018,17.96451,11.41237,17.96575,11.6252z"/>
<path fill="#231F20" d="M20.6646,11.26438v-0.08312v-0.01082h-0.0106c-0.10039,0-0.20057,0.00956-0.29992,0.00956
c-0.11391,0-0.22614-0.00956-0.34171-0.00956h-0.0106v0.08399v0.00995h0.06446c0.07086,0.00126,0.20118,0.02495,0.20138,0.21907
v0.89707l-1.07246-1.20716C19.11346,11.17044,19.04299,11.18,18.9711,11.18c-0.09188,0-0.1877-0.00956-0.2804-0.00956h-0.01142
v0.08399v0.00995h0.04301c0.10455,0.00043,0.21055,0.07898,0.21096,0.20909v1.02676
c-0.00166,0.19496-0.04802,0.29888-0.20909,0.29971h-0.03346h-0.01142v0.08354v0.01041h0.01142
c0.10954,0,0.22239-0.00998,0.33151-0.00998c0.10434,0,0.20909,0.00998,0.31468,0.00998h0.0106v-0.08398v-0.00996h-0.05177
c-0.18393-0.00248-0.21594-0.06235-0.21907-0.27519v-0.97728l1.23795,1.37966l0.10018,0.00375h0.01184l-0.00123-0.01247
c-0.01229-0.07524-0.01435-0.15962-0.01435-0.24442v-1.1103c0.00249-0.28724,0.10642-0.29681,0.207-0.29931h0.03597H20.6646z"/>
<path fill="#231F20" d="M22.18061,12.70807c-0.03158-0.07191-0.06068-0.16211-0.08936-0.24733l-0.44957-1.27616
c-0.00729-0.01954-0.01476-0.04114-0.02224-0.06111c-0.00729-0.01287-0.02077-0.01495-0.0266-0.01454
c-0.00999,0-0.01642,0.00333-0.02329,0.00582c-0.04737,0.02951-0.14549,0.07855-0.22177,0.10516
c-0.02098,0.09686-0.06482,0.21824-0.09684,0.30887l-0.39094,1.11945c-0.03514,0.09892-0.11059,0.15089-0.20141,0.15089h-0.01434
h-0.01038v0.08437v0.01124l0.01078-0.00083c0.08731-0.00457,0.17522-0.00998,0.26273-0.00998
c0.09726,0,0.19704,0.0054,0.29472,0.00998l0.011,0.00083v-0.08438v-0.01122h-0.0372c-0.08105,0-0.1725-0.01455-0.17333-0.07399
c0-0.03949,0.02867-0.10393,0.05361-0.18749l0.07607-0.24607h0.53832l0.09271,0.27602
c0.02701,0.07732,0.04823,0.14424,0.0478,0.17209c0,0.04697-0.08355,0.05944-0.13966,0.05944h-0.02682h-0.01101v0.08437v0.01124
l0.01101-0.00083c0.12491-0.00457,0.2463-0.00998,0.36559-0.00998c0.11682,0,0.22634,0.0054,0.33547,0.00998l0.01164,0.00083
v-0.08438v-0.01122h-0.02516C22.25378,12.79912,22.20887,12.77335,22.18061,12.70807z M21.61215,12.13402h-0.4269l0.21472-0.65388
L21.61215,12.13402z"/>
<path fill="#231F20" d="M23.78268,11.09312l-0.00042,0.01124c-0.00395,0.0636-0.05362,0.06485-0.12095,0.06608H22.4026
c-0.00437,0-0.00811,0-0.01247,0c-0.06194-0.00123-0.10682-0.00165-0.12408-0.06318l-0.00209-0.0079h-0.06608h-0.01103v0.01081
c0,0.06984-0.00457,0.13761-0.01454,0.20619c-0.00727,0.07024-0.01954,0.13842-0.02951,0.2066l-0.00166,0.01247h0.08605h0.00852
l0.00165-0.00831c0.03972-0.18042,0.03554-0.21075,0.21679-0.21409h0.38868v1.2928
c-0.00335,0.18913-0.05696,0.19079-0.19164,0.19413h-0.04656h-0.01019v0.08354v0.01041h0.01019
c0.09643,0,0.26687-0.00956,0.41278-0.00956c0.13137,0,0.302,0.00956,0.39719,0.00956h0.0106v-0.08398v-0.00996h-0.05695
c-0.11618-0.00248-0.18915-0.01538-0.19163-0.19953v-1.2874h0.3895c0.15422,0,0.1642,0.13302,0.17043,0.22447v0.01456
l0.08645-0.03158l0.0075-0.00292v-0.00749c0-0.06568,0-0.13176,0.00457-0.19704c0.00726-0.06525,0.0162-0.13093,0.02661-0.19661
l0.00206-0.01039l-0.06939-0.01081L23.78268,11.09312z"/>
<path fill="#231F20" d="M24.30209,11.18c-0.11911,0-0.26561-0.00956-0.36082-0.00956h-0.0102v0.08399v0.00995h0.04427
c0.08835,0.00166,0.16899,0.00999,0.16939,0.12888v1.27783c-0.0004,0.11929-0.08105,0.1272-0.16939,0.12886h-0.03407h-0.0102
v0.00996v0.07358v0.01041h0.0102c0.09521,0,0.23923-0.00998,0.35873-0.00998c0.12159,0,0.26773,0.00998,0.38556,0.00998h0.00978
v-0.08398v-0.00996h-0.04387c-0.08915-0.00166-0.16961-0.00957-0.17044-0.12886v-1.27783
c0.00083-0.11889,0.08129-0.12721,0.17044-0.12888h0.03409h0.00978v-0.08396v-0.00999h-0.00978
C24.57,11.17044,24.42408,11.18,24.30209,11.18z"/>
<path fill="#231F20" d="M25.65827,11.13346c-0.51254,0.00083-0.90954,0.3978-0.91077,0.91077
c0.00123,0.52999,0.40155,0.8854,0.92324,0.88666c0.5246-0.00126,0.93177-0.37828,0.9322-0.94528
C26.60208,11.45977,26.18204,11.13429,25.65827,11.13346z M25.65349,11.26232c0.39636,0.00041,0.58694,0.42399,0.58694,0.77775
c-0.00123,0.35541-0.08125,0.76194-0.54559,0.76237c-0.38576-0.00126-0.58403-0.40904-0.58443-0.84386
C25.11123,11.63394,25.2351,11.26273,25.65349,11.26232z"/>
<path fill="#231F20" d="M28.62752,11.26438v-0.08396v-0.00999h-0.01038c-0.10141,0-0.20036,0.00956-0.30095,0.00956
c-0.11265,0-0.22573-0.00956-0.34048-0.00956h-0.01079v0.08399v0.00995h0.0636c0.07191,0.00166,0.20162,0.02495,0.20202,0.21907
v0.89707l-1.07145-1.20633C27.07618,11.17044,27.00593,11.18,26.9338,11.18c-0.09206,0-0.18724-0.00956-0.28078-0.00956h-0.00999
v0.08399v0.00995h0.04157c0.10518,0.00043,0.21139,0.07898,0.21139,0.20909v1.02717
c-0.00126,0.19456-0.0476,0.29806-0.20847,0.29848h-0.0345h-0.00999v0.08437v0.01041h0.00999
c0.11078,0,0.22281-0.00956,0.33212-0.00956c0.10435,0,0.2093,0.00956,0.31469,0.00956h0.0108v-0.08355v-0.01122h-0.053
c-0.1831-0.00208-0.21553-0.06152-0.21842-0.27435v-0.97728l1.2377,1.37966l0.10101,0.00375h0.01186l-0.00209-0.01247
c-0.01143-0.07441-0.01351-0.15962-0.01351-0.24442v-1.1103c0.00208-0.28724,0.1062-0.29639,0.20638-0.29931h0.03659H28.62752z"/>
<path fill="#231F20" d="M30.14395,12.7085c-0.0318-0.07234-0.06129-0.16253-0.09041-0.24776l-0.44874-1.27616
c-0.0079-0.01954-0.01515-0.04156-0.02203-0.06068c-0.00788-0.0133-0.02077-0.01538-0.02678-0.01455
c-0.00977,0-0.01727,0.00291-0.0235,0.0054c-0.04697,0.02951-0.14506,0.07855-0.22199,0.10516
c-0.02119,0.09686-0.06525,0.21824-0.09643,0.30887l-0.39033,1.11945c-0.03533,0.09852-0.11183,0.15089-0.20286,0.15173h-0.01351
h-0.0106v0.08354v0.01124l0.0106-0.00083c0.08792-0.00417,0.17521-0.00956,0.26312-0.00956
c0.09686,0,0.19704,0.00539,0.29433,0.00956l0.011,0.00083v-0.08481v-0.00996H29.1384c-0.08064,0-0.17188-0.01538-0.17188-0.07524
c-0.00083-0.03907,0.02868-0.10309,0.05299-0.18707l0.07504-0.24607h0.53854l0.09246,0.27602
c0.02786,0.07773,0.04967,0.14424,0.04927,0.17209c-0.00042,0.04697-0.08459,0.06028-0.14133,0.06028h-0.0266H29.5965v0.08354
v0.01124l0.01081-0.00083c0.12428-0.00417,0.2467-0.00956,0.3658-0.00956c0.11596,0,0.22614,0.00539,0.33586,0.00956
l0.01082,0.00083v-0.08481v-0.00996h-0.02495C30.2165,12.79912,30.17265,12.77335,30.14395,12.7085z M29.5753,12.1336h-0.42691
l0.21428-0.65303L29.5753,12.1336z"/>
<path fill="#231F20" d="M31.69386,12.45783l-0.00248,0.00833c-0.01435,0.05321-0.03576,0.12013-0.07339,0.17251
c-0.04239,0.0582-0.1276,0.11515-0.22654,0.1272c-0.06381,0.00665-0.12573,0.00955-0.1854,0.00955
c-0.04657,0-0.09228-0.00166-0.13489-0.00455c-0.07671-0.01125-0.13593-0.03536-0.13717-0.12638v-1.25829
c0.00205-0.12346,0.06129-0.11932,0.15566-0.12181h0.06152h0.00956v-0.08396v-0.00999h-0.00956
c-0.12512,0-0.24714,0.00956-0.37122,0.00956c-0.12884,0-0.25562-0.00956-0.38576-0.00956h-0.00995v0.08399v0.00995h0.04405
c0.08937,0.00166,0.1725,0.00999,0.17333,0.12845v1.25373c-0.00083,0.14507-0.08479,0.15131-0.17333,0.15339h-0.0341h-0.00995
v0.08354v0.01041h0.00995c0.21513,0,0.42985-0.00956,0.64495-0.00956c0.21387,0,0.42837,0.00956,0.64328,0.00956h0.00809
l0.00251-0.0079c0.0295-0.13926,0.06317-0.27561,0.09041-0.41487l0.00249-0.0133h-0.08355H31.69386z"/>
<path fill="#231F20" d="M31.81586,11.43608l-0.042-0.05904c0.03576-0.01121,0.06071-0.03907,0.06071-0.07772
c0-0.04614-0.04178-0.06817-0.08645-0.06817h-0.13179v0.0133c0.03367-0.00166,0.03658,0.00747,0.03658,0.0345v0.18997
c0,0.01995-0.00624,0.01871-0.03741,0.02286v0.01287h0.12386v-0.01287c-0.03115-0.00416-0.03698-0.00291-0.03698-0.02037V11.3866
h0.02827c0.04739,0.06737,0.06816,0.11806,0.09206,0.11806h0.0501v-0.0083C31.85807,11.48762,31.83582,11.46227,31.81586,11.43608
z M31.7323,11.36915h-0.02992V11.2486h0.02827c0.02598,0,0.05031,0.01413,0.05031,0.05529
C31.78096,11.3442,31.76556,11.36915,31.7323,11.36915z"/>
<path fill="#231F20" d="M31.74312,11.11183c-0.14654,0-0.2569,0.11308-0.2569,0.25732c0,0.14423,0.11035,0.25605,0.2569,0.25605
C31.89005,11.6252,32,11.51338,32,11.36915C32,11.22491,31.89005,11.11183,31.74312,11.11183z M31.74312,11.5774
c-0.11577,0-0.20369-0.09769-0.20369-0.20825c0-0.11057,0.08792-0.20952,0.20369-0.20952
c0.1166,0,0.20327,0.09895,0.20327,0.20952C31.94639,11.47971,31.85807,11.5774,31.74312,11.5774z"/>
</g>
<path fill="#004A98" d="M4.29896,14.26192C1.94076,14.27314,0,12.36265,0,10.03707c0-2.54152,1.94076-4.29945,4.29896-4.29905
h1.10509c2.33016-0.0004,4.45701,1.7567,4.45701,4.29905c0,2.32475-2.12685,4.22485-4.45701,4.22485H4.29896z M4.30841,6.09054
C2.15348,6.09137,0.40768,7.83766,0.40728,9.99259c0.0004,2.15474,1.74621,3.90062,3.90113,3.90103
c2.15504-0.0004,3.90143-1.74629,3.90196-3.90103C8.20984,7.83766,6.46345,6.09137,4.30841,6.09054z M3.42269,12.29989V7.6847
c-0.9272,0.35707-1.58492,1.25454-1.5873,2.30789C1.83777,11.04575,2.49548,11.94322,3.42269,12.29989z M6.78186,9.99259
C6.7801,8.93884,6.12134,8.04011,5.19341,7.68427v4.61644C6.12134,11.94446,6.7801,11.04658,6.78186,9.99259z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "discover.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,49 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 20">
<g>
<path fill="#231F20" d="M1.447,7.449H0v5.067h1.447c0.763,0,1.324-0.184,1.806-0.587c0.579-0.482,0.921-1.201,0.921-1.946
C4.164,8.492,3.051,7.449,1.447,7.449z M2.604,11.254c-0.307,0.281-0.71,0.403-1.35,0.403H0.991V8.308h0.263
c0.64,0,1.026,0.114,1.35,0.412c0.342,0.307,0.544,0.772,0.544,1.262C3.147,10.465,2.946,10.947,2.604,11.254z"/>
<rect id="XMLID_422_" x="4.62" y="7.449" fill="#231F20" width="0.991" height="5.067"/>
<path id="XMLID_421_" fill="#231F20" d="M8.022,9.395c-0.596-0.219-0.763-0.368-0.763-0.64c0-0.316,0.307-0.561,0.736-0.561
c0.298,0,0.535,0.123,0.798,0.412l0.517-0.675C8.89,7.563,8.381,7.37,7.82,7.37c-0.894,0-1.578,0.622-1.578,1.447
c0,0.701,0.316,1.052,1.245,1.385c0.386,0.14,0.587,0.228,0.684,0.289c0.202,0.132,0.298,0.316,0.298,0.526
c0,0.412-0.324,0.71-0.763,0.71c-0.473,0-0.85-0.237-1.078-0.675l-0.64,0.614c0.456,0.666,0.999,0.964,1.753,0.964
c1.026,0,1.745-0.684,1.745-1.666C9.486,10.167,9.153,9.807,8.022,9.395z"/>
<path id="XMLID_420_" fill="#231F20" d="M9.793,9.982c0,1.49,1.166,2.639,2.674,2.639c0.421,0,0.789-0.088,1.236-0.298v-1.166
c-0.395,0.395-0.745,0.552-1.192,0.552c-0.991,0-1.701-0.719-1.701-1.745c0-0.973,0.728-1.736,1.657-1.736
c0.473,0,0.824,0.167,1.236,0.57V7.633c-0.43-0.219-0.789-0.307-1.219-0.307C10.994,7.335,9.793,8.51,9.793,9.982z"/>
<polygon id="XMLID_419_" fill="#231F20" points="21.532,10.85 20.182,7.449 19.104,7.449 21.26,12.648 21.786,12.648 23.978,7.449
22.908,7.449 "/>
<polygon id="XMLID_418_" fill="#231F20" points="24.425,12.516 27.222,12.516 27.222,11.657 25.407,11.657 25.407,10.289
27.152,10.289 27.152,9.43 25.407,9.43 25.407,8.308 27.222,8.308 27.222,7.449 24.425,7.449 "/>
<path fill="#231F20" d="M31.132,8.948c0-0.947-0.649-1.499-1.788-1.499h-1.464v5.067h0.991v-2.034h0.132l1.368,2.034h1.219
l-1.596-2.13C30.72,10.228,31.132,9.719,31.132,8.948z M29.151,9.781h-0.289V8.247h0.307c0.614,0,0.947,0.254,0.947,0.754
C30.115,9.509,29.782,9.781,29.151,9.781z"/>
<linearGradient id="XMLID_2_" gradientUnits="userSpaceOnUse" x1="18.0982" y1="592.1596" x2="16.2331" y2="589.2393" gradientTransform="matrix(1 0 0 1 0 -580)">
<stop offset="0" stop-color="#F89F20"/>
<stop offset="0.2502" stop-color="#F79A20"/>
<stop offset="0.5331" stop-color="#F68D20"/>
<stop offset="0.6196" stop-color="#F58720"/>
<stop offset="0.7232" stop-color="#F48120"/>
<stop offset="1" stop-color="#F37521"/>
</linearGradient>
<circle id="XMLID_415_" fill="url(#XMLID_2_)" cx="16.719" cy="10" r="2.692"/>
<linearGradient id="XMLID_3_" gradientUnits="userSpaceOnUse" x1="17.8034" y1="592.1198" x2="15.0775" y2="586.7917" gradientTransform="matrix(1 0 0 1 0 -580)">
<stop offset="0" stop-color="#F58720"/>
<stop offset="0.3587" stop-color="#E16F27"/>
<stop offset="0.703" stop-color="#D4602C"/>
<stop offset="0.9816" stop-color="#D05B2E"/>
</linearGradient>
<circle id="XMLID_414_" opacity="0.65" fill="url(#XMLID_3_)" cx="16.719" cy="10" r="2.692"/>
<g id="XMLID_430_">
<path fill="#231F20" d="M31.763,7.642c0-0.088-0.061-0.14-0.167-0.14h-0.14v0.447h0.105V7.773l0.123,0.175h0.132l-0.149-0.184
C31.728,7.747,31.763,7.703,31.763,7.642z M31.579,7.703h-0.018V7.589h0.018c0.053,0,0.079,0.018,0.079,0.061
C31.658,7.685,31.632,7.703,31.579,7.703z"/>
<path fill="#231F20" d="M31.614,7.335c-0.219,0-0.386,0.175-0.386,0.386c0,0.219,0.175,0.386,0.386,0.386
c0.21,0,0.386-0.175,0.386-0.386C32,7.51,31.825,7.335,31.614,7.335z M31.614,8.045c-0.167,0-0.307-0.14-0.307-0.316
c0-0.175,0.14-0.316,0.307-0.316c0.167,0,0.307,0.149,0.307,0.316C31.921,7.905,31.781,8.045,31.614,8.045z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "generic-inverted.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 20" style="enable-background:new 0 0 32 20;" xml:space="preserve">
<path stroke="#FFFFFF" d="M1,0.5h30c0.3,0,0.5,0.2,0.5,0.5v18c0,0.3-0.2,0.5-0.5,0.5H1c-0.3,0-0.5-0.2-0.5-0.5V1C0.5,0.7,0.7,0.5,1,0.5z"
/>
<rect x="4" y="4" fill="#FFFFFF" width="24" height="2"/>
<rect x="23" y="14" fill="#FFFFFF" width="2" height="2"/>
<rect x="26" y="14" fill="#FFFFFF" width="2" height="2"/>
</svg>

After

Width:  |  Height:  |  Size: 663 B

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "generic.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 20">
<g>
<g>
<path d="M30.5,20h-29C0.7,20,0,19.3,0,18.5v-17C0,0.7,0.7,0,1.5,0h29C31.3,0,32,0.7,32,1.5v17C32,19.3,31.3,20,30.5,20z M1.5,1
C1.2,1,1,1.2,1,1.5v17C1,18.8,1.2,19,1.5,19h29c0.3,0,0.5-0.2,0.5-0.5v-17C31,1.2,30.8,1,30.5,1H1.5z"/>
</g>
<g>
<rect x="4" y="4" fill-rule="evenodd" clip-rule="evenodd" width="24" height="2"/>
</g>
<g>
<rect x="23" y="14" fill-rule="evenodd" clip-rule="evenodd" width="2" height="2"/>
</g>
<g>
<rect x="26" y="14" fill-rule="evenodd" clip-rule="evenodd" width="2" height="2"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 605 B

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "jcb.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,51 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 20">
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-856.4599" y1="503.2267" x2="-855.8029" y2="503.2267" gradientTransform="matrix(12.5258 0 0 -12.5258 10748.9648 6314.5825)">
<stop offset="0" stop-color="#007940"/>
<stop offset="0.229" stop-color="#00873F"/>
<stop offset="0.743" stop-color="#40A737"/>
<stop offset="1" stop-color="#5CB531"/>
</linearGradient>
<path fill="url(#SVGID_1_)" d="M22.7,12.1h1.9c0.1,0,0.2,0,0.2,0c0.4-0.1,0.7-0.4,0.7-0.9c0-0.4-0.3-0.8-0.7-0.9c-0.1,0-0.2,0-0.2,0h-1.9
V12.1z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-856.4599" y1="503.3283" x2="-855.8034" y2="503.3283" gradientTransform="matrix(12.5258 0 0 -12.5258 10748.9648 6314.5825)">
<stop offset="0" stop-color="#007940"/>
<stop offset="0.229" stop-color="#00873F"/>
<stop offset="0.743" stop-color="#40A737"/>
<stop offset="1" stop-color="#5CB531"/>
</linearGradient>
<path fill="url(#SVGID_2_)" d="M24.5,0c-1.8,0-3.3,1.5-3.3,3.3v3.5h4.7c0.1,0,0.2,0,0.3,0C27.2,6.9,28,7.4,28,8.4c0,0.8-0.5,1.4-1.5,1.5v0
c1.1,0.1,1.9,0.7,1.9,1.6c0,1-0.9,1.7-2.1,1.7h-5.2V20H26c1.8,0,3.3-1.5,3.3-3.3V0L24.5,0z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-856.4599" y1="503.4401" x2="-855.8029" y2="503.4401" gradientTransform="matrix(12.5258 0 0 -12.5258 10748.9648 6314.5825)">
<stop offset="0" stop-color="#007940"/>
<stop offset="0.229" stop-color="#00873F"/>
<stop offset="0.743" stop-color="#40A737"/>
<stop offset="1" stop-color="#5CB531"/>
</linearGradient>
<path fill="url(#SVGID_3_)" d="M25.3,8.6c0-0.4-0.3-0.7-0.7-0.8c0,0-0.1,0-0.2,0h-1.7v1.6h1.7c0.1,0,0.2,0,0.2,0C25,9.3,25.3,9,25.3,8.6
L25.3,8.6z"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-857.9309" y1="503.329" x2="-857.2637" y2="503.329" gradientTransform="matrix(12.5258 0 0 -12.5258 10748.9648 6314.5825)">
<stop offset="0" stop-color="#1F286F"/>
<stop offset="0.475" stop-color="#004E94"/>
<stop offset="0.826" stop-color="#0066B1"/>
<stop offset="1" stop-color="#006FBC"/>
</linearGradient>
<path fill="url(#SVGID_4_)" d="M6,0C4.2,0,2.7,1.5,2.7,3.3v8.2c0.9,0.5,1.9,0.8,2.9,0.8c1.2,0,1.8-0.7,1.8-1.6V6.8h2.9v3.9
c0,1.5-0.9,2.7-4.1,2.7c-1.9,0-3.4-0.4-3.4-0.4v7h4.9c1.8,0,3.3-1.5,3.3-3.3V0L6,0z"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-857.1989" y1="503.3275" x2="-856.5508" y2="503.3275" gradientTransform="matrix(12.5258 0 0 -12.5258 10748.9648 6314.5825)">
<stop offset="0" stop-color="#6C2C2F"/>
<stop offset="0.173" stop-color="#882730"/>
<stop offset="0.573" stop-color="#BE1833"/>
<stop offset="0.859" stop-color="#DC0436"/>
<stop offset="1" stop-color="#E60039"/>
</linearGradient>
<path fill="url(#SVGID_5_)" d="M15.2,0c-1.8,0-3.3,1.5-3.3,3.3v4.4c0.8-0.7,2.3-1.2,4.7-1.1C17.8,6.7,19.2,7,19.2,7v1.4
c-0.7-0.3-1.5-0.7-2.5-0.7c-1.8-0.1-2.9,0.8-2.9,2.3c0,1.6,1.1,2.4,2.9,2.3c1-0.1,1.8-0.4,2.5-0.7V13c0,0-1.3,0.3-2.6,0.4
c-2.4,0.1-3.8-0.3-4.7-1.1V20h4.9c1.8,0,3.3-1.5,3.3-3.3V0L15.2,0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "mastercard.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 20" >
<g>
<rect x="11.241" y="2.224" fill="#FF5F00" width="9.521" height="15.55"/>
<path fill="#EB001B" d="M12.222,10.001c-0.002-3.034,1.39-5.9,3.777-7.774C11.705-1.148,5.488-0.402,2.113,3.892
s-2.629,10.511,1.665,13.885c3.586,2.818,8.635,2.818,12.221,0C13.611,15.903,12.219,13.036,12.222,10.001z"/>
<path fill="#F79E1B" d="M31.054,16.129V15.81h0.137v-0.066h-0.327v0.066h0.129v0.319H31.054z M31.689,16.129v-0.385H31.59
l-0.115,0.275l-0.115-0.275H31.26v0.385h0.071v-0.291l0.107,0.25h0.074l0.107-0.25v0.291L31.689,16.129z"/>
<path fill="#F79E1B" d="M31.999,10.001c0,5.461-4.428,9.889-9.889,9.888c-2.217,0-4.369-0.745-6.112-2.115
c4.294-3.375,5.039-9.591,1.665-13.885c-0.487-0.619-1.045-1.178-1.665-1.665c4.293-3.375,10.51-2.631,13.886,1.662
c1.37,1.743,2.115,3.895,2.115,6.112V10.001z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 866 B

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "placeholder-inverted.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 20">
<path stroke="#333333" d="M1,0.5h30c0.3,0,0.5,0.2,0.5,0.5v18c0,0.3-0.2,0.5-0.5,0.5H1c-0.3,0-0.5-0.2-0.5-0.5V1C0.5,0.7,0.7,0.5,1,0.5z"
/>
<rect x="4" y="4" fill="#333333" width="24" height="2"/>
<rect x="23" y="14" fill="#333333" width="2" height="2"/>
<rect x="26" y="14" fill="#333333" width="2" height="2"/>
</svg>

After

Width:  |  Height:  |  Size: 379 B

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "placeholder.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 20" >
<g>
<g>
<path fill="#D8DADA" d="M30.5,20h-29C0.7,20,0,19.3,0,18.5v-17C0,0.7,0.7,0,1.5,0h29C31.3,0,32,0.7,32,1.5v17
C32,19.3,31.3,20,30.5,20z M1.5,1C1.2,1,1,1.2,1,1.5v17C1,18.8,1.2,19,1.5,19h29c0.3,0,0.5-0.2,0.5-0.5v-17C31,1.2,30.8,1,30.5,1
H1.5z"/>
</g>
<g>
<rect x="4" y="4" fill-rule="evenodd" clip-rule="evenodd" fill="#D8DADA" width="24" height="2"/>
</g>
<g>
<rect x="23" y="14" fill-rule="evenodd" clip-rule="evenodd" fill="#D8DADA" width="2" height="2"/>
</g>
<g>
<rect x="26" y="14" fill-rule="evenodd" clip-rule="evenodd" fill="#D8DADA" width="2" height="2"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 670 B

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "securityCode-inverted.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 96 71.4" style="enable-background:new 0 0 96 71.4;" xml:space="preserve">
<style type="text/css">
</style>
<g>
<path fill="#FFFFFF" d="M81.7,71.1H2.5c-1.2,0-2-0.8-2-2V21c0-1.2,0.8-2,2-2h79.4c1.2,0,2,0.8,2,2l-0.1,48.1
C83.7,70.3,82.9,71.1,81.7,71.1z M81.8,21H2.5v48.1h79.3L81.8,21z"/>
<path fill="#FFFFFF" d="M1.4,25.4h82v2h-82V25.4z"/>
<path fill="#FFFFFF" d="M1.4,34.3h82v2h-82V34.3z"/>
<path fill="#FFFFFF" d="M48.1,42.6h12.5v2H48.1V42.6z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M90.9,31.7c6.3-8.4,4.3-20.6-4.2-26.8S66.1,0.8,59.9,9.3c-5.8,7.9-4.6,18.9,2.6,25.4l-0.1,3.6l3.4-1.2
C74.2,41.9,85,39.8,90.9,31.7z"/>
<path fill="#FFFFFF" d="M75.3,40.6c-3.2,0-6.5-0.8-9.4-2.4l-4.3,1.5l0.1-4.6c-7.4-6.9-8.4-18.2-2.5-26.4c6.5-9,19.1-11.1,28.1-4.6
c4.4,3.1,7.3,7.8,8,13.2c0.8,5.3-0.5,10.6-3.6,14.9C87.7,37.7,81.5,40.6,75.3,40.6z M65.9,36.1l0.4,0.2c8,4.5,18.2,2.3,23.7-5.2
c2.8-3.8,4-8.6,3.2-13.4c-0.8-4.9-3.3-9.1-7.3-12c-8-5.8-19.4-3.9-25.4,4.2c-5.5,7.6-4.4,18,2.6,24.1l0.3,0.3L63.4,37L65.9,36.1z"
/>
<g enable-background="new">
<path fill="#FFFFFF" d="M67.4,19.4h-1.9v-1.3c1.2,0,2.1-0.6,2.3-1.7h1.5v8.1h-1.9V19.4z"/>
<path fill="#FFFFFF" d="M71.9,22.3c0.6-0.6,1.3-1.1,2-1.6c1-0.7,1.5-1,1.5-1.8c0-0.7-0.4-1.1-1.1-1.1c-0.4,0-0.7,0.1-0.9,0.4
C73.1,18.6,73,19,73,19.5h-1.8c0-0.8,0.2-1.4,0.5-1.9c0.5-0.7,1.3-1.2,2.6-1.2c1.9,0,2.9,1.2,2.9,2.6s-1,2.2-2.2,2.8
c-0.8,0.5-1.2,0.7-1.5,1.2h3.6v1.6h-6.2C71,23.6,71.3,22.9,71.9,22.3z"/>
</g>
<path fill="#FFFFFF" d="M79.4,23.9c-0.6-0.5-1-1.2-1-2.1h1.8c0.1,0.8,0.5,1.3,1.5,1.3c0.8,0,1.3-0.4,1.3-1.2c0-0.7-0.5-1.1-1.4-1.1
h-0.4v-1.3h0.4c0.8,0,1.2-0.4,1.2-1c0-0.5-0.4-1-1.1-1c-0.9,0-1.2,0.6-1.3,1.2h-1.8c0-1.4,1.2-2.6,3-2.6c1.7,0,2.8,0.8,2.8,2.2
c0,0.8-0.5,1.3-1.3,1.6c1,0.3,1.6,0.9,1.6,2c0,1.7-1.5,2.7-3,2.7C80.7,24.7,80,24.3,79.4,23.9z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "securityCode.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,37 @@
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 96 71.4298" style="enable-background:new 0 0 96 71.4298;" xml:space="preserve">
<g>
<path d="M81.73517,71.05779H2.46222c-1.17732,0-1.9622-0.78488-1.9622-1.9622V21.02164c0-1.17732,0.78488-1.9622,1.9622-1.9622
h79.37106c1.17732,0,1.9622,0.78488,1.9622,1.9622l-0.09811,48.07394C83.69737,70.2729,82.91249,71.05779,81.73517,71.05779z
M81.83327,21.02164H2.46222v48.07395h79.27295L81.83327,21.02164z"/>
<path d="M1.38301,25.43659h82.02003v1.9622H1.38301V25.43659z"/>
<path d="M1.38301,34.26651h82.02003v1.9622H1.38301V34.26651z"/>
<path d="M48.08341,42.60586h12.45998v1.9622H48.08341V42.60586z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M90.85941,31.71564c6.27905-8.43747,4.31684-20.60312-4.21874-26.78405s-20.505-4.12062-26.78405,4.41495
c-5.7885,7.94692-4.61118,18.93525,2.64897,25.41051l-0.09811,3.63008l3.43385-1.17732
C74.18069,41.91909,84.97281,39.76067,90.85941,31.71564z"/>
<path d="M75.2599,40.64366c-3.23763,0-6.47527-0.78488-9.41856-2.35464l-4.31684,1.47165l0.09811-4.61118
c-7.35826-6.86771-8.43747-18.15037-2.45275-26.39161c6.47526-9.02613,19.13147-11.08644,28.05948-4.61117
c4.41496,3.13952,7.26015,7.84881,8.04503,13.24486c0.78488,5.29794-0.49055,10.59589-3.63007,14.91273
C87.71989,37.70036,81.53896,40.64366,75.2599,40.64366z M65.93945,36.13059l0.39244,0.19622
c8.04503,4.51306,18.24847,2.25653,23.74264-5.19983c2.8452-3.82629,4.02251-8.63369,3.23764-13.44108
c-0.78488-4.9055-3.33575-9.12424-7.26015-11.96943c-8.04503-5.7885-19.4258-3.9244-25.41052,4.21873
c-5.49416,7.55448-4.41495,17.95415,2.55086,24.13508l0.29433,0.29433l-0.09811,2.64898L65.93945,36.13059z"/>
<g enable-background="new">
<path d="M67.41109,19.35377H65.547v-1.27543c1.17731,0,2.06031-0.58866,2.25654-1.66787h1.47165v8.14314h-1.8641V19.35377z"/>
<path d="M71.92416,22.29707c0.58865-0.58866,1.27543-1.07921,1.9622-1.56976c0.9811-0.68677,1.47166-0.9811,1.47166-1.76598
c0-0.68677-0.39245-1.07921-1.07922-1.07921c-0.39244,0-0.68677,0.09811-0.88299,0.39244
c-0.29433,0.29433-0.39244,0.68677-0.39244,1.17732h-1.76598c0-0.78488,0.19621-1.37354,0.49055-1.86409
c0.49055-0.68677,1.27544-1.17732,2.64897-1.17732c1.86409,0,2.9433,1.17732,2.9433,2.55086s-0.9811,2.15842-2.15842,2.84519
c-0.78488,0.49055-1.17731,0.68677-1.47165,1.17732h3.63007v1.56976h-6.18094
C71.04117,23.5725,71.3355,22.88573,71.92416,22.29707z"/>
</g>
<path d="M79.38052,23.86683c-0.58865-0.49055-0.9811-1.17732-0.9811-2.06031h1.76599
c0.09811,0.78488,0.49055,1.27543,1.47165,1.27543c0.78488,0,1.27544-0.39244,1.27544-1.17732
c0-0.68677-0.49055-1.07921-1.37354-1.07921h-0.39245v-1.27543h0.39245c0.78488,0,1.17731-0.39244,1.17731-0.9811
c0-0.49055-0.39244-0.9811-1.07921-0.9811c-0.883,0-1.17732,0.58866-1.27544,1.17732h-1.76598
c0-1.37354,1.17731-2.55086,3.04141-2.55086c1.66787,0,2.84519,0.78488,2.84519,2.15842c0,0.78488-0.49055,1.27543-1.27544,1.56976
c0.9811,0.29433,1.56976,0.88299,1.56976,1.9622c0,1.66787-1.47165,2.74708-3.04141,2.74708
C80.65596,24.65171,79.96918,24.25928,79.38052,23.86683z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "securityCodeAmex-inverted.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 96.9 71.9" style="enable-background:new 0 0 96.9 71.9;" xml:space="preserve">
<g>
<g>
<path fill="#FFFFFF" d="M82.6,71.5H2.4c-1.2,0-2-0.8-2-2V21.1c0-1.2,0.8-2,2-2h80.2c1.2,0,2,0.8,2,2v48.5
C84.6,70.7,83.8,71.5,82.6,71.5z M2.4,21.1v48.5h80.2V21.1H2.4z"/>
<rect x="63.6" y="44.8" fill="#FFFFFF" width="14.8" height="2"/>
<path fill="#FFFFFF" d="M20.2,43.8h-7.9c-1.7,0-3-1.3-3-3v-4.9c0-1.7,1.3-3,3-3h7.9c1.7,0,3,1.3,3,3v4.9
C23.2,42.5,21.9,43.8,20.2,43.8z M12.3,34.9c-0.6,0-1,0.4-1,1v4.9c0,0.6,0.4,1,1,1h7.9c0.6,0,1-0.4,1-1v-4.9c0-0.6-0.4-1-1-1H12.3
z"/>
<g>
<path fill-rile="evenodd" clip-rule="evenodd" d="M93.7,28.8c4.5-9.7,0.4-21.2-9.3-25.6s-21.2-0.4-25.6,9.3c-4.3,9-0.8,19.6,7.4,24.6l0.6,3.7l3.3-1.9
C79.2,42,89.4,37.8,93.7,28.8z"/>
<path fill="#FFFFFF" d="M66,42.3l-0.7-4.7c-8.6-5.5-11.8-16.4-7.4-25.6c2.3-4.9,6.3-8.6,11.4-10.5c5-1.8,10.6-1.6,15.5,0.7
c10.1,4.7,14.4,16.8,9.8,27l0,0C90.2,38.5,79.7,43,70.1,40L66,42.3z M76.2,2.3c-2.1,0-4.3,0.4-6.2,1.1c-4.6,1.7-8.2,5-10.3,9.4
c-4,8.4-1,18.5,7,23.4l0.4,0.2l0.4,2.7l2.4-1.4l0.4,0.1c8.8,3.1,18.4-1.1,22.5-9.6C97,19,93,8.1,83.9,3.8
C81.5,2.9,78.8,2.3,76.2,2.3z"/>
</g>
</g>
<g enable-background="new">
<path fill="#FFFFFF" d="M64.2,19.5h-1.9v-1.3c1.2,0,2.1-0.6,2.3-1.7h1.5v8.2h-1.9V19.5z"/>
<path fill="#FFFFFF" d="M68.8,22.4c0.6-0.6,1.3-1.1,2-1.6c1-0.7,1.5-1,1.5-1.8c0-0.7-0.4-1.1-1.1-1.1c-0.4,0-0.7,0.1-0.9,0.4
c-0.3,0.3-0.4,0.7-0.4,1.2h-1.8c0-0.8,0.2-1.4,0.5-1.9c0.5-0.7,1.3-1.2,2.7-1.2c1.9,0,3,1.2,3,2.6s-1,2.2-2.2,2.9
c-0.8,0.5-1.2,0.7-1.5,1.2l0,0h3.7v1.6H68C68,23.7,68.2,23,68.8,22.4z"/>
<path fill="#FFFFFF" d="M86.8,22.9H83v-1.7l3.8-4.7h1.9v4.9h1.2v1.4h-1.2v1.8h-1.9V22.9z M85.4,21.5h1.4v-1.9c0-0.5,0-0.9,0.1-1.3
l0,0c-0.2,0.3-0.5,0.7-0.8,1.1l-0.8,1c-0.4,0.4-0.7,0.8-0.9,1.1l0,0C84.6,21.5,85,21.5,85.4,21.5z"/>
</g>
<path fill="#FFFFFF" d="M76.3,24.1c-0.6-0.5-1-1.2-1-2.1h1.8c0.1,0.8,0.5,1.3,1.5,1.3c0.8,0,1.3-0.4,1.3-1.2c0-0.7-0.5-1.1-1.4-1.1
h-0.4v-1.3h0.4c0.8,0,1.2-0.4,1.2-1c0-0.5-0.4-1-1.1-1c-0.9,0-1.2,0.6-1.3,1.2h-1.8c0-1.4,1.2-2.6,3.1-2.6c1.7,0,2.9,0.8,2.9,2.2
c0,0.8-0.5,1.3-1.3,1.6l0,0c1,0.3,1.6,0.9,1.6,2c0,1.7-1.5,2.8-3.1,2.8C77.7,24.9,76.9,24.6,76.3,24.1z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "securityCodeAmex.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,38 @@
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 96.9 71.9" style="enable-background:new 0 0 96.9 71.9;" xml:space="preserve">
<g>
<g>
<path d="M82.61,71.539H2.43c-1.188,0-1.98-0.792-1.98-1.98V21.055c0-1.188,0.792-1.98,1.98-1.98h80.18
c1.188,0,1.98,0.792,1.98,1.98v48.504C84.589,70.747,83.798,71.539,82.61,71.539z M2.43,21.055v48.504h80.18V21.055
C82.61,21.055,2.43,21.055,2.43,21.055z"/>
<rect x="63.604" y="44.812" width="14.848" height="1.98"/>
<path d="M20.248,43.823h-7.919c-1.683,0-2.97-1.287-2.97-2.97v-4.949c0-1.683,1.287-2.97,2.97-2.97h7.919
c1.683,0,2.97,1.287,2.97,2.97v4.949C23.217,42.536,21.93,43.823,20.248,43.823z M12.328,34.914c-0.594,0-0.99,0.396-0.99,0.99
v4.949c0,0.594,0.396,0.99,0.99,0.99h7.919c0.594,0,0.99-0.396,0.99-0.99v-4.949c0-0.594-0.396-0.99-0.99-0.99H12.328z"/>
<g>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M93.696,28.776c4.454-9.701,0.396-21.183-9.305-25.638s-21.183-0.396-25.638,9.305
c-4.256,9.008-0.792,19.6,7.424,24.648l0.594,3.663l3.267-1.881C79.244,42.041,89.44,37.784,93.696,28.776z"/>
<path d="M65.98,42.338l-0.693-4.652c-8.612-5.543-11.78-16.432-7.424-25.638c2.277-4.949,6.335-8.612,11.384-10.493
c5.048-1.782,10.592-1.584,15.541,0.693c10.097,4.652,14.452,16.729,9.8,26.925l0,0c-4.355,9.305-14.848,13.858-24.45,10.79
L65.98,42.338z M76.176,2.347c-2.079,0-4.256,0.396-6.236,1.089c-4.553,1.683-8.216,5.048-10.295,9.404
c-3.96,8.414-0.99,18.511,7.028,23.361l0.396,0.198l0.396,2.673l2.376-1.386l0.396,0.099c8.81,3.069,18.412-1.089,22.47-9.602
c4.256-9.206,0.297-20.094-8.81-24.351C81.521,2.941,78.848,2.347,76.176,2.347z"/>
</g>
</g>
<g enable-background="new" >
<path d="M64.198,19.472h-1.881v-1.287c1.188,0,2.079-0.594,2.277-1.683h1.485v8.216h-1.881V19.472z"/>
<path d="M68.751,22.441c0.594-0.594,1.287-1.089,1.98-1.584c0.99-0.693,1.485-0.99,1.485-1.782c0-0.693-0.396-1.089-1.089-1.089
c-0.396,0-0.693,0.099-0.891,0.396c-0.297,0.297-0.396,0.693-0.396,1.188h-1.782c0-0.792,0.198-1.386,0.495-1.881
c0.495-0.693,1.287-1.188,2.673-1.188c1.881,0,2.97,1.188,2.97,2.574s-0.99,2.178-2.178,2.871
c-0.792,0.495-1.188,0.693-1.485,1.188l0,0h3.663v1.584H67.96C67.96,23.728,68.158,23.035,68.751,22.441z"/>
<path d="M86.767,22.936h-3.762v-1.683l3.762-4.652h1.881v4.949h1.188v1.386h-1.188v1.782h-1.881V22.936z M85.381,21.451h1.386
v-1.881c0-0.495,0-0.891,0.099-1.287l0,0c-0.198,0.297-0.495,0.693-0.792,1.089l-0.792,0.99c-0.396,0.396-0.693,0.792-0.891,1.089
l0,0C84.589,21.55,84.985,21.451,85.381,21.451z"/>
</g>
<path d="M76.275,24.124c-0.594-0.495-0.99-1.188-0.99-2.079h1.782c0.099,0.792,0.495,1.287,1.485,1.287
c0.792,0,1.287-0.396,1.287-1.188c0-0.693-0.495-1.089-1.386-1.089h-0.396v-1.287h0.396c0.792,0,1.188-0.396,1.188-0.99
c0-0.495-0.396-0.99-1.089-0.99c-0.891,0-1.188,0.594-1.287,1.188h-1.782c0-1.386,1.188-2.574,3.069-2.574
c1.683,0,2.871,0.792,2.871,2.178c0,0.792-0.495,1.287-1.287,1.584l0,0c0.99,0.297,1.584,0.891,1.584,1.98
c0,1.683-1.485,2.772-3.069,2.772C77.66,24.916,76.868,24.619,76.275,24.124z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "visa-inverted.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 20" style="enable-background:new 0 0 32 20;" xml:space="preserve">
<path fill-fule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M16.2,5.2L14.1,15h-2.5l2.1-9.8H16.2z M28.8,14.8H31l-2-9.6H27c-0.5,0-0.9,0.3-1,0.7l-3.6,8.9h2.5l0.5-1.4h3.1
L28.8,14.8z M26,11.4l1.3-3.7l0.8,3.7H26z M22.5,11.7c0-2.6-3.4-2.7-3.4-3.8c0-0.3,0.3-0.7,1-0.8c0.3,0,1.3-0.1,2.4,0.4L23,5.4
C22.4,5.2,21.6,5,20.7,5c-2.4,0-4.1,1.3-4.1,3.2c0,1.4,1.2,2.2,2.1,2.6c0.9,0.5,1.3,0.8,1.3,1.2c0,0.6-0.8,0.9-1.5,0.9
c-1.2,0-1.9-0.3-2.5-0.6l-0.4,2.1c0.6,0.3,1.6,0.5,2.7,0.5C20.9,15,22.5,13.7,22.5,11.7z M12.5,5.2l-4,9.7H5.9L4,7.1
C3.9,6.7,3.8,6.5,3.4,6.3C2.8,6,1.9,5.6,1,5.5l0.1-0.3h4.2c0.5,0,1,0.4,1.1,1l1,5.6l2.5-6.6H12.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 976 B

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "visa.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 20">
<path fill="#10357F" d="M12.1,5L8,15H5.2L3.2,7C3,6.5,2.9,6.4,2.6,6.2C1.9,5.8,0.9,5.5,0,5.3L0.1,5h4.4c0.6,0,1.1,0.4,1.2,1l1.1,5.8
L9.4,5H12.1z M22.9,11.7c0-2.6-3.6-2.8-3.6-4c0-0.4,0.3-0.7,1.1-0.8c0.9-0.1,1.8,0.1,2.5,0.4l0.5-2.1c-0.8-0.3-1.6-0.4-2.4-0.4
c-2.5,0-4.4,1.4-4.4,3.3c0,1.4,1.3,2.2,2.3,2.7c1,0.5,1.3,0.8,1.3,1.2c0,0.7-0.8,1-1.5,1c-1.3,0-2.1-0.4-2.7-0.6l-0.5,2.2
c0.6,0.3,1.7,0.5,2.9,0.5C21.1,15.2,22.9,13.8,22.9,11.7 M29.6,15H32L29.9,5h-2.2c-0.5,0-0.9,0.3-1.1,0.7L22.7,15h2.7l0.5-1.5h3.3
L29.6,15z M26.7,11.5l1.4-3.8l0.8,3.8H26.7z M15.9,5l-2.1,10h-2.6l2.1-10H15.9z"/>
</svg>

After

Width:  |  Height:  |  Size: 648 B

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "checkmark-alt.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.6 21.6"><path d="M10.80009,19.80015a9,9,0,1,1,9-9A9.01054,9.01054,0,0,1,10.80009,19.80015Zm0-16.87512a7.87512,7.87512,0,1,0,7.87512,7.87512A7.88411,7.88411,0,0,0,10.80009,2.925ZM14.75,8.63964,13.95474,7.85,9.62367,12.17072,7.64331,10.20631,6.85,10.9979,9.62562,13.75Z"/></svg>

After

Width:  |  Height:  |  Size: 365 B

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "error.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.6 21.6"><path d="M10.80213,19.80122a2.39567,2.39567,0,0,1-1.705-.707L2.50743,12.50444a2.41244,2.41244,0,0,1,0-3.40913L9.09808,2.50555a2.4159,2.4159,0,0,1,3.40908-.001l6.58967,6.59073a2.41244,2.41244,0,0,1,0,3.40913L12.50716,19.0942A2.394,2.394,0,0,1,10.80213,19.80122Zm-7.4998-9.911a1.289,1.289,0,0,0,0,1.81931L9.893,18.29929a1.31476,1.31476,0,0,0,1.81928,0l6.58967-6.58976a1.289,1.289,0,0,0,0-1.81931L11.71226,3.30047a1.29076,1.29076,0,0,0-1.81928,0ZM9.95,15.05h1.7V13.367H9.95Zm0-6.00953.561,2.635h.56952l.56951-2.635V6.55H9.95Z"/></svg>

After

Width:  |  Height:  |  Size: 628 B

View File

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

View File

@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.6 21.6"><defs><style>.cls-1{fill:#010101;}</style></defs><path class="cls-1" d="M19.8,10.8a9,9,0,1,0-9,9A9.01054,9.01054,0,0,0,19.8,10.8Zm-1.12488,0A7.87513,7.87513,0,1,1,10.8,2.92486,7.88411,7.88411,0,0,1,18.67509,10.8ZM11.625,7.45852H9.95v-1.675h1.675ZM9.95834,9.11662H11.65v6.6999H9.95834Z"/></svg>

After

Width:  |  Height:  |  Size: 390 B