diff --git a/VDS/Components/Badge/Badge.swift b/VDS/Components/Badge/Badge.swift index 5753428e..07477f5f 100644 --- a/VDS/Components/Badge/Badge.swift +++ b/VDS/Components/Badge/Badge.swift @@ -15,6 +15,7 @@ import Combine /// If you are using AutoLayoutConstraints you have a combination of Leading/Left and Trailing/Right NSLayoutConstraints, /// you need to ensure that one of these Horizontal Contraints is not constraint of "equatTo". If you are to pin the left/right edges /// to its parent this object will stretch to the parent's width. +@objcMembers @objc(VDSBadge) open class Badge: View { diff --git a/VDS/Components/BadgeIndicator/BadgeIndicator.swift b/VDS/Components/BadgeIndicator/BadgeIndicator.swift index 60025390..13a6cb21 100644 --- a/VDS/Components/BadgeIndicator/BadgeIndicator.swift +++ b/VDS/Components/BadgeIndicator/BadgeIndicator.swift @@ -11,6 +11,7 @@ import VDSCoreTokens import Combine /// A badge indicator is a visual label used to convey status or highlight supplemental information. +@objcMembers @objc(VDSBadgeIndicator) open class BadgeIndicator: View { diff --git a/VDS/Components/Breadcrumbs/BreadcrumbItem.swift b/VDS/Components/Breadcrumbs/BreadcrumbItem.swift index bf6d4ed1..66f62989 100644 --- a/VDS/Components/Breadcrumbs/BreadcrumbItem.swift +++ b/VDS/Components/Breadcrumbs/BreadcrumbItem.swift @@ -13,6 +13,7 @@ import Combine /// A Breadcrumb Item contains href(link) and selected flag. /// Breadcrumb links to its respective page if it is not disabled. /// Breadcrumb contains text with a separator by default, highlights text in bold without a separator if selected. +@objcMembers @objc (VDSBreadcrumbItem) open class BreadcrumbItem: ButtonBase { diff --git a/VDS/Components/Breadcrumbs/Breadcrumbs.swift b/VDS/Components/Breadcrumbs/Breadcrumbs.swift index b5256497..5a2de7d0 100644 --- a/VDS/Components/Breadcrumbs/Breadcrumbs.swift +++ b/VDS/Components/Breadcrumbs/Breadcrumbs.swift @@ -13,6 +13,7 @@ import Combine /// A Breadcrumbs contains BreadcrumbItems. /// It contains Breadcrumb Item Default, Breadcrumb Item Selected, Separator. /// Breadcrumbs are secondary navigation that use a hierarchy of internal links to tell customers where they are in an experience. Each breadcrumb links to its respective page, except for that of current page. +@objcMembers @objc(VDSBreadcrumbs) open class Breadcrumbs: View { diff --git a/VDS/Components/Buttons/Button/Button.swift b/VDS/Components/Buttons/Button/Button.swift index f4147f54..0b9d13f1 100644 --- a/VDS/Components/Buttons/Button/Button.swift +++ b/VDS/Components/Buttons/Button/Button.swift @@ -15,6 +15,7 @@ import Combine /// If you are using AutoLayoutConstraints you have a combination of Leading/Left and Trailing/Right NSLayoutConstraints, /// you need to ensure that one of these Horizontal Contraints is not constraint of "equatTo". If you are to pin the left/right edges /// to its parent this object will stretch to the parent's width. +@objcMembers @objc(VDSButton) open class Button: ButtonBase, Useable { diff --git a/VDS/Components/Buttons/ButtonBase.swift b/VDS/Components/Buttons/ButtonBase.swift index eebf3a68..c764b89b 100644 --- a/VDS/Components/Buttons/ButtonBase.swift +++ b/VDS/Components/Buttons/ButtonBase.swift @@ -11,6 +11,7 @@ import VDSCoreTokens import Combine /// Base class used for UIButton type classes. +@objcMembers @objc(VDSButtonBase) open class ButtonBase: UIButton, ViewProtocol, UserInfoable, Clickable { diff --git a/VDS/Components/Buttons/ButtonGroup/ButtonGroup.swift b/VDS/Components/Buttons/ButtonGroup/ButtonGroup.swift index 124a7fba..8b662070 100644 --- a/VDS/Components/Buttons/ButtonGroup/ButtonGroup.swift +++ b/VDS/Components/Buttons/ButtonGroup/ButtonGroup.swift @@ -11,6 +11,7 @@ import VDSCoreTokens import Combine /// A button group contains combinations of related CTAs including ``Button``, ``TextLink``, and ``TextLinkCaret``. This group component controls a combination's orientation, spacing, size and allowable size pairings. +@objcMembers @objc(VDSButtonGroup) open class ButtonGroup: View { diff --git a/VDS/Components/Buttons/TextLink/TextLink.swift b/VDS/Components/Buttons/TextLink/TextLink.swift index f77dfa79..70f2840b 100644 --- a/VDS/Components/Buttons/TextLink/TextLink.swift +++ b/VDS/Components/Buttons/TextLink/TextLink.swift @@ -16,6 +16,7 @@ import Combine /// If you are using AutoLayoutConstraints you have a combination of Leading/Left and Trailing/Right NSLayoutConstraints, /// you need to ensure that one of these Horizontal Contraints is not constraint of "equatTo". If you are to pin the left/right edges /// to its parent this object will stretch to the parent's width. +@objcMembers @objc(VDSTextLink) open class TextLink: ButtonBase { //-------------------------------------------------- diff --git a/VDS/Components/Buttons/TextLinkCaret/TextLinkCaret.swift b/VDS/Components/Buttons/TextLinkCaret/TextLinkCaret.swift index d1522d02..f8c86a44 100644 --- a/VDS/Components/Buttons/TextLinkCaret/TextLinkCaret.swift +++ b/VDS/Components/Buttons/TextLinkCaret/TextLinkCaret.swift @@ -16,6 +16,7 @@ import Combine /// If you are using AutoLayoutConstraints you have a combination of Leading/Left and Trailing/Right NSLayoutConstraints, /// you need to ensure that one of these Horizontal Contraints is not constraint of "equatTo". If you are to pin the left/right edges /// to its parent this object will stretch to the parent's width. +@objcMembers @objc(VDSTextLinkCaret) open class TextLinkCaret: ButtonBase { //-------------------------------------------------- diff --git a/VDS/Components/Calendar/Calendar.swift b/VDS/Components/Calendar/Calendar.swift index cd1c783b..bed772d8 100644 --- a/VDS/Components/Calendar/Calendar.swift +++ b/VDS/Components/Calendar/Calendar.swift @@ -11,6 +11,7 @@ import VDSCoreTokens import Combine /// A calendar is a monthly view that lets customers select a single date. +@objcMembers @objc(VDSCalendar) open class CalendarBase: Control, Changeable { diff --git a/VDS/Components/Carousel/Carousel.swift b/VDS/Components/Carousel/Carousel.swift index 3e8aed2d..d1624253 100644 --- a/VDS/Components/Carousel/Carousel.swift +++ b/VDS/Components/Carousel/Carousel.swift @@ -12,6 +12,7 @@ import Combine /// A carousel is a collection of related content in a row that a customer can navigate through horizontally. /// Use this component to show content that is supplementary, not essential for task completion. +@objcMembers @objc(VDSCarousel) open class Carousel: View { diff --git a/VDS/Components/CarouselScrollbar/CarouselScrollbar.swift b/VDS/Components/CarouselScrollbar/CarouselScrollbar.swift index 1e05d875..f171c395 100644 --- a/VDS/Components/CarouselScrollbar/CarouselScrollbar.swift +++ b/VDS/Components/CarouselScrollbar/CarouselScrollbar.swift @@ -12,6 +12,7 @@ import Combine /// A carousel scrollbar is a control that allows to navigate between items in a carousel. /// It's also a status indicator that conveys the relative amount of content in a carousel and a location within it. +@objcMembers @objc(VDSCarouselScrollbar) open class CarouselScrollbar: View { diff --git a/VDS/Components/Checkbox/Checkbox.swift b/VDS/Components/Checkbox/Checkbox.swift index 3369ebcb..5b2afdc5 100644 --- a/VDS/Components/Checkbox/Checkbox.swift +++ b/VDS/Components/Checkbox/Checkbox.swift @@ -12,6 +12,7 @@ import VDSCoreTokens /// Checkboxes are a multi-select component through which a customer indicates a choice. This is also used within /// ``CheckboxItem`` and ``CheckboxGroup`` +@objcMembers @objc(VDSCheckbox) open class Checkbox: SelectorBase { diff --git a/VDS/Components/Checkbox/CheckboxGroup.swift b/VDS/Components/Checkbox/CheckboxGroup.swift index b450d4d5..1431d9dc 100644 --- a/VDS/Components/Checkbox/CheckboxGroup.swift +++ b/VDS/Components/Checkbox/CheckboxGroup.swift @@ -12,6 +12,7 @@ import VDSCoreTokens /// When the choice has multiple options, use a checkbox group. For example, use a checkbox group when /// asking a customer which attributes they would like to filter their search by. This uses ``CheckboxItem`` /// to allow user selection. +@objcMembers @objc(VDSCheckboxGroup) open class CheckboxGroup: SelectorGroupBase, SelectorGroupMultiSelect { diff --git a/VDS/Components/Checkbox/CheckboxItem.swift b/VDS/Components/Checkbox/CheckboxItem.swift index 21943636..c115fe79 100644 --- a/VDS/Components/Checkbox/CheckboxItem.swift +++ b/VDS/Components/Checkbox/CheckboxItem.swift @@ -9,6 +9,7 @@ import Foundation import UIKit /// Checkboxes are a multi-select component through which a customer indicates a choice. If a binary choice, the component is a checkbox. If the choice has multiple options, the component is a ``CheckboxGroup``. +@objcMembers @objc(VDSCheckboxItem) open class CheckboxItem: SelectorItemBase { @@ -47,6 +48,13 @@ open class CheckboxItem: SelectorItemBase { isSelected.toggle() sendActions(for: .valueChanged) } + + open override func setup() { + super.setup() + let foo = ConcreteClass(customView: Checkbox()) + + print(foo.customView.isAnimated) + } /// Used to make changes to the View based off a change events or from local properties. open override func updateView() { @@ -54,3 +62,24 @@ open class CheckboxItem: SelectorItemBase { super.updateView() } } + + +@objcMembers +open class GenericClass: NSObject { + public var customView: T + + public init(customView: T = T()) { + self.customView = customView + } +} + +@objcMembers +@objc(VDSConcreteClass) +open class ConcreteClass: GenericClass { + +} + +@objcMembers +@objc(VDSConcreteCheckboxClass) +open class ConcreteCheckboxClass: ConcreteClass {} + diff --git a/VDS/Components/DatePicker/DatePicker.swift b/VDS/Components/DatePicker/DatePicker.swift index 3a41780e..df7cc7c9 100644 --- a/VDS/Components/DatePicker/DatePicker.swift +++ b/VDS/Components/DatePicker/DatePicker.swift @@ -4,6 +4,7 @@ import VDSCoreTokens import Combine /// A dropdown select is an expandable menu of predefined options that allows a customer to make a single selection. +@objcMembers @objc(VDSDatePicker) open class DatePicker: EntryFieldBase { //-------------------------------------------------- diff --git a/VDS/Components/DropdownSelect/DropdownSelect.swift b/VDS/Components/DropdownSelect/DropdownSelect.swift index 832349d2..947210f4 100644 --- a/VDS/Components/DropdownSelect/DropdownSelect.swift +++ b/VDS/Components/DropdownSelect/DropdownSelect.swift @@ -11,6 +11,7 @@ import VDSCoreTokens import Combine /// A dropdown select is an expandable menu of predefined options that allows a customer to make a single selection. +@objcMembers @objc(VDSDropdownSelect) open class DropdownSelect: EntryFieldBase { //-------------------------------------------------- diff --git a/VDS/Components/Icon/Icon.swift b/VDS/Components/Icon/Icon.swift index 140f7b87..fd5c5fb2 100644 --- a/VDS/Components/Icon/Icon.swift +++ b/VDS/Components/Icon/Icon.swift @@ -13,6 +13,7 @@ import Combine /// An icon is a graphical element that conveys information at a glance. It helps orient /// a customer, explain functionality and draw attention to interactive elements. Icons /// should have a functional purpose and should never be used for decoration. +@objcMembers @objc(VDSIcon) open class Icon: View { diff --git a/VDS/Components/Label/Label.swift b/VDS/Components/Label/Label.swift index e408953b..f420be7d 100644 --- a/VDS/Components/Label/Label.swift +++ b/VDS/Components/Label/Label.swift @@ -12,6 +12,7 @@ import Combine /// Label is a standard view used to draw text with applying Typography through ``TextStyle`` as well /// as other attributes using any implemetation of ``LabelAttributeModel``. +@objcMembers @objc(VDSLabel) open class Label: UILabel, ViewProtocol, UserInfoable { diff --git a/VDS/Components/Line/Line.swift b/VDS/Components/Line/Line.swift index e6edae70..627210f9 100644 --- a/VDS/Components/Line/Line.swift +++ b/VDS/Components/Line/Line.swift @@ -10,6 +10,7 @@ import UIKit import VDSCoreTokens /// A line visually separates content sections or elements in lists, tables and layouts to indicate content hierarchy. +@objcMembers @objc(VDSLine) open class Line: View { diff --git a/VDS/Components/Loader/Loader.swift b/VDS/Components/Loader/Loader.swift index 13ceeb43..5b7f1b59 100644 --- a/VDS/Components/Loader/Loader.swift +++ b/VDS/Components/Loader/Loader.swift @@ -11,6 +11,7 @@ import VDSCoreTokens /// A loader is an indicator that uses animation to show customers that there is an indefinite amount of wait time while a task is ongoing, e.g. a page is loading, a form is being submitted. The component disappears when the task is complete. +@objcMembers @objc(VDSLoader) open class Loader: View { diff --git a/VDS/Components/Loader/LoaderViewController.swift b/VDS/Components/Loader/LoaderViewController.swift index 65639c18..408422fb 100644 --- a/VDS/Components/Loader/LoaderViewController.swift +++ b/VDS/Components/Loader/LoaderViewController.swift @@ -10,6 +10,8 @@ import UIKit import VDSCoreTokens /// ViewController to show the Loader, this will be presented using the LoaderLaunchable Protocl. +@objcMembers +@objc(VDSLoaderViewController) open class LoaderViewController: UIViewController, Surfaceable { //-------------------------------------------------- // MARK: - Private Properties diff --git a/VDS/Components/Notification/Notification.swift b/VDS/Components/Notification/Notification.swift index 66be33c4..6df7da68 100644 --- a/VDS/Components/Notification/Notification.swift +++ b/VDS/Components/Notification/Notification.swift @@ -14,6 +14,7 @@ import Combine /// in context. There are four types: information, success, warning and error; each /// with different color and content. They may be screen-specific, flow-specific or /// experience-wide. +@objcMembers @objc(VDSNotification) open class Notification: View { diff --git a/VDS/Components/Pagination/Pagination.swift b/VDS/Components/Pagination/Pagination.swift index 8988aaa4..02c1e85e 100644 --- a/VDS/Components/Pagination/Pagination.swift +++ b/VDS/Components/Pagination/Pagination.swift @@ -11,6 +11,7 @@ import VDSCoreTokens import Combine ///Pagination is a control that enables customers to navigate multiple pages of content by selecting either a specific page or the next or previous set of four pages. +@objcMembers @objc(VDSPagination) open class Pagination: View { diff --git a/VDS/Components/Pagination/PaginationButton.swift b/VDS/Components/Pagination/PaginationButton.swift index d7aaf8e2..d5de6e3f 100644 --- a/VDS/Components/Pagination/PaginationButton.swift +++ b/VDS/Components/Pagination/PaginationButton.swift @@ -9,6 +9,7 @@ import UIKit import VDSCoreTokens ///This is customised button for Pagination view +@objcMembers @objc(PaginationButton) open class PaginationButton: ButtonBase { //-------------------------------------------------- diff --git a/VDS/Components/RadioBox/RadioBoxGroup.swift b/VDS/Components/RadioBox/RadioBoxGroup.swift index c58802c0..b5531e33 100644 --- a/VDS/Components/RadioBox/RadioBoxGroup.swift +++ b/VDS/Components/RadioBox/RadioBoxGroup.swift @@ -11,6 +11,7 @@ import UIKit /// Radio boxes are single-select components through which a customer indicates a choice. /// They're stylized ``RadioButtons`` that must always be paired with one or more ``RadioBoxItem`` /// in a radio box group. Use radio boxes to display choices like device storage. +@objcMembers @objc(VDSRadioBoxGroup) open class RadioBoxGroup: SelectorGroupBase, SelectorGroupSingleSelect { diff --git a/VDS/Components/RadioBox/RadioBoxItem.swift b/VDS/Components/RadioBox/RadioBoxItem.swift index 872a4d05..1da80c0a 100644 --- a/VDS/Components/RadioBox/RadioBoxItem.swift +++ b/VDS/Components/RadioBox/RadioBoxItem.swift @@ -12,6 +12,7 @@ import VDSCoreTokens /// Radio boxes are single-select components through which a customer indicates a choice /// that are used within a ``RadioBoxGroup``. +@objcMembers @objc(VDSRadioBoxItem) open class RadioBoxItem: Control, Changeable, FormFieldable, Groupable { diff --git a/VDS/Components/RadioButton/RadioButton.swift b/VDS/Components/RadioButton/RadioButton.swift index f19e7b2f..7241fddf 100644 --- a/VDS/Components/RadioButton/RadioButton.swift +++ b/VDS/Components/RadioButton/RadioButton.swift @@ -13,6 +13,7 @@ import VDSCoreTokens /// Radio buttons are single-select components through which a customer indicates a choice. /// They must always be paired with one or more ``RadioButtonItem`` within a ``RadioButtonGroup``. /// Use radio buttons to display choices like delivery method. +@objcMembers @objc(VDSRadioButton) open class RadioButton: SelectorBase { diff --git a/VDS/Components/RadioButton/RadioButtonGroup.swift b/VDS/Components/RadioButton/RadioButtonGroup.swift index f44f5587..13adf080 100644 --- a/VDS/Components/RadioButton/RadioButtonGroup.swift +++ b/VDS/Components/RadioButton/RadioButtonGroup.swift @@ -11,6 +11,7 @@ import UIKit /// Radio buttons items are single-select components through which a customer indicates a choice. /// They must always be paired with one or more other ``RadioButtonItem`` within a radio button group. /// Use radio buttons to display choices like delivery method. +@objcMembers @objc(VDSRadioButtonGroup) open class RadioButtonGroup: SelectorGroupBase, SelectorGroupSingleSelect { diff --git a/VDS/Components/RadioButton/RadioButtonItem.swift b/VDS/Components/RadioButton/RadioButtonItem.swift index bc15531d..af84ac89 100644 --- a/VDS/Components/RadioButton/RadioButtonItem.swift +++ b/VDS/Components/RadioButton/RadioButtonItem.swift @@ -11,6 +11,7 @@ import UIKit /// Radio buttons items are single-select components through which a customer indicates a choice. /// They must always be paired with one or more other radio button items within a ``RadioButtonGroup``. /// Use radio buttons to display choices like delivery method. +@objcMembers @objc(VDSRadioButtonItem) open class RadioButtonItem: SelectorItemBase { diff --git a/VDS/Components/Table/Table.swift b/VDS/Components/Table/Table.swift index 39cc6698..bb599545 100644 --- a/VDS/Components/Table/Table.swift +++ b/VDS/Components/Table/Table.swift @@ -10,6 +10,7 @@ import UIKit import VDSCoreTokens ///Table is view composed of rows and columns, which takes any view into each cell and resizes based on the highest cell height. +@objcMembers @objc(VDSTable) open class Table: View { diff --git a/VDS/Components/Tabs/Tab.swift b/VDS/Components/Tabs/Tab.swift index 4c0b55cd..edc8af55 100644 --- a/VDS/Components/Tabs/Tab.swift +++ b/VDS/Components/Tabs/Tab.swift @@ -11,7 +11,7 @@ import VDSCoreTokens import Combine extension Tabs { - + @objcMembers @objc(VDSTab) open class Tab: Control, Groupable { diff --git a/VDS/Components/Tabs/Tabs.swift b/VDS/Components/Tabs/Tabs.swift index 88ae02e7..e909d43b 100644 --- a/VDS/Components/Tabs/Tabs.swift +++ b/VDS/Components/Tabs/Tabs.swift @@ -10,6 +10,7 @@ import UIKit import VDSCoreTokens /// Tabs are organizational components that group content and allow customers to navigate its display. Use them to separate content when the content is related but doesn’t need to be compared. +@objcMembers @objc(VDSTabs) open class Tabs: View { diff --git a/VDS/Components/Tabs/TabsContainer.swift b/VDS/Components/Tabs/TabsContainer.swift index d44b877f..945ecbaf 100644 --- a/VDS/Components/Tabs/TabsContainer.swift +++ b/VDS/Components/Tabs/TabsContainer.swift @@ -8,6 +8,7 @@ import Foundation import UIKit +@objcMembers @objc(VDSTabsContainer) open class TabsContainer: View { diff --git a/VDS/Components/TextFields/EntryFieldBase.swift b/VDS/Components/TextFields/EntryFieldBase.swift index 571783bc..481318b6 100644 --- a/VDS/Components/TextFields/EntryFieldBase.swift +++ b/VDS/Components/TextFields/EntryFieldBase.swift @@ -11,6 +11,7 @@ import VDSCoreTokens import Combine /// Base Class used to build out a Input controls. +@objcMembers @objc(VDSEntryField) open class EntryFieldBase: Control, Changeable, FormFieldInternalValidatable { diff --git a/VDS/Components/TextFields/InputField/InputField.swift b/VDS/Components/TextFields/InputField/InputField.swift index fd36ecac..a65df78e 100644 --- a/VDS/Components/TextFields/InputField/InputField.swift +++ b/VDS/Components/TextFields/InputField/InputField.swift @@ -13,6 +13,7 @@ import Combine /// An input field is an input wherein a customer enters information. They typically appear in forms. /// Specialized input fields capture credit card numbers, inline actions, passwords, phone numbers, /// dates and security codes in their correct formats. +@objcMembers @objc(VDSInputField) open class InputField: EntryFieldBase { @@ -311,6 +312,24 @@ open class InputField: EntryFieldBase { } } + open var widthPercentage: CGFloat? { didSet { setNeedsUpdate() } } + + internal override func updateContainerWidth() { + widthConstraint?.deactivate() + trailingLessThanEqualsConstraint?.deactivate() + trailingEqualsConstraint?.deactivate() + + //see if there is a widthPercentage and follow the same pattern as done for "width" + let currentWidth = (horizontalPinnedWidth() ?? 0) * (widthPercentage ?? 0) + if currentWidth >= minWidth, currentWidth <= maxWidth { + widthConstraint?.constant = currentWidth + widthConstraint?.activate() + trailingLessThanEqualsConstraint?.activate() + } else { + super.updateContainerWidth() + } + } + override func updateRules() { super.updateRules() fieldType.handler().appendRules(self) diff --git a/VDS/Components/TextFields/InputField/TextField.swift b/VDS/Components/TextFields/InputField/TextField.swift index b56f3423..3fdf308f 100644 --- a/VDS/Components/TextFields/InputField/TextField.swift +++ b/VDS/Components/TextFields/InputField/TextField.swift @@ -10,6 +10,7 @@ import UIKit import Combine import VDSCoreTokens +@objcMembers @objc(VDSTextField) open class TextField: UITextField, ViewProtocol, Errorable { diff --git a/VDS/Components/TextFields/TextArea/TextArea.swift b/VDS/Components/TextFields/TextArea/TextArea.swift index 8768352e..07c79ca6 100644 --- a/VDS/Components/TextFields/TextArea/TextArea.swift +++ b/VDS/Components/TextFields/TextArea/TextArea.swift @@ -12,6 +12,7 @@ import Combine /// A text area is an input wherein a customer enters long-form information. /// Use a text area when you want customers to enter text that’s longer than a single line. +@objcMembers @objc(VDSTextArea) open class TextArea: EntryFieldBase { //-------------------------------------------------- diff --git a/VDS/Components/TextFields/TextArea/TextView.swift b/VDS/Components/TextFields/TextArea/TextView.swift index 3c5dc5ee..63356635 100644 --- a/VDS/Components/TextFields/TextArea/TextView.swift +++ b/VDS/Components/TextFields/TextArea/TextView.swift @@ -10,6 +10,7 @@ import UIKit import Combine import VDSCoreTokens +@objcMembers @objc(VDSTextView) open class TextView: UITextView, ViewProtocol, Errorable { diff --git a/VDS/Components/TileContainer/TileContainer.swift b/VDS/Components/TileContainer/TileContainer.swift index cbe68e3a..f35d2614 100644 --- a/VDS/Components/TileContainer/TileContainer.swift +++ b/VDS/Components/TileContainer/TileContainer.swift @@ -10,6 +10,7 @@ import VDSCoreTokens import UIKit import Combine +@objcMembers @objc(VDSTileContainer) open class TileContainer: TileContainerBase { diff --git a/VDS/Components/Tilelet/Tilelet.swift b/VDS/Components/Tilelet/Tilelet.swift index e52332ff..4391bfb3 100644 --- a/VDS/Components/Tilelet/Tilelet.swift +++ b/VDS/Components/Tilelet/Tilelet.swift @@ -15,6 +15,7 @@ import Combine /// support quick scanning and engagement. A Tilelet is fully clickable and /// while it can include an arrow CTA, it does not require one in order to /// function. +@objcMembers @objc(VDSTilelet) open class Tilelet: TileContainerBase { diff --git a/VDS/Components/TitleLockup/TitleLockup.swift b/VDS/Components/TitleLockup/TitleLockup.swift index bc5c4c3a..47ae5421 100644 --- a/VDS/Components/TitleLockup/TitleLockup.swift +++ b/VDS/Components/TitleLockup/TitleLockup.swift @@ -12,6 +12,7 @@ import Combine /// Title Lockup ensures the readability of words on the screen /// with approved built in text size configurations. +@objcMembers @objc(VDSTitleLockup) open class TitleLockup: View { diff --git a/VDS/Components/Toggle/Toggle.swift b/VDS/Components/Toggle/Toggle.swift index aaa411de..7cb4ef71 100644 --- a/VDS/Components/Toggle/Toggle.swift +++ b/VDS/Components/Toggle/Toggle.swift @@ -12,6 +12,7 @@ import Combine /// A toggle is a control that lets customers instantly turn on /// or turn off a single option, setting or function. +@objcMembers @objc(VDSToggle) open class Toggle: Control, Changeable, FormFieldable { diff --git a/VDS/Components/Toggle/ToggleView.swift b/VDS/Components/Toggle/ToggleView.swift index dc5e9570..9274be1a 100644 --- a/VDS/Components/Toggle/ToggleView.swift +++ b/VDS/Components/Toggle/ToggleView.swift @@ -12,6 +12,7 @@ import Combine /// A toggle is a control that lets customers instantly turn on /// or turn off a single option, setting or function. +@objcMembers @objc(VDSToggleView) open class ToggleView: Control, Changeable, FormFieldable { diff --git a/VDS/Components/Tooltip/Tooltip.swift b/VDS/Components/Tooltip/Tooltip.swift index f07fb1be..6eaf7ef4 100644 --- a/VDS/Components/Tooltip/Tooltip.swift +++ b/VDS/Components/Tooltip/Tooltip.swift @@ -13,6 +13,7 @@ import Combine /// A tooltip is an overlay that clarifies another component or content /// element. It is triggered when a customer hovers, clicks or taps /// the tooltip icon. +@objcMembers @objc(VDSTooltip) open class Tooltip: Control, TooltipLaunchable { diff --git a/VDS/Components/Tooltip/TooltipAlertViewController.swift b/VDS/Components/Tooltip/TooltipAlertViewController.swift index 043f07f4..0fb3d69c 100644 --- a/VDS/Components/Tooltip/TooltipAlertViewController.swift +++ b/VDS/Components/Tooltip/TooltipAlertViewController.swift @@ -10,6 +10,8 @@ import UIKit import Combine import VDSCoreTokens +@objcMembers +@objc(VDSTooltipAlertViewController) open class TooltipAlertViewController: UIViewController, Surfaceable { /// Set of Subscribers for any Publishers for this Control. diff --git a/VDS/Components/Tooltip/TooltipDialog.swift b/VDS/Components/Tooltip/TooltipDialog.swift index 0650a808..bb6b5653 100644 --- a/VDS/Components/Tooltip/TooltipDialog.swift +++ b/VDS/Components/Tooltip/TooltipDialog.swift @@ -9,6 +9,8 @@ import Foundation import UIKit import VDSCoreTokens +@objcMembers +@objc(VDSTooltipDialog) open class TooltipDialog: View, UIScrollViewDelegate { //--------------------------------------------------