added initial icon

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2023-01-09 15:33:55 -06:00
parent e41812e7c7
commit b6888671e7
5 changed files with 865 additions and 0 deletions

View File

@ -58,6 +58,10 @@
EA985BEE2968A92400F2FF2E /* TitleLockupSubTitleModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985BED2968A92400F2FF2E /* TitleLockupSubTitleModel.swift */; };
EA985BF02968A93600F2FF2E /* TitleLockupEyebrowModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985BEF2968A93600F2FF2E /* TitleLockupEyebrowModel.swift */; };
EA985BF22968B5BB00F2FF2E /* TitleLockupTypography.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985BF12968B5BB00F2FF2E /* TitleLockupTypography.swift */; };
EA985BF5296C60C000F2FF2E /* Icon.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985BF4296C60C000F2FF2E /* Icon.swift */; };
EA985BF7296C665E00F2FF2E /* IconName.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985BF6296C665E00F2FF2E /* IconName.swift */; };
EA985BF9296C710100F2FF2E /* IconColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985BF8296C710100F2FF2E /* IconColor.swift */; };
EA985BFB296C78D500F2FF2E /* IconCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985BFA296C78D500F2FF2E /* IconCategory.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 */; };
@ -165,6 +169,10 @@
EA985BED2968A92400F2FF2E /* TitleLockupSubTitleModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitleLockupSubTitleModel.swift; sourceTree = "<group>"; };
EA985BEF2968A93600F2FF2E /* TitleLockupEyebrowModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitleLockupEyebrowModel.swift; sourceTree = "<group>"; };
EA985BF12968B5BB00F2FF2E /* TitleLockupTypography.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitleLockupTypography.swift; sourceTree = "<group>"; };
EA985BF4296C60C000F2FF2E /* Icon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Icon.swift; sourceTree = "<group>"; };
EA985BF6296C665E00F2FF2E /* IconName.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconName.swift; sourceTree = "<group>"; };
EA985BF8296C710100F2FF2E /* IconColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconColor.swift; sourceTree = "<group>"; };
EA985BFA296C78D500F2FF2E /* IconCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconCategory.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>"; };
@ -332,6 +340,7 @@
EA4DB2FE28DCBC1900103EE3 /* Badge */,
EA0FC2BE2912D18200DF80B4 /* Buttons */,
EAF7F092289985E200B287F5 /* Checkbox */,
EA985BF3296C609E00F2FF2E /* Icon */,
EA3362412892EF700071C351 /* Label */,
EA89200B28B530F0006B9984 /* RadioBox */,
EAF7F11428A1470D00B287F5 /* RadioButton */,
@ -499,6 +508,17 @@
path = RadioBox;
sourceTree = "<group>";
};
EA985BF3296C609E00F2FF2E /* Icon */ = {
isa = PBXGroup;
children = (
EA985BF4296C60C000F2FF2E /* Icon.swift */,
EA985BFA296C78D500F2FF2E /* IconCategory.swift */,
EA985BF8296C710100F2FF2E /* IconColor.swift */,
EA985BF6296C665E00F2FF2E /* IconName.swift */,
);
path = Icon;
sourceTree = "<group>";
};
EAB1D2D028ABEF3100DAE764 /* Typography */ = {
isa = PBXGroup;
children = (
@ -725,6 +745,7 @@
EA4DB2FD28D3D0CA00103EE3 /* AnyEquatable.swift in Sources */,
EAA5EEB728ECC03A003B3210 /* ToolTipLabelAttribute.swift in Sources */,
EA5E305A29510F8B0082B959 /* EnumSubset.swift in Sources */,
EA985BF7296C665E00F2FF2E /* IconName.swift in Sources */,
EAF7F0AF289B144C00B287F5 /* UnderlineLabelAttribute.swift in Sources */,
EAC925842911C63100091998 /* Colorable.swift in Sources */,
EA3361C5289030FC0071C351 /* Accessable.swift in Sources */,
@ -774,10 +795,12 @@
EAA5EEB528ECBFB4003B3210 /* ImageLabelAttribute.swift in Sources */,
EAB5FF0129424ACB00998C17 /* UIControl.swift in Sources */,
EAB1D2E628AE842000DAE764 /* Publisher+Bind.swift in Sources */,
EA985BF5296C60C000F2FF2E /* Icon.swift in Sources */,
EA3361AA288B25E40071C351 /* Disabling.swift in Sources */,
EA3361B6288B2A410071C351 /* Control.swift in Sources */,
5F21D7BF28DCEB3D003E7CD6 /* Useable.swift in Sources */,
EAF7F0B7289C12A600B287F5 /* UITapGestureRecognizer.swift in Sources */,
EA985BF9296C710100F2FF2E /* IconColor.swift in Sources */,
EAB5FED429267EB300998C17 /* UIView.swift in Sources */,
EA3361AD288B26190071C351 /* DataTrackable.swift in Sources */,
EA33623E2892EE950071C351 /* UIDevice.swift in Sources */,
@ -785,6 +808,7 @@
EAF7F0AD289B142900B287F5 /* StrikeThroughLabelAttribute.swift in Sources */,
EAB5FEF12927F4AA00998C17 /* SelfSizingCollectionView.swift in Sources */,
EA3361B8288B2AAA0071C351 /* ViewProtocol.swift in Sources */,
EA985BFB296C78D500F2FF2E /* IconCategory.swift in Sources */,
EA3361BF288B2EA60071C351 /* Handlerable.swift in Sources */,
EA3361A8288B23300071C351 /* UIColor.swift in Sources */,
EAC9257D29119B5400091998 /* TextLink.swift in Sources */,

View File

@ -0,0 +1,154 @@
//
// Icon.swift
// VDS
//
// Created by Matt Bruce on 1/9/23.
//
import Foundation
import UIKit
import VDSColorTokens
import Combine
public enum IconSize: String, CaseIterable {
case xsmall
case small
case medium
case large
case XLarge
public var dimensions: CGSize {
switch self {
case .xsmall:
return .init(width: 12, height: 12)
case .small:
return .init(width: 16, height: 16)
case .medium:
return .init(width: 20, height: 20)
case .large:
return .init(width: 24, height: 24)
case .XLarge:
return .init(width: 28, height: 28)
}
}
}
@objc(VDSIcon)
public class Icon: View {
//--------------------------------------------------
// MARK: - Private Properties
//--------------------------------------------------
private var widthConstraint: NSLayoutConstraint?
private var heightConstraint: NSLayoutConstraint?
private var imageView = UIImageView().with {
$0.translatesAutoresizingMaskIntoConstraints = false
$0.contentMode = .scaleAspectFill
$0.clipsToBounds = true
}
//--------------------------------------------------
// MARK: - Public Properties
//--------------------------------------------------
open var color: IconColor = .black { didSet { didChange() }}
open var size: IconSize = .medium { didSet { didChange() }}
open var name: IconName? { didSet { didChange() }}
//reserverd for internal components only
internal var restrictedName: RestrictedIconName? { didSet { didChange() }}
internal var isBold: Bool = false { didSet { didChange() }}
//functions
//--------------------------------------------------
// MARK: - Lifecycle
//--------------------------------------------------
open override func setup() {
super.setup()
addSubview(imageView)
imageView.pinToSuperView()
heightConstraint = imageView.heightAnchor.constraint(equalToConstant: size.dimensions.height)
heightConstraint?.isActive = true
widthConstraint = imageView.widthAnchor.constraint(equalToConstant: size.dimensions.width)
widthConstraint?.isActive = true
backgroundColor = .clear
}
public override func reset() {
super.reset()
color = .black
imageView.image = nil
}
//--------------------------------------------------
// MARK: - State
//--------------------------------------------------
open override func updateView() {
super.updateView()
//get the color for the image
var imageColor = color.value
//ensure the correct color for white/black colors
if surface == .dark && color == IconColor.black {
imageColor = VDSColor.elementsPrimaryOndark
} else if surface == .light && color == IconColor.black {
imageColor = VDSColor.elementsPrimaryOnlight
}
//set the icon dimensions
let dimensions = size.dimensions
heightConstraint?.constant = dimensions.height
widthConstraint?.constant = dimensions.width
//get the image name
//set the image
if let restrictedName, let image = getImage(for: restrictedName.rawValue) {
setImage(image: image, imageColor: imageColor)
} else if let name, let image = getImage(for: name.rawValue) {
setImage(image: image, imageColor: imageColor)
} else {
imageView.image = nil
}
}
private func getImage(for imageName: String) -> UIImage? {
if !imageName.hasPrefix("pagination"), isBold {
let boldIconName = "\(imageName)-bold"
if let image = UIImage(named: boldIconName, in: Bundle(for: Self.self), with: nil) {
return image
} else if let image = UIImage(named: boldIconName) {
return image
} else if let image = UIImage(named: imageName) {
return image
}
} else {
if let image = UIImage(named: imageName, in: Bundle(for: Self.self), with: nil) {
return image
} else if let image = UIImage(named: imageName) {
return image
}
}
return nil
}
private func setImage(image: UIImage, imageColor: UIColor) {
imageView.image = image.withTintColor(imageColor)
}
}

View File

@ -0,0 +1,66 @@
//
// IconCategory.swift
// VDS
//
// Created by Matt Bruce on 1/9/23.
//
import Foundation
public enum IconCategory: String, CaseIterable {
case accessibility
case b2b
case directional
case international
case navigational
case notification_feedback
case objects_industry
case orders_pricing
case other
case plans_devices
case social
case utilities
}
extension IconCategory {
public var icons: [IconName] {
switch self {
case .accessibility:
return [.accessibility, .americanSignLanguage, .assistedListeningSystems, .audioDescription, .blind, .braille, .brightness, .closedCaptioning, .closedCaptioningFill, .cognitiveDisability, .deaf, .internationalSymbolOfAccess, .openCaptioning, .phoneVolume, .teletype, .textToSpeech]
case .b2b:
return [.assetTracking, .businessContinuity, .conditionBasedMaintenance, .conditionBasedWrench, .constructionHammer, .constructionTruck, .digitalSignageCar, .digitalSignage, .droneCamera, .educationCurriculum, .education, .electricPower, .electricUtility, .energyScience, .energyUtilities, .enterprise, .federalDefense, .financial, .fleetTracking, .fleet, .gas, .government, .group, .growth, .hackers, .healthcareCorporate, .healthcareGeneral, .healthcareWorker, .ideasSolutions, .inclusivity, .industry, .insurance, .intelligentTracking, .internetOfThings, .joinCall, .k12Education, .laptopAntivirus, .laptopControls, .laptopGpsTracking, .laptopSettings, .laptopTrends, .laptopWireless, .law, .lmr, .loyaltyRetention, .manufacturing, .mediaEntertainment, .mediumBusiness, .mobileCommandCenter, .mobileKioskInfo, .mobileKioskWireless, .mobileRetail, .mobileSearch, .mobileWorkforceManagement, .network, .networkAttachedStorage, .officePhoneSystem, .oilIndustry, .operationalTransformation, .pharmaceutical, .pharmacy, .planner, .powerUtility, .professionalServices, .qualityAssurance, .realEstate, .regulatoryCompliance, .research, .retail, .security, .securitySolution, .smarthouse, .socialMedia, .software, .solarPower, .solutions, .supplyChain, .systemIntegration, .telecommunications, .telemedicine, .telemetry, .thermodynamics, .trends, .utilityWorker, .vehicleTracking, .warehouseManagement, .waterIndustry, .wellness]
case .directional:
return [.upCaret, .closeAlt, .close, .downArrow, .downCaret, .evenMoreFlexibility, .flexibilityRectangles, .flexibility, .gateway, .leftArrow, .leftCaret, .minus, .moreFlexibility, .noOff, .no, .plus, .rightArrow, .rightCaret, .swipeLeft, .swipeRight, .swipe, .switch, .upArrow]
case .international:
return [.internationalLongDistance, .international, .travelPass, .tripPlanner]
case .navigational:
return [.advancedSettings, .agentChat, .bookmark, .chat, .filterOff, .filter, .list, .lockClosed, .lockOpen, .logout, .menu, .moreHorizontal, .myAccount, .realTimeTracking, .search, .settings, .supportDrawer, .support, .userRegistration]
case .notification_feedback:
return [.alertNotification, .checkmarkAlt, .checkmark, .clock, .error, .feedback, .loader, .notification, .notificationsOff, .notifyMe, .pushNotification, .remindMe, .reminder, .securityAlert, .securityCheck, .securityKeyhole, .securityWireless, .snooze, .speedMonitoring, .starOff, .star, .sync, .timer, .warning]
case .objects_industry:
return [.ctr, .passenger, .tvContent, .urlTransparency, .adaptiveSpeaker, .adTechStack, .agricultureLeaves, .agricultureTractor, .agricultureVineyard, .airport, .airConditioner, .audienceTargetedSearch, .award, .babyMonitor, .bestPractices, .bid, .bot, .cellTower, .cloudDocument, .coffee, .coin, .complianceDocument, .conversion, .countDown, .crossDeviceTargeting, .crossDevice, .customAudience, .digitalContent, .dining, .display, .domainTargeting, .doorbell, .driver, .euro, .expense, .faceCovering, .fineArt, .flag, .flurry, .fridge, .gaming, .geofence, .home, .identityGraph, .impressionVideo, .inferredIdentity, .irobot, .ironingBoard, .kidsStroller, .levers, .mobilePlusTv, .mobileRetargeting, .motionDetector, .multipleDocuments, .music, .nativeVideo, .native, .onGoCar, .packBackpack, .packLuggage, .packPurse, .petsCollar, .realTime, .research, .retailStore, .retargeting, .schoolNotebook, .singleDocument, .smartFamilyChildAddressBook, .smartScooter, .smokeDetector, .solarPanel, .sportsBike, .sportsSkis, .sportsSoccer, .sportsTennis, .stadiumAlt, .stadiumFlag, .thermostatTech, .ticket, .tradingDeck, .traffic, .travelKeys, .trumpet, .unification, .unification, .visibility, .weights, .yield]
case .orders_pricing:
return [.addToFavorite, .addedToFavorite, .billDown, .billUp, .camera, .creditCard, .gift, .inStorePickup, .noFee, .oneYear, .orders, .outOfStock, .reoccuringPayment, .reservations, .returns, .rewards, .shipping, .shoppingBag, .shopping, .tag, .taxes]
case .other:
return [.growthOpportunities, .noSmoking, .socialDistancing]
case .plans_devices:
return [.battery, .bonusData, .bringYourOwnDevice, .callerId, .carryoverData, .compass, .connect, .dataBoost, .deviceProtection, .devicesAddons, .embeddedSound, .findMyRemote, .giftedData, .homeInternet, .internetDevices, .largePlan, .mediumPlan, .mobileApps, .mobileHotspot, .multipleDeviceProtection, .multipleDevices, .nationWide, .phoneAlt, .purchaseData, .router, .simCard, .smallPlan, .smartAssistant, .sound, .tablet, .techLaptop, .techPhone , .totalMobileProtection, .unlimitedPlan, .uplink, .videoOnTablet, .waterResistant, .wearable]
case .social:
return [.at, .facebook, .instagram, .twitter, .youtube]
case .utilities:
return [.ThreeDAd , .ar , .addFolder , .addUser , .analytics , .announcement , .archive , .artboard , .attach , .awareness , .barcode , .bluetooth , .boxOpen , .calendar , .calibrate , .callDisconnected , .cleanSurface , .cloudAlt , .cloud , .comparison , .compose , .connectParts , .consultativeTransfer , .convergence , .crop , .cta , .customize , .data , .decrease , .deviceActivity , .directCarrierBilling , .directory , .displayUtilities , .distribution , .download , .dragAndDrop , .dropShipment , .duplicate , .edit , .email , .emergencyContact , .emoji , .externalLink , .fallDetected , .favorite , .fax , .fingerprintSensor , .fire , .fitToZone , .flipCamera , .forwardedCall , .fullscreen , .getHelp , .gridView , .history , .humidity , .incomingCall , .increase , .info , .inventory , .invitationAccepted , .invitationExpired , .invitationRejected , .landscape , .light , .link , .location , .locationPin , .mapView , .masonryView , .maximize , .mergeCalls , .microphoneAlt , .microphone , .missedCall , .moveTo , .multicast , .mute , .networkConnection , .news , .next , .nfcTag , .night , .noVideo , .onDemand , .outgoingCall , .paperFreeBilling , .pauseInternet , .pause , .peelSticker , .photo , .platform , .playAlt , .playWith , .play , .portrait , .pressure , .previous , .print , .question , .recycle , .removeItem , .replaceAPhoto , .reply , .ringing , .ringtone , .riskMonitor , .rss , .satelliteOff , .satellite , .save , .scaleAlt , .scale , .sendMessage , .setFallbackImage , .setGalleryImage , .share , .shock , .signalBroadcast , .speakerMute , .speakerPhone , .speed , .stakeholder , .steps , .stop , .stopAlt , .survey , .talking , .teamLeader , .temperature , .template , .theme , .thumbsDown , .thumbsUp , .tiles , .tilt , .tools , .trash , .turnonOff , .tv , .upload , .userSettings , .vibration , .video , .volume , .volunteer , .virtualReality , .voiceHd , .voiceMail , .weather , .whiteBlackList , .wifi , .zoomIn , .zoomOut]
}
}
}

View File

@ -0,0 +1,90 @@
//
// IconColor.swift
// VDS
//
// Created by Matt Bruce on 1/9/23.
//
import Foundation
import VDSColorTokens
import UIKit
public enum IconColor: String, CaseIterable {
case black
case white
case red
case gray95
case gray85
case gray65
case gray44
case gray20
case gray11
case orange91
case orange46
case orange39
case orange15
case yellow94
case yellow62
case yellow20
case blue91
case blue45
case blue35
case blue13
case green89
case green34
case green26
case green11
public var value: UIColor {
switch self {
case .black:
return VDSColor.paletteBlack
case .white:
return VDSColor.paletteWhite
case .red:
return VDSColor.paletteRed
case .gray95:
return VDSColor.paletteGray95
case .gray85:
return VDSColor.paletteGray85
case .gray65:
return VDSColor.paletteGray65
case .gray44:
return VDSColor.paletteGray44
case .gray20:
return VDSColor.paletteGray20
case .gray11:
return VDSColor.paletteGray11
case .orange91:
return VDSColor.paletteOrange91
case .orange46:
return VDSColor.paletteOrange46
case .orange39:
return VDSColor.paletteOrange39
case .orange15:
return VDSColor.paletteOrange15
case .yellow94:
return VDSColor.paletteYellow94
case .yellow62:
return VDSColor.paletteYellow62
case .yellow20:
return VDSColor.paletteYellow20
case .blue91:
return VDSColor.paletteBlue91
case .blue45:
return VDSColor.paletteBlue45
case .blue35:
return VDSColor.paletteBlue35
case .blue13:
return VDSColor.paletteBlue13
case .green89:
return VDSColor.paletteGreen89
case .green34:
return VDSColor.paletteGreen34
case .green26:
return VDSColor.paletteGreen26
case .green11:
return VDSColor.paletteGreen11
}
}
}

View File

@ -0,0 +1,531 @@
//
// IconName.swift
// VDS
//
// Created by Matt Bruce on 1/9/23.
//
import Foundation
import UIKit
import VDSColorTokens
public enum IconName: String, CaseIterable {
//accessibility
case accessibility = "accessibility"
case americanSignLanguage = "american-sign-language"
case assistedListeningSystems = "assisted-listening-systems"
case audioDescription = "audio-description"
case blind = "blind"
case braille = "braille"
case brightness = "brightness"
case closedCaptioning = "closed-captioning"
case closedCaptioningFill = "closed-captioning-fill"
case cognitiveDisability = "cognitive-disability"
case deaf = "deaf"
case internationalSymbolOfAccess = "international-symbol-of-access"
case openCaptioning = "open-captioning"
case phoneVolume = "phone-volume"
case teletype = "teletype"
case textToSpeech = "text-to-speech"
//b2b
case assetTracking = "asset-tracking"
case businessContinuity = "business-continuity"
case conditionBasedMaintenance = "condition-based-maintenance"
case conditionBasedWrench = "condition-based-wrench"
case constructionHammer = "construction-hammer"
case constructionTruck = "construction-truck"
case digitalSignageCar = "digital-signage-car"
case digitalSignage = "digital-signage"
case droneCamera = "drone-camera"
case educationCurriculum = "education-curriculum"
case education = "education"
case electricPower = "electric-power"
case electricUtility = "electric-utility"
case energyScience = "energy-science"
case energyUtilities = "energy-utilities"
case enterprise = "enterprise"
case federalDefense = "federal-defense"
case financial = "financial"
case fleetTracking = "fleet-tracking"
case fleet = "fleet"
case gas = "gas"
case government = "government"
case group = "group"
case growth = "growth"
case hackers = "hackers"
case healthcareCorporate = "healthcare-corporate"
case healthcareGeneral = "healthcare-general"
case healthcareWorker = "healthcare-worker"
case ideasSolutions = "ideas-solutions"
case inclusivity = "inclusivity"
case industry = "industry"
case insurance = "insurance"
case intelligentTracking = "intelligent-tracking"
case internetOfThings = "internet-of-things"
case joinCall = "join-call"
case k12Education = "k12-education"
case laptopAntivirus = "laptop-antivirus"
case laptopControls = "laptop-controls"
case laptopGpsTracking = "laptop-gps-tracking"
case laptopSettings = "laptop-settings"
case laptopTrends = "laptop-trends"
case laptopWireless = "laptop-wireless"
case law = "law"
case lmr = "lmr"
case loyaltyRetention = "loyalty-retention"
case manufacturing = "manufacturing"
case mediaEntertainment = "media-entertainment"
case mediumBusiness = "medium-business"
case mobileCommandCenter = "mobile-command-center"
case mobileKioskInfo = "mobile-kiosk-info"
case mobileKioskWireless = "mobile-kiosk-wireless"
case mobileRetail = "mobile-retail"
case mobileSearch = "mobile-search"
case mobileWorkforceManagement = "mobile-workforce-management"
case network = "network"
case networkAttachedStorage = "network-attached-storage"
case officePhoneSystem = "office-phone-system"
case oilIndustry = "oil-industry"
case operationalTransformation = "operational-transformation"
case pharmaceutical = "pharmaceutical"
case pharmacy = "pharmacy"
case planner = "planner"
case powerUtility = "power-utility"
case professionalServices = "professional-services"
case qualityAssurance = "quality-assurance"
case realEstate = "real-estate"
case regulatoryCompliance = "regulatory-compliance"
case retail = "retail"
case security = "security"
case securitySolution = "security-solution"
case smarthouse = "smarthouse"
case socialMedia = "social-media"
case software = "software"
case solarPower = "solar-power"
case solutions = "solutions"
case supplyChain = "supply-chain"
case systemIntegration = "system-integration"
case telecommunications = "telecommunications"
case telemedicine = "telemedicine"
case telemetry = "telemetry"
case thermodynamics = "thermodynamics"
case trends = "trends"
case utilityWorker = "utility-worker"
case vehicleTracking = "vehicle-tracking"
case warehouseManagement = "warehouse-management"
case waterIndustry = "water-industry"
case wellness = "wellness"
//directional
case upCaret = "up-caret"
case closeAlt = "close-alt"
case close = "close"
case downArrow = "down-arrow"
case downCaret = "down-caret"
case evenMoreFlexibility = "even-more-flexibility"
case flexibilityRectangles = "flexibility-rectangles"
case flexibility = "flexibility"
case gateway = "gateway"
case leftArrow = "left-arrow"
case leftCaret = "left-caret"
case minus = "minus"
case moreFlexibility = "more-flexibility"
case noOff = "no-off"
case no = "no"
case plus = "plus"
case rightArrow = "right-arrow"
case rightCaret = "right-caret"
case swipeLeft = "swipe-left"
case swipeRight = "swipe-right"
case swipe = "swipe"
case `switch` = "switch"
case upArrow = "up-arrow"
//international
case internationalLongDistance = "international-long-distance"
case international = "international"
case travelPass = "travel-pass"
case tripPlanner = "trip-planner"
//navigational
case advancedSettings = "advanced-settings"
case agentChat = "agent-chat"
case bookmark = "bookmark"
case chat = "chat"
case filterOff = "filter-off"
case filter = "filter"
case list = "list"
case lockClosed = "lock-closed"
case lockOpen = "lock-open"
case logout = "logout"
case menu = "menu"
case moreHorizontal = "more-horizontal"
case myAccount = "my-account"
case realTimeTracking = "real-time-tracking"
case search = "search"
case settings = "settings"
case supportDrawer = "support-drawer"
case support = "support"
case userRegistration = "user-registration"
//nofication_feedback
case alertNotification = "alert-notification"
case checkmarkAlt = "checkmark-alt"
case checkmark = "checkmark"
case clock = "clock"
case error = "error"
case feedback = "feedback"
case loader = "loader"
case notification = "notification"
case notificationsOff = "notifications-off"
case notifyMe = "notify-me"
case pushNotification = "push-notification"
case remindMe = "remind-me"
case reminder = "reminder"
case securityAlert = "security-alert"
case securityCheck = "security-check"
case securityKeyhole = "security-keyhole"
case securityWireless = "security-wireless"
case snooze = "snooze"
case speedMonitoring = "speed-monitoring"
case starOff = "star-off"
case star = "star"
case sync = "sync"
case timer = "timer"
case warning = "warning"
//objects_industry
case ctr = "ctr"
case passenger = "passenger"
case tvContent = "tv-content"
case urlTransparency = "url-transparency"
case adaptiveSpeaker = "adaptive-speaker"
case adTechStack = "ad-tech-stack"
case agricultureLeaves = "agriculture-leaves"
case agricultureTractor = "agriculture-tractor"
case agricultureVineyard = "agriculture-vineyard"
case airport = "airport"
case airConditioner = "air-conditioner"
case audienceTargetedSearch = "audience-targeted-search"
case award = "award"
case babyMonitor = "baby-monitor"
case bestPractices = "best-practices"
case bid = "bid"
case bot = "bot"
case cellTower = "cell-tower"
case cloudDocument = "cloud-document"
case coffee = "coffee"
case coin = "coin"
case complianceDocument = "compliance-document"
case conversion = "conversion"
case countDown = "count-down"
case crossDeviceTargeting = "cross-device-targeting"
case crossDevice = "cross-device"
case customAudience = "custom-audience"
case digitalContent = "digital-content"
case dining = "dining"
case display = "display"
case domainTargeting = "domain-targeting"
case doorbell = "doorbell"
case driver = "driver"
case euro = "euro"
case expense = "expense"
case faceCovering = "face-covering"
case fineArt = "fine-art"
case flag = "flag"
case flurry = "flurry"
case fridge = "fridge"
case gaming = "gaming"
case geofence = "geofence"
case home = "home"
case identityGraph = "identity-graph"
case impressionVideo = "impression-video"
case inferredIdentity = "inferred-identity"
case irobot = "irobot"
case ironingBoard = "ironing-board"
case kidsStroller = "kids-stroller"
case levers = "levers"
case mobilePlusTv = "mobile-plus-tv"
case mobileRetargeting = "mobile-retargeting"
case motionDetector = "motion-detector"
case multipleDocuments = "multiple-documents"
case music = "music"
case nativeVideo = "native-video"
case native = "native"
case onGoCar = "on-go-car"
case packBackpack = "pack-backpack"
case packLuggage = "pack-luggage"
case packPurse = "pack-purse"
case petsCollar = "pets-collar"
case realTime = "real-time"
case research = "research"
case retailStore = "retail-store"
case retargeting = "retargeting"
case schoolNotebook = "school-notebook"
case singleDocument = "single-document"
case smartFamilyChildAddressBook = "smart-family-child-address-book"
case smartScooter = "smart-scooter"
case smokeDetector = "smoke-detector"
case solarPanel = "solar-panel"
case sportsBike = "sports-bike"
case sportsSkis = "sports-skis"
case sportsSoccer = "sports-soccer"
case sportsTennis = "sports-tennis"
case stadiumAlt = "stadium-alt"
case stadiumFlag = "stadium-flag"
case thermostatTech = "thermostat-tech"
case ticket = "ticket"
case tradingDeck = "trading-deck"
case traffic = "traffic"
case travelKeys = "travel-keys"
case trumpet = "trumpet"
case unification = "unification"
case visibility = "visibility"
case weights = "weights"
case yield = "yield"
//orders_pricing
case addToFavorite = "add-to-favorite"
case addedToFavorite = "added-to-favorite"
case billDown = "bill-down"
case billUp = "bill-up"
case camera = "camera"
case creditCard = "credit-card"
case gift = "gift"
case inStorePickup = "in-store-pickup"
case noFee = "no-fee"
case oneYear = "one-year"
case orders = "orders"
case outOfStock = "out-of-stock"
case reoccuringPayment = "reoccuring-payment"
case reservations = "reservations"
case returns = "returns"
case rewards = "rewards"
case shipping = "shipping"
case shoppingBag = "shopping-bag"
case shopping = "shopping"
case tag = "tag"
case taxes = "taxes"
//other
case growthOpportunities = "growth-opportunities"
case noSmoking = "no-smoking"
case socialDistancing = "social-distancing"
//plans_other
case battery = "battery"
case bonusData = "bonus-data"
case bringYourOwnDevice = "bring-your-own-device"
case callerId = "caller-id"
case carryoverData = "carryover-data"
case compass = "compass"
case connect = "connect"
case dataBoost = "data-boost"
case deviceProtection = "device-protection"
case devicesAddons = "devices-addons"
case embeddedSound = "embedded-sound"
case findMyRemote = "find-my-remote"
case giftedData = "gifted-data"
case homeInternet = "home-internet"
case internetDevices = "internet-devices"
case largePlan = "large-plan"
case mediumPlan = "medium-plan"
case mobileApps = "mobile-apps"
case mobileHotspot = "mobile-hotspot"
case multipleDeviceProtection = "multiple-device-protection"
case multipleDevices = "multiple-devices"
case nationWide = "nation-wide"
case phoneAlt = "phone-alt"
case purchaseData = "purchase-data"
case router = "router"
case simCard = "sim-card"
case smallPlan = "small-plan"
case smartAssistant = "smart-assistant"
case sound = "sound"
case tablet = "tablet"
case techLaptop = "tech-laptop"
case techPhone = "tech-phone"
case totalMobileProtection = "total-mobile-protection"
case unlimitedPlan = "unlimited-plan"
case uplink = "uplink"
case videoOnTablet = "video-on-tablet"
case waterResistant = "water-resistant"
case wearable = "wearable"
//social
case at = "at"
case facebook = "facebook"
case instagram = "instagram"
case twitter = "twitter"
case youtube = "youtube"
//utilities
case ThreeDAd = "3d-ad"
case ar = "ar"
case addFolder = "add-folder"
case addUser = "add-user"
case analytics = "analytics"
case announcement = "announcement"
case archive = "archive"
case artboard = "artboard"
case attach = "attach"
case awareness = "awareness"
case barcode = "barcode"
case bluetooth = "bluetooth"
case boxOpen = "box-open"
case calendar = "calendar"
case calibrate = "calibrate"
case callDisconnected = "call-disconnected"
case cleanSurface = "clean-surface"
case cloudAlt = "cloud-alt"
case cloud = "cloud"
case comparison = "comparison"
case compose = "compose"
case connectParts = "connect-parts"
case consultativeTransfer = "consultative-transfer"
case convergence = "convergence"
case crop = "crop"
case cta = "cta"
case customize = "customize"
case data = "data"
case decrease = "decrease"
case deviceActivity = "device-activity"
case directCarrierBilling = "direct-carrier-billing"
case directory = "directory"
case displayUtilities = "display-utilities"
case distribution = "distribution"
case download = "download"
case dragAndDrop = "drag-and-drop"
case dropShipment = "drop-shipment"
case duplicate = "duplicate"
case edit = "edit"
case email = "email"
case emergencyContact = "emergency-contact"
case emoji = "emoji"
case externalLink = "external-link"
case fallDetected = "fall-detected"
case favorite = "favorite"
case fax = "fax"
case fingerprintSensor = "fingerprint-sensor"
case fire = "fire"
case fitToZone = "fit-to-zone"
case flipCamera = "flip-camera"
case forwardedCall = "forwarded-call"
case fullscreen = "fullscreen"
case getHelp = "get-help"
case gridView = "grid-view"
case history = "history"
case humidity = "humidity"
case incomingCall = "incoming-call"
case increase = "increase"
case info = "info"
case inventory = "inventory"
case invitationAccepted = "invitation-accepted"
case invitationExpired = "invitation-expired"
case invitationRejected = "invitation-rejected"
case landscape = "landscape"
case light = "light"
case link = "link"
case location = "location"
case locationPin = "location-pin"
case mapView = "map-view"
case masonryView = "masonry-view"
case maximize = "maximize"
case mergeCalls = "merge-calls"
case microphoneAlt = "microphone-alt"
case microphone = "microphone"
case missedCall = "missed-call"
case moveTo = "move-to"
case multicast = "multicast"
case mute = "mute"
case networkConnection = "network-connection"
case news = "news"
case next = "next"
case nfcTag = "nfc-tag"
case night = "night"
case noVideo = "no-video"
case onDemand = "on-demand"
case outgoingCall = "outgoing-call"
case paperFreeBilling = "paper-free-billing"
case pauseInternet = "pause-internet"
case pause = "pause"
case peelSticker = "peel-sticker"
case photo = "photo"
case platform = "platform"
case playAlt = "play-alt"
case playWith = "play-with"
case play = "play"
case portrait = "portrait"
case pressure = "pressure"
case previous = "previous"
case print = "print"
case question = "question"
case recycle = "recycle"
case removeItem = "remove-item"
case replaceAPhoto = "replace-a-photo"
case reply = "reply"
case ringing = "ringing"
case ringtone = "ringtone"
case riskMonitor = "risk-monitor"
case rss = "rss"
case satelliteOff = "satellite-off"
case satellite = "satellite"
case save = "save"
case scaleAlt = "scale-alt"
case scale = "scale"
case sendMessage = "send-message"
case setFallbackImage = "set-fallback-image"
case setGalleryImage = "set-gallery-image"
case share = "share"
case shock = "shock"
case signalBroadcast = "signal-broadcast"
case speakerMute = "speaker-mute"
case speakerPhone = "speaker-phone"
case speed = "speed"
case stakeholder = "stakeholder"
case steps = "steps"
case stop = "stop"
case stopAlt = "stop-alt"
case survey = "survey"
case talking = "talking"
case teamLeader = "team-leader"
case temperature = "temperature"
case template = "template"
case theme = "theme"
case thumbsDown = "thumbs-down"
case thumbsUp = "thumbs-up"
case tiles = "tiles"
case tilt = "tilt"
case tools = "tools"
case trash = "trash"
case turnonOff = "turnon-off"
case tv = "tv"
case upload = "upload"
case userSettings = "user-settings"
case vibration = "vibration"
case video = "video"
case volume = "volume"
case volunteer = "volunteer"
case virtualReality = "virtual-reality"
case voiceHd = "voice-hd"
case voiceMail = "voice-mail"
case weather = "weather"
case whiteBlackList = "white-black-list"
case wifi = "wifi"
case zoomIn = "zoom-in"
case zoomOut = "zoom-out"
}
internal enum RestrictedIconName: String, CaseIterable {
case paginationLeftArrow = "pagination-left-arrow"
case paginationRightArrow = "pagination-right-arrow"
case checkmark = "checkmark"
case checkmarkAlt = "checkmark-alt"
case close = "close"
case error = "error"
case info = "info"
case leftCaret = "left-caret"
case rightCaret = "right-caret"
case warning = "warning"
}