diff --git a/VDS/BaseClasses/Selector/SelectorBase.swift b/VDS/BaseClasses/Selector/SelectorBase.swift index aa1d8cea..6279c10d 100644 --- a/VDS/BaseClasses/Selector/SelectorBase.swift +++ b/VDS/BaseClasses/Selector/SelectorBase.swift @@ -27,6 +27,7 @@ public protocol SelectorControlable: Control, Changeable { var selectorColorConfiguration: ControlColorConfiguration { get set } } +/// Base Class used to build out a Selector control. open class SelectorBase: Control, SelectorControlable { //-------------------------------------------------- // MARK: - Initializers diff --git a/VDS/BaseClasses/Selector/SelectorItemBase.swift b/VDS/BaseClasses/Selector/SelectorItemBase.swift index 92cbee77..ee63d2e1 100644 --- a/VDS/BaseClasses/Selector/SelectorItemBase.swift +++ b/VDS/BaseClasses/Selector/SelectorItemBase.swift @@ -11,7 +11,7 @@ import Combine import VDSColorTokens import VDSFormControlsTokens -/// Generic Control used to build out a SelectorControlable control. +/// Base Class used to build out a SelectorControlable control. open class SelectorItemBase: Control, Errorable, Changeable, FormFieldable { //-------------------------------------------------- diff --git a/VDS/Components/Icon/ButtonIcon/ButtonIcon.swift b/VDS/Components/Icon/ButtonIcon/ButtonIcon.swift index 115bdcaf..b1a9bbce 100644 --- a/VDS/Components/Icon/ButtonIcon/ButtonIcon.swift +++ b/VDS/Components/Icon/ButtonIcon/ButtonIcon.swift @@ -9,6 +9,9 @@ import Foundation import UIKit import VDSColorTokens +/// A button icon is an interactive element that visually communicates the action it triggers via an icon. +/// It usually represents a supplementary or utilitarian action. A button icon can stand alone, but often +/// exists in a group when there are several actions that can be performed. @objc(VDSButtonIcon) open class ButtonIcon: Control { diff --git a/VDS/Components/Icon/Icon.swift b/VDS/Components/Icon/Icon.swift index 53209aca..0affea5f 100644 --- a/VDS/Components/Icon/Icon.swift +++ b/VDS/Components/Icon/Icon.swift @@ -10,6 +10,9 @@ import UIKit import VDSColorTokens 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. @objc(VDSIcon) open class Icon: View { diff --git a/VDS/Components/Label/Label.swift b/VDS/Components/Label/Label.swift index c4aa4ecd..0a95bee6 100644 --- a/VDS/Components/Label/Label.swift +++ b/VDS/Components/Label/Label.swift @@ -10,6 +10,8 @@ import UIKit import VDSColorTokens 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``. @objc(VDSLabel) open class Label: UILabel, ViewProtocol, UserInfoable { diff --git a/VDS/Components/Line/Line.swift b/VDS/Components/Line/Line.swift index 7ae59a3b..c57f4dff 100644 --- a/VDS/Components/Line/Line.swift +++ b/VDS/Components/Line/Line.swift @@ -9,6 +9,7 @@ import Foundation import UIKit import VDSColorTokens +/// A line visually separates content sections or elements in lists, tables and layouts to indicate content hierarchy. @objc(VDSLine) open class Line: View { diff --git a/VDS/Components/Loader/Loader.swift b/VDS/Components/Loader/Loader.swift index e45e625a..87604a94 100644 --- a/VDS/Components/Loader/Loader.swift +++ b/VDS/Components/Loader/Loader.swift @@ -10,8 +10,8 @@ import UIKit import VDSColorTokens -@objc(VDSLoader) /// 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. +@objc(VDSLoader) open class Loader: View { //-------------------------------------------------- diff --git a/VDS/Components/Notification/Notification.swift b/VDS/Components/Notification/Notification.swift index 152d3077..87207ba4 100644 --- a/VDS/Components/Notification/Notification.swift +++ b/VDS/Components/Notification/Notification.swift @@ -10,8 +10,11 @@ import UIKit import VDSColorTokens import Combine +/// Notifications are prominent, attention-getting banners that provide information +/// 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. @objc(VDSNotification) -/// A VDS Component that will render a view with information open class Notification: View { //-------------------------------------------------- diff --git a/VDS/Components/RadioBox/RadioBoxGroup.swift b/VDS/Components/RadioBox/RadioBoxGroup.swift index 4a7c4196..b31bcb0e 100644 --- a/VDS/Components/RadioBox/RadioBoxGroup.swift +++ b/VDS/Components/RadioBox/RadioBoxGroup.swift @@ -8,6 +8,9 @@ import Foundation 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. @objc(VDSRadioBoxGroup) open class RadioBoxGroup: SelectorGroupBase, SelectorGroupSingleSelect { diff --git a/VDS/Components/RadioBox/RadioBoxItem.swift b/VDS/Components/RadioBox/RadioBoxItem.swift index 0ca82fe2..97bafe6d 100644 --- a/VDS/Components/RadioBox/RadioBoxItem.swift +++ b/VDS/Components/RadioBox/RadioBoxItem.swift @@ -11,6 +11,8 @@ import Combine import VDSColorTokens import VDSFormControlsTokens +/// Radio boxes are single-select components through which a customer indicates a choice +/// that are used within a ``RadioBoxGroup``. @objc(VDSRadioBoxItem) open class RadioBoxItem: Control, Changeable, FormFieldable { diff --git a/VDS/Components/RadioButton/RadioButton.swift b/VDS/Components/RadioButton/RadioButton.swift index 27db5e3c..c37e667d 100644 --- a/VDS/Components/RadioButton/RadioButton.swift +++ b/VDS/Components/RadioButton/RadioButton.swift @@ -11,6 +11,9 @@ import Combine import VDSColorTokens import VDSFormControlsTokens +/// 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. @objc(VDSRadioButton) open class RadioButton: SelectorBase { diff --git a/VDS/Components/RadioButton/RadioButtonGroup.swift b/VDS/Components/RadioButton/RadioButtonGroup.swift index 7e013d19..74553ebe 100644 --- a/VDS/Components/RadioButton/RadioButtonGroup.swift +++ b/VDS/Components/RadioButton/RadioButtonGroup.swift @@ -8,6 +8,9 @@ import Foundation 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. @objc(VDSRadioButtonGroup) open class RadioButtonGroup: SelectorGroupBase, SelectorGroupSingleSelect { diff --git a/VDS/Components/RadioButton/RadioButtonItem.swift b/VDS/Components/RadioButton/RadioButtonItem.swift index 809f9a18..ebde90c8 100644 --- a/VDS/Components/RadioButton/RadioButtonItem.swift +++ b/VDS/Components/RadioButton/RadioButtonItem.swift @@ -8,6 +8,9 @@ import Foundation 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. @objc(VDSRadioButtonItem) open class RadioButtonItem: SelectorItemBase { diff --git a/VDS/Components/TextFields/EntryFieldBase.swift b/VDS/Components/TextFields/EntryFieldBase.swift index fdd7f839..b6519f28 100644 --- a/VDS/Components/TextFields/EntryFieldBase.swift +++ b/VDS/Components/TextFields/EntryFieldBase.swift @@ -11,6 +11,7 @@ import VDSColorTokens import VDSFormControlsTokens import Combine +/// Base Class used to build out a Input controls. @objc(VDSEntryField) open class EntryFieldBase: Control, Changeable { diff --git a/VDS/Components/TextFields/InputField/InputField.swift b/VDS/Components/TextFields/InputField/InputField.swift index d5d96ad6..ad6367ef 100644 --- a/VDS/Components/TextFields/InputField/InputField.swift +++ b/VDS/Components/TextFields/InputField/InputField.swift @@ -11,6 +11,9 @@ import VDSColorTokens import VDSFormControlsTokens 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. @objc(VDSInputField) open class InputField: EntryFieldBase, UITextFieldDelegate { diff --git a/VDS/Components/TextFields/TextArea/TextArea.swift b/VDS/Components/TextFields/TextArea/TextArea.swift index db86f357..5a31fb1e 100644 --- a/VDS/Components/TextFields/TextArea/TextArea.swift +++ b/VDS/Components/TextFields/TextArea/TextArea.swift @@ -12,6 +12,8 @@ import VDSColorTokens import VDSFormControlsTokens 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. @objc(VDSTextArea) open class TextArea: EntryFieldBase { //-------------------------------------------------- diff --git a/VDS/Components/Tilelet/Tilelet.swift b/VDS/Components/Tilelet/Tilelet.swift index d132738b..eb27123e 100644 --- a/VDS/Components/Tilelet/Tilelet.swift +++ b/VDS/Components/Tilelet/Tilelet.swift @@ -11,6 +11,10 @@ import VDSColorTokens import UIKit import Combine +/// Tilelet can be configured with a background image and limited text to +/// 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. @objc(VDSTilelet) open class Tilelet: TileContainer { diff --git a/VDS/Components/TitleLockup/TitleLockup.swift b/VDS/Components/TitleLockup/TitleLockup.swift index a6998925..7ddd43ef 100644 --- a/VDS/Components/TitleLockup/TitleLockup.swift +++ b/VDS/Components/TitleLockup/TitleLockup.swift @@ -10,6 +10,8 @@ import UIKit import VDSColorTokens import Combine +/// Title Lockup ensures the readability of words on the screen +/// with approved built in text size configurations. @objc(VDSTitleLockup) open class TitleLockup: View { diff --git a/VDS/Components/Toggle/Toggle.swift b/VDS/Components/Toggle/Toggle.swift index da7308bf..8034d53d 100644 --- a/VDS/Components/Toggle/Toggle.swift +++ b/VDS/Components/Toggle/Toggle.swift @@ -10,6 +10,8 @@ import UIKit import VDSColorTokens import Combine +/// A toggle is a control that lets customers instantly turn on +/// or turn off a single option, setting or function. @objc(VDSToggle) open class Toggle: Control, Changeable { diff --git a/VDS/Components/Toggle/ToggleView.swift b/VDS/Components/Toggle/ToggleView.swift index a504d61c..dc45a523 100644 --- a/VDS/Components/Toggle/ToggleView.swift +++ b/VDS/Components/Toggle/ToggleView.swift @@ -9,14 +9,9 @@ import Foundation import UIKit import VDSColorTokens import Combine -/** - A custom implementation of Apple's UISwitch. - - By default this class begins in the off state. - - Container: The background of the toggle control. - Knob: The circular indicator that slides on the container. - */ + +/// A toggle is a control that lets customers instantly turn on +/// or turn off a single option, setting or function. @objc(VDSToggleView) open class ToggleView: Control, Changeable { diff --git a/VDS/Components/Tooltip/Tooltip.swift b/VDS/Components/Tooltip/Tooltip.swift index 79d31a4f..abe4477c 100644 --- a/VDS/Components/Tooltip/Tooltip.swift +++ b/VDS/Components/Tooltip/Tooltip.swift @@ -11,6 +11,9 @@ import VDSColorTokens import VDSFormControlsTokens 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. @objc(VDSTooltip) open class Tooltip: Control, TooltipLaunchable { diff --git a/VDS/Components/Tooltip/TrailingTooltipLabel.swift b/VDS/Components/Tooltip/TrailingTooltipLabel.swift index b5c39848..15b68b61 100644 --- a/VDS/Components/Tooltip/TrailingTooltipLabel.swift +++ b/VDS/Components/Tooltip/TrailingTooltipLabel.swift @@ -9,6 +9,8 @@ import Foundation import UIKit import Combine +/// A trailing tooltip is view that contains a label that has a tooltip overlay +/// applied at the last character of the text. @objc(VDSTrailingTooltipLabel) open class TrailingTooltipLabel: View, TooltipLaunchable {